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

使用硬件队列设备的多核心通信加速制造技术

技术编号:18465929 阅读:19 留言:0更新日期:2018-07-18 15:59
实现硬件队列管理设备的装置和方法,该硬件队列管理设备用于通过从CPU核心卸载请求管理和数据一致性任务来减少核心间的数据传输开销。所述装置包括多核心处理器、共享的L3或末级高速缓存(“LLC”)、以及硬件队列管理设备用以接收、存储和处理核心间的数据传输请求。硬件队列管理设备进一步包括资源管理系统用以控制核心可以提交请求以减少核心停机和丢弃的请求的速率。此外,引入软件指令来优化核心与队列管理设备之间的通信。

Multi core communication acceleration using hardware queue devices

The device and method for implementing the hardware queue management device, which is used to reduce the data transmission overhead between the core by uninstalling the request management and data consistency tasks from the CPU core. The device includes a multi core processor, a shared L3 or a last stage cache (\LLC\), and a hardware queue management device for receiving, storing, and processing data transmission requests between the core. The hardware queue management device further includes a resource management system to control the rate of requests that the core can submit to reduce core downtime and discarding requests. In addition, software instructions are introduced to optimize communication between core and queue management devices.

【技术实现步骤摘要】
【国外来华专利技术】使用硬件队列设备的多核心通信加速
技术介绍
核心对核心(“C2C”)通信现今在诸如分组处理、高性能计算、机器学习和数据中心/云工作负荷之类的许多计算机应用中是至关重要的。在芯片多处理器(“CMP”)架构中,由于核心的数量增加,C2C通信经常在工作负荷共享数据时变成性能增减的限制因素。在通用平台上,经常采用核心之间的共享存储器空间来实现有效的C2C通信。然而,对由软件来来仔细管理共享存储器空间的需要连同硬件一致性通信量上的增加趋向于引发大量的开销。因此,共享一致性高速缓存的CPU核心和片上网络(“NoC”)设计通常实质上经历更长的等待时间和更高的数据通信量,同时消耗可观的资源来实行通信相关的工作。这阻止了CPU核心和NoC实行它们所意图的数据处理任务。一般而言,通常在CMP平台上使用诸如经典兰伯特(Lamport)算法之类的软件队列来实现C2C通信。存在两种类型的在传统软件队列中生成的开销。第一种包括由队列结构维护和同步以及由共享存储器的流控制和管理所消耗的循环。这种类型的开销被称为控制层面开销。第二种类型的开销包含在将数据从一个核心移动到另一个核心时花费的循环。这种类型的开销被称为数据层面开销。控制层面开销和数据层面开销的总和构成跨核心传输数据所需要的总开销。存在软件优化和硬件优化两者可用于减轻这些开销。来自DPDK库的RTE环代码(软件优化)和利用飞思卡尔(Freescale)的DPAA技术的硬件加速排队(硬件优化)是当今现有的优化技术的示例。然而,这些现有的优化在减少核心对核心通信开销上都不是理想。当涉及同时减少控制层面开销和数据层面开销两者时尤其如此。附图说明本专利技术的前述方面和许多伴随的优点将变得更容易理解,因为通过参考下面的详细描述并结合附图可以更好地理解本专利技术,其中相同的附图标记在各个视图中指代相同的部分,除非另有说明:图1是图示了包括各种硬件部件的示例性队列管理设备的示意图;图2图示了配置队列管理设备内部的内部存储单元的示例性方式;图3图示了通过队列管理设备构成队列条目的示例性方式;图4图示了队列管理设备中的队列条目的示例性元数据字段;图5是图示了示例性信誉度控制系统的示意图;图6是图示了信誉度管理系统的示例性信誉度分发和补充过程的流程图;图7A是图示了生产方/用户方软件与队列管理设备之间的交互的框图;图7B是图示了硬件生产方/用户方设备与队列管理设备之间的交互的框图;图8是示出了利用集中式队列管理设备来管理管道阶段之间的队列的示例性无线核心网络的示图;图9是图示了虚拟化队列管理设备来支持多个虚拟机的框图;图10A是图示了根据本专利技术的实施例的示例性有序管线和示例性寄存器重命名、无序发出/执行管线二者的框图;图10B是图示了根据本专利技术的实施例的要被包括在处理器中的有序架构核心的示例性实施例和示例性寄存器重命名、无序发出/执行架构核心二者的框图;图11是根据本专利技术的实施例的单核心处理器和具有集成存储器控制器和图形控制器的多核心处理器的框图;图12图示了根据本专利技术的一个实施例的系统的框图;图13图示了根据本专利技术的实施例的第二系统的框图;图14图示了根据本专利技术的实施例的第三系统的框图;图15图示了根据本专利技术的实施例的片上系统(SoC)的框图;以及图16图示了根据本专利技术的实施例的对比软件指令转换器的使用的框图,该软件指令转换器用以将源指令集中的二进制指令转换成目标指令集中的二进制指令。具体实施方式本文中描述了实现用于减少核心对核心通信开销的硬件队列设备的实施例。在以下描述中,阐述了许多具体细节来提供对本专利技术的实施例的透彻理解。然而,相关领域的技术人员将意识到的是,可以在不具有所述具体细节中的一个或多个的情况下,或者利用其它方法、部件、材料等等来实践本专利技术。在其它实例中,没有详细示出或描述公知的结构、材料或操作,以避免使本专利技术的方面晦涩难懂。遍及本说明书对“一个实施例”或“实施例”的引用意指将结合实施例所描述的特定特征、结构或特性包括在本专利技术的至少一个实施例中。因此,在遍及本说明书的各个位置中的短语“在一个实施例中”或“在实施例中”的出现不一定都指代相同的实施例。此外,可以将特定的特征、结构或特性以任何适合的方式组合在一个或多个实施例中。为清楚起见,本文附图中的各个部件可以由它们在附图中的标号、而不是由特定附图标记来指代。图1是示出了根据实施例的利用队列管理设备(QMD)的示例性硬件系统的示意图。将QMD100附接到高速互连或片上网络(“NoC”)互连。在附图中将环102示出为该互连,但是也可以使用诸如网状网之类的其他网络形式。高速互连将CPU核心106-112和L3高速缓存104与QMD100连接。虽然没有在图中图示,但是可以存在附加的CPU核心、L3高速缓存和/或连接到高速互连的其他设备。CPU核心106-112、L3高速缓存104与QMD100之间的连接可以是特殊的专用互连或现有的共享互连。由CPU核心发出的入列(enqueue)和出列(dequeue)请求将要被路由到QMD。在其中要求确认的一个实施例中,QMD将会在每个成功的入列或出列操作之后向请求核心发送回响应以确认该请求的完成。在其中不要求确定的另一实施例中,请求核心与QMD之间的路径允许在不向请求核心发送回确认的情况下提交请求,所以提供或保留了长的足够的请求资源。还在图1中示出了QMD100的各种部件。QMD100包括一个或多个缓冲器(共同地被标注为114)、调度器116、入列引擎118、出列引擎120、信誉度池控制器122和内部存储单元124。从请求CPU核心发送的入列和出列请求首先由QMD100接收并且存储到缓冲器114之一中。缓冲器114暂时地存储传入请求,因为QMD100可能不具有足够的资源或带宽来在所有传入请求被接收到的时刻服务所述所有传入请求。缓冲器是先入先出(FIFO)队列,其中第一个进入缓冲器的请求将是第一个离开缓冲器的请求。在一个实施例中,分配缓冲器的一个子集来存储仅仅入列请求,同时为仅仅出列请求保留另一子集。还可以使用其他方式来分配缓冲器,诸如通过核心、通过线程、通过请求类型等等。可以在所有缓冲器中指派单个优先级等级以简化实施并且将吞吐量最大化。可替换地,可以实现多个优先级等级来支持细粒度的服务质量(QoS)特征。例如,给定n个优先级,可以给每个入列和出列缓冲器对指派不同的优先级,使得为入列请求分配n个缓冲器以及为出列请求分配n个缓冲器。每个传入请求具有由请求核心/线程预先指派的或者在被QMD收到时由QMD所指派的优先级。然后将每个请求存储在对应于请求的优先级(1-n)和/或类型(入列或出列)的缓冲器中。调度器116挑选缓冲器并且从缓冲器的头部选择一个或多个请求。根据调度策略来挑选缓冲器。可以实现各种调度策略,诸如轮询(RoundRobin)、加权轮询、抢占优先以及这些和其他策略的组合。例如在轮询策略中,简单地按顺序挑选缓冲器,即,最低缓冲器ID到最高的,或相反。如果所挑选的缓冲器是空的,则调度器116从不同的缓冲器来选择。在加权轮询策略中,调度器116基于它们相关联的优先级顺序地挑选和服务每个缓冲器。控制服务缓冲器的顺序的能力被称为请求级流控制。在挑选缓冲器并且从所挑选的缓冲器的头部选择一个或多个请求之本文档来自技高网...

【技术保护点】
1.一种装置,包括:一个或多个存储器缓冲器,用以接收和存储由一个或多个请求器提交的多个传入请求,其中所述多个传入请求包括入列请求和出列请求;调度器设备,用以根据调度策略从存储在一个或多个硬件存储器缓冲器之一中的多个传入请求选择请求;排队设备,用以处理所选择的请求,其中所述排队设备包括入列设备用以将数据插入到内部存储单元中并且包括出列设备用以从所述内部存储单元取回数据并且将所取回的数据发送到所述一个或多个请求器。

【技术特征摘要】
【国外来华专利技术】2016.01.04 US 14/9876761.一种装置,包括:一个或多个存储器缓冲器,用以接收和存储由一个或多个请求器提交的多个传入请求,其中所述多个传入请求包括入列请求和出列请求;调度器设备,用以根据调度策略从存储在一个或多个硬件存储器缓冲器之一中的多个传入请求选择请求;排队设备,用以处理所选择的请求,其中所述排队设备包括入列设备用以将数据插入到内部存储单元中并且包括出列设备用以从所述内部存储单元取回数据并且将所取回的数据发送到所述一个或多个请求器。2.根据权利要求1所述的装置,其中所述一个或多个存储器缓冲器是先入先出(FIFO)缓冲器。3.根据权利要求1至2中的任一项所述的装置,其中所述调度策略是轮询策略。4.根据权利要求1至2中的任一项所述的装置,其中所述调度策略是加权轮询策略。5.根据权利要求1至2中的任一项所述的装置,其中所述调度策略是抢占优先策略。6.根据权利要求1至5中的任一项所述的装置,其中所述内部存储单元能配置成支持变化的长度和大小的数据。7.根据权利要求1至6中的任一项所述的装置,进一步包括资源管理器设备,用以根据资源策略为所述一个或多个请求器中的每一个在可以由所述一个或多个请求器中的每一个提交的传入请求的数量上设定一个或多个限制。8.根据权利要求7所述的装置,其中所述资源策略包括全局资源池和多个局部资源池,所述全局资源池用以基于信誉度补充策略来提供要在所述多个局部资源池中分发的资源信誉度。9.根据权利要求8所述的装置,其中所述多个局部资源池中的每一个对应于所述一个或多个请求器之一,并且在给定的局部资源池中的资源信誉度确定可以由该局部资源池的对应请求器所提交的请求的数量。10.根据权利要求8至9中的任一项所述的装置,其中所述资源信誉度包括入列信誉度用以允许所述一个或多个请求器提交入列请求并且包括出列信誉度用以允许所述一个或多个请求器提交出列请求。11.根据权利要求8至10中的任一项所述的装置,其中所述信誉度补充策略是轮询策略。12.根据权利要求8至10中的任一项所述的装置,其中所述信誉度补充策略是加权轮询策略。13.根据权利要求8至10中的任一项所述的装置,其中所述信誉度补充策略是抢占优先策略。14.根据权利要求1至13中的任一项所述的装置,其中要被插入到所述内部存储单元中的每个数据块与元数据标签进行组合用以指示所述数据应当如何由所述入列设备和所述出列设备处置。15.根据权利要求14所述的装置,其中所述元数据标签包括原子参数用以指示是否应当将所取回的数据一次仅发送到一个请求器。16.根据权利要求14至15中的任一项所述的装置,其中所述元数...

【专利技术属性】
技术研发人员:王任Y王AJ赫德里希蔡志贤戴宗元ND麦克特纳尔H威尔金森BA布雷斯B理查森NN文卡特桑D伯恩斯坦E弗普兰克SR范多伦A严A库宁厄姆D索尼尔G伊兹JT克莱JD怀特塞尔J皮罗格J肯尼JR哈斯丁N范加蒂S米勒TK马W布勒斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1