计算芯片及其操作方法与流程

文档序号:16467805发布日期:2019-01-02 22:53阅读:262来源:国知局
计算芯片及其操作方法与流程

本公开总体而言涉及集成电路领域,具体而言,涉及计算芯片及其操作方法。



背景技术:

随着计算需求的增加,人们对于硬件的计算能力提出了越来越高的要求,并行计算也随之应运而生。为了实现并行计算,现有的计算芯片常采用多核互联的内部架构。但由于用于计算或存储的硬件资源通常采用集中式的设计架构,计算芯片的多个核对资源的使用或访问会是竞争性的,这极大地限制了计算的效率。

因此,存在对于具有新颖的架构的计算芯片及其操作方法的需求。



技术实现要素:

本公开的一个目的是提供一种新颖的计算芯片及其操作方法。

根据本公开的第一方面,提供了一种计算芯片,包括多个计算节点,每个计算节点包括:控制电路,其用于控制该计算节点的操作;运算电路,其连接到所述控制电路,所述运算电路从所述控制电路接收数据,并基于该数据进行运算;路由电路,其连接到所述控制电路并连接到相邻的计算节点的路由电路,所述路由电路能够与控制电路进行数据交互,并且能够与相邻的计算节点的路由电路进行数据交互;以及校验电路,其连接到所述控制电路,所述校验电路用于对该计算节点进行错误检测和/或纠错;其中,每个计算节点与至少一个其他计算节点相邻,并且每个计算节点的路由电路与相邻计算节点的路由电路之间直接连接;其中,每个计算节点的路由电路与任何一个不相邻的计算节点的路由电路之间,通过二者之间的计算节点路径中的计算节点的路由电路而间接连接;并且其中,每个计算节点能够与任何一个其他计算节点进行数据交互。

根据本公开的另一个方面,提供了一种用于如前所述的计算芯片的操作方法,该操作方法包括:通过每个计算节点中的校验电路,对该计算节点进行错误检测和/或纠错。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1例示了一种现有的计算芯片。

图2例示了根据本公开的示例性实施例的计算芯片中的三个计算节点的示意图。

图3例示了通过检验电路对存储器中的数据进行检测和纠错的一种可能的实现方式。

图4例示了根据本公开的示例性实施例的校验电路中的仲裁器的一种可能的实现方式。

图5例示了通过检验电路对运算电路进行检测的一种可能的实现方式。

图6例示了通过检验电路170对通过路由电路140接收或发送的数据进行检测和纠错的一种可能的实现方式。

图7例示了根据本公开的示例性实施例的包括以点阵形式排列的多个计算节点的计算芯片。

图8示出了根据本公开的另一个示例性实施例的计算芯片中的三个计算节点的示意图。

注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。

具体实施方式

图1例示了一种现有的计算芯片10。如图1所示,多个cpu(中央处理器)12连接到同一总线14并通过总线14进行彼此之间的数据交互。多个cpu12还可以通过总线14连接到存储器16并访问存储器16中的数据。由于多个cpu12之间以及cpu12与存储器16之间的数据交互都需要通过总线14来完成,多个数据交互需求可能同时发生,而这会对总线14的占用权限以及存储器16的访问权限产生竞争性的需求,从而降低并行计算架构的效率。

对此,本申请的发明人希望提出具有全新架构的计算芯片及其操作方法,以实现更高的计算效率。

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的计算芯片及其操作方法是以示例性的方式示出,来说明本公开中的装置或方法的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

图2示出了根据本公开的示例性实施例的计算芯片中的三个计算节点的示意图。

根据本公开的示例性实施例的计算芯片100包括多个计算节点,为了简化示意,图2中仅示意性地例示了所述多个计算节点中的三个计算节点110a、110b和110c。本领域的技术人员将理解,图2中示出的计算节点的数量和排列方式仅用作例示,而不意图构成限制,根据本公开的计算芯片100可以包括以任意方式排列的任意数量的计算节点。

如图2所示,所述多个计算节点中的每个计算节点可以包括:控制电路120,其用于控制本计算节点的操作;运算电路130,其连接到本计算节点中的控制电路120,并且能够从控制电路120接收数据并基于该数据进行运算;路由电路140,其连接到本计算节点中的控制电路120,并且能够与控制电路120进行数据交互;以及校验电路170,其连接到本计算节点中的控制电路120,并且用于对本计算节点进行错误检测和/或纠错。

本领域技术人员将理解,计算节点所包括的多个不同的电路可以是各自独立的硬件模块,也可以是作为整体的硬件中的一部分。例如,在一些实施例中,计算节点中的运算电路130、路由电路140、校验电路170和控制电路120中的一个可以作为另一个的一部分存在,并且计算节点中的运算电路130、路由电路140、校验电路170和控制电路120中的某几个可以作为一个整体存在。例如,在一个实施例中,校验电路170可以是控制电路的120的一部分,并且可以通过控制电路120与运算电路130和路由电路140的直接连接而连接到运算电路130和路由电路140。

继续参考图2,每个计算节点的路由电路140还连接到相邻的计算节点的路由电路140,并且能够与相邻的计算节点的路由电路140进行数据交互。在计算芯片100中,每个计算节点与至少一个其他计算节点相邻,并且其路由电路与相邻计算节点的路由电路之间直接连接;每个计算节点的路由电路与任何一个不相邻的计算节点的路由电路之间,通过二者之间的计算节点路径中的计算节点的路由电路而间接连接。通过上述直接连接或者间接连接,每个计算节点都能够与任何一个其他计算节点进行数据交互。

在一些实施例中,计算节点之间的直接连接可以通过集成电路中的布线形成。

本领域的技术人员将理解,前文所述的计算节点之间的“相邻”,不仅包括计算节点在计算芯片的物理布局中彼此邻近的情况,还包括任意其他方式的“相邻”,例如,在逻辑运算的前后关系上“相邻”等等。因此,“相邻”的判断标准可以根据具体需求来灵活限定。

以图2中的三个节点110a、110b和110c作为示例,计算节点110a与计算节点110b相邻,因而其路由电路连接到计算节点110b的路由电路,并能够与其进行数据交互;计算节点110b与算节点110a和110c都相邻,因而其路由电路分别连接到计算节点110a和110c两者的路由电路,并能够分别与这两者进行数据交互。计算节点110a与计算节点110c并不相邻,两者之间通过“计算节点110a——计算节点110b——计算节点110c”的计算节点路径中的路由电路间接连接。

本领域的技术人员将理解,图2中示出的计算节点的具体连接方式仅用作例示,而不意图构成限制,根据本公开的计算芯片100可以包括以任意方式连接的多个计算节点。另外,尽管图2中所示出的不相邻的计算节点110a和110c之间仅存在一条能够实现间接连接的计算节点路径,但这并不意图构成限制,在计算芯片100中,不相邻的计算节点之间可以存在一条或者多条能够实现间接连接的计算节点路径。

当相邻的计算节点110a和110b需要进行数据交互时,可以通过两者的路由电路的直接连接来实现。当不相邻的计算节点110a和110c需要进行数据交互时,可以通过计算节点路径(“计算节点110a——计算节点110b——计算节点110c”)中的计算节点的路由电路的间接连接来实现。

在每个计算节点中,校验电路170可以用于对计算节点的硬件故障进行检测和/或纠错,还可以用于对计算节点中的数据进行检测和/或纠错。计算节点中的数据包括但不限于存储在计算节点中的数据、计算节点接收到的数据等等。在根据本公开的计算芯片中,通过在每个计算节点中设置校验电路,能够及时有效地监测硬件故障或者数据传输错误等问题,从而有效地提高计算芯片运行的准确率和效率。

继续参考图2,每个计算节点还可以包括存储器160。存储器160可以连接到控制电路120并且由控制电路120直接访问。在一些实施例中,存储器160还可以可选择地连接到运算电路130(图中未示出),并相应地可以由运算电路130直接访问。存储器160优选地为易失性存储器。

如图2所示,每个计算节点中的校验电路170还可以可选地连接到本计算节点中的存储器160,该可选的连接关系在图2中以虚线示出。在根据本公开的实施例中,校验电路170也可以不直接连接到本计算节点中的存储器160,而是通过控制电路120间接连接到存储器160,或者校验电路170可以作为控制电路120的一部分连接到存储器160。

校验电路170可以配置为对存储器160中的数据进行检测和/或纠错。在一些实施例中,检验电路170可以配置为:为要存储到存储器160中的数据插入冗余纠错码;以及通过从存储器160读出的数据中的冗余纠错码对该数据进行检测和纠错。通过对在与存储器相关的数据中设置冗余纠错码,可以有效地提高计算芯片中数据处理的准确性。

图3例示了通过检验电路170对存储器160中的数据进行检测和纠错的一种可能的实现方式。

如图3所示,在每个计算节点中,校验电路170可以配置为:为要存储到存储器160中的数据wdata插入冗余纠错码wcode,得到包含冗纠错码的数据(wdata,wcode);以及,通过从存储器160读出的包含冗余纠错码的数据(rdata,rcode)中的冗余纠错码rcode对数据rdata进行检测和纠错,从而得到正确的读出数据rdata。冗余纠错码例如可以是汉明码。

注意,尽管图3中示出的要存储到存储器160中的数据来自控制电路120,并且从存储器160读出的数据也传送到控制电路120,但是本发明不受限于此,在其他实施例中,计算节点中的其他模块(例如运算电路)也可以将数据存储到存储器160或者从存储器160读取数据。另外,尽管图3中示出的校验电路170和存储器160直接连接,但本发明不受限于此,在其他实施例中,校验电路170和存储器160可以经由控制电路120间接连接。

在一些实施例中,在每个计算节点中,校验电路170可以包括仲裁器,并且校验电路170可以配置为将从存储器160读出的数据通过仲裁器输出。

图4示出了根据本公开的示例性实施例的校验电路中的仲裁器172的一种可能的实现方式。

如图4所示,校验电路中的仲裁器172可以采用d触发器dff实现。d触发器包括数据输入端d、复位信号输入端r、时钟信号输入端c和数据输出端q。d触发器配置为:在复位信号被去断言的情况下,响应于时钟信号的触发(例如时钟信号的上升沿、下降沿、高电平等等)而将数据输入端d的信号传输到数据输出端q,并且,在复位信号被断言的情况下在数据输出端q输出低电平。

继续参考图4,校验电路中的仲裁器172可以包括:三个d触发器dff,用于接收从本计算节点的存储器160读出的同一数据i并且由相同的时钟信号clk触发;以及比较器,用于比较三个d触发器的输出,并且当其中至少两个d触发器的输出一致时,选择该一致的输出作为从存储器读出的数据o。其中,三个d触发器的复位信号输入端也可以连接到同一复位信号reset。通过多个d触发器的比较,能够有效避免因信号噪声等因素所引起的误差,提高数据的准确性,从而提高整个计算芯片的稳定性和运算准确性。

注意,图4中所示出的仲裁器172仅用做例示,根据本公开的校验电路可以包括任何类型的适合的仲裁器。

回到图2,在一些实施例中,校验电路170可以配置为对本计算节点及其他计算节点进行检验和/或纠错。以图2中的计算芯片100的三个计算节点110a、110b和110c为例,描述通过校验电路170进行检验的一种可能的实现方式。

首先,在每个计算节点中,校验电路170可以在本计算节点的存储器160中写入统一的测试数据。

接着,计算节点110a的校验电路可以进行如下操作:通过计算节点110a的控制电路从计算节点110a的存储器读取测试数据,得到第一读取结果并存储在计算节点110a的存储器中;通过计算节点110a的控制电路从计算节点110b的存储器读取测试数据,得到第二读取结果并存储在计算节点110a的存储器中;通过计算节点110a的控制电路从计算节点110c的存储器读取测试数据,得到第三读取结果并存储在计算节点110a的存储器中。

接下来,计算节点110a的校验电路将所得的第一读取结果、第二读取结果和第三读取结果与存储在计算节点110a的校验电路中的标准结果进行比较和判断。判断可以根据如下所示的表格1来进行。

表格1

如表格中所示:当第一读取结果和第二读取结果正确而第三读取结果异常时,判断出计算节点110c异常;当第一读取结果和第三读取结果正确而第二读取结果异常时,判断出计算节点110b异常,但计算节点110b的路由电路正常工作;当第二读取结果和第三读取结果正确而第一读取结果异常时,判断出计算节点110a异常,但计算节点110a的路由电路正常工作;当第二读取结果和第三读取结果异常而第一读取结果正确时,判断出至少计算节点110b异常。

在一些实施例中,当判断出某计算节点异常但其路由电路正常工作时,该计算芯片配置为将该计算节点的存储器中存储的数据转移到其他计算节点,并将该计算节点标记为仅执行路由功能的计算节点。

在根据本公开的计算芯片中,通过包括校验电路的多个计算节点的彼此协作,能够在发生硬件故障时及时检测到故障,并最大限度地利用仍然正常工作的硬件继续运行,从而提升计算芯片的稳定性和准确性。

本领域技术人员均理解,尽管以图2中所示的三个计算节点110a、110b和110c为例对计算节点的运行状况进行了判断,但上述判断过程并不受限于这三个计算节点,而是可以在计算芯片中的任意三个计算节点中执行。

在一些实施例中,在每个计算节点中,校验电路170可以对本计算节点中的运算电路130的运算功能进行检测。

如图2所示,在每个计算节点中,校验电路170还可以可选地连接到本计算节点中的运算电路130,该可选的连接关系在图2中以虚线示出。在根据本公开的实施例中,校验电路170也可以不直接连接到本计算节点中的运算电路130,而是通过控制电路120间接连接到运算电路130,或者校验电路170可以作为控制电路120的一部分连接到运算电路130。

图5例示了通过检验电路170对运算电路130进行检测的一种可能的实现方式。

如图5中所示,在每个计算节点中,校验电路170可以配置为进行如下操作:将测试数据发送到本计算节点中的运算电路130;从运算电路130接收运算结果;以及,将运算结果与标准结果进行比较,当运算结果与标准结果不一致时,向本计算节点中的控制电路120发出指示本计算节点中的运算电路120发生故障的信号。每个计算节点配置为,当控制电路120接收到指示运算电路故障的信号时,停止该计算节点的运算电路130的操作,并将本计算节点标记为仅执行路由功能和数据存储功能的计算节点。

在根据本公开的计算芯片中,通过校验电路对运算电路的检测,能够及时检测运算电路的故障,并最大限度地利用仍然正常工作的其他部分继续运行,从而提升计算芯片的稳定性和准确性。

注意,尽管图5中示出的校验电路170和运算电路130直接连接,但本发明不受限于此,在其他实施例中,校验电路170和运算电路130可以经由控制电路120间接连接。

在一些实施例中,在每个计算节点中,校验电路170还可以配置为对通过本计算节点中的路由电路140接收或发送的数据进行检测和纠错。

如图2所示,每个计算节点中的校验电路170还可以可选地连接到本计算节点中的路由电路140,该可选的连接关系在图2中以虚线示出。在根据本公开的实施例中,校验电路170也可以不直接连接到本计算节点中的路由电路140,而是通过控制电路120间接连接到路由电路140,或者校验电路170可以作为控制电路120的一部分连接到路由电路140。

在一些实施例中,在每个计算节点中,校验电路170还可以配置为:为要通过路由电路140发送的数据插入冗余纠错码;以及,通过路由电路140接收的数据的冗余纠错码对所接收的数据进行校验和/或纠错。

图6例示了通过检验电路170对通过路由电路140接收或发送的数据进行检测和纠错的一种可能的实现方式。

如图6所示,校验电路170可以配置为:为要由路由电路140发送的数据odata插入冗余纠错码ocode,得到包含冗余纠错码的数据(odata,ocode);以及,通过由路由电路170接收的数据(idata,icode)中的冗余纠错码icode对数据进行检测和纠错,从而得到正确的数据idata。

注意,尽管图6中示出的要由路由电路140发送的数据来自控制电路120,并且通过路由电路140接收的数据也传送到控制电路120,但是本发明不受限于此,在一些实施例中,计算节点中的其他模块(例如运算电路)也可以将数据发送到路由电路140或者接收来自路由电路140的数据。另外,尽管图6中示出的校验电路170和路由电路140直接连接,但本发明不受限于此,在其他实施例中,校验电路170和路由电路140可以经由控制电路120间接连接。

回到图2,在一些实施例中,每个计算节点可以具有不同的坐标,以用于对多个计算节点进行标识和区分。每个计算节点的坐标还能够根据需要被重新配置。在一些实施例中,每个计算节点的路由电路能够根据坐标来寻址目标计算节点。寻址的实现方式有多种。在一些实施例中,寻址的实现方式如下:当计算节点的路由电路接收到包含目标计算节点的坐标的指令时,可以基于该目标计算节点的坐标进行适当的操作以使得该指令被发送到目标计算节点。

在一些实施例中,计算节点的路由电路可以判断某个坐标是否代表该计算节点自身、是否代表直接连接的计算节点以及是否代表间接连接的计算节点。

在一些实施例中,计算节点的控制电路120和路由电路140可以协同操作以发出数据操作请求。例如,控制电路120可以生成数据操作请求,并将该请求发送到该计算节点的路由电路140。在数据操作请求中,至少包括目标计算节点的坐标。相应地,路由电路140可以进行如下操作:从控制电路120接收前述数据操作请求并进行判断;当判断出目标计算节点为相邻计算节点时,将数据操作请求转发到相邻计算节点的路由电路;而当判断出目标计算节点为不相邻的计算节点时,将数据操作请求转发到通向目标计算节点的优化路径上的相邻计算节点之一的路由电路。

在一些实施例中,计算节点的控制电路120和路由电路140也可以协同操作以接收数据操作请求。例如,路由电路140可以从相邻计算节点的路由电路接收数据操作请求并进行相应判断;当判断出目标计算节点为本计算节点时,路由电路140将数据操作请求发送到本计算节点的控制电路120;当判断出目标计算节点为相邻计算节点时,路由电路140将数据操作请求发送到相邻计算节点的路由电路;以及,当判断出目标计算节点为不相邻的计算节点时,路由电路140将数据操作请求转发到通向目标计算节点的优化路径上的相邻计算节点之一的路由电路。

在本文中,“优化路径”可以是根据一定规则(例如某些调度仲裁算法)选取的实现两个不相邻的计算节点的间接连接的计算节点路径。优化路径可以以任意合适的规则选取,例如以路径最短为目标选取,或者以提高硬件利用率为目标选取,等等。由于根据本公开的计算芯片可以包括以任意方式排列的多个计算节点,两个不相邻的计算节点之间可能存在多种间接连接的计算节点路径,因此也可能存在多种优化路径。两个不相邻的计算节点之间的优化路径可以是固定的也可以是变化的,例如随着计算芯片的运行,优化路径可以根据运行情况而实时改变。应当理解的是,尽管在图2中,在不相邻的计算节点110a至110c之间只存在一条间接连接路径,但这并不意图构成限制。

在根据本公开的实施例中,数据操作请求可以是任意类型的数据操作请求。在一些实施例中,数据操作请求可以包括数据读取请求和数据返回应答。数据读取请求可以包括:发出数据读取请求的计算节点的坐标、目标计算节点的坐标以及与所要读取的数据相关的信息。数据返回应答可以包括:目标计算节点的坐标,所要返回的数据以及与所要返回的数据相关的信息。

在一些实施例中,在每个计算节点中,控制电路120可以对从路由电路140接收的数据进行解析,并执行相应操作。例如,当从本计算节点的路由电路140接收到数据读取请求时,控制电路120进行数据检索并生成相应的数据返回应答。数据返回应答中可以包括前述数据读取请求所请求的数据,还可以包括发出前述数据读取请求的计算节点的坐标作为目标计算节点坐标。当控制电路120从本计算节点的路由电路140接收到数据返回应答时,可以解析该数据返回应答中的数据。控制电路120可以将解析出的数据应用于控制电路120自身、发送到运算电路130或者发送到存储器160。

在一些实施例中,计算芯片100还可以包括主控电路。主控电路可以连接到所述多个计算节点中的至少一部分计算节点,并且借助于计算节点之间的直接连接或间接连接与所有计算节点进行数据交互。

根据本公开的计算芯片100可以通过多个计算节点完成复杂的运算。在一些实施例中,凭借高度重复的并行计算结构,计算芯片100可以配置用于实现包含多次循环运算的算法,并且实现较高的运算效率。

在一些实施例中,计算芯片100可以配置用于实现与挖矿算法相关的算法。凭借各自具备独立计算能力的多个计算节点及其间的网状互连,计算芯片100可以用较高的运算速度和运算效率实现与挖矿算法相关的算法。例如,在某些挖矿算法中,需要基于不同的初始值进行多次循环运算,在通过本公开的计算芯片100实现这些算法时,可以将不同的初始值分配给各个计算节点,然后通过各个计算节点进行多次循环运算,从而高效地实现挖矿算法。

在一些实施例中,计算芯片100可以配置用于实现与人工智能、图像处理相关的算法。

在一些实施例中,计算芯片100可以是单片集成电路或者封装的单片集成电路。

如前所述,根据本公开的实施例的计算芯片100包括多个计算节点。在一些实施例中,所述多个计算节点可以以点阵形式排列,点阵可以是m行n列的矩阵形式。

图7例示了根据本公开的示例性实施例的包括以点阵形式排列的多个计算节点的计算芯片200。图7中所示的计算芯片200是图2中所示的计算芯片的100的一种可能的实现方式,可以认为图2中所示的三个计算节点是图7中所示的多个计算节点的一部分。因此,前文中对于图2的相关描述也适用于图7中的计算芯片200。

如图7所示,计算芯片200的多个计算节点以点阵形式排列,该点阵可以采用m行n列的矩阵形式。m行n列的矩阵中的计算节点的坐标可以按照其位置设置为(x,y),其中x为所在的行(x为小于或等于m的正整数),y为所在的列(y为小于或等于n的正整数)。

继续参考图7,以矩阵形式排列的计算节点的点阵可以采用如下连接方式:在矩阵的第i行第j列的计算节点的路由电路与在矩阵的第i+1行第j列的计算节点、第i-1行第j列的计算节点、第i行第j+1列的计算节点以及第i行第j-1列的计算节点的路由电路直接连接,其中i为2、3…m-1,并且j为2、3…n-1;在矩阵的第1行第1列的计算节点的路由电路与在矩阵的第1行第2列的计算节点以及第2行第1列的计算节点的路由电路直接连接;在矩阵的第1行第n列的计算节点的路由电路与在矩阵的第1行第n-1列的计算节点以及第2行第n列的计算节点的路由电路直接连接;在矩阵的第m行第1列的计算节点的路由电路与在矩阵的第m-1行第1列的计算节点以及第m行第2列的计算节点的路由电路直接连接;以及在矩阵的第m行第n列的计算节点的路由电路与在矩阵的第m-1行第n列的计算节点以及第m行第n-1列的计算节点的路由电路直接连接。

图8示出了根据本公开的另一个示例性实施例的计算芯片300中的三个计算节点的示意图。

图8中所示的计算芯片300是图2中所示的计算芯片100的一个变型例,前文中对于图2的相关描述也适用于图8中的计算芯片300。图8中所示的计算芯片300与图2中所示的计算芯片100的不同之处仅在于:在每个计算节点110a、110b和110c中,校验电路170是控制电路的120的一部分,并且可以通过控制电路120与其他模块(例如运算电路130、路由电路由140和存储器160等等)的直接连接而连接到其他模块。

在根据本公开的实施例的计算芯片100、200和300中,每个计算节点各自具有控制电路和运算电路,并且可以各自独立地基于预定算法进行运算,这极大地提高了计算芯片的运算速度和运行效率。进一步的,多个计算节点通过各自的路由电路以网状关系互连,在确保任意两个计算节点能够进行数据交互的同时,有效减少了可能的访问冲突,从而提高了并行式计算芯片的性能。每个计算节点还包括相应的校验电路,可以对本计算节点甚至其他计算节点进行针对故障和错误的检测和/或纠错,从而提高故障检测效率和运行准确率。此外,由于计算芯片包括多个计算节点并且多个计算节点采用网状的互连,当某个计算节点出现故障时,其他计算节点仍然可能继续运行,从而降低了计算芯片的故障率。存储资源可以以存储器的形式分布在各个计算节点中。通过前述的各个计算节点之间的网状互连,任意一个计算节点都可以方便地访问任意另一个计算节点的存储器,这种访问模式避免了集中式访问资源带来的访问冲突,极大地提高了对存储器的访问效率。并且,在各个计算节点的存储器中的数据被访问的几率均等的情况下,访问效率可以达到性能最优。

接下来描述根据本公开的示例性实施例的用于计算芯片的操作方法。

用于计算芯片的操作方法可以包括:通过每个计算节点中的校验电路,对该计算节点进行错误检测和/或纠错。

在一些实施例中,在每个计算节点中,校验电路可以是控制电路的一部分。

在一些实施例中,用于计算芯片的操作方法可以包括:在每个计算节点中,通过校验电路对计算节点的硬件故障进行检测和/或纠错;以及,通过校验电路对计算节点中的数据进行检测和/或纠错。

在一些实施例中,每个计算节点还可以包括:存储器,连接到控制电路,并且控制电路能够直接访问存储器。优选地,存储器为易失性存储器。在一个是实施例中,校验电路还可以连接到存储器。

在一些实施例中,用于计算芯片的操作方法还可以包括,在每个计算节点中,通过校验电路执行如下操作:为要存储到存储器中的数据插入冗余纠错码;以及通过从存储器读出的数据中的冗余纠错码对该数据进行检测和纠错。优选地,冗余纠错码可以为汉明码。

在一些实施例中,用于计算芯片的操作方法还可以包括:在每个计算节点中,将从存储器读出的数据通过校验电路中的仲裁器输出。在一个实施例中,用于计算芯片的操作方法包括:通过仲裁器中的三个d触发器接收从存储器读出的同一数据,并且用相同的时钟信号触发三个d触发器,通过仲裁器中的比较器来比较三个d触发器的输出,并且当其中至少两个d触发器的输出一致时,选择该一致的输出作为从存储器读出的数据。

在一些实施例中,用于计算芯片的操作方法还可以包括:在每个计算节点中,通过校验电路在该计算节点的存储器中写入统一的测试数据。计算芯片包括第一计算节点、第二计算节点和第三计算节点,其中,第一计算节点包括第一控制电路、第一路由电路、第一存储器和第一校验电路,第二计算节点包括第二控制电路、第二路由电路、第二存储器和第二校验电路,第三计算节点包括第三控制电路、第三路由电路、第三存储器和第三校验电路,并且其中,第一计算节点与第二计算节点直接连接,第二计算节点与第三计算节点直接连接。用于计算芯片的操作方法还可以包括,通过第一校验电路执行如下操作:通过第一控制电路从第一存储器读取测试数据,得到第一读取结果并存储在第一存储器中;通过第一控制电路从第二存储器读取测试数据,得到第二读取结果并存储在第一存储器中,通过第一控制电路从第三存储器读取测试数据,得到第三读取结果并存储在第一存储器中;将第一读取结果、第二读取结果和第三读取结果与存储在第一校验电路中的标准结果进行比较,并进行如下判断:当第一读取结果和第二读取结果正确而第三读取结果异常时,判断出第三计算节点异常,当第一读取结果和第三读取结果正确而第二读取结果异常时,判断出第二计算节点异常,但第二路由电路正常工作,当第二读取结果和第三读取结果正确而第一读取结果异常时,判断出第一存储器异常,当第二读取结果和第三读取结果异常而第一读取结果正确时,判断出至少第二计算节点异常。在一个实施例中,用于计算芯片的操作方法还可以包括:当第一读取结果和第三读取结果正确而第二读取结果异常时,将第二计算节点的存储器中存储的数据转移到其他计算节点,并将第二计算节点标记为仅执行路由功能的节点。

在一些实施例中,在每个计算节点中,校验电路还可以连接到该计算节点的运算电路。

在一些实施例中,用于计算芯片的操作方法还可以包括,在每个计算节中,通过校验电路执行如下操作:将测试数据发送到运算电路;从运算电路接收运算结果;以及将运算结果与存储在校验电路中的标准结果进行比较,当运算结果与标准结果不一致时,向该计算节点中的控制电路发出指示运算电路故障的信号。在一个实施例中,用于计算芯片的操作方法还包括:当控制电路接收到指示运算电路故障的信号时,停止该计算节点的运算电路的操作,并将该计算节点标记为仅执行路由功能和数据存储功能的计算节点。

在一些实施例中,在每个计算节点中,校验电路还可以连接到本计算节点的路由电路。

在一些实施例中,用于计算芯片的操作方法还可以包括,在每个计算节点中,通过校验电路执行如下操作:为即将通过路由电路传送的数据插入冗余纠错码;以及通过路由电路接收的数据的冗余纠错码对接收的数据进行校验和/或纠错。

在一些实施例中,用于计算芯片的操作方法还可以包括:为每个计算节点分配不同的坐标,坐标能够被重新配置。

在一些实施例中,用于计算芯片的每个计算节点的路由电路能够根据坐标来寻址目标计算节点。

在一些实施例中,用于计算芯片的多个计算节点可以以点阵形式排列。在一个实施例中点阵为m行n列的矩阵形式。

本公开的实施例还包括以下各项。

1、一种计算芯片,其特征在于,所述计算芯片包括多个计算节点,每个计算节点包括:控制电路,其用于控制该计算节点的操作;运算电路,其连接到所述控制电路,所述运算电路从所述控制电路接收数据,并基于该数据进行运算;路由电路,其连接到所述控制电路并连接到相邻的计算节点的路由电路,所述路由电路能够与控制电路进行数据交互,并且能够与相邻的计算节点的路由电路进行数据交互;以及校验电路,其连接到所述控制电路,所述校验电路用于对该计算节点进行错误检测和/或纠错;其中,每个计算节点与至少一个其他计算节点相邻,并且每个计算节点的路由电路与相邻计算节点的路由电路之间直接连接;其中,每个计算节点的路由电路与任何一个不相邻的计算节点的路由电路之间,通过二者之间的计算节点路径中的计算节点的路由电路而间接连接;并且其中,每个计算节点能够与任何一个其他计算节点进行数据交互。

2、根据1所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路是所述控制电路的一部分。

3、根据1所述的计算芯片,其特征在于,所述校验电路用于对计算节点的硬件故障进行检测和/或纠错。

4、根据1所述的计算芯片,其特征在于,所述校验电路用于对计算节点中的数据进行检测和/或纠错。

5、根据1所述的计算芯片,其特征在于,每个计算节点还包括:存储器,连接到所述控制电路,并且所述控制电路能够直接访问所述存储器。

6、根据1所述的计算芯片,其特征在于,所述存储器为易失性存储器。

7、根据5所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路还连接到所述存储器。

8、根据5所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路配置为:为要存储到所述存储器中的数据插入冗余纠错码;以及通过从所述存储器读出的数据中的冗余纠错码对该数据进行检测和纠错。

9、根据8所述的计算芯片,其特征在于,所述冗余纠错码为汉明码。

10、根据5所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路包括仲裁器,并且配置为将从所述存储器读出的数据通过所述仲裁器输出。

11、根据10所述的计算芯片,其特征在于,所述冲裁器包括:三个d触发器,接收从所述存储器读出的同一数据并且由相同的时钟信号触发;比较器,比较所述三个d触发器的输出,并且当其中至少两个d触发器的输出一致时,选择该一致的输出作为从存储器读出的数据。

12、根据5所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路配置为:在该计算节点的存储器中写入统一的测试数据。

13、根据12所述的计算芯片,其特征在于,所述计算芯片包括第一计算节点、第二计算节点和第三计算节点,其中,所述第一计算节点包括第一控制电路、第一路由电路、第一存储器和第一校验电路,所述第二计算节点包括第二控制电路、第二路由电路、第二存储器和第二校验电路,所述第三计算节点包括第三控制电路、第三路由电路、第三存储器和第三校验电路,并且其中,所述第一计算节点与所述第二计算节点直接连接,所述第二计算节点与所述第三计算节点直接连接;其中,所述第一校验电路配置为:通过第一控制电路从第一存储器读取测试数据,得到第一读取结果并存储在第一存储器中;通过第一控制电路从第二存储器读取测试数据,得到第二读取结果并存储在第一存储器中,通过第一控制电路从第三存储器读取测试数据,得到第三读取结果并存储在第一存储器中;将第一读取结果、第二读取结果和第三读取结果与存储在第一校验电路中的标准结果进行比较,并进行如下判断:当第一读取结果和第二读取结果正确而第三读取结果异常时,判断出第三计算节点异常;当第一读取结果和第三读取结果正确而第二读取结果异常时,判断出第二计算节点异常,但第二路由电路正常工作;当第二读取结果和第三读取结果正确而第一读取结果异常时,判断出第一存储器异常;当第二读取结果和第三读取结果异常而第一读取结果正确时,判断出至少第二计算节点异常。

14、根据权利所13的计算芯片,其特征在于,所述计算芯片配置为:当第一读取结果和第三读取结果正确而第二读取结果异常时,将第二计算节点的存储器中存储的数据转移到其他计算节点,并将第二计算节点标记为仅执行路由功能的节点。

15、根据1所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路还连接到该计算节点的运算电路。

16、根据1所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路配置为:将测试数据发送到所述运算电路;从所述运算电路接收运算结果;以及将所述运算结果与存储在所述校验电路中的标准结果进行比较,当运算结果与标准结果不一致时,向该计算节点中的控制电路发出指示运算电路故障的信号。

17、根据16所述的计算芯片,其特征在于,每个计算节点配置为:当控制电路接收到指示运算电路故障的信号时,停止该计算节点的运算电路的操作,并将该计算节点标记为仅执行路由功能和数据存储功能的计算节点。

18、根据1所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路还连接到该计算节点的路由电路。

19、根据1所述的计算芯片,其特征在于,在每个计算节点中,所述校验电路配置为:为即将通过所述路由电路传送的数据插入冗余纠错码;以及通过所述路由电路接收的数据的冗余纠错码对接收的数据进行校验和/或纠错。

20、根据1所述的计算芯片,其特征在于,每个计算节点具有不同的坐标,所述坐标能够被重新配置。

21、根据20所述的计算芯片,其特征在于,每个计算节点的路由电路能够根据坐标来寻址目标计算节点。

22、根据1-21中的任一项所述的计算芯片,其特征在于,所述多个计算节点以点阵形式排列。

23、根据22所述的计算芯片,其特征在于,所述点阵为m行n列的矩阵形式。

24、一种用于计算芯片的操作方法,其特征在于,所述计算芯片是如1-23中任一项所述的计算芯片,所述操作方法包括:

通过每个计算节点中的校验电路,对该计算节点进行错误检测和/或纠错。

25、根据24所述的操作方法,其特征在于,在每个计算节点中,所述校验电路是所述控制电路的一部分。

26、根据24所述的操作方法,其特征在于,所述操作方法包括:在每个计算节点中,通过所述校验电路对计算节点的硬件故障进行检测和/或纠错。

27、根据24所述的操作方法,其特征在于,所述操作方法包括:在每个计算节点中,通过所述校验电路对计算节点中的数据进行检测和/或纠错。

28、根据24所述的操作方法,其特征在于,每个计算节点还包括:存储器,连接到所述控制电路,并且所述控制电路能够直接访问所述存储器。

29、根据24所述的操作方法,其特征在于,所述存储器为易失性存储器。

30、根据28所述的操作方法,其特征在于,在每个计算节点中,所述校验电路还连接到所述存储器。

31、根据28所述的操作方法,其特征在于,所述操作方法还包括,在每个计算节点中,通过所述校验电路执行如下操作:为要存储到所述存储器中的数据插入冗余纠错码;以及通过从所述存储器读出的数据中的冗余纠错码对该数据进行检测和纠错。

32、根据31所述的操作方法,其特征在于,所述冗余纠错码为汉明码。

33、根据28所述的操作方法,其特征在于,所述操作方法还包括:在每个计算节点中,将从所述存储器读出的数据通过所述校验电路中的仲裁器输出。

34、根据33所述的操作方法,其特征在于,所述操作方法包括:通过所述仲裁器中的三个d触发器接收从所述存储器读出的同一数据,并且用相同的时钟信号触发所述三个d触发器;通过所述仲裁器中的比较器来比较所述三个d触发器的输出,并且当其中至少两个d触发器的输出一致时,选择该一致的输出作为从存储器读出的数据。

35、根据28所述的操作方法,其特征在于,所述操作方法还包括:在每个计算节点中,通过所述校验电路在该计算节点的存储器中写入统一的测试数据。

36、根据35所述的操作方法,其特征在于,所述计算芯片包括第一计算节点、第二计算节点和第三计算节点,其中,所述第一计算节点包括第一控制电路、第一路由电路、第一存储器和第一校验电路,所述第二计算节点包括第二控制电路、第二路由电路、第二存储器和第二校验电路,所述第三计算节点包括第三控制电路、第三路由电路、第三存储器和第三校验电路,并且其中,所述第一计算节点与所述第二计算节点直接连接,所述第二计算节点与所述第三计算节点直接连接;其中,所述操作方法还包括,通过第一校验电路执行如下操作:通过第一控制电路从第一存储器读取测试数据,得到第一读取结果并存储在第一存储器中;通过第一控制电路从第二存储器读取测试数据,得到第二读取结果并存储在第一存储器中;通过第一控制电路从第三存储器读取测试数据,得到第三读取结果并存储在第一存储器中;将第一读取结果、第二读取结果和第三读取结果与存储在第一校验电路中的标准结果进行比较,并进行如下判断:当第一读取结果和第二读取结果正确而第三读取结果异常时,判断出第三计算节点异常;当第一读取结果和第三读取结果正确而第二读取结果异常时,判断出第二计算节点异常,但第二路由电路正常工作;当第二读取结果和第三读取结果正确而第一读取结果异常时,判断出第一存储器异常;当第二读取结果和第三读取结果异常而第一读取结果正确时,判断出至少第二计算节点异常。

37、根据权利所36的操作方法,其特征在于,所述操作方法还包括:当第一读取结果和第三读取结果正确而第二读取结果异常时,将第二计算节点的存储器中存储的数据转移到其他计算节点,并将第二计算节点标记为仅执行路由功能的节点。

38、根据24所述的操作方法,其特征在于,在每个计算节点中,所述校验电路还连接到该计算节点的运算电路。

39、根据24所述的操作方法,其特征在于,所述操作方法还包括,在每个计算节中,通过校验电路执行如下操作:将测试数据发送到所述运算电路;从所述运算电路接收运算结果;以及将所述运算结果与存储在所述校验电路中的标准结果进行比较,当运算结果与标准结果不一致时,向该计算节点中的控制电路发出指示运算电路故障的信号。

40、根据39所述的操作方法,其特征在于,所述操作方法还包括:当控制电路接收到指示运算电路故障的信号时,停止该计算节点的运算电路的操作,并将该计算节点标记为仅执行路由功能和数据存储功能的计算节点。

41、根据24所述的操作方法,其特征在于,在每个计算节点中,所述校验电路还连接到本计算节点的路由电路。

42、根据24所述的操作方法,其特征在于,所述操作方法还包括,在每个计算节点中,通过所述校验电路执行如下操作:为即将通过所述路由电路传送的数据插入冗余纠错码;以及通过所述路由电路接收的数据的冗余纠错码对接收的数据进行校验和/或纠错。

43、根据24所述的操作方法,其特征在于,所述操作方法还包括:为每个计算节点分配不同的坐标,所述坐标能够被重新配置。

44、根据43所述的操作方法,其特征在于,每个计算节点的路由电路能够根据坐标来寻址目标计算节点。

45、根据24-44中的任一项所述的操作方法,其特征在于,所述多个计算节点以点阵形式排列。

46、根据45所述的操作方法,其特征在于,所述点阵为m行n列的矩阵形式。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

在说明书及权利要求中的词语“前”、“后”、“顶”、“底”、“之上”、“之下”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其他取向上操作。

如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。

如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪音以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。

上述描述可以指示被“连接”或“耦合”在一起的元件或节点或特征。如在此所使用的,除非另外明确说明,“连接”意指一个元件/节点/特征与另一种元件/节点/特征在电学上、机械上、逻辑上或以其它方式直接地连接(或者直接通信)。类似地,除非另外明确说明,“耦合”意指一个元件/节点/特征可以与另一元件/节点/特征以直接的或间接的方式在机械上、电学上、逻辑上或以其它方式连结以允许相互作用,即使这两个特征可能并没有直接连接也是如此。也就是说,“耦合”意图包含元件或其它特征的直接连结和间接连结,包括利用一个或多个中间元件的连接。

另外,仅仅为了参考的目的,还可以在下面描述中使用某种术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。

还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。

在本公开中,术语“提供”从广义上用于涵盖获得对象的所有方式,因此“提供某对象”包括但不限于“购买”、“制备/制造”、“布置/设置”、“安装/装配”、和/或“订购”对象等。

本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。

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