细胞阵列计算系统的制作方法_4

文档序号:9929885阅读:来源:国知局
进行的。
[0118]在实际实施时,若终点细胞在识别出接收到的数据中所标明的要被访问的地址后,则接收的数据可以被该终点细胞内的网络控制器直接写入该细胞的非易失随机存储器中的相应地址,在这种情况下,细胞可以实现“繁殖”,一个细胞可以给另外一个细胞下载程序;若终点细胞在识别出接收到的数据中所标明的MPU之后,接收的数据将交由终点细胞内的MPU处理。
[0119]在本实施例中,由于细胞阵列中的细胞还包括与MPU相连的网络控制器,因此所述起点细胞向终点细胞发出数据、所述细胞阵列中的任一细胞接收相邻细胞发出的数据或中转的数据并判断本细胞为最终细胞或是中转细胞、将接收到的数据存入本细胞的非易失随机存储器或者通知本细胞的MPU对接收的数据进行处理,均是在所述网络控制器的控制下完成的。
[0120]具体实施时,所述起点细胞向终点细胞发出的数据先由所述网络控制器输入所述输出先入先出队列,再由所述网络控制器从所述输出先入先出队列输出至与所述起点细胞相邻的细胞;若所述细胞阵列中的任一细胞接收到相邻细胞发出的数据或中转的数据,则将接收到的数据输入所述输入先入先出队列,并在判断出接收到的数据需要进行中转时再将该数据输入所述输出先入先出队列。
[0121]此外,若所述网络控制器判断出所述输入先入先出队列或输出先入先出队列为空或者已满,或接收到相邻细胞发出或中转的数据,或向相邻细胞发出数据或中转数据,则向所述微处理器发送中断信号。
[0122]在具体实施时,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述终点细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述终点细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述终点细胞的细胞。当然,所述待选相邻细胞的数量有可能为两个,此时则选择这两个待选相邻细胞中输出数据的通信任务更少的细胞作为中转细胞。
[0123]本实施例中,所述起点细胞或中转细胞通过上述方式选定发送方向,实际上也可以认为是细胞阵列中细胞间通信的路径选择过程。可以参阅图8,图8中的每个矩形表示细胞阵列中的一个细胞,图8中示出的所有细胞为整个细胞阵列中的一部分,假设相邻细胞之间按图3所示的通信方式进行。
[0124]如果A点表示一个起点细胞,该起点细胞准备向C点所在的终点细胞发出数据,由于A点与C点之间显然是能够形成一条直线的通信路径,则A点所在的细胞将数据发向与其相邻的B点所在的细胞,同理,B点所在的细胞作为中转细胞,继续沿着A点与C点之间的直线向C点所在细胞的方向中转数据,在A点与C点之间形成的细胞间通信路径上依次相邻的细胞,将A点所在细胞发出的数据多次转发,直至传送到C点所在细胞。
[0125]如果D点表示另一个起点细胞,该起点细胞准备向G点所在的终点细胞发出数据,由于D点与G点之间显然是无法形成一条直线的通信路径,则在与D点所在细胞相邻的细胞之中,E点所在的细胞和F点所在的细胞显然更靠近G点所在的终点细胞,则这两个细胞属于D点所在细胞的待选相邻细胞,可以选择其中输出数据的通信任务更少的细胞作为中转细胞,若这两个细胞输出数据的通信任务相同,则随意选择一个细胞作为中转细胞。如图8所示,选择E点所在的细胞还是F点所在的细胞,将形成不同的细胞间通信路径。
[0126]需要说明的是,本实施例中是以图3所示的相邻细胞之间的通信方式为例对细胞间通信的路径选择进行说明的,本领域技术人员能够理解的是,若是采用图4所示的相邻细胞之间的通信方式,则可供选择的发送方向将会更多。
[0127]综上,在实际实施时,每一个发出或中转数据的细胞,其网络控制器都必须选择一个相邻的细胞作为下一站。当起点和终点在一条直线上时,合理的选择一般只有一个;其他情况下,有两个同样合理的选择,网络控制器将选择一个交通相对不忙的邻居。
[0128]如果某个输入FIF0队列有数据进入,则网络控制器将首先检查它:
[0129]如果终点是本细胞,那么:若终点是特定相对地址,由于网络控制器具有直接内存访问(DMA,Direct Memory Access)的能力,将把接收到的数据直接存入所述非易失随机存储器中的相应地址,并用中断通知MPU ;若终点是MPU,则直接用中断信号通知MPU进行处理。
[0130]如果终点是其他细胞,或者本细胞的MPU向外发出数据,那么:若终点与本细胞在一条直线上,则选择正确的方向,向相邻细胞发送数据;其他情况下,有两个可能的方向,选择其中输出FIFO队列更空闲的相邻细胞发送,如果两个待选相邻细胞中的输出FIFO队列的情况相同,则可以从中随意选择一个相邻细胞发送。
[0131]在实际实施时,当所述细胞阵列中存在的数千个MPU —起计算时,怎样把各个细胞的输出数据发送给所述主控CPU就成为一个问题。一般来说,每个MPU可以把输出数据存放在其所在细胞的非易失随机存储器中的约定地址,让主控CPU通过逐个轮询每个MPU的方式进行读取。然而,这并不适用于所有问题,在有些问题中,当细胞阵列中只有少数几个细胞需要向主控CPU输出数据时,那么主控CPU逐个轮询每个MPU效率太低。
[0132]因此,本发明实施例提供的细胞阵列计算系统还包括:所述细胞阵列中还设有至少一个专职输出细胞,所述专职输出细胞作为终点细胞接收并存储其他细胞给所述主控CPU的输出数据,并以中断信号通知所述主控CPU读取所述输出数据。
[0133]在具体实施时,还可以在所述专职输出细胞的非易失随机存储器中设置FIFO队列,其他细胞给所述主控CPU的所有输出数据存储在该FIFO队列中,该FIFO队列应当具有足够的存储空间,有能力存储其他细胞给所述主控CPU的所有输出数据。
[0134]实际实施时,可以在细胞阵列中选择一个或几个细胞作为所述专职输出细胞,一般可以选择在位置上与主控CPU之间进行通信更为便捷的细胞。所述专职输出细胞与所述主控CPU之间设有中断线,所述专职输出细胞可以给主控CPU发送中断信号,例如新到其他细胞的输出数据、MRAM中设置的FIFO队列已满、MRAM中设置的FIFO已空等等。
[0135]基于上述设有专职输出细胞的细胞阵列计算系统,本发明实施例还提供一种细胞阵列计算系统中的通信方法,包括:所述专职输出细胞接收并存储其他细胞给所述主控CPU的输出数据之后,向所述主控CPU发出通知读取的中断信号;所述主控CPU在接收到所述通知读取的中断信号后,从所述专职输出细胞中读取所述输出数据。
[0136]具体实施时,所述其他细胞可以通过如下方式将所述输出数据发送至所述专职输出细胞:所述其他细胞中的任一细胞作为起点细胞,将所述输出数据按选定的发送方向发送至相邻的细胞;当所述细胞阵列中的任一细胞接收到相邻细胞发送的所述输出数据时,若判断出所述输出数据中所标明的终点细胞的ID与本细胞的ID —致,由于所述输出数据中所标明的终点细胞的ID为所述专职输出细胞的ID,表明本细胞为所述专职输出细胞,则将所述输出数据存入本细胞的非易失随机存储器,否则本细胞作为中转细胞,在选定发送方向后将所述输出数据中转给与本细胞相邻的细胞。
[0137]所述其他细胞将所述输出数据发送至所述专职输出细胞的过程中,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述专职输出细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述专职输出细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述专职输出细胞的细胞。
[0138]本发明实施例的专职输出细胞的实施过程还可以参阅图9。图9示出了主控CPU、细胞阵列以及细胞阵列总线,细胞阵列内的一个个小方格简单地表示出一个个细胞,其中J点所在的细胞(即粗线框小方格表示的细胞)为专职输出细胞,图9还进一步示出了专职输出细胞的结构,如图9中虚线箭头所示,可以看到,专职输出细胞中的MRAM中设有存储其他细胞给所述主控CPU的所有输出数据的FIFO队列。
[0139]假设H点所在的细胞和I点所在的细胞需要向主控CPU提供输出数据,则可以通过细胞之间的通信方式将所述输出数据发送至J点所在的细胞,H点至J点的细胞间通信路径以及I点至J点的细胞间通信路径,请参阅图9。由于细胞间通信方式此前已有详细描述,此处不再赘述。
[0140]J点所在的细胞接收到H点所在的细胞或I点所在的细胞发出的输出数据后,则可以发送通知读取的中断信号给主控CPU,主控CPU接收到该通知读取的中断信号后,便可以通过细胞阵列总线从J点所在的细胞中读取该输出数据。
[0141]通过在细胞阵列中设置专职输出细胞,以所述专职输出细胞作为所述终点细胞接收并存储其他细胞给主控CPU的输出数据,并以中断信号的方式通知所述主控CPU读取所述输出数据,如此能够在只有少数几个细胞需要向主控CPU输出数据时提高主控CPU读取输出数据的效率。
[0142]下面再介绍一个应用上述细胞阵列计算系统的实例。
[0143]语音识别可以用已知的语音库和输入的声音信号进行比对,这个比对可以是在时域比对也可以在频域比对。当需要比对的字词越来越多,比如说,考虑到不同的口音可以到数万个,如果仅依靠少数几个CPU的计算能力对于实时语音识别就显得不足了。
[0144]本发明实施例提供的细胞阵列计算系统则非常适合解决此类问题。
[0145]为此,本发明实施例还提供一种应用上述细胞阵列计算系统进行数据比对的方法,包括:所述主控CPU选择所述细胞阵列中全部或一个目标区域内的细胞后,把比对程序广播到每个细胞的非易失随机存储器中;所述主控CPU把所选择的每个细胞负责比对的样品分别写入到各细胞的约定地址中;所述主控CPU广播指令给所选择细胞的微处理器,使各个微处理器完成初始化后等待输入待比对的数据;所述主控CPU把待比对的数据广播给所选择细胞的微处理器;所选择细胞的微处理器运行所述比对程序,对接收到的待比对的数据与本细胞负责比对的样品进行比较,若获得两者一致的比较结果,则使用上述细胞阵列计算系统中的通信方法,将所述比较结果作为输出数据发送至所述专职输出细胞以供所述主控CPU读取。
[0146]具体实施时,所述待比对的数据既可以是待识别的语音数据,也可以是待识别的图像数据,还可以是其他需要进行比对的数据。
[0147]在实际实施时,每个MPU不断接受语音数据进行比对,通常情况下,几百个到几千个细胞中,只有一个或少数几个得到待比对的数据与本细胞负责比对的样品两者相一致的比较结果,这些细胞把比较结果发送到专职输出细胞,后者用中断信号通知主控CPU接收。
[0148]若所述待比对的数据具体为语音数据,则数据比对的过程可以在时域或是频域进行,如果是后者,可以先由主控CPU分段进行快速傅里叶变换(FFT,Fast FourierTransformat1n),再广播已转换到频域的语音数据给所选择细胞的MPU。
[0149]通过应用上述设有专职输出细胞的细胞阵列计算系统进行数据比对,可以使细胞阵列中大量的细胞同时进行比对程序的运算,由此具有极强的并行处理能力,解决了现有技术中CPU和内存之间的通信瓶颈问题,使实时语音/图像识别的能力得
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1