可左右滑动选省市

用可配置器件卸载计算任务以提高系统性能的方法和装置

更新时间:2024-10-01
用可配置器件卸载计算任务以提高系统性能的方法和装置 专利申请类型:实用新型专利;
地区:广东-广州;
源自:广州高价值专利检索信息库;

专利名称:用可配置器件卸载计算任务以提高系统性能的方法和装置

专利类型:实用新型专利

专利申请号:CN202110745288.5

专利申请(专利权)人:广东高云半导体科技股份有限公司
权利人地址:广东省广州市黄埔区科学大道243号A5栋10楼1001房

专利发明(设计)人:格兰特·托马斯·詹宁斯,朱璟辉,王添平,曹捷

专利摘要:本申请涉及用可配置器件卸载计算任务以提高系统性能的方法和装置。方法和/或装置能支持FPGA使用者/客户解析嵌入式硬件且转换存储器分配以便于任务卸载来提高整体系统性能。一方面,RAM的分配和吞吐量是可调的且存储器控制器内用于缓冲数据的专用直接存储器访问可根据可用FPGA资源调整性能。系统可配置为机器学习处理器的专用存储器接口用于更快、更高效的处理(超过处理器共享)。应当注意,有能加载/卸载机器学习处理器架构的好处是开发人员/用户无需编写代码。在实施例中,微处理器由MCU的状态机控制用于卸载任务和协同处理任务。机器学习处理器配置为完全进行神经网络处理。微处理器可同时进行传感器数据前端预处理和神经网络处理。

主权利要求:
1.一种RAM分配和吞吐量优化的方法,所述方法包括:
在存储器控制器中提供可调的专用直接存储器访问和缓冲存储器,以允许根据FPGA资源调整性能;以及提供机器学习处理器的专用存储器接口,以实现更快、更高效的处理。
2.一种用于卸载和协同处理计算任务的系统,所述系统包括:微处理器,其中所述微处理器作为机器学习处理器被配置为独立进行神经网络处理;

微控制器单元,其中所述微控制器单元被配置为通过其状态机控制所述微处理器,从而同时进行传感器数据前端预处理与神经网络处理;
其中,所述微处理器包括RAM层和ROM控制器,其中所述RAM层中具有可调的专用直接存储器访问和缓冲存储器以允许根据FPGA资源调整性能,以及其中所述ROM控制器被配置成为所述神经网络处理保存层系数;以及其中从所述ROM控制器和所述RAM层的数据读取能够通过所述微控制器单元的状态机同时启动。
3.一种用于根据权利要求2所述的系统的方法,所述方法包括:接收输入数据并将所述输入数据缓存到所述系统的数据缓冲区中;
由所述系统的微控制器单元,通过直接存储器访问或寄存器映射控制,将所述输入数据加载到所述机器学习处理器的RAM层中;
由所述机器学习处理器独立对所述输入数据进行神经网络处理以得到处理结果;以及将所述处理结果从所述机器学习处理器读取到所述微控制器单元以基于所述处理结果控制所述系统的其他部分。
4.根据权利要求3所述的方法,其中,所述输入数据在所述机器学习处理器的机器学习计算机与所述RAM层间来回传递,以进行所述神经网络处理。
5.根据权利要求3所述的方法,还包括:通过所述微控制器单元的状态机同时启动从所述ROM控制器和所述RAM层读取数据。
6.根据权利要求5所述的方法,其中所述RAM层包括伪静态随机存取存储器控制器,并且所述ROM控制器包括串行外设接口控制器。
7.根据权利要求3所述的方法,其中所述输入数据包括来自以下中至少一项的输入:摄像机、麦克风和惯性测量单元。
8.根据权利要求7所述的方法,其中所述输入数据包括来自麦克风的音频数据,所述方法还包括由所述微控制器单元将所述音频数据转化为声谱图数据并将所述声谱图数据输入到单独的所述机器学习处理器中进行神经网络处理。
9.根据权利要求8所述的方法,其中,将所述音频数据转化为声谱图数据的操作与对声谱图数据进行神经网络处理的操作并行进行,从而实现对连续音频数据流的处理。 说明书 : 用可配置器件卸载计算任务以提高系统性能的方法和装置技术领域[0001] 本发明的示例性实施例涉及使用半导体器件的人工智能、机器学习和神经网络领域。更具体地说,本发明的示例性实施例涉及卸载或重新分配任务给器件和/或现场可编程门阵列(Field‑ProgrammableGateArray,FPGA)。背景技术[0002] 随着数字通信、人工智能(ArtificialIntelligence,AI)、机器学习、神经网络、物联网(InternetofThings,IoT)和/或机器人控制的日益普及,对高效快速、并具有处理能力的硬件和半导体的需求与日俱增。要满足这种需求,一般来说,高速、灵活的半导体芯片更适合。满足这种需求的现有方式是使用专用定制集成电路和/或特殊应用集成电路(Application‑SpecificIntegratedCircuit,ASIC)。特殊应用集成电路方法的一个缺点在于缺乏灵活性,同时消耗大量资源。[0003] 例如,AI是机器(尤指计算机系统)模仿人类智能的过程。AI的特殊应用包括专家系统、自然语言处理(NaturalLanguageProcessing,NLP)、语音识别以及机器视觉。机器学习定义为能通过经验自动改进的计算机算法的研究。机器学习也可视为人工智能的一个子集。神经网络是大致模仿人脑,能够进行模式识别的一组算法。神经网络实质上通过一种机器感知解释传感器数据,标记或聚类原始输入。[0004] 传统的方法使用专用的定制集成电路和/或特殊应用集成电路(ASIC)来实现期望功能。特殊应用集成电路方法的缺点在于普遍价格高昂且灵活性有限。另一种日益流行的方法是利用可编程半导体器件(ProgrammableSemiconductorDevice,PSD),如可编程逻辑器件(ProgrammableLogicDevice,PLD)或现场可编程门阵列(FPGA)。例如,终端用户可以对可编程半导体器件进行编程,以执行期望功能。发明内容[0005] 本申请的一个实施例公开一种方法或装置,该方法或装置能使FPGA使用者/客户解析嵌入式硬件,并且能转换存储器分配以进行任务卸载,从而提高整体系统性能。一方面,随机存取存储器(Random‑AccessMemory,RAM)的分配和吞吐量是可调的,并且存储器控制器内用于缓冲数据的专用直接存储器访问(DirectMemoryAccess,DMA)允许根据可用的FPGA资源调整性能。例如,该系统可配置为机器学习处理器的专用存储器接口,用于更快、更高效的处理(超过处理器共享)。值得注意的是,拥有一个能加载/卸载机器学习处理器的架构的好处是开发人员/用户无需编写代码。在一个实施例中,微处理器由微控制器单元(MicrocontrollerUnit,MCU)的状态机控制,用于卸载任务和协同处理任务。机器学习处理器被配置为用来完全进行神经网络处理。例如,微处理器允许同时进行传感器数据前端预处理和神经网络处理。[0006] 通过下面阐述的详细描述、附图和权利要求,本发明示例性实施例的其他特征和优点将显而易见。附图说明[0007] 通过以下详细描述和本发明的各种实施例附图,将更充分理解本发明的示例性实施例,然而,这些附图不应被用来将本发明限定到具体的实施例,这些附图仅用于解释和理解本发明实施例。[0008] 图1A‑1B是根据本发明的一个实施例示出的包括AI管理的可编程半导体器件(PSD)或可编程集成电路(ProgrammableIntegratedCircuit,PIC)框图。[0009] 图2是根据本发明的一个实施例示出的布线逻辑或布线结构框图,该布线逻辑或布线结构包括含有AI数据的可编程互连阵列。[0010] 图3是根据本发明的一个实施例示出的使用一个或更多个包括AI管理的可编程半导体器件的系统或计算机的图示。[0011] 图4是根据本发明的一个实施例示出的在云环境中使用的包括AI管理的可编程半导体器件的各种应用的框图。[0012] 图5A‑5C是根据本发明的一个实施例示出的声谱图+加速器协同处理架构的框图。[0013] 图6是根据本发明的一个实施例示出的用于检测/推理的神经网络加速器+处理器架构的框图。[0014] 图7是根据本发明的一个实施例示出的机器学习系统的框图。[0015] 图8是根据本发明的一个实施例示出的有关机器学习软件开发平台Tensorflow的示意图。[0016] 图9是根据本发明的一个实施例示出的从Tensorflow转换到FPGA的示意图。[0017] 图10是根据本发明的一个实施例示出的、用于检测/推理的机器学习处理器架构以及它所提供的从系统CPU/MCU进行卸载的方式的示意图。具体实施方式[0018] 本发明的实施例公开了一种用于提供能提供AI管理的可编程半导体器件(PSD)的方法和/或装置。[0019] 以下详细描述的目的是提供对本发明的一个或更多个实施例的理解。本领域的普通技术人员会意识到,以下详细描述仅是说明性的,并不意在以任何方式加以限制。受益于本文公开内容和/或描述的技术人员很容易联想到其它实施例。[0020] 为清楚起见,本文所述实施方式的常规功能并没有全部展示和描述。当然,可以理解,在任何这种实际实施方式的开发过程中,为了实现开发者的特定目标,例如遵守应用程序相关和商业相关的限制,可能会做出许多特定于实施方式的决定,而且这些特定目标会因不同的实施方式和不同的开发者而有所不同。此外,可以理解,这些开发工作虽然可能复杂耗时,但对于那些受益于本文公开实施例的本领域普通技术人员而言,这些开发工作只是一项常规的工程工作。[0021] 附图中所示的本发明的各种实施例并非按比例绘制。相反,为清楚起见,可以扩大或缩小各种特征的尺寸。此外,为清楚起见,一些图样可能会被简化。因此,附图中可能没有描绘出给定装置(如设备)或方法的所有组件。在整个附图和下面的详细描述中将使用相同的参考标记指代相同或类似的部件。[0022] 根据本发明的实施例,本文描述的组件、过程步骤和/或数据结构可以使用各种类型的操作系统、计算平台、计算机程序和/或通用机器来实现。此外,本领域的普通技术人员会认识到,在不偏离本文所公开的发明概念的范围和精神的情况下,也可以使用不那么通用的设备,例如硬件设备、现场可编程门阵列(FPGA)、特殊应用集成电路(ASIC)等。如果包含一系列过程步骤的方法是由计算机或机器实现的,并且这些过程步骤可以存储为机器可读的一系列指令,则它们可以存储在诸如计算机存储设备等的有形介质上,例如但不限于:磁性随机存取存储器(MagnetoresistiveRandomAccessMemory,MRAM)、相变存储器或铁电随机存取存储器(FerroelectricRandomAccessMemory,FeRAM)、闪存(FlashMemory)、只读存储器(ReadOnlyMemory,ROM)、可编程只读存储器(ProgrammableRead‑OnlyMemory,PROM)、电可擦可编程只读存储器(ElectricallyErasableProgrammableRead‑OnlyMemory,EEPROM)、跳跃驱动器(JumpDrive)、磁性存储介质(例如:磁带、磁盘驱动器等)、光存储介质(例如:只读光盘存储器(CD‑ROM)、数字只读光盘存储器(DVD‑ROM)、纸卡和纸带等)以及其他已知类型的程序存储器。[0023] 术语“系统”或“设备”在本文一般用于描述任何数量的组件、元件、子系统、设备、分组开关元件、分组开关、接入开关、路由器、网络、计算机和/或通信设备或机构,或其组成部分的组合。术语“计算机”包括能够执行指令的处理器、存储器和总线,其中计算机是指一台或一个集群的计算机、个人计算机、工作站、主机或其计算机的组合。[0024] 本申请的一个实施例公开一种方法或装置,该方法或装置能使FPGA使用者/客户解析嵌入式硬件,并且能转换存储器分配以进行任务卸载,从而提高整体系统性能。一方面,随机存取存储器(RAM)的分配和吞吐量是可调的,并且存储器控制器内用于缓冲数据的专用直接存储器访问(DMA)允许根据可用的FPGA资源调整性能。例如,该系统可配置为机器学习处理器的专用存储器接口,用于更快、更高效的处理(超过处理器共享)。值得注意的是,拥有一个能加载/卸载机器学习处理器架构的好处是开发人员/用户无需编写代码。在一个实施例中,微处理器由微控制器单元(MCU)的状态机控制,用于卸载任务和协同处理任务。机器学习处理器被配置为用来完全进行神经网络处理。例如,微处理器可同时进行传感器数据前端预处理和神经网络处理。[0025] 在本申请中,专用直接存储器访问和缓冲存储器是指机器学习处理器可以直接访问存储器,不需要微控制单元控制,微控制单元可以并行处理其他事情,而不会受到机器学习处理器访问存储器的干扰。[0026] 人工智能、机器学习以及神经网络专利提案1.声谱图(spectrogram)+加速器协同处理概念/架构,加速器卸载/处理器释放存储器以进行其他任务[0027] 图5A‑5C是根据本发明的一个实施例示出的声谱图+加速器协同处理架构的框图。神经网络会占用大量计算能力,消耗系统中主要的CPU资源。因此,一个设计用于卸载神经网络的密集计算功能的单独计算单元可以为与机器学习/神经网络相关的特殊计算应用功能提供更好、更高效的方法,而CPU则用于进行其他处理和控制操作。[0028] 例如,使用神经网络检测短语时,音频数据通常先由基于时间/基于振幅的数据转化为声谱图。然后,声谱图输入到神经网络。在一个独立CPU/MCU上,这是一个顺序进程;CPU/MCU首先计算声谱图,然后处理神经网络(如图5B所示)。然而,CPU/MCU可能无法足够快地缓冲并处理声谱图和神经网络,以至于无法及时处理所有音频数据。因此,系统可能需要在进程间丢弃数据。[0029] 另一种选择是将神经网络卸载到一个单独的计算单元(如图5C中所示的神经网络处理器)进行处理,同时使用CPU/MCU并行处理下一组音频声谱图数据。这样处理连续音频数据流更加容易。[0030] 2.加速器+处理器架构(使用第一数据表,投稿)[0031] 例如,参见图6,这一提案涉及我们用于检测/推理的神经网络加速器架构以及它所提供的从系统CPU/MCU进行卸载的方式。[0032] 输入数据首先进入数据缓冲区。这就提供了一种方式,能在处理器进行其他系统功能操作时,保存传感器数据。[0033] 接下来,系统处理器(图示中的MCU)通过DMA或寄存器映射控制,将输入传感器数据加载到神经网络加速器中,并将其加载到RAM层(如图6中所示的伪静态随机存取存储器(PseudoStaticRandomAccessMemory,PSRAM)控制器)。[0034] 神经网络模型中的每一层都由系统处理器配置,并由加速器逐一计算。层数据(layerdata)在机器学习(ML)计算机与加速器中的RAM层间来回传递。除非为了调试,加速器无需关闭。一个单独的只读存储器(ROM)控制器(如图6中所示的串行外设接口(SerialPeripheralInterface,SPI)控制器)为神经网络中的每个滤波器保存层系数。[0035] 层数据可以通过神经网络模型的最后一层的存储器映射,从神经网络加速器内的RAM层读取到系统处理器,以确定结果。该过程能重新开始检测/推理另一组数据。系统处理器几乎完全卸载,从而能够在神经网络加速器进行机器学习处理时处理该系统中的其他计算任务。作为一个示例,该系统处理器是微控制器单元(MCU)。[0036] 3.卷积/池化的存储器接口和吞吐量优化[0037] 对机器学习而言,卷积和池化算法会消耗大量存储器内存和吞吐量。因此,为了达到最佳吞吐量,例如图6所示的架构的专用存储器访问具有重要意义。状态机同时启动从系数ROM和输入数据RAM读取数据,这也可以提高吞吐量。[0038] 一个状态机(例如图6中所示的数据流量控制器)可以启动读取,处理等待时间,并且识别数据何时准备好进行计算,这使得优化存储器接口的性能更加容易,而无需不断更新系统其他部分。[0039] 拥有独立缓冲存储器和DMA的控制器允许在可用的内部缓冲存储器和所需的吞吐量之间进行权衡。[0040] 4.板组件级系统机器学习“母版”概念[0041] 图7是根据本发明的一个实施例示出的机器学习系统的框图。机器学习系统可以由一个使用MCU、FPGA以及内部或外部RAM和闪存的处理集成电路(IntegratedCircuit,IC)组成。该系统可以接收各种传感器的输入,如摄像机、麦克风或惯性测量单元(InertialMeasurementUnit,IMU)的输入等,并通过FPGA或简易接口与数据缓冲进行连接。机器学习的处理结果可以发送回控制MCU,以基于该结果去控制系统的其他部分。[0042] 5.设计流程(tflite文件、strip系数、strip命令、转换成二进制硬件到比特流然后合并)[0043] 从Tensorflow转换到FPGA:[0044] 图8是根据本发明的一个实施例示出的有关机器学习软件开发平台Tensorflow的示意图。Tensorflow是一个非常常见的机器学习软件开发平台。Tensorflow包括软件开发套件“TensorflowLite”以及“适用于微控制器的TensorflowLite”。Tensorflow优化并量化训练好的机器学习模型,生成C代码,用于在微控制器上部署训练好的模型。来自Tensorflow的训练好的模型文件称为“flatbuffers”文件或“*.tflite”文件。[0045] 图9是根据本发明的一个实施例示出的从Tensorflow转换到FPGA的示意图。要在FPGA中为定制的机器学习处理器或专用的神经网络架构使用flatbuffers文件,可以开发一个软件脚本,以从flatbuffers文件中除去(strip)信息并将其用于其他目的。如图9所示,该模型信息本身可以被提取。同时,系数可以被提取用于模型层的权重和偏置。然后,模型信息和系数可用来加载到任何定制的机器学习处理单元中。[0046] 可以从flatbuffers文件的信息中解析其系数。系数可存储于嵌入式硬件平台的闪存中。每一层的参数都会以数组形式存储。Extern或者等效数组无需重新编译代码,即可允许每一层参数进行更新。代码中的控制回路能够加载层参数以及相应的系数的指针。如图9所示,当前层加载到寄存器映射中。然后,当MCU告诉机器学习处理器“开始”时,该层将根据该层的寄存器映射中的偏移量和参数,使用系数进行处理。该控制回路可以启动处理单元,并监视寄存器或中断,以了解层处理何时完成。然后加载下一层的参数并重新开始。[0047] 该架构的创建使得用户/开发人员无需专门为嵌入式硬件平台编写任何代码(如C语言/C++或RTL/Verilog/VHDL),因为外部变量控制MCU中运行的同一组代码。[0048] ·MCU文件——包含层参数[0049] ·系数文件——包含每层系数[0050] ·FPGA比特流——包含MCU预生成设计、机器学习处理器、寄存器映射以及传感器接口[0051] RAM分配和吞吐量[0052] 对机器学习而言,卷积和池化算法会消耗大量存储器和吞吐量。因此,为了在机器学习处理器内达到最佳吞吐量,如图6所示架构的专用存储器访问具有重要意义。状态机同时启动从系数ROM和输入数据RAM的数据读取,这也可以提高吞吐量[0053] 利用图6所示的架构,例如,SPI控制器中的缓冲存储器和共享存储集群以及PSRAM控制器中的输入缓冲存储器、输出缓冲存储器和仲裁器&共享存储集群,缓冲存储器无需修改其他设计,就可以改变大小。这提供了一种方法来权衡所使用的内存量和所需的性能,使其能够适用于各种尺寸的FPGA。[0054] 正如图6中所示的架构利用SPI和PSRAM可实现的,相较于MCU或其他系统模块来间接控制存储器,具有存储系数ROM和层计算RAM的专用存储器的机器学习加速器提供直接存储访问,有更好的吞吐量。[0055] 一个状态机(例如图6中所示的数据流量控制器)可以启动读取,处理等待时间,并且识别数据何时准备好进行计算,这使得优化存储器接口的性能更加容易,而无需不断更新系统其他部分。[0056] 拥有独立缓冲存储器和DMA的控制器允许在可用的内部缓冲存储器和所需的吞吐量之间进行权衡。[0057] 此外,存储器接口类型可以互通。例如,不同类型RAM的控制器可用于双倍速率同步动态随机存取存储器(DDRSDRAM,DoubleDataRateSynchronousDynamicRandomAccessMemory)、HyperRAM、静态随机存取存储器(StaticRandom‑AccessMemory,SRAM)、FPGA块RAM以及FPGA的其它内部和外部存储器。[0058] 使用低引脚数的存储器对可扩展性非常重要,例如,由于成本和尺寸,HyperRAM对于边缘聚焦的FPGA非常有用,可以提高整体器件效率。[0059] 微处理器卸载和协同处理:[0060] 例如,参见图10,这一提案涉及我们用于检测/推理的机器学习处理器架构以及它所提供的从系统CPU/MCU进行卸载的方式。[0061] 1.输入数据首先进入数据缓冲区。这就提供了一种方式,能在处理器进行其他系统功能操作时,保存传感器数据。[0062] 2.接下来,系统处理器(图示中的MCU)通过DMA或寄存器映射控制,将输入传感器数据加载到机器学习处理器中,并将其加载到RAM层(例如,图6、图10中所示的PSRAM控制器)。[0063] 3.神经网络模型中的每一层都由系统处理器配置,并由机器学习处理器逐一计算。层数据在机器学习计算机与机器学习处理器中的RAM层间来回传递。除非为了调试,机器学习处理器无需关闭。一个单独的只读存储器(ROM)控制器(如图6、图10中所示的SPI控制器)为神经网络中的每个滤波器保存层系数。[0064] 4.层数据可以通过神经网络模型的最后一层的存储器映射,从机器学习处理器内的RAM层读取到系统处理器,以确定结果。[0065] 该过程能重新开始检测/推理另一组数据。该系统处理器几乎完全卸载,从而能够在机器学习处理器进行机器学习处理时处理该系统中的其他计算任务。[0066] 使用专用机器学习处理器和MCU进行协同处理:[0067] 一些协同处理/加速方法只能提高计算密集型元件本身的性能。例如参见图10,本架构的不同之处在于神经网络的所有处理活动都在机器学习处理器中进行。这意味着层与层之间的MCU完全释放存储器,以进行其他任务。这对于嵌入式实时应用很重要,因为传感器数据往往需要进行预处理,以便准备好数据进行神经网络处理。因此,本系统能在机器学习处理器处理当前这一组数据时,使用MCU对下一组要处理的数据进行预处理。在本申请的一种示例性实施例中,本系统可以是SoC系统,其包括FPGA和MCU。该FPGA所实现的机器学习处理器作为能卸载和协同处理的微处理器。[0068] 例如,使用神经网络检测短语时,音频数据通常先由基于时间/基于振幅的数据转化为声谱图。然后,声谱图输入到神经网络。在独立CPU/MCU上,这是一个顺序进程;CPU/MCU首先计算声谱图,然后处理神经网络。即,再次参见图5B,其中的“1.处理声谱图”与“2.处理神经网络”在不同的时间进行处理)。然而,CPU/MCU可能无法足够快地缓冲并处理声谱图和神经网络,以至于无法及时处理所有音频数据。因此,系统可能会在进程间丢弃数据。[0069] 另一种选择是将神经网络卸载到一个单独的计算单元进行处理,同时使用CPU/MCU并行处理下一组音频声谱图数据。再次参见图5C,其中的声谱图处理与神经网络处理器的处理可同时进行。这样处理连续音频数据流就更加容易。[0070] 与本申请一起提交的附图列出了其他公开内容。[0071] FPGA或PSD概述[0072] 图1A是根据本发明的一个实施例示出的PSD的框图170,该PSD包括用于提高性能的AI管理。PSD又称FPGA或一种PLD,包括用于提高性能的AI管理过程。应当注意,向框图170添加或从框图170中移除一个或更多个块(电路或元件),本发明示例性实施例的基本概念也不会改变。[0073] PSD包括由输入/输出块182环绕的可配置逻辑块(LogicBlock,LB)180,和可编程互连资源(ProgrammableInterconnectResource,PIR)188,该PIR包括在LB180和输入/输出块182的行和列之间延伸的垂直互连和水平互连。PIR188还包括互连阵列解码器(InterconnectingArrayDecoder,IAD)或可编程互连阵列(PIA)。应当注意,术语“PIR”、“IAD”、和“PIA”在下文中可互换使用。[0074] 在一个示例中,每个LB包括可编程组合电路和可选择输出寄存器,该可选择输出寄存器被编程为实现至少一些用户逻辑功能。可编程互连、连接或通道的互连资源使用各种开关配置,以在LB180之间产生用于执行逻辑功能的信号路径。每个IO182都是可编程的,以选择性地使用PSD的一个I/O引脚(未示出)。[0075] 在一个实施例中,PSD可以被划分为多个可编程分区区域(ProgrammablePartitionedRegion,PPR)172,其中每个PPR172包括一部分LB180、一些PIR188以及IO182。将PSD组织成多个PPR172的优点是优化存储容量、电源和/或网络输出的管理。[0076] 比特流是一个二进制序列(或文件),包含用于FPGA或PLD的编程信息。比特流的创建是为了反映用户的逻辑功能和某些控制信息。为了使FPGA或PLD正常工作,至少需要对FPGA中的一部分寄存器或触发器进行编程或配置,然后才能工作。[0077] 图1B是根据本发明的一个实施例示出的PSD/PIC的框图100,该PSD或PIC包括嵌入式AI管理模块。为简化上述讨论,术语“PSD”、“PIC”、“FPGA”、和“PLD”均指相同或相似的器件,在下文中可互换使用。框图100包括多个PPR102‑108(102、104、106、108)、PIA150和区域I/O端口166。PPR102‑108(102、104、106、108)还包括控制单元110、存储器112以及LB116。需要注意的是,控制单元110可配置成单个控制单元,同样,存储器112也可配置成单个存储器以存储配置。应当注意,向框图100添加或从框图100中移除一个或更多个块(电路或元件),本发明示例性实施例的基本概念也不会改变。[0078] LB116也称为可配置功能单元(ConfigurableFunctionUnit,CFU),包括多个逻辑阵列块(LogicArrayBlock,LAB)118,LAB118也称为可配置逻辑单元(ConfigurableLogicUnit,CLU)。例如,每个LAB118可进一步被组织为(除了其他电路)包括一组可编程逻辑元件(LogicalElement,LE)、可配置逻辑切片(ConfigurableLogicSlice,CLS)或宏单元(图1B未示出)。在一个示例中,每个LAB可以包括32‑512中任何个数的可编程LE。I/O引脚(图1B未示出),LAB和LE通过PIA150和/或其它总线(如总线162或114)连接,以便于PIA150和PPR102‑108(102、104、106、108)之间的通信。[0079] 每个LE包括可编程电路,如乘积项矩阵(product‑termmatrix)、查找表、和/或寄存器等。LE也称为单元、可配置逻辑块(ConfigurableLogicBlock,CLB)、切片、CFU、宏单元等。每个LE可独立配置以执行顺序和/或组合逻辑操作。应当注意,向PSD添加或从PSD移除一个或更多个块和/或电路,PSD的基本概念也不会改变。[0080] 控制单元110也称为配置逻辑,可以是单个控制单元。例如,控制单元110基于存储在存储器112中的配置信息管理和/或配置LAB118中的单个LE。应当注意,一些I/O端口或I/O引脚是可配置的,以使其可被配置为输入引脚和/或输出引脚。一些I/O引脚被编程为双向I/O引脚,而其它I/O引脚被编程为单向I/O引脚。控制单元(如单元110)被用于根据系统时钟信号处理和/或管理可编程半导体器件操作。[0081] LB116包括可由终端用户编程的多个LAB。每个LAB包含多个LE,其中每个LE还包括一个或更多个查找表(LookupTable,LUT)以及一个或更多个寄存器(或D型触发器或锁存器)。根据应用,逻辑元件可被配置为基于由配置软件实现的预定义功能库执行用户特定功能。在某些应用中,PSD还包括用于执行特定功能的一组固定电路。例如,固定电路包括但不限于处理器、数字信号处理(DigitalSignalProcessing,DSP)单元、无线收发器等。[0082] PIA150通过各种内部总线(如总线114或总线162)耦接到LB116。在一些实施例中,总线114或总线162是PIA150的一部分。每条总线包括用于传输信号的通道或导线。应当注意,术语“通道”、“布线通道”、“导线”、“总线”、“连接”和“互连”均指相同或相似的连接,在本文可互换使用。PIA150还可用于通过I/O引脚和LABs直接或间接地从/向其它设备接收和/或传输数据。[0083] 存储器112包括位于PPR上的多个存储单元。或者,存储器112可在可编程半导体器件中组合成一个单一存储器单元。在一个实施例中,存储器112是同时用于配置和用户存储的非易失性存储器(NonvolatileMemory,NVM)。NVM存储单元可以是但不限于磁性随机存取存储器(MRAM)、闪存、铁电随机存取存储器(FeRAM)和/或相变存储器(或硫系化合物RAM)。为简化上述的讨论,在下面的讨论中,MRAM被用作示例性的NVM。根据应用,存储器112的一部分可被指定、分配或配置为块RAM(BlockRAM,BRAM),以用于在PSD中存储大量数据。[0084] PSD包括由PIA150互连的多个可编程LB116,其中每个可编程LB被进一步划分为多个LAB118。每个LAB118还包括多个LUT、多路复用器和/或寄存器。在配置过程中,用户为每个LUT编程一个真值表,以实现所需逻辑功能。应当注意,每个LAB可进一步被组织成包括多个逻辑元件(LE),可视为可配置逻辑单元(ConfigurableLogicCell,CLC)或CLS。例如,四输入(16位)LUT从布线结构接收LUT输入(图1B未示出)。基于在配置PSD期间编程进LUT的真值表,根据LUT输入的逻辑值,通过LUT的已编程真值表生成组合输出。随后,组合输出在时钟周期结束之前被锁存或缓冲到寄存器或触发器中。[0085] 因此,使用AI管理实施例的优点是提高器件的整体性能。[0086] 图2是根据本发明的一个实施例示出的包括AI控制的布线逻辑或布线结构的框图200。框图200包括控制逻辑206、PIA202、I/O引脚230和时钟单元232。控制逻辑206类似于图1B所示的控制单元,其提供各种控制功能,包括通道分配、差分输入/输出标准和时钟管理。控制逻辑206包含易失性存储器、非易失性存储器和/或易失性和非易失性存储器器件组合,该控制逻辑用于存储信息,例如配置数据。在一个实施例中,控制逻辑206被集成在PIA202中。应当注意,向框图200添加或从框图200中移除一个或更多个块(电路或元件),本发明示例性实施例的基本概念也不会改变。[0087] I/O引脚230通过总线231连接到PIA202,包含多个可编程I/O引脚,这些I/O引脚被配置为接收信号和/或向外部设备传输信号。例如,每个可编程I/O引脚可被配置为输入引脚、输出引脚和/或双向引脚。根据应用,I/O引脚230可集成在控制逻辑206中。[0088] 在一个示例中,时钟单元232通过总线233连接到PIA202,接收来自其他组件(如时钟树电路或全局时钟振荡器)的各种时钟信号。在一个示例中,时钟单元232响应系统时钟和参考时钟,产生时钟信号,用于实现输入/输出通信。根据应用,例如,时钟单元232向可编程互连阵列202提供包括参考时钟在内的时钟信号。[0089] 在一个方面,PIA202被组织成包括通道组210和220、总线204和I/O总线114、124、134、144的阵列方案。通道组210、220用于实现基于PIA配置在LB之间布线信息。通道组也可通过内部总线或诸如总线204的连接相互通信。通道组210进一步包括互连阵列解码器(IAD)212‑218(212、214、216、218)。通道组220包括四个IAD222‑228(222、224、226、228)。IAD的功能是为数据传输提供可配置的布线资源。[0090] IAD(如IAD212)包括布线多路复用器或选择器,用于在I/O引脚、反馈输出和/或LAB输入之间布线信号,以到达其目的地。例如,一个IAD可包括多达36个多路复用器,该多路复用器可置于四个分区中,其中每个分区包含九行多路复用器。应当注意,每个通道组内的IAD数量是LAB内LE数量的函数。[0091] 在一个实施例中,PIA202指定一个特殊IAD,如IAD218,以实现布线签名信息。例如,IAD218被指定用于处理AI比特流传输期间的连接和/或布线签名信息。应当注意,可分配额外的IAD用于处理AI功能。[0092] 图3是根据本发明的一个实施例示出的、使用一个或更多个包括AI管理的PSD的系统或计算机700的图。系统或计算机700包括处理单元701、接口总线712以及输入/输出(IO)单元720。处理单元701包括处理器702、主存储器704、系统总线711、静态存储设备706、总线控制单元705、I/O元件730和FPGA785。应当注意,向图3添加或从图3中移除一个或更多个块(电路或元件),本发明示例性实施例的基本概念也不会改变。[0093] 总线711用于在各种组件和处理器702之间传输信息以实现数据处理。处理器702可以是多种通用处理器、嵌入式处理器或微处理器中的任何一种,例如 嵌入式处理TM TM TM TM器、 Core Duo、Core Quad、 Pentium 微处理器、Motorola 68040、TM系列处理器或PowerPC 微处理器。[0094] 主存储器704可以包括多级缓存存储器,存储经常使用的数据和指令。主存储器704可以是RAM、MRAM或闪存。静态存储器706可以是ROM,该静态存储器706与总线711耦合,用于存储静态信息和/或指令。总线控制单元705耦合到总线711‑712,并且控制哪一个组件(如主存储器704或处理器702)能够使用总线。总线控制单元705管理总线711和总线712之间的通信。大容量存储内存或固态硬盘(SolidStateDisk,SSD)可以是诸如磁盘、光盘、硬盘驱动器、软盘、只读光盘存储器和/或闪存,用于存储大量数据。[0095] 在一个实施例中,I/O单元720包括显示器721、键盘722、光标控制设备723和低功耗可编程逻辑器件725。显示设备721可以是液晶设备、阴极射线管(CathodeRayTube,CRT)、触摸屏显示器或其它合适的显示设备。显示器721投影或显示图形规划板的图像。键盘722可以是常规的字母数字输入设备,用于在计算机系统700和计算机操作员之间传送信息。另一种类型的用户输入设备是光标控制设备723,例如传统的鼠标、触摸鼠标、轨迹球或其他类型的光标,用于在系统700和用户之间进行信息通信。[0096] PLD725被耦合到总线712,以通过广域网向本地和远程计算机或服务器提供可配置逻辑功能。PLD725和/或FPGA785包括一个或更多个用于省电的AI管理组件。在一个示例中,PLD725可用于调制解调器或网络接口设备中,以促进计算机700和网络之间的通信。计算机系统700可以通过网络基础设施与多个服务器耦接,如下讨论所示。[0097] 图4是根据本发明的一个实施例示出的在云环境中使用包括AI管理的PSD的各种应用的图示800。图示800示出了AI服务器808、通信网络802、交换网络804、互联网850和便携式电气设备813‑819。一方面,具有电源控制和管理组件的PSD被用于AI服务器、便携式电气设备和/或交换网络中。网络或云网络802可以是广域网、城域网(MetropolitanAreaNetwork,MAN)、局域网(LocalAreaNetwork,LAN)、卫星/地面网络、或广域网、城域网和局域网的组合。应当注意,向图示800添加或从图示800中移除一个或更多个块(或网络),本发明的示例性实施例的基本概念也不会改变。[0098] 网络802包括多个网络节点(图4未示出),其中,每个节点可包括移动性管理实体(MobilityManagementEntity,MME)、无线电网络控制器(RadioNetworkController,RNC)、服务网关(ServingGateway,S‑GW)、分组数据网络网关(PacketDataNetworkGateway,P‑GW)或家庭代理以提供各种网络功能。网络802与互联网850、AI服务器808、基站812和交换网络804耦接。在一个实施例中,服务器808包括机器学习计算机(MachineLearningComputer,MLC)806。[0099] 交换网络804,可称为分组核心网络,包括能够提供无线电接入通信的蜂窝站点rd822‑826(822、824、826),例如第三代(3 generation,3G)、第四代或第五代蜂窝网络。在一个示例中,交换网络804包括基于网际协议(InternetProtocol,IP)和/或多协议标签交换(MultiprotocolLabelSwitching,MPLS)的网络,该网络能够在开放系统互连基本参考模型(OpenSystemsInterconnectionBasicReferenceModel,OSImodel)的层上运行,以用于客户端和网络服务器之间的信息传输。在一个实施例中,交换网络804是通过蜂窝和/或无线网络在地理区域内有逻辑地耦接多个用户和/或手机816‑820。应当注意,地理区域可指学校、城市、都市区、国家、洲等。[0100] 基站812,也称为蜂窝站点、节点B或eNodeB,包括能够耦合到各种用户设备(UserEquipment,UE)和/或电气用户设备(ElectricalUserEquipment,EUE)的无线电塔。术语“UE”和“EUE”是指类似的便携式设备,其可互换使用。例如,UE或PED可以是通过无线通信的移动电话815、笔记本电脑817、 816、平板、和/或 819。手持设备也可以是智能手机,例如 等。在一个示例中,基站812通过有线和无线通信网络而实现诸如便携式手持设备813‑819(813、815、816、817、818、819)等的移动设备之间的网络通信。应当注意,基站812可包括额外的无线电塔和其他陆路交换电路。[0101] 互联网850是一个使用传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol,TCL/IP)的计算网络,以提供地理位置上分离的设备间的通信联系。在一个示例中,互联网850,通过卫星接收器832耦接至供应商服务器838和卫星网络830。在一个示例中,卫星网络830可提供许多功能,例如无线通信和全球定位系统(GlobalPositioningSystem,GPS)。[0102] 虽然已经展示和描述了本发明的特定实施例,但显而易见,基于本文的教导,本领域的普通技术人员可以在不偏离本发明的示例性实施例及其更广泛的方面的情况下进行改变和修改。因此,所附权利要求旨在将所有符合本发明本示例性实施例的真正精神和范围的变化和修改包含在权利要求的范围内。

专利地区:广东

专利申请日期:2021-07-01

专利公开日期:2024-07-26

专利公告号:CN113485762B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部