CN105556493B - 用于跨设备组合存储器资源的设备、方法 - Google Patents

用于跨设备组合存储器资源的设备、方法 Download PDF

Info

Publication number
CN105556493B
CN105556493B CN201380079696.5A CN201380079696A CN105556493B CN 105556493 B CN105556493 B CN 105556493B CN 201380079696 A CN201380079696 A CN 201380079696A CN 105556493 B CN105556493 B CN 105556493B
Authority
CN
China
Prior art keywords
memory
nearly
equipment
circuit
remote
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
Application number
CN201380079696.5A
Other languages
English (en)
Other versions
CN105556493A (zh
Inventor
N·M·阿布格查拉
P·S·迪芬伯格
N·S·杰干纳坦
E·高巴托夫
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105556493A publication Critical patent/CN105556493A/zh
Application granted granted Critical
Publication of CN105556493B publication Critical patent/CN105556493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

公开了用于跨设备组合存储器资源的示例。在某些示例中,可以跨两个设备组合与由电路执行一个或多个应用程序相关联的存储器资源。所述电路可以能够使用包括近存储器以及远存储器的两级存储器(2LM)架构来执行一个或多个应用程序。在某些示例中,近存储器可包括分离地位于两个设备中的近存储器以及位于两个设备中的一个设备中的远存储器。可以使用远存储器来以对第一设备或第二设备的操作系统透明的方式在分离地定位的近存储器之间迁移存储器内容的一个或多个副本。描述并要求保护其他示例。

Description

用于跨设备组合存储器资源的设备、方法
技术领域
此处所描述的各示例一般涉及跨计算设备聚合资源。
背景技术
正在开发各种形状因子的计算设备,包括计算能力、联网能力和存储器容量的提升。某些形状因子尝试足够小和/或轻以实际由用户佩带。例如,护目镜、腕带、项链或其他类型的可穿戴形状因子正在被视为计算设备的可能的形状因子。另外,诸如智能电话或平板之类的移动形状因子大大地提高了计算和联网能力,它们的使用在最近几年按指数速率增长。
附图简述
图1示出了第一系统的示例。
图2示出了第二系统的示例。
图3示出了第三系统的示例。
图4示出了示例状态机。
图5示出了第一过程的示例。
图6示出了第二过程的示例。
图7示出了用于存储器检查点执行(checkpointing)的示例逻辑流程。
图8示出了第一设备的示例框图。
图9示出了第一逻辑流程的示例。
图10示出第一存储介质的示例。
图11示出第二设备的示例框图。
图12示出了第二逻辑流程的示例。
图13示出了第二存储介质的示例。
图14示出了设备的示例。
具体实施方式
各示例一般涉及对于跨设备聚合计算、存储器以及输入/输出(I/O)资源的改善。跨诸如计算设备之类的设备的聚合可能会受可能使用多个计算设备(每一个计算设备都可能具有不同的功能和/或能力)的影响。例如,某些计算设备对于用户而言可能足够小,以便实际佩带该计算设备。其他类型的小形状因子计算设备可包括智能电话或平板,尺寸/重量以及长的电池寿命是这些设备的用户希望的特征。因此,可穿戴设备、智能电话或平板计算设备可能各自相对重量轻,并可以使用低的功率以延长电池寿命。用户还可能期望较大的计算能力,这在这些小形状因子中可能不能提供。
其他类型的计算设备可能在某种程度上静止,并因此可能具有较大的形状因子,其由固定电源或与可穿戴设备,智能电话或平板计算设备相比相对较大的电池来供电。这些其他计算设备可包括台式计算机、膝上型计算机、或具有集成的、大号(例如,大于15英寸)显示器的单体计算机。这些其他设备的大形状因子和固定电源(例如,通过电源插座)或大电池电源可以允许更多计算、存储器或I/O资源与这些形状因子包括在一起或附接到这些形状因子。具体而言,与较大的形状因子相关联的较高的热容量与积极的冷却的可能的使用(例如,通过一个或多个风扇)一起,可以允许更多计算、存储器或I/O资源--与较小形状因子相比。相比之下,如上文所提及的可穿戴设备,智能电话或平板计算设备具有相对较小的形状因子,取决于电池电量并可能没有积极(active)的冷却能力。此外,还电源电路以及电池的使用还可能会降低这些类型的设备的载流容量。降低的载流容量可能会限制各种潜在地强大的计算资源以这些较小形状因子来实现。进一步,较高成本和/或空间限制可能导致相对较低数量的某些类型的存储器资源(诸如双倍数据速率同步动态随机存取存储器(DDR SRAM)存储器)。
跨具有不同的存储器能力的计算设备的存储器资源的聚合可能是希望的目标。当前的跨计算设备聚合存储器资源的尝试主要依赖于软件实现。这些类型的软件实现通常会导致高等待时间以及降级的用户体验。例如,当在诸如智能电话和单体计算机之类的聚合设备之间流式传送高清晰视频或游戏信息时,可能会导致与软件实现相关联的用户可感知等待时间。当在各设备之间聚合存储器资源时,用户可感知等待时间可能会导致不连贯的或停止的视频。如此,当主要依赖软件实现来进行聚合时,跨多个计算设备的存储器资源的无缝聚合可能会有问题。正是针对这些和其它挑战才需要此处所描述的示例。
根据某些示例,示例第一方法可以在具有第一电路(例如,处理元件和/或图形引擎)的第一设备(源设备)上实现。对于这些示例,第一电路可以能够使用包括第一近存储器(near memory)和第二远存储器(far memory)的两级(two-level)存储器(2LM)架构或方案,执行一个或多个应用程序。对于这些示例,可以检测具有第二电路的第二设备(目标设备)。第二电路可以能够使用也包括第二近存储器的2LM架构来执行一个或多个应用程序。源设备上的逻辑和/或特征可以导致源设备连接到目标设备,例如,通过有线或无线互连。逻辑和/或特征可以使用第一远存储器来将存储器内容的副本从第一近存储器迁移到第二近存储器。根据这些第一示例方法,使用第一远存储器来将存储器内容的副本迁移到第二近存储器可以允许逻辑和/或特征以对源设备或目标设备的操作系统(OS)透明的方式来迁移存储器内容。
在某些其他示例中,示例第二方法可以在具有第一电路的第一设备(目标设备)上实现,所述第一电路能够使用具有第一近和第一远存储器的2LM架构来执行一个或多个应用程序。对于这些示例第二方法,可以在具有第二电路的第二设备(源设备)连接到目标设备时,检测该第二设备,所述第二电路能够使用在源设备中也包括第二近存储器的2LM架构来执行一个或多个应用程序。目标设备上的逻辑和/或特征可以能够从第一远存储器接收来自第二近存储器的存储器内容的副本。存储器内容可能已经被第二电路用来执行一个或多个应用程序。逻辑和/或特征可以以对目标或源设备的OS透明的方式,将存储器内容的副本存储到第一近存储器。然后,存储到第一近存储器的存储器内容可以被第一电路用来执行一个或多个应用程序。
图1示出了示例第一系统。在某些示例中,示例第一系统包括系统100。系统100,如图1所示,包括设备105和设备155。根据某些示例,设备105和155可以表示不同的形状因子的计算设备的两个示例。如下文比较详细地描述的,设备105可以是较小形状因子,其可以主要依靠电池电量来操作,而设备155可以是相对较大的形状因子,其可以主要依靠固定电源,诸如通过例如与从电力公司(power utility)购买的电能相关联的电源插座(poweroutlet)接收到的交流电(A/C),来操作。
在某些示例中,设备105在图1中被示为从正面观察到的,正面可以对应于设备105的包括触摸屏/显示器110的一侧,触摸屏/显示器110可以向设备105的用户呈现执行应用程序144(a)的视图。类似地,在图1中,设备155被示为从正面观察到的,该正面包括触摸屏/显示器150,触摸屏/显示器150可以向设备155的用户呈现执行应用程序144(b)的视图。虽然在某些示例中,显示器也可能存在于设备105或设备155的背面,但是,为便于说明,图1不包括任一设备的背面显示器。
根据某些示例,设备105和155的正面视图包括当用户从正面图查看这些设备时可以至少部分地对用户可见的元件/特征。当从正面视图查看设备105或155时,某些元件/特征也可以不对用户可见。对于这些示例,实线框可以表示可以至少部分地对用户可见的那些特征,而虚线框可以表示可以不对用户可见的那些元件/特征(例如,在外壳下面)。例如,收发器/通信(通信)接口102和180可以不对用户可见,相机104、音频扬声器106、输入按钮108、麦克风109或触摸屏/显示器110中的至少一部分可以对用户可见。根据某些示例,如图1所示,通信链路107可以通过网络接口103,以无线方式耦合设备100。对于这些示例,网络接口103可以被配置为和/或能够根据一个或多个无线通信标准来操作,以通过通信链路107,与网络(未示出)建立网络连接。网络连接可以允许设备105接收/传输数据和/或允许通过网络进行语音通信。
在某些示例中,设备105的各种元件/特征可以能够提供与检测到的输入命令(例如,用户手势或音频命令)相关联的传感器信息。例如,触摸屏/显示器110可以检测触摸手势。相机104可以检测空间/空中手势或模式/对象识别。麦克风109可以检测音频命令。在某些示例中,检测到的输入命令可能会影响执行应用程序144(a),并可以被解释为天然的UI输入事件。虽然在图1中未示出,物理键盘或小键盘也可以接收可影响执行应用程序144(a)的输入命令。
根据某些示例,如图1所示,设备105可包括电路120、电池130、存储器140和存储145。电路120可包括能够执行至少在存储器140中临时维护的应用程序144的一个或多个处理元件和图形引擎。电路120也可能能够执行操作系统(OS)142,该操作系统142也可以至少在存储器140中维护。
在某些示例中,如图1所示,设备155可包括电路160、存储175、存储器170和收发器/通信接口180。设备155也可以包括可以的设备155的组件提供积极的冷却的风扇165。也如图1所示,设备155可包括集成的组件182。集成的组件182可包括各种I/O设备,诸如,但不仅限于,可能与设备155集成的相机、麦克风、扬声器或传感器。
根据某些示例,如图1所示,设备155可以通过芯线194耦合到电源插座195。对于这些示例,设备155可以通过经由芯线194耦合到电源插座195来接收固定电源(例如,A/C电源)。
在某些示例中,如图1所示,设备155可以通过通信链路184耦合到外围设备185。对于这些示例,外围设备185可包括,但不仅限于,监视器、显示器、外部存储设备、扬声器、麦克风、游戏控制器、相机、诸如键盘、鼠标、轨迹球或指示笔之类的I/O输入设备。
根据某些示例,设备105的逻辑和/或特征可以能够检测设备155。例如,收发器/通信接口102和180可以各自都包括有线和/或无线接口,这些接口可以允许设备105建立有线/无线通信信道,以通过互连101与设备155进行连接。在某些示例中,设备105可以物理地连接到耦合到设备155的有线接口(例如,在坞站(docking station)或加密狗(dongle)中)。在其他示例中,设备105可以进入给定物理接近度内,该物理接近度可以允许设备105建立无线连接,诸如与设备155无线对接。响应于有线或无线连接,可以交换可以允许设备105检测设备155以及确定设备155的至少某些能力(诸如可用于执行应用程序144的电路)的信息。在某些示例中,收发器/通信接口102和180中所包括的有线和/或无线接口可以根据一个或多个低等待时间、高带宽和有效率的互连技术来进行操作。有线互连技术可包括,但不仅限于,与行业标准或规范(包括后代和变体)相关联的那些,包括2010年11月发布的外围组件互连(PCI)快速(Express)基本规范,修订版3.0,(“PCI快速”或“PCIe”)或类似于QuickPath(快径)互连(“QPI”)之类的互连。无线互连技术可包括,但不仅限于,与WiGigTM和/或Wi-FiTM相关联的那些,并可包括通过各种频带,包括Wi-Fi和/或WiGig频带,例如,2.4,5或60千兆赫,建立和/或维护无线通信信道。可以在由电气电子工程师学会(电气电子工程师学会)发布的各种标准中描述这些类型的无线互连技术。这些标准可包括与对于信息技术的IEEE标准相关联的以太网无线标准(包括后代和变体)——Telecommunications and information exchange between systems-Local andmetropolitan area networks-Specific requirements Part 11:WLAN Media AccessController(MAC)and Physical Layer(PHY)Specifications,2012年3月发布,和/或此标准的更高版本(“IEEE 802.11”)。与WiFi和WiGig以及无线对接相关的一个这样的标准是IEEE 802.11ad。
根据某些示例,电路160可包括能够执行也可以临时维护在存储器170中的OS 142的一个或多个处理元件和图形引擎。电路160也可以能够执行也至少临时维护在存储器170中的应用程序144。在某些示例中,可以通过互连101,从设备105的逻辑和/或特征发送与执行诸如应用程序144之类的应用程序或OS 142相关联的上下文信息和存储器内容。上下文信息和存储器内容可以允许电路160从电路120接管或恢复应用程序144和/或OS142的执行。可以从电路120用来执行应用程序144和/或OS 142的一个或多个高速缓存(例如,处理器缓存)中转储清除(flush)上下文信息。然后,可以将存储器140(例如,近存储器)中所包括的存储器内容以及清空的上下文信息发送到设备155中的第二近存储器(例如,存储器170中所包括的)。现在具有清空的上下文信息和存储器内容的第二近存储器可以允许电路160执行应用程序144,这可能会导致当执行应用程序144(b)时该执行在显示器150上的呈现。
在某些示例中,应用程序144可包括设备105的用户可能希望使用在设备155中可用的增多的计算、存储器或I/O资源的应用程序的类型。例如,由于积极的冷却,固定电源和较大的形状因子,电路160可包括相比电路120而言显著更多的计算能力和/或存储器资源。就较高的计算能力而言,这可能至少部分地由于通过风扇165的使用,用于从电路160散热的热容量较高,以及由于通过诸如大散热器或热管之类的无源装置,发散热量的表面面积较大。如此,电路160可以在显著较高热范围内操作。此外,就较高存储器资源而言,大形状因子可以允许附加存储器模块。进一步,通过电源插座195接收电能可以使设备155向电路160和/或存储器170提供显著更高的载流容量。较高的载流容量可以允许电路160和/或存储器170更快速地对某些类型的应用程序(诸如交互游戏或视频编辑)可能常见的快速的爆发式的计算需求作出响应。
应用程序144也可以包括各种应用程序,诸如要呈现在诸如具有15英寸或更大的垂直显示距离的显示器之类的较大的显示器上的高清晰流式传送视频应用程序(例如,具有至少4K分辨率)。例如,电路120可以适用于在相对较小的触摸屏/显示器110上呈现高清晰视频,但是,较大的触摸屏/显示器150可能超出电路120的能力和/或设备105的热容量。如此,电路160可以被用来执行这些类型的应用程序,以向较大的触摸屏/显示器150或外围设备185中可能包括的甚至更大的显示器呈现高清晰流。
应用程序144也可以包括能够在大或小显示器上使用的触摸屏应用程序。例如,触摸屏应用程序可以由电路160执行,以将较大尺寸的和/或较高分辨率触摸屏图像呈现到触摸屏/显示器150。触摸屏应用程序还可能能够在多个屏幕上镜像触摸屏图像。例如,触摸屏应用程序的一部分可以通过电路120向触摸屏/显示器110呈现正在执行的应用程序144(a)来实现,另一部分可以通过电路160向触摸屏/显示器150呈现正在执行的应用程序144(b)来实现。对于此示例,可以通过互连101,在电路120和电路160之间交换一致性信息,以允许触摸屏应用程序的联合执行。根据某些示例,设备105中的逻辑和/或特征可以能够将存储器140中所包括的存储器内容的一个或多个副本迁移到存储器170。一旦存储器内容的副本被迁移到存储器170,电路160就可以使用存储器内容的副本来执行应用程序144。对于这些示例,存储器内容的一个或多个副本可以被以对由设备105或设备155处的电路执行的至少OS 142透明的方式迁移。如下文比较详细地描述的,两级存储器(2LM)架构或方案的使用可以允许这种信息交换,其对诸如OS 142之类的操作系统和/或应用程序144而言是透明的。也如下文比较详细地描述的,2LM架构可包括分离地维护在两个设备上的近存储器和维护在两个设备中的一个设备上的远存储器。两个近存储器和一个远存储器可以被组合,以便诸如OS 142之类的OS或诸如应用程序144之类的应用程序可以不知晓哪一个设备正在实际执行OS或应用程序。结果,存储器内容的一个或多个副本在分离地维护的近存储器之间的迁移可以对OS或应用程序透明。
图2示出了第二系统的示例。在某些示例中,示例第二系统包括系统200。如图2所示的系统200包括设备205和设备255的各种组件。根据某些示例,设备205的组件可以通过互连201耦合到设备255的组件。类似于上文对于图1所提及的设备105和155,可以通过根据各种互连技术和/或标准操作的有线和/或无线接口,通过有线或无线通信信道建立互连201。结果,互连201可以表示低等待时间,高带宽和有效率的互连,以允许计算、存储器或I/O资源在设备205和255的至少某些组件之间被聚合或组合。
在某些示例中,如图2所示,设备205可以具有电路220,该电路220包括处理元件222和图形引擎224。电路220的这些元件可以能够执行类似于上文关于图1所提及的应用程序144的一个或多个应用程序。设备255还可以具有电路260,该电路260包括处理元件262和图形引擎264。与电路260或近存储器270相比,图2中所描绘的电路220或近存储器240的元件的相对大小可以表示与设备205相比的设备255的增加的计算能力或存储器资源。当与设备105(例如,固定电源、较高热容量、高载流容量、较大的形状因子,等等)相比时,这些增加的计算能力或存储器资源可以至少部分地归因于上文为设备155给出的各种示例。根据某些示例,除低等待时间、高带宽和有效率的互连之外,还可以在设备205和设备255中实现2LM架构,以助益正在由电路220执行的应用程序的上下文信息和存储器内容的快速并且高效的交换以某种程度上无缝的方式(例如,在几分之一秒内发生)切换,然后,由电路260执行。例如,设备205中的近存储器240可包括低等待时间/较高性能类型的存储器,诸如DDRSRAM。设备255中的近存储器270还可包括类似类型的存储器。作为2LM架构的一部分,远存储器245可包括较高等待时间/较低性能类型的存储器,诸如,但不仅限于,3-D跨点存储器、NAND闪存、NOR闪存、铁电存储器、硅氧化物氮化物氧化物硅(SONOS)存储器、聚合物存储器,诸如铁电聚合物存储器、铁电晶体管随机存取存储器(FeTRAM)或FeRAM)或奥氏存储器。根据某些示例,设备205或255的OS和要被电路220或者260执行的应用程序可以将远存储器245识别为系统存储器,当执行应用程序时,近存储器240和270可以充当供电路220和260使用的远存储器245的高速缓存。在某些示例中,在建立互连201之后,设备205的逻辑和/或特征可以判断正在被电路220执行的应用程序可以由设备255中的电路260执行。对于这些示例,设备205的逻辑和/或特征可以通过互连201,将用于执行应用程序的存储器内容的副本从近存储器240迁移到近存储器270。一旦存储器内容的副本被迁移到近存储器240,存储器内容就可以被电路260用来恢复应用程序的执行。
根据某些示例,设备205中的逻辑和/或特征可在随后路由与现在执行应用程序的电路260相关联的I/O信息。对于这些示例,远存储器245的充当设备205的2LM架构的一部分的至少一部分可以助益I/O信息的这种路由,以使得设备205和/或设备255的OS可能不知晓设备205或设备255中的哪一个近存储器正被使用。结果,I/O信息在设备205和设备255之间的路由可以以对设备205和/或设备255的OS透明的方式来完成。
在某些示例中,在设备205和设备255两者中的实现的2LM架构可以通过不必一旦存储器内容的副本被迁移到近存储器270就为近存储器240维护操作功率级别,来允许设备205使用充分更少的功率。另外,远存储器245和近存储器270可以在OS看起来是相同2LM架构,如此,可以掩盖存储器内容的副本和清空的上下文信息在设备205和255之间的迁移或使其透明。如此,OS可能不会注意到,应用程序已经被迁移来在存在于单独的设备上的电路上执行。进一步,可以通过在从被电路220用来执行应用程序的处理器高速缓存(未示出)转储清除上下文信息之后,由设备205的逻辑和/或特征将电路220功率降低到睡眠或类似类型的较低功率状态,来节省更多的功率。设备205的其他组件可以保持相同功率,诸如无线通信240,I/O 210和远存储器245。但是,这些其他组件可以使用相当少量的功率,如此,设备205可以节省大量的电池功率。虽然在图2中未示出,但是,在某些示例中,远存储器也可以被维护在设备255中。对于这些示例,设备255中的远存储器可以充当一种高速缓存,以补偿与互连201相关联的潜在的等待时间问题。设备255中的远存储器也可以使设备255的逻辑和/或特征使用近存储器270和设备255中的远存储器两者,以支持将在与设备205的连接过程中配置的变化的存储器孔径(aperture)大小。如此,可以动态地调整近级别存储器270的大小,以匹配从近级别存储器240接收转储清除的上下文信息的容量。根据某些示例,如图2所示,无线通信240可以耦合到设备205。对于这些示例,无线通信240可以是这样的装置:通过该装置,设备205可以充当设备255的到无线网络或者另一设备的系链(tether)。这可以通过各种类型的无线通信信道,诸如BluetoothTM、WiFi,WiGig或宽带无线/4G无线通信信道来发生。可以通过这些类型的无线通信信道,接收与应用程序的执行相关联的I/O信息。例如,可以与使用设备205但不使用设备255访问4G无线网络的预订或用户帐户相关联的4G无线通信信道,流式传送高清晰视频。对于这些示例,I/O 210可以能够通过无线通信240,接收流式传送视频信息,并至少临时将流式传送视频存储在远存储器245中。然后,设备205中的逻辑和/或特征可以通过互连201,将此I/O信息路由到近存储器270,用于由电路260执行视频显示应用程序。然后,设备205中的逻辑和/或特征可以导致高清晰视频通过I/O250被呈现给耦合到设备255的显示器(未示出)。在某些示例中,设备205的逻辑和/或特征可以接收通过互连201的到设备255的连接将被终止的指示。例如,设备255和/或205的用户可以通过输入命令(例如,通过键盘检测到的或天然的UI输入事件)指示,设备205即将与有线通信信道物理地断开连接。可另选地,如果互连201是通过无线通信信道进行的,则设备205的逻辑和/或特征可以检测设备205的可能会导致设备205移动到与设备255的给定物理接近度之外的移动。给定接近度可以是设备205可以维护适当的无线通信信道以通过互连201交换信息的范围。
根据某些示例,响应于接收到互连201的即将结束的指示,设备205的逻辑和/或特征可以导致电路220和近存储器240将功率提升回操作功率状态。如上文所提及的,设备205的这些组件可能已经在转储清除的上下文信息和存储器内容迁移到近存储器270之后功率被降低。对于这些示例,设备255的逻辑和/或特征可以导致用于在电路260上执行应用程序的上下文信息从高速缓存(未示出)中转储清除,并且在近存储器270中维护的存储器内容的第二副本通过互连201被发送到远存储器245。一旦在远存储器245中接收到转储清除的上下文信息以及存储器内容的第二副本,转储清除的上下文信息以及存储器内容的第二副本的至少一部分可以被迁移/存储到近存储器240。然后,电路220可以使用转储清除的上下文信息以及存储器内容的第二副本的的至少一部分来恢复应用程序的执行。在某些示例中,然后,设备255中的逻辑和/或特征可以在通过互连201将上下文信息和存储器内容的第二副本发送到远存储器245之后,使电路260和近存储器270功率降低。
图3示出了示例第三系统。在某些示例中,示例第三系统包括系统300。如图3所示的系统300包括设备305和设备355的各种组件。各种组件类似于上文为图2中的系统200所描述的设备205以及设备255的上文所提及的组件。即,设备305和355具有包括相应的处理元件322/362和图形引擎324/364的相应的电路320和360。如图3所示,设备305和355可包括单独的近存储器330和370,设备305具有远存储器340。根据某些示例,如图3所示,系统300可包括具有远存储器340和近存储器370的可组合存储器310。对于这些示例,虽然在图3中未示出,低等待时间、高带宽、无线或有线互连可以将设备305耦合到设备355,以允许在维护在设备305中的远存储器340和维护在设备355中的近存储器370之间建立远存储器信道344。如下面更详细地描述的,可组合存储器310与近存储器330一起可以是2LM架构或方案的一部分,该2LM架构或方案助益存储器内容的一个或多个副本以可以对设备305或355的OS透明的方式在近存储器330和近存储器370之间迁移。换言之,当与执行一个或多个应用程序相关联的上下文信息和存储器内容的副本在电路330使用的近存储器330与由电路360使用的近存储器370之间迁移时,OS可能不知晓哪一个设备可以正在执行一个或多个应用程序。透明性可以基于2LM架构,该2LM架构是以在执行一个或多个应用程序时远存储器340可作为系统主存储器被呈现给OS而近存储器330和370可以充当远存储器340的高速缓存以供相应的电路320和360使用的方式来实现的。结果,OS可以只察觉到远存储器340,而不会察觉到上下文信息和存储器内容的一个或多个副本在两个近存储器之间迁移。
在某些示例中,近存储器370可包括显著地大于近存储器330的第二存储器容量的第一存储器容量。例如,近存储器320可以具有小于千兆字节的存储器容量,而近存储器370可以具有几千兆字节的存储器容量。存储器容量差异可以由于设备355的较大的形状因子尺寸,还由于与电路320相比电路360中所包括的较大的计算资源,这可能会导致对更多存储器容量的较高需求,以匹配较大的计算资源。示例不只限于可能的存储器容量差异的这两个原因。
根据某些示例,由于电路320和电路360两者都能够使用2LM架构来执行应用程序,近存储器330和370之间的尺寸差异可以通过确保远存储器340的存储器容量等于或大于近存储器370的存储器容量来适应。对于这些示例,远存储器340可以由非易失性存储器类型组成,这些类型的存储器可以具有较低的访问等待时间,但是,与可能用于近存储器330或370的存储器类型相比,可以使用充分更少的功率,每个千兆字节的存储器容量的成本充分更少。较低的成本和较少的功率使用可以允许与近存储器330相比,远存储器340的存储器容量充分更大。
在某些示例中,通过使用2LM架构,设备305和355的OS可以被配置为基于与远存储器340相关联的存储器容量(该存储器容量至少等于近存储器370的存储器容量),由电路320或360执行。对于这些示例,可以通过OS不必调整存储器寻址结构大小/转换存储器寻址结构以计及与近存储器330和370相关联的潜在地不同的存储器容量来助益将应用程序的执行从设备305迁移到设备355。在由电路320执行时,由OS使用的存储器寻址方案可以被设计成使得由其他电路使用的显著更大的近存储器(诸如由电路360使用的近存储器370)可以更好地使用大存储器容量。例如,如果OS将只使用与近存储器330的存储器容量相关联的存储器寻址方案,那么,在近存储器370中具有较大的存储器容量的益处可能因使用与近存储器330的较低存储器容量相关联的存储器寻址方案而减少。在某些示例中,位于电路360中的集成存储器控制器(iMC)376或位于电路320中的iMC 326可以使用各种存储器通道来促进与一个或多个应用程序的执行相关联的存储器内容信息的移动。此外,远存储器340处的存储器控制器(MC)还可以通过各种存储器通道,例如,响应于在相应的近存储器中可能会在一个或多个应用程序的执行过程中产生的页未命中(page miss),将所请求的数据提供到iMC 376或iMC 326。在某些示例中,除上文所提及的远存储器通道344之外,图3所示出的用于检索、发送,复制或迁移存储器内容信息的各种存储器通道可包括电路360和近存储器370之间的近存储器通道372。各种存储器通道也可以包括远存储器340和近存储器330之间的远存储器通道或电路320和近存储器330之间的近存储器通道332。如上文简要地提及并在下面更详细地描述的,设备305或设备355中的逻辑和/或特征可以使用2LM架构来执行一个或多个应用程序,以便可以以可对设备305或设备355的OS透明的方式,通过这些各种存储器通道,检索、发送、复制或迁移在近存储器330或370中维护的存储器内容。
图4示出了示例状态机400。在某些示例中,状态机400描绘了两个设备中的电路和近存储器的各种状态以及上下文信息的移动和各设备之间的存储器内容的复制。对于这些示例,包括设备305和355的上文为图3所示出并描述的组件的系统300的元件用于描述状态机400。然而,示例状态机400不限于上文为图3所示出的或描述的组件。在某些示例中,如图4所示,当首次发生对接时或由设备305中的逻辑和/或特征检测到对接时,设备305可以处于执行状态。对于这些示例,电路320可能正在执行一个或多个应用程序。在检测到对接之后,设备305中的逻辑和/或特征可以导致与执行一个或多个应用程序相关联的上下文信息从由电路320使用的高速缓存中被转储清除。然后,逻辑和/或特征可以使电路320静止。逻辑和/或特征也可以将近存储器330的存储器内容的第一副本迁移到远存储器340,然后,将电路320和近存储器330两者的功率降低到低/非操作功率状态(例如,睡眠功率状态)。然后,设备305中的逻辑和/或特征可以导致上下文信息和存储器内容的第一副本通过经由互连路由的存储器通道,被进一步迁移到近存储器370。
根据某些示例,设备355中的逻辑和/或特征可以将电路260和近存储器270唤醒到功率提升状态,该状态可以是操作功率状态。唤醒可以在检测到对接之后发生。然后,逻辑和/或特征可以将接收到的存储器内容的第一副本和上下文信息存储到近存储器270中。电路260可以处于执行状态,以执行以前由设备305中的电路320执行的一个或多个应用程序。
在某些示例中,设备355中的逻辑和/或特征可以接收设备355即将从设备305脱离(undock)的指示。对于这些示例,设备355中的逻辑和/或特征可以导致与执行一个或多个应用程序相关联的上下文信息从由电路360使用的高速缓存中被转储清除。然后,逻辑和/或特征可以使电路360静止。逻辑和/或特征也可以将近存储器370的存储器内容的第二副本迁移到远存储器340,然后,将电路360和近存储器370两者的功率降低到低/非操作功率状态(例如,睡眠状态)。
根据某些示例,设备305中的逻辑和/或特征可以将电路320和近存储器330唤醒到功率提升状态,该状态可以是操作功率状态。唤醒可以在接收到设备305即将从设备355脱离的指示之后发生。然后,逻辑和/或特征可以将存储器内容的第二副本和上下文信息从远存储器340传输到近存储器330。电路320可以现在处于执行状态,以执行以前由设备355中的电路360执行的一个或多个应用程序。在某些示例中,状态机400的图4所示出的状态的变换可以以设备305或设备355的用户基本上难以感知的速率发生。例如,小于几分之一秒(例如,一秒的1/10)。如下文比较详细地描述的,设备305和355两者处的逻辑和/或特征都可以能够实现各种策略,以确保近存储器330和370之间的存储器内容的副本的快速的迁移,以使一个或多个应用程序的执行能够在设备305中的电路320与设备355中的电路360之间切换,然后,当两个设备以用户基本上难以感知的方式脱离时,回到电路320。
图3示出了示例过程500。在某些示例中,过程500可以用于在各设备之间聚合或组合存储器资源。对于这些示例,如图3所示的系统300的元件可以被用来示出与过程500相关的示例操作。然而,示例过程或操作不限于使用系统300的元件的实现。
从过程5.0开始(执行应用程序),设备305的电路320可以执行一个或多个应用程序。例如,一个或多个应用程序可包括视频流式播放应用程序,以向设备305中的显示器呈现流式传送视频。
转到过程5.1(检测设备),设备305中的逻辑和/或特征可以检测具有能够执行正在由设备355执行的一个或多个应用程序的至少一部分的电路360的设备355。
转到过程5.2(通过互连连接),设备305中的逻辑和/或特征可以导致设备305通过互连,连接到设备355。在某些示例中,用于互连的连接可以通过有线通信信道。在其他示例中,用于互连的连接可以通过无线通信信道。
转到过程5.3(清空上下文信息,使电路静止),设备305中的逻辑和/或特征可以导致用于执行一个或多个应用程序的至少一部分的上下文信息从近存储器330被转储清除。例如,可以转储清除在近存储器330中至少临时维护的视频帧信息。
转到过程5.4(通过互连发送上下文信息,存储器内容的副本),设备305中的逻辑和/或特征可以导致被转储清除的上下文信息以及近存储器330的存储器内容的副本通过有线/无线互连,被发送到设备355。在某些示例中,在通过有线/无线互连发送到设备355之前,被转储清除的上下文信息和存储器内容的副本可以首先被发送到远存储器340。
转到过程5.5(使电路、近存储器功率降低),设备305中的逻辑和/或特征在发送转储清除的上下文信息和存储器内容的副本之后,可以导致电路320和近存储器330功率降低。
转到过程5.6(将上下文信息、存储器内容的副本接收到近存储器),设备355中的逻辑和/或特征可以将上下文信息和存储器内容的副本接收到近存储器370。
转到过程5.7(执行应用程序),电路360可以使用转储清除的上下文信息和接收到/存储到近存储器370的存储器内容的副本,执行一个或多个应用程序。例如,用于执行视频显示应用程序的视频帧信息可以被用来向耦合到设备355的显示器呈现流式传送视频。流式传送视频可以是呈现给大尺寸的显示器(例如,大于15英寸)的高清晰视频(例如,至少4K分辨率)。
转到过程5.8(基于回写策略或存储器检查点执行,发送脏页面(dirty page)),设备355中的逻辑和/或特征可以实现回写策略或存储器检查点执行,它们导致在由电路360执行一个或多个应用程序的过程中生成的一个或多个脏页面被发送到设备305。在某些示例中,可以实现回写策略或存储器检查点执行,以最小化或减少在脱离之际将需要迁移回设备305的近存储器330的脏页面的数量。回写策略或存储器检查点执行可包括一个或多个阈值或时间限制,它们一旦被超出,就会导致将脏页面发送到远存储器340。作为以周期性地或根据阈值为基础发送脏页面的结果,在脱离时传输的存储器内容量减少。这种时间的缩短可以允许一个或多个应用程序的执行以设备305的用户难以感知的方式迁移回设备305。
在某些示例中,包括脏页面的周期性的发送的回写策略可以基于平衡快速地脱离并将存储器内容从近存储器370迁移到近存储器340的必要性与对节省功率的尝试的时间段。例如,如果时间段短,则用于发送/接收脏页面的有线/无线互连可能使用相当量的功率。比较长的时间段将是更能量高效的,但是,如果在比较长时间段期满之前不久发生脱离事件,则存储器内容的迁移可能会被延迟,用户可能感知这种延迟。根据某些示例,包括根据阈值发送脏页面的回写策略可包括基于近存储器330的存储器容量的第一阈值数量。例如,如果近存储器330与近存储器370相比具有相对较小的存储器容量,则脏页面的第一阈值数量应该足够低,以便较小存储器容量的近存储器330可以接收接收所有脏页面而不超出其存储器容量。第一阈值数量也可以基于用于通过有线/无线互连在远存储器340和近存储器370之间迁移存储器内容的副本的相应的数据带宽和等待时间,以确保存储器内容的迁移允许电路320及时地恢复一个或多个应用程序的执行,而不会有可感知的中断。对于这些示例,数据带宽越低并且用于迁移存储器内容的等待时间越长,脏页面的第一阈值数量就越低。
在某些示例中,回写策略可包括第二阈值数量,该第二阈值数量可与在检测到用户发起的脱离直到互连的实际去耦合或结束的时间之间的脱离响应时间相关联。对于这些示例,第二阈值可以基于用于通过有线/无线互连在远存储器340和近存储器370之间迁移存储器内容的第二副本的数据带宽能力。第二阈值也可以基于与从设备305断开设备355相关联的时间限制(例如,一秒的1/10)和与在由电路360执行一个或多个应用程序的过程中生成的脏页面相关联的尺寸。例如,较大尺寸的脏页面将导致较低第二阈值数量。较低数据带宽和较高等待时间也可能会导致较低第二阈值数量。在某些示例中,可以使用存储器检查点执行来作为错误校正/恢复技术,其中,正在由设备355处的电路360执行的一个或多个应用程序被置于已知的状态或恢复点。对于这些示例,在设备305与设备355的意外的脱离的情况下,恢复点可以允许一个或多个应用程序被恢复到已知状态。互连特征可以定义近存储器370中的存储器内容的阈值量,该阈值量在任何时刻都可以安全地存在,在此之前,存储器内容数据必须被复制回至少远存储器340,以在意外的脱离之后到达恢复点或已知状态。如果设备305和355之间的互连是能够在非常短的时间内(例如,小于1秒的1/100)从近存储器370复制存储器内容的低等待时间、高带宽互连,则可以不需要存储器检查点执行。然而,如果需要,存储器检查点执行可以基于互连特征,诸如可用的数据带宽、互连上的观察到的等待时间,或用于通过互连在近存储器370和至少远存储器340之间迁移存储器内容的指派功率使用限制,来确定脏页面的一种动态阈值数量。
根据某些示例,与存储器检查点执行相关联的脏页面的动态阈值数量也可以基于到远存储器340的MC 346的写入等待时间。如果MC 346具有相对来说较长写入等待时间,那么,脏页面的阈值数量将较低,以适应此较长写入等待时间。脏页面的动态阈值数量也可以基于iMC 376的从近存储器370读取数据的读取等待时间。例如,相对快速读取等待时间可以允许脏页面的较高阈值数量。上文所提及的针对存储器检查点执行设置脏页面的阈值数量的准则只是几个示例准则,示例不限于上文所提及的准则。转到过程5.9(将脏页面接收到远存储器),设备305中的逻辑和/或特征可以将一个或多个脏页面接收到远存储器340。一个或多个脏页面可以表示在近存储器370中维护的存储器内容的至少一部分,并可能已经根据回写策略或作为存储器检查点执行的一部分发送。
转到过程5.10(近存储器的页未命中),在一个或多个应用程序的执行过程中电路360可以请求未包括在迁移到近存储器370的存储器内容内的数据。在某些示例中,近存储器370缺乏数据可能会导致页未命中。对于这些示例,可以在远存储器340中维护数据。
转到过程5.11(对远存储器的存储器访问请求),设备355中的逻辑和/或特征,诸如iMC 376,可以生成向远存储器340中的MC 346的存储器访问请求并向其发送。在某些示例中,存储器访问请求可以是响应于页未命中,获取数据。
转到过程5.12(满足存储器访问请求),设备305中的逻辑和/或特征,诸如MC 346,可以接收存储器访问请求,并满足该请求,以便提供与页未命中相关联的数据。
在某些示例中,过程500的至少过程5.7到5.12可以继续,直到将设备355连接到设备305的互连的断开连接/结束。如下面更多地提及的,在某些示例中,另一过程系列可以通过设备305和355中的逻辑和/或特征来实现,以使用于执行一个或多个应用程序的上下文信息和存储器内容迁移回近存储器330。迁移可以在互连结束之前发生。
图3示出了示例过程600。在某些示例中,过程600可以用于脱离或断开设备之间的聚合或组合存储器资源。对于这些示例,如图3所示的系统300的元件可以被用来示出与过程600相关的示例操作。过程600可以是在如上文对于图5所描述的聚合或组合存储器资源之后的过程500的继续。
然而,示例过程或操作不限于使用系统300的元件的实现或过程500的继续。
从过程6.0开始(执行应用程序),设备355的电路360可以执行在如上文对于过程500所提及的对接之前以前由设备305的电路320执行的一个或多个应用程序。
转到过程6.1(检测脱离),设备355中的逻辑和/或特征可以检测或接收设备305的连接将终止的指示。在某些示例中,如果连接是通过有线互连的,则检测可以基于用户通过输入指示和/或从对接器物理地移除设备或拔出用于有线互连的连接器(例如,加密狗)来产生指示。在其他示例中,如果连接是通过无线互连的,则检测可以基于用户以指示无线互连不久将断开连接或不在维护无线互连的可接受的范围内的方式发起设备305在远离设备355的方向的移动。
转到过程6.2(将电路,近存储器功率提升),设备305中的逻辑和/或特征可以在预期脱离的情况下,将电路320和近存储器330功率提升。在某些示例中,如上文对于过程500所提及的,回写策略可以导致在由电路360执行一个或多个应用程序的过程中在近存储器370中维护的存储器内容的至少一部分被周期性地发送到设备305,并存储在远存储器340中。对于这些示例,可以在初始功率提升时,将这些先前发送的脏页面复制到近存储器330,以减少可能需要被迁移的总的复制的存储器内容的量,以使电路320能以更时间高效的方式执行一个或多个应用程序。
转到过程6.3(清空上下文信息,使电路静止),设备355中的逻辑和/或特征可以导致用于执行一个或多个应用程序的上下文信息被从近存储器370转储清除。然后,逻辑和/或特征可以使电路360静止。转到过程6.4(通过互连,发送上下文信息,存储器内容的第二副本),设备305中的逻辑和/或特征可以导致被转储清除的上下文信息和存储器内容的第二副本通过互连,被发送到设备305。在某些示例中,可以在远存储器340中接收上下文信息和存储器内容的第二副本。对于这些示例,如上文对于过程6.2所提及的,先前在近存储器370中维护的存储器内容的其他部分可能已经作为回写策略的一部分发送,以助益存储器内容在设备355和设备305之间的及时的迁移。现在可以与存储器内容的第二副本一起发送先前没有作为回写策略的一部分发送的部分,以允许少一些的数据通过互连传输。转到过程6.5(功率降低电路,近存储器功率),然后,设备355中的逻辑和/或特征可以将电路360和近存储器370两者的功率降低。转到过程6.5(将上下文信息,存储器内容的第二副本接收到近存储器),设备305中的逻辑和/或特征可以将上下文信息和存储器内容的第二副本接收到远存储器340。
转到过程6.6(将上下文信息,存储器内容的第二副本存储到近存储器),然后,设备305中的逻辑和/或特征可以将上下文信息和存储器内容的第二副本存储到近存储器330。在某些示例中,近存储器330可以具有比近存储器370更小的存储器容量。对于这些示例,可以基于存储器分页策略,将存储器内容的第二副本的至少一部分存储到近存储器330。存储器分页策略可包括当执行一个或多个应用程序时存储被电路360积极地使用的存储器页面。存储器分页策略也可以包括基于与给定存储器页面相关联的年龄(age)来存储,例如,新近写入存储器页面被首先存储,或具有对于有限的近存储器330容量的优先权。存储器分页策略也可以包括基于与存储器页面相关联的访问模式来存储,该访问模式可以与优先权方案相关联或者指示哪些存储器页面最近被访问。示例不限于上文所提及的存储器分页策略,按优先级处理来自存储器内容的第二副本的哪些存储器页面将被复制到近存储器的其他策略也是可以的。
转到过程6.7(执行应用程序),设备305中的电路320可以使用上下文信息和现在存储在近存储器330中的存储器内容的第二副本的某些部分来恢复一个或多个应用程序的执行。
转到过程6.8(完成脱离),设备305和355两者中的逻辑和/或特征可以通过终止经由互连的连接,完成脱离,然后,过程600结束。
图7示出了用于存储器检查点执行的示例逻辑流程700。在某些示例中,在对接到设备305并且一个或多个应用程序的执行迁移到设备355的电路360之后,逻辑流程700可以通过如上文对于图3所描述的系统300的设备355来实现。系统300的其他组件或元件还可以被用来示出与逻辑流程700相关的示例过程。然而,示例过程或操作不限于使用系统300的元件的实现。
从开始移到判断框710(脱离事件?),设备355中的逻辑和/或特征可以判断是否发生了脱离事件。在某些示例中,脱离事件可以基于接收到或检测到脱离即将发生的指示。如果接收到或检测到脱离的指示,则过程移到框740。否则,过程移到判断框720。
从判断框710移到框720(执行应用程序),电路360可以执行一个或多个应用程序。在一个或多个应用程序的执行过程中,过程可以移到判断框730或者判断框750。
从框720前进到判断框730(到达了MT吗?),设备355中的逻辑和/或特征可以判断是否到达被称为“MT”的脏页面的动态阈值数量。在某些示例中,MT可以基于可用数据带宽、观察到的等待时间,或用于通过连接设备355到设备305的有线或无线互连在至少远存储器340和近存储器370之间迁移存储器内容的副本的指派功率使用限制。MT也可以基于MC 346的到远存储器340的写入等待时间和从近存储器370的iMC读取等待时间。对于这些示例,MT可以影响在由设备355中的电路360执行一个或多个应用程序的过程中脏页面或数据必须被复制到设备305的频率。由于MC346的写入等待时间和iMC 376的读取等待时间可以是静态的或固定的,仍需要MT的动态阈值数量,因为互连特征(移动对象、干扰、雨、湿度,等等)可能会变化。如果到达或超出MT,则过程移到框740。否则,过程返回到判断框710。
从判断框710或者判断框730移到框740(将检查点内容发送到设备305),设备355的逻辑和/或特征可以将存储器检查点内容(可包括一个或多个脏页面)发送到设备305中的至少远存储器340。如果过程从判断框710移动,那么,过程可以结束,因为一个或多个应用程序的执行切换或迁移回到设备305,电路360和近存储器370的功率被降低。如果过程从判断框730移动,则过程移到判断框710。
从框720移到判断框750(页未命中吗?),设备355中的逻辑和/或特征可以判断是否在由电路360执行一个或多个应用程序的过程中对近存储器370发生了页未命中。在某些示例中,iMC 376可以作出此判断。如果发生页未命中,则过程移到判断框760。否则,过程移到判断框710。
从判断框750移到判断框760(存在脏页面吗?),设备355中的逻辑和/或特征可以判断是否可能存在一些脏页面和/或准备发送到设备305中的至少远存储器340。在某些示例中,复制诸如脏页面之类的数据就功率使用和对设备355或设备305的可能的性能流失而言,可能是昂贵的操作。因此,为降低复制脏页面的频率,可以实现这样的技术:每当发生对近存储器370的页未命中时,可以将存在于近存储器370中的所有脏页面复制到设备305中的至少远存储器340。即使还没有到达或超出诸如MT之类的其他阈值,也可能会发生这种情况。因此,通过在发生页未命中时机会主义地(opportunistically)复制脏页面,可以较好地使用互连带宽,也可以减少功率消耗。在无线互连的情况下,脏页面的机会主义复制可能是一个显著的优点,因为与比较频繁地传输少量的数据相比,无线电使用可以被更好地优化以便不太频繁地传输较大量的数据。如果存在脏页面,则过程移到判断框770。否则,过程移到780。从判断框760移到框770(将存储器请求和脏页面发送到设备305),设备355中的逻辑和/或特征可以导致对于页未命中和任何脏页面的存储器请求被发送到设备305。在某些示例中,远存储器340的MC 346可以接收存储器请求,还导致脏页面被保存到至少远存储器340。对于这些示例,MC 346也可以通过导致与存储器请求相关联的数据被从远存储器340中获取并发送到设备355并复制到近存储器370,来满足存储器请求。然后,过程移到判断框710。从判断框760移到框780(将存储器请求发送到设备305),设备355中的逻辑和/或特征可以只导致对于页未命中的存储器请求被发送到设备305。在某些示例中,如上文对于判断框770所提及的,远存储器340的MC 346可以接收存储器请求,并通过导致与存储器请求相关联的数据被从远存储器340中获取并发送到设备355并复制到近存储器370,来满足存储器请求。然后,过程移到判断框710。
图8示出了第一设备的框图。如图8所示,第一设备包括设备800。尽管图8中示出的设备800具有处于特定拓扑或配置中的有限数量的元素,但可以明白,设备800可包括给定实现所需的处于替换配置中的更多或更少元素。设备800可包括计算设备的可以是固件实现的组件,并具有被配置为执行一个或多个逻辑822-a的处理器电路820。值得注意的是,如此处所使用的“a”和“b”和“c”以及类似的符号旨在作为表示任何正整数的变量。如此,例如,如果实现设置a=5的值,那么,逻辑822-a的完整的一组可以包括逻辑822-1、822-2、822-3、822-4或822-5。在此上下文中,示例不受限制。
根据某些示例,设备800可以是具有第一电路的第一设备(例如,设备105,205或305),所述第一电路能够使用包括第一近存储器和第二远存储器的2LM架构,执行一个或多个应用程序。在此上下文中,示例不受限制。
在某些示例中,如图8所示,设备800包括处理器电路820。处理器电路820可以一般性地被配置为执行一个或多个逻辑822-a。处理器电路820可以是各种市场上可买到的处理器中的任一种,包括但不仅限于, 处理器;应用程序、嵌入式和安全处理器;以及处理器;IBM和Cell处理器;Core(2)Core i3、Core i5、Core i7、处理器;以及类似的处理器。双微处理器、多核处理器,及其他多处理器架构也可以被用作处理器电路820。根据某些示例,处理器电路820也可以是专用集成电路(ASIC),而逻辑822-a可以实现为ASIC的硬件元件。
根据某些示例,设备800可包括检测逻辑822-1。检测逻辑822-1可以由处理器电路820执行,以检测能够使用也包括第二近存储器的2LM架构来执行一个或多个应用程序的第二电路。例如,检测逻辑822-1可以接收可以指出具有第二电路和第二近存储器的第二设备已经通过有线或无线通信信道连接到第一设备的检测信息805。
在某些示例中,设备800也可以包括连接逻辑822-2。连接逻辑822-2可以由处理器电路820执行,以导致通过互连的第一远存储器和第二近存储器之间的设备连接。例如,连接逻辑822-2可以通过可以根据一个或多个低等待时间、高带宽和有效率的互连技术(诸如PCIe、QPI,WiGig或Wi-Fi)操作的互连来连接。根据某些示例,设备800也可以包括迁移逻辑822-3。迁移逻辑822-3可以由处理器电路820执行,以使用第一远存储器导致存储器内容825的副本从在第一设备中维护的第一近存储器迁移到第二近存储器。可以以对第一设备或第二设备的OS透明的方式,迁移存储器内容825的副本。在某些示例中,迁移逻辑822-3也可以促进在脱离的情况下存储从第二设备接收到的存储器内容845的副本的至少一部分。可以根据分页策略724-a,存储存储器内容845的副本的至少一部分。分页策略724-a可以由迁移逻辑822-3维护在诸如查询表(LUT)之类的数据结构中。
在某些示例中,迁移逻辑822-3可以从第二近存储器接收存储器内容845的至少诸部分。存储器内容845的至少诸部分可包括脏页面810。可能已经在由第二电路执行一个或多个应用程序的过程中生成了脏页面810。对于这些示例,迁移逻辑822-3可以导致脏页面810被存储到至少第一远存储器。
根据某些示例,设备800可包括请求逻辑822-4。请求逻辑822-4可以由处理器电路执行,以基于第二近存储器的页未命中,接收可包括对第一远存储器的存储器访问请求的存储器请求835。对于这些示例,请求逻辑822-4可以导致存储器请求835中所包括的存储器访问请求被满足,以在远存储器响应840中提供与页未命中相关联的数据。
根据某些示例,设备800可包括功率逻辑822-5。功率逻辑822-5可以由处理器电路820执行,以导致第一电路和第一近存储器功率被降低或者提升。例如,在将上下文信息和存储器内容825的副本发送到第二设备之后,可以将第一电路和第一近存储器的功率降低到较低的功率状态。在接收到第一和第二设备之间的互连即将被终止的指示之后,第一电路和第一近存储器的功率可以随后被提升到较高功率状态。指示可以被包括在连接信息815(例如,用户输入命令或无线范围检测)中。
此处所包括的是一组代表用于执行所公开的体系结构的新颖方面的示例方法的逻辑流程图。尽管为了简洁起见,作为一系列动作示出和描述了一个或多个方法,但是,所属领域的技术人员将了解和明白,方法不受动作的顺序的限制。某些动作可以按与此处所示出和描述的不同的顺序进行和/或与其他动作并行地进行。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。逻辑流程可以以软件、固件,和/或硬件来实现。在软件和固件实施例中,逻辑流程可通过计算机执行的指令来实现,该计算机执行的指令被存储在例如光学存储、磁存储或半导体存储之类的至少一种非瞬态计算机可读介质或机器可读介质上。这些实施例不限于这种背景。
图9示出了第一逻辑流程的示例。如图9所示,第一逻辑流程包括逻辑流程900。逻辑流程900可代表诸如设备900之类的本文所述的一个或多个逻辑、特征或设备所执行的操作中的一些或全部。更具体而言,逻辑流程900可以通过检测逻辑822-1、连接逻辑822-2、迁移逻辑822-3、请求逻辑822-4、或功率逻辑822-5来实现。
在图9所示的示例中,在框902,逻辑流程900可以在第一电路上执行一个或多个应用程序。第一电路可以能够使用包括第一近存储器和第一远存储器的2LM架构,执行一个或多个应用程序。
根据某些示例,在框904,逻辑流程900也可以检测能够使用也包括第二近存储器的2LM架构来执行一个或多个应用程序的第二电路。对于这些示例,检测逻辑822-1可以检测第二电路。
在某些示例中,在框906,逻辑流程900可以将第一远存储器连接到第二近存储器。对于这些示例,连接逻辑822-2可以通过有线或无线通信信道,导致通过互连的连接被建立。根据某些示例,在框908,逻辑流程900可以使用第一远存储器,来将存储器内容的副本从第一近存储器迁移到第二近存储器。可以以对操作系统透明的方式迁移存储器内容的副本。对于这些示例,迁移逻辑822-3可以导致存储器内容的副本被迁移到第二近存储器。
在某些示例中,在框910,逻辑流程900可以在所述第一近存储器中的存储器内容的副本迁移到所述第二近存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低的功率状态。对于这些示例,功率逻辑822-5可以导致第一电路和第一近存储器功率被降低。根据某些示例,在框912,逻辑流程900可以继续对第一远存储器提供功率。对于这些示例,功率逻辑822-5可以导致对第一远存储器的功率得以继续。
图10示出第一存储介质的实施例。如图10所示,第一存储介质包括存储介质1000。存储介质1000可以包括制品。在某些示例中,存储介质1000可以包括任何非瞬时的计算机可读介质或机器可读的介质,诸如光学存储、磁存储或半导体存储。存储介质1000可以存储各种类型的计算机可执行指令,诸如用于实现逻辑流程900的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形的介质,包括易失性存储器或非易失性存储器,可移除或不可移除存储器,可擦除或不可擦存储器,可写入或可重写存储器等等。计算机可执行指令的示例可包括任何合适类型的代码,如源代码、已编译的代码、已解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等等。在此上下文中,示例不受限制。图11示出了第二设备的框图。如图11所示,第二设备包括设备1100。尽管图11中示出的设备1100具有处于特定拓扑或配置中的有限数量的元素,但可以明白,设备1100可包括给定实现所需的处于替换配置中的更多或更少元素。
设备1100可包括计算设备的可以是固件实现的组件,并具有被配置为执行一个或多个逻辑1122-a的处理器电路1120。类似于图8的设备800,“a”和“b”和“c”以及类似的符号可以是表示任何正整数的变量。
根据某些示例,设备1100可以是具有第一电路的第一设备(例如,设备155,255或355),所述第一电路能够使用包括近存储器和远存储器的2LM架构,执行一个或多个应用程序。在此上下文中,示例不受限制。
在某些示例中,如图11所示,设备1100包括处理器电路1120。处理器电路1120可以一般性地被配置为执行一个或多个逻辑1122-a。处理器电路1120可以是各种市场上销售的处理器中的任何一种,包括,但不仅限于,以前对于设备800的处理器电路820所提及的那些。双微处理器、多核处理器,及其他多处理器架构也可以被用作处理器电路1120。根据某些示例,处理器电路1120也可以是专用集成电路(ASIC),而逻辑1122-a可以实现为ASIC的硬件元件。
根据某些示例,设备1100可包括检测逻辑1122-1。检测逻辑1122-1可以由处理器电路1120执行,检测到2LM架构中所包括的第二近存储器的连接的指示。第二近存储器可以能够当一个或多个应用程序由第二电路执行时被一个或多个应用程序使用。例如,检测逻辑1122-1可以接收检测信息1105,检测信息1105可以指出通过有线或无线通信信道的到第二电路的连接。在某些示例中,设备1100也可以包括复制逻辑1122-2。复制逻辑1122-2可以由处理器电路1120执行,以从第一远存储器接收从被第二电路用来执行一个或多个应用程序的第二近存储器发送的存储器内容1110的副本。复制逻辑1122-2可以以对OS透明的方式将存储器内容1110的副本存储到第一近存储器。存储器内容1110的副本被存储到第一近存储器,供第一电路用来执行一个或多个应用程序。
在某些示例中,设备1100也可以包括请求逻辑1122-3。请求逻辑1122-3可以由处理器电路1120执行,以接收第一近存储器的页未命中指示。页未命中可以与在第一远存储器中维护的数据相关联。响应于页未命中请求,逻辑1122-3可以将远存储器请求1035中所包括的存储器访问请求发送到第一远存储器,以获得数据。然后,请求逻辑1122-3可以在远存储器响应1140中所包括的远存储器响应中接收来自第一远存储器的数据,然后,可以导致接收到的数据被复制到第一近存储器。根据某些示例,设备1100也可以包括回写逻辑1122-4。回写逻辑1122-4可以由处理器电路1120执行,以将存储器内容的至少诸部分从第一近存储器发送到第一远存储器。存储器内容的至少诸部分可包括脏页面1125,其中具有在一个或多个应用程序由第一电路的执行过程中生成的一个或多个脏页面。对于这些示例,回写逻辑1122-4可以,例如,在诸如LUT之类的数据结构中维护回写策略1124-a。回写策略1124-a可以指令回写逻辑1122-4基于在所述第一近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第一近存储器中的阈值时间被超出中的一项或多项,将脏页面1125发送到第一远存储器。
在某些示例中,回写逻辑1122-4也可以基于存储器检查点执行,导致存储器内容的至少诸部分被回写到至少第一远存储器。如上文所提及的,存储器检查点执行可以与脏页面的动态阈值数量相关联(例如,MT)。一旦脏页面的动态阈值数量被超出,则回写逻辑1122-4可以发送脏页面1125,脏页面1125可包括一个或多个脏页面。在某些示例中,设备1100也可以包括迁移逻辑1122-5。迁移逻辑1122-5可以由处理器电路1120执行,以将存储器内容1145的副本从第一近存储器发送到至少第一远存储器,以允许存储器内容1145的副本的至少一部分迁移到第二近存储器。在某些示例中,可以响应于检测到脱离或到第二设备的连接即将被终止的指示,发送存储器内容1145副本。可以在连接信息1115中接收此信息。
在某些示例中,设备1100可包括功率逻辑1122-6。功率逻辑1122-6可以由处理器电路1120执行,以降低或者提升第一设备上的第一电路和第一近存储器的功率。例如,在将转储清除的上下文信息和存储器内容1145的副本从第一近存储器发送到第二设备之后,可以将第一电路和第一近存储器的功率降低到较低的功率状态。
此处所包括的是一组代表用于执行所公开的体系结构的新颖方面的示例方法的逻辑流程图。尽管为了简洁起见,作为一系列动作示出和描述了一个或多个方法,但是,所属领域的技术人员将了解和明白,方法不受动作的顺序的限制。某些动作可以按与此处所示出和描述的不同的顺序进行和/或与其他动作并行地进行。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
逻辑流程可以以软件、固件,和/或硬件来实现。在软件和固件实施例中,逻辑流程可通过计算机执行的指令来实现,该计算机执行的指令被存储在例如光学存储、磁存储或半导体存储之类的至少一种非瞬态计算机可读介质或机器可读介质上。这些实施例不限于这种背景。
图12示出了第二逻辑流程的示例。如图12所示,第二逻辑流程包括逻辑流程1200。逻辑流程1200可代表诸如设备1200之类的本文所述的一个或多个逻辑、特征或设备所执行的操作中的一些或全部。更具体而言,逻辑流程1200可以通过检测逻辑1122-1、复制逻辑1122-2、请求逻辑1122-3、回写逻辑1122-4、迁移逻辑1122-5或功率逻辑1122-6来实现。
在图12所示出的示例中,在框1202,逻辑流程1200可以在具有第一电路的第一设备中,检测具有第二电路的第二设备已经连接到第一设备的指示。第一和第二电路可以各自都能够使用具有近存储器和远存储器的2LM架构,执行被配置为被执行的一个或多个应用程序。例如,检测设备1122-1可包括检测第二设备。在某些示例中,在框1204,逻辑流程1200可以从位于第二设备中的第一远存储器接收,来自位于第二设备中的第二近存储器的存储器内容的副本,存储器内容被第二电路用来执行一个或多个应用程序。对于这些示例,复制逻辑1122-2可以接收存储器内容的副本。根据某些示例,在框1206,逻辑流程1200可以以对第一或第二设备的操作系统透明的方式,将存储器内容的副本存储在位于第一设备中的第一近存储器中。存储器内容的副本可以被存储到第一近存储器,供第一电路用来执行一个或多个应用程序。对于这些示例,复制逻辑1122-2可以导致存储器内容的副本被存储到第一近存储器。
在某些示例中,在框1208,逻辑流程1200可以从第一近存储器向位于第二设备中的第一远存储器发送存储器内容的至少诸部分。存储器内容的至少诸部分可包括在由第一电路执行一个或多个应用程序的过程中所生成的一个或多个脏页面。对于这些示例,回写逻辑1122-4可以导致存储器内容的至少诸部分被发送到至少第一远存储器。在某些示例中,在框1210,逻辑流程1200可以接收第一近存储器的页未命中指示。页未命中与在第一远存储器中维护的数据相关联。然后,在框1212,逻辑流程可以将存储器访问请求发送到第二设备,以获得在第一远存储器中维护的数据。然后,在框1214,逻辑流程可以从第一远存储器接收数据,在框1216,逻辑流程可以将数据存储在第一近存储器中。对于这些示例,请求逻辑1122-3可以能够实现逻辑流程1200的框1210到1216。
图13示出了第二存储介质的实施例。如图13所示,第二存储介质包括存储介质1300。存储介质1300可以包括制品。在某些示例中,存储介质1300可以包括任何非瞬时的计算机可读介质或机器可读的介质,诸如光学存储、磁存储或半导体存储。存储介质1300可以存储各种类型的计算机可执行指令,诸如用于实现逻辑流程1200的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形的介质,包括易失性存储器或非易失性存储器,可移除或不可移除存储器,可擦除或不可擦存储器,可写入或可重写存储器等等。计算机可执行指令的示例可包括任何合适类型的代码,如源代码、已编译的代码、已解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等等。在此上下文中,示例不受限制。图14示出了设备1400的实施例。在某些示例中,设备1400可以被配置为与另一设备聚合计算、存储器和输入/输出(I/O)资源。设备1400可以实现,例如,设备800/1100,存储介质1000/1300和/或逻辑电路1470。逻辑电路1470可以包括执行针对设备800/1100描述的操作的物理电路。如图14所示,设备1400可以包括无线电接口1410、基带电路1420,以及计算平台1430,虽然示例不仅限于此配置。
设备1400可以在单一计算实体中,诸如完全在单一设备内,实现设备800/1100的某些或全部结构和/或操作,存储介质1000/1300和/或和/或逻辑电路1470。这些实施例不限于这种背景。无线电接口1410可以包括适用于传输和/或接收单载波或多载波调制信号(例如,包括补码键控(CCK)和/或正交频分多路复用(OFDM)符号和/或单载波频分多路复用(SC-FDM)符号)的组件或组件组合,虽然各实施例不仅限于任何特定的无线电接口或调制方案。无线电接口1410可以包括,例如,接收器1412、传输器1416和/或频率合成器1414。无线电接口1410可以包括偏压控制、晶体振荡器和/或一个或多个天线1418-f。在另一个实施例中,根据需要,无线电接口1410可以使用外部电压-控制振荡器(VCO)、表面声波滤波器、中间频率(IF)滤波器和/或射频滤波器。由于各种潜在的RF接口设计,省略了其详细描述。
基带电路1420可以与无线电接口1410进行通信,以处理接收和/或传输信号,并可以包括,例如,用于下转换接收到的信号的模拟-数字转换器1422,用于上转换信号用于发射的数字-模拟转换器1424。进一步地,基带电路1420可以包括基带或物理层(PHY)处理电路1426,用于对相应的接收/传输信号的PHY链路层处理。基带电路1420可以包括,例如,用于媒体接入控制(MAC)/数据链路层处理的处理电路1428。基带电路1420可以包括用于例如通过一个或多个接口1432,与MAC处理电路1428和/或计算平台1430进行通信的存储器控制器1434。
在某些实施例中,PHY处理电路1426可以包括帧构造和/或检测逻辑,与诸如缓冲存储器之类的额外的电路相结合,以构建和/或解构(deconstruct)通信帧(例如,包含子帧)。可另选地或另外,MAC处理电路1428可以共享这些功能中的某些的处理或独立于PHY处理电路1426,执行这些过程。在某些实施例中,MAC和PHY处理可以集成到单个电路中。
计算平台1430可以提供设备1400的计算功能。如图所示,计算平台1430可以包括处理组件1440。另外,或者可另选地,设备1400的基带电路1420可以使用处理组件1430,来执行设备800/1100、存储介质1000/1300,以及逻辑电路1470的处理操作或逻辑。处理组件1440(和/或PHY 1426和/或MAC 1428)可以包括各种硬件元件、软件元件,或两者的组合。硬件元件的示例可包括器件、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可包括软件组件、程序、应用、计算机程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。判断示例是否使用硬件元件和/或软件元件来实现可以根据任意数量的因素而不同,这些因素诸如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,及给定示例所需的其他设计或性能约束。
计算平台1430还可以包括其他平台组件1450。其他平台组件1450可以包括常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如,数字显示器)、电源,等等。存储器单元的示例可以包括,但不仅限于,一种或多种更高速度的存储器单元形式的各种类型的计算机可读的和机器可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除编程ROM(EPROM)、电可擦可编程序只读存储器(EEPROM)、闪存、聚合物存储器,如铁电聚合物存储器、奥氏存储器、相位变化或铁电存储器、硅氧化物氮化物氧化物硅(SONOS)存储器、磁卡或光卡,设备阵列,诸如独立磁盘冗余阵列(RAID)驱动器、固态存储器设备(例如,USB存储器、固态驱动器(SSD)),以及适用于存储信息的任何其他类型的存储介质。
计算平台1430还可以包括网络接口1460。在某些示例中,网络接口1460可包括支持根据一个或多个无线或有线技术,诸如上文所描述的用于通过有线或无线通信信道连接到另一设备以在设备之间建立互连的那些,操作的网络接口的逻辑和/或特征。
设备1400可以是,例如,用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板电脑、超极本计算机、智能电话、可穿戴计算设备、嵌入式电子器件、游戏控制台、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、微型计算机、大型计算机、超级计算机、网络电器、web电器、分布式计算系统、多处理器系统、基于处理器的系统,或其组合。相应地,在设备1400的各实施例中,如所希望的,此处所描述的设备1400的功能和/或特定的配置可以被包括或省略。设备1400的各实施例可以使用单输入单输出(SISO)体系结构来实现。然而,某些实现可以包括多个天线(例如,天线1418-f),用于使用用于射束成形的自适应天线技术或空分多址(SDMA)和/或使用多输入多输出(MIMO)通信技术来进行发射和/或接收。设备1400的组件和特征可以使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片体系结构的任何组合来实现。进一步地,在适当的情况下,设备1400的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或前面的各项的任何组合来实现。值得注意的是,硬件、固件和/或软件元件可以共同地或分别地称为“逻辑”或“电路”。
应该理解,图14的框图所示出的示例性设备1400可以表示许多潜在的实现的一个功能上描述性的示例。相应地,附图中所描绘的块功能的分割、省略或包括不会推断用于实现这些功能的硬件组件、电路、软件和/或元件将一定被分割,省略,或包括在各实施例中。
可以使用表达“在一个示例中”或“示例”以及它们的派生词来描述某些示例。这些术语意味着,参考示例所描述的特定功能、结构或特征包括在至少一个示例中。在本说明书中的不同位置出现短语“在一个示例中”不一定都是指同一个示例。
可以使用表达“耦合”、“连接”或“能够耦合”以及它们的派生词来描述某些示例。这些术语不一定作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以表示,两个或更多元件彼此处于直接的物理或电接触的状态。然而,术语“耦合”也可以意味着,两个或更多彼此不直接接触,但是仍彼此合作或进行交互的元件。在某些示例中,示例第一设备也可以包括能够使用包括第一近存储器和第一远存储器的两级存储器(2LM)架构来执行一个或多个应用程序的第一电路。示例第一设备也可以包括检测逻辑,用于检测能够使用也包括第二近存储器的2LM架构来执行一个或多个应用程序的第二电路。示例第一设备也可以包括连接逻辑,用于导致第一远存储器和第二近存储器之间的连接。示例第一设备也可以包括迁移逻辑,用于使用第一远存储器来导致来自所述第一近存储器的存储器内容的副本迁移到第二近存储器。可以以对操作系统透明的方式迁移存储器内容。
根据示例第一设备的某些示例,第一电路、第一近存储器和第一远存储器可以位于第一设备上,第二电路和第二近存储器可以位于第二设备中。
在示例第一设备的某些示例中,第一近存储器可以具有小于第二近存储器的第二存储器容量的第一存储器容量。根据某些示例,示例第一设备也可以包括功率逻辑,用于在第一近存储器中的存储器内容的副本迁移到第二近存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态。
在示例第一设备的某些示例中,连接逻辑可以接收第一近存储器和第二远存储器之间的连接将被终止的指示。然后,功率逻辑可以导致所述第一电路和所述第一近存储器将所述第一电路和所述第一近存储器的功率提升到较高功率状态。然后,迁移逻辑可以从所述第二近存储器接收存储器内容的第二副本,并导致存储器内容的所述第二副本被存储到所述第一远存储器,并且存储器内容的所述第二副本的至少一部分被存储到所述第一近存储器。
根据示例第一设备的某些示例,迁移逻辑可以基于存储预先存储在所述第二近存储器中并当所述一个或多个应用程序由所述第二电路执行时被所述一个或多个应用程序使用的存储器页的存储器分页策略,导致存储器内容的第二副本的至少一部分被存储到第一近存储器。存储器分页策略可包括下列各项中的至少一项:存储积极地使用的存储器页面,基于与所述存储器页面相关联的年龄来存储,或基于与所述存储器页面相关联的访问模式来存储。
在某些示例中,示例第一设备也可以包括请求逻辑,用于基于第二近存储器的页未命中,接收到第一远存储器的存储器访问请求,并导致到第一远存储器的存储器访问请求被履行,以提供与到第二近存储器的页未命中相关联的数据。
根据示例第一设备的某些示例,迁移逻辑可以从第二近存储器接收至少诸部分。对于这些示例,存储器内容的至少诸部分可包括在由第二电路执行一个或多个应用程序的过程中所生成的一个或多个脏页面。迁移逻辑可以导致一个或多个脏页面被存储到第一远存储器。
在示例第一设备的某些示例中,迁移逻辑可以基于回写策略来接收存储器内容的至少诸部分,回写策略包括在所述第二近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第二近存储器中的阈值时间被超出中的一项或多项。
根据示例第一设备的某些示例,迁移逻辑可以基于存储器检查点执行,来接收存储器内容的至少诸部分,该存储器检查点执行包括在第二近存储器中维护的脏页面的动态阈值数量被超出。对于这些示例,所述动态阈值数量可以基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连在所述第一远存储器和所述第二近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于到所述第一远存储器的存储器控制器写入等待时间和从所述第二近存储器的存储器控制器读取等待时间。
在示例第一设备的某些示例中,第一设备可包括下列各项中的一项或多项:与第二设备中的从第二电路散热的较高热容量相比,第一设备具有用于从第一电路散热的较低热容量,第一设备以电池电量来操作,或与用于给第二设备上的第二电路供电的较高载流容量相比,第一设备具有用于给第一电路供电的较低载流容量。
在某些示例中,示例第一方法可包括在第一电路上执行一个或多个应用程序。第一电路可以能够使用包括第一近存储器以及第一远存储器的两级存储器(2LM)架构,执行一个或多个应用程序。示例第一方法也可以包括使用也包括第二近存储器的2LM架构,检测能够执行一个或多个应用程序的第二电路。示例第一方法也可以包括将第一远存储器连接到第二近存储器。示例第一方法也可以包括使用所述第一远存储器来将存储器内容的副本从所述第一近存储器迁移到所述第二近存储器,存储器内容的所述副本以对操作系统透明的方式迁移。根据示例第一方法的某些示例,第一电路、第一近存储器和第一远存储器可以位于第一设备上,第二电路和第二近存储器可以位于第二设备中。
在示例第一方法的某些示例中,第一近存储器可以具有小于第二近存储器的第二存储器容量的第一存储器容量。
根据某些示例,示例第一方法也可以包括在第一近存储器中的存储器内容的副本迁移到第二近存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态。示例第一方法也可以包括继续向第一远存储器提供功率。
根据某些示例,示例第一方法也可以包括在所述第一远存储器上,基于第二近存储器的页未命中,接收存储器访问请求;以及,
履行存储器访问请求,以便提供与页未命中相关联的数据。
在示例第一方法的某些示例中,可以响应于第一设备耦合到允许第一设备建立有线通信信道以通过有线互连与第二设备进行连接的有线接口或响应于第一设备进入允许第一设备建立无线通信信道以通过无线互连与第二设备进行连接的给定物理接近度,检测第二设备。
根据某些示例,示例第一方法也可以包括在所述第一远存储器上,从第二近存储器接收存储器内容的至少诸部分。对于这些示例,存储器内容的至少诸部分可包括在由第二电路执行一个或多个应用程序的过程中所生成的一个或多个脏页面。
在示例第一方法的某些示例中,接收存储器内容的至少诸部分可以基于回写策略,回写策略包括在所述第二近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第二近存储器中的阈值时间被超出中的一项或多项。
根据示例第一方法的某些示例,第一阈值数量可以基于第一近存储器的存储器容量或用于通过有线互连或无线互连在第一远存储器和第二近存储器之间迁移存储器内容的第二副本的相应的数据带宽和等待时间。
在示例第一方法的某些示例中,第二阈值数量可以基于用于通过有线互连或无线互连在第一远存储器和第二近存储器之间迁移存储器内容的第二副本的数据带宽能力,与从有线或无线互连断开连接相关联的时间限制,以及与在由第二电路执行一个或多个应用程序的过程中生成的一个或多个脏页面相关联的大小。
根据示例第一方法的某些示例,接收存储器内容的所述至少诸部分可以基于存储器检查点执行,所述存储器检查点执行包括在所述第二近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连在所述第一远存储器和所述第二近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于到所述第一远存储器的存储器控制器写入等待时间和从所述第二近存储器的存储器控制器读取等待时间。
在某些示例中,示例第一方法也可以包括接收到第二电路的连接将被终止的指示,将所述第一电路和所述第一近存储器的功率提升到较高功率状态,在所述第一远存储器上,接收来自第二近存储器的存储器内容的迁移的第二副本,将来自第二近存储器的存储器内容的迁移的第二副本的至少一部分存储到第一近存储器,并恢复一个或多个应用程序在第一电路上的执行。根据示例第一方法的某些示例,存储存储器内容的第二副本的的至少一部分可以基于存储预先存储在所述第二近存储器中并当所述一个或多个应用程序由所述第二电路执行时被所述一个或多个应用程序使用的存储器页的存储器分页策略,所述存储器分页策略包括下列各项中的至少一项:存储积极地使用的存储器页面,基于与所述存储器页面相关联的年龄来存储,或基于与所述存储器页面相关联的访问模式来存储。在示例第一方法的某些示例中,一个或多个应用程序可包括下列各项中的一项:至少4K分辨率流式传送视频应用程序、要向显示器呈现至少4K分辨率图像或图形的应用程序,包括当呈现给显示器时具有至少4K分辨率的视频或图形的游戏应用程序、用于用户输入到耦合到具有触摸输入能力的第二电路的显示器的视频编辑应用程序或触摸屏应用程序。
在某些示例中,示例第一至少一个机器可读的介质包括多个指令,所述指令,响应于在具有第一电路的第一设备上被执行,可以导致第一设备执行一个或多个应用程序,第一电路能够使用包括第一近存储器和第二远存储器的两级存储器(2LM)架构,来执行一个或多个应用程序。指令也可以导致第一设备使用也包括第二近存储器的2LM架构,检测能够执行一个或多个应用程序的第二电路。指令也可以导致第一设备将第一远存储器连接到第二近存储器。指令也可以导致第一设备使用第一远存储器来将存储器内容的副本从第一近存储器迁移到第二近存储器。可以以对操作系统透明的方式迁移存储器内容的副本。
根据第一至少一个机器可读的介质的某些示例,第一电路,第一近存储器和第一远存储器位于第一设备中,第二电路和第二近存储器位于第二设备中。
在第一至少一个机器可读的介质的某些示例中,第一近存储器可以具有小于第二近存储器的第二存储器容量的第一存储器容量。
根据第一至少一个机器可读的介质的某些示例,指令也可以导致第一设备在将第一近存储器中的存储器内容的副本迁移到第二近存储器之后,将第一电路和第一近存储器功率降低到较低功率状态,并继续向第一远存储器提供功率。在第一至少一个机器可读的介质的某些示例中,指令也可以导致第一设备基于第二近存储器的页未命中,接收对第一远存储器的存储器访问请求,并履行对第一远存储器的存储器访问请求,以便提供与页未命中相关联的数据。
根据第一至少一个机器可读的介质的某些示例,指令也可以导致第一设备响应于第一设备耦合到允许第一设备建立有线通信信道以通过有线互连与具有第二电路的第二设备进行连接的有线接口或响应于第一设备进入允许第一设备建立无线通信信道以通过无线互连与第二设备进行连接的给定物理接近度,检测第二电路。
在第一至少一个机器可读的介质的某些示例中,指令也可以导致第一设备从第二近存储器接收存储器内容的至少诸部分,存储器内容的至少诸部分包括在由第二电路执行一个或多个应用程序的过程中生成的一个或多个脏页面,并导致接收到的存储器内容的至少诸部分被存储到第一远存储器。
根据第一至少一个机器可读的介质的某些示例,指令也可以导致第一设备回写策略来接收存储器内容的至少诸部分,回写策略包括在所述第二近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第二近存储器中的阈值时间被超出中的一项或多项。
在第一至少一个机器可读的介质的某些示例中,指令也可以导致第一设备基于存储器检查点执行,接收存储器内容的所述至少诸部分,所述存储器检查点执行包括在所述第二近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连在所述第一远存储器和所述第二近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于到所述第一远存储器的存储器控制器写入等待时间和从所述第二近存储器的存储器控制器读取等待时间。
根据第一至少一个机器可读的介质的某些示例,指令还导致第一设备接收到第二电路的所述连接将被终止的指示,将所述第一电路和所述第一近存储器的功率提升到较高功率状态,从所述第二近存储器接收存储器内容的迁移的第二副本,导致存储器内容的所述迁移的第二副本被存储到所述第一远存储器,并将迁移的存储器内容的第二副本的至少一部分存储到所述第一近存储器,用于恢复一个或多个应用程序在第一电路上的执行。在第一至少一个机器可读的介质的某些示例中,指令也可以导致第一设备基于存储预先存储在所述第二近存储器中并当所述一个或多个应用程序由所述第二电路执行时被所述一个或多个应用程序使用的存储器页的存储器分页策略,将存储器内容的所述迁移的第二副本的所述至少一部分被存储到所述第一近存储器,所述存储器分页策略包括下列各项中的至少一项:存储积极地使用的存储器页面,基于与所述存储器页面相关联的年龄来存储,或基于与所述存储器页面相关联的访问模式来存储。
在某些示例中,示例第二设备可包括第一电路,所述第一电路能够使用包括第一近存储器以及第一远存储器的两级存储器(2LM)架构,执行一个或多个应用程序。示例第二设备也可以包括检测逻辑,用于检测到2LM架构中所包括的第二近存储器的连接的指示。第二近存储器可以能够当一个或多个应用程序由第二电路执行时被一个或多个应用程序使用。示例第二设备也可以包括复制逻辑,所述复制逻辑,从所述第一远存储器,接收从由所述第二电路为执行所述一个或多个应用程序所使用的所述第二近存储器发送的存储器内容的副本。复制逻辑可以导致存储器内容的副本以对操作系统透明的方式被存储在第一近存储器中。存储器内容的副本可以被存储到第一近存储器,供第一电路用来执行一个或多个应用程序。根据示例第二设备的某些示例,第一近存储器可以具有大于第二近存储器的第二存储器容量的第一存储器容量。在某些示例中,示例第二设备也可以包括请求逻辑,用于接收第一近存储器的页未命中指示,页未命中与在第一远存储器中维护的数据相关联。对于这些示例,请求逻辑可以将存储器访问请求发送到第一远存储器以获得数据,从第一远存储器接收数据,并导致接收到的数据被复制到第一近存储器。
根据示例第二设备的某些示例,第一电路和第一近存储器可以位于第一设备上,第二电路,第一远存储器和第二近存储器可以位于第二设备中。
在示例第二设备的某些示例中,检测逻辑可以响应于第一设备耦合到允许第一设备建立有线通信信道以通过有线互连与第二设备进行连接的有线接口或响应于第一设备进入允许第一设备建立无线通信信道以通过无线互连与第二设备进行连接的给定物理接近度,检测连接到第二近存储器的指示。
根据某些示例,示例第二设备也可以包括回写逻辑,用于从第一近存储器,将存储器内容的至少诸部分发送到第一远存储器,存储器内容的至少诸部分包括在由第一电路执行一个或多个应用程序的过程中生成的一个或多个脏页面。
在示例第二设备的某些示例中,回写逻辑可以基于回写策略来发送存储器内容的至少诸部分,所述回写策略包括在所述第一近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第一近存储器中的阈值时间被超出中的一项或多项。
根据示例第二设备的某些示例,回写逻辑可以基于存储器检查点执行,发送存储器内容的所述至少诸部分,所述存储器检查点执行包括在所述第一近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用的数据带宽,观察到的等待时间,或对于通过有线互连或无线互连在所述第一远存储器和所述第一近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于到所述第一远存储器的存储器控制器写入等待时间和从所述第一近存储器的存储器控制器读取等待时间。
在示例第二设备的某些示例中,检测逻辑接收到第二近存储器的连接将被终止的指示。示例第二设备也可以包括迁移逻辑,用于将存储器内容的第二副本从第一近存储器发送到第一远存储器,以允许存储器内容的第二副本的至少一部分迁移到第二近存储器。示例第二设备也可以包括功率逻辑,用于在将存储器内容的第二副本发送到第一远存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态。
在某些示例中,示例第二方法可包括,在具有第一电路的第一设备上,检测具有第二电路的第二设备已经连接到第一设备的指示。对于这些示例,第一和第二电路可以各自都能够使用具有近存储器和远存储器的两级存储器(2LM)架构,执行一个或多个应用程序。示例第二方法也可以包括,从位于第二设备中的第一远存储器,接收来自在第二设备中维护的第二近存储器的存储器内容的副本。存储器内容可以被第二电路用来执行一个或多个应用程序。示例第二方法也可以包括以对第一或第二设备的操作系统透明的方式,将存储器内容的副本存储在位于第一设备中的第一近存储器中。存储器内容的副本可以被存储到第一近存储器,供第一电路用来执行一个或多个应用程序。
根据示例第二方法的某些示例,第一近存储器可以具有大于第二近存储器的第二存储器容量的第一存储器容量。在某些示例中,示例第二方法也可以包括接收第一近存储器的页未命中指示。对于这些示例,页未命中可以与在第一远存储器中维护的数据相关联。示例第二方法也可以包括将存储器访问请求发送到第二设备以获得到第一远存储器中维护的数据,从第一远存储器接收数据,并将数据存储到第一近存储器中。
根据某些示例,示例第二方法也可以包括响应于第一设备耦合到允许第一设备建立有线通信信道以通过有线互连与第二设备进行连接的有线接口或响应于第一设备进入允许第一设备建立无线通信信道以通过无线互连与第二设备进行连接的给定物理接近度,检测第二设备已经连接的指示。
在某些示例中,示例第二方法也可以包括从第一近存储器,将存储器内容的至少诸部分发送到在第二设备中维护的第一远存储器。对于这些示例,存储器内容的至少诸部分可包括在由第一电路执行一个或多个应用程序的过程中所生成的一个或多个脏页面。根据示例第二方法的某些示例,发送存储器内容的至少诸部分可以基于回写策略,回写策略包括在所述第一近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第一近存储器中的阈值时间被超出中的一项或多项。
在示例第二方法的某些示例中,第一阈值数量可以基于第二近存储器的存储器容量,或用于通过有线互连或无线互连在第一远存储器和第一近存储器之间迁移存储器内容的第二副本的相应的带宽和等待时间。
根据示例第二方法的某些示例,第二阈值数量可以基于用于通过有线互连或无线互连在第一远存储器和第一近存储器之间迁移存储器内容的第二副本的数据带宽能力,与从第二设备断开第一设备相关联的时间限制,以及与在由第一电路执行一个或多个应用程序的过程中生成的一个或多个脏页面相关联的大小。
在示例第二方法的某些示例中,发送存储器内容的至少诸部分可以基于存储器检查点执行,所述存储器检查点执行包括在所述第一近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连,在所述第一远存储器和所述第一近存储器之间迁移存储器内容的第二副本的分配的功率使用限制,所述动态阈值数量还基于到所述第一远存储器的存储器控制器写入等待时间和从在第一设备中维护的所述第一近存储器的存储器控制器读取等待时间。
根据某些示例,示例第二方法也可以包括接收到第二设备的连接将被终止的指示,将存储器内容的第二副本从第一近存储器发送到第一远存储器,以允许存储器内容的第二副本的的至少一部分迁移到第二近存储器,在存储器内容的所述第二副本发送到所述第一远存储器之后,将所述第一电路和所述第一近存储器降低到较低功率状态。
在示例第二方法的某些示例中,执行一个或多个应用程序的至少一部分可包括下列各项中的一项:导致至少4K分辨率流式传送视频被呈现在耦合到第一设备的显示器上,导致至少4K分辨率图像或图形被呈现在耦合到第一设备的显示器上,或导致触摸屏被呈现在耦合到第一设备的显示器上,显示器具有触摸输入能力。在某些示例中,示例第二至少一个机器可读的介质包括多个指令,所述指令,响应于在具有第一电路的第一设备上被执行,可以导致第一设备检测具有第二电路的第二设备已经连接到第一设备的指示。第一和第二电路可以各自都能够使用具有近存储器和远存储器的两级存储器(2LM)架构,执行一个或多个应用程序。指令也可以导致第一设备从位于第二设备中的第一远存储器,接收来自位于第二设备中的第二近存储器的存储器内容的副本。存储器内容可以被第二电路用来执行一个或多个供使用程序。指令也可以导致第一设备以对第一或第二设备的操作系统透明的方式,将存储器内容的副本存储到在第一设备中维护的第一近存储器。存储器内容的副本被存储到第一近存储器,供第一电路用来执行一个或多个应用程序。
根据第二至少一个机器可读的介质的某些示例,第一近存储器可以具有大于第二近存储器的第二存储器容量的第一存储器容量。
在第二至少一个机器可读的介质的某些示例中,指令也可以导致第一设备接收第一近存储器的页未命中指示。页未命中可以与在第一远存储器中维护的数据相关联。指令也可以导致第一设备将存储器访问请求发送到第二设备以获得在第一远存储器中维护的数据,从第一远存储器接收数据,并导致数据存储在第一近存储器中。
根据第二至少一个机器可读的介质的某些示例,第二设备已经连接的指示的检测可以响应于第一设备耦合到允许第一设备建立有线通信信道以通过有线互连与第二设备进行连接的有线接口或响应于第一设备进入允许第一设备建立无线通信信道以通过无线互连与第二设备进行连接的给定物理接近度。在第二至少一个机器可读的介质的某些示例中,指令也可以导致第一设备从第一近存储器,将存储器内容的至少诸部分发送到在第二设备上维护的第一远存储器,存储器内容的至少诸部分包括在由第一电路执行一个或多个应用程序的过程中生成的一个或多个脏页面。
根据第二至少一个机器可读的介质的某些示例,指令也可以导致第一设备基于回写策略来发送存储器内容的至少诸部分,所述回写策略包括在所述第一近存储器中维护的脏页面的第一或第二阈值数量被超出或脏页面可以被维护在所述第一近存储器中的阈值时间被超出中的一项或多项。
在第二至少一个机器可读的介质的某些示例中,指令也可以导致第一设备基于存储器检查点执行,发送存储器内容的所述至少诸部分,所述存储器检查点执行包括在所述第一近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连,在所述第一远存储器和所述第一近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于到所述第一远存储器的存储器控制器写入等待时间和从在第一设备中维护的所述第一近存储器的存储器控制器读取等待时间。根据第二至少一个机器可读的介质的某些示例,指令也可以导致第一设备接收到第二设备的连接将被终止的指示,将存储器内容的第二副本从第一近存储器发送到第一远存储器,以允许存储器内容的第二副本的的至少一部分迁移到第二近存储器,在存储器内容的所述第二副本发送到所述第一远存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态。
要强调的是,提供可公开内容的摘要以符合37C.F.R.第1.72(b)段,要求将可使读者快速地弄清本技术公开的特征的摘要。但应理解,它不能被用来解释或限制权利要求的范围或含义。此外,在前面的“具体实施方式”中,可以看出,各种特征可以组合在一个示例中,以便简化说明。本发明的此方法不应被解释为反映带权利要求的各示例需要比每一个权利要求中明确地列举的特征更多的特征的意图。相反,如下面的权利要求所反映的,本发明的主题在于少于所公开的单一示例的所有特征。如此,下面的权利要求被包括到“详细描述”中,每一个权利要求本身也作为单独的示例。在所附权利要求书中,术语“包含”和“其中”(in which)被用作相应的术语“包含”和“其中”(herein)的普通英语等效词。此外,术语“第一”、“第二”、“第三”等等只用作标记,并不旨在对它们的对象施加数值要求。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (29)

1.一种存储器组合设备,包括:
第一电路,所述第一电路能够使用包括第一近存储器以及第一远存储器的两级存储器(2LM)架构来执行一个或多个应用程序,所述第一近存储器的等待时间低于所述第一远存储器的等待时间;
检测逻辑,所述检测逻辑用于检测能够使用也包括第二近存储器的所述2LM架构来执行所述一个或多个应用程序的第二电路;
连接逻辑,所述连接逻辑用于导致所述第一远存储器与所述第二近存储器之间的连接,所述第二近存储器的等待时间低于所述第一远存储器的等待时间;以及
迁移逻辑,所述迁移逻辑用于使用所述第一远存储器来导致存储器内容的副本从所述第一近存储器迁移到所述第二近存储器,存储器内容以对操作系统透明的方式迁移。
2.如权利要求1所述的设备,其特征在于,包括位于第一设备中的所述第一电路、第一近存储器以及第一远存储器,以及位于第二设备中的所述第二电路以及第二近存储器。
3.如权利要求1所述的设备,其特征在于,包括具有第一存储器容量的所述第一近存储器,所述第一存储器容量小于所述第二近存储器的第二存储器容量。
4.如权利要求1所述的设备,其特征在于,包括:
功率逻辑,所述功率逻辑用于在将所述第一近存储器中的存储器内容的所述副本迁移到所述第二近存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态,并导致对所述第一远存储器的持续的功率。
5.如权利要求4所述的设备,其特征在于,包括:
所述连接逻辑,其用于接收所述第一远存储器与所述第二近存储器之间的所述连接将被终止的指示;
所述功率逻辑,其用于导致所述第一电路和所述第一近存储器将所述第一电路和所述第一近存储器的功率提升到较高功率状态;以及
所述迁移逻辑,其用于从所述第二近存储器接收存储器内容的第二副本,并导致存储器内容的所述第二副本被存储到所述第一远存储器以及存储器内容的所述第二副本的至少一部分被存储到所述第一近存储器。
6.如权利要求5所述的设备,其特征在于,包括所述迁移逻辑基于存储先前存储在所述第二近存储器中并且当所述一个或多个应用程序由所述第二电路执行时被所述一个或多个应用程序使用的存储器页的存储器分页策略,导致存储器内容的所述第二副本的所述至少一部分被存储到所述第一近存储器,所述存储器分页策略包括下列各项中的至少一项:存储被积极地使用的存储器页面,基于与所述存储器页面相关联的年龄来存储,或基于与所述存储器页面相关联的访问模式来存储。
7.如权利要求1所述的设备,其特征在于,包括:
请求逻辑,所述请求逻辑基于对所述第二近存储器的页未命中,接收对所述第一远存储器的存储器访问请求,并导致对所述第一远存储器的所述存储器访问请求被履行,以提供与对所述第二近存储器的所述页未命中相关联的数据。
8.如权利要求1所述的设备,其特征在于,包括:
所述迁移逻辑,其用于从所述第二近存储器接收存储器内容的至少诸部分,存储器内容的所述至少诸部分包括在由所述第二电路执行所述一个或多个应用程序的过程中生成的一个或多个脏页面,所述迁移逻辑导致所述一个或多个脏页面被存储到所述第一远存储器。
9.如权利要求8所述的设备,其特征在于,包括所述迁移逻辑,所述迁移逻辑用于基于回写策略来接收存储器内容的所述至少诸部分,所述回写策略包括以下各项中的一者或多者:在所述第二近存储器中维护的脏页面的第一或第二阈值数量被超出;或脏页面可被维护在所述第二近存储器中的阈值时间被超出。
10.如权利要求8所述的设备,其特征在于,包括所述迁移逻辑,所述迁移逻辑用于基于存储器检查点执行接收存储器内容的所述至少诸部分,所述存储器检查点执行包括在所述第二近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连在所述第一远存储器和所述第二近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于写入到所述第一远存储器的存储器控制器写入等待时间和读取自所述第二近存储器的存储器控制器读取等待时间。
11.一种存储器组合方法,包括:
在第一电路上执行一个或多个应用程序,所述第一电路能够使用包括第一近存储器和第一远存储器的两级存储器(2LM)架构来执行所述一个或多个应用程序,所述第一近存储器的等待时间低于所述第一远存储器的等待时间;
检测能够使用也包括第二近存储器的所述2LM架构来执行所述一个或多个应用程序的第二电路,所述第二近存储器的等待时间低于所述第一远存储器的等待时间;
将所述第一远存储器连接到所述第二近存储器;
使用所述第一远存储器来导致存储器内容的副本从所述第一近存储器迁移到所述第二近存储器,存储器内容的所述副本以对操作系统透明的方式迁移;
在将所述第一近存储器中的存储器内容的所述副本迁移到所述第二近存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态;以及
继续向所述第一远存储器提供功率。
12.如权利要求11所述的方法,其特征在于,包括位于第一设备中的所述第一电路、第一近存储器以及第一远存储器,以及位于第二设备中的所述第二电路以及第二近存储器。
13.一种存储指令的机器可读存储介质,当所述指令由所述机器执行时,使所述机器执行如权利要求11-12中任一项所述的方法。
14.一种计算系统,包括多个装置以用于分别执行如权利要求11-12中任一项所述的方法中的步骤。
15.一种用于具有第一电路的第一设备的装备,包括:
用于执行一个或多个应用程序的装置,所述第一电路能够使用包括第一近存储器和第一远存储器的两级存储器(2LM)架构来执行所述一个或多个应用程序,所述第一近存储器的等待时间低于所述第一远存储器的等待时间;
用于检测能够使用也包括第二近存储器的所述2LM架构来执行所述一个或多个应用程序的第二电路的装置,所述第二近存储器的等待时间低于所述第一远存储器的等待时间;
用于将所述第一远存储器连接到所述第二近存储器的装置;
用于使用所述第一远存储器来导致存储器内容的副本从所述第一近存储器迁移到所述第二近存储器的装置,存储器内容的所述副本以对操作系统透明的方式迁移;
用于在将所述第一近存储器中的存储器内容的所述副本迁移到所述第二近存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态的装置;以及
用于继续向所述第一远存储器提供功率的装置。
16.如权利要求15所述的装备,其特征在于,包括:
用于从所述第二近存储器接收存储器内容的至少诸部分的装置,存储器内容的所述至少诸部分包括在由所述第二电路执行所述一个或多个应用程序的过程中生成的一个或多个脏页面;以及
用于导致所述接收到的存储器内容的至少诸部分被存储到所述第一远存储器的装置。
17.如权利要求16所述的装备,其特征在于,包括用于导致所述第一设备基于回写策略来接收存储器内容的所述至少诸部分的装置,所述回写策略包括以下各项中的一者或多者:在所述第二近存储器中维护的脏页面的第一或第二阈值数量被超出;或脏页面可被维护在所述第二近存储器中的阈值时间被超出。
18.如权利要求16所述的装备,其特征在于,包括用于导致所述第一设备基于存储器检查点执行接收存储器内容的所述至少诸部分的装置,所述存储器检查点执行包括在所述第二近存储器中维护的脏页面的动态阈值数量被超出,所述动态阈值数量基于可用数据带宽,观察到的等待时间,或对于通过有线互连或无线互连在所述第一远存储器和所述第二近存储器之间迁移存储器内容的第二副本的指派功率使用限制,所述动态阈值数量还基于写入到所述第一远存储器的存储器控制器写入等待时间和读取自所述第二近存储器的存储器控制器读取等待时间。
19.一种存储器组合设备,包括:
第一电路,所述第一电路能够使用包括第一近存储器以及第一远存储器的两级存储器(2LM)架构来执行一个或多个应用程序,所述第一近存储器的等待时间低于所述第一远存储器的等待时间;
检测逻辑,所述检测逻辑用于检测到所述2LM架构中所包括的第二近存储器的连接的指示,所述第二近存储器能够在所述一个或多个应用程序由第二电路执行时被所述一个或多个应用程序使用,所述第二近存储器的等待时间低于所述第一远存储器的等待时间;
复制逻辑,所述复制逻辑用于从所述第一远存储器接收从由所述第二电路用来执行所述一个或多个应用程序所使用的所述第二近存储器发送的存储器内容的副本,所述复制逻辑导致所述副本以对操作系统透明的方式被存储在所述第一近存储器中,所述存储的副本被所述第一电路用来执行所述一个或多个应用程序。
20.如权利要求19所述的设备,其特征在于,包括:
请求逻辑,所述请求逻辑用于接收所述第一近存储器的页未命中指示,所述页未命中与在所述第一远存储器中维护的数据相关联,所述请求逻辑用于:
将存储器访问请求发送到所述第一远存储器以获得所述数据;
从所述第一远存储器接收所述数据;以及
导致所述接收到的数据复制到所述第一近存储器。
21.如权利要求19所述的设备,其特征在于,包括:
回写逻辑,所述回写逻辑用于从所述第一近存储器,将存储器内容的至少诸部分发送到所述第一远存储器,存储器内容的所述至少诸部分包括在由所述第一电路执行所述一个或多个应用程序的过程中生成的一个或多个脏页面,所述回写逻辑用于基于回写策略来发送存储器内容的所述至少诸部分,所述回写策略包括以下各项中的一者或多者:在所述第一近存储器中维护的脏页面的第一或第二阈值数量被超出;或脏页面被维护在所述第一近存储器中的阈值时间被超出。
22.如权利要求19所述的设备,其特征在于,包括:
所述检测逻辑,用于接收到所述第二近存储器的所述连接将被终止的指示;
迁移逻辑,所述迁移逻辑用于将存储器内容的第二副本从所述第一近存储器发送到所述第一远存储器,以允许存储器内容的所述第二副本的至少一部分迁移到所述第二近存储器;以及
功率逻辑,所述功率逻辑用于在将存储器内容的所述第二副本发送到所述第一远存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态。
23.一种存储器组合方法,包括:
在具有第一电路的第一设备处,检测具有第二电路的第二设备已连接到所述第一设备的指示,所述第一和所述第二电路中的每一个都能够使用具有近存储器和远存储器的两级存储器(2LM)架构来执行一个或多个应用程序;
从位于所述第二设备中的第一远存储器,接收来自位于所述第二设备中的第二近存储器的存储器内容的副本,所述存储器内容被所述第二电路用来执行所述一个或多个应用程序,所述第二近存储器的等待时间低于所述第一远存储器的等待时间;
以对所述第一或所述第二设备的操作系统透明的方式,将存储器内容的所述副本存储到位于所述第一设备中的第一近存储器,存储器内容的所述副本被存储到所述第一近存储器,以供所述第一电路用来执行所述一个或多个应用程序,所述第一近存储器的等待时间低于所述第一远存储器的等待时间;以及
接收所述第一近存储器的页未命中指示,所述页未命中与在所述第一远存储器中维护的数据相关联;
将存储器访问请求发送到所述第二设备,以获得在所述第一远存储器中维护的所述数据;
从所述第一远存储器接收所述数据;以及
将所述数据存储在所述第一近存储器中。
24.如权利要求23所述的方法,其特征在于,包括:
接收到所述第二设备的所述连接将被终止的指示;
将存储器内容的第二副本从所述第一近存储器发送到所述第一远存储器,以允许存储器内容的所述第二副本的至少一部分迁移到所述第二近存储器;以及
在将存储器内容的所述第二副本发送到所述第一远存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态。
25.一种存储指令的机器可读存储介质,当所述指令由所述机器执行时,使所述机器执行如权利要求23-24中任一项所述的方法。
26.一种计算系统,包括多个装置以用于分别执行如权利要求23-24中任一项所述的方法中的步骤。
27.一种用于具有第一电路的第一设备的装备,包括:
用于检测具有第二电路的第二设备已连接到所述第一设备的指示的装置,所述第一和所述第二电路中的每一个都能够使用具有近存储器和远存储器的两级存储器(2LM)架构来执行一个或多个应用程序;
用于从位于所述第二设备中的第一远存储器,接收来自位于所述第二设备中的第二近存储器的存储器内容的副本的装置,所述存储器内容被所述第二电路用来执行所述一个或多个应用程序,所述第二近存储器的等待时间低于所述第一远存储器的等待时间;以及
用于以对所述第一或所述第二设备的操作系统透明的方式,将存储器内容的所述副本存储到位于所述第一设备中的第一近存储器的装置,存储器内容的所述副本被存储到所述第一近存储器,以供所述第一电路用来执行所述一个或多个应用程序,所述第一近存储器的等待时间低于所述第一远存储器的等待时间。
28.如权利要求27所述的装备,其特征在于,包括:
用于接收所述第一近存储器的页未命中指示的装置,所述页未命中与在所述第一远存储器中维护的数据相关联;
用于将存储器访问请求发送到所述第二设备,以获得在所述第一远存储器中维护的所述数据的装置;
用于从所述第一远存储器接收所述数据的装置;以及
用于导致将所述数据存储在所述第一近存储器中的装置。
29.如权利要求27所述的装备,其特征在于,包括:
用于接收到所述第二设备的所述连接将被终止的指示的装置;
用于将存储器内容的第二副本从所述第一近存储器发送到所述第一远存储器,以允许存储器内容的所述第二副本的至少一部分迁移到所述第二近存储器的装置;以及
用于在将存储器内容的所述第二副本发送到所述第一远存储器之后,将所述第一电路和所述第一近存储器的功率降低到较低功率状态的装置。
CN201380079696.5A 2013-09-27 2013-09-27 用于跨设备组合存储器资源的设备、方法 Active CN105556493B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/062310 WO2015047314A1 (en) 2013-09-27 2013-09-27 Techniques to compose memory resources across devices

Publications (2)

Publication Number Publication Date
CN105556493A CN105556493A (zh) 2016-05-04
CN105556493B true CN105556493B (zh) 2018-12-11

Family

ID=52741325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079696.5A Active CN105556493B (zh) 2013-09-27 2013-09-27 用于跨设备组合存储器资源的设备、方法

Country Status (7)

Country Link
US (2) US9798574B2 (zh)
EP (1) EP3049943B1 (zh)
JP (1) JP6366717B2 (zh)
KR (1) KR101785301B1 (zh)
CN (1) CN105556493B (zh)
TW (1) TWI506531B (zh)
WO (1) WO2015047314A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268836B2 (en) 2013-11-14 2016-02-23 Vmware, Inc. Intelligent data propagation in a highly distributed environment
US9230001B2 (en) 2013-11-14 2016-01-05 Vmware, Inc. Intelligent data propagation using performance monitoring
CN107408034B (zh) * 2015-03-23 2022-02-18 英特尔公司 执行上下文迁移方法和装置
US9971708B2 (en) * 2015-12-02 2018-05-15 Advanced Micro Devices, Inc. System and method for application migration between docking station and dockable device
US10437731B2 (en) * 2015-12-24 2019-10-08 Intel Corporation Multi-level non-volatile cache with selective store
US10248584B2 (en) * 2016-04-01 2019-04-02 Microsoft Technology Licensing, Llc Data transfer between host and peripheral devices
JP2018032256A (ja) * 2016-08-25 2018-03-01 東芝メモリ株式会社 メモリシステムおよびプロセッサシステム
US10628367B2 (en) 2016-12-28 2020-04-21 Intel Corporation Techniques for dynamically modifying platform form factors of a mobile device
US10901894B2 (en) * 2017-03-10 2021-01-26 Oracle International Corporation Allocating and accessing memory pages with near and far memory blocks from heterogeneous memories
KR102297512B1 (ko) 2017-04-04 2021-09-03 삼성전자주식회사 전자 장치 및 그의 제어 방법
US10339067B2 (en) * 2017-06-19 2019-07-02 Advanced Micro Devices, Inc. Mechanism for reducing page migration overhead in memory systems
CN109324752B (zh) * 2017-07-31 2023-11-03 伊姆西Ip控股有限责任公司 用于控制脏页生成的系统、介质和方法
KR102430209B1 (ko) * 2017-09-07 2022-08-05 삼성전자주식회사 저장 장치 및 저장 장치에 포함된 컨트롤러들
US10698766B2 (en) * 2018-04-18 2020-06-30 EMC IP Holding Company LLC Optimization of checkpoint operations for deep learning computing
EP3695315A4 (en) * 2018-08-01 2020-12-02 Huawei Technologies Co., Ltd. MULTI-INSTANCE 2LM ARCHITECTURE FOR SCM APPLICATIONS
US11733902B2 (en) * 2021-04-30 2023-08-22 International Business Machines Corporation Integrating and increasing performance of disaggregated memory in operating systems

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981096B1 (en) 1998-10-02 2005-12-27 International Business Machines Corporation Mapping and logic for combining L1 and L2 directories and/or arrays
JP2002157212A (ja) * 2000-11-17 2002-05-31 Hitachi Ltd 情報処理システム並びに携帯用電子機器および情報処理装置
US6922753B2 (en) * 2002-09-26 2005-07-26 International Business Machines Corporation Cache prefetching
TWI294569B (en) * 2004-01-16 2008-03-11 Ip First Llc Apparatus and method for performing fast pop operation from random access cache memory and computer-readable storage medium
JP2005241752A (ja) 2004-02-24 2005-09-08 Seiko Epson Corp 情報表示装置および情報表示システム
US7730335B2 (en) * 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US20060294304A1 (en) * 2005-06-24 2006-12-28 Research In Motion Limited System and method for managing memory in a mobile device
US7814279B2 (en) * 2006-03-23 2010-10-12 International Business Machines Corporation Low-cost cache coherency for accelerators
JP5083757B2 (ja) * 2007-04-19 2012-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
EP2374063B1 (en) * 2009-01-05 2017-11-22 SanDisk Technologies LLC Non-volatile memory and method with write cache partitioning
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8725953B2 (en) * 2009-01-21 2014-05-13 Arm Limited Local cache power control within a multiprocessor system
US20100228922A1 (en) * 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines
US8478945B2 (en) * 2010-02-01 2013-07-02 International Business Machines Corporation Dynamic management of destage tasks in a storage controller
US8533505B2 (en) * 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8612676B2 (en) * 2010-12-22 2013-12-17 Intel Corporation Two-level system main memory
US20130046935A1 (en) * 2011-08-18 2013-02-21 Microsoft Corporation Shared copy cache across networked devices
CN103946811B (zh) 2011-09-30 2017-08-11 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US9342453B2 (en) * 2011-09-30 2016-05-17 Intel Corporation Memory channel that supports near memory and far memory access
US20130086298A1 (en) 2011-10-04 2013-04-04 International Business Machines Corporation Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion
US20130219125A1 (en) * 2012-02-21 2013-08-22 Microsoft Corporation Cache employing multiple page replacement algorithms
US9218289B2 (en) * 2012-08-06 2015-12-22 Qualcomm Incorporated Multi-core compute cache coherency with a release consistency memory ordering model

Also Published As

Publication number Publication date
EP3049943A1 (en) 2016-08-03
WO2015047314A1 (en) 2015-04-02
US20150095598A1 (en) 2015-04-02
CN105556493A (zh) 2016-05-04
US9798574B2 (en) 2017-10-24
EP3049943A4 (en) 2017-05-24
EP3049943B1 (en) 2018-10-24
KR101785301B1 (ko) 2017-11-15
KR20160037987A (ko) 2016-04-06
TW201528123A (zh) 2015-07-16
TWI506531B (zh) 2015-11-01
US10545787B2 (en) 2020-01-28
US20180267826A1 (en) 2018-09-20
JP6366717B2 (ja) 2018-08-01
JP2016529636A (ja) 2016-09-23

Similar Documents

Publication Publication Date Title
CN105556493B (zh) 用于跨设备组合存储器资源的设备、方法
CN104063290B (zh) 处理超时的系统、方法和装置
CN104050114B (zh) 同步端口进入低功率状态的系统、方法和设备
KR101995623B1 (ko) 고속 구성 메커니즘을 위한 장치, 방법, 및 시스템
TWI524184B (zh) 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統
US10560081B2 (en) Method, apparatus, system for centering in a high performance interconnect
TWI637263B (zh) 用以組成跨裝置的記憶體資源及降低過渡性潛時之設備、方法及機器可讀媒體
CN108701109A (zh) 用于计算机扩展总线的插件机制的方法、装置和系统
CN109074341B (zh) 减少引脚计数接口
US20160188519A1 (en) Method, apparatus, system for embedded stream lanes in a high-performance interconnect
CN110532212A (zh) 用于有效外围组件管理的dvsec的系统、方法和装置
EP4109281A1 (en) Peer-to-peer link sharing for upstream communications from xpus to a host processor
WO2014209401A1 (en) Techniques to aggregate compute, memory and input/output resources across devices
US20210389371A1 (en) Debug data communication system for multiple chips
CN116368477A (zh) 使用具有电路切换的增强型重定时器对计算设备的分解
US20220113967A1 (en) Accelerator fabric for discrete graphics

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