用于存储器的自适应控制的设备及方法与流程

文档序号:15636530发布日期:2018-10-12 21:32阅读:142来源:国知局

本案是分案申请。该分案的母案是申请日为2014年2月28日、申请号为201480015708.2、发明名称为“用于存储器的自适应控制的设备及方法”的发明专利申请案。

相关申请案的交叉参考

本申请案主张在2013年3月15日提出申请的第61/799,731号美国临时申请案及在2013年6月6日提出申请的第13/911,797号美国非临时申请案的优先权,所述申请案出于任何目的以全文引用的方式并入本文中。

本发明的实施例一般来说涉及存储器,且更特定来说在所图解说明实施例中的一或多者中涉及使用自适应存储器控制器对存储器的控制。



背景技术:

新兴的存储器架构经设计以处置不同请求大小范围且可包含具有不同特性的存储器。举例来说,已存在由动态随机存取存储器(dram)及相变存储器(pcm)或多种类型的dram芯片(例如,双倍数据速率(ddr)、低电力ddr(lpddr)、减少等待时间dram(rldram))组成的存储器的数个提议。此外,一些计算机系统可支持非均匀存储器存取(numa),其中根据可用存储器的性能来放置信息。甚至在由相同类型的存储器(例如,nand快闪存储器)组成时,存储器也可使其特性动态地更改。举例来说,多通道存储器及动态dram频率切换更改存储器的特性。非易失性存储器特性也可为高度非均匀的,其中特定nand快闪页比其它nand快闪页更快地读取或写入,其中等待时间随着其磨损而改变,或随着不同快闪存储器内或之间的多电平单元(mlc)的不同电平而改变。

动态存储器重新配置的其它实例包含计算机系统中的信息在具有不同固定或可配置特性的存储器上的动态放置。举例来说,可朝向高等待时间易失性存储器引导来自高度串行或写入主导的算法的请求,而可从较低等待时间或非易失性存储器服务来自并行算法的请求。在其它实例中,也可朝向低等待时间存储器引导来自高度串行或写入主导的算法的请求,而可从较高等待时间提供来自并行算法的请求。基于算法的特性而选择与所述算法相关的信息的存储器分配可实现存储器系统设计中的有效成本-性能-能量权衡。

这些不同自适应机制的控制及协调的常规提议为并入存储器管理作为标准操作系统软件的部分,存取有限组的可存取硬件性能计数器以指导存储器配置决策。随着朝向抽象存储器及硬件(其将存储器控制卸载到存储器本身)前进,标准化的软件接口将为不足的。特定来说,抽象存储器能够利用存储器变化及从调谐来使性能最大化,而当前软件并不知道这些能力。存储器控制系统受益于主机处理器状态的知识,但不存在用于给存储器控制逻辑馈送适当统计的机制。



技术实现要素:

提供设备的实例。实例性设备可包含经配置以运行操作系统的处理单元及耦合到所述处理单元的存储器。所述存储器可经配置以经由存储器总线与所述处理单元通信。所述实例性设备可进一步包含经配置以从所述存储器及从所述处理单元接收所监测统计数据的自适应存储器控制器。所述自适应存储器控制器可经配置以基于所述所监测统计数据而管理所述存储器。

实例性设备可包含经配置以运行操作系统的处理单元及耦合到所述处理单元的存储器,所述存储器经配置以经由存储器总线与所述处理单元通信。所述实例性设备可进一步包含经配置以管理存储于所述存储器处的信息迁移的存储器翻译单元(mtu)。所述mtu可进一步经配置以通过维持映射表而在存储于所述存储器处的所述信息从第一深度图到第二深度图的迁移期间支持所述存储器的中间深度图。

实例性设备可包含经配置以存储信息的存储器及经配置以运行操作系统的处理单元。所述处理单元可经配置以管理所述存储器的信息深度映射。响应于将存储于所述存储器的存储空间处的信息从第一信息深度图迁移到第二信息深度图的请求,所述处理单元可经配置以将存储于存储器的所述存储空间处的所述信息迁移到中间信息深度图。所述第一信息深度图可具有第一信息深度,且所述第二信息深度图及所述中间信息深度图可各自具有第二信息深度。

实例性设备可包含经配置以存储信息的存储器。所述存储器的存储空间可配置有两个或两个以上信息深度图。所述实例性设备可进一步包含存储器翻译单元(mtu),所述mtu经配置以通过维持映射表而在存储于所述存储器处的所述信息从所述两个或两个以上信息深度图中的第一信息深度图到所述两个或两个以上信息深度中的第二信息深度图的迁移期间支持所述存储器的中间深度图。所述mtu可进一步经配置以基于所述映射表将与存储器存取请求的所请求地址相关联的经映射地址提供到所述存储器。

本文中揭示实例性方法。实例性方法可包含:响应于从处理单元接收的存储器存取请求而在存储器中检索信息;及基于与所述存储器及所述处理单元相关联的所监测统计数据而在运行存储器管理(mmh)超管理器操作系统的存储器管理处理器(mmp)处管理所述存储器的配置。

实例性方法可包含在计算系统的处理单元处接收所述计算系统的存储器的部分从第一信息深度图移动到第二信息深度图的请求。所述第一信息深度图可具有第一信息深度且所述第二信息深度图可具有第二信息深度。所述实例性方法可进一步包含:响应于所述请求而确定所述计算系统是否具有充足资源来执行从所述第一信息深度图到所述第二信息深度图的所述移动;及基于所述计算系统不具有充足资源来执行从所述第一信息深度图到所述第二信息深度图的所述移动的确定而将来自所述处理单元的命令提供到所述存储器以执行所述存储器的所述部分从所述第一信息深度图到中间信息深度图的迁移。所述中间信息深度图可具有所述第二信息深度。

实例性方法可包含在存储器翻译单元处接收存储器存取请求,所述存储器存取请求包含所请求地址。所述方法可进一步包含:确定与所述所请求地址相关联的存储器的区的映射状态;及将经映射地址提供到所述存储器。基于与所述所请求地址相关联的所述存储器的所述区的所述状态,所述经映射地址可选自所述所请求地址或经翻译所请求地址中的一者。

附图说明

图1是根据本发明的一实施例的包含自适应存储器控制器的设备的框图。

图2是根据本发明的一实施例的包含自适应存储器控制器的设备的框图。

图3是根据本发明的一实施例的包含存储器管理超管理器的硬件/软件堆叠的框图。

图4到6是根据本发明的一实施例的中间信息深度映射的示范性框图。

图7是根据本发明的一实施例的存储器翻译单元的框图。

图8是根据本发明的一实施例的存储器的区/子区分配的框图。

图9是根据本发明的一实施例的中间信息深度图存取的示范性框图。

具体实施方式

下文陈述特定细节以提供对本发明的实施例的充分理解。然而,所属领域的技术人员将清楚,可在无这些特定细节的情况下实践本发明的实施例。此外,本文中所描述的设备及方法的特定实施例以实例方式提供且不应用于将本发明的范围限于这些特定实施例。在其它实例中,未详细展示众所周知的电路、控制信号、时序协议及软件操作以避免不必要地使本发明模糊。

图1图解说明根据本发明的一实施例的包含自适应存储器控制器的设备。设备100可包含耦合到存储器120及自适应存储器控制器130的中央处理单元110。中央处理单元110可经由存储器总线耦合到存储器120。中央处理单元110可包含多个主机处理单元。在一些实施例中,所述多个主机处理单元可处于单个芯片上。在其它实施例中,中央处理单元110可跨越多个芯片而散布且经由网络通信。中央处理单元110的每一处理单元可具有相关联高速缓冲存储器。在一些实施例中,中央处理单元110的高速缓冲存储器可为高速缓冲一致的(例如,所有高速缓冲存储器彼此一致)。存储器120可经配置以响应于从中央处理单元110及/或自适应存储器控制器130接收的请求而存储及提供信息(例如,数据及指令)。存储器120可包含非易失性存储器122及/或易失性存储器124。在一些实施例中,非易失性存储器122及/或易失性存储器124为多通道存储器。非易失性存储器122可包含快闪存储器(例如,nand及/或nor)、pcm及/或其它非易失性存储器。易失性存储器124可包含dram、sram及/或其它易失性存储器。

自适应存储器控制器130可经配置以基于中央处理单元110及存储器120的所监测统计数据(例如,计数器、时序、处理趋势)而监测及管理存储器120。举例来说,自适应存储器控制器130可经配置以基于所述所监测统计数据而动态地映射及迁移存储器120处的存储器块及/或重新配置与存储器120相关联的设置。存储器120的所监测统计数据可包含存储于存储器120处的信息的深度图设置、非易失性存储器122及易失性存储器124的信息映射及非易失性存储器122与易失性存储器124之间的信息映射、非易失性存储器122及/或易失性存储器124的存取频率或其任何组合。中央处理单元110的所监测统计数据可包含存储器存取的类型、存储器存取的频率、中央处理单元110的处理单元的闲置时间或其任何组合。

在操作中,设备100可经配置以运行操作系统(os)。操作系统可在中央处理单元110的一或多个处理单元上运行,其中信息(例如,数据及指令)存储于存储器120处。在一些实施例中,操作系统可在自适应存储器控制器130的处理单元处至少部分地执行。中央处理单元110可经配置以在操作期间经由存储器总线将存储器存取请求提供到存储器120。存储器120可处理存储器存取请求以基于存储器存取请求而存储及/或检索信息。中央处理单元110及/或自适应存储器控制器130可经配置以监测与中央处理单元110及/或存储器120相关联的统计数据。基于所监测统计数据,自适应存储器控制器130可经配置以管理存储于存储器120中的信息的配置,并且管理存储器120的配置设置。举例来说,自适应存储器控制器130可经配置以映射及迁移存储器120的存储器块。如参考图2将进一步描述,操作系统可提供监测与中央处理单元110及存储器120相关联的统计数据的存储器管理线程(mmt)。管理存储器120的配置的自适应存储器控制器130可改进设备100的效率。举例来说,自适应存储器控制器130可以减少在正在请求信息的设备100上运行的软件应用程序的检索等待时间的方式映射存储器120处的信息的存储。在另一实施例中,自适应存储器控制器130可以减少在正在请求信息的设备100上运行的软件应用程序的检索期间的电力消耗的方式映射存储器120处的信息的存储。

图2图解说明根据本发明的一实施例的包含自适应存储器控制器的设备200。设备200可包含耦合到存储器220及自适应存储器控制器230的中央处理单元210。自适应存储器控制器230可经配置以基于中央处理单元210及存储器220的所监测统计数据而管理存储器220的配置且管理及迁移存储于存储器220处的信息。经配置以基于所监测统计数据而管理及迁移存储于存储器220处的信息的自适应存储器控制器230可用于通过基于中央处理单元210(及/或自适应存储器控制器230)与存储器220之间的业务而管理信息深度及位置来改进设备200的效率(例如,电力及等待时间)。中央处理单元210、存储器220及自适应存储器控制器230可分别对应于图1的中央处理单元110、存储器120及自适应存储器控制器130。

中央处理单元210可经配置以经由存储器总线与存储器220通信。中央处理单元210可包含互连的主机处理单元212、214、216及218。主机处理单元212、214、216及218中的每一者可包含相关联高速缓冲存储器。主机处理单元212、214、216及218可驻存于单个芯片上或可驻存于多个芯片或计算机系统上。在一些实施例中,主机处理单元212、214、216及218可为快取一致的(例如,所有高速缓冲存储器彼此一致),此经由共同总线来维持。在其它实施例中,主机处理单元212、214、216及218可在单个芯片上或跨越多个芯片或计算机系统由替代类型的网络(例如,片上网络(noc))互连。

存储器220可经配置以基于从中央处理单元210及/或自适应存储器控制器230接收的请求而存储及提供信息(例如,数据及指令)。存储器220可包含经配置以经由存储器总线与中央处理单元210的主机处理单元212、214、216及218通信的存储器控制器226。举例来说,存储器220可包含经配置以经由存储器总线从中央处理单元210的主机处理单元212、214、216及218接收信息及/或将信息提供到中央处理单元210的主机处理单元212、214、216及218的存储器控制器226。存储器220可进一步包含非易失性存储器222及/或易失性存储器224。非易失性存储器222及/或易失性存储器224可经配置以基于从存储器控制器226接收的命令而存储从主机处理单元212、214、216及218接收及/或提供到主机处理单元212、214、216及218的信息。易失性存储器224可包含dram、sram及/或其它易失性存储器。易失性存储器224可为快闪存储器(例如,nand及/或nor)、pcm及/或其它非易失性存储器。在一些实施例中,存储器可具有额外存储器控制器。举例来说,非易失性存储器222及易失性存储器可具有单独存储器控制器。另外,在一些实施例中,每一类型的存储器具有单独存储器控制器。举例来说,dram及sram可具有单独的存储器控制器及/或nand快闪存储器、nor快闪存储器及/或pcm可具有单独的存储器控制器。在描述设备200时,为清晰起见,存储器控制器226可指存储器220的一或多个存储器控制器。

在一些实施例中,非易失性存储器222及/或易失性存储器224可包含用于存取信息的多通道配置。在多通道配置中,单个信息块可为深的(写入为跨越很少通道的长序列)或浅的(写入为跨越许多通道的短序列)。浅配置可权衡较高电力消耗而换取每事务的较低等待时间,而深配置可权衡较高等待时间而换取每事务的较高并发性及较低电力消耗。

自适应存储器控制器230可经配置以基于中央处理单元210及存储器220的统计数据(例如,计数器、时序、配置、处理趋势)而监测及管理存储器220。自适应存储器控制器230可包含存储器管理处理器mmp260、性能监测单元pmu250及存储器翻译单元mtu240。pmu250可经配置以监测统计数据。性能监测单元pmu250可包含pmu接口254。pmu250可经配置以经由pmu接口254与存储器控制器226、mmp260及/或主机处理单元212、214、216及218中的一或多者通信以监测统计数据。在一些实施例中,pmu接口254经配置以经由共同总线等与mmp260以及主机处理单元212、214、216及218通信。此外,pmu接口254可经配置以经由存储器总线或到存储器控制器226的直接连接中的至少一者与存储器220的存储器控制器226通信。pmu250可经配置以监测从存储器控制器226、mmp260及/或主机处理单元212、214、216及218中的一或多者接收的统计数据。

mmp260可经配置以运行用于管理存储器220的存储器管理线程(mmt)。举例来说,mmp260可经配置以运行mmt从而基于来自pmu250的所监测统计数据而判定何时及/或如何重新配置存储器220。mmp260可包括快取存储器,且在一些实施例中可与主机处理单元212、214、216及218为快取一致的,此经由共同总线来维持。mmp260可经配置以将命令提供到mtu240以起始或管理存储器220的存储器块的迁移(例如,重新映射)及/或重新配置存储器220的可配置方面。mmp260还可经配置以将存储器存取请求提供到存储器220。

mtu240可经配置以与存储器控制器226、mmp260及/或主机处理单元212、214、216及218中的一或多者通信以便执行各种功能。由mtu240执行的实例性功能可包含地址翻译、管理信息迁移、管理相关联翻译表、支持中间信息深度图或其任何组合。为支持这些功能,mtu240可经配置以基于从mmp260接收的命令而更新及维持映射表242及配置与命令信息单元244。映射表242可包含区/子区表(rs表)、深度表(d表)、旧深度表(od表)及地址扰码表(as表)。配置与命令信息单元244可经配置以维持及更新存储器220的配置(例如,易失性存储器224频率、刷新周期、非易失性存储器222多电平单元(mlc)模式、改变易失性存储器224通道地址映射(通道深度)等)。mtu240可进一步包括经锁定页处置程序246,所述经锁定页处置程序经配置以在存储器220中的块迁移期间将经锁定页的指示提供到主机处理单元212、214、216及218,从而进行对存储于经锁定页中的信息的请求。

在操作中,设备200可经配置以运行操作系统。操作系统可在中央处理单元210的主机处理单元212、214、216及218处运行,在此期间可存取存储于存储器220处的信息(例如,数据及指令)。通常,操作系统为管理计算机硬件且为计算机程序(例如,软件应用程序)提供共同服务的软件集合。即,操作系统包含与硬件(例如,中央处理单元210、存储器220及自适应存储器控制器230)及计算机程序(例如,软件应用程序)进行接口连接的基本功能。在存取存储于存储器220处的信息(例如,数据及指令)时,主机处理单元212、214、216及218可发送包含在逻辑上识别待存取的位置的逻辑地址的存储器存取请求。在存取非易失性存储器222及/或易失性存储器224时,使用地址映射来从逻辑地址翻译到存储器220的物理地址。在一些实施例中,操作系统可为经配置以支持在主机处理单元212、214、216及218中的一或多者上运行的客体操作系统的存储器管理超管理器(mmh)(例如,虚拟机器管理程序)操作系统。客体操作系统的实例可包含服务器操作系统(例如,server、homeserver、multipointserver、smallbusinessserver、centos、redhatenterprise、suseenterpriseserver等,包含其它服务器操作系统)、客户端操作系统(例如,2000、xp、vista、7、8等、macos、berkeleysoftwaredistribution(bsd)freebst、netbsd、openbsd等等,包含其它客户端操作系统)及任何其它类型的操作系统。mmh操作系统可为负责控制中央处理单元210、存储器220及自适应存储器控制器230的硬件的软件层。

在设备100中,主机处理单元212、214、216及218可经配置以在给定时间运行多个应用程序线程,其中给定应用程序线程可包含具有不同逻辑地址型式的不同阶段。自适应存储器控制器230可经配置以执行存储器220的动态重新配置,从而将信息映射与在主机处理单元212、214、216及218上运行的线程的改变的存储器型式进行匹配。

为支持由自适应存储器控制器230执行对存储器220的动态重新配置,mmh操作系统可包含至少部分地在mmp260上运行的功能性以(举例来说)从主机处理单元212、214、216及218卸载存储器管理任务。举例来说,mmh操作系统可提供经配置以管理mtu240及/或存储器220的mmt。mmh操作系统可将mmt的执行指派给mmp260。为支持mmt,mmp260可包含硬件单元以增加与mmt相关联的存储器管理任务的效率。硬件单元的实例可包含统计监测单元、直接存储器存取(dma)引擎/单元、错误校正码(ecc)编码器/解码器等。运行mmt的mmp260可操作以直接地或经由mtu240配置存储器220;从主机处理单元212、214、216及218卸载存储器管理任务;初始化及更新mtu240上的映射;及修改系统页表(或请求对其进行修改)。

举例来说,运行mmt的mmp260可经配置以基于从pmu250接收的所监测统计数据而确定何时及如何重新配置存储器220。存储器220的重新配置的实例可包含针对容错执行存储器清理、改变易失性存储器224频率、改变刷新周期、改变非易失性存储器222mlc模式、改变易失性存储器224通道地址映射(通道深度)等。此外,如上文所解释,自适应存储器控制器230可经配置以执行存储器220的动态重新配置,从而将信息映射与在主机处理单元212、214、216及218上运行的线程的改变的存储器型式进行匹配。然而,改变信息映射可导致大量信息的物理移动,此可消耗宝贵的带宽及能量,从而降低性能。因此,运行mmt的mmp260可经配置以使用中间信息深度图来映射信息。将参考图4到9进一步描述中间信息深度图。

pmu250可具有对由存储器控制器226以及主机处理单元212、214、216及218(包含微架构性能计数器)提供的统计的特许存取,以监测提供到运行mmt的mmp260的统计数据。在一些实施例中,pmu250可与存储器控制器226具有任选直接连接而非经由共同总线监测统计数据。由pmu250提供到mmp260的所监测统计数据的实例可包含任何芯片上结构(例如,加载/存储队列)、重新排序缓冲器(rob)及存储器控制器226队列的状态,所述状态中的一些状态可为典型操作系统不可存取的。这些统计经由pmu250的可用性可帮助指导由mmt进行的存储器决策。

另外及/或或者,运行mmt的mmp260也可经配置以经由配置与命令信息单元244和mtu240通信以控制存储器220地址映射及策略的配置。举例来说,基于从pmu250接收的所监测统计数据,运行mmt的mmp260也可经配置以初始化及更新在mtu240的配置与命令信息单元244处维持的存储器220的映射及配置状态。如上文所解释,mtu240可经配置以执行各种功能,包含地址翻译、管理信息迁移及管理相关联翻译表、支持中间信息深度图或其任何组合。mtu240可经配置以响应于从运行mmt的mmp260接收的命令而执行这些功能,包含支持中间信息深度图等。

为支持mtu240及运行mmt的mmp260的功能性,设备200可包含扩充页表及翻译旁视缓冲器(tlb)以用于处理存储器存取请求。举例来说,扩充表及tlb可含有指示地址映射设置及存储器配置的额外元数据。扩充表及tlb可由存储器控制器226及/或mtu240维持。扩充表中的元数据的实例包含非易失性存储器222及/或易失性存储器224的迁移操作、ecc类型、强度及ecc位分布、深度映射模式的指示、多通道存储器(例如,非易失性存储器222及/或易失性存储器224)的中间信息深度图的支持位、存储器通道配置及频率(例如,存储于配置与命令信息单元244中)及/或其它可动态控制的存储器映射或硬件配置设置。在一些实施例中,扩充表及tlb可对客体操作系统不可见且仅实施于mmh操作系统的阴影页表中。在其它实施例中,扩充表及tlb可为透明的且可用于mmh操作系统及客体操作系统两者。

mtu240可经配置以管理及/或使用扩充表及tlb中的元数据中的至少一些元数据来指派地址翻译、管理信息迁移及管理相关联翻译表。如上文所解释,mtu240可经配置以从主机处理单元212、214、216及218中的任一者及/或mmp260接收存储器存取请求。在一些情形中,存储器存取请求可对应于正经历迁移操作的页(例如,飞行中页(in-flightpage))。mtu240可经配置以在迁移操作期间处置对飞行中页的存取且读取或修改飞行中页的块。举例来说,当非易失性存储器222及/或易失性存储器224的页正经历迁移操作时,mmp260及/或mtu240可经配置以设置扩充tlb中的“迁移”位来指示迁移状态。此外,mtu240可经配置以在迁移操作期间更新映射表242。

响应于接收对飞行中页的存储器存取,mtu240可以一或多种方式来作出响应。第一实例性响应可包含响应于对飞行中页的存储器存取(例如,如由“迁移”位所指示),mtu240的经锁定页处置程序246在mmh操作系统中产生页错误。响应于页错误,将存储器请求的完成推迟到mmh操作系统。mmh操作系统(或客体操作系统)可终止作出所述请求的线程或使作出所述请求的线程暂停直到迁移操作完成为止。第二实例性响应可包含响应于对飞行中页的存储器存取(例如,如由“迁移”位所指示),mtu240的经锁定页处置程序基于映射表242的信息而以透明方式翻译与存储器存取请求相关联的逻辑地址,且将经翻译逻辑地址提供到tlb以用于翻译到存储与存储器存取请求相关联的信息的物理地址。对飞行中页的存储器存取的处理促进对尚未完成整个迁移操作的页的信息存取操作。

前述说明描述设备200的示范性实施例。应了解,可修改设备200以包含其它实施例。举例来说,设备100可包含单个操作系统,且可在单个操作系统中包含支持所描述存储器管理(例如,包含mmt)的mmh操作系统功能性。在一些实施例中,设备100可不包含mmp260,且所描述的存储器管理功能性可在主机处理单元212、214、216及218上运行。在其它实施例中,mmp260可处于与主机处理单元212、214、216及218相同的芯片上。

此外,在一些实施例中,mmt可除在mmp260上运行以外也在主机处理单元212、214、216及218中的一或多者上运行或者mmt可并非在mmp260上运行而是在主机处理单元212、214、216及218中的一或多者上运行。mmp260也可经配置以运行除mmt以外的mmh操作系统的客体操作系统及/或线程或者除mmt以外还运行mmh操作系统的客体操作系统及/或线程。在一些实施例中,mmp260可支持由主机处理单元212、214、216及218支持的指令集(isa)的超集,此可简化mmh操作系统的线程调度任务,并且简化硬件高速缓冲一致性。在一些实施例中,mmp260可包含执行多级ecc编码/解码的额外硬件,包含使用专有算法。并非与主机处理单元212、214、216及218共享存储器总线,mmp260可经由直接连接耦合到存储器控制器226。在一些实施例中,mtu240的全部或部分可包含在存储器220中。举例来说,mtu240中的映射表242可存储于高速缓冲存储器中,且映射表242可包含在存储器220中。另外,非易失性存储器222及易失性存储器224的块的迁移可由mmp260、mtu240或每一者的组合执行。

具有自适应存储器控制器230的设备200可减小模式改变带宽(例如,电力节省模式对执行模式),此可产生存储器220的迁移块,且可增加性能及减少等待时间,同时还减少电力消耗。运行mmh操作系统的mmt的mmp260由于经由pmu250对微架构信息及存储器220的当前工作负荷的存取而可能够作出更好的映射决策。

图3图解说明根据本发明的一实施例的包含具有存储器管理超管理器操作系统(mmhos)的软件/硬件层次的框图。框图300可包含硬件组件,包含下部层级硬件(例如,存储器翻译单元mtu及其它存储器中处理器pim硬件)350及上部层级硬件与支持信息(例如,cpu、mmp、页表、阴影页表、tlb)340及软件组件,包含半虚拟化os(例如,截获图形调用、opencl支持)330中的驱动程序、mmhos320及主机os(例如,客体操作系统,例如服务器操作系统、客户端操作系统或另一类型的操作系统)310。mmhos320可对应于参考图1所描述的操作系统及/或参考图2所描述的mmh操作系统。上部层级硬件与支持信息340可对应于图1的中央处理单元110及/或自适应存储器控制器130的硬件组件及/或图2的中央处理单元210、mmp260及/或pmu250。下部层级硬件350可对应于图1的自适应存储器控制器130及/或图2的mtu240的部分。上部层级硬件与支持信息340及下部层级硬件350的操作参考图2进行描述,且为简明起见将不针对图3进行重复。半虚拟化os330中的驱动程序可为经配置以支持与计算系统的硬件相关联的驱动程序的操作系统,例如下部层级硬件350。举例来说,半虚拟化os330中的驱动程序可经配置以处置图形相关命令且支持用于其它处理器类型(例如,图形处理单元、数字信号处理器等)的开放计算语言。

mmhos320可包含具有使mmhos320能够执行低层级系统操作的高特权层级的操作系统软件。在一些实施例中,操作系统可为经配置以支持os310的虚拟机管理程序操作系统,其可在上部层级硬件与支持信息340的cpu中的一或多者及/或mmp上运行。因此,mmhos320可为负责控制上部层级硬件与支持信息340及下部层级硬件350的硬件的软件层。举例来说,mmhos320可经配置以代表主机os310执行请求,主机os310以比mmhos320低的特权等级运行。来自主机os310的请求可通常针对于对共享资源(例如输入/输出(i/o)装置)及存储器空间(例如图1的存储器120及/或图1的存储器220)的存取。

如参考图2所描述,mmhos320可经配置以提供存储器管理线程(mmt),所述mmt在一些实施例中可在上部层级硬件与支持信息340的mmp上执行。另外,mmhos320也可经配置以基于所监测统计数据(例如,从图2的pmu250所接收)而作出重新配置决策且在上部层级硬件与支持信息340的mmp上起始重新配置决策。在一些实施例中,通过将pmu物理上放置得较靠近于mmp或为pmu提供到mmp(且因此mmhos320的mmt)的专用总线,上部层级硬件与支持信息340的mmp可比下部层级硬件350的其它cpu更快且更多地存取所监测统计数据。

另外,mmhos320可具有经修改存储器管理代码,所述经修改存储器管理代码经配置以配置及控制mmp且处置对飞行中页(例如,当前由mmp所拥有且正经历迁移或其它操作的页)的请求。在一些实施例中,可使用由mmhos320的mmt起始的标准页锁定机制来处理对飞行中页的请求的处理。或者,可通过特殊页错误处置程序(例如图2的经锁定页处置程序246)来处置对飞行中页的请求的处置,所述特殊页错误处置程序将对经锁定页的存储器存取视为存储器暂停。

在一些实施例中,mmhos320可经配置以便以经加密形式来编码mmt。举例来说,此可表示存储器子系统的制造商的装置特定特征化,例如刷新速率与温度的映射。mmhos320可经配置以在运行mmt之前解密mmt代码及数据。在另一实施例中,mmt可以中间语言(例如,虚拟机指令集)编写且经翻译成软件中的mmt指令以允许跨平台兼容性。

参考图4到6,存储器的信息深度图与所述存储器中的信息的组织相关。每一深度图与其它信息深度图相比可具有益处及成本。举例来说,存储于存储器处的第一信息深度图可提供比第二信息深度图低的信息存取等待时间,但可使用比第二信息深度图多的电力。信息深度图需要可随着计算系统的需要改变而改变。在一些实施例中,存储于存储器处的一个信息深度图对于特定计算机程序可为最有利的,而存储于所述存储器处的不同信息深度图对于另一计算机程序可为更有利的。举例来说,执行连续存取操作数的计算的计算机程序可偏好具有较低等待时间的第一信息深度图,而消耗连续数据流的计算机程序可不如此取决于等待时间,且可更高效地使用第二信息深度图。此外,一个信息深度图可基于计算系统(例如,图1的设备100及/或图2的设备200)的模式而提供优点。因此,执行模式中的计算系统可选择第一信息深度图以优化信息存取等待时间,而电力节省模式(例如,使用电池电力)中的计算机系统可选择第二信息深度图以优化电力消耗。从一个信息深度图到另一信息深度图的转变可需要实质量的信息的迁移,此可消耗额外电力及其它资源,例如在迁移期间阻止对受影响存储器区的存取。因此,存储于存储器处的中间信息深度图可经实施以实现所期望信息深度图的益处,但与完全移动到所期望信息深度图相比可减少信息的迁移。

图4到6图解说明描绘根据本发明的一实施例的中间信息深度映射的示范性实施例的框图。中间深度映射可由图1的自适应存储器控制器130及/或图2的自适应存储器控制器230执行。图4到6描绘表410、420、515及620。表410、420、515及620中的每一大写字母及每一小写字母表示x字节的信息(例如,数据及/或指令)单元。410、420、515及620中的共同大写字母及对应小写字母(例如,“a”及“a”、“b”及“b”、…“h”及“h”)表示将由主机处理单元消耗的相应总信息单元。表410、420、515及620经划分成行row1及row2以及通道ch0到ch7。表410、420、515及620的每一行可表示存储于通道ch0到ch7中的顺序物理存储器位置中的连续信息块。举例来说,在row1的ch0中的“a”及在row2的ch0中的“a”可为与ch1相关联的连续存储位置。类似地,在row1的ch1中的“b”及在row2的ch1中的“b”可为与ch2相关联的连续存储位置。在此特定实例中,每一通道可能够针对总共8x字节的信息并行提供x字节的信息。在描述中间深度映射的操作时,为清晰起见,以下说明将假定由存储数据单元的行row1及row2识别的所有存储位置具有固定大小x。将了解,由每一通道ch0到ch7的行row1及row2识别的存储位置的大小可为可配置的且可从一个通道变化到另一通道。

图4描绘从初始信息映射m0表410到在清理之后的所期望信息映射m2表420的完全迁移。初始信息映射m0表410为具有由olddepth箭头表示的2x字节深度的顺序信息映射。因此,总信息单元中的每一者可为2x字节深,且因此将需要两次顺序存储器存取以从单个存储器通道检索总信息单元(例如,指向row1以从ch0检索“a”的第一存储器存取及指向row2以从ch0检索“a”的第二存储器存取)。初始信息映射m0表410的顺序信息映射可导致较高等待时间,这是因为需要两次存储器存取来(举例来说)从ch0检索通道的总信息单元“a”及“a”。

所期望信息映射m2表420描绘具有由depth箭头表示的x字节深度的并行信息映射。相对于初始信息映射m0,深度从2x字节深度减小到x字节深度。因此,由于总信息单元的每一部分驻存于不同通道中,因此总信息单元中的每一者可为x字节深,且因此可经由一次存储器存取(例如,检索row1的存储器存取)来存取。所期望信息映射m2表420的并行信息映射可花费较少时间来检索总信息单元,这是因为可通过一次存储器存取来完成检索。

为从初始信息映射m0表410直接迁移到所期望信息映射m2表420,可将总信息单元的个别信息单元迁移到不同通道。蛮力方法可需要16次移动以将每一信息单元移动到不同位置。作为蛮力方法的替代方案,信息单元“a”及“h”处于表410及420两者中的相同位置中,因此可不被迁移。因此,通过将信息单元“a”及“h”保持在当前位置中,从初始信息映射m0表410到在清理之后的所期望信息映射m2表420的迁移可减少到14次信息单元移动。

在一些情形中,计算系统可不具有用于执行完全迁移的充足时间或所述计算系统可处于电力节省模式中使得完全迁移为不实际的。因此,图5描绘中间信息映射m1表515,所述中间信息映射m1表515可实现所期望信息映射m2表420中所描绘的x字节深度的益处中的一些益处,而不如所期望信息映射m2表420中所描绘的完全迁移信息单元。图5包含先前已关于图4所描述的元件。那些元件已使用与在图4中相同的参考编号及标记在图5中展示,且共同元件是如先前所描述。因此,为简明起见将不重复对这些元件的详细说明。

图5描绘从初始信息映射m0表410到中间信息映射m1表515的迁移。如所解释,初始信息映射m0表410可对应于具有2x字节深度顺序信息映射的图4的初始信息映射m0表410。中间信息映射m1表515表示具有x字节深度的并行信息映射,所述并行信息映射类似于图4的在清理之后的所期望信息映射m2表420,但不将所有信息单元移动到新位置。举例来说,标有圆圈的字母(例如,“a”、“b”、“c”、“d”、“e”、“f”、“g”及“h”)能够如初始信息映射m0表410中所描绘的保持经存储。从初始信息映射m0表410迁移到中间信息映射m1表515可需要将跨越存储器的8个信息单元重新定位到不同位置,其产生用于存储器存取的如图5中所展示的通道指派。可经由并行存储器存取来存取中间信息映射m1表515的总信息单元中的任一者。即,总信息单元的信息单元处于不同通道中。举例来说,信息单元“b”处于通道ch2中且信息单元“b”处于ch1中。同样,其它信息单元“a”及“c”到“h”中没有一个处于与总信息单元的对应信息单元(即,分别为信息单元“a”及“c”到“h”)相同的通道中。类似于图4的在清理之后的所期望信息映射m2表420,中间信息映射m1表515的并行信息映射可花费比初始信息映射m0表410中所描绘的顺序信息映射少的时间来检索总信息单元。

在一些实施例中,对应于中间信息映射m1表515的地址可对客体操作系统不可见且可由存储器翻译单元(mtu)(例如图2的mtu240)管理。因此,翻译对应于中间信息映射状态中的信息的逻辑地址可需要额外层级的硬件翻译。所述额外层级的硬件翻译可增加存储器存取操作中的等待时间。因此,为使计算系统让使用中间信息映射m1表515映射的存储器区对软件可见,且消除额外层级的硬件翻译,可执行迁移清理操作以从中间信息映射m1表515转变到图4的所期望信息映射表420。因此,图6描绘通过执行清理操作以从具有x字节深度的中间信息映射m1表515转变到在清理之后的所期望信息映射m2表620(表示信息的所期望信息映射)来完成迁移。图6包含先前已关于图4及5所描述的元件。那些元件已使用与在图4及5中相同的参考编号及标记在图6中展示,且共同元件是如先前所描述。因此,为简明起见将不重复对这些元件的详细说明。

如所解释,初始信息映射m0表410可对应于具有2x字节深度顺序信息映射的图4的初始信息映射m0表410。此外,中间信息映射m1表515可对应于具有x字节深度并行信息映射的图5的中间信息映射m1表515。在清理之后的所期望信息映射m2表620可对应于图4的在清理之后的所期望信息映射m2表420。

在操作中,由于时间及/或电力约束,存储器管理处理器(mmp)(例如,图2的mmp260)或存储器翻译单元(mtu)(例如,图2的mtu240)可管理从初始信息映射m0表410到中间信息映射m1表515的初始迁移。举例来说,如关于图5所解释,初始迁移需要八次块移动。响应于事件,mmp或mtu可完成从中间信息映射m1表515到在清理之后的所期望信息映射m2表620的迁移。标有圆圈的信息单元(例如,“a”、“e”、“a”、“b”、“c”、“d”及“h”)在从中间信息映射m1表515到在清理之后的所期望信息映射m2表620的迁移期间可不需要移动,且因此,迁移包含九次剩余块移动。可提示mtu起始从中间信息映射m1表515到在清理之后的所期望信息映射m2表620的迁移的事件的实例包含闲置存储器、计算系统切换到执行模式(例如,不再处于电力节省模式中)、当前在受影响存储器装置区上运行清理操作等。虽然图6中所描绘的迁移需要较多总块移动(例如,8+9=17对16(或14)),但最初移动到中间信息映射m1表515可允许计算系统高效地执行初始迁移,所述初始迁移提供在清理之后的所期望信息映射m2表620的益处且提供将剩余清理操作调度在可限制对计算系统的负面影响的时间的能力。

将了解,从顺序信息映射到图4到6中所描述的并行信息映射的转变也可应用于从并行信息映射到顺序信息映射的转变。即,并行信息映射(例如,m2表620)可迁移到中间信息映射(例如,m1表515),且接着可执行清理操作以从中间信息映射转变到顺序信息映射(例如,m0表410),在这时通道深度变得较深(例如,从x字节深度到2x字节深度)。

虽然图4到6描绘仅具有两个个别数据单元的总数据单元,但将了解总数据单元可具有任何数目个个别数据单元。此外,虽然图4到6描绘具有2x深度的顺序数据映射(例如,m0表410),但将了解顺序数据映射可为任何数目个数据单元深。虽然图4到6个别地描绘顺序数据映射(例如,m0表410)及并行数据映射(例如,m1表515及/或m2表420/620),但将了解映射方案可包含并行数据映射与顺序数据映射的组合。举例来说,在图4到6的实例中,如果总数据单元被包含四个个别数据单元,那么所述四个数据单元可跨越两个通道而划分,其中每一通道具有两个数据单元的深度。

如参考图4到6所解释,中间信息映射可对软件不可见且可需要额外硬件翻译。图7到9图解说明存取根据中间信息映射所映射的信息及/或存取当前处于迁移操作中的信息。图7图解说明根据本发明的一实施例的包含映射表的存储器翻译单元的框图。存储器翻译单元mtu700可包含多路复用器760,其经配置以基于来自比较器750的控制信号的值而提供所请求地址rqstaddr及来自地址扰码表740的地址中的一者作为经映射地址输出mappedaddr。来自比较器750的控制信号的值可基于从映射表705接收的信息。映射表705可包含区/子区表710、旧深度表720及深度表730。mtu700可对应于图1的mtu240。

为图解说明,图8描绘划分成区及子区的存储器的存储器映射。表800中所描绘的表的每一行对应于不同区(例如,区0、1、2、3、…、k)。此外,存储器的每一区进一步划分成由表800的列标题(例如,0、1、2、3、…、l)表示的子区。.

在操作中,当新事务进入存储器控制器(例如,图2的存储器控制器226)时,使用rqstaddr来识别如在图8中的事务以其为目标的存储器图的区。响应于区的识别,从旧深度表720检索与所识别区相关联的相应的旧深度参数且从深度表730检索与所识别区相关联的相应的深度参数。在比较器750处将旧深度参数与深度参数进行比较。响应于旧深度参数匹配深度参数,比较器750将具有第一值的控制信号提供到多路复用器760。响应于接收具有第一值的控制信号,多路复用器760在输出处将rqstaddr作为mappedaddr提供到解码逻辑,例如tlb。

响应于旧深度参数不匹配深度参数,从区/子区表710检索地址映射的状态及区/子区的状态。区/子区表710的大小可基于由操作系统设置的“深度区”的大小。举例来说,如果整个“深度区”在一个遍次中一起迁移,那么将所述“深度区”视为区。或者,如果“深度区”为大的,那么操作系统可将所述“深度区”划分成子区。区/子区表710中的地址映射的状态可包含旧深度图(m0)、中间信息深度图(m1)或新深度图(m2)。区/子区表710的区/子区的状态可包含:(1)移动在进行中,(2)移动未在进行中,(3)中间状态,及(4)移动完成,例如,新深度图(m2)。

当深度映射改变发生时,响应于存储器控制器(例如,图2的存储器控制器226)被指示移动区/子区中的信息而将所述区/子区状态设置为‘移动在进行中’。基于区/子区状态被设置为‘移动在进行中’状态,存储器控制器可执行使以相应区/子区为目标的事务暂停或完成当前在存储器控制器队列中的信息的事务中的一者。当信息尚未开始被移动时,将区/子区状态设置为‘移动未在进行中’状态,且比较器750经配置以将具有第一值的控制信号提供到多路复用器760。基于具有第一值的控制信号,多路复用器760在输出处提供rqstaddr作为mappedaddr,且基于旧深度图而解码mappedaddr。

当信息的移动已开始时,将区/子区状态设置为‘中间状态’状态。当区/子区状态被设置为‘中间状态’状态时,比较器750可经配置以将具有第二值的控制信号提供到多路复用器760。基于具有第二值的控制信号,多路复用器760经配置以将来自地址扰码表740的输出作为mappedaddr提供到解码逻辑。地址扰码表740经配置以提供rqstaddr的翻译(例如,扰码)以允许解码器存取目标资讯的当前位置。基于地址扰码表740的输出的mappedaddr可由解码逻辑解码以确定目标信息的位置。当已完全移动信息时,将区/子区状态设置为‘完全移动’状态,且比较器750经配置以将具有第一值的控制信号提供到多路复用器760。基于具有第一值的控制信号,多路复用器760经配置以在输出处提供rqstaddr,且基于(新)深度图而解码所述rqstaddr。操作系统(例如,如关于图2及3所描述的mmh操作系统)及/或存储器翻译单元(mtu)(例如,图2的mtu240)可控制是否应将区/子区状态设置为‘中间状态’状态或‘移动完成’状态(m2)。

图9描绘根据本发明的实施例的基于初始深度图及中间信息深度图的地址翻译的实例。旧深度图m0表912表示在任何信息移动之前的旧深度图的信息的映射。旧信息映射表910表示基于旧深度图信息单元被存储在存储器中何处。中间深度图m1表917表示信息基于中间信息深度图的映射(例如,在已移动一些信息之后)。中间信息映射表915表示基于中间信息深度图信息条目存储在存储器中何处。初始信息映射表910可对应于图4到6的初始信息映射m0表410。中间信息映射表915可对应于图5到6的中间信息映射m1表515。

在实例性操作中,当根据旧深度图来映射信息时,在mtu处接收对在请求地址4’b0110处的信息“d”920的请求。基于mtu确定旧信息映射表910适用(例如,经由图7中所描绘的逻辑),mtu可咨询旧深度图m0表912来翻译地址4’b0110922。基于旧深度图m0表912,mtu可提供指向旧信息映射表910中的信息“d”920的位置的地址4’b0110922。

此外,当根据中间信息深度图来映射信息时,在mtu处接收对在请求地址4’b0110处的信息“d”920的请求。基于mtu确定中间信息映射表915适用,mtu可咨询中间信息深度图m1表917来翻译地址4’b0110。基于中间信息深度图m1表917,mtu可提供指向中间信息映射表915中的信息“d”920的位置的地址4’b1100924。

所属领域的技术人员将进一步了解结合本文中所揭示的实施例所描述的各种说明性逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、由处理器执行的计算机软件或两者的组合。各种说明性组件、块、配置、模块、电路及步骤已大体按照其功能性在上文进行描述。虽然所属领域的技术人员可针对每一特定应用以变化的方式实施所描述功能性,但不应将此些实施方案决策解释为导致背离本发明的范围。

提供所揭示实施例的前述说明以使所属领域的技术人员能够制作或使用所揭示的实施例。所属领域的技术人员将易于明了对这些实施例的各种修改,且本文中所定义的原理可在不背离本发明的范围的情况下应用于其它实施例。因此,本发明并不打算限于本文中所展示的实施例,而是将被赋予与如先前所描述的原理及新颖特征相一致的可能的最宽广范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1