用于改进的进程切换的处理器和其方法技术

技术编号:24767056 阅读:23 留言:0更新日期:2020-07-04 11:58
一种处理器包含处理器存储器阵列,所述处理器存储器阵列包含一个或多个易失性存储器阵列和一个或多个非易失性存储器(NVM)阵列。将所述一个或多个易失性存储器阵列中的易失性存储器位置与所述一个或多个非易失性存储器阵列中的相应非易失性存储器位置配对以形成处理器存储器对。将由所述处理器的至少一个内核执行的不同进程的进程数据存储在相应处理器存储器对中。使用所述至少一个内核直接访问存储在所述相应处理器存储器对中的所述进程数据来执行进程。

Processor for improved process switching and method thereof

【技术实现步骤摘要】
【国外来华专利技术】用于改进的进程切换的处理器和其方法
技术介绍
上下文切换大体上包含存储进程或线程的状态,使得进程或线程的执行可稍后从在上下文切换之前停止执行的同一点恢复。术语“上下文切换”可因此指代不同进程的执行之间的切换或进程内的不同线程的执行之间的切换。上下文切换通常允许由单个处理器内核执行多个任务,以促进多任务处理操作系统(OS)。上下文切换的计算成本可改变,但典型地包含将正在执行的进程或线程的进程数据存储在处理器外部的主存储器中,以及将不同进程或线程的进程数据从主存储器加载到处理器内的存储器位置中,例如加载到寄存器或级别高速缓存(例如,L1/L2/L3高速缓存)中。在上下文切换期间存储和加载的进程数据的实例可包含用于存储关于任务的信息的任务状态段(TSS),以及用来减少访问任务的用户存储器位置的时间的转译后备缓冲器(TLB)。如本文中所使用,任务可指用来考虑进程和线程的一组程序指令或元数据结构,其加载于主存储器中以用于由处理器执行。常规处理器提供相对小的一组具有有限存储容量的寄存器,且典型地,在给定时间一处理器内核每进程仅存储一个TSS和一个TLB。相比来说,现代OS可使用抢先式多任务处理,目标是几乎同时执行若干任务。在抢先式多任务处理中,OS在将资源分配给另一任务之前确定将例如处理器内核的资源分配给给定任务的时长。因此抢先式多任务处理可为上下文切换的重要源头。在这种实例中,OS的任务调度程序在多个任务之间分发处理器的时间片且发起频繁的上下文切换。这种频繁的上下文切换会主要因增大了加载和存储操作的数目而降低处理器访问主存储器的性能。>附图说明本公开的实施例的特征和优点将从下文结合附图所阐述的详细描述变得更显而易见。提供附图和相关联的描述以示出本公开的实施例,且不限制权利要求书的范围。图1示出在进程的执行期间用主存储器常规加载和存储进程数据的实例。图2示出由处理器执行的进程之间的常规切换的实例。图3是根据实施例的包含处理器存储器对的实例处理器的框图。图4示出根据实施例的在处理器存储器对中存储进程数据的实例。图5示出根据实施例的用以指向处理器存储器对中的对应非易失性存储器(NVM)位置的阵列的使用。图6是根据实施例的使用处理器存储器对的进程执行的流程图。图7是根据实施例的加载过程的流程图。图8是根据实施例的进程数据逐出过程的流程图。具体实施方式在以下详细描述中,阐述众多具体细节以提供对本公开的充分理解。然而,对本领域的技术人员显而易见的是,可在没有这些具体细节中的一些的情况下实践公开的各种实施例。在其它情况下,未详细展示众所周知的结构和技术以免不必要地混淆各种实施例。常规处理器操作图1示出在进程的执行期间从主存储器102常规加载进程数据和将进程数据存储在主存储器102中的实例。如图1中所绘示,处理器100包含寄存器、转译后备缓冲器(TLB)高速缓存、数据高速缓存以及指令高速缓存。处理器100可包含例如中央处理单元(CPU)、微处理器(MPU)或微控制器(MCU)。处理器100还可以是芯片上系统(SoC)的部分。主存储器102可包含例如动态随机存取存储器(DRAM)或充当进程数据的主存储装置的其它RAM。如本文中所使用,进程数据可指在执行进程或线程时所使用的代码和其它数据。TLB高速缓存是用来存储由内核执行的进程的TLB的存储器高速缓存。如上文所提及,使用TLB来减少访问用户存储器位置所花费的时间。由于每一进程通常具有其自身的受保护虚拟地址空间,所以每一进程具有其自身的TLB。在一些实施方案中,TLB高速缓存可以是处理器的存储器管理单元(MMU)的部分。TLB高速缓存可存储虚拟存储器到物理存储器的近期映射,且可称为地址转译高速缓存。TLB高速缓存可驻留在处理器100的内核与处理器级别高速缓存(例如,L1/L2/L3高速缓存)之间、处理器级别高速缓存与主存储器102之间,或不同级别的处理器级别高速缓存之间。如图1中所绘示,TLB高速缓存位于处理器100中的用于存储由进程使用的数据或提供为执行进程的结果的数据的数据高速缓存以及用于存储进程或线程的代码的部分的指令高速缓存当中。在一些实施方案中,TLB可实施为内容可寻址存储器(CAM)。在这种实施方案中,CAM搜索关键字可以是虚拟地址且搜索结果可以是物理地址。如果所请求地址在TLB中存在,那么CAM搜索可快速产生匹配,且检索到的物理地址可用于访问来自主存储器102的进程数据。这称为TLB命中。如果所请求地址不在TLB中(即,TLB未命中),那么通过在称为页面查核行程(pagewalk)的进程中查找页表来进行对物理地址的转译。相较于处理器速度,页面查核行程通常是费时的,这是因为页面查核行程涉及读取多个存储器位置的内容且使用读取到的内容来计算物理地址。在通过页面查核行程来确定物理地址之后,将虚拟地址到物理地址的映射输入到TLB中。如同TLB一样,每一进程通常也具有其自身的任务状态段(TSS)。TSS可包含保存关于任务的信息的专门数据结构,例如与基于x86的处理器一起使用的专门数据结构。如本文中所使用,且如上文所提及,任务可指加载于主存储器102中以用于由处理器100执行的一组程序指令,例如进程或线程。TSS由OS核心使用以用于任务管理。具体来说,TSS可存储关于任务的信息,例如处理器寄存器状态、I/O端口许可、内部级别堆叠指针,以及来自先前执行会话的先前TSS链路。TSS可驻留在各种位置中,例如主存储器102中或处理器100的存储器中,例如处理器100的寄存器中。在一些实施方案中,称为任务寄存器的专门段寄存器可保存指向有效TSS段描述的段选择器,所述有效TSS段描述驻留在由基于x86的处理器使用的全域描述符表(GDT)中。除了进程或线程的TLB和TSS以外,其它进程数据也可包含例如由进程在执行期间使用的本地临时数据、用作输入数据的初始数据或来自进程的执行的中间结果。在本公开中,将进程用作可执行码的具体实例以示出各种实施例。然而,如将由本领域的技术人员了解,本公开中的实施例可通常应用于可执行码的其它实例,例如进程内的线程或其它任务。如图1中所绘示,每一进程的TLB和TSS在主存储器102中存储为进程数据。在图1的实例中,例如当任务调度程序为将要执行的进程分配时间片时,将进程1的进程数据从主存储器102加载到处理器100中。更详细地说,可将进程1的TLB加载到处理器100的TLB高速缓存中且可将TSS加载到处理器100的一个或多个寄存器中。进程1由处理器100执行,直到接收到软件中断或系统调用以切换到执行进程n为止。软件中断可由OS的任务调度程序发起以切换到执行进程n。在那时,将进程1的进程数据(包含进程1的TLB和TSS)存储回主存储器102中或卸载于主存储器102中。接着将进程n的进程数据(包含进程n的TLB和TSS)从主存储器102加载到处理器100中。由处理器100执行进程n,且在完成进程n的执行后或在接收到另一中断或系统调用以切换到在处理器本文档来自技高网...

【技术保护点】
1.一种处理器,包括:/n至少一个内核,用于执行进程;/n一个或多个易失性存储器阵列;/n一个或多个非易失性存储器(NVM)阵列,其中所述一个或多个易失性存储器阵列中的易失性存储器位置与所述一个或多个NVM阵列中的NVM位置配对以形成处理器存储器对;以及/n控制电路,配置成将由所述至少一个内核执行的不同进程的进程数据存储在相应处理器存储器对中;且/n其中所述至少一个内核配置成通过直接访问存储在所述相应处理器存储器对中的进程数据来执行进程。/n

【技术特征摘要】
【国外来华专利技术】20180606 US 16/001,6351.一种处理器,包括:
至少一个内核,用于执行进程;
一个或多个易失性存储器阵列;
一个或多个非易失性存储器(NVM)阵列,其中所述一个或多个易失性存储器阵列中的易失性存储器位置与所述一个或多个NVM阵列中的NVM位置配对以形成处理器存储器对;以及
控制电路,配置成将由所述至少一个内核执行的不同进程的进程数据存储在相应处理器存储器对中;且
其中所述至少一个内核配置成通过直接访问存储在所述相应处理器存储器对中的进程数据来执行进程。


2.根据权利要求1所述的处理器,其中所述控制电路进一步配置成在所述处理器的内核从执行进程切换到执行不同进程之后将所述进程的进程数据保留在处理器存储器对中。


3.根据权利要求1所述的处理器,其中所述控制电路进一步配置成将所述不同进程中的每一个的任务状态段(TSS)和转译后备缓冲器(TLB)存储在所述相应处理器存储器对的对应NVM位置中。


4.根据权利要求3所述的处理器,其中所述控制电路进一步配置成:
将指向所述相应处理器存储器对的对应NVM位置的指针存储在阵列中;以及
响应于加载将要由所述至少一个内核中的一内核执行的进程的TSS和TLB的指令,在所述阵列中选择指向存储将要由所述内核执行的所述进程的所述TSS和所述TLB的所述NVM位置的至少一个指针。


5.根据权利要求1所述的处理器,其中所述控制电路进一步配置成将所述不同进程的本地临时数据存储在所述相应处理器存储器对的对应易失性存储器位置中。


6.根据权利要求1所述的处理器,其中所述控制电路进一步配置成:
接收加载进程的TSS和TLB的指令;
确定所述进程的进程数据是否存储在所述处理器存储器对中;以及
响应于确定所述进程的所述进程数据未存储在所述处理器存储器对中,将所述进程数据从主存储器加载到处理器存储器对中。


7.根据权利要求1所述的处理器,其中所述控制电路进一步配置成:
确定可用于将进程数据存储在处理器存储器对中的自由空间量已达到阈值;以及
响应于确定所述自由空间量已达到所述阈值,从所述处理器存储器对逐出至少一个进程的进程数据。


8.根据权利要求7所述的处理器,其中所述控制电路进一步配置成基于以下中的至少一个来逐出所述至少一个进程的所述进程数据:所述进程数据最后一次由内核访问的时间以及所述进程数据已由所述内核访问的频繁程度。


9.一种用于操作包含处理器存储器阵列的处理器的方法,所述处理器存储器阵列包含一个或多个易失性存储器阵列和一个或多个非易失性存储器(NVM)阵列,所述方法包括:
将所述一个或多个易失性存储器阵列中的易失性存储器位置与所述一个或多个NVM阵列中的相应NVM位置配对以形成处理器存储器对;
将由所述处理器的至少一个内核执行的不同进程的进程数据存储在相应处理器存储器对中;以及
在所述处理器的内核从执行进程切换到执行不同进程之后将所述进程的进程数据保留在处理器存储器对中。


10.根据权利要求9所述的方法,进一步包括通过...

【专利技术属性】
技术研发人员:V杜贝科L卡格尼尼
申请(专利权)人:西部数据技术公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1