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

用于转移操作的硬件加速器和方法技术

技术编号:20986270 阅读:48 留言:0更新日期:2019-04-29 20:03
描述了与转移操作有关的方法和装置。在一个实施例中,硬件处理器包括:核,用于执行线程并转移操作;以及第一硬件加速器和第二硬件加速器,用于执行该操作,其中,第一硬件加速器和第二硬件加速器耦合至多个共享缓冲器、具有用于每个相应共享缓冲器的条目的第二硬件加速器的输入缓冲器描述符数组、具有用于每个相应共享缓冲器的对应响应条目的第二硬件加速器的输入缓冲器响应描述符数组、具有用于每个相应共享缓冲器的条目的第一硬件加速器的输出缓冲器描述符数组、以及具有用于每个相应共享缓冲器的对应响应条目的第一硬件加速器的输出缓冲器响应描述符数组,多个共享缓冲器用于存储来自第一硬件加速器的输出数据并将该输出数据作为输入数据提供给第二硬件加速器。

Hardware Accelerators and Methods for Transfer Operations

Methods and devices related to transfer operation are described. In one embodiment, the hardware processor includes: a core for executing threads and transferring operations; and a first hardware accelerator and a second hardware accelerator for executing the operation, where the first hardware accelerator and the second hardware accelerator are coupled to multiple shared buffers and an input buffer description of a second hardware accelerator with entries for each corresponding shared buffer. Descriptor array, input buffer response descriptor array with corresponding response entry for each corresponding shared buffer, output buffer descriptor array with first hardware accelerator for each corresponding shared buffer entry, and output of first hardware accelerator with corresponding response entry for each corresponding shared buffer An array of buffer response descriptors, in which multiple shared buffers are used to store output data from the first hardware accelerator and provide the output data as input data to the second hardware accelerator.

【技术实现步骤摘要】
【国外来华专利技术】用于转移操作的硬件加速器和方法
本公开总体上关于电子学,更具体地,本公开的实施例关于用于执行转移(offload)操作的硬件加速器。
技术介绍
处理器或处理器集合执行来自指令集(例如,指令集架构(ISA))的指令。指令集是计算机架构的关于编程的部分,并且一般包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处置以及外部输入和输出(I/O)。应当注意,术语“指令”在本文中可以指宏指令或指微指令,该宏指令例如,提供给处理器供执行的指令,该微指令例如,由处理器的解码器对宏指令解码所产生的指令。附图说明在所附附图中以示例方式而非限制方式图示本公开,在附图中,类似的附图标记指示类似的要素,其中:图1图示根据本公开的实施例的硬件处理设备和硬件加速器。图2A-图2B图示根据本公开的实施例的硬件处理设备和硬件加速器。图3图示根据本公开的实施例的硬件处理器,该硬件处理器包括多个核和硬件加速器。图4图示根据本公开的实施例的硬件处理设备和硬件加速器。图5图示根据本公开的实施例的流程图。图6图示根据本公开的实施例的加速操作流程图。图7A是图示根据本公开的实施例的通用向量友好指令格式及其A类指令模板的框图。图7B是图示根据本公开的实施例的通用向量友好指令格式及其B类指令模板的框图。图8A是图示根据本公开的实施例的用于图7A和图7B中的通用向量友好指令格式的字段的框图。图8B是图示根据本公开的一个实施例的构成完整操作码字段的图8A中的专用向量友好指令格式的字段的框图。图8C是图示根据本公开的一个实施例的构成寄存器索引字段的图8A中的专用向量友好指令格式的字段的框图。图8D是图示根据本公开的一个实施例的构成扩充操作字段750的图8A中的专用向量友好指令格式的字段的框图。图9是根据本公开的一个实施例的寄存器架构的框图。图10A是图示根据本公开的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线两者的框图。图10B是图示根据本专利技术的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核两者的框图。图11A是根据本公开的实施例的单个处理器核以及其到管芯上互连网络的连接以及它的第2级(L2)高速缓存的本地子集的框图。图11B是根据本公开的实施例的图11A中的处理器核的部分的展开图。图12是根据本公开的实施例的可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图。图13是根据本公开的一个实施例的系统的框图。图14是根据本公开的实施例的更具体的示例性系统的框图。图15所示的是根据本公开的实施例的第二更具体的示例性系统的框图。图16示出的是根据本公开的实施例的芯片上系统(SoC)的框图。图17是根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式在以下描述中,陈述了众多特定细节。然而,应当理解,可不通过这些特定细节来实践本公开的实施例。在其他实例中,未详细示出公知的电路、结构和技术,以免使对本描述的理解模糊。说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可包括特定的特征、结构或特性,但是,每一个实施例可以不一定包括该特定的特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。(例如,具有一个或多个核的)(例如,硬件)处理器可执行指令(例如,指令线程)以对数据操作,从而例如执行算术、逻辑或其他功能。例如,软件可请求操作,并且硬件处理器(例如,该硬件处理器的一个或多个核)可响应于该请求来执行该操作。在一个实施例中,处理器耦合至多个(例如,管芯上)加速器(例如,转移引擎),这些(例如,管芯上)加速器(例如,转移引擎)用于执行例如一个或多个(例如,被转移的)操作而不是那些操作仅在处理器上被执行。在一个实施例中,处理器(例如,中央处理单元(CPU))包括(例如,管芯上)加速器(例如,转移引擎),这些(例如,管芯上)加速器(例如,转移引擎)用于执行例如一个或多个操作而不是那些操作仅在处理器上被执行。本文中的某些实施例提供对加速器通信机制的高吞吐量可缩放加速器。操作的两个非限制性示例是压缩操作和解压缩操作。压缩操作可以是指使用比原始表示更少的位对信息编码。解压缩操作可以是指将经压缩的信息往回解码为原始表示。压缩操作可将数据从第一格式压缩到经压缩的第二格式。解压缩操作可将数据从经压缩的第一格式解压缩到未经压缩的第二格式。压缩操作可根据(例如,压缩)算法来执行。解压缩操作可根据(例如,解压缩)算法来执行。加速器转移机制的某些实施例不支持设备对设备(devicetodevice)通信。相反,加速器(例如,转移设备)的某些实施例仅与处理器(例如,CPU)对接。这会导致若干问题,当尝试执行设备对设备直接通信时,这些问题将变得难以解决。例如,加速器(例如,转移设备)自身可能无法支持至其他设备的链接(chaining)或内联(inlining)。某些加速器可利用工作描述符模型来指定工作。在一个实施例中,一个问题在于,可能不存在设备彼此通信的单个通路,也不存在用于发起至设备的请求的共同机制,也没有用于对请求排队的共同方法。某些机制在设备之间可能是不同的。从软件视角看,并且从处理器(例如,CPU)对设备以及设备对处理器(例如,CPU)的交互视角看,对于许多加速器,控制流、数据流和错误处置可以在工作描述符机制中全部联系在一起。图1图示根据本公开的实施例的硬件处理设备100和硬件加速器(102,104)。一个加速器转移机制包括:将工作描述符结构(例如,在一些情况下为256字节)写入工作队列,随后通过向遇到尾指针的设备位置写入以包括(多个)新请求来使加速器(例如,加速器102)知晓新请求。在一个实施例中,工作描述符包含关于作业是什么的(例如,所有)信息以及指向数据的(例如,所有)指针。出于例如以下列举的若干理由,并且假定这样的流程:处理器(例如,CPU)将数据发送到设备1,该设备1将数据发送到设备2,该设备2将结果返回到CPU(例如,如图1中所示),该模型对于设备对设备(例如,链接)实现方式可能是有问题的:(1)工作描述符(Wkdesc)模型可能要求设备1能够将数据字段填充到用于设备2的工作描述符。这使得对于不是设计成写入工作描述符的设备的设备设计复杂化。在一个实施例中,例如,对于通用链接,设备将能够正确地将数据写入任何其他设备的工作描述符结构。由于可设计附加的(例如,新的)设备或者可修改接口,因此这意味着在一个实施例中,用于设备1的软件驱动器将告知设备1将信息写入到被发送到设备2的工作描述符的何处。这也可能是有问题的,因为如果当用于设备1的软件驱动器被写入时设备2(例如,设备2的类型)不存在,则情况可能是软件更新对于使设备1能够与设备2通信是必要的,从而例如产生跨驱动器和设备的不合实际的显著的软件依赖性,并产生许多验证担忧。(2)加速器(例如,转移设备)的实施例可使用不同的排队模型。在一个实施例中,排队方法依赖于将完整的工本文档来自技高网...

【技术保护点】
1.一种硬件处理器,包括:核,用于执行线程并转移操作;以及第一硬件加速器和第二硬件加速器,用于执行所述操作,以生成输出数据并消耗输入数据,其中,所述第一硬件加速器和所述第二硬件加速器耦合至多个共享缓冲器、具有用于每个相应共享缓冲器的条目的所述第二硬件加速器的输入缓冲器描述符数组、具有用于每个相应共享缓冲器的对应响应条目的所述第二硬件加速器的输入缓冲器响应描述符数组、具有用于每个相应共享缓冲器的条目的所述第一硬件加速器的输出缓冲器描述符数组、以及具有用于每个相应共享缓冲器的对应响应条目的所述第一硬件加速器的输出缓冲器响应描述符数组,所述多个共享缓冲器用于存储来自所述第一硬件加速器的所述输出数据并将所述输出数据作为所述输入数据提供给所述第二硬件加速器。

【技术特征摘要】
【国外来华专利技术】2016.09.30 US 15/282,3721.一种硬件处理器,包括:核,用于执行线程并转移操作;以及第一硬件加速器和第二硬件加速器,用于执行所述操作,以生成输出数据并消耗输入数据,其中,所述第一硬件加速器和所述第二硬件加速器耦合至多个共享缓冲器、具有用于每个相应共享缓冲器的条目的所述第二硬件加速器的输入缓冲器描述符数组、具有用于每个相应共享缓冲器的对应响应条目的所述第二硬件加速器的输入缓冲器响应描述符数组、具有用于每个相应共享缓冲器的条目的所述第一硬件加速器的输出缓冲器描述符数组、以及具有用于每个相应共享缓冲器的对应响应条目的所述第一硬件加速器的输出缓冲器响应描述符数组,所述多个共享缓冲器用于存储来自所述第一硬件加速器的所述输出数据并将所述输出数据作为所述输入数据提供给所述第二硬件加速器。2.如权利要求1所述的硬件处理器,其中,所述第二硬件加速器用于将用于所述输入缓冲器描述符数组的最后有效输入条目的索引与用于所述输入缓冲器响应描述符数组的最后消耗输入响应条目的索引进行比较以确定所述第二硬件加速器何时将执行以消耗来自所述多个共享缓冲器的输入数据,并且所述第一硬件加速器用于将用于所述输出缓冲器描述符数组的最后有效输出条目的索引与用于所述输出缓冲器响应描述符数组的最后消耗输出响应条目的索引进行比较以确定所述第一硬件加速器何时将执行以生成进入所述多个共享缓冲器的输出数据。3.如权利要求1所述的硬件处理器,其中,在没有来自所述核的参与的情况下,所述第二硬件加速器用于执行比较且所述第一硬件加速器用于执行比较。4.如权利要求1所述的硬件处理器,其中,所述核用于:分配所述多个共享缓冲器;以及加载所述输入缓冲器描述符数组中用于每个相应共享缓冲器的条目。5.如权利要求4所述的硬件处理器,其中,所述核用于:加载所述输出缓冲器描述符数组中用于每个相应共享缓冲器的条目。6.如权利要求1所述的硬件处理器,其中,所述第一硬件加速器用于:用所述输出数据加载所述多个共享缓冲器;以及加载所述输出缓冲器响应描述符数组中用于每个相应的被消耗的共享缓冲器的对应响应条目。7.如权利要求6所述的硬件处理器,其中,所述第二硬件加速器用于:加载所述输入缓冲器响应描述符数组中用于每个相应的被消耗的共享缓冲器的对应响应条目。8.如权利要求1-7中的任一项所述的硬件处理器,其中,所述输入缓冲器描述符数组中的条目各自都包括存储在相应共享缓冲器中的输入数据的尺寸,所述输入缓冲器响应描述符数组中的对应响应条目各自都包括相应共享缓冲器中剩余的输入数据的尺寸,所述输出缓冲器描述符数组中的条目各自都包括能用于存储输出数据的相应共享缓冲器的尺寸,并且所述输出缓冲器响应描述符数组中的对应响应条目各自都包括存储在相应共享缓冲器中的输出数据的尺寸。9.一种方法,包括:将操作从硬件处理器转移到第一硬件加速器;以及在所述第一硬件加速器和第二硬件加速器上执行所述操作,以生成输出数据并消耗输入数据,其中,所述第一硬件加速器和所述第二硬件加速器耦合至多个共享缓冲器、具有用于每个相应共享缓冲器的条目的所述第二硬件加速器的输入缓冲器描述符数组、具有用于每个相应共享缓冲器的对应响应条目的所述第二硬件加速器的输入缓冲器响应描述符数组、具有用于每个相应共享缓冲器的条目的所述第一硬件加速器的输出缓冲器描述符数组、以及具有用于每个相应共享缓冲器的对应响应条目的所述第一硬件加速器的输出缓冲器响应描述符数组,所述多个共享缓冲器用于存储来自所述第一硬件加速器的所述输出数据并将所述输出数据作为所述输入数据提供给所述第二硬件加速器。10.如权利要求9所述的方法,进一步包括:所述第二硬件加速器将用于所述输入缓冲器描述符数组的最后有效输入条目的索引与用于所述输入缓冲器响应描述符数组的最后消耗输入响应条目的索引进行比较以确定所述第二硬件加速器何时将执行以消耗来自所述多个共享缓冲器的输入数据;以及所述第一硬件加速器将用于所述输出缓冲器描述符数组的最后有效输出条目的索引与用于所述输出缓冲器响应描述符数组的最后消耗输出响应条目的索引进行比较以确定所述第一硬件加速器何时将执行以生成进入所述多个共享缓冲器的输出数据。11.如权利要求10所述的方法,其中,在没有来自所述硬件处理器的参与的情况下,所述第二硬件加速器执行比较且所述第一硬件加速器执行比较。12.如权利要求9所述的方法,进一步包括:分配所述多个共享缓冲器;以及加载所述输入缓冲器描述符...

【专利技术属性】
技术研发人员:T·G·德赖斯代尔V·戈帕尔J·D·吉尔福德
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1