专利名称:多处理器系统及其控制方法
技术领域:
本发明涉及多处理器系统及其控制方法,具体涉及并行控制多个子处理器的多处 理器系统及其控制方法。
背景技术:
多处理器系统通常被归类为SMP(对称多处理器)型,其中,功能被均勻地和对称 地分配至各个子处理器,或被归类为AMP (非对称多处理器)型,其中,功能被非均勻地和非 对称地分配至各个子处理器。在AMP型的多处理器系统中,传统上使用主处理器直接控制多个其它子处理器的 方法。在该方法中,管理整个系统以执行主要处理的主处理器还执行对在功能上分布的每 个子处理器的激活控制。对每个子处理器的控制是通过使用主处理器有权对其进行访问的 系统总线来执行的。每个子处理器向主处理器输入中断信号,接着主处理器通过使用系统 总线检查每个子处理器的状态,从而执行来自每个子处理器的处理完成通知。因此,可以将 对整个系统的状态的管理以及各个子系统的状态的管理聚集在一处。因此,具有的优势是 便于在整个多处理器系统中考虑和实现控制序列,以及在调试时增强可观察性。然而,在上述方法中,存在的问题是,整个系统LSI (大规模集成)中的处理因近年 来系统LSI的规模和复杂度的增长而崩溃。主要因素在于,在主处理器执行整个控制的传 统架构中,处理负载集中在主处理器中,以至于由于在系统LSI中安装的子处理器的数量 增加而发生拥塞。已经提出了第一至第三相关技术来解决该问题。之后,将对第一至第三相关技术 顺序进行描述。[第一相关技术]专利文献1公开了一种多处理器系统,包括作为主处理器的替代来并行控制子处 理器的执行控制设备。该执行控制设备通常使两个或更多个子处理器以流水线的并行方式 操作,从而增强从主处理器的负载分布以及增强每个子处理器的可用性。具体地,如图22中所示,该多处理器包括作为主处理器操作的主处理器1110 ; 作为子处理器操作的从处理器1120以及DMA(直接存储器访问)控制器1130 ;本地存储器 1121,用作从处理器1120的工作区;主存储器1140 ;以及命令执行控制设备1150。在该示 例中,DMA控制器1130控制本地存储器1121和主存储器1140之间的数据传送。注意,将 四个内存库(bank) #01至#03分配给本地存储器1121。此外,命令执行控制设备1150包括通信存储器1151,其中预先存储了主处理器 110所使用的多个命令;命令队列1152,接受来自主处理器1110的命令序列;执行控制器 1160,使从处理器1120以及DMA控制器1130并行执行由命令队列1152接受的命令序列中 的各个命令;完成接受器1153,从从处理器1120以及DMA控制器1130接收指示命令执行 完成的完成通知信号;以及完成通知器1170,响应于来自主处理器1110的请求发送完成通 知信号。
4
此外,执行控制器1160包括下一命令ID保持器1161和1162,以及内存库表1163。 下一命令ID保持器1161和1162是用于存储执行控制器1160必须使从处理器1120以及 DMA控制器1130下次执行的命令的ID的存储器区域。此外,内存库表1163与用于实际标 识本地存储器1121中的内存库的物理内存库号码相关联地,管理在指示访问本地存储器 1121时由命令所使用的虚拟内存库号码。此外,向完成通知器1170提供完成表1171,用于管理每个命令的执行是否已经完 成。[第二相关技术]虽然未在附图中示出,然而已经公知一种实现状态寄存器以检查不同子处理器的 状态的技术。具体地,当一个子处理器在期望通知状态改变的情况下,将其自己的状态改变 写到状态寄存器中时,为作为通知目的地的另一子处理器产生一个中断信号。已接收到中 断信号的子处理器从状态寄存器中获取状态改变。[第三相关技术]专利文献2公开了一种多处理器系统,其中,通过使用FIFO(先入先出)缓冲器来 进行两个处理器之间的通信。具体地,如图23中所示,该多处理器系统包括FIF0缓冲器 2103,用于在处理器2101和2102之间的通信;以及访问控制电路2104,控制对FIFO缓冲 器的访问。此外,为访问控制单元2104提供容量设置寄存器2105,用于设置FIFO缓冲器 2103中的数据的级数。根据寄存器2105中的设置值,对处理器2101和2102中的每一个执 行FIFO缓冲器2103的容量分布。此外,分别从处理器2101和2102对FIFO缓冲器2103 进行访问是分别通过使用写指针2106和2108、以及读指针2107和2109来控制的。引文列表专利文献[专利文献1]日本待审专利申请公开No. 2003-208412[专利文献2]日本待审专利申请公开No. 2003-036240
发明内容
技术问题然而,在上述第一至第三相关技术中,存在的问题是多处理器系统的可扩展性低。 这是因为电路配置取决于子处理器的数目。具体地,在上述第一相关技术的执行控制设备中,内部电路配置取决于与其连接 的子处理器的数目,这是因为从各个子处理器并行输入完成通知信号等。如上所述,在近来 的系统LSI中,通常将多个子处理器集成到单个芯片中,并且需要在短期内扩展系统(换言 之,增加子处理器的数目)。然而,每次系统扩展时必须改变执行控制设备的电路配置。此外,在上述第二相关技术中,所需的状态寄存器的数目取决于子处理器的数目、 状态数目(状态改变的类型的数目)等而改变。因此,每次系统扩展时依然必须改变电路 配置。为了解决该问题,可以考虑预先实现大量状态寄存器的方式。然而,在该情况下,开 发成本增加了。
此外,在上述第三相关技术中,需要根据处理器的数目增加FIFO的数目以及处理 器之间的通信路径的数目。毕竟,对每次系统扩展,电路配置的改变增加了。相应地,本发明旨在提供一种多处理器系统及其控制方法,能够并行控制子处理 器而不损失可扩展性。解决问题的方案为了实现上述目标,根据本发明的一个示例方面的多处理器系统包括至少一个 主处理器;多个子处理器;执行控制装置,用于基于由主处理器所指定的处理序列向每个 子处理器发出处理命令,以及获取由每个子处理器根据处理命令所执行的处理的执行结 果;以及仲裁装置,用于对在执行控制装置以及每个子处理器之间传送处理命令以及执行 结果进行仲裁。此外,根据本发明的一个示例方面的多处理器系统的控制方法提供了一种控制包 括至少一个主处理器以及多个子处理器在内的多处理器系统的方法。该方法包括基于由 主处理器所指定的处理序列向每个子处理器发出处理命令,以及获取由每个子处理器根据 处理命令所执行的处理的执行结果;以及对向每个子处理器传送处理命令以及向主处理器 传送执行结果进行仲裁。有益效果根据本发明,取决于子处理器的数目的接口部分被吸收至仲裁电路(或其等效处 理)中。因此,即使当子处理器的数目增加或减少时,执行控制电路(或其等效处理)的配 置也不会发生改变。相应地,与上述第一至第三相关技术相比,可以显著提高多处理器系统 的可扩展性。此外,对子处理器进行并行控制。因此,可以减少主处理器的处理负载,以及 增强子处理器的可用性。
图1是示出了根据本发明的多处理器系统的示例实施例的通用配置示例的框图;图2是示出了在根据本发明的多处理器系统的示例实施例中通用的处理序列的 配置示例的图;图3是示出了根据本发明的多处理器系统的示例实施例的通用操作示例的序列 图;图4是示出了根据本发明的多处理器系统的第一示例实施例中的配置示例的框 图;图5是示出了根据本发明的多处理器系统的第一示例实施例中的设置处理序列 的操作示例的框图;图6是示出了根据本发明的多处理器系统的第一示例实施例中的发出处理命令 的操作示例的框图;图7是示出了根据本发明的多处理器系统的第一示例实施例中的通知处理状态 的操作示例的框图;图8是示出了根据本发明的多处理器系统的第一示例实施例中所用的处理状态 的格式示例的图;图9是示出了根据本发明的多处理器系统的第一示例实施例中通知处理完成的操作示例的框图;图10是示出了根据本发明的多处理器系统的应用的第一示例的框图;图11是示出了根据本发明的多处理器系统的应用的第二示例的框图;图12是示出了根据本发明的多处理器系统的第二示例实施例中的配置示例的框 图;图13是示出了在根据本发明的多处理器系统的第二示例实施例中所用的控制寄 存器、FIFO管理器以及FIFO存储器控制器的配置示例的框图;图14是示出了由在根据本发明的多处理器系统的第二示例实施例中所用的FIFO 存储器控制器所执行的转换地址的处理以及对访问数据总线进行仲裁的处理的示例的 图;图15A是示出了由在根据本发明的多处理器系统的第二示例实施例中所用的 FIFO存储器控制器所执行的转换数据的处理的一示例的图;图15B是示出了由在根据本发明的多处理器系统的第二示例实施例中所用的 FIFO存储器控制器所执行的转换数据的处理的另一示例的图;图16是示出了在根据本发明的多处理器系统的第二示例实施例中所用的执行控 制电路的地址映射的示例的图;图17是示出了根据本发明的多处理器系统的第三示例实施例中的配置示例的框 图;图18是示出了由在根据本发明的多处理器系统的第三示例实施例中所用的数 据存储器控制器所执行的转换地址的处理以及对访问数据总线进行仲裁的处理的示例的 图;图19是示出了在根据本发明的多处理器系统的第三示例实施例中所用的执行控 制电路的地址映射的示例的图;图20是示出了根据本发明的多处理器系统的第四示例实施例中的配置示例的框 图;图21是示出了根据本发明的多处理器系统的第五示例实施例中的配置示例的框 图;图22是示出了根据本发明的第一相关技术的多处理器系统的配置示例的框图; 以及图23是示出了根据本发明的第三相关技术的多处理器系统的配置示例的框图。
具体实施例方式以下,将参考图1至14、15A和15B,以及16至21,对根据本发明的多处理器系统 的第一至第五实施例进行描述。注意,在全部附图中,对相同的元素分配相同的符号,并且 为了描述清楚,适当地省略重复的说明。首先,参考图1至3,对根据第一至第五示例实施例的多处理器系统的通用配置示 例以及操作示例进行示意性描述。如图1中所示,多处理器系统1包括主处理器(以下,有时缩写为MP) 10 ;“η”单 元(η是2或者更大的整数)子处理器(功能块)20_1至20_η;执行控制电路30,基于由主的处理序列SEQ向每个子处理器20_1至20_n发出处理命令CMD,并获取 指示由每个子处理器20_1至20_n根据处理命令CMD所执行的处理的执行结果的处理状态 STS ;以及仲裁电路40,对在执行控制电路30以及每个子处理器20_1至20_n之间传送处 理命令CMD以及处理状态STS进行仲裁。此外,当基于处理序列SEQ的所有处理完成时,执 行控制电路20向主处理器10发送处理完成通知NTF。注意,可以向子处理器20_1至20_11分配相同的功能或彼此不同的功能。S卩,多处 理器系统1可以操作为SMP型和AMP型的任意一种。上述的处理序列SEQ是结构组,在该结构组中,在其中定义了要由每个子处理器 执行的处理的结构和在其中定义了要由处理获取的数据的结构彼此链接。图2示出了处理 序列SEQ的特定示例。在图2示出的示例中,处理序列SEQ指示以下(1)至(4)(1)处理PA获得数据DO和Dl作为输出数据;(2)处理PB把数据DO当做输入数据,并使数据D2成为输出数据;(3)处理PC把数据Dl当做输入数据,并使数据D3成为输出数据;(4)处理PD把由处理PA和PB所获得的数据D2和D3当做输入数据。在该情况下,执行控制电路30接收处理状态STS,该STS指示从已执行处理PA的 子处理器输出数据DO的完成,接着执行控制电路30发出处理命令CMD来开始处理PB。执 行控制电路30接收处理状态STS,该STS指示输出数据Dl的完成,并接着发出处理命令CMD 来开始处理PC。此外,执行控制电路30接收处理状态STS,该STS指示从已执行处理PB和 PC的两个子处理器单元输出数据D2和D3的完成,并接着发出处理命令CMD来开始处理PD。 注意,虽然省略了说明,然而在处理序列SEQ中的结构中定义了开始各个处理PA至PD的命 令 CMD。接着,参考图3对多处理器系统1的总体操作进行说明。如图3所示,当存在用于操作子处理器的参数(包括输入数据)时,主处理器10将 参数存储在例如可以从各个子处理器对其进行访问的共享存储器50中(步骤Si)。接着, 主处理器10向执行控制电路30输出处理序列SEQ(步骤S2)。以图2中所示的处理序列SEQ为例,执行控制电路30向例如子处理器20_1发出 处理命令CMDl来开始处理PA,并向仲裁电路40输出处理命令CMDl。仲裁电路40将处理 命令CMDl传送给子处理器20_1 (步骤S3)。子处理器201根据处理命令CMDl从共享存储器50读取处理PA所需的参数,并执 行处理PA (步骤S4和SQ。接着,子处理器20_1将处理PA所获取的数据DO写入到共享存 储器50中(步骤S6)。此后,子处理器20_1发送处理状态STS1,STSl向仲裁电路40指示处理PA的完 成。仲裁电路40向执行控制电路传送处理状态STSl (步骤S7)。执行控制电路30识别处理PA的完成,并接着通过仲裁电路40向例如子处理器 20_2输出处理命令CMD2来开始处理PB (步骤S8)。子处理器20_2根据处理命令CMD2从共享存储器50读取处理PB所需的数据D0, 并执行处理PB (步骤S9和S10)。接着,子处理器20_2将处理PB所获得的数据D2写入到 共享存储器50中(步骤Sll),并通过仲裁电路40向执行控制电路30传送处理状态STS2, STS2指示处理PB的完成(步骤S12)。
8
虽然并未示出,但与上述步骤S8并行地,执行控制电路30根据处理序列SEQ,向子 处理器20_1和子处理器20_3至20_n中的任意一个输出处理命令来开始处理PC。接收到 该处理命令的子处理器与上述步骤S9至S12并行执行处理PC,将处理PC所获得的数据Dl 写入到共享存储器50中,并向执行控制电路30传送处理状态,该处理状态指示处理PC的 完成。接着,执行控制电路30向子处理器20_1至20_n中的任意一个输出处理命令来开始 处理PD。接收到该处理命令的子处理器执行处理PD,将处理PD所获得的数据写入到共享 存储器50中,并向执行控制电路30传送处理状态,该处理状态指示处理PD的完成。接着,执行控制电路30识别所有处理PA至PD的完成,并接着向主处理器10发送 处理完成通知NTF (步骤Si; )。接收到处理完成通知NTF的主处理器10从共享存储器50 读取输出数据(步骤S14)。采用该方式,多处理器系统1可以并行地控制子处理器,而不依赖于其数目。此 外,直到一系列处理序列完成,主处理器10才有必要对子处理器20_1至20_n进行执行控 制,从而减少了主处理器10的处理负载。注意,上述共享存储器50不是必需的。例如,可 以通过将每个处理所需的参数包括在处理命令CMD之中,以及通过将每个处理所获得的输 出数据包括在处理状态STS或处理完成通知NTF中,在主处理器10与子处理器20_1至20_ η之间交换数据。以下,将参考图4至图14、15Α和15Β,以及16至21,顺序对第一至第五示例实施 例进行详细描述。[第一示例实施例][配置示例]如图4所示,根据该示例实施例的多处理器系统1包括主处理器10 ;“η”单元子 处理器20_1至20_η ;执行控制电路30a,通过系统总线Bl连接至主处理器10 ;仲裁电路 40,通过控制总线B2和状态总线B3连接至执行控制电路30a,并将子处理器20_1至20_n 并行连接至总线B2和B3 ;以及中断控制器60,作为外围设备与系统总线Bl以及执行控制 电路30a相连接。控制总线B2是用于传送上述处理命令CMD的。状态总线B3是用于传送 处理状态STS的。此外,执行控制电路30a包括至主处理器10的接口(以下,称为MP接口)IF1、 至控制总线B2的接口(以下,称为B2接口)IF2、至状态总线B3的接口(以下,称为B3接 口)IF3、以及至中断控制器60的接口(以下,称为中断接口)IF4。此外,执行控制单元30a包括控制处理器(以下,有时缩写为CP) 31 ;数据存储器 MEMl,用于存储通过IFl从主处理器10输入的处理序列SEQ ;命令存储器MEM2,其中预先存 储用于分析处理序列SEQ中的结构的指令代码;命令FIFO 32,用于存储通过IFl从主存储 器10输入的命令(例如,开始处理序列SEQ的命令(以下,称为序列开始命令));状态FIFO 33,用于存储通过IF 3输入的处理状态STS、以及中断FIFO 34,用于向主处理器10通知中 断因子(interruption factor)。由于使用了中断FIFO 34,与在其中实施一般中断因子寄 存器(换言之,寄存器的数目取决于中断因子)的多处理器系统相比,处理器系统Ia具有 更高的可扩展性。此外,由于使用状态FIFO 33,与在其中实施如在第二相关技术中所述的 状态寄存器的多处理器系统相比,多处理器系统Ia具有更高的可扩展性。此外,不必实施 冗余的硬件资源。因此,可以防止开发成本增加。
数据存储器MEMl、命令存储器MEM2、命令FIFO 32以及中断FIFCX34通过MP总线 B4连接至IF1。此外,控制总线B2、数据存储器MEM1、命令FIFO 32、状态FIFO 33以及中断 FIFO 34通过CP总线B5相互连接。此外,总线开关SW使主处理器10和控制处理器31能 够选择对CP总线B5的访问权。在正常操作下,如图4所示,控制处理器31获取对CP总线 B5的访问权。另一方面,在测试时等,主处理器10获取对CP总线B5的访问权。此外,仲裁电路40包括控制总线控制电路41,对向控制总线B2传送处理命令 CMD进行控制;以及状态总线仲裁电路42,在传送处理状态STS时,对从子处理器20_1至 20_n访问状态总线B3进行仲裁。如图4所示,可以将控制总线控制电路41以及状态总线 仲裁电路42中的每一个简单地实现于单层总线配置中。此外,子处理器20_1至20_n中的每一个包括命令接收控制器21,通过控制总线 B2从执行控制电路30a接收处理命令CMD ;以及状态通知控制器22,通过状态总线B3向执 行控制电路30a发送处理状态STS。换言之,命令接收控制器21作为控制总线B2的从属 (接收方)而连接,并且具有在子处理器内发送所获取的处理命令CMD的功能。此外,状态 通知控制器22作为状态总线B3的主设备(发送方)而连接,并且具有向执行控制电路30 传送在子处理器中所产生的处理状态STS的功能。[操作示例]接着,参考图5至9对该示例实施例的操作进行描述。图5至7和9示出了分别 与图3中所示的步骤S2 (以下,称为处理序列设置操作)、步骤S3 (以下,称为处理命令发出 操作)、步骤S7(以下,称为处理状态通知操作)、步骤S13(以下,称为处理完成通知操作) 等效的操作。此外,图8示出了在该示例实施例中所用的处理状态STS的格式示例。[处理序列设置操作的示例]如图5所示,主处理器10首先通过执行控制电路30a中的MP接口 IFl和MP总线 B4,将处理序列SEQ存储在数据存储器MEMl中(步骤S21)。接着,主处理器10在命令FIFO 32中写入序列开始命令CMD 22(步骤S22)。此时,在控制处理器31处接收到由命令FIFO 32所产生的中断信号。接收到中断信号的控制处理器31从命令FIFO 32获取序列开始命 令CMD 22(步骤S 23)。注意,可以在初始激活时等,如将指令代码预先存储在命令存储器 MEM2 一样,将处理序列SEQ预先存储在数据存储器MEM 1中。[处理命令发出操作的示例]在上述处理序列设置操作后,如图6所示,控制处理器31首先从数据存储器MEMl 读取存储序列SEQ (步骤S31)。接着,控制处理器31执行从命令存储器MEM 2中读取的指令代码INS并分析在处 理序列SEQ中定义的处理与数据之间的关联,从而确定下次要发出的处理命令。此外,控制 处理器31基于所获取的处理状态STS识别哪个处理已被执行以及哪个子处理器在进行操 作,并确定处理命令的发出目的地。具体地,如果下次要执行的处理所需的输入数据完成, 输出数据的写目的地是可用的,并且能够执行该处理的子处理器(操作资源)未进行操作, 那么控制器31确定该子处理器作为处理命令的发出目的地。假定图3中所示的处理命令CMD 1被确定为下次要发出的处理命令,并且子处理 器20_1被确定为处理命令CMDl的发出目的地。控制处理器31顺序经过总线开关SW、CP 总线B5、B2接口 IF2、以及控制总线B2,向仲裁电路40中的控制总线控制电路41输出处理命令CMD1。控制总线控制电路41执行地址解码,以从执行控制电路30a访问控制总线,并 将处理命令CMD 1传送至被选为地址解码结果的子处理器20_1。子处理器20_1中的命令 接收控制器21在子处理器20_1内发送在处理命令CMDl中设置的诸如处理ID (指令号码) 等必要参数,从而执行根据处理ID的处理(步骤S32)。注意,在连续产生输入数据的处理的情况下,控制处理器31也可以使子处理器 20_1至20_n以流水线并行的方式执行一系列处理。[处理状态通知操作的示例]在如图7所示的上述处理命令发出操作之后,子处理器20_1中的状态通知控制器 22向状态总线B3输出图3中所示的处理状态STSl。状态总线仲裁电路42将处理状态STSl 传送给执行控制电路30a。当从另一子处理器访问状态总线发生冲突时,状态总线仲裁电路 42以循环方式等执行访问仲裁,并将处理状态从被选为访问仲裁结果的子处理器传送给执 行控制电路30a。执行控制电路30a中的B3接口 IF3将处理状态STSl存储在状态FIF033 中(步骤S71)。此时,在控制处理器31处接收到由状态FIFO 33产生的中断信号。接收到中断信 号的控制处理器从状态FIFO 33获取处理状态STSl (步骤S72)。图8示出了处理状态STS的格式示例。在该示例中,处理状态STS由32位比特组 成。从MSB (最高有效比特)起的前8比特被分配为子处理器ID的设置区域。接着的8比 特被分配为处理ID的设置区域。最后16比特被分配为状态值(该状态值指示读取输入数 据的完成、写入输出数据的完成、处理的完成等)的设置区域。子处理器20_1至20_n中的 每一个向状态总线仲裁电路42输出处理ID以及状态值,分别作为状态总线B3的地址信号 [7:0]以及数据信号[15:0]。状态总线仲裁电路42将子处理器ID作为传送地址信号中的 高位比特[15:8],添加到要传送给执行控制电路30a的处理ID和状态值。此外,B3接口 IF3将子处理器ID、处理ID以及状态值在状态FIFO 33中存储为处理状态STS。因此,控制处理器31仅仅需要从状态FIFO 33读取处理状态STS,就能够识别由哪 个子处理器所执行的处理属于哪个状态。[处理完成通知操作的示例]如图9所示,当上述处理状态通知操作识别出处理序列SEQ的完成(所有处理的 完成)时,控制处理器31将指示序列的完成的中断因子数据DI (图3中所示的处理完成通 知NTF)存储在中断FIFO 34中(步骤S131)。此时,通过中断接口 IF2在中断控制器60处 接收到由中断FIFO 34所产生的中断信号Si。将中断的产生从中断控制器60发送至主处 理器10(步骤S132)。接着,主处理器10通过MP接口 IFl和MP总线B4,从中断FIFO 34 获取中断因子数据DI,从而识别出序列的完成(步骤S133)。接着,将参考图10和图11对根据该示例实施例的多处理器系统Ia应用于数据处 理系统的第一示例,及其应用于编解码系统的第二示例分别进行描述。[第一应用示例]如图10所示,数据处理系统2包括与多处理器系统Ia中相同的主处理器10、执 行控制电路30a、仲裁电路40以及中断控制器60。此外,控制对外部存储器(未示出)进 行访问的存储器控制70器连接至系统总线Bi。此外,数据发送功能块23_1、数据接收功能 块23_2、定时功能块23_3、数据处理功能块23_4用作子处理器,其中,所述数据发送功能块
1123_1将数据Dout发送到系统外部;所述数据接收功能块23_2从系统外部接收数据Din ;所 述定时功能块23_3从所接收的数据Din产生要输出至功能块23_1以及23_2的定时信号 TS ;以及数据处理功能块23_4对从功能块23_2输出的接收数据Din执行预定处理,并通过 存储器控制器70将处理数据Df存储在外部存储器中。功能块23_1至23_4中的每一个包 括上述命令接收控制器21以及状态通知控制器22。注意,如图10中交替的长短点划线所 示,可以执行从系统总线Bl对控制总线控制电路41的访问。在该情况下,主处理器10还 可以直接控制功能块23_1至23_4。在接收数据的操作中,主处理器10向执行控制电路30a输出用于接收的处理序列 及其开始命令。接着,执行控制电路30a分析用于接收的处理序列,并向定时功能块23_3 发出处理命令,来开始产生定时信号TS。当从定时功能块23_3接收到指示开始产生定时信 号TS的处理完成的处理状态时,执行控制电路30a向数据接收功能块23_2发出处理命令, 来开始数据Din的接收。当从数据接收功能块23_2接收到指示开始接收的处理完成的处 理状态时,执行控制电路30a向数据处理功能块23_4发出处理命令,来将处理数据Df写入 外部存储器。当从数据处理功能块23_4接收到指示写入处理数据Df的处理完成的处理状 态时,执行控制电路30a向主处理器10通知指示接收处理完成的中断。此时,在从数据接收功能块23_2获取到接收数据Din的时刻,数据处理功能块 23_4发出指示获取完成的处理状态。因此,执行控制电路30a可以向数据接收功能块23_2 发出处理命令,来与下一定时信号TS同步地向数据处理功能块23_4输出接收数据Din。因 此,数据接收功能块23_2无需检查数据处理功能块23_4的操作状态。相应地,数据处理系 统2可以同时执行接收数据Din的处理,以及在外部存储器中写入处理数据Df的处理。作 为结果,功能块以流水线并行的方式操作。另一方面,在发送数据的操作中,执行控制电路30a从定时功能块23_3接收开始 产生定时信号TS的处理的完成以及从主处理器10接收在外部存储器中写入发送数据Dout 的完成,并接着向数据发送功能块23_1发出处理命令,来将发送数据Dout发送至系统外 部。此时,在从外部存储器获取到发送数据Dout的时刻,数据发送功能块23_1发出指示获 取完成的处理状态。因此,执行控制电路30a可以向主处理器10通知指示可以在外部存储 器中写入下一发送数据Dout的中断。因此,主处理器10无需检查数据发送功能块23_1的 操作状态。相应地,数据处理系统2可以同时执行发送数据Dout的处理,以及在外部存储 器中写入下一发送数据Dout的处理。作为结果,功能块可以以流水线并行的方式操作。此外,即使在如图10中的虚线所示添加数据处理功能块23_5的情况下、在添加数 据发送功能块23_6的情况下、或在扩展数据发送功能块23_1的功能的情况下,也根本无需 改变执行控制电路30a的电路配置。[第二应用示例]如图11所示,编解码系统3使用收发功能块24_1、解码功能块24_2至24_4、以及 编码功能块24_5和24_6替代上述第一应用示例中所示的功能块23_1至23_6作为子处理 器,其中,所述收发功能块24_1将数据信号Dout发送至系统外部,并从系统外部接收数据 信号Din ;所述解码功能块24_2至24_4中的每一个对接收数据Din执行解码处理以获得 解码数据Dd ;以及所述编码功能块24_5和24_6中的每一个对从主处理器10输出的处理 数据Df执行编码处理以获得编码数据De。功能块24_1至24_6中的每一个包括上述命令接收控制器21以及状态通知控制器22。此外,通过多内存库型的共享存储器50交换接收 数据Din、解码数据Dd、处理数据Df、以及编码数据De。因此,功能块24_1至24_6可以并 行访问不同内存库。此外,通过共享存储器50交换每个数据。因此,无需在功能块之间进 行直接通信。此外,主处理器10在共享存储器50中预先写入处理所需的参数,从而每个功 能块在从执行控制电路30a接收到开始的处理命令时,自主地从共享存储器50获取参数。 因此,执行控制电路30a仅需要发出包括处理ID以及在共享存储器50上的存储参数的地 址(指针)在内的处理命令,就能够通用地控制功能块。注意,如图11中交替的长短点划 线所示,可以执行从系统总线Bl对控制总线控制电路41的访问。在该情况下,主处理器10 还可以直接控制功能块24_1至24_6。在编码数据的操作中,主处理器10向执行控制电路30a输出用于编码的处理序列 及其开始命令。接着,执行控制电路30a分析用于编码的处理序列,并在从主处理器10接 收到在共享存储器50中写入处理数据Df完成时,向编码功能块24_5发出处理命令,来请 求对处理数据Df进行编码处理。当从编码功能块24_5接收到指示编码处理完成的处理状 态时,执行控制电路30a向编码功能块24_6发出处理命令,来请求对处理数据Df进行编码 处理。当从编码功能块24_6接收到指示编码处理完成的处理状态时,执行控制电路30a向 收发功能块24_1发出处理命令,来将编码数据De发送到系统外部。此时,在从共享存储器50获取到来自主处理器10的处理数据Df的时刻,编码功 能块24_5发出指示获取完成的处理状态。因此,执行控制电路30a可以向主处理器10通 知指示可以在共享存储器50中写入下一帧的处理数据Df的中断。因此,主处理器10可以 与编码功能块24_5进行的编码处理并行地执行在共享存储器50中写入处理数据Df的处 理。作为结果,功能块以流水线并行的方式操作。另一方面,在解码数据的操作中,主处理器10向执行控制电路30a输出用于解码 的处理序列及其开始命令。接着,执行控制电路30a分析用于解码的处理序列,并在从收发 功能块24_1接收到持续地和周期性地产生并且每一个均指示在共享存储器50中写入接收 的数据Din完成的处理状态时,向解码功能块24_2发出处理命令,来请求对接收的数据Din 进行解码处理。当从解码功能块24_2接收到指示解码处理完成的处理状态时,执行控制电 路30a向解码功能块24_3发出处理命令,来请求对接收数据Din进行解码处理。当从解码 功能块24_3接收到指示解码处理完成的处理状态时,执行控制电路30a向解码功能块24_4 发出处理命令,来请求对接收数据Din进行解码处理。当从解码功能块24_4接收到指示解 码处理完成的处理状态时,执行控制电路30a向主处理器10通知指示可以从共享存储器读 取解码数据Dd的中断。此时,在从共享存储器50获取到接收数据Din的时刻,解码器功能块24_3发出指 示获取完成的处理状态。因此,执行控制电路30a可以向解码器功能块24_2发出处理命 令,来从共享存储器50读取下一帧的接收数据Din。因此,解码功能块24_2无需检查解码 功能块24_3的操作状态。相应地,可以同时执行解码处理以及读取接收数据Din的处理。 作为结果,功能块以流水线并行的方式操作。此外,可以使用可以兼容多种解码方案的编码功能块作为编码功能块24_2至 24_4以及编码功能块24_5和24_6中的每一个。在该情况下,解码功能块和编码功能块中 的每一个根据从执行电路30a接收到的处理命令(处理ID),选择一种解码方案。在执行控
13制电路30a中设置与各种解码方案相对应的处理序列。在将整个系统从某种解码方案改变 为另外一种解码方案的情况下,主处理器10在执行控制电路30a中设置不同的解码方案的 处理序列,从而可以容易地转换解码方案。此外,如上所述,状态FIF033将处理ID和状态 值成对存储。因此,在各种解码方案下,可以共享状态FIFO 33。采用该方式,可以将根据该示例实施例的多处理器系统应用于多种系统。此外,还 有简化重配置以及系统重用的优势。注意,通过使用根据稍后描述的第二至第五示例实施 例的多处理器系统之一,可以对上述数据处理系统2以及编解码系统3进行配置。接着,参考图12至14、15A和15B以及16,对第二示例实施例进行描述。[第二示例实施例][配置示例]如图12所示,根据该示例实施例的多处理器系统Ib与上述第一示例实施例的 不同在于,其包括执行控制电路30b,代替图4所示的多处理器系统Ia中的执行控制电路 30a。注意,虽然省略了说明,但是与多处理器系统Ia—样,多处理器系统Ib包括“η”单元 子处理器20_1至20_η以及仲裁电路40,仲裁电路40对在子处理器以及执行控制电路30b 之间传送处理命令CMD以及处理状态STS进行仲裁。执行控制电路30b包括FIF0存储器MEM3、FIF0存储器控制器35、命令FIFO管理 器36、状态FIFO管理器37、中断FIFO管理器38以及控制寄存器REG,代替图4中所示的命 令FIFO 32、状态FIFO 33以及中断FIFO 34。在FIFO存储器MEM3中的地址空间上,形成 了命令FIFO区域、状态FIFO区域以及中断FIFO区域,分别与命令FIFO 32、状态FIFO 33、 以及中断FIFO 34等效。FIFO存储器控制器35控制对FIFO存储器MEM3进行访问。命令 FIFO管理器36保持关于命令FIFO区域的管理信息。状态FIFO管理器保持关于状态FIFO 区域的管理信息。中断FIFO管理器38保持关于中断FIFO区域的管理信息。控制寄存器 REG保持关于命令FIFO区域、状态FIFO区域、中断FIFO区域以及FIFO存储器MEM3的控制 fn息ο此外,FIFO存储器控制器35、命令FIFO管理器36、状态FIFO管理器37、中断FIFO 管理器38、以及控制寄存器REG分别连接至MP总线B4以及CP总线B5。通过B3接口 IF3 将来自状态总线B3的处理状态STS输入至FIFO存储器控制器35。此外,控制寄存器REG 通过中断接口 IF4将由状态FIFO管理器37产生的中断信号输出至中断控制器60,以及将 由命令FIFO管理器36和中断FIFO管理器38产生的中断信号输出至控制处理器31。具体地,如图13所示,FIFO管理器36至38中的每一个包括管理寄存器101、掩 蔽寄存器102、清除寄存器103、以及掩蔽电路104。管理寄存器101包括写指针WP,用于 管理向每个FIFO区域的写地址;读指针RP,用于管理从每个FIFO区域的读地址;存储数据 数目NUM,保持存储在每个FIFO区域中的数据的数目;以及状态标志FLG,指示每个FIFO区 域是满状态还是空状态。掩蔽寄存器102保持二进制数据,该二进制数据指示在发生对每 个FIFO区域进行写访问时,是否将由管理寄存器101产生的中断信号SI输出至控制寄存 器REG(是否掩蔽中断)。清除寄存器103保持二进制数据,该二进制数据指示是否清除管 理寄存器101中的信息。掩蔽电路104根据从掩蔽寄存器102的输出值,掩蔽中断信号Si。状态标志FLG用于表示和观察FIFO区域的状态。状态标志FLG由例如空标志和 满标志两个比特组成。当FIFO区域处于空状态时,将空标志设置为“1”。当FIFO区域处于满状态时,将满标志设置为“1”。通过从FIFO区域读取数据,将满标志重置为“0”。此外, 通过在清空寄存器103中写入“1”,将管理寄存器101中的信息初始化为零。此外,掩蔽寄 存器102用于将在数据写入FIFO区域时所产生的中断信号的输出掩蔽。如果掩蔽寄存器 102的值被设置为“ 1”(掩蔽状态),即使在将数据写入FIFO区域时,也不输出中断信号。 同时,在掩蔽被取消的时刻(在掩蔽寄存器102的值从“1”变成“0”的时刻),如果FIFO区 域中存在数据,那么输出中断信号。因此,可以防止FIFO中的数据丢失,以及防止不必要地 产生中断信号。此外,控制寄存器REG在其中存储在FIFO存储器MEM3上分配的每个FIFO的基本 地址BA、可以存储在每个FIFO区域中的数据的级数DEP、以及在每个FIFO区域上存储的数 据(换言之,上述处理命令CMD、处理状态STS、以及中断因子数据DI)的数据比特宽度WID。 将级数DEP以及数据比特宽度WID输出至FIFO管理器36至38中的每一个。上述写指针WP在每次写使能信号WE变为激活时,增加与数据比特宽度WID相对 应的数目(字节单位数)。例如,在数据比特宽度WID等于“16比特”的情况下,每次在FIFO 区域中写入数据时,写指针WP增加2。在数据比特宽度WID等于“32比特”的情况下,写指 针WP增加4。同时,当写指针WP的值达到与级数DEP相等的值时,将写指针WP初始化为 零,并接着再次执行上述的增加。读指针RP在每次读使能信号RE变为激活时,与写指针WP 一样增加。存储数据数目MUM用于表示和观察在FIFO区域中存储的数据的数目。基于写 指针WP的值与读指针RP的值之间的差,计算存储的数据数目NUM。换言之,当在FIFO区域 中写入数据时,数据数目NUM增加1。当从FIFO区域中读取数据时,数据数目NUM减少1。此外,FIFO存储器控制器35包括控制接口 201、地址/数据转换器电路202_1至 202_3、以及仲裁电路203。控制接口 201向管理寄存器101输出每个FIFO区域的写使能信 号WE以及读使能信号RE,并从管理寄存器101接收写指针WP、读指针RP、基本地址BA以及 数据比特宽度WID。地址/数据转换器电路202_1至202_3分别连接至状态总线B3、MP总 线B4以及CP总线B5,并基于从控制接口 201输出的写指针WP、读指针RP、基本地址BA以 及数据比特宽度WID对地址执行转换处理。此外,地址/数据转换器电路202_1至202_3 基于数据比特宽度WID与FIFO存储器MEM3的数据比特宽度(换言之,连接至MEM3的并行 数据总线的宽度)的差,对要传送给数据总线的数据或从数据总线获取的数据执行转换处 理。仲裁电路203对从地址/数据转换器电路202_1至202_3访问数据总线进行仲裁。[操作示例]接着,参考图14、15A和15B以及16,对示例实施例的操作进行说明。注意,不涉及 对执行控制电路30b中的FIFO区域进行访问的操作与图4中所示的多处理器系统Ia中的 相似,因此省略说明。图14示出了由FIFO存储器控制器35所执行的转换地址的处理以及对访问数据 总线进行仲裁的处理的示例。首先,中断FIFO区域AR_I、命令FIFO区域AR_C以及状态FIFO区域AR_S形成在 FIFO存储器MEM3的地址空间上。将中断FIFO区域AR_I的基本地址和区域长度分别设置 为BA_I以及“级数DEP_I*数据比特宽度WID_I”。类似地,将命令FIFO区域AR_C的基本 地址以及区域长度分别设置为BA_C以及“级数DEP_C*数据比特宽度WID_C”。将状态FIFO 区域AR_S的基本地址以及区域长度分别设置为BA_S以及“级数DEP_S*数据比特宽度WID_S”。注意,通过改变基本地址BA和级数DEP的设置值,可以改变每个FIFO区域的区域长度。如图14所示,当控制处理器31产生中断因子数据DI的写访问时(步骤S1311), FIFO存储器控制器35中的地址/数据转换器电路202_3向基本地址BA_I添加从控制接 口 201接收到的中断FIFO区域AR_I的写指针WP_I的值,以在FIFO存储器MEM3上产生写 地址WA (步骤1312)。此时,如果从地址/数据转换器电路202_3访问数据总线与从状态 总线B3和主处理器10中的至少一个访问数据总线发生冲突,那么仲裁电路203执行访问 仲裁(步骤S2000)。具体地,仲裁电路203以“循环方式”、“按照主处理器10>控制处理器 31>状态总线B3的优先级方式”等执行访问仲裁。此外,当由控制处理器31产生处理CMD的读访问时(步骤S231),地址/数据转 换器电路202_3向基本地址BA_C添加命令FIFO区域AR_C的读指针RP_C的值,以在FIFO 存储器MEM3上产生读地址RA (步骤S23》。类似地,当由控制处理器31产生处理状态STS 的读取访问时(步骤S721),地址/数据转换器电路202_3向基本地址8々_5添加状态FIFO 区域AR_S的读指针RP_S的值,来产生读地址RA (步骤S722)。另一方面,当产生从状态总线B3进行处理状态STS的写访问时(步骤S711),FIF0 存储器控制器35中的地址/数据转换器电路202_1向基本地址BA_S添加状态FIFO区域 AR_S的写指针WP_S的值,以产生写地址WA (步骤S712)。注意,如图8中所示的格式,在状 态FIFO区域AR_S中写入处理状态STS。此外,当由主处理器10产生中断因子数据DI的读取访问时(步骤S1331),FIFO 存储器控制器35中的地址/数据转换器电路202_2向基本地址BA_I添加中断FIFO区域 AR_I的读指针RP_I的值,以产生读地址RA (步骤S1332)。类似地,当产生处理命令CMD的 写访问时(步骤S221),地址/数据转换器电路202_2向基本地址BA_C添加命令FIFO区域 AR_C的写指针WP_C的值,以产生写地址WA (步骤S222)。当在上述步骤S232、S722、S712、S1332以及S222的任意一个产生写地址WA或读 地址RA时,仲裁电路203还执行访问仲裁。注意,虽然省略了说明,但是为了例如测试存储器的目的,控制处理器31还可以 通过直接指定FIFO存储器MEM3的地址值,与常规存储器访问一样,执行随机访问。此外,FIFO存储器控制35执行处理,来对图15A和15B中所示的数据进行转换。 例如,如图15A所示,在中断因子数据DI的数据比特宽度WID_I等于“8比特”,数据总线宽 度等于“32比特”,并执行写入至写地址WA = “0x040A”的情况下,FIFO存储器控制器35 中的地址/数据转换器电路202_3通过使用数据总线[23:16]将中断因子数据DI传送给 FIFO存储器MEM3,从而将中断因子数据DI写入与FIFO存储器MEM3上的地址“0x0408”相 对应的区域的第16至第23比特中。另一方面,在读取通过上述处理写入的中断因子数据DI的情况下(即,在执行从 读地址RA = “0x040A”读取的情况下),地址/数据转换器电路202_2通过数据总线[23 16] 从FIFO存储器MEM3读取中断因子数据DI [7:0]的8比特。此外,如图15B所示,在处理命令CMD的数据比特宽度WID_C等于“ 16比特”并执 行写入至写地址WA = “0x050A”的情况下,地址/数据转换器电路202_2通过使用数据总 线[31 16]将处理命令CMD传送给FIFO存储器MEM3,从而将在处理命令CMD写入与FIFO 存储器MEM3上的地址“0x0508”相对应的区域的第16至第31比特中。
另一方面,在读取通过上述处理写入的处理命令CMD的情况下(即,在执行从读地 址RA =“0x0508”读取的情况下),地址/数据转换器电路202_3通过数据总线[31:16]从 FIFO存储器MEM3读取处理命令CMD[15:0]的16比特。图16示出了从主处理器10以及控制处理器31的角度看到的执行控制电路30b的 地址映射的示例。例如,对于FIFO管理器36至38中的每一个,仅仅对图13中示出的管理 寄存器101、掩蔽寄存器102以及清除寄存器103中的每一个的访问地址AA作了映射。另 一方面,FIFO区域的访问地址AA(中断因子数据的读访问区域、命令的写访问区域、中断因 子数据的写访问区域、命令的读访问区域、以及状态的读访问区域)被映射在FIFO存储器 控制器35的地址空间上。即,例如,控制处理器31顺序访问状态的读访问区域的访问地址 AA ="0x00. . . 0308”,从而实际上能够从图14所示的状态FIFO区域AR_S中的连续地址顺 序读取处理状态STS。采用该方式,在一存储器上形成中断FIFO区域AR_I、命令FIFO区域AR_C以及状 态FIFO区域AR_S。因此,可以改变在FIFO区域中存储的数据的级数以及数据比特宽度, 从而与上述第一示例实施例相比,可以进一步提高多处理器系统的可扩展性。即,对在开发 LSI之后由规范改变所引起的处理状态、处理命令或中断因子的数目或格式的改变等可以 予以灵活响应。接着,参考图17至19对第三示例实施例进行描述。[第三示例实施例][配置示例]如图17所示,根据该示例实施例的多处理器系统Ic与上述的第二实施例的区别 在于,执行控制电路3c包括对访问数据存储器MEMl进行控制的数据存储器控制器39,代替 图12中所示的执行控制电路30b中的FIFO存储器MEM3以及FIFO存储器控制35。S卩,在 该示例实施例中,在数据存储器MEMl的地址空间上形成在上述第二实施例中所示的中断 FIFO区域AR_I、命令FIFO区域AR_C以及状态FIFO区域AR_S。此外,数据存储器39连接 至MP总线B4以及CP总线B5。将来自状态总线B3的处理状态STS通过B3接口 IF3输入 到数据存储器控制器39。注意,虽然省略了说明,但是与图4中所示的多处理器系统Ia—样,多处理器系统 Ic包括“η”单元子处理器20_1至20_η以及仲裁电路40,所述仲裁电路40对在子处理器 与执行控制电路30c之间传送处理命令CMD以及处理状态STS进行仲裁。[操作示例]接着,参考图18至19对该示例实施例的操作进行描述。注意,不涉及对执行控制 电路30c中的F IFO区域进行访问的操作与图4中所示的多处理器系统Ia中的相似,因此 省略说明。图18示出了由数据存储器控制器39执行的转换地址的处理以及对访问数据总 线进行仲裁的处理的示例。该示例与图14中所示的转换地址的处理以及对访问数据总线 进行仲裁的处理的示例的差别在于,控制处理器31以及主处理器10可以在步骤S2100和 S2200执行各自的处理。换言之,当在数据存储器MEMl中形成FIFO区域AR_I、AR_C以及 AR_S时,控制处理器31以及主处理器10可以通过使用单个数据存储器MEMl执行对每个 FIFO区域的访问以及对数据区域AR_D的随机访问。
17
图19示出了从主处理器10以及控制处理器31的角度看到的执行控制电路30c 的地址映射的示例。这些地址映射与图16中所示的执行控制电路30b的地址映射的区别 在于,不是逐一地,而是两个或更多地将FIFO区域的访问地址AA分配给各个FIFO区域,从 而包括每个FIFO区域的至少顶部和底部。即,在该示例实施例中,每个FIFO区域被映射为 具有一定区域宽度的地址空间。相应地,当在映射的地址空间内访问任何地址时,这意味着访问同样的FIFO(顺 序访问FIFO区域中的数据)。另一方面,主处理器10以及控制处理器31还可以通过使用 多个访问地址,执行增量突发访问(突发访问FIFO区域中的连续数据)。在该情况下,可以 加速对FIFO的访问处理。接着,参考图20对第四实施例进行描述。[第四实施例]如图20所示,根据该示例实施例的多处理器系统Id除了图4中所示的多处理器 系统Ia的配置,还包括总线监控器80,监控并分别通过仲裁电路40中的控制总线控制电路 41以及状态总线仲裁电路42向外输出处理命令CMD以及处理状态STS。注意,可以在图12 和图17中分别示出的多处理器系统Ib和Ic中提供总线监控器80。以下描述也可应用于 该情况。此外,在通过使用如上述第二应用示例的共享存储器在子处理器之间进行通信的 情况下,可以通过将总线监控器80连接至共享存储器的总线来对通信进行观察。在操作中,总线监控器80监控并从执行控制电路30a向外向子处理器20_1至20_ η输出命令,所述命令请求开始处理等,以及从子处理器20_1至20_η向执行控制电路30a 输出处理完成通知、错误通知等。因此,可以观察几乎所有关于每个子处理器的处理执行的 操作状态。可以以该方式确保高度的可观察性(调试性)的原因是,执行控制电路30a和 子处理器20_1至20_n之间的全部通信是通过共享总线来进行的,无需使用专门的用于传 送处理状态STS的线路或总线。接着,参考图21对第五示例实施例进行描述。[第五示例实施例]如图21所示,根据该示例实施例的多处理器系统Ie包括两个执行控制电路30_1 以及30_2单元。此外,仲裁电路40包括控制总线仲裁电路43,代替图4中所示的控制总线 控制电路41,所述控制总线仲裁电路43在传送处理命令CMD时对从执行控制电路30_1以 及30_2访问控制总线B2进行仲裁。注意,可以对每个执行控制电路提供仲裁电路。可以 提供三个或更多个仲裁电路。此外,可以提供多个主处理器。此外,图4中所示的执行控制 电路30a、图12中所示的执行控制电路30b以及图17中所示的执行控制电路30c中的任何 一个都可以用作执行控制电路30_1以及30_2中的每一个。在操作中,主处理器10在执行控制电路30_1和30_2中设置相互不同的处理序 列,从而使执行控制电路30_1和30_2并行地进行执行控制。此外,当从执行控制电路30_1 和30_2访问控制总线B2发生冲突时,控制总线仲裁电路43在以循环方式等执行访问仲裁 之后,执行地址解码,并将处理命令从所选的执行控制电路传送至子处理器。类似地,状态 总线仲裁电路42在从子处理器20_1至20_n访问状态总线B3发生冲突的情况下,执行访 问仲裁。因此,可以进一步增强整个系统的负载分布。此外,由于整个系统的处理负载降低了,因此还可以提高子处理器的数目。此外,通过实施多个执行控制电路,即使在子处理器 的数目随着系统规模增长而快速增加时,也可以减少与执行控制相关联的处理负载。因此, 可以防止整个系统中的处理崩溃。注意,即使在增加执行控制电路的情况下,也无需改变其 电路配置。注意,本发明不局限于上述示例实施例,并且显而易见的是,本领域的技术人员基 于权利要求的记载可以做出多种修改。本申请基于2008年8月7日提交的日本专利申请No. 2008-203768,并要求其优先 权,其公开全部合并于此作为参考。工业实用性本发明适用于多处理器系统及其控制方法,特别适用于并行控制多个子处理器的 多处理器系统及其控制方法。参考标记列表
1, Ia-Ie多处理器系统
2数据处理系统
3编解码系统
10主处理器(MP)
20_l-20_n子处理器(功能块)
21命令接收控制器
22状态通知控制器
23_1,23_6数据发送控制功能块
23_2数据接收功能块
23_3定时功能块
23_4,23_5数据处理功能块
24_1收发功能块
24_2-24_4解码功能块
24_5-24_6编码功能块
30,30a-30c, 30_1_30_2 执行控制电路
31控制处理器(CP)
32命令FIFO
33状态FIFO
;34 中断 FIFO
35FIF0存储器控制器
36命令FIFO管理器
37状态FIFO管理器
38中断FIFO管理器
39数据存储器控制器
40仲裁电路
41控制总线控制电路
42状态总线仲裁电路
43控制总线仲裁电路50共享存储器60中断控制器70存储器控制器80总线监控器101管理寄存器102掩蔽寄存器103清除寄存器104掩蔽电路AA访问地址AB访问目的块AR_C 命令 FIFO 区域据区域AR_I 中断 FIFO 区域AR_S 状态 FIFO 区域Bl系统总线B2控制总线B3状态总线B4MP 总线B5CP 总线ΒΑ, BA_I,BA_S, BA_C 基本地址CMD,CMDl,CMD2, CMD22 处理命令D0-D3 数据Dd解码数据De编码数据DEP,DEP_I,DEP_S,DEP_C 级数Df处理数据DI中断因子数据Din接收数据Dout发送数据FLG状态标志IFl MP 接口IF2 B2 接口IF3 B3 接口IF4 中断接口INS指令代码MEMl数据存储器MEM2命令存储器MEM3 FIFO 存储器
NTF处理完成通知NUM存储数据数目PA-PD 处理RE读使能信号REG控制寄存器RP,RP_I,RP_S,RP_C 读指针SEQ处理序列SI中断信号STS,STS1,STS2 处理状态Sff总线开关WA写地址WE写使能信号WID, WID_I, WID_S, WID_C 数据比特宽度WP, WP_I,WP_S, WP_C 写指针
权利要求
1.一种多处理器系统,包括 至少一个主处理器; 多个子处理器;执行控制装置,用于基于由主处理器所指定的处理序列向每一个子处理器发出处理命 令,以及获取由每一个子处理器根据处理命令所执行的处理的执行结果;以及仲裁装置,用于对在执行控制装置以及每一个子处理器之间传送处理命令以及执行结 果进行仲裁。
2.根据权利要求1所述的多处理器系统,其中,所述仲裁装置包括控制总线控制装置,用于控制控制总线,所述控制总线用于从所述执行控制装置向每 一个子处理器传送处理命令;以及状态总线仲裁装置,用于仲裁对状态总线的访问,所述状态总线用于从每一个子处理 器向执行控制装置传送执行结果。
3.根据权利要求1所述的多处理器系统,包括多个执行控制装置, 其中所述仲裁装置包括控制总线仲裁装置,用于仲裁对控制总线的访问,所述控制总线用于从每一个执行控 制装置向每一个子处理器传送处理命令;以及状态总线仲裁装置,用于仲裁对状态总线的访问,所述状态总线用于从每一个子处理 器向每一个执行控制装置传送执行结果。
4.根据权利要求2或3所述的多处理器系统,其中,每一个子处理器包括 命令接收控制装置,用于从控制总线接收处理命令;以及状态通知控制装置,用于向状态总线发送执行结果。
5.根据权利要求1至4中任一项所述的多处理器系统,其中所述处理命令包括处理 ID,用于指定处理,并且所述执行结果包括处理ID以及处理的状态。
6.根据权利要求1至5中任一项所述的多处理器系统,其中,所述执行控制装置将执行 结果存储在先入先出FIFO缓冲器中。
7.根据权利要求6所述的多处理器系统,其中,所述仲裁装置向要被传送至执行控制 装置的执行结果添加子处理器ID,所述子处理器ID指示执行结果的传送源,并且所述执行控制装置将子处理器ID与执行结果关联存储在FIFO缓冲器中。
8.根据权利要求1至5中任一项所述的多处理器系统,其中所述执行控制装置包括 存储器,其中,在相同的地址空间上形成存储来自主处理器的命令的命令FIFO区域、存储执行结果的状态FIFO区域、以及存储对主存储器的中断通知的内容的中断FIFO区域; 以及地址产生装置,用于基于每一个FIFO区域的基本地址以及在每一个FIFO区域中能够 存储的数据的级数,产生存储器上的地址,用以访问每一个FIFO区域中的期望数据。
9.根据权利要求8所述的多处理器系统,其中,所述仲裁装置向要被传送至执行控制 装置的执行结果添加子处理器ID,所述子处理器ID指示执行结果的传送源,并且所述执行控制装置将子处理器ID与执行结果关联存储在状态FIFO区域中。
10.根据权利要求8或9所述的多处理器系统,其中,地址产生装置根据来自主处理器的命令、执行结果以及中断通知的内容的中的每一个的数据比特宽度,产生存储器上的地 址,并且所述执行控制装置还包括数据总线确定装置,用于基于所述每一个数据比特宽度与 存储器的数据比特宽度之间的差,从连接至存储器的并行数据总线中,确定访问来自主处 理器的命令、执行结果、以及中断通知的内容中的每一个所要使用的数据总线。
11.根据权利要求8至10中任一项所述的多处理器系统,其中,在由实施于执行控制装 置中的控制处理器所使用的数据存储器中形成每一个FIFO区域。
12.根据权利要求8至11中任一项所述的多处理器系统,其中,对每一个FIFO区域分 配访问地址,所述访问地址用于使主处理器或实施于执行控制装置中的控制处理器连续地 访问多条数据。
13.根据权利要求1至12中任一项所述的多处理器系统,还包括多内存库共享存储器,其中,每一个子处理器通过共享存储器获取处理所需的输入数据,并输出由处理所获 得的数据。
14.根据权利要求1至13中任一项所述的多处理器系统,还包括监控装置,用于监控 并向外部输出通过仲裁装置的处理命令以及执行结果。
15.一种控制多处理器系统的方法,所述多处理器系统包括至少一个主处理器以及多 个子处理器,所述方法包括基于由主处理器所指定的处理序列,向每一个子处理器发出处理命令,以及获取由每 一个子处理器根据处理命令所执行的处理的执行结果;以及针对向每一个子处理器传送处理命令以及向主处理器传送执行结果进行仲裁。
16.根据权利要求15所述的方法,其中,当主处理器指定多个处理序列时,针对每个处 理序列以并行的方式执行处理命令的发出以及执行结果的获取。
17.根据权利要求15或16所述的方法,其中,用于指定处理的处理ID包括在处理命令 中,并且处理ID以及处理状态在执行结果中。
18.根据权利要求15至17中任一项所述的方法,其中,顺序存储所获取的执行结果。
19.根据权利要求18所述的方法,其中,向执行结果添加指示执行结果的传送源的子 处理器ID,以及将子处理器ID与执行结果关联存储。
20.根据权利要求15至19中任一项所述的方法,其中,监控并向外部输出经仲裁的处 理命令以及执行结果。
全文摘要
为了并行控制子处理器而不损失可扩展性,形成多处理器系统(1)的执行控制电路(30)基于由主处理器(10)所指定的处理序列(SEQ)向各个子处理器(20_1至20_3)发出处理命令(CMD),并获取处理状态(STS),所述处理状态指示由各个子处理器(20_1至20_3)根据处理命令(CMD)所执行的处理的执行结果。仲裁电路(40)对在执行控制电路(30)和各个子处理器(20_1至20_3)之间传送处理命令(CMD)以及处理状态(STS)进行仲裁。
文档编号G06F13/38GK102112972SQ200980130560
公开日2011年6月29日 申请日期2009年4月22日 优先权日2008年8月7日
发明者井仓裕之, 竹内俊树 申请人:日本电气株式会社