一种分布式实时计算硬件系统的制作方法

文档序号:11230402阅读:350来源:国知局
一种分布式实时计算硬件系统的制造方法与工艺

本发明涉及计算机技术和自动化控制领域,尤其是涉及到对大量多种持续流动的传感数据进行实时处理和对大量多种运动终端进行实时控制的计算硬件技术,以及需要大规模并行实时处理的人工智能计算技术。



背景技术:

计算机自动控制技术是现代工业的核心支撑技术。传统自动控制技术体系依赖于特定的信号总线,将传感输入器件、控制输出器件和中央处理器件按照统一的规范协议接入到总线上,中央处理器按照软件部署的任务指令序列和中断传输序列执行计算控制功能。这种总线式控制体系简洁便利,硬件和软件都易于部署实现,但很难容纳飞速增长的传感和控制器件数量、数据流量和计算功能需求量。近年来出现和应用了新型分布式控制系统,采用与以太互联网或无线互联网类似的网络拓扑结构和硬件技术,实现了对大量传感控制终端和计算处理器件的联网组合,将数据传输和计算的总负荷量在多个硬件和软件层面上重新组织分配到各个传输控制和计算处理节点中。在单个中央处理器件层面上,也广泛应用了多核cpu、gpu等并行处理和加速技术,使得单个处理节点的计算能力大大加强。但是这些基于互联网架构和传统计算机体系结构的大规模网络并行计算处理技术,除了成本和功耗问题之外,有两个很难克服的重大硬件限制,其一是计算系统需要统一的时钟,所有联组的数据计算和传输控制单元都需要与统一的时钟进行同步,一旦时钟服务器本身或单元器件的时钟同步机制出现故障,就会影响到整个系统的计算性能和可靠性;其二是传输线路和计算单元都需要混合分时复用,受限于传输媒介的物理性能上限限制和计算操作系统的规则限制,很难实时应对局部超负荷组合数据传输、存储、读取和运算的需求,造成的系统响应延迟和阻塞对于一些时间精度要求很高的应用场景而言是不可接受的,特别是对于应用在例如多架飞行器协同操控等快速变化的复杂物理环境中的人工智能算法,一旦出现即使较轻微的响应延迟,都可能导致不可逆转的灾难性后果。



技术实现要素:

本发明针对这两点重大技术问题,提出了一种新的网络体系和单元器件硬件架构,将传输控制单元、计算处理单元和存数据储单元融合在同样的单元处理器件中,单元器件之间实现直接的物理线路连接且不依赖于统一的时钟,软件代码转化为严格实时运行的硬件电路,单元器件和系统整体都按照编程设定的时序运行,从而实现了严格意义上的分布式实时计算系统,解决了既要求很高的并行处理容量和组合复杂度、又要求很高的实时性的矛盾难题,且具有高自由度、低成本功耗的特点。需要特别说明的是,本发明提出的是一种实现分布式实时计算的硬件系统,而非软件和算法。在现有的互联网体系框架下存在多种分布式实时计算的软件平台和应用算法方法,这些与本发明所述的技术方案无关。针对本发明所述的硬件技术方案需要产生新的软件平台和应用算法开发方法,这些不在本发明的权利要求范围内。

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。本发明所述的分布式实时计算系统由任意大于2数目的单元计算器件和数据传输器件联网组成。网络连接的拓扑结构可以是任意设定的有向图,可以具有多个互相交叠的闭环,而不限于传统网络的星形、树形、环形、多分层等特定拓扑结构。例如附图1所示,该计算系统具有3个不同的传感输入和2个不同的控制输出终端,2个电源,5个计算单元器件按照附图1中箭头所示的传输连接关系形成具有多个互相交叠的闭环的网络。本发明技术的实施者应了解,其他计算网络一般不允许这样复杂的硬件通路连接关系,主要是因为在统一的时钟下,如果同一包数据分别沿着耗时不同的路径从一个节点到达另一个节点,会产生冲突和重叠,如果数据包被拆分发送,则系统总延时取决于耗时最长的路径。而本发明方案所述的计算网络则没有这样的限制:一方面,因为每一包数据在传递一次过程中都改变自己的时间信息,一个节点在不同时间接收到的同样的数据会被视为不同的数据包,在不同的处理循环周期里分别依次处理;另一方面,如果一个数据包被拆分发送,那么最早到达处理节点的部分数据会立刻进入处理流水,而不需要等待整个数据包都到达才进行处理。由此带来的额外优点是,通过恰当的安排数据流动网络通路,可以在指定的节点上实现确定时间段的短时记忆和确定组合的关联运算,而这一点对于人工智能计算技术是至关重要的。附图1只是为了举例说明本发明所述的计算系统的网络组织形式,本发明的实施者应明白,本发明的每一个实际应用都应当根据传感输入器件和控制输出器件的具体情况来设计计算网络组织形式,而不是仅限于附图1所展示的以及与之简单类似的网络结构。为了实现这样的系统功能,单元计算器件和数据传输器件必须满足特定的技术要求和通过特定设计制造方法来实现,在下面分别说明。

单元计算器件的设计如附图2所示,以现场可编程逻辑门阵列(fpga)芯片为核心处理器。fpga上加载运行的程序应为一个或多个并行的具有确定物理时间周期的循环结构。通常所用的fpga芯片具有数十以至上千个通用输入输出(gpio)引脚,其中一部分引脚与双倍速率同步动态随机存储器(ddrsdram)芯片的数据位线和地址位线相连,实现对ddrsdram的直接读写操作;一部分引脚与快闪存储器(flash)芯片相连,在flash芯片上存储和读取fpga芯片加载的数据流循环运算处理程序;一部分引脚与电可擦除只读存储器(eeprom)芯片相连,在eeprom上一次性写入该单元器件的配置信息和身份信息,当该单元用在各种不同的组网状态下时可以从其他计算单元读取该单元的信息;一部分引脚与一个支持pcie协议的gbit收发器(gtp)相连,用于与系统中设置的pcie总线上其他连接的单元计算器件和终端传输数据;余下的部分引脚按照每16根一组的方式接入到对外的gpio插接头上,命名为gpio-1,gpio-2等等。在每个gpio插头的16根引脚中,8根用于并行发送数据字节(byte),1根用于传输发送数据的时钟沿,1根为地线,其余6根用于保留用作其他自定义功能,包括但不限于数据校验、数据加密、供电等功能。按照上述范例设计制作的单元计算器件,符合前段所述的技术要求。概括而言,这样的单元计算器件具有以下特性:(1)严格实时执行每一次周期为确定物理时间的循环逻辑运算;(2)实时对存储器进行读写操作而无需任何其他中间级缓存;(3)具有多个gpio引脚用于与其他单元计算器件和传感控制终端器件直接连接,一般来说这种连接是相对较短距离的;(4)具有1个gbit收发器用于与pcie总线连接,可以与远距离的其他单元计算器件和终端器件通信;(5)具有一个运行程序的备份,且这个备份可被外部输入指令所修改、覆盖和读取;(6)具有一个独一无二身份信息的存储器,身份信息在一次性写入之后不能再修改,或只能被有足够权限的开发者修改。本发明的实施者应明白,本段所述的实施方式仅是具体范例,实施者应根据本段所述的技术精神确定所选的具体芯片配置和连接规范,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

单元计算器件之间通过gpio连接的数据传输器件和传输规范如附图3所示,发送端的gpio端口与接收端的gpio端口一一对应引脚连接,发送端的gpio设定为输出(o)模式,接收端的gpio设定为输入(i)模式。由于每一个单元计算器件按照各自独立且可以互不相同的循环周期进行计算处理和发送数据,且系统中不存在统一的时钟发生器和同步器,每一对单元计算器件之间的数据传输必须采用异步、非握手式的数据传递。传输器件的线路之中要有至少1根专门用于发送时钟沿的线,这根线默认处于低电平。设发送端的工作频率为f,例如f=40mhz,即每25ns发送1个字节,发送端在每一次向gpio端口写入数据位的同时就在时钟线上同时发出1个脉冲。在接收端的fpga芯片上设置1个先进先出(fifo)队列,接收端需要以大于等于发送端工作频率2倍的工作频率来监测时钟线路,例如2f=80mhz,每当检测到时钟沿的变化时,就将接收端gpio端口上的数据写入fifo队列,用于接收端的计算处理。fifo队列的容量应以不低于接收端在一次完整计算周期内全部需要读取的最大数据量为准。根据尼奎斯特采样定理,当接收端的工作频率大于等于发送端的2倍时,无论二者之间相位偏差关系如何,接收端总可以完全无损的检测到发送端每一次时钟沿和数据位变化。并且时钟信息同时也包含了数据包起始和终止信息,数据传输线的带宽利用效率达到了最大化。通过这种“过采样”的方法实现了异步、非握手式的实时传输数据,且具有广泛的适用性,如上段所述的任意2个单元计算器件之间,只要器件具有足够数目的gpio接口,均可以采用本方法进行实时数据传输。更进一步,各种输入器件和输出器件与单元计算器件之间的数据传输也采取同样方法,只有一种例外情况是当输出器件只接收1个单元计算器件的数据且不向其他器件发送任何数据,这种情况下输出器件可以采用握手式传输接收来自单元计算器件的数据。本发明的实施者应明白,本段所述的实施方式仅是具体范例,实施者应根据本段所述的技术精神,在具体应用中确定发送端和接收端的工作频率、fifo队列的容量、以及每一组接口引脚数目和的自定义功能,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

单元计算器件之间通过gbit收发器的数据传输器件和传输规范如附图4所示。发送和接收端上的fpga芯片需要部署相应的代码,以支持实现pcie协议,连接到gbit收发器上的接口和传输线的定义也同样遵循pcie规范,即为pcie总线。在所有连接到同一通道pcie总线上的单元计算器件之中需要指定至少1个作为传输控制器,这个特殊的单元计算器件也可以是常规的基于x86/x64架构的pc机、或者是基于arm架构的移动计算设备,如果该设备本身不具备可在硬件底层实时编程的pcie控制器,就需要配置有fpga芯片用于实时控制pcie总线上的传输。此外,在fpga芯片上部署了相应的代码后,gbit收发器也可以支持以太网、usb、无线传输等其他传输协议,只要在物理接口上进行相应的适配即可,相应的pcie总线转变为其他类型的有线和无线传输线路。如第0006段所述的通过gpio实现的数据传输适用于分布式数据传输,可支持非常多的传输组合,数据在传输的同时就得到了实时处理,并且各种处理的结果数据进行实时汇合重组再进行后续处理,这样的结构可以容纳大流量、多模式并发的输入数据,且不会出现阻塞和延迟。但考虑到物理接线的尺寸和距离限制,通过gpio实现的数据传输适用于相对较短距离上多个单元计算器件之间的联网,而通过gbit收发器实现的总线式数据传输模式则适用于相对较长距离、流量虽然高但模式较为简单的传输需求,经过gbit收发器转换的无线数据传输模式则适用于超远距离、流量不高的需求。系统内部同时具有这三种传输模式,可以最大限度地适应不同的具体应用需求。本发明的实施者应明白,本段所述的实施方式仅是具体范例,实施者应根据本段所述的技术精神,在具体应用中确定各个单元计算器件之间的连接方法和传输协议,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

如第0005段所述的单元计算器件可以有其它的设计制造方案,其中比较常见的两种是已经广泛普及的基于x86/x64中央处理器架构的pc机和基于arm处理器架构的移动计算和通信设备。在这两种方案中,都配备具有实时计算能力的芯片例如fpga以及与之配套的gpio和gbit收发器两种分布式和总线式传输接口,用于与其他单元计算器件进行实时数据传输。但pc机或移动计算通信设备仍然可以保留其原有的数据传输器件和方法,只是软件开发者需要以实时计算硬件系统作为软件开发部署对象,对其他非实时操作的计算器件需要设置适当的进程启动、中断、等待和转移方法以适配实时计算器件的计算和传输循环周期。无论使用何种制造方案,都必须满足最基本的实时性要求,即每一批次计算指令和每一包数据传输都必须在可由软件开发者直接设定的明确的物理时间段内完成,而不能依赖于编译系统和操作系统来分配和模拟。本发明的实施者应明白,本段所述的实施方式仅是具体范例,实施者应根据本段所述的技术精神,在具体应用中确定使用何种单元计算器件的制造方案和接口配置,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

已经存在了在本发明要求权利之外其他并行计算硬件方案,例如用1片超大容量的fpga芯片来代替所有的单元计算器件上的fpga芯片和互相之间的连接,再例如用大量连接到以太或无线互联网的pc机和移动计算设备组成并行计算网络。但本发明所述的技术方案具有以下支持软件开发的独特优点:1、可以在不间断系统持续运行的情况下编辑、备份、调试和重写部分软件代码,甚至支持系统内部由一部分单元计算器件自动生成另一部分单元计算器件上运行的软件代码。即使对于一些计算量不高的应用,只需一片很大容量的fpga也可以实现整个系统的实时计算功能,但越大容量的fpga,其软件编译部署所需的时间就越长,甚至可以达数十小时,在调试过程中这样长的等待时间是几乎不可忍耐的。因此开发者将软件适当的分解组合部署到多个单元计算器件的中小容量fpga上,可以实现很高的运行部署和调试效率。2、软件开发者对系统各个单元计算器件的物理时间具有高度的掌控力,而不需要通过操作系统模拟时间,可以高效率、低功耗实现一些非常规的、对物理时间高度依赖的新智能算法模型,例如时间依赖性的神经元突触可塑性模型、积分发放神经元模型、神经元活性调制因子模型等。3、内存储器同样被分布式配置到各个单元计算器件中,利用寄存器逻辑,对每一个fpga设置私有和公有寄存器,将gpio端口对应的fpga引脚映射到公有寄存器,将本地ddr存储器对应的fpga引脚映射到私有寄存器,可以实现不同的fpga芯片互相访问ddr存储器。而这种多个计算进程互相直接访问内存的技术在其他传统计算体系硬件结构下是很难实现的,只能通过操作系统来进行模拟映射。4、按第0004段所述方案制作的单元计算器件的体积、重量、功耗均较小,且全固态一体化,经过连接组合后的系统仍然具有足够好的可移动性,且直接与传感器件和运动控制器件连接为一体,可以安装到各种移动机电设备上。对于配备了有远距离有线和无线通信控制芯片的单元计算器件的自主运行的系统,多个这样的系统可以按同样的体系方式再组成一个更大的实时计算系统且仍然具有自主运行能力,能够部署实现规模更加庞大的智能学习算法,例如附图5所示。同领域的实施者具有足够的一般性知识,可以理解本发明的上述优点的实现方式,在具体应用中确定软件功能开发实现的方法和过程,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

如上段所述的由多种不同类型的单元计算器件与传感、运动器件共同组成的分布式实时计算系统是适合实现人工智能计算的硬件体系。传统人工智能计算技术高度依赖于已经数字化的大量数据进行机器学习,并且在运行过程中也需要依靠和等待有人控制的外部设备提供数字化的输入数据,但本发明所述技术方案提供了一种不需要依靠和等待有人控制的外部设备提供数据的智能计算硬件体系。同领域的实施者具有足够的一般性知识,可以理解本发明的上述优点的实现方式,在具体应用中确定人工智能算法设计和运用的方法和过程,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1