具有分布式信箱结构的多处理器系统及其沟通方法

文档序号:1397968 发布日期:2020-03-03 浏览:30次 >En<

阅读说明:本技术 具有分布式信箱结构的多处理器系统及其沟通方法 (Multiprocessor system with distributed mailbox structure and communication method thereof ) 是由 李安邦 于 2019-02-14 设计创作,主要内容包括:一种具有分布式信箱结构的多处理器系统及其沟通方法。所述多处理器系统包括多个处理器,每一处理器被配置有相应的一专有信箱与一专有信道,且所述沟通方法包括如下步骤。当这些处理器的第一处理器要与第二处理器进行沟通时,第一处理器是通过公共总线来写入数据到第二处理器的专有信箱中,以及当该数据写入完成时,第二处理器的专有信箱是发出中断信号给第二处理器,收到中断信号后的第二处理器则通过相应的专有信道来读取其专有信箱内的该数据,因此,在第二处理器读取该数据时,它就不会占用到公共总线。(A multiprocessor system with a distributed mailbox structure and a communication method thereof are provided. The multiprocessor system comprises a plurality of processors, each processor is configured with a corresponding proprietary mailbox and a proprietary channel, and the communication method comprises the following steps. When the first processor of the processors is to communicate with the second processor, the first processor writes data into the private mailbox of the second processor through the public bus, when the data writing is completed, the private mailbox of the second processor sends an interrupt signal to the second processor, and the second processor after receiving the interrupt signal reads the data in the private mailbox through the corresponding private channel, so that the second processor does not occupy the public bus when reading the data.)

具有分布式信箱结构的多处理器系统及其沟通方法

技术领域

本发明涉及一种多处理器(Multi-Processor)系统,尤其涉及一种具有分布式信箱(Distributed Mailbox)结构的多处理器系统及其沟通方法。

背景技术

在习知的多处理器系统中,通常会有个共享存储器(Share Memory)来作为沟通方案。举例来说,请参阅图1,图1是习知的多处理器系统的功能方块示意图。多处理器系统1包括共享存储器110与多个处理器,例如处理器CPU_0~CPU_N。然而,由于共享存储器110与每一处理器均耦接在同一公共总线(Public Bus)上,因此,只要有一个以上的处理器欲读写共享存储器110时,多处理器系统1就需要作公共总线的排队(Queue)调度,以致于造成公共总线的等待并使整个系统效能下降。

发明内容

有鉴于此,本发明实施例提供一种具有分布式信箱结构的多处理器系统及其沟通方法。所述多处理器系统包括多个处理器,每一处理器被配置有相应的一专有信箱与一专有信道,且所述沟通方法包括如下步骤。当这些处理器的第一处理器要与第二处理器进行沟通时,第一处理器是通过公共总线来写入数据到第二处理器的专有信箱中,以及当该数据写入完成时,第二处理器的专有信箱是发出一中断信号给第二处理器,收到中断信号后的第二处理器则通过相应的专有信道来读取其专有信箱内的该数据。

此外,本发明实施例另提供一种处理器错误检查方法。所述处理器错误检查方法可同样执行于前述多处理器系统中,且其包括如下步骤。当这些处理器的第一处理器要与第二处理器进行沟通时,第一处理器是通过公共总线来写入数据到第二处理器的专有信箱中,以及当第二处理器的专有信箱收到该数据时,第二处理器的专有信箱是开始进行计时,并且直到计时的结果超过一阈值时,第二处理器的专有信箱是发出一超时信号给第二处理器,收到超时信号后的第二处理器则来对第一处理器进行重置。

本发明的其他目的和优点可以从本发明所揭露的技术特征中得到进一步的了解。为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举实施例并配合所附图式,作详细说明如下。

附图说明

图1是习知的多处理器系统的功能方块示意图;

图2是本发明实施例所提供具有分布式信箱结构的多处理器系统的功能方块示意图;

图3A是本发明实施例所提供的沟通方法中有关第一处理器的流程示意图;

图3B是本发明实施例所提供的沟通方法中有关第二处理器的流程示意图;

图4是图2的多处理器系统中的专有信箱的功能方块示意图;

图5是本发明实施例所提供的处理器错误检查方法的流程示意图。

具体实施方式

在下文中,将通过附图说明本发明的各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的例示性实施例。此外,在附图中相同参考数字可用以表示类似的组件。

请参阅图2,图2是本发明实施例所提供具有分布式信箱结构的多处理器系统的功能方块示意图。如图2所示,多处理器系统2包括多个处理器,且每一处理器被配置有相应的一专有信箱与一专有信道。例如,处理器CPU_0被配置有专有信箱MB_0与专有信道210,处理器CPU_1则被配置有专有信箱MB_1与专有信道211,以此类推,处理器CPU_N被配置有专有信箱MB_N与专有信道21N。可以理解的是,上述N即为大于1的任意正整数,且每一专有信箱均可由任意存储媒体所组成,例如静态随机存储器(SRAM)或动态随机存储器(DRAM)等,但本发明皆不以此为限制。

如图2所示,因为所有处理器与专有信箱均耦接在同一公共总线上,所以在本实施例中,当这些处理器的第一处理器,例如处理器CPU_0要向第二处理器,例如处理器CPU_1写入数据时,第一处理器CPU_0是通过公共总线来写入数据到第二处理器CPU_1的专有信箱MB_1中,并且再由第二处理器CPU_1自其专有信箱MB_1中读取被写入的该数据,以藉此进行多处理器间的沟通方法。需说明的是,当第一处理器CPU_0要写入数据到第二处理器CPU_1的专有信箱MB_1前,第一处理器CPU_0较佳可先确认第二处理器CPU_1的专有信箱MB_1是否具有足够的存储空间以存储该数据,如果是,第一处理器CPU_0才通过公共总线来写入该数据到第二处理器CPU_1的专有信箱MB_1中,并且当数据写入完成时,专有信箱MB_1较佳可发出一中断信号IS给第二处理器CPU_1,或者设定第二处理器CPU_1的寄存器(未绘示),以便告知第二处理器CPU_1目前有数据被写入到其专有信箱MB_1中。收到中断信号IS或读取寄存器的值后,第二处理器CPU_1则通过相应的专有信道211来读取其专有信箱MB_1内的该数据,并且再对该数据进行相关处理。

也就是说,每一处理器被配置有相应的专有信箱,而非多个处理器共用同一信箱或存储器,因此,专有信箱所存储数据的管理程序就可简化许多。再者,由于每一处理器是通过相应的专有信道来存取其专有信箱内的数据,因此在每一处理器读取其专有信箱时,本实施例就不需要通过公共总线,以致于不会占用公共总线的资源,并可使整个系统效能提升。另外,当任一处理器要写入数据到其专有信箱时,该处理器除了可通过专有信道来写入数据以避免占用公共总线的资源外,该处理器亦可通过公共总线而将数据写入到其专有信箱中。

值得注意的是,由于本实施例的多处理器系统2较佳可是以数据存储装置来实现,因此,在主机(未绘示)下达主机命令给多处理器系统2时,多处理器系统2的前端(FrontEnd,FE)处理器,例如处理器CPU_0是率先处理主机命令,例如自传输界面中取得主机命令并排序,并且再将其处理过的主机命令写到要沟通的后端(Back End,BE)处理器,例如处理器CPU_1的专有信箱MB_1中,以使得处理器CPU_1根据经前端处理器所处理过的主机命令来执行特定功能。这也就是说,上述所谓的「数据」即可是指经前端处理器所处理过的主机命令,或者单纯是指多个处理器间所彼此传送的命令,但本发明皆不以此为限制。

类似地,在本实施例中,每一处理器较佳可根据进阶延伸界面(AdvancedeXtensible Interface,AXI)协议来在公共总线上进行数据传送,例如第一处理器要写入数据到其他处理器的专有信箱中,公共总线较佳可具有一仲裁器(未绘示)来处理所有或大部份处理器的写入需求,并且依据写入需求、多个处理器间的优先顺序,或者发出写入需求的先后顺序,以及多个处理器间的先后顺序等,来依序准许第一处理器的写入需求。因此,当写入需求被准许后的第一处理器才可通过公共总线来写入数据到其他处理器的专有信箱中,而写入需求未被准许的第一处理器,则需等待至写入需求被准许后才能存取公共总线。

另外,每一处理器较佳可根据自我登录(Self Register)协议来读取其专有信箱内的数据。例如,当有数据被写入到第二处理器的专有信箱后,专有信箱则发出中断信号IS给第二处理器。接着,第二处理器可根据自我登录协议来读取其专有信箱内的该数据,并且当该数据读取完毕后,第二处理器更可根据自我登录协议来告知其专有信箱删除或无效化该数据,如此一来,该专有信箱就可回收旧数据所占的存储空间,以从而用来存储新数据。相对地,在本实施例中,第一处理器较佳可写入一笔或多笔的数据到第二处理器的专有信箱中,且第二处理器较佳亦可自其专有信箱中读取一笔或多笔的数据,但本发明皆不以此为限制。

此外,在本实施例中,每一专有信箱更可输出一状态信号以指示其是否具有足够的存储空间以存储数据,且每一专有信箱较佳可收到来自其他专有信箱所输出的状态信号。例如,专有信箱MB_0输出状态信号ST_0,且专有信箱MB_0收到来自专有信箱MB_1到专有信箱MB_N所分别输出的状态信号ST_1~ST_N。相对地,专有信箱MB_1输出状态信号ST_1,且专有信箱MB_1收到来自专有信箱MB_0及专有信箱MB_2到专有信箱MB_N所分别输出的状态信号ST_0及ST_2~ST_N,以此类推,专有信箱MB_N则输出状态信号ST_N,且专有信箱MB_N收到来自专有信箱MB_0到专有信箱MB_N-1所分别输出的状态信号ST_0~ST_N-1。因此,当第一处理器,例如处理器CPU_0要与第二处理器,例如处理器CPU_1进行沟通时,第一处理器CPU_0是可根据其专有信箱MB_0所收到的状态信号ST_1来确认专有信箱MB_1是否具有足够的存储空间以存储该数据。又或者,在其他实施例中,所有专有信箱的状态信号较佳亦可输出至每一处理器中,如此一来,第一处理器CPU_0即可直接依据所收到的状态信号ST_1来判断是否写入数据到专有信箱MB_1中。

举例来说,每一状态信号均较佳可由一比特值来实现,且在比特值为0时,此状态信号所代表的专有信箱具有足够的存储空间以存储数据,而在比特值为1时,此状态信号所代表的专有信箱不具有足够的存储空间以存储数据,但本发明并不以此为限制。接着,以下将再使用图3A与图3B来进一步说明本实施例的沟通方法的一种实施方式,其中图3A是本发明实施例所提供的沟通方法中有关第一处理器的流程示意图,而图3B则是本发明实施例所提供的沟通方法中有关第二处理器的流程示意图。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。

如图3A所示,当第一处理器,例如处理器CPU_0要与第二处理器,例如处理器CPU_1进行沟通时,在步骤S110中,第一处理器CPU_0是从专有信箱MB_0中读取专有信箱MB_1所输出的状态信号ST_1,并且在步骤S120中,根据状态信号ST_1,判断专有信箱MB_1是否具有足够的存储空间以存储该数据。如果是,即继续执行步骤S130。如果不是,则返回执行步骤S110。也就是说,若依前述内容为例,在专有信箱MB_1尚未具有足够的存储空间以存储该数据前,即状态信号ST_1为1时,第一处理器CPU_0是会持续执行步骤S110及步骤S120的回圈,并且直到判断状态信号ST_1为0为止。

需说明的是,在本实施例中,每一专有信箱较佳可藉由自行检查其存储空间是否低于一预设值来决定产生为0或1的状态信号,但本发明并不以此为限制。总而言之,本发明并不限制每一专有信箱所产生或输出状态信号时的具体实现方式,本技术领域中具有通常知识者应可依据实际需求或应用来进行相关设计。此外,必须了解的是,专有信箱里的内容格式较佳可由多处理器系统2的固件(Firmware)来定义,因此本实施例也就能够轻易改变数据的内容格式,从而作到易于延伸且弹性的结构优点。接着,在步骤S130中,第一处理器CPU_0则通过公共总线来写入该数据到专有信箱MB_1中,并当该数据写入完成时,专有信箱MB_1是发出中断信号IS给第二处理器CPU_1。

在本实施例中,中断信号IS较佳亦可由一比特值来实现,例如当第二处理器CPU_1收到并判断专有信箱MB_1发出为1的中断信号IS时,第二处理器CPU_1便可得知其专有信箱MB_1已被成功写入新数据。因此,如图3B所示,在步骤S140中,第二处理器CPU_1是会等待专有信箱MB_1发出中断信号IS,并且在步骤S150中,判断是否收到中断信号IS。如果是,即继续执行步骤S160。如果不是,则返回执行步骤S140。也就是说,若依前述内容为例,在该数据尚未写入完成前,即中断信号IS不为1时,第二处理器CPU_1是会持续执行步骤S140及步骤S150的回圈,并且直到收到为1的中断信号IS为止。最后,在步骤S160中,第二处理器CPU_1则通过相应的专有信道211来读取专有信箱MB_1内的该数据。

另一方面,本发明进一步提供专有信箱的一种实施方式。请一并参阅图4,图4是图2的多处理器系统中的专有信箱的功能方块示意图。值得注意的是,为了方便以下说明,本实施例将仅以处理器CPU_1的专有信箱MB_1作为例子来进行说明,但其并非用以限制本发明。如图4所示,专有信箱MB_1包括存储空间410、控制寄存器(Control Register)420与信箱控制器(Mailbox Controller)430。值得一提的是,上述控制寄存器420与信箱控制器430可以是通过纯硬件电路来实现,或者是通过硬件电路搭配固件或软件来实现,但本发明皆不以此为限制。此外,上述各元件可以是整合或是分开设置,但本发明亦不以此为限制。总而言之,本发明并不限制专有信箱MB_1的具体实现方式。

在本实施例中,存储空间410较佳为SRAM,并较佳可采用先进先出(FIFO)的排队方式来存储(暂存)数据。存储空间410的大小例如是1KB,在此设定下,存储空间410可存储64个大小为16B的数据,或32个大小为32B的数据,或16个大小为64B的数据。控制寄存器420则存储专有信箱MB_1的相关设定,例如控制寄存器420可用来设定专有信箱MB_1的一中断条件,并当该中断条件满足时,例如有一笔或超过一笔的数据被成功写入到信箱MB_1时,信箱MB_1则发出中断信号IS到处理器CPU_1。另外,信箱控制器430用来写入设定值到控制存储器420中,并且管理存储空间410,以及产生中断信号IS与状态信号ST_1。

在本实施例中,信箱控制器430较佳可依据处理器CPU_1的设定来管理存储空间410中的数据大小及数量。假如数据大小的设定为64B,当存储空间410的剩余可用空间小于等于预设值,例如64B(即存储空间410仅能够再存储一笔数据)时,信箱控制器430则产生为1的状态信号ST_1,如此一来,所有处理器就不能再对专有信箱MB_1进行数据的写入。接着,在处理器CPU_1读取专有信箱MB_1所存储的数据后,专有信箱MB_1则回收已读取过数据的存储空间,使得剩余可用空间例如增加为128B。此时,因为剩余可用空间大于该预设值,所以信箱控制器430则产生为0的状态信号ST_1,而当状态信号ST_1为0时,欲写入数据到专有信箱MB_1的处理器CPU_0就可以对公共总线提出写入需求,待写入需求被准许后,处理器CPU_0就能将数据写入到专有信箱MB_1中。

也就是说,如图4所示,当处理器CPU_0要与处理器CPU_1进行沟通时,处理器CPU_0是根据收到专有信箱MB_1所输出的状态信号ST_1,判断专有信箱MB_1是否具有足够的存储空间410以存储数据。如果是,处理器CPU_0即通过公共总线来写入数据到专有信箱MB_1的存储空间410中。接着,当数据写入完成时,专有信箱MB_1的信箱控制器430则产生并发出中断信号IS给处理器CPU_1。收到中断信号IS后的处理器CPU_1则通过相应的专有信道211来存取存储空间410内的数据。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。

另一方面,本实施例所提供的专有信箱除了可作为不同处理器间的沟通方案外,还可用来检查出写入数据的处理器是否发生错误,并且协助重置(Reset)发生错误的该处理器,以避免其造成整个多处理器系统2的卡死(Stuck)。因此,请一并参阅图5,图5是本发明实施例所提供的处理器错误检查方法的流程示意图。需说明的是,图5的处理器错误检查方法是可以执行于图2的多处理器系统2中,但本发明亦不限制图5的处理器错误检查方法仅能够执行于图2的多处理器系统2中。另外,图5中部分与图4相同之流程步骤以相同之图号标示,故于此便不再多加详述其细节。

如图5所示,当第一处理器,例如处理器CPU_0要与第二处理器,例如处理器CPU_1进行沟通时,在步骤S110中,第一处理器CPU_0读取专有信箱MB_1所输出的状态信号ST_1,并且在步骤S120中,根据状态信号ST_1,判断专有信箱MB_1是否具有足够的存储空间以存储数据。如果是,即继续执行步骤S130。如果不是,则返回执行步骤S110。接着,在步骤S130中,第一处理器CPU_0通过公共总线来写入该数据到专有信箱MB_1中,而当专有信箱MB_1收到该数据时,在步骤S510中,专有信箱MB_1是开始进行计时,并且在步骤S520中,判断是否接收完成该数据,亦即判断是否该数据写入完成。如果不是,即继续执行步骤S530。需说明的是,由于专有信箱MB_1所根据收到的数据来判断是否完成接收的运作原理已为本技术领域中具有通常知识者所习知,因此有关上述步骤S520的细部内容于此就不再多加赘述。

然后,在步骤S530中,第二处理器CPU_1的专有信箱MB_1则判断计时的结果是否超过一阈值。如果不是,即返回执行步骤S520。如果是,则继续执行步骤S540与步骤S550。在步骤S540中,专有信箱MB_1是发出一超时信号TS给第二处理器CPU_1,以便告知第二处理器CPU_1目前写入数据的第一处理器CPU_0发生错误,并且在步骤S550中,收到超时信号TS后的第二处理器CPU_1则来对第一处理器CPU_0进行重置,例如第二处理器CPU_1较佳可发出一重置讯号(未绘示)到第一处理器CPU_0中,使得第一处理器CPU_0可根据该重置讯号来进行重置,但本发明并不以此为限制。

也就是说,假设第一处理器CPU_0是要写入64B的数据到专有信箱MB_1中,且在专有信箱MB_1收到来自第一处理器CPU_0的数据而开始进行计时后,如果第一处理器CPU_0仅写入24B的数据就停止写入的话,这表示第一处理器CPU_0可能发生内部错误,从而导致第一处理器CPU_0无法及时完成数据的写入,所以直到计时的结果超过阈值,例如1000毫秒时,专有信箱MB_1则产生超时信号TS来通知第二处理器CPU_1,第二处理器CPU_1再依据超时信号TS所指示的第一处理器CPU_0,或者依据写入数据的请求端资讯而判断出数据来源为第一处理器CPU_0,以对第一处理器CPU_0进行重置。需说明的是,由于该计时及各类判断功能的设定较佳由信箱控制器430将设定值写入控制寄存器420来实现,而信箱控制器430较佳由对应的处理器CPU_1所控制。因此,信箱控制器430除了可用来产生并输出中断信号IS与状态信号ST_1外,还可用来产生并输出超时信号TS。

另一方面,在步骤S520中,如果专有信箱MB_1是判断接收完成该数据的话,亦即当该数据写入完成至专有信箱MB_1时,本实施例就继续执行步骤S560、步骤S570及步骤S160。在步骤S560中,专有信箱MB_1停止并归零该计时,并且在步骤S570中,专有信箱MB_1是发出中断信号IS给第二处理器CPU_1。最后,在步骤S160中,收到中断信号IS后的第二处理器CPU_1则通过相应的专有信道211来读取专有信箱MB_1内的该数据。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。

综上所述,本发明实施例所提供的具有分布式信箱结构的多处理器系统及其沟通方法,可以是不需要有习知的共享存储器,而是改设计让每一处理器均配有专有信箱,这样不同处理器间的沟通方案就可以通过公共总线来写入数据到对映处理器的专有信箱中,并且由于每一处理器是通过专有信道来存取专有信箱内的数据,因此,在每一处理器读取专有信箱时,本发明实施例也就不会影响到公共总线,以致于降低公共总线的使用率,并使整个系统效能提升。此外,本发明实施例另所提供的处理器错误检查方法,可以是用这些专有信箱检查出写入数据的处理器是否发生错误,并且协助重置发生错误的该处理器,以避免其造成整个多处理器系统的卡死。

以上所述仅为本发明的实施例,其并非用以局限本发明的专利范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于高带宽存储器的可缩放芯片上网络

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!