首页 / 专利库 / 人工智能 / 专用逻辑 / 存储器中计算系统和方法

存储器中计算系统和方法

阅读:237发布:2020-05-11

专利汇可以提供存储器中计算系统和方法专利检索,专利查询,专利分析的服务。并且本公开的 发明 名称 是“ 存储器 中计算系统和方法”。一种集成 电路 装置可包含第一集成电路管芯上的可编程 逻辑电路 系统和第二管芯上包含存储器中计算电路系统的存储器。可编程逻辑电路系统可通过对数据的第一集合进行操作的电路设计而被编程。存储器的存储器中计算电路系统可使用来自可编程逻辑电路系统的数据的第一集合和存储在存储器中的数据的第二集合来执行算术运算。,下面是存储器中计算系统和方法专利的具体信息内容。

1.一种集成电路装置,用于在所述集成电路装置的片上存储器电路系统中执行算术计算,所述集成电路装置包括:
部署在第一集成电路管芯上的可编程逻辑电路系统,其中所述可编程逻辑电路系统包括可编程逻辑电路系统的第一区域,其中可编程逻辑电路系统的所述第一区域被配置成通过对数据的第一集合进行操作的电路设计而被编程;以及
部署在第二集成电路管芯上的存储器电路系统,其中所述存储器电路系统包括存储器的第一区域和第一存储器中计算电路系统,其中所述第一存储器中计算电路系统被配置成使用来自所述可编程逻辑电路系统的数据的所述第一集合和存储在存储器的所述第一区域中的数据的第二集合来执行算术运算。
2.如权利要求1所述的集成电路装置,其中可编程逻辑电路系统的所述第一区域与存储器的所述第一区域对齐。
3.如权利要求1所述的集成电路装置,其中所述第一集成电路管芯和所述第二集成电路管芯是3D堆叠的并且通过互连而被通信地耦合。
4.如权利要求1所述的集成电路装置,其中存储器的所述第一区域包括与所述第一存储器中计算电路系统相关联的第一子区域和与第二存储器中计算电路系统相关联的第二子区域。
5.如权利要求1所述的集成电路装置,其中存储器的所述第一区域包括多个子区域和多个对应的存储器中计算电路系统单元。
6.如权利要求5所述的集成电路装置,其中数据的所述第一集合被广播到所述多个存储器中计算电路系统单元。
7.如权利要求5所述的集成电路装置,其中数据的所述第二集合从所述多个存储器中计算电路系统单元被收集。
8.如权利要求7所述的集成电路装置,其中当使用所述多个存储器中计算电路系统单元来计算张量运算时,数据的所述第二集合被简化以形成部分和。
9.如权利要求8所述的集成电路装置,其中所述部分和在矩阵和向量运算中被使用。
10.如权利要求5所述的集成电路装置,其中数据的所述第二集合被并行地从所述多个存储器中计算电路系统单元同时收集。
11.如权利要求5所述的集成电路装置,其中所述存储器中计算电路系统单元包括点积引擎和累加电路系统。
12.如权利要求1-3所述的集成电路装置,其中所述第一子区域包括控制所述第一存储器中计算电路系统的第一控制器以及所述第二子区域包括控制所述第二存储器中计算电路系统的第二控制器。
13.一种或多种有形的非暂态机器可读介质,所述机器可读介质包括由一个或多个处理器可执行以在集成电路装置的存储器电路系统中执行算术计算的机器可读指令,其中所述指令包括用于执行以下操作的指令:
通过第一电路设计来配置第一管芯的可编程逻辑电路系统;以及
初始化与所述第一管芯通信的第二管芯的存储器电路系统,其中所述第二管芯的所述存储器电路系统包括存储器中计算电路系统,其中初始化所述存储器电路系统包括将与所述第一电路设计相关联的计算数据加载到所述第二管芯的所述存储器电路系统中。
14.如权利要求13所述的机器可读介质,包括用于在所述可编程逻辑电路系统上运行所述第一电路设计的指令,其中运行所述第一电路设计包括:
将输入数据从所述第一管芯传送到所述第二管芯;
使得算术运算使用所述输入数据和所述计算数据在所述第二管芯的所述存储器电路系统的所述存储器中计算电路系统上被执行以生成输出数据;以及
将所述输出数据从所述第二管芯传送到所述第一管芯。
15.如权利要求13所述的机器可读介质,其中所述算术运算包括点积运算、累加运算、矩阵运算、向量运算、卷积运算、或其组合。
16.如权利要求13所述的机器可读介质,其中:
所述第一电路设计包括过滤功能;以及
与所述第一电路设计相关联的所述计算数据包括一个或多个过滤器系数。
17.如权利要求13-16所述的机器可读介质,其中:
所述第一电路设计包括人工神经网络功能;以及
与所述第一电路设计相关联的所述计算数据包括一个或多个神经网络权重。
18.一种数据中心系统,用于在集成电路装置的片上存储器电路系统中执行算术计算,所述数据中心系统包括:
集成电路,所述集成电路包括:
第一区域,所述第一区域包括能通过对数据的第一集合进行操作的电路设计被配置的可编程逻辑电路系统;以及
第二区域,所述第二区域包括存储器电路系统,其中所述存储器电路系统包括配置成使用数据的所述第一集合和存储在所述存储器电路系统中的数据的第二集合来执行算术运算的集成的存储器中计算电路系统;以及
处理器,所述处理器配置成使得所述集成电路的所述第一区域通过所述电路设计而被配置。
19.如权利要求18所述的数据中心系统,其中所述处理器被配置成通过使得数据的所述第二集合被加载到所述存储器电路系统中来初始化所述存储器电路系统。
20.如权利要求18所述的数据中心系统,其中所述第一电路设计包括人工智能(AI)应用,其中所述存储器中计算电路系统的所述算术运算的结果被配置成被发送到所述第一区域,以及其中所述第一区域上的所述第一电路设计的所述人工智能应用被配置成执行包括激活函数、变换、数据格式转换、预处理、后处理或其组合的专用过程。

说明书全文

存储器中计算系统和方法

技术领域

[0001] 本公开涉及用于在由单独集成电路管芯可访问的第一集成电路管芯的存储器中执行算术计算的电路系统(circuitry)。

背景技术

[0002] 该部分旨在向读者介绍可与下面描述的和/或要求权利的本公开的各个方面有关的技术(art)的各个方面。相信该讨论有助于向读者提供背景信息以促进更好地理解本公开的各个方面。因此,可理解,这些陈述要以这种观点(in this light)被解读,而不是作为现有技术的承认。
[0003] 诸如计算机、便携式装置、网络路由器、数据中心、因特网连接的器具(appliance)以及更多装置的现代电子器件倾向于包含至少一个集成电路装置。集成电路装置采用多种形式,包含处理器、存储器装置和可编程装置(仅举出少许示例)。现场可编程阵列(FPGA)是利用集成电路的一种类型的可编程装置。可编程装置可包含在制造之后可被编程(例如,被配置)的逻辑,以基于可编程装置内可能的各种设计来提供各种各样的功能性。因此,可编程装置含有可编程逻辑(例如,逻辑),所述可编程逻辑可被配置和重新配置成根据配置的设计在装置上执行各种功能。
[0004] 可编程逻辑装置的高度灵活性使它们非常适合于加速许多计算任务。因此,可编程逻辑装置正越来越多地用作用于机器学习、视频处理、语音识别图像识别和许多其它高度专业化任务(特别是在处理器上运行的软件中将太慢或效率太低的那些任务)的加速器。例如,可编程逻辑装置可被编程为用于人工智能(AI)技术的加速器,所述人工智能(AI)技术可涉及机器学习或相关的高强度计算。加速器可使用可编程逻辑装置上的计算单元来执行演算(calculation)。同时,计算中使用的某些数据(诸如用于神经网络节点的权重矩阵)可被存储在芯片外的存储器中。为了使用加速器执行演算,存储在存储器中的数据首先可从存储器被传输到加速器。因此,随着片外存储的数据的量增大,带宽和延迟(latency)约束可能越来越多地影响加速器的操作。
附图说明
[0005] 在阅读以下详细描述时并且在参考附图时,可更好地理解本公开的各个方面,在附图中:图1是根据一实施例的通过电路设计来编程的可编程逻辑装置的块图;
图2是根据一实施例的包含可编程逻辑装置的封装的块图,在所述可编程逻辑装置中组构管芯(fabric die)与基管芯(base die)垂直堆叠;
图3是根据一实施例的可编程逻辑装置的示例逻辑布置的块图;
图4是根据一实施例的图示可编程逻辑装置的含有可编程逻辑组构的组构管芯和可编程逻辑装置的主要含有非组构电路系统的基管芯的块图,所述非组构电路系统操作可编程逻辑组构并且可用于执行存储器中计算(compute-in-memory)操作;
图5是根据一实施例的具有扇区对齐(sector-aligned)存储器的基管芯的示例拓扑的块图,该扇区对齐存储器可被用于执行存储器中计算操作;
图6是根据一实施例的基管芯的扇区对齐存储器的示意性块图,所述基管芯可被并行堆叠到可编程逻辑装置的组构管芯,以支持对于组构管芯的对应扇区的快速配置、缓存和/或计算;
图7是根据一实施例的与基管芯上的存储器通信以在基管芯上执行存储器中计算算术计算的组构管芯的块图;
图8是根据一实施例的图示使用与基管芯上的存储器扇区集成的计算单元所执行的存储器中计算算术计算的块图;
图9A是根据一实施例的用于将来自组构管芯的输入传递到基管芯的计算单元的分散(scatter)操作的块图;
图9B是根据一实施例的用于将来自组构管芯的多个输入传递到基管芯的计算单元的多个分散操作的块图;
图9C是根据一实施例的用于将在基管芯的计算单元上执行的存储器中计算的计算的结果传递到组构管芯的收集(gather)操作的块图;
图9D是根据一实施例的用于将在基管芯的计算单元上执行的存储器中计算的计算的结果传递到组构管芯的多个收集操作的块图;
图9E是根据一实施例的使用基管芯的计算单元所执行的顺序的存储器中计算操作的块图;
图10是根据一实施例的可用于张量计算的基管芯的存储器中计算电路系统的块图;
图11A是根据一实施例的可用于人工智能(AI)矩阵乘法运算(matrix multiplication operation)的基管芯上的存储器中计算电路系统的配置的块图;
图11B是根据一实施例的可用于人工智能(AI)卷积运算(convolutional operation)的基管芯上的存储器中计算电路系统的配置的块图;
图12是根据一实施例的用于使用用于算术计算的存储器中计算电路系统来执行算术运算(arithmetic operation)的过程流程图;以及
图13是根据一实施例的可使用可编程逻辑装置和存储器中计算电路系统来快速执行加速器任务的数据处理系统的块图。

具体实施方式

[0006] 以下将描述一个或多个具体实施例。为了(in an effort to)提供这些实施例的简明描述,并未在说明书中描述实际实现(implementation)的所有特征。可领会,在任何此类实际实现的开发中,如在任何工程或设计项目中,必须做出大量实现特定的决策以达到开发人员的具体目标,诸如对于系统相关的和业务相关的约束的遵守,这可能从一个实现到另一个实现而改变。此外,可领会,此类开发工作可能是复杂且耗时的,但是对于受益于本公开的那些普通技术人员来说仍然是设计、制作和制造的常规任务。
[0007] 当介绍本公开的各种实施例的元素时,冠词“一(a)”,“一(an)”和“该(the)”旨在表示存在元素的一个或多个。术语“包括”、“包含”和“具有”旨在是包含性的,并且意味着可能存在除所列元素之外的附加元素。另外,应理解,对本公开的“一个实施例”或“一实施例”的引用并非旨在被解释为排除也结合了所记载特征的附加实施例的存在。另外,短语A“基于”B旨在意味着A至少部分地基于B。此外,除非另有明确说明,否则术语“或”旨在是包含性的(例如,逻辑OR)而不是排他性的(例如,逻辑XOR)。换句话说,短语A“或”B旨在意味着A、B或A和B两者。
[0008] 可编程逻辑装置(例如,FPGA)的高度灵活性使它们非常适合于加速许多计算任务。可涉及可编程逻辑装置的一个加速器功能是人工智能(AI)。实际上,AI算法在不断变化并且可编程逻辑装置可很容易地通过不同的电路设计被重新配置以支持新的AI算法。AI算法可执行诸如矩阵乘法、卷积运算以及诸如此类的算术计算。虽然本公开将描述与人工智能(AI)或机器学习(ML)相关的加速器功能,但是应理解,可使用任何其它合适形式的加速。
[0009] 由于用来加速某些任务(例如,实行AI算法)的算术计算可使用大量的数据,因此所述数据可能被存储在片外存储器装置上。然而,可能存在将数据传输到片外存储器装置和从片外存储器装置传输数据的带宽和/或延迟约束。这些约束可使用位于片外存储器中的存储器中计算电路系统被减轻。实际上,可在其它情况下(otherwise)在可编程逻辑装置的可编程逻辑组构(例如,诸如FPGA电路系统的可编程逻辑电路系统)中发生的许多算术计算可替代地发生在片外存储器中的存储器中计算电路系统中。
[0010] 虑及上述内容(with the foregoing in mind),图1图示了系统10的块图,该系统10可在可与单独的基管芯进行通信以执行存储器中计算算术计算的管芯上采用可编程逻辑装置12。使用系统10,设计者可在诸如可重新配置的可编程逻辑装置12(诸如现场可编程门阵列(FPGA))的集成电路上实现电路设计功能性。设计者可使用诸如由加利福尼亚州圣克拉拉的英特尔公司所作的Intel® Quartus®(Intel ® Quartus ® by Intel 
Corporation of Santa Clara, California)的版本的设计软件14来实现要被编程到可编程逻辑装置12上的电路设计。设计软件14可使用编译器16来生成由比特流18定义的低级别(low-level)电路设计,比特流18有时被称为程序对象文件和/或配置程序,所述程序对象文件和/或配置程序对可编程逻辑装置12进行编程。因此,编译器16可向可编程逻辑装置12提供代表电路设计的机器可读指令。例如,可编程逻辑装置12可接收描述应被存储在可编程逻辑装置12中的硬件实现的一个或多个配置程序(比特流)18。配置程序(例如,比特流)
18可作为配置程序20被编程到可编程逻辑装置12中。在一些情况中,配置程序20可表示用来执行机器学习、视频处理、语音识别、图像识别、或其它高度专业化任务的加速器功能。
[0011] 为了实行本公开的系统和方法,可编程逻辑装置12可包含与基管芯24通信的组构管芯22。基管芯24可执行基管芯24的存储器中的存储器中计算算术计算,而组构管芯22可被用于一般目的。例如,可通过与基管芯24中的存储器中计算电路系统协调的加速器功能拓扑(accelerator function topology)来配置组构管芯22。这样,以及在一个实施例中,可编程逻辑装置12可以是堆叠在基管芯24上的组构管芯22,创建3D堆叠以执行存储器中计算算术计算。然而,在其它示例中,基管芯24和组构管芯22可并排(side-by-side)并且经由以2.5D形式的内插器或桥(例如,嵌入式多管芯互连桥(EMIB))连接到彼此。考虑到(allow for)高效和快速的数据密集的计算,存储器中计算架构可允许计算单元和用于计算的数据被存储在相同的位置中(在基管芯24存储器中)。
[0012] 图2中示出了可编程逻辑装置12的一个示例,但是可使用任何合适的可编程逻辑装置。在图2的示例中,可编程逻辑装置12包含经由微凸块(microbump)26连接到彼此的组构管芯22和基管芯24。尽管组构管芯22和基管芯24在图2中以一对一的关系出现,但是其它关系可被使用。例如,单个基管芯24可附连到若干组构管芯22,或者若干基管芯24可附连到单个组构管芯22,或者若干基管芯24可附连到若干组构管芯22(例如,以沿着x-方向和/或y-方向交错的型式(pattern))。外围电路系统28可被附连到基管芯24、嵌入在基管芯24内、和/或部署在基管芯24的顶部上,并且散热器30可被用来减少可编程逻辑装置12上热量的累加。散热器30可如图所示出现在封装的上面、和/或出现在封装的下面(例如,作为双面的散热片(heat sink))。基管芯24可经由C4凸块34附连到封装衬底32。在图2的示例中,两对组构管芯22和基管芯24被示出为经由桥36(例如,嵌入式多管芯互连桥(EMIB))和硅桥接口39处的微凸块38通信地连接到彼此。
[0013] 尽管微凸块26和微凸块38被描述为在组构管芯22和基管芯24之间或在边缘装置(诸如硅桥36和硅桥接口39)之间被采用,但是应注意,微凸块可在可编程逻辑装置12的组件之间的任何合适位置被采用。例如,微凸块可被结合在组构管芯22和基管芯24之间的任何合适位置(例如,中间、边缘、对线)中。以相同的方式,微凸块可按任何合适的型式或无定形形状被结合以促进本文中所描述的各种组件之间的互连性。
[0014] 组合起来,组构管芯22和基管芯24可作为诸如现场可编程门阵列(FPGA)的可编程逻辑装置进行操作。例如,组构管芯22和基管芯24可作为图3中所示的FPGA 40组合地进行操作。应理解,图3中所示的FPGA 40意图表示当组构管芯22和基管芯24两者组合地进行操作时可编程逻辑装置的逻辑布置和/或电路系统类型。换句话说,图3中所示的FPGA 40的电路系统中的一些可在组构管芯22中被找到以及图3中所示的FPGA 40的电路系统中的一些可在基管芯24中被找到。另外,为了该示例的目的,FPGA 40被称为FPGA,但是应理解,该装置可以是任何合适类型的可编程逻辑装置(例如,专用集成电路和/或专用标准产品)。
[0015] 在图3的示例中,FPGA 40可包含用于驱动信号离开(off of)FPGA 40并且用于从其它装置接收信号的收发器电路系统(高速串行接口(HSSI))44。收发器电路系统(HSSI)44可以是组构管芯22、基管芯24或完全单独管芯的部分。互连资源46可用于将诸如时钟或数据信号的信号路由通过FPGA 40。图3的FPGA 40被示出成被扇区化,意味着可编程逻辑资源可通过多个离散可编程逻辑扇区48(例如,区域、部分)被分布。每个可编程逻辑扇区48可包含多个可编程逻辑元件50(本文中也称为FPGA组构50),所述可编程逻辑元件50具有由配置存储器52(例如,配置随机存取存储器(CRAM))定义的操作。可编程逻辑元件50可包含组合的或时序的逻辑电路系统。例如,可编程逻辑元件50可包含查找表、寄存器、复用器、路由导线(routing wire)等等。设计者可对可编程逻辑元件50进行编程以执行各种期望的功能。电源54可向配电网络(PDN)56提供电流电压的源,所述配电网络(PDN)56将电功率分配给FPGA 40的各个组件。操作FPGA 40的电路系统使得功率从配电网络56中被提取。
[0016] 在FPGA 40上可存在任何合适数量的可编程逻辑扇区48。实际上,虽然这里示出了29个可编程逻辑扇区48,但是应领会,更多或更少的可编程逻辑扇区48可出现在实际实现中(例如,在某些情况中,可存在仅一个扇区,而在其它情况中,可存在大约50、100或1000个扇区或更多扇区)。每个可编程逻辑扇区48可包含控制可编程逻辑扇区48的操作的扇区控制器(SC)58。每个扇区控制器58可与装置控制器(DC)60通信。每个扇区控制器58可接受来自装置控制器60的数据和命令并且可基于来自装置控制器60的控制信号从其配置存储器
52中读取数据并将数据写入到其配置存储器52中。除了这些操作之外,还可用许多附加能来增强(augment)扇区控制器58和/或装置控制器60。此类能力可包含协调本地组构中存储器(例如,用于数据存储的CRAM或本地组构存储器)之间的存储器事务、与那个特定可编程逻辑扇区48相关联的扇区对齐存储器之间的事务、解密配置数据(比特流)18、以及对读取和写入进行本地排序以实现配置存储器52上的错误检测和校正、以及对测试控制信号进行排序以实现各种测试模式(mode)。
[0017] 扇区控制器58和装置控制器60可被实现为状态机(state machine)和/或处理器。例如,扇区控制器58或装置控制器60的每个操作可被实现为含有控制程序的存储器中的单独例程。该控制程序存储器可被固定在只读存储器(ROM)中或存储在诸如随机存取存储器(RAM)的可写存储器中。ROM可具有比将用来存储每个例程的仅一个副本的大小(size)更大的大小。这可允许每个例程具有多个变体,所述多个变体取决于本地控制器可被放入的“模式”。当控制程序存储器被实现为随机存取存储器(RAM)时,RAM可通过新例程被写入以实现到可编程逻辑扇区48中的新操作和功能性。这可按高效且容易理解的方式提供可用的可扩展性。这可以是有用的,因为新命令能以装置控制器60和扇区控制器58之间仅少量的通信为代价而在扇区内引起大量本地活动。
[0018] 因此,每个扇区控制器58可与装置控制器60通信,装置控制器60可协调扇区控制器58的操作并输送从FPGA装置40外部发起的命令。为了支持该通信,互连资源46可充当装置控制器60和每个扇区控制器58之间的网络。互连资源可支持装置控制器60和每个扇区控制器58之间的各种各样的信号。在一个示例中,这些信号可作为通信分组被传送。
[0019] 可对FPGA 40进行电子编程。通过电子编程布置,可编程元件50可包含一个或多个逻辑元件(导线、门、寄存器等)。例如,在编程期间,使用引脚(pin)和输入/输出电路系统将配置数据加载到配置存储器52中。在一个示例中,配置存储器52可作为配置随机存取存储器(CRAM)单元被实现。本文中描述的基于RAM技术的配置存储器52的使用旨在仅作为一个示例。此外,配置存储器52可被分布(例如,作为RAM单元)遍布于FPGA 40的各个可编程逻辑扇区48。配置存储器52可提供控制互连资源46的可编程组件或相关联可编程逻辑元件50的状态的对应静态控制输出信号。配置存储器52的输出信号可配置、可被应用于控制互连资源46的可编程组件或可编程逻辑元件50的状态的金属化物半导体(MOS)晶体管的栅极。
[0020] 如上文所述,图3中所示的FPGA 40的逻辑布置可由组构管芯22和基管芯24组合来产生。组构管芯22和基管芯24的电路系统可按任何合适的方式被划分。在图4中以块图形式所示的一个示例中,组构管芯22主要含有可编程逻辑组构资源,诸如可编程逻辑元件50和配置存储器52。在某些情况中,这也可能需要某个组构控制电路系统,诸如扇区控制器(SC)58或装置控制器(DC)60。基管芯24可包含用来操作可编程逻辑元件50和配置存储器52的支持电路系统。此处示出,基管芯24包含用来支持组构管芯22的配置存储器52和可编程逻辑元件50的两个对应扇区的扇区1支持电路系统70A和扇区2支持电路系统70B。基管芯24还可包含用于组构管芯22的其它扇区的支持电路系统。
[0021] 因此,虽然组构管芯22可主要包含诸如可编程逻辑元件50和配置存储器52的可编程逻辑组构资源,基管芯24除其它东西外还可包含装置控制器(DC)60、扇区控制器(SC)58、片上网络(NOC)、片上配置网络(CNOC)、数据路由电路系统、用来存储和/或缓存配置程序(比特流)或数据的扇区对齐存储器、用来对可编程逻辑组构进行编程的存储器控制器、用于可编程逻辑组构的输入/输出(I/O)接口或模块、外部存储器接口(例如,用于高带宽存储器(HBM)装置)、嵌入式处理器(例如,由加利福尼亚州圣克拉拉的英特尔公司所作的嵌入式Intel® Xeon®处理器)或用来连接到处理器的接口(例如,到由加利福尼亚州圣克拉拉的英特尔公司所作的Intel® Xeon®处理器的接口)、电压控制电路系统、热监测电路系统、去耦电容器、功率钳(power clamp)和/或静电放电(ESD)电路系统(仅举出可在基管芯24上存在的少许元件)。如所示出的,以及在一些实施例中,基管芯24还可包含扇区内的存储器中计算电路系统71(例如,计算电路系统单元),所述存储器中计算电路系统71可使用存储在扇区对齐存储器中的数据来执行用于加速器的算术计算,诸如用于可在AI技术中使用的机器学习的计算。为了考虑到存储器中计算的计算,基管芯24可包含存储器(例如,扇区对齐存储器),并且存储器中计算电路系统71可在存储器中被集成。应理解,可以是基管芯24的组构支持电路系统的部分的这些元件中的一些可附加地或备选地是组构管芯22的一部分。例如,装置控制器(DC)60和/或扇区控制器(SC)58可以是组构管芯22的部分。
[0022] 虽然图4表示其中组构管芯22主要含有可编程逻辑组构、而大多数其它组件位于基管芯24中的示例,但是组构管芯22可含有所述其它组件中的一些组件以支持可编程逻辑组构。因此,在一些实施例中,组构管芯22或基管芯24可包含以下元件中的一个或多个:装置控制器(DC)60、扇区控制器(SC)58、片上网络(NOC)、数据路由电路系统、用来存储和/或缓存配置程序(比特流)或数据的扇区对齐存储器、用来对可编程逻辑组构进行编程的存储器控制器、用于可编程逻辑组构的输入/输出(I/O)接口或模块、外部存储器接口(例如,用于高带宽存储器(HBM)装置)、嵌入式处理器(例如,由加利福尼亚州圣克拉拉的英特尔公司所作的嵌入式Intel® Xeon®处理器)或用来连接到处理器的接口(例如,到由加利福尼亚州圣克拉拉的英特尔公司所作的Intel® Xeon®处理器的接口)、电压控制电路系统、热监测电路系统、去耦电容器、功率钳和/或静电放电(ESD)电路系统、以及其它元件。
[0023] 在图5中示出了组构管芯22和基管芯24的一个示例物理布置。如图示的,组构管芯22被示出含有组构扇区80的阵列,所述组构扇区80包含组构资源82(例如,由CRAM编程的可编程元件和/或某个组构控制电路系统,诸如扇区控制器(SC)58或装置控制器(DC)60)和接口电路系统84。接口电路系统84可包含数据路由和/或计时(clocking)资源,或者可包含到基管芯24上的数据路由和/或计时资源的接口。因此,接口电路系统84可连接于图2的微凸块(ubump)接口以连接到基管芯24。
[0024] 如图6中所示,组构管芯22和基管芯24可垂直对齐或堆叠。通过以基管芯24中结合的NOC 100来垂直对齐组构管芯22和基管芯24,位于基管芯24中的存储器可对于组构管芯22的组构扇区80是并行可访问的。图6示出了其中扇区对齐存储器92与存储器中计算电路系统71集成的示例。如下面将讨论的,存储器中计算电路系统71可表示用来执行存储器中计算操作的电路系统。扇区对齐存储器92可对于组构管芯22的相应组构扇区80是直接可访问的,并且可含有用户数据(由编程到基管芯24的可编程逻辑组构中的电路设计生成或由该电路设计可访问)或配置数据。
[0025] 在本公开中,“直接可访问的”是指与特定组构扇区80相关联的扇区对齐存储器92的区域与该特定组构扇区80之间的连接。在一些实施例中,与特定组构扇区80相关联的扇区对齐存储器92的每个相应区域可对于该特定组构扇区80是直接可访问的,从而为每个组构扇区80提供对扇区对齐存储器92的该区域的直接访问。例如,可存在扇区对齐存储器92的N个区域,所述N个区域能够是由N个对应的组构扇区80同时(例如,并行)可访问的。在一些情况中,扇区对齐存储器92可对于多于一个组构扇区80是可访问的,或者扇区对齐存储器92的多个扇区可对于单个组构扇区80是可访问的。因此,在某些情况中,扇区对齐存储器92的相同区域可对于多个组构扇区80是直接可访问的,而在其它情况中,扇区对齐存储器
92的区域可仅对于单个组构扇区80是直接可访问的。在图6的示例中,组构扇区80可访问扇区对齐存储器92的具体区域。扇区对齐存储器92在图6中被示出为垂直堆叠的存储器。这可允许大量存储器位于基管芯24内。然而,在一些实施例中,扇区对齐存储器92可占据基管芯
24的单个平面。如上面提及的,为了促进扇区对齐存储器92的使用,嵌入式NOC 100或另一互连可能够实现基管芯24的扇区对齐存储器92的存储器组件与组构管芯22的扇区48或其它组件(例如,CRAM)之间的通信。
[0026] 如上面提及的,可编程逻辑装置12可包含由组构管芯22中的配置存储器52控制的可编程逻辑元件50。通过对配置存储器52进行编程(在称为“配置”的过程中),可将不同的电路设计编程到可编程逻辑装置12中。电路设计定义如在图7中所示的示例中的可涉及大量的数据的应用122(例如,诸如人工智能(AI)功能的加速器功能)。在这种情况中,许多数据可驻留在基管芯24(其可被理解为从组构管芯22来看是片外的)中的片上存储器126(例如,其可表示扇区对齐存储器92的存储器)中和/或位于其它地方的片外存储器127中。在图7的示例中,片上存储器126存储计算数据131,所述计算数据131可由存储器中计算电路系统71用在计算中以实行应用122的请求。应用122可经由互连132与片上存储器126通信,所述互连132可表示图2的硅桥36、微凸块、3D链接(link)或诸如此类。
[0027] 计算数据131可表示由应用122使用的任何合适的数据。例如,当应用122表示诸如人工神经网络的人工智能(AI)功能时,计算数据131除了其它值之外还可表示人工智能(AI)预测因子(predictor)、权重、或预测(forecast)。通常,人工神经网络是直接在生物神经网络上建模的统计模型。它们能够并行地对输入和输出之间的非线性关系进行建模和处理。相关的神经网络算法是更广的机器学习领域的部分并且可在许多AI应用中被使用。神经网络可被示为可按层组织的神经元的网络。预测因子(或输入,“I”)形成神经元的底层以及预测(或输出,“O”)形成神经元的顶层。人工神经网络可含有沿着神经元之间的路径的自适应权重“W”,所述自适应权重“W”能够由从观察的数据“学习”的学习算法来调整,其中可改变自适应权重“W”以改善模型。通过输入的线性组合来获得输出。还可存在含有隐藏神经元的中间层。最简单的神经网络可不含有隐藏层并且相当于线性回归。输入I、输出O和权重W可表示可存储在片上存储器126中的计算数据131中的一些。在一个示例中,权重W可被存储为片上存储器126上的计算数据131,以及输入I可经由互连132从应用122被传送。存储器中计算电路系统71可从先前存储的权重W和新接收的输入I来计算输出O,并且输出O可经由互连132被传送回到应用122。
[0028] 由于存储器中计算电路系统71和片上存储器126两者都在相同管芯上,因此对于要执行的算术计算,计算数据131不必在管芯之间移动。相反地,存储器中计算电路系统71使用存储在相同管芯上的计算数据131来执行计算,并且然后使用互连132将结果传递到组构管芯22。
[0029] 图8图示了一示例,其中基管芯24具有按扇区布置的并且与用来执行存储器中计算算术计算的存储器中计算电路系统71集成的存储器。如所描绘的,片上存储器126可包含划分成多个存储器扇区136的存储体(memory bank),所述存储器扇区136可包含诸如扇区对齐存储器92的随机存取存储器(RAM)的专用块。扇区对齐存储器92中的一些可与存储器中计算电路系统71集成。与扇区对齐存储器92相关联的存储器中计算电路系统71可具有对应的控制器138(例如,状态机、基于指令集架构(ISA)的处理器、精简指令集计算机(RISC)处理器、或诸如此类)。控制器138可用来在扇区136和管芯22、24之间移动计算数据131。数据可被控制并且可跨各种多个存储器扇区被移动(使用互连(未示出))。数据的移动可基于例如专用演算(诸如,AI特定的算术运算)而发生。例如,控制器138可使用多个集成的扇区对齐存储器92单元和存储器中计算电路系统71来控制存储器中计算操作的序列。以这种方式,组构管芯22可将专用命令卸载到基管芯24中的存储器中计算电路系统71。
[0030] 为了图示可使用集成的扇区对齐存储器92和存储器中计算电路系统71架构来执行的一些不同专用存储器中计算演算,图9A、9B、9C、9D和9E描绘了可支持计算的各种操作(诸如收集和分散操作)序列。简而言之,收集和分散操作是两个数据传输操作,通过从给定位置读取(收集)或写入(分散)到给定位置来传输多个数据项。
[0031] 如图9A和图9B中所示,应用122(例如,可编程逻辑资源)可并发地(concurrently)将数据写入(分散)到多个存储器中计算电路系统71。分散型式可用来支持用于将专用算术计算卸载到基管芯24的数据通信(例如,命令)。在图9A中,应用122可与基管芯24进行接口,以将特定数据广播(broadcast)到基管芯24上的存储器中计算电路系统71的所有或一些数量的不同实例。这可被称为分散所有(scatter-all)操作。
[0032] 类似地,应用122可与基管芯24通信,以经由多个接口将特定的不同数据分散到存储器中计算电路系统71的多个实例,从而执行并行分散操作,如图9B中所示。以这种方式,存储器中计算电路系统71可并行地接收多个不同的数据。因此,扇区对齐存储器92、多个扇区136和管芯22、24之间的互连路径可允许存储器中计算电路系统71高效地从应用122接收分散的数据以执行扇区对齐存储器92中的演算。
[0033] 如图9C和图9D中所描绘的,存储器中计算电路系统71的多个实例可收集(和/或简化(reduce))它们的计算的数据,并且然后将数据读取到应用122。收集型式还可被用来支持用于将专用算术计算卸载到基管芯24的数据通信。在图9C中,存储器中计算电路系统71的实例的所有或一些子集可同时或顺序地将计算的数据收集(和/或简化)到应用122。这可被称为收集所有(gather-all)操作。
[0034] 类似地,存储器中计算电路系统71可收集计算的数据以经由多个接口将其传递到应用122,从而执行并行收集操作,如图9D中所示。多个接口可包含多个扇区136到应用122之间的互连路径。以这种方式,应用122可并行地(例如,至少部分同时地)从扇区136收集多组计算的数据,从而执行并行收集操作。
[0035] 如图9E中所示,操作的序列可用来支持专用存储器中计算的计算。可指示控制器138使用存储器中计算电路系统71执行操作的序列。具体地,对于一些AI应用,并且如图7中所讨论的,存储器中计算的计算可包含确定矩阵和向量的乘积。因此,对于每个存储器中计算电路系统71的控制器138可用来设置要计算的操作的序列,并使用存储器中计算电路系统71和扇区136之间的互连路径来确定乘积。例如,控制器138可设置由存储器中计算电路系统71执行的计算的序列以将由应用122发送的输入向量与存储在与存储器中计算电路系统71的不同实例相关联的存储器的不同区域中的矩阵行的集合相乘,以便确定向量和矩阵的乘积。取决于用于应用的算术计算,扇区对齐存储器92可附加地或备选地存储过滤器(filter)或过滤器系数以执行可在计算中使用的过滤。
[0036] 为了进一步图示可用于专用计算的各种顺序的操作,图10描绘了使用存储器中计算电路系统71来执行可用于张量运算(tensor operation)的存储器中计算操作。张量是可用来演算算术运算的数据结构(诸如矩阵和向量)。特别地,向量和矩阵的点积(矩阵乘法)可用于深度学习或训练算法。因此,依赖于张量运算的应用(诸如训练算法(例如,机器学习)的AI应用)可受益于所描绘的存储器中计算架构。
[0037] 在图10中,基管芯24可含有至少一个存储体139(存储体0)且至多N个(例如,多于一个,N存储体145(存储体N))存储体。存储体139……145可被进一步划分成存储器的扇区。每个存储体139……145或存储器的细分(例如,扇区对齐存储器92)可具有对应的控制器
138。如所描绘的,扇区对齐存储器92可包含计算数据131,所述计算数据131可包含用来计算向量和矩阵的点积的数据。例如,向量可由组构管芯22上的应用122来提供,而矩阵可被存储在扇区对齐存储器92中并因此由扇区对齐存储器92来提供。在其它实现中,向量可由来自不同的存储体或扇区的不同扇区对齐存储器92来提供。
[0038] 如先前所讨论的,控制器138可控制存储器中计算电路系统71以执行算术计算。在该示例中,存储器中计算电路系统71被操作作为点积引擎(dot product engine)(DPE)142。点积引擎142可计算存储在扇区对齐存储器91中和/或由其它存储体/扇区或应用122接收的向量和矩阵的点积。如所示出的,点积引擎142还可将来自应用122的输入数据146(Din)接收到输入写入器143。输入写入器143可在广播或并行的架构中将数据分散或写入到点积引擎142,如参考图11A和11B所描述的。
[0039] 在数据由点积引擎142接收和/或点积已经被计算之后,点积引擎142可将计算的数据发送到扇区对齐存储器92以存储数据用于未来的使用或附加的计算。附加地或备选地,点积引擎142可将计算的数据发送到累加器148。累加器148可将来自点积引擎142的计算的数据进行累加并将数据发送到输出读取器141。输出读取器141可使用简化器(reducer)149在简化或并行的架构中将数据收集或读取到应用122,如图11A和11B中所描述的。简化器149可将来自点积引擎142的累加的部分计算的数据组合成最终数据输出147(Dout)。累加器148还可将累加的计算的数据发送到输入写入器143,所述输入写入器143然后可基于用来演算张量计算的操作的序列将累加的计算的数据写入到存储体N 145、扇区对齐存储器92、和/或点积引擎142。
[0040] 为了图示可使用上面描述的存储器中计算架构所执行的点积操作的类型,图11A示出了用来执行矩阵运算(matrix operation)的计算的序列以及图11B示出了用来执行卷积运算的计算的序列。在图11A中,可同时将多个向量从应用122发送到基管芯24。如所示出的,基管芯24存储器可被分组为诸如第一扇区150(扇区0)和第二扇区152(扇区1)的多个扇区136。应用122可将第一向量输入154(Vi0)发送到第一扇区0对齐存储器158和第二扇区0对齐存储器159。应用还可将第二向量输入(Vi1)发送到第一扇区1对齐存储器160和第二扇区1对齐存储器161。扇区0对齐存储器158、159和扇区1对齐存储器160、161可已经存储诸如第一矩阵162(M0)和第二矩阵164(M1)的矩阵数据。
[0041] 因此,对应于扇区0对齐存储器158、159的点积引擎142可计算第一向量输入154和第一矩阵162的乘积以及第一向量输入154和第二矩阵164的乘积以确定M0,0和M0,1。这些部分计算可被累加器144收集或累加,以及使用上面描述的技术被简化,并且被读取到应用122以便被存储为部分和:第一向量输出166 Vo0。类似地,对应于扇区1对齐存储器160、161的点积引擎142可计算第二向量输入156和第一矩阵162的乘积以及第二向量输入156和第二矩阵164的乘积以确定M1,0和M1,1。由点积引擎142执行的这些部分计算可被累加器144收集或累加,并且然后被简化到最终值(例如,部分向量输入或输出),并且被读取到应用122以便被存储为部分和:第二向量输出168 Vo1。可将第一和第二向量输出Vo0和Vo1相加以确定向量输出Vo。
[0042] 如图11B中所示,图11A的相同存储器中计算架构还可用来执行诸如卷积运算的其它张量运算。可用与图11A中描述的顺序过程类似的方式来执行卷积运算(例如,对应于扇区对齐存储器的点积引擎142,所述点积引擎142可用来确定部分张量积)。如所示出的,输入特征图(input feature map)(IFM)170可将输入从应用122发送到点积引擎142。扇区对齐存储器172、174、176、178可存储可由点积引擎142用于卷积计算的函数f1和f2。计算可使用上面描述的技术被累加器144收集和简化,并且被读取到应用122以便被存储为部分特征图,诸如第一输出特征图180(OFM1)和第二输出特征图182(OFM2。应用122可使用部分特征图180、182来确定对于卷积运算的整体输出特征图。
[0043] 可由用户或应用122指示控制器138来执行跨存储器扇区的不同部分操作,诸如用于图11A的矩阵/向量计算或图11B的卷积计算的操作。因此,存储器中计算架构可用来执行各种复杂的数学运算(mathematical operation),诸如用于AI应用的那些数学运算。计算的数据可被发送到应用122,应用122然后可执行特定的处理操作(例如,AI操作),诸如激活函数(activation function)、数学变换、数据格式转换、预处理、后处理、输入、和/或输出网络、或诸如此类。
[0044] 虑及前述内容并且为了促进说明,图12中的过程流程图200图示了存储器中计算电路系统71执行存储器中计算算术计算。可通过电路设计来配置(块202)组构管芯22。例如,可用定义加速器功能(例如,人工神经网络)的应用来配置组构管芯22。另外,可初始化(块204)基管芯24上的存储器中计算电路系统71,所述初始化可包含将与加速器功能相关联的计算数据(例如,权重、矩阵、或诸如此类)存储在基管芯24上的存储器中。存储器中计算电路系统71可对来自组构管芯22上的电路设计的数据进行操作(块206),所述操作可包含执行可用来确定总和或乘积的部分和或乘积。例如,不同存储器扇区中的存储器中计算电路系统71的多个实例可为矩阵和向量运算(vector operation)提供部分和,如图11A中所描述的。附加地或备选地,存储器中计算电路系统71可取决于算术计算的类型在特定型式(例如,收集或分散)中操作和输送数据,如图11A-11B中所描述的。结果可被发送以用于存储到扇区对齐存储器92和/或可被发送到组构管芯22。
[0045] 可编程逻辑装置12可以是数据处理系统,或者可以是数据处理系统的组件。例如,图13中示出,可编程逻辑装置12可以是数据处理系统220的组件。数据处理系统220包含主机处理器222、存储器和/或存储电路系统224、以及网络接口226。数据处理系统220可包含更多或更少的组件(例如,电子显示器、用户接口结构、专用集成电路(ASIC))。主机处理器222可包含任何合适的处理器,诸如可管理对于数据处理系统220的数据处理请求(例如,以便执行机器学习、视频处理、语音识别、图像识别、数据压缩数据库搜索排序、生物信息学、网络安全型式标识、空间导航、或诸如此类)的Intel® Xeon®处理器或精简指令处理器(例如,精简指令集计算机(RISC)、高级RISC机器(ARM)处理器)。存储器和/或存储电路系统
224可包含随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器、闪速存储器、或诸如此类。存储器和/或存储电路系统224可被认为是对于可编程逻辑装置12的外部存储器并且可保存要由数据处理系统220处理的数据。在一些情况中,存储器和/或存储电路系统224还可存储用于对可编程逻辑装置12进行编程的配置程序(比特流)。网络接口226可允许数据处理系统220与其它电子装置进行通信。数据处理系统220可包含若干不同的封装或者可被包含在单个封装衬底上的单个封装内。
[0046] 在一个示例中,数据处理系统220可以是处理各种不同请求的数据中心的部分。例如,数据处理系统220可经由网络接口226接收数据处理请求以执行机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排序、生物信息学、网络安全型式标识、空间导航、或某个其它专业化的任务。主机处理器222可使得可编程逻辑装置12的可编程逻辑组构通过与所请求任务相关的特定加速器而被编程。例如,主机处理器222可指示存储在存储器/存储装置224上的或缓存在可编程逻辑装置12的扇区对齐存储器中的配置数据(比特流)要被编程到可编程逻辑装置12的可编程逻辑组构中。配置数据(比特流)可表示用于与所请求的任务相关的特定加速器功能的电路设计。由于可编程逻辑组构的高密度、大量的扇区对齐存储器与可编程逻辑组构的接近性、或者本文中描述的可编程逻辑装置12的其它特征,可编程逻辑装置12可快速地协助数据处理系统220执行所请求的任务。实际上,在一个示例中,加速器可通过使用扇区对齐存储器在加速器中快速访问和处理大量的数据来协助小于几毫秒(例如,大约几微秒)的语音识别任务。
[0047] 本公开提供了以下技术方案:技术方案1.一种集成电路装置,包括:
部署在第一集成电路管芯上的可编程逻辑电路系统,其中所述可编程逻辑电路系统包括可编程逻辑电路系统的第一区域,其中可编程逻辑电路系统的所述第一区域被配置成通过对数据的第一集合进行操作的电路设计而被编程;以及
部署在第二集成电路管芯上的存储器电路系统,其中所述存储器电路系统包括存储器的第一区域和第一存储器中计算电路系统,其中所述第一存储器中计算电路系统被配置成使用来自所述可编程逻辑电路系统的数据的所述第一集合和存储在存储器的所述第一区域中的数据的第二集合来执行算术运算。
[0048] 技术方案2.如技术方案1所述的集成电路装置,其中可编程逻辑电路系统的所述第一区域与存储器的所述第一区域对齐。
[0049] 技术方案3.如技术方案1所述的集成电路装置,其中所述第一集成电路管芯和所述第二集成电路管芯是3D堆叠的并且通过互连而被通信地耦合。
[0050] 技术方案4.如技术方案1所述的集成电路装置,其中存储器的所述第一区域包括与所述第一存储器中计算电路系统相关联的第一子区域和与第二存储器中计算电路系统相关联的第二子区域。
[0051] 技术方案5.如技术方案1所述的集成电路装置,其中存储器的所述第一区域包括多个子区域和多个对应的存储器中计算电路系统单元。
[0052] 技术方案6.如技术方案5所述的集成电路装置,其中数据的所述第一集合被广播到所述多个存储器中计算电路系统单元。
[0053] 技术方案7.如技术方案5所述的集成电路装置,其中数据的所述第二集合从所述多个存储器中计算电路系统单元被收集。
[0054] 技术方案8.如技术方案7所述的集成电路装置,其中当使用所述多个存储器中计算电路系统单元来计算张量运算时,数据的所述第二集合被简化以形成部分和。
[0055] 技术方案9.如技术方案8所述的集成电路装置,其中所述部分和在矩阵和向量运算中被使用。
[0056] 技术方案10.如技术方案5所述的集成电路装置,其中数据的所述第二集合被并行地从所述多个存储器中计算电路系统单元同时收集。
[0057] 技术方案11.如技术方案5所述的集成电路装置,其中所述存储器中计算电路系统单元包括点积引擎和累加电路系统。
[0058] 技术方案12.如技术方案4所述的集成电路装置,其中所述第一子区域包括控制所述第一存储器中计算电路系统的第一控制器以及所述第二子区域包括控制所述第二存储器中计算电路系统的第二控制器。
[0059] 技术方案13.一种或多种有形的非暂态机器可读介质,所述机器可读介质包括由一个或多个处理器可执行的机器可读指令,其中所述指令包括用于执行以下操作的指令:通过第一电路设计来配置第一管芯的可编程逻辑电路系统;以及
初始化与所述第一管芯通信的第二管芯的存储器电路系统,其中所述第二管芯的所述存储器电路系统包括存储器中计算电路系统,其中初始化所述存储器电路系统包括将与所述第一电路设计相关联的计算数据加载到所述第二管芯的所述存储器电路系统中。
[0060] 技术方案14.如技术方案13所述的机器可读介质,包括用于在所述可编程逻辑电路系统上运行所述第一电路设计的指令,其中运行所述第一电路设计包括:将输入数据从所述第一管芯传送到所述第二管芯;
使得算术运算使用所述输入数据和所述计算数据在所述第二管芯的所述存储器电路系统的所述存储器中计算电路系统上被执行以生成输出数据;以及
将所述输出数据从所述第二管芯传送到所述第一管芯。
[0061] 技术方案15.如技术方案13所述的机器可读介质,其中所述算术运算包括点积运算、累加运算、矩阵运算、向量运算、卷积运算、或其组合。
[0062] 技术方案16.如技术方案13所述的机器可读介质,其中:所述第一电路设计包括过滤功能;以及
与所述第一电路设计相关联的所述计算数据包括一个或多个过滤器系数。
[0063] 技术方案17.如技术方案13所述的机器可读介质,其中:所述第一电路设计包括人工神经网络功能;以及
与所述第一电路设计相关联的所述计算数据包括一个或多个神经网络权重。
[0064] 技术方案18.一种数据中心系统,包括:集成电路,所述集成电路包括:
第一区域,所述第一区域包括能通过对数据的第一集合进行操作的电路设计被配置的可编程逻辑电路系统;以及
第二区域,所述第二区域包括存储器电路系统,其中所述存储器电路系统包括配置成使用数据的所述第一集合和存储在所述存储器电路系统中的数据的第二集合来执行算术运算的集成的存储器中计算电路系统;以及
处理器,所述处理器配置成使得所述集成电路的所述第一区域通过所述电路设计而被配置。
[0065] 技术方案19.如技术方案18所述的数据中心系统,其中所述处理器被配置成通过使得数据的所述第二集合被加载到所述存储器电路系统中来初始化所述存储器电路系统。
[0066] 技术方案20.如技术方案18所述的数据中心系统,其中所述第一电路设计包括人工智能(AI)应用,其中所述存储器中计算电路系统的所述算术运算的结果被配置成被发送到所述第一区域,以及其中所述第一区域上的所述第一电路设计的所述人工智能应用被配置成执行包括激活函数、变换、数据格式转换、预处理、后处理或其组合的专用过程。
[0067] 本公开的方法和装置可被结合到任何合适的电路中。例如,所述方法和装置可被结合到诸如微处理器或其它集成电路的许多类型的装置中。示例性集成电路包含可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑装置(EPLD)、电可擦除可编程逻辑装置(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC)和微处理器(仅举出少许示例)。
[0068] 此外,尽管已经以特定顺序描述了方法操作,但是应理解,可在描述的操作之间执行其它操作,可调整描述的操作使得它们在稍微不同的时间发生,或者描述的操作可被分布在允许处理操作发生在与处理相关联的各种间隔(只要上层(overlying)操作的处理按照期望的被执行)的系统中。
[0069] 本公开中阐述的实施例可容易经受各种修改和备选形式,具体实施例已经通过附图中的示例被示出并且已经在本文中被详细描述。然而,可理解的是,本公开并非旨在被限于所公开的特定形式。本公开要覆盖落入如以下所附权利要求所限定的本公开的精神和范围内的所有修改、等同(equivalent)和替代(alternative)。此外,本文中提出和要求权利的技术被引用并应用于实际性质的材料对象和具体示例,其显然改进了本技术领域,并且因此不是抽象的、无形的或纯理论的。此外,如果附加到本说明书末尾的任何权利要求含有被指定为“用于[执行][功能]……的部件”或“用于[执行][功能]……的步骤”的一个或多个元素,则旨在要根据35 U.S.C. 112(f)来解释此类元素。然而,对于含有以任何其它方式指定的元素的任何权利要求,旨在不要根据35 U.S.C. 112(f)来解释此类元素。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈