CN105144106A - 异类存储器的动态管理 - Google Patents

异类存储器的动态管理 Download PDF

Info

Publication number
CN105144106A
CN105144106A CN201480006767.3A CN201480006767A CN105144106A CN 105144106 A CN105144106 A CN 105144106A CN 201480006767 A CN201480006767 A CN 201480006767A CN 105144106 A CN105144106 A CN 105144106A
Authority
CN
China
Prior art keywords
memory
application
integrated circuit
storer
performance
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.)
Granted
Application number
CN201480006767.3A
Other languages
English (en)
Other versions
CN105144106B (zh
Inventor
B·李
M·特伦布莱
B·邦德
V·萨多夫斯基
M·J·拉姆贝格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105144106A publication Critical patent/CN105144106A/zh
Application granted granted Critical
Publication of CN105144106B publication Critical patent/CN105144106B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种用于操作计算设备的方法包括基于工作负载或来自不同类型的应用的请求来动态管理至少两种类型的存储器。第一类型的存储器可以是高性能存储器,它相比于计算设备中的第二类型的存储器而言可具有更高带宽、更低存储器等待时间和/或更低的功耗。在一个实施例中,计算设备包括片上系统(SoC),其包括与一个或多个处理器核一起定位的宽I/O?DRAM。低功率双数据速率3动态随机存取存储器(LPDDR3?DRAM)存储器外部地连接到SoC或是SoC的嵌入部分。在各实施例中,计算设备至少可以被包括在蜂窝电话、移动设备、嵌入式系统、视频游戏、媒体控制台、膝上型计算机、台式计算机、服务器和/或数据中心中。

Description

异类存储器的动态管理
背景
操作系统(OS)包括处理器可读指令,其管理计算机硬件资源并为其他具有处理器可读指令的计算程序,诸如应用程序(应用),提供通用服务。典型地,OS作为应用和计算机硬件之间的中介。OS通常安排任务来高效使用计算资源。OS通常执行基础任务,诸如识别来自键盘的输入、向显示屏发送输出、保持对文件和目录的跟踪,并控制外围设备,诸如打印机和盘驱动。
概述
一种用于操作计算设备的方法包括基于工作负载或来自不同类型的应用的请求来动态管理至少两种类型的存储器(异类存储器)。第一类型的存储器可以是高性能存储器,它相比于计算设备中的第二类型的存储器而言可具有更高带宽、更低存储器等待时间、在磨损前更多的写入次数和/或更低的功耗。在一个实施例中,计算设备包括片上系统(SoC),其包括位于邻近一个或多个处理器核的宽I/ODRAM(更高性能的存储器的示例)。低功率双数据速率3动态随机存取存储器(LPDDR3DRAM)内存(传统存储器的示例)内部地或外部地连接到SoC。在各实施例中,计算设备至少可以被包括在蜂窝电话、移动设备、嵌入式系统、视频游戏控制台、媒体控制台、膝上型计算机、台式计算机、服务器和/或数据中心中。
在一个实施例中,OS将更高性能的存储器分配给具有特定工作负载或功能(例如,射线跟踪、帧/视频缓冲、NUI(自然用户界面)数据缓冲)的指定应用。当新数据需要占据更高性能的存储器时,OS可将数据从更高性能的存储器传送。OS和一个或多个处理器,连同存储器控制器逻辑硬件和/或软件,也执行错误更正以保护数据完整性。为了确定不同类型的存储器的能力和/或性能特征的目的,存储器特性的在线(web)处理器可读目录可被OS访问。
在一个实施例中,应用具有应用清单中的属性标志或信息,其向OS指示特定应用得益于使用高性能存储器。当发出请求的应用不在应用清单上时,或当发出请求的应用要求大于可用的量的高性能存储器时,OS可不允许对高性能存储器的访问。在一个实施例中,OS监视应用的执行并保持对存储器位置访问和使用模式的跟踪。在各实施例中,OS可将属性标志或信息传递到虚拟或物理存储器分配器,诸如存储器控制器或存储器管理器。
在一个实施例中,高性能存储器可被用作虚拟高速缓存存储器或高速缓存存储器。
在各实施例中,OS或存储器控制器还可询问不同类型的存储器以获得存储器操作细节以及周期性地询问不同类型的存储器关于健康和性能信息。OS或存储器控制器还可管理不同类型存储器的功耗状态。
一方法实施例将一种类型的存储器分配给由计算设备处理的一应用。该方法包括,确定该计算设备中可用的集成电路存储器的类型。各类可用的集成电路存储器包括第一高性能类型的存储器和非高性能存储器的第二类型的存储器。来自应用的对使用高性能存储器的请求被接收。响应于该请求,高性能存储器被分配给该应用。
一装置实施例包括一个或多个处理器和具有第一性能特征的第一处理器可读存储器。该装置还包括具有第二性能特征的第二处理器可读存储器。第一性能特征优于第二性能特征。一个或多个处理器执行OS的处理器可读指令以确定一个或多个软件应用是否请求使用第一处理器可读存储器以及该一个或多个应用使用的处理器可读存储器的量。响应于对使用第一处理器可读存储器的请求以及该一个或多个应用使用的处理器可读存储器的量,一个或多个处理器执行OS的处理器可读指令以允许该一个或多个应用中的至少一个访问第一处理器可读存储器。
在另一实施例中,一个或多个处理器可读存储器设备包括指令,该指令在执行时使得一个或多个处理器执行将高性能存储器分配给应用的方法。来自应用的对使用高性能存储器的请求以及应用将使用的存储器的量被接收。作出关于可用高性能存储器的量的判定。响应于应用将使用的存储器的量以及可用高性能存储器的量,将高性能存储器分配给应用。
提供概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。该概述不意图标识所要求保护的主题的关键特征或基本特征,也不意图被用来帮助确定所要求保护的主题的范围。
附图简述
图1是计算设备的示例硬件体系结构的高级别框图。
图2是访问不同类型的存储器的示例软件体系结构的高级别框图。
图3A是访问不同类型的存储器的示例OS体系结构的高级别框图。
图3B是异类存储器软件的示例动态管理的高级别框图。
图4是用于将不同类型的存储器分配给一个或多个应用的示例方法的流程图。
图5A是将高性能存储器用作虚拟高速缓存的示例方法的流程图。
图5B是将高性能存储器用作高速缓存的示例方法的流程图。
图6A是用于查询不同类型的存储器以获得包括配置、性能和健康的存储器信息的示例方法的流程图。
图6B是管理不同类型的存储器功率的示例方法的流程图。
图7是示例性游戏和媒体系统的立体图。
图8是图10中所示的游戏和媒体系统的组件的示例性功能框图。
详细描述
SoC(也称为SOC)是将计算设备或其他电子系统的电子组件和/或子系统集成到安置在单个封装内的单个半导体基板和/或单个芯片中的集成电路(IC)。例如,先前在个人计算机(PC)中的存储器模块子系统中的存储器现在可被包括在SoC中。类似地,存储器控制逻辑可被包括在SoC的处理器中而不是包括在分开地封装的存储器控制器中。
SoC的一个或多个处理器还可具有对具有不同类型的存储器特征的不同类型的存储器的访问。存储器特征或性能参数可包括,但不限于,带宽、存储器等待时间、功耗、磨损前的写入次数和/或热生成。高性能存储器,诸如具有较高带宽(或相比于其他存储器每单位时间周期可发送或接收更多数据)的存储器,可能更昂贵并且可能不能用作不具有特定高性能特征的存储器。
图1是计算设备实施例的示例硬件体系结构的高级别框图。在各实施例中,计算设备100至少可以被包括在蜂窝电话、移动设备、嵌入式系统、视频游戏控制台、媒体控制台、膝上型计算机、台式计算机、服务器和/或数据中心中。
在一个实施例中,计算设备100包括SoC101和存储器104。SoC是将计算设备或其他电子系统的各组件集成到单个芯片或半导体基板中的IC。SoC101包括一个或多个处理器核103和高性能存储器102。(诸)处理器核103通过内部信号路径106的方式与高性能存储器102进行通信。在一个实施例中,高性能存储器102包括耦合到信号路径106的接口102a。(诸)处理器核103还通过外部信号路径105的方式与外部存储器104进行通信。在一个实施例中,信号路径106和105是由OS和嵌入在SoC101内的存储器控制器控制的分开的信号路径。
在一个实施例中,存储器104在SoC101外部,并且可被配置作为印刷线路板(诸如母板)上的存储器模块或焊接组件。在一个实施例中,存储器104包括耦合到信号路径105的接口,其包括在印刷线路板上的至少一条迹线或信号线。在一个实施例中,SoC101还耦合到包括信号路径105的相同印刷线路板。
如本领域普通技术人员将理解的,其他电子组件可以被包括在SoC101中。SoC101可以包括数字的、模拟的、混合信号的,和/或射频电路——在单个半导体基板上的一个或多个。SoC101可以包括振荡器、锁相环、计数器-计时器、实时计时器、加电复位发电机、外部接口(例如,通用串行总线(USB)、IEEE1394接口(火线)、以太网、通用异步接收机/发射机(USART)和串行外围总线(SPI))、模拟接口、电压调节器和/或电源管理电路。
在替换的实施例中,SoC101可以被系统级封装(SiP)或层叠封装(PoP)替换。在SiP中,多个芯片或半导体基板被安置在单个封装中。在SiP实施例中,(诸)处理器核103将可以在一个半导体基板上,而高性能存储器102将可以在第二半导体基板上,二者都被安置在单个封装中。在一个实施例中,第一半导体基板通过线结合耦合至第二半导体基板。
在PoP实施例中,(诸)处理器核103将可以在布置在第一封装中的一个半导体管芯上,而高性能存储器102将可以在布置在第二不同封装中的第二半导体管芯上。第一封装和第二封装随后将通过标准接口被堆叠以在各封装(具体而言在各半导体管芯)间路由信号。在一个实施例中,所堆叠的封装接着可被耦合到将存储器104作为组件的印刷线路板。
在各实施例中,(诸)处理器核103包括执行(或读取)存储在存储器中的处理器(或机器)可读指令的一个或多个处理器。处理器可读指令的示例可包括计算设备100的OS和/或应用软件程序(应用)(诸如图2所示的OS205和应用202-204)。响应于执行OS和应用的处理器可读指令,(诸)处理器核103使用高性能存储器102和存储器104。在一个实施例中,(诸)处理器核103可包括处理器和存储器控制器,或替换地,也执行与存储器控制器执行的类似的存储器管理功能的处理器。(诸)处理器核103还可以包括控制器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)和/或现场可编程门阵列(FPGA)。在一个实施例中,高性能存储器102被定位在(诸)处理器核103的上方。
在一个实施例中,高性能存储器102至少有一个或多个在性能方面优于存储器102的存储器特征,诸如带宽、存储器等待时间、热生成、在磨损前的写入次数和/或功耗。例如,高性能存储器102可以是具有比存储器104更高带宽的宽I/ODRAM。存储器104可以是低功率双数据速率3动态随机存取存储器(LPDDR3DRAM)内存(也被称为低功率DDR、移动DDR(MDDR)或mDDR)。在一个实施例中,存储器接口102a是在信号路径106上传送和接收信号的宽I/ODRAM接口;而存储器接口104是在信号路径105上传送和接收信号的LPDDR3DRAM接口。
在各实施例中,高性能存储器102和存储器104可以包括设置在分开的半导体基板上的IC中的存储器单元的一个或多个阵列。在一个实施例中,高性能存储器102和存储器104被包括在容纳在分开封装的设备中的各自的集成的整体电路。在各实施例中,高性能存储器102和存储器104可以包括易失性和/或非易失性存储器。
易失性存储器的类型包括但不限于动态随机存取存储器(DRAM)、基于分子电荷的(ZettaCore)DRAM、浮体DRAM和静态随机存取存储器(“SRAM”)。DRAM的特定类型包括双倍数据速率SDRAM(“DDR”),或晚一代SDRAM(例如,“DDRn)。”
非易失性存储器的类型包括但不限于以下类型:电可擦除可编程只读存储器(“EEPROM”)、闪存(包括NAND和NOR闪存)、ONO闪存、磁阻或磁性RAM(“MRAM”)、铁电RAM(“FRAM”)、全息介质、奥弗辛斯基效应的/相变、纳米晶体、纳米管RAM(NRAM-Nantero)、MEMS扫描探针系统、MEMS悬臂式开关、聚合物、分子、纳米浮栅和单电子。
在各实施例中,信号路径105/106是传输信号的介质,诸如互连、传导元件、触头、引脚、半导体基板中的区域、引线、金属迹线/信号线或光电导体个体或其组合。在一个实施例中,多个信号路径可以替代图中所示的单个信号路径,并且单个信号路径可以替代图中所示的多个信号路径。在各实施例中,信号路径可以包括总线和/或点到点连接。在一实施例中,信号路径包括控制和数据信号线。在替换的实施例中,信号路径包括数据信号线或控制信号线。在又一些其他实施例中,信号路径是单向的(信号在一个方向上传播)或双向的(信号在两个方向上传播)或者是单向信号线和双向信号线两者的组合。
图2是访问不同类型的存储器的示例软件体系结构200的高级别框图。OS205,以及具体而言异类存储器的动态管理(DMHM)308确定,除了其它功能外,哪些应用202-204被分配高性能存储器208以及哪些应用202-204被分配存储器209。在各实施例中,高性能存储器208对应于高性能存储器102,而存储器209对应于本文中描述的并在图1中示出的存储器104。DMHM308至少基于应用202-204之一是否请求高性能存储器,通过属性标志或信息的方式确定应用202-204中的哪些将具有对高性能存储器208的访问。一旦确定特定应用将被分配特定存储器类型(高性能存储器208或存储器209),则合适的设备驱动器206与OS205一起使用。
OS205,具体而言DMHM308还使用高级配置和电源接口(ACPI)驱动器、寄存器、基本输入输出系统(BIOS)以及表格(统称ARBT)207来执行其他功能,诸如,监视高性能存储器208和存储器209的健康、功率和性能,如在此详细描述的。ACPI驱动器发现、配置、功率管理以及监视硬件组件,诸如存储器。例如,OS205可使用ACPI驱动器来在外围设备不使用时关闭外围设备。BIOS是固件中的一组计算机指令,其控制一般存储在非易失性存储器中的输入和输出操作。在一个实施例中,ACPI驱动器允许OS205与BIOS进行通信并指令BIOS来关闭外围设备。
图3A是访问不同类型的存储器的示例OS体系结构300的高级别框图。在一个实施例中,OS205包括图3A中所示的一个或多个软件组件。在一个实施例中,软件组件可包括软件程序、软件对象、软件功能、软件子例程、软件方法、软件实例、脚本和/或代码片段,单独地或组合地。例如,OS205包括以下中的一个或多个:进程管理301、存储器管理302、I/O设备管理303、文件管理304、网络管理304、用户接口306和保护307。以下描述了可由各种OS软件组件来执行的一个或多个示例功能。在替换实施例中,可使用以下描述的更多或更少软件组件和/或软件组件的功能。
在各实施例中,OS205的至少部分被存储在处理器可读存储设备中。在一个实施例中,OS205的至少部分被存储在图1示出的高性能存储器102和/或存储器104中。
进程管理301负责创建并删除用户和系统进程。进程管理301还可负责进程的挂起和恢复。进程管理301还可负责进程的同步和通信。进程管理301还可负责死锁处理。
存储器管理302负责跟踪各种类型的存储器中的哪个部分存储器当前被特定软件组件或应用使用。存储器管理302还决定在存储器空间变得可用时,哪些进程被加载到存储器中。存储器管理还按需分配存储器空间和解除存储器空间的分配。
在一个实施例中,异类存储器的动态管理(DMHM)308被包括在存储器管理302中。DMHM308负责,但不限于,确定可用存储器的类型、将特定类型的储存器分配给特定应用、监视应用的存储器使用、执行错误检测和更正、确定可用的高速缓存、将存储器用作实际或虚拟高速缓存、监视存储器的性能、健康以及配置,并管理不同类型的存储器的功率。在一个实施例中,执行DMHM308的一个或多个功能的软件组件在图3B中示出。
在一个实施例中,DMHM308包括图3B中所示的一个或多个以下的软件组件:存储器类型310、分配311、监视使用312、检测和错误更正313、高速缓存管理314、监视性能、健康和配置315和/或管理功率316。
存储器类型310负责确定什么类型的存储器在计算环境中可用。在一个实施例中,存储器类型310查询计算环境来确定什么类型的存储器可用。在一个实施例中,存储器类型310确定是否任何高性能存储器可用。在一个实施例中,为了确定在计算环境(诸如计算设备100中)与所列应用相关联的各类型的存储器的能力和/或性能特征的目的,存储器类型310通过互联网访问应用特征的在线(web)目录。当特定存储器具有合适于应用的某些能力和/或性能特征(诸如具有高于预定阈值的带宽)时,存储器类型310将把特定存储器作为高性能存储器来分派。当存储器不具有符合预定阈值的特定能力和/或性能特征时,存储器类型310不将该存储器作为高性能来分派。在一个实施例中,当新存储器设备变得可用时,存储器能力和/或性能特征的在线目录被更新/修改。在一个实施例中,OS跟踪并测量存储器的与存储器标识相关的性能特征,并将所测的性能特征经由互联网上传到在线目录。在一个实施例中,用户可以通过姿势、触摸或声音向控制台1002提供输入。在一个实施例中,光学I/O接口1135接收并转换用户的姿势。在另一个实施例中,控制台1002包括自然用户界面(NUI)以接收并转换来自用户的声音和姿势输入。在一个替换的实施例中,前面板子组件1142包括触摸表面和话筒以用于接收并转换用户的触摸或声音(诸如声音命令)。在又一个实施例中,存储器能力和/或性能特征的目录被本地地存储在永久存储器中。
分配311负责将特定类型的存储器,诸如高性能存储器,分配给可能已经请求了高性能存储器的特定应用。在一个实施例中,可从高性能存储器中受益的应用具有请求高性能存储器的属性标志或信息。分配311在将应用分派给特定类型的存储器之前检查属性信息。在一个实施例中,分配311包括应用的属性信息列表,并将所存储的列表中的特定应用的属性信息与可能在应用的清单中的属性信息进行比较。
在一个实施例中,分配311可将属性信息递送到虚拟存储器分配器,其管理存储器页到物理存储器区域的分配。在另一个实施例中,分配311可将属性信息通过存储器控制器递送到物理存储器分配器。
在一个实施例中,分配311将确定请求高性能存储器的特定应用将使用的存储器的量,并在高性能存储器的足够量不可用时拒绝请求。在另一个实施例中,分配311将把全部运行或执行应用的运行时优先级进行比较,并在一个实施例中当高性能存储器被映射到具有较高优先级的应用时拒绝请求。
在一个实施例中,分配311还将请求高性能存储器的应用与列表进行比较,以确定是否将该应用分配到高性能存储器。在一实施例中,分配311包括黑名单应用列表,目的是阻止特定应用访问较高性能的存储器。可替换地,分配311包括白名单应用的列表,其可使用更高性能的存储器,即使应用的属性信息不请求高性能存储器。这个应用列表可本地地存在于分配311中,或在线通过互联网可访问,其他地方的处理器可读形式,并可被更新。在一个实施例中,因应用不具备合适的属性信息或该应用已经因在黑名单上而被阻塞而未被分配高性能存储器的应用,将被分配非高性能的存储器。
由于更高性能的存储器可能更快(更大带宽、更低存储器等待时间),且更加功率高效,因此当高性能存储器可用时,即使当应用不具备合适的属性信息也将高性能存储器分配给特定应用,使得计算设备可更加功率高效。
监视使用312负责监视已经被分配了特定类型的存储器的应用的存储器使用。存储器使用312监视正被使用的存储器的量,因此它将不超过计算环境中可用的物理可用存储器。监视使用312还标识高性能存储器何时可用,使得分配311可将应用分配到高性能存储器。在一个实施例中,监视使用312使用存储器控制器或驱动器来管理并跟踪特定应用使用的高性能存储器的量。在一个实施例中,监视使用312可编译所访问的存储器的应用使用的概览并将该应用使用的概览存储在永久存储器中,偶尔将所存储的信息通过互联网上传到在线目录。
错误检测和更正313负责在特定应用使用分配的类型的存储器时检测并更正错误。在各个实施例中,不同类型的检测和错误更正方法可被使用。例如,可以使用散列功能或校验和方法。在另一个实施例中,奇偶校验位方法可被使用在错误更正代码(ECC)或前向错误更正(FEC)方法中。
高速缓存管理314负责将高性能存储器用作一个或多个处理器的高速缓存。在替换实施例中,高速缓存管理315将高性能存储器用作虚拟高速缓存。
在一个实施例中,高性能存储器被使用以创建L1/L2/L3高速缓存存储器的虚拟化的保留空间或虚拟高速缓存。这允许高速缓存存储器更大并允许L1/L2/L3高速缓存存储器储备可用存储器空间用作其自己的目的。在一个实施例中,高速缓存管理315使用投机获取将可能要被L1/L2/L3高速缓存存储器使用的数据存储在高性能存储器(虚拟高速缓存)中。
高速缓存管理315将虚拟高速缓存存储器带宽(速度)低于典型的L1/L2/L3高速缓存带宽考虑在内。在一个实施例中,使用投机地将数据预读到更高性能的存储器中的缓解方法。高速缓存管理315还标识何时高性能存储器被抽干数据以馈送到L1/L2/L3高速缓存。
在替换实施例中,更高性能的存储器可被用作更高级别高速缓存。例如,宽I/ODRAM将扮演相比于SoC101中的L3高速缓存而言更高级别高速缓存的角色,并因此执行任务以提升性能。
监视性能、健康和配置(监视性能)315负责监视特定类型的存储器的性能,诸如带宽、健康和配置,诸如存储器排名。在一个实施例中,监视性能315在开机时和/或周期性查询每个类型的存储器以获得存储器细节,诸如带宽和/或热。在一个实施例中,监视性能315在开机时还将查询不同类型的存储器以寻找特定存储器配置。在一个实施例中,监视性能315使用如图2所示的ACPI驱动器以监视各种类型的存储器的性能、健康和配置。在一个实施例中,存储性能315编译与环境参数相关的特定存储器的健康简档,并周期性地将这样的健康简档经由互联网上传到在线目录。
管理功率316负责管理不同类型的存储器的功率。在一个实施例中,管理功率316管理具有可管理功率的存储器类型的功率。在一个实施例中,管理功率316将减少和/或增加提供给不同类型的存储器的功率的量,这取决于它们的状态和/或配置。在一个实施例中,(诸)处理器核103中的嵌入式存储器控制器将管理施加到高性能存储器102上的功率。在一个实施例中,管理功率316使用如图2所示的ACPI驱动器以管理各种类型的存储器。
尽管DMHM308被描述为被实现在OS205中,但是在替换实施例中,DMHM308可被编码在计算设备100的固件中。
返回到OS205的其他软件组件,I/O设备管理303负责管理I/O设备。在一个实施例中,特定硬件的特点向用户隐藏。在一个实施例中,设备驱动器知道特定设备的特点。例如,I/O设备管理303可负责盘管理功能,诸如空闲空间管理、存储器分配、碎片、移除和头部调度。
文件管理304负责创建并删除文件和目录。文件管理304可支持分层文件系统。文件管理304还可将文件备份到次级存储器上。
网络管理305负责与网络通信,包括提供连接/路由方法。网络管理305还可负责数据/进程迁移到其他计算设备。
用户界面306向用户提供特征和/或图形用户界面,并负责接收输入并向用户提供输出。
保护307负责控制程序、进程,和/或用户的对计算设备的资源的访问。例如,保护307负责控制对诸如CPU循环、存储器、文件,和/或I/O设备等资源的访问。保护307还负责用户认证和通信。
图4-6B是示出动态管理异类存储器的示例方法的流程图。在各实施例中,图4-6B中所示的步骤表示硬件(例如,处理器、存储器、电路)、软件(例如,OS、应用、驱动器、机器/处理器可执行指令)或用户的操作个体或其组合。如本领域普通技术人员将理解的,各实施例可以包括比示出的更多或更少的步骤。
图4是用于将不同类型的存储器分配给一个或多个软件应用的示例方法的流程图。步骤400示出了确定计算设备(诸如图1中所示的计算设备100)中的可用的存储器类型。在一个实施例中,DMHM308中的存储器类型310确定计算设备中可用的存储器类型。在一个实施例中,存储器类型310确定是否存在可用的高性能存储器或可用的执行存储器的不同类型的分层结构。
步骤401示出了从应用接收对服务和存储器类型的请求。在一个实施例中,应用向OS205请求服务和DMHM308,并且在特定分配311中,确定请求服务的应用是否还请求高性能存储器。在一个实施例中,分配311读取相关联的应用清单以确定发出请求的应用是否还请求高性能存储器。在一个实施例中,发出请求的应用请求如图1所示的高性能存储器102。
步骤402示出获取与发出请求的应用相关联的属性信息,并将该信息与来自应用的清单的属性信息进行比较。在一个实施例中,分配311读取与存储在ARBT207中的应用(具体而言应用表格)相关联的属性,并将该属性信息与在发出请求的应用的清单中的信息进行比较。
响应于步骤402中的比较,步骤403接着确定应用是否在请求高性能存储器。当发出请求的应用的应用清单中的属性信息与ARBT207中的属性信息相匹配时,在高性能存储器可用时且在应用不在黑名单(包括在ARBT207中的黑名单表格)上时(如步骤404和405中所示的),并且当发出请求的应用不请求比可用的存储器更多的存储器时(如步骤406中所示并在此描述的),发出请求的应用将被分配高性能存储器。
步骤404示出了确定发出请求的应用将使用多少存储器。在一个实施例中,监视使用312监视计算设备的存储器中的应用的使用。
步骤405确定发出请求的应用是否在白名单或黑名单上。当发出请求的应用在白名单上时,只要高性能存储器可用且应用不需要比可用的高性能存储器更多的高性能存储器时,就把高性能存储器分配给该应用,即使应用的属性信息不这样指示。在一个实施例中,当应用在黑名单上时,不管高性能存储器是否可用,拒绝向应用分配高性能存储器。在一个实施例中,黑名单和白名单被存储在ARBT207的表中。在替换实施例中,不使用黑名单和白名单。
步骤406示出了确定高性能存储器是否可用。在一个实施例中,监视使用312关于高性能存储器的可用性来更新分配311。
步骤407示出了在发出请求的应用具有1)合适的属性信息,2)不在黑名单上(或在白名单上,在一个实施例中在白名单上优先于缺乏合适的属性信息),3)高性能存储器可用以及4)可用的高性能存储器的量大于将被发出请求的应用使用的量大时,向发出请求的应用分配高性能存储器。在一个实施例中,分配311在上面的条件满足时将高性能存储器分配给发出请求的应用。在一个实施例中,少于上面的条件可被满足以将高性能存储器分配给发出请求的应用。否则,分配311将非高性能的存储器(替换存储器)分配给发出请求的应用。在一个实施例中,在高性能存储器未被分配时存储器104被分配。
在一个实施例中,分配来自应用的对一定量的存储器的请求的任务包括定位一块足够大小的未使用存储器。通过分配来自被知晓为“堆”的存储器的大池的部分来满足存储器请求。在任何给定时间,堆的一些部分在使用,而一些为“空闲”(未使用)并且因此为未来的分配可用。
步骤408示出了监视计算设备中不同类型的存储器的使用的DMHM308。具体而言,监视使用312监视正被一个或多个应用使用的高性能存储器的使用以及不是高性能的其他类型的存储器的使用。在一个实施例中,当在高性能存储器及其他类型的存储器中的存储器空间变得可用时,监视使用312通知分配311。
步骤409示出了当一个或多个应用正在使用各种类型的存储器时执行错误检测和更正。在一个实施例中,DMHM308中的错误检测和更正313执行该功能。
图5A是将高性能存储器用作虚拟高速缓存存储器的示例方法的流程图。步骤500示出了确定在计算设备中可用的存储器的类型。在一个实施例中,步骤500是类似于在此描述的步骤400而执行的。在一个实施例中,存储器类型310和/或高速缓存管理314作出该确定。
步骤501示出了确定高速缓存存储器是否可用。在一个实施例中,高速缓存管理314确定高速缓存存储器是否可用以及可用的高速缓存存储器的量。步骤501接着确定高性能存储器作为虚拟高速缓存存储器是否将提升计算设备的性能。在一个实施例中,高速缓存管理314将可用的高速缓存存储器的量与预定阈值进行比较。当可用的高速缓存存储器的量小于预定阈值时,高速缓存管理314接着将高性能存储器作为虚拟高速缓存存储器来分派,如步骤502中所示。在替换实施例中,当可从这样的分派受益的特定应用向OS302请求服务时,高速缓存管理314将高性能存储器分派作为虚拟高速缓存存储器。
步骤503示出了将数据存储在用作可能要被使用的虚拟高速缓存存储器的高性能存储器中。在一个实施例中,使用投机获取。
步骤504示出了缓解相比实际高速缓存存储器而言用作虚拟高速缓存存储器的高性能存储器的相对慢的速度。在一个实施例中,使用投机地将数据预读到更高性能的存储器中的缓解方法。
图5B是将高性能存储器用作高速缓存存储器的示例方法的流程图。类似于步骤500,步骤510示出了确定高速缓存存储器是否可用。在一个实施例中,高速缓存管理314确定高速缓存存储器是否可用以及可用的高速缓存存储器的量。步骤511接着确定高性能存储器作为高速缓存存储器是否将提升计算设备的性能。在一个实施例中,高速缓存管理314将可用的高速缓存存储器的量与预定阈值进行比较。当可用的高速缓存存储器的量小于预定阈值时,高速缓存管理314接着将高性能存储器作为高速缓存存储器来分派,如步骤512中所示。在替换实施例中,当可从这样的分派受益的特定应用向OS302请求服务时,高速缓存管理314将高性能存储器分派作为高速缓存存储器。
步骤513和514类似于步骤503和504执行,除了高性能存储器被用作高速缓存存储器而不是虚拟高速缓存存储器。
图6A是用于查询不同类型的存储器以获得包括配置、性能和健康的存储器信息的示例方法的流程图。步骤600示出了查询计算设备中不同类型的存储器的每一个以寻找存储器配置信息。在各实施例中,存储器配置可包括与类型、大小、带宽、宽度、排名、等待时间、时钟、计时参数和/或其他存储器配置参数相关的信息。在一个实施例中,未驻留在各种不同类型的存储器(诸如系统或配置存储器)上的具有配置信息的存储位置被查询,而不是实际存储器它们本身。
在一个实施例中,一个或多个处理器执行OS205,且具体地DMHM308,以获得存储器配置信息。在一个实施例中,监视性能315负责获得每个类型的存储器的配置信息。在一个实施例中,(诸)处理器核103执行OS205以在信号路径106和105上生成对高性能存储器102和存储器104的控制信号。响应于该控制信号,每个存储器接着返回配置信息。在一个实施例中,控制信号可包括在信号路径105和106上分开的命令输出。在一个实施例中,控制信号在开始时和/或周期性地输出。
步骤601示出了监视计算设备中不同类型的存储器的性能。在一个实施例中,类似于步骤600,(诸)处理器核103执行OS205以获得性能信息,诸如实际的带宽和/或实际的存储器等待时间。在替换实施例中,OS205且具体地DMHM308中的监视性能315,通过向不同类型的存储器写入和从不同类型的存储器读取来测量实际带宽和/或存储器等待时间。测试图案可被写入存储器并接着读出,同时对各类型的存储器的性能特征进行测量和/或计时。
步骤602示出了从计算设备中不同类型的存储器获取健康或状态信息。在一个实施例中,类似于步骤600和601,(诸)处理器核103执行OS205以获得健康信息,诸如不同类型的存储器的温度(热)和/或功耗。响应于来自(诸)处理器核103的在信号路径105和106上的控制信号,各存储器可在由各类型的存储器输出的状态信息中提供包括温度和所消耗的功率的健康信息。类似于上面的,这些控制信号可在开始时和/或周期性地被生成。同样类似于上面的,测试图案可被写入到并读取自不同类型的存储器,并与被发送的测试图案进行比较,以确定存储器是否正确存储并输出数据(错误检测)。
图6B是管理计算设备中的不同类型的存储器的功率的示例方法的流程图。步骤610示出了从计算设备中的不同类型的存储器的获取功率管理信息。在一个实施例中,类似于上述步骤,(诸)处理器核103执行OS205以获得关于特定类型的存储器设备是否可具有可被管理的功率的功率信息。在一个实施例中,各类型的存储器的功率管理信息被存储在不驻留在各类型的存储器上的存储器(诸如系统或配置存储器)中,并且可如上面所述的被检索。
步骤611示出了管理计算设备中不同类型的存储器的功率。在一个实施例中,当在步骤610中作出特定存储器可具有可管理的功率的判定时,所标识的存储器设备的功率被DMHM308中的管理功率316管理。例如,在存储设备不需要功率(诸如在睡眠或休眠模式)时,执行管理功率316的(诸)处理器核103输出将减少对功率可控制存储设备的功率的控制信号。
在一个实施例中,计算设备100中的一个或多个可以是但不限于是视频游戏和/或媒体控制台。图7现在将被用来描述示例性视频游戏和媒体控制台,或者更一般而言,将被用来描述包括游戏和媒体控制台的示例性游戏和媒体系统1000。对图7的以下讨论旨在提供对可以实现本文中所提出的概念的合适计算设备的简要概括描述。可以理解,图7的系统仅仅作为示例。在其他示例中,本文中所述的各实施例可以经由驻留在客户端计算设备上并由客户端计算设备执行的浏览器应用或软件应用使用各种客户端计算设备来实现。如图7所示,游戏和媒体系统1000包括游戏和媒体控制台(此后被称为“控制台”)1002。一般而言,控制台1002是一种类型的客户端计算设备。控制台1002被配置成适配一个或多个无线控制器,如由控制器10041和控制器10042所表示的。控制台1002配备有内部硬盘驱动器和支持如光学存储盘1008所表示的各种形式的便携式存储介质的便携式介质驱动器1006。合适的便携式存储介质的示例包括DVD、CD-ROM、游戏盘等。控制台1002还包括用于容纳可移动闪存型存储器单元1040的两个存储器单元卡插槽10251和10252。控制台1002上的命令按钮1035启用和禁用无线外围支持。
如图7所描绘的,控制台1002还包括用于与一个或多个设备进行无线通信的光学端口1030和支持针对附加控制器或其他外围设备的有线连接的两个USB端口10101和10102。在某些实现中,可修改附加端口的数量和安排。电源按钮1012和弹出按钮1014也位于控制台1002的正面。电源按钮1012被选择来对游戏控制台供电,且还可以提供对其它特征和控件的访问,而弹出按钮1014交替地打开和关闭便携介质驱动器1006的托盘以允许光学存储盘1008的插入和取出。
控制台1002经由A/V接口电缆1020连接到电视机或其他显示器(如监视器1050)。在一个实现中,控制台1002配备有被配置成用于使用A/V电缆1020(例如,适用于耦合到高清晰度显示器1050或其它显示设备上的高清晰度多媒体接口“HDMI”端口的A/V电缆)来进行内容受保护的数字通信的专用A/V端口。电源电缆1022向游戏控制台供电。控制台1002可进一步被配置成具有如电缆或调制解调器连接器1024所表示的宽带能力以便于访问诸如因特网等网络。还可通过诸如无线保真(Wi-Fi)网络等宽带网络来无线地提供宽带能力。
每一控制器1004经由有线或无线的接口耦合到控制台1002。在示出的实现中,控制器1004是USB兼容的并且经由无线或USB端口1010耦合到控制台1002。控制台1002可配备各种用户交互机制中的任何一种。在图7中示出的示例中,每个控制器1004都配备有两个拇指摇杆(thumbstick)10321和10322、D垫1034、按钮1036以及两个触发器1038。这些控制器仅为代表性的,且其他已知游戏控制器可替换或被添加到图7中示出的那些控制器。在一个实施例中,用户可以通过姿势、触摸或声音向控制台1002键入输入。在一个实施例中,光学I/O接口1135接收并转换用户的姿势。在另一个实施例中,控制台1002包括自然用户界面(NUI)以接收并转换来自用户的声音和姿势输入。在一个替换的实施例中,前面板子组件1142包括触摸表面和话筒以用于接收并转换用户的触摸或声音(诸如声音命令)。
在一个实现中,还可以将存储器单元(MU)1040插入到控制器1004中以提供附加和便携的存储。便携MU允许用户存储游戏参数以供在其它控制台上玩时使用。在此实现中,每一控制器被配置成适应两个MU1040,但是也可采用多于或少于两个MU。
游戏和媒体系统1000通常被配置成玩存储在存储器介质上的游戏,以及被配置成下载并玩游戏、和被配置成从电子和硬介质来源再现预先录制的音乐和视频。使用不同的存储供应,可从硬盘驱动器、从光存储盘介质(例如,1008)、从在线源、或从MU1040播放项。游戏和媒体系统1000能够播放的媒体的类型的示例包括:
从CD、DVD或高容量盘、从硬盘驱动器、或从在线来源播放的游戏项。
从便携介质驱动器1006中的CD、从硬盘驱动器或固态盘上的文件(例如,媒体格式的音乐)或从在线流送来源播放数字音乐。
从便携介质驱动器1006中的DVD盘、从硬盘驱动器上的文件(例如,活动流送格式(ActiveStreamingFormat))、或从在线流传送来源播放的数字音频/视频。
在操作期间,控制台1002被配置成接收来自控制器1004的输入并在显示器1050上显示信息。例如,控制台1002可在显示器1050上显示用户界面以便允许用户使用控制器1004来选择游戏并且显示状态可解性信息,如以下将描述的。
图8是游戏与媒体系统1000的功能框图并且更详细地示出游戏与媒体系统1000的各功能组件。控制台1002具有CPU1100以及促成处理器访问各种类型存储器的存储器控制器1102,各种类型存储器包括闪存ROM1104、RAM1106、硬盘驱动器或固态驱动器1108,以及便携式媒体驱动器1006。在一种实现中,CPU1100包括1级高速缓存1110和2级高速缓存1112,这些高速缓存临时存储数据并因此减少对硬盘驱动器1108进行的存储器访问周期的数量,从而提高了处理速度和吞吐量。
CPU1100、存储器控制器1102以及各种存储器设备经由一个或多个总线互连。在此实现中所使用的总线的细节对理解此处所讨论的关注主题不是特别相关。然而,应该理解,这样的总线可以包括串行和并行总线、存储器总线、外围总线、使用各种总线体系结构中的任何一种的处理器或局部总线中的一个或多个。作为示例,这样的架构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及也称为夹层总线的外围部件互连(PCI)总线。
在一个实现中,CPU1100、存储器控制器1102、ROM1104、以及RAM1106被集成到公用模块1114上。在此实现中,ROM1104被配置为经由PCI总线和ROM总线(两者都没有示出)连接到存储器控制器1102的闪存ROM。RAM1106被配置为多个双倍数据速率同步动态RAM(DDRSDRAM)或更快数据速率DRAM模块,它们被存储器控制器1102经由分开的总线被独立地控制。硬盘驱动器1108和便携式媒体驱动器1006被示为通过PCI总线和AT附加(ATA)总线1116连接到存储器控制器1102。然而,在其他实现中,也可以备选地应用不同类型的专用数据总线结构。
在另一个实施例中,至少CPU1100、1级高速缓存1110、2级高速缓存1112、存储器控制器1102和RAM存储器1106被包括在SoC(诸如图1中示出并在本文中描述的SoC101)中。在一个实施例中,RAM存储器1106被诸如宽I/ODRAM的高性能存储器替代,并且存储器控制器1102的功能由处理器核103执行。另一类型的非高性能存储器的存储器,诸如LPDDR3DRAM,将随后被耦合到如在此描述的SoC101。类似地,OS205被如在此描述的控制台1002中的SoC101使用。
三维图形处理单元1120和视频编码器1122构成了视频处理流水线,用于进行高速度和高分辨率(例如,高清晰度)图形处理。数据经由数字视频总线从图形处理单元1120传输到视频编码器1122。音频处理单元1124和音频编解码器(编码器/解码器)1126构成了对应的音频处理流水线,用于对各种数字音频格式进行多通道音频处理。音频数据经由通信链路在音频处理单元1124与音频编解码器1126之间传输。视频和音频处理流水线向A/V(音频/视频)端口1128输出数据,以便传输到电视机或其它显示器。在所示出的实现中,视频和音频处理组件1120-1128安装在模块1114上。
图8示出了包括USB主控制器1130和网络接口1132的模块1114。USB主控制器1130被示为经由总线(例如,PCI总线)与CPU1100和存储器控制器1102进行通信,并充当外围控制器10041-10044的主机。网络接口1132提供对网络(例如因特网、家庭网络等)的访问,并且可以是包括以太网卡、调制解调器、无线接入卡、蓝牙模块、电缆调制解调器等各种有线或无线接口组件中的任一种。
在图8中描绘的实现中,控制台1002包括用于支持四个控制器10041-10044的控制器支持子组件1140。控制器支持子组件1140包括支持与诸如,例如,媒体和游戏控制器之类的外部控制设备的有线和无线操作的任何硬件和软件组件。前面板I/O子组件1142支持电源按钮1012、弹出按钮1014,以及任何LED(发光二极管)或暴露在控制台1002的外表面上的其它指示器等多个功能。子组件1140和1142通过一个或多个电缆组件1144与模块1114进行通信。在其他实现中,控制台1002可以包括另外的控制器子组件。所示出的实现还示出了被配置成发送和接收可以传递到模块1114的信号的光学I/O接口1135。
MU10401和10402被示为能够分别连接到MU端口“A”10301和“B”10302。附加MU(例如,MU10403-10406)被示为能够连接到控制器10041和10043,即,每一控制器两个MU。控制器10042和10044还可以被配置成接收MU。每一个MU1040都提供附加存储,在其上面可以存储游戏、游戏参数、及其它数据。在一些实现中,其它数据可以包括数字游戏组件、可执行的游戏应用,用于扩展游戏应用的指令集、以及媒体文件中的任何一种。当被插入到控制台1002或控制器中时,MU1040可以被存储器控制器1102访问。
系统供电模块1150向游戏系统1000的组件供电。风扇1152冷却控制台1002内的电路。
包括处理器可读指令的应用1160被存储在硬盘驱动器1108上。当控制台1002被接通电源时,应用1160的各个部分被加载到RAM1106和/或高速缓存1110以及1112中以在CPU1100上执行,其中应用1160是一个这样的示例。各种应用可以存储在硬盘驱动器1108上以用于在CPU1100上执行。在一个实施例中,应用1160包括请求特定类型的存储器(如在此描述的高性能存储器)的使用的属性信息。
控制台1002还被示为包括通信子系统1170,其被配置成将控制台1002与一个或多个其他计算设备(例如,其他控制台)在通信上耦合。通信子系统1170可包括与一个或多个不同的通信协议相兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统1170可被配置成用于经由无线电话网络或者有线或无线局域网或广域网来进行通信。在某些实施例中,通信子系统1170可允许控制台1002经由网络(诸如因特网)向其他设备发送消息和/或从其他设备接收消息。在特定的实施例中,通信系统1170可以被用来与协调器和/或其他计算设备通信,以供发送下载请求和实现对数字内容的下载与上传。更一般而言,通信子系统1170可以使控制台1002能够参与对等通信。
可以通过简单地将系统连接到显示器1050(图7)、电视机、视频投影仪或其他显示设备来将游戏与媒体系统1000作为独立系统来操作。在此独立模式下,游戏和媒体系统1000允许一个或多个玩家玩游戏或欣赏数字媒体,例如观看电影或欣赏音乐。然而,随着通过网络接口1132(或者更一般地通信系统1170)使宽带连接的集成成为可能,游戏和媒体系统1000还可以作为更大的网络游戏社区(诸如对等网络)的参与者来操作。
上述控制台1002仅仅是参考图1及各其他附图所讨论的计算设备100的一个示例。如上所解释的,存在本文中所述的各实施例可以使用的各种其他类型的计算设备。
本发明系统的前述详细描述是出于说明和描述的目的而提供的。这并不旨在穷举本发明系统或将本发明系统限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择所述实施例以最好地解释本发明系统的原理及其实践应用,从而允许本领域技术人员能够在各种实施例中并采用各种适于所构想的特定用途的修改来最好地利用本发明系统。本发明系统的范围旨在由所附权利要求书来定义。

Claims (15)

1.一种将一种类型的集成电路存储器分配给由计算设备处理的应用的方法,所述方法包括:
确定所述计算设备中所述应用可用的集成电路存储器的类型,其中可用的各类集成电路存储器包括第一类型的集成电路存储器和第二类型的集成电路存储器;
从所述应用接收要使用所述第一类型的集成电路存储器的请求;以及
响应于来自所述应用的所述请求,分配要被所述应用使用的所述第一类型的集成电路存储器。
2.如权利要求1所述的方法,其特征在于,所述第一类型的集成电路存储器具有相比于所述第二类型的集成电路存储器更好的至少一个或多个性能特征。
3.如权利要求1所述的方法,其特征在于,所述第一类型的集成电路存储器具有相比于所述第二类型的集成电路存储器更高的带宽、更低的存储器等待时间或更低的功耗中的至少一个。
4.如权利要求1所述的方法,其特征在于,所述确定包括从存储器性能特征列表访问所述第一和第二类型的集成电路存储器的性能特征。
5.如权利要求1所述的方法,其特征在于,所述性能特征列表是通过互联网获取的,并且其中所述性能特征列表是以处理器可读格式存储的。
6.如权利要求1所述的方法,其特征在于,所述接收包括读取应用清单上的指示来自所述应用的请求包括使用所述第一类型的集成电路存储器的请求的属性信息。
7.如权利要求1所述的方法,其特征在于,所述分配包括将所述请求传送到存储器控制器的虚拟存储器分配器或物理存储器分配器中的至少一个,所述存储器控制器管理存储器页到所述计算设备中的物理存储器区域的分配。
8.如权利要求1所述的方法,其特征在于,还包括监视存储器位置以及在所述第一类型的集成电路存储器处的所述应用的使用。
9.如权利要求1所述的方法,其特征在于,还包括将所述应用与所述计算设备中所存储的应用列表进行比较,并且响应于所述应用在所存储的列表上,分配所述第一类型的集成电路存储器由分配要被所述应用使用的所述第二类型的集成电路存储器来代替,以及
其中当所述应用使用将超过所述第一类型的集成电路存储器的物理存储器空间时,分配所述第一类型的集成电路存储器由分配要被所述应用使用的所述第二类型的集成电路存储器来代替。
10.如权利要求1所述的方法,其特征在于,还包括将所述第一类型的集成电路存储器作为所述应用可访问的高速缓存存储器来分配。
11.如权利要求1所述的方法,其特征在于,所述确定包括向第一和第二类型的集成电路存储器发起对关于所述集成电路存储器的信息的请求,其中关于所述集成电路存储器的所述信息选自存储器配置或功率管理之一。
12.一种装置,包括:
一个或多个处理器;
具有第一性能特征的第一处理器可读存储器;
具有第二性能特征的第二处理器可读存储器,其中所述第一性能特征优于所述第二性能特征;
一个或多个软件应用;以及作系统的所述处理器可读指令以:
确定一个或多个软件应用是否请求所述第一处理器可读存储器的使用,
确定所述一个或多个软件应用使用的处理器可读存储器的量,以及
响应于对使用所述第一处理器可读存储器的请求以及所述一个或多个软件应用使用的处理器可读存储器的量,允许所述一个或多个软件应用中的至少一个访问所述第一处理器可读存储器。
13.如权利要求12所述的装置,其特征在于,所述第一和第二性能特征选自带宽、存储器等待时间或功耗中的一个。
14.如权利要求12所述的装置,其特征在于,所述一个或多个处理器和第一处理器可读存储器被集成到由第一封装安置的单个半导体管芯中,并且其中所述第二处理器可读存储器被包括在由第二封装安置的第二半导体管芯中。
15.如权利要求12所述的装置,其特征在于,所述一个或多个处理器被包括在第一半导体管芯上,且所述第一处理器可读存储器被包括在第二半导体管芯上,其中所述第一和第二管芯由第一封装安置,并且其中所述第二处理器可读存储器被包括在由第二封装安置的第三半导体管芯中。
CN201480006767.3A 2013-02-04 2014-01-29 集成电路存储器分配方法、装置、介质以及系统 Expired - Fee Related CN105144106B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/758,613 US9110592B2 (en) 2013-02-04 2013-02-04 Dynamic allocation of heterogenous memory in a computing system
US13/758,613 2013-02-04
PCT/US2014/013468 WO2014120698A1 (en) 2013-02-04 2014-01-29 Dynamic management of heterogeneous memory

Publications (2)

Publication Number Publication Date
CN105144106A true CN105144106A (zh) 2015-12-09
CN105144106B CN105144106B (zh) 2020-05-05

Family

ID=50156901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480006767.3A Expired - Fee Related CN105144106B (zh) 2013-02-04 2014-01-29 集成电路存储器分配方法、装置、介质以及系统

Country Status (11)

Country Link
US (1) US9110592B2 (zh)
EP (1) EP2951689A1 (zh)
JP (1) JP2016510471A (zh)
KR (1) KR102207598B1 (zh)
CN (1) CN105144106B (zh)
AU (1) AU2014212559A1 (zh)
BR (1) BR112015018321A2 (zh)
CA (1) CA2898127A1 (zh)
MX (1) MX352450B (zh)
RU (1) RU2015132229A (zh)
WO (1) WO2014120698A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106997275A (zh) * 2016-01-26 2017-08-01 南宁富桂精密工业有限公司 缓存管理方法及使用该方法的电子装置
CN107918525A (zh) * 2016-10-07 2018-04-17 三星电子株式会社 能执行对等通信的存储设备和包括其的数据存储系统
CN108292265A (zh) * 2015-12-23 2018-07-17 英特尔公司 对高性能存储器的存储器管理
CN109753236A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 存储系统及其操作方法
CN111177019A (zh) * 2019-08-05 2020-05-19 腾讯科技(深圳)有限公司 一种内存分配管理方法、装置、设备及存储介质
CN111210857A (zh) * 2016-06-27 2020-05-29 苹果公司 组合了高密度低带宽和低密度高带宽存储器的存储器系统
CN111309644A (zh) * 2020-02-14 2020-06-19 苏州浪潮智能科技有限公司 一种内存分配方法、装置和计算机可读存储介质
US11221931B2 (en) 2019-01-15 2022-01-11 SK Hynix Inc. Memory system and data processing system
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215177A1 (en) * 2012-08-02 2014-07-31 Boo Jin Kim Methods and Systems for Managing Heterogeneous Memories
US20150377937A1 (en) * 2013-03-22 2015-12-31 St-Ericsson Sa Calculating Power Consumption of Electonic Devices
US20150169445A1 (en) * 2013-12-12 2015-06-18 International Business Machines Corporation Virtual grouping of memory
WO2015123225A1 (en) * 2014-02-11 2015-08-20 Atlantis Computing, Inc. Aggregating memory to create a network addressible storage volume for storing virtual machine files
JP6448254B2 (ja) * 2014-08-19 2019-01-09 ラピスセミコンダクタ株式会社 メモリ制御装置及びメモリ制御方法
US10290342B2 (en) 2014-08-22 2019-05-14 Alacrity Semiconductors, Inc. Methods and apparatus for memory programming
US10248497B2 (en) * 2014-10-22 2019-04-02 Advanced Micro Devices, Inc. Error detection and correction utilizing locally stored parity information
US9720827B2 (en) * 2014-11-14 2017-08-01 Intel Corporation Providing multiple memory modes for a processor including internal memory
US20160147573A1 (en) * 2014-11-24 2016-05-26 Samsung Electronics Co., Ltd. Computing system with heterogeneous storage and process mechanism and method of operation thereof
US9606851B2 (en) 2015-02-02 2017-03-28 International Business Machines Corporation Error monitoring of a memory device containing embedded error correction
US9940457B2 (en) 2015-02-13 2018-04-10 International Business Machines Corporation Detecting a cryogenic attack on a memory device with embedded error correction
JP6519228B2 (ja) * 2015-02-27 2019-05-29 富士通株式会社 データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法
US10606651B2 (en) 2015-04-17 2020-03-31 Microsoft Technology Licensing, Llc Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit
US10157008B2 (en) 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
US10452995B2 (en) 2015-06-29 2019-10-22 Microsoft Technology Licensing, Llc Machine learning classification on hardware accelerators with stacked memory
US10540588B2 (en) 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US9942631B2 (en) * 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
JP6716894B2 (ja) * 2015-11-19 2020-07-01 日本電気株式会社 メモリ割り当て装置、メモリ割当方法、および、プログラム
US10168985B2 (en) * 2015-12-21 2019-01-01 Intel Corporation Dynamic audio codec enumeration
US10372635B2 (en) * 2016-08-26 2019-08-06 Qualcomm Incorporated Dynamically determining memory attributes in processor-based systems
KR20180038109A (ko) * 2016-10-05 2018-04-16 삼성전자주식회사 모니터링 회로를 포함하는 전자 장치 및 그것에 포함되는 스토리지 장치
US10482007B2 (en) * 2016-12-06 2019-11-19 Noblis, Inc. Memory allocation on non-volatile storage
WO2018120010A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Memory sharing for application offload from host processor to integrated sensor hub
WO2018137257A1 (en) * 2017-01-27 2018-08-02 Intel Corporation Dynamic code execution location in heterogeneous memory
US10180793B2 (en) 2017-01-31 2019-01-15 Hewlett Packard Enterprise Development Lp Performance attributes for memory
US10368128B2 (en) * 2017-08-11 2019-07-30 Microsoft Technology Licensing, Llc Memory allocation type for media buffer
US11171665B2 (en) 2017-09-11 2021-11-09 Nyriad Limited Dictionary-based data compression
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
US11010330B2 (en) 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
US11307796B2 (en) * 2018-09-27 2022-04-19 International Business Machines Corporation Mapping memory allocation requests using various memory attributes
US10831659B2 (en) 2018-09-28 2020-11-10 International Business Machines Corporation Scope resolution tag buffer to reduce cache miss latency
KR102149153B1 (ko) * 2018-10-08 2020-08-28 울산과학기술원 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치
US10474509B1 (en) * 2018-10-17 2019-11-12 Fmr Llc Computing resource monitoring and alerting system
US10983832B2 (en) 2019-02-14 2021-04-20 International Business Machines Corporation Managing heterogeneous memory resource within a computing system
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20210004322A (ko) 2019-07-04 2021-01-13 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법
KR102666123B1 (ko) 2019-07-05 2024-05-16 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
JP2021043654A (ja) * 2019-09-10 2021-03-18 富士通株式会社 情報処理装置及びプロセス配置決定プログラム
US11500575B2 (en) * 2020-09-23 2022-11-15 Micron Technology, Inc. Pattern generation for multi-channel memory array
WO2022139990A1 (en) * 2020-12-21 2022-06-30 Arris Enterprises Llc Method and system for memory management on the basis of zone allocations and optimization using improved lmk

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825290A (zh) * 2005-02-12 2006-08-30 美国博通公司 一种管理存储器的方法及一种存储器
CN101667448A (zh) * 2008-09-04 2010-03-10 奕力科技股份有限公司 存储器存取控制装置及其相关控制方法
CN101918930A (zh) * 2008-01-16 2010-12-15 S.阿夸半导体有限公司 级联存储器装置
US20110040947A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Memory Management and Efficient Data Processing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568651A (en) * 1994-11-03 1996-10-22 Digital Equipment Corporation Method for detection of configuration types and addressing modes of a dynamic RAM
JP2874571B2 (ja) * 1994-12-14 1999-03-24 日本電気株式会社 メモリ管理装置
US6567904B1 (en) * 1995-12-29 2003-05-20 Intel Corporation Method and apparatus for automatically detecting whether a memory unit location is unpopulated or populated with synchronous or asynchronous memory devices
TW493119B (en) * 2001-03-28 2002-07-01 Via Tech Inc Method for automatically identifying the type of memory and motherboard using the same
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
EP1589433A1 (en) 2004-04-20 2005-10-26 Ecole Polytechnique Federale De Lausanne Virtual memory window with dynamic prefetching support
US7395385B2 (en) 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
US20070174502A1 (en) * 2006-01-23 2007-07-26 Cheng-Chieh Lin Method and apparatus of identifying type of non-volatile memory
US7490217B2 (en) * 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
US8286014B2 (en) 2008-03-25 2012-10-09 Intel Corporation Power management for a system on a chip (SoC)
US8244962B2 (en) * 2009-04-08 2012-08-14 Google Inc. Command processor for a data storage device
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US8468373B2 (en) * 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8990490B2 (en) * 2011-11-29 2015-03-24 Rambus Inc. Memory controller with reconfigurable hardware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825290A (zh) * 2005-02-12 2006-08-30 美国博通公司 一种管理存储器的方法及一种存储器
CN101918930A (zh) * 2008-01-16 2010-12-15 S.阿夸半导体有限公司 级联存储器装置
CN101667448A (zh) * 2008-09-04 2010-03-10 奕力科技股份有限公司 存储器存取控制装置及其相关控制方法
US20110040947A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Memory Management and Efficient Data Processing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. G. W GOOSSENS: "A PROTOCOL AND MEMORY MANAGER FOR ON-CHIP COMMUNICATION", 《THE 2011 IEEE INTERNATIONALSYMPOSIUM ON CIRCUITS AND SYSTEMS》 *
LIDWINE MARTINOT: "Dynamic Memory Allocation Optimizes Integration of Blackfin® Processor Software", 《ANALOG DIALOGUE,ANALOG DEVICES》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292265A (zh) * 2015-12-23 2018-07-17 英特尔公司 对高性能存储器的存储器管理
CN108292265B (zh) * 2015-12-23 2023-12-05 英特尔公司 对高性能存储器的存储器管理
CN106997275B (zh) * 2016-01-26 2019-09-03 南宁富桂精密工业有限公司 缓存管理方法及使用该方法的电子装置
CN106997275A (zh) * 2016-01-26 2017-08-01 南宁富桂精密工业有限公司 缓存管理方法及使用该方法的电子装置
US11830534B2 (en) 2016-06-27 2023-11-28 Apple Inc. Memory system having combined high density, low bandwidth and low density, high bandwidth memories
CN111210857A (zh) * 2016-06-27 2020-05-29 苹果公司 组合了高密度低带宽和低密度高带宽存储器的存储器系统
CN111210857B (zh) * 2016-06-27 2023-07-18 苹果公司 组合了高密度低带宽和低密度高带宽存储器的存储器系统
CN107918525B (zh) * 2016-10-07 2022-08-16 三星电子株式会社 能执行对等通信的存储设备和包括其的数据存储系统
CN107918525A (zh) * 2016-10-07 2018-04-17 三星电子株式会社 能执行对等通信的存储设备和包括其的数据存储系统
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
CN109753236B (zh) * 2017-11-08 2022-05-31 爱思开海力士有限公司 存储系统及其操作方法
CN109753236A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 存储系统及其操作方法
US11221931B2 (en) 2019-01-15 2022-01-11 SK Hynix Inc. Memory system and data processing system
CN111177019B (zh) * 2019-08-05 2021-07-16 腾讯科技(深圳)有限公司 一种内存分配管理方法、装置、设备及存储介质
CN111177019A (zh) * 2019-08-05 2020-05-19 腾讯科技(深圳)有限公司 一种内存分配管理方法、装置、设备及存储介质
CN111309644A (zh) * 2020-02-14 2020-06-19 苏州浪潮智能科技有限公司 一种内存分配方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
BR112015018321A2 (pt) 2017-07-18
KR20150114958A (ko) 2015-10-13
US9110592B2 (en) 2015-08-18
WO2014120698A1 (en) 2014-08-07
MX352450B (es) 2017-11-24
KR102207598B1 (ko) 2021-01-25
US20140223098A1 (en) 2014-08-07
EP2951689A1 (en) 2015-12-09
RU2015132229A (ru) 2017-02-08
CA2898127A1 (en) 2014-08-07
JP2016510471A (ja) 2016-04-07
MX2015010046A (es) 2016-03-04
AU2014212559A1 (en) 2015-07-30
CN105144106B (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
CN105144106A (zh) 异类存储器的动态管理
CN104871143B (zh) 用于使用服务质量来向相异存储设备分配存储的系统和方法
CN104541256B (zh) 智能远存储器带宽缩放
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
CN107077303A (zh) 分配和配置持久存储器
KR20210147976A (ko) 확장 가능하고 일관성 있는 메모리 장치를 위한 시스템 및 방법
CN105190525B (zh) 管理在节电模式中对混合式驱动器的访问
US10346300B2 (en) Providing multiple memory modes for a processor including internal memory
CN102289388B (zh) 服务器管理ipmi接口协议的扩展方法
US10346345B2 (en) Core mapping
CN107533442A (zh) 用于对异构系统存储器中的存储器功率消耗进行优化的系统和方法
CN107209645A (zh) 动态改变锁步配置
CN110321331A (zh) 利用多级散列函数来确定存储地址的对象存储系统
TW201727473A (zh) 具有記憶體管理機制之計算系統及其操作方法以及非暫時性電腦可讀取媒體
CN109690504A (zh) 混合式存储器驱动器、计算机系统及用于操作多重模式混合式驱动器的相关方法
US10802760B2 (en) Apparatus and method of intelligent dynamic application aware storage device optimization
CN105580025A (zh) 验证特定信息由应用传输
DE102022131051A1 (de) Verschaltungsnetzwerk für mehrfachkachel-system-auf-chips
JP2017507395A (ja) マルチモード・ゲーミング・サーバー
CN105103139B (zh) 用于改善跨越相干总线的信号量管理序列的性能的方法和设备
US12013780B2 (en) Multi-partition memory sharing with multiple components
US20160070320A1 (en) Individual Device Reset and Recovery in a Computer
US9432627B2 (en) Restricting information requested by an application
CN104462315A (zh) 一种实现lustre文件系统对云渲染农场支持的方案
US20240211416A1 (en) Physical Adjustment to System Memory with Chipset Attached Memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200505