【技术实现步骤摘要】
低等待时间加速器
技术介绍
近年来,数据分析学和“大数据”处理已变得日益重要。数据分析和大数据工作负荷需要处理大量数据。处理此类大量数据的一个办法是跨大量服务器分配处理任务且并行地处理工作负荷。例如,ApacheHadoop软件框架使得能够跨大量商用服务器来分配任务,并使用映射归约(MapReduce)来处理工作负荷。虽然Hadoop和映射归约提供极好的可扩缩性,但它们需要极大量的服务器内通信(当以大规模实现时),且没有高效地使用处理器和存储器资源。诸如用于数据分析和“大数据”的一些计算和存储器带宽密集型工作负荷难以使用处理器核来获得所需性能水平。为解决此问题,已开发出所谓的“加速器”。加速器最初被实现为耦合至CPU(中央处理单元)的组件,并作为具有其自身地址空间的IO(输入输出)设备来管理,这需要显著地IO通信水平以便在加速器地址空间与运行在系统存储器地址空间的应用之间传递数据。最近,已提出采用具有嵌入式加速器的片上系统(SoC)架构的CPU。加速器的能力稳步提升,且最显著的新近趋势之一是支持“共享虚拟存储器”(SVM)的加速器。传统加速器需要作为其自身私人地址空间中的输入-输出(IO)设备来管理;这使用昂贵的内核模式驱动程序(KMD)来实现,该内核模式驱动程序(KMD)需要应用程序在用户与内核空间之间来回交叉、将页固定在存储器中、或者将用户缓冲器复制到由OS/内核模式驱动程序管理的专用缓冲器或从该专用缓冲器复制用户缓冲器。使用SVM,加速器或IO设备可直接在任何用户应用线程的地址空间上工作,因为其与CPU线程共享同一虚拟->物理地址转换能力。这是加速器 ...
【技术保护点】
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所述的计算机系统,其特征在于,与所述系统存储器中的所述一个或多个缓冲器相关联的所述信息包括用于所述一个或多个缓冲器中的每一个的虚拟地址、大小和地址提示,其中所述系统进一步被配置为:对于所述一个或多个缓冲器中的每一个,采用用于所述缓冲器的所述地址提示来推测性地预取用于所述缓冲器的缓...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。