当前位置: 首页 > 专利查询>英特尔公司专利>正文

低等待时间加速器制造技术

技术编号:20763504 阅读:30 留言:0更新日期:2019-04-03 14:11
本申请公开了低等待时间加速器。用于减少加速器中的等待时间的方法、装置和相关技术以及机制。该技术和机制在支持共享虚拟存储器(SVM)并且包括支持SVM的加速器以及转换后备缓冲器(TLB)的使用的平台架构中实现。定义要由加速器执行的作业并引用一个或多个缓冲器的虚拟地址(VA)和大小的请求描述符通过在处理器核上执行线程而入队。在一种方法下,描述符包括提示,该提示包括物理地址或虚拟地址到物理地址(VA‑PA)转换,其使用缓冲器VA从与核相关联的一个或多个TLB获得。在采用TLB监听的另一种方法下,缓冲器VA被用作查找,并且匹配的TLB条目((VA‑PA)转换)被用作提示。该提示用于推测性地预取缓冲器数据,并推测性地开始处理加速器上的预取到的缓冲器数据。

【技术实现步骤摘要】
低等待时间加速器
技术介绍
近年来,数据分析学和“大数据”处理已变得日益重要。数据分析和大数据工作负荷需要处理大量数据。处理此类大量数据的一个办法是跨大量服务器分配处理任务且并行地处理工作负荷。例如,ApacheHadoop软件框架使得能够跨大量商用服务器来分配任务,并使用映射归约(MapReduce)来处理工作负荷。虽然Hadoop和映射归约提供极好的可扩缩性,但它们需要极大量的服务器内通信(当以大规模实现时),且没有高效地使用处理器和存储器资源。诸如用于数据分析和“大数据”的一些计算和存储器带宽密集型工作负荷难以使用处理器核来获得所需性能水平。为解决此问题,已开发出所谓的“加速器”。加速器最初被实现为耦合至CPU(中央处理单元)的组件,并作为具有其自身地址空间的IO(输入输出)设备来管理,这需要显著地IO通信水平以便在加速器地址空间与运行在系统存储器地址空间的应用之间传递数据。最近,已提出采用具有嵌入式加速器的片上系统(SoC)架构的CPU。加速器的能力稳步提升,且最显著的新近趋势之一是支持“共享虚拟存储器”(SVM)的加速器。传统加速器需要作为其自身私人地址空间中的输入-输出(IO)设备来管理;这使用昂贵的内核模式驱动程序(KMD)来实现,该内核模式驱动程序(KMD)需要应用程序在用户与内核空间之间来回交叉、将页固定在存储器中、或者将用户缓冲器复制到由OS/内核模式驱动程序管理的专用缓冲器或从该专用缓冲器复制用户缓冲器。使用SVM,加速器或IO设备可直接在任何用户应用线程的地址空间上工作,因为其与CPU线程共享同一虚拟->物理地址转换能力。这是加速器效率的关键改进(从数据移动的角度来看),这使用户模式能(通过“用户模式驱动程序”或UMD)直接提交给加速器并且使得编程模型和采用更容易。然而,对于需要低等待时间处理(特别是对于小缓冲处理)的应用,SVM也提出了有趣的挑战。当向加速器提供要处理的作业时,作业描述符标识加速器要访问的虚拟存储器空间中的一些输入数据缓冲器和输出数据缓冲器。这些缓冲器由用户应用分配,因此通常可以包括许多不同的物理存储器页,这取决于缓冲器的大小。加速器需要能够将虚拟地址(VA)转换为物理地址(PA)以便在作业上工作。该地址转换增加了传统加速器设计的等待时间开销。附图说明随着通过在结合所附附图时参考以下具体实施方式使本专利技术的前述多个方面和许多伴随的优点变得更好地被理解,本专利技术的前述多个方面和许多伴随的优点将更容易领会,其中,遍及各个视图,除非另外指定,否则相同的附图标记指相同的部件:图1是包括一个或多个片上加速器的第一平台架构的示意图;图2是包括一个或多个片外加速器的第二平台架构的示意图;图3a是图示出根据一个实施例的片上加速器的进一步细节的示意图;图3b是图示出根据一个实施例的片外加速器的进一步细节的示意图;图4是包括由64位处理器架构采用的转换后备缓冲器(TLB)的地址转换方案的示意图;图5是图示出图4的TLB的进一步细节并包括转换寄存器的示意图;图6a是图示出使用图3a的平台架构的Enq_with_translations_v1指令的实现的一个实施例的组合示意图和数据流图;图6b是图示出使用图3b的平台架构的Enq_with_translations_v1指令的实现的一个实施例的组合示意图和数据流图;图7a是图示出使用图3a的平台架构的TLB监听机制的一个实施例的组合示意图和数据流图;图7b是图示出使用图3b的平台架构的TLB监听机制的一个实施例的组合示意图和数据流图;图8是示出根据一个实施例的与入队请求描述符有关的操作和逻辑的流程图;图9是示出根据一个实施例的与请求描述符的加速器处理有关的操作和逻辑的流程图;图10是简化的NUMA平台架构,示出了用于访问包括加速器和存储器设备的相应组件的各种成本;图10是图示出适合于实现本文公开的指令集架构(ISA)指令的基于Arm的微架构的示例的示意框图;以及图11是图示出根据一个实施例的示例性平台架构的进一步细节的示意图。具体实施方式本文描述了用于减少加速器中的等待时间的方法和装置以及相关技术和机制的实施例。在以下描述中,阐述了许多具体细节以提供对本专利技术的实施例的透彻理解。然而,相关领域内技术人员将理解本专利技术可省去一个或多个特定细节而实现,或通过其它方法、组件、材料等实现。在其它例子中,公知的结构、材料或操作不被示出或详细说明以避免对本专利技术某些方面产生混淆。贯穿本说明书,对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本专利技术的至少一个实施例中。因此,在整个说明书的多个位置出现短语“在一个实施例中”或“在实施例中”不一定全部是指同一实施例。此外,在一个或多个实施例中,能以任何合适的方式来组合特定的特征、结构或特性。为了清晰起见,也可以附图中部件的标签而不是以特定的附图标记来引用本文中附图中的各个部件。此外,能以后面跟随“(typ)”(意思是“典型的”)的附图标记示出指示特定类型的组件(与特定组件相对)的附图标记。将会理解,这些组件的配置将是以下组件的典型情况:可能存在但出于简单和清晰的目的未在附图中示出的类似组件;或者未以单独的附图标记标注的以其他方式类似的组件。相反,“(typ)”不解释为意味着组件、元件等典型地用于其所公开的功能、实现、目的等。如上所述,加速器需要能够将虚拟地址转换为物理地址,这给传统加速器设计增加了大的等待时间开销。根据本文公开的实施例的各方面,提供了用于减少与支持SVM的加速器所使用的地址转换相关联的等待时间的技术。在一个方面,从CPU核/线程提供转换提示,该转换提示将加速器请求提交给加速器,使得加速器能尽早开始其计算。可以使用各种机制和方案来实现该方法。例如,在一个实施例中,实现了向加速器提交描述符的指令,描述符的附加元数据包含已经从(多个)CPU转换后备缓冲器(TLB)读取或复制的有效VA-PA转换,以供核执行包括该指令的指令线程。通常,如下面进一步详细描述的,可以将这样的指令作为新的ISA指令添加到处理器的指令集架构(ISA)。在另一种方法中,IO存储器管理单元(IOMMU)“监听(snoop)”CPU核TLB并获得在那里高速缓存的转换。这些可以广播到所有CPU核,或者以点对点的方式更高效地完成(这需要由哪个线程/核提交作业的信息)。注意,为了最大效率,应该在作业描述符到达加速器复合体时立即完成该过程-如果我们等到描述符最终被拾取来用于执行,则队列延迟可能导致核线程在此期间被交换出。当加速器在作业上工作时,它使用这些接收的VA-PA转换作为提示并且在可以时开始处理该作业。并行地,在一个实施例中,将遵循正常的IOMMU过程以获得请求的VA-PA转换,根据提示验证它们(如果已经由引擎使用)或者(如果引擎尚未使用这些页)用来自IOMMU过程的VA-PA转换替换该提示。虽然这对输入数据更有效,因为它被读入加速器复合体,但我们需要更加注意输出数据。这可以通过以下方式解决。1.上述机制(监听或基于指令)仅为输入/读取数据提供提示。引擎必须等待输出缓冲器上的转换从IOMMU进入以便写入它们的数据。2.该机制为所有转换提供提示,但引擎有足够的本地存储器来缓冲它们的输出本文档来自技高网...

【技术保护点】
1.一种在计算平台上执行的方法,所述计算平台具有耦合到一个或多个存储器设备的多核处理器,所述存储器设备包括实现为共享虚拟存储器(SVM)的系统存储器,所述多核处理器具有多个核,每个核与至少一个转换后备缓冲器(TLB)相关联,所述多核处理器还包括至少一个存储器控制器,所述存储器控制器通过至少一个存储器通道可操作地耦合到一个或多个存储器设备,所述计算平台还包括一个或多个支持SVM的加速器,所述支持SVM的加速器具有一个或多个功能单元,所述方法包括:通过在所述多个核中的一个上的执行线程的执行,来使用于加速器的请求描述符入队,所述请求描述符定义要由所述加速器执行的作业并且包括与所述系统存储器中的一个或多个缓冲器相关联的信息,所述缓冲器在处理所述请求描述符期间由所述加速器访问;通过使用与所述一个或多个缓冲器相关联的所述请求描述符中的所述信息,从所述系统存储器中推测性地预取缓冲器数据;通过处理使用所述加速器的一个或多个功能单元预取的所述缓冲器数据的至少一部分来推测性地开始处理所述作业;以及验证推测性预取的所述缓冲器数据是否是要由所述作业处理的正确的缓冲器数据。

【技术特征摘要】
2017.09.26 US 15/715,5941.一种在计算平台上执行的方法,所述计算平台具有耦合到一个或多个存储器设备的多核处理器,所述存储器设备包括实现为共享虚拟存储器(SVM)的系统存储器,所述多核处理器具有多个核,每个核与至少一个转换后备缓冲器(TLB)相关联,所述多核处理器还包括至少一个存储器控制器,所述存储器控制器通过至少一个存储器通道可操作地耦合到一个或多个存储器设备,所述计算平台还包括一个或多个支持SVM的加速器,所述支持SVM的加速器具有一个或多个功能单元,所述方法包括:通过在所述多个核中的一个上的执行线程的执行,来使用于加速器的请求描述符入队,所述请求描述符定义要由所述加速器执行的作业并且包括与所述系统存储器中的一个或多个缓冲器相关联的信息,所述缓冲器在处理所述请求描述符期间由所述加速器访问;通过使用与所述一个或多个缓冲器相关联的所述请求描述符中的所述信息,从所述系统存储器中推测性地预取缓冲器数据;通过处理使用所述加速器的一个或多个功能单元预取的所述缓冲器数据的至少一部分来推测性地开始处理所述作业;以及验证推测性预取的所述缓冲器数据是否是要由所述作业处理的正确的缓冲器数据。2.如权利要求1所述的方法,其特征在于,与所述系统存储器中的所述一个或多个缓冲器相关联的所述信息包括用于所述一个或多个缓冲器中的每一个的虚拟地址、大小和地址提示,所述方法还包括:对于所述一个或多个缓冲器中的每一个,使用用于所述缓冲器的所述地址提示来推测性地预取用于所述缓冲器的缓冲器数据。3.如权利要求2所述的方法,其特征在于,用于所述一个或多个缓冲器中的每一个的所述地址提示包括:用于包含对应于所述缓冲器的数据的一个或多个存储页的至少第一页的物理地址;或者用于包含对应于所述缓冲器的数据的一个或多个存储器页的至少所述第一页的虚拟地址到物理地址(VA-PA)转换。4.如权利要求2所述的方法,其特征在于,通过在由所述处理器核执行的所述执行线程中使用指令集架构(ISA)指令来获得用于所述一个或多个缓冲器中的每一个的所述地址提示。5.如权利要求4所述的方法,其特征在于,由所述处理器核执行所述ISA指令使得所述处理器:对于所述一个或多个缓冲器中的每一个,使用所述缓冲器的所述虚拟地址作为与所述处理器核相关联的一个或多个TLB中的TLB查找,所述TLB查找返回包括提示的物理存储器地址。6.如权利要求1所述的方法,其特征在于,与系统存储器中的所述一个或多个缓冲器相关联的所述信息包括所述一个或多个缓冲器中的每一个的虚拟地址和大小,所述方法还包括:对于所述一个或多个缓冲器中的每一个,使用所述缓冲器的所述虚拟地址作为与执行所述线程的所述核相关联的一个或多个TLB中的TLB查找,所述TLB查找标识出包括提示的物理存储器地址或者包括提示的虚拟地址到物理地址(VA-PA)转换中的至少一个;并且使用所述提示推测性地预取用于所述缓冲器的缓冲器数据。7.如权利要求2-6中的任一项所述的方法,其特征在于,还包括:对于所述一个或多个缓冲器中的每一个,将用于所述缓冲器的所述虚拟地址转换为物理地址,以便获得用于所述缓冲器的当前有效物理地址;以及对于所述一个或多个缓冲器中的每一个,利用用于所述缓冲器的所述当前有效物理地址来验证用于所述缓冲器的所述地址提示。8.如权利要求7所述的方法,其特征在于,通过使用外围组件互连快速(PCIe)地址转换服务来促进将用于所述缓冲器的虚拟地址转换为用于所述缓冲器的物理地址。9.如权利要求8所述的方法,其特征在于,还包括:通过模拟PCIe设备来评估所述PCIe地址转换服务。10.如前述权利要求中任一项所述的方法,其特征在于,验证推测性预取的所述缓冲器数据是要由所述作业处理的所述正确的缓冲器数据,所述方法还包括:通过处理使用所述加速器的一个或多个功能单元预取的所有所述缓冲器数据来继续所述作业的处理。11.一种计算机系统,包括:多核处理器,所述多核处理器包括:多个处理器核,每个处理器核具有至少一个相关联的转换后备缓冲器(TLB),每个TLB用于存储包括虚拟地址到物理地址(VA-PA)转换的多个TLB条目;互连结构,所述互连结构可通信地耦合到每个处理器核和与每个处理器核相关联的每个TLB;存储器控制器,所述存储器控制器可通信地耦合到所述互连结构并具有一个或多个存储器通道;输入输出(IO)接口,所述输入输出(IO)接口可通信地耦合到所述互连结构;以及IOTLB,所述IOTLB用于存储包括用于一个或多个IO设备的VA-PA转换的多个TLB条目;系统存储器,包括一个或多个存储器设备,每个存储器设备可通信地耦合到所述存储器控制器的至少一个存储器通道;支持共享虚拟存储器(SVM)的加速器,所述支持共享虚拟存储器(SVM)的加速器具有一个或多个功能单元,并且嵌入在所述处理器上或通过所述IO接口可通信地耦合到所述处理器;其中,所述系统被配置为,通过在所述多个核中的一个上的执行线程的执行,来使用于所述加速器的请求描述符入队,所述请求描述符定义要由所述加速器执行的作业并且包括与系统存储器中的一个或多个缓冲器相关联的信息,所述缓冲器在处理所述请求描述符期间由所述加速器访问;通过使用与所述一个或多个缓冲器相关联的所述请求描述符中的所述信息,从所述系统存储器中推测性地预取缓冲器数据;通过处理使用所述加速器的一个或多个功能单元预取的所述缓冲器数据的至少一部分来推测性地开始处理所述作业;以及验证推测性预取的所述缓冲器数据是否是要由所述作业处理的正确的缓冲器数据。12.如权利要求11所述的计算机系统,其特征在于,与所述系统存储器中的所述一个或多个缓冲器相关联的所述信息包括用于所述一个或多个缓冲器中的每一个的虚拟地址、大小和地址提示,其中所述系统进一步被配置为:对于所述一个或多个缓冲器中的每一个,采用用于所述缓冲器的所述地址提示来推测性地预取用于所述缓冲器的缓...

【专利技术属性】
技术研发人员:V·戈帕尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1