CN102934102A - 多处理器系统、执行控制方法和执行控制程序 - Google Patents

多处理器系统、执行控制方法和执行控制程序 Download PDF

Info

Publication number
CN102934102A
CN102934102A CN2011800260817A CN201180026081A CN102934102A CN 102934102 A CN102934102 A CN 102934102A CN 2011800260817 A CN2011800260817 A CN 2011800260817A CN 201180026081 A CN201180026081 A CN 201180026081A CN 102934102 A CN102934102 A CN 102934102A
Authority
CN
China
Prior art keywords
processor
sub
state
processing
fifo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011800260817A
Other languages
English (en)
Inventor
竹内俊树
井仓裕之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN102934102A publication Critical patent/CN102934102A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

公开了一种允许更快速的并行执行控制处理而不会损害灵活性或可扩展性的多处理器系统。公开的多处理器系统设有一个或多个主处理器(10)、多个子处理器(30至3n)以及用于执行每个子处理器(30至3n)的执行控制的执行控制电路(20);其中执行控制电路(20)设有用于每个子处理器的执行控制处理的执行控制用处理器(21)、用于每个子处理器的命令触发的控制总线输出装置、用于来自每个子处理器的状态通知的状态总线输入装置、用于评估状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理的评估电路(24)、用于在要执行高速处理的情况下发出相应的处理触发命令的状态加速器(25),以及用于利用执行控制处理器来处理状态通知的状态FIFO控制单元(26)。

Description

多处理器系统、执行控制方法和执行控制程序
技术领域
本发明涉及多处理器系统的改善,更具体而言涉及使得能够在不妨害并行执行控制处理的灵活性和可扩展性的情况下加速系统的多处理器系统。
背景技术
多处理器系统被大致分成两类,即,被设计为执行对称多重处理(SMP)的系统,其中每个处理器是同质的,以及被设计为执行非对称多重处理(AMP)的系统,其中每个处理器是异质的。
这里,后一种异质多处理器系统一般采用由主处理器(MP)直接控制其他多个子处理器的执行的控制方法。
在此方法中,管理整个系统以执行主处理的主处理器也执行每个功能上分布的子处理器的激活控制。
在此场合下,对每个子处理器的控制是利用由主处理器持有访问权的系统总线来实现的,通过该总线在从每个子处理器输入中断信号之后作出来自每个子处理器的处理完成通知以利用系统总线核查每个子处理器的状态。
如上所述的这种控制方法具有如下优点,即,促进了对整个多处理器系统的控制序列的考虑和实现,并且具有较高的用于调试的可观测性,因为整个系统的状态管理和每个子处理器的状态管理可被聚集在一个地方。
然而,这具有处理故障的问题,因为近来系统LSI规模的增大及其复杂化使得处理负荷集中在主处理器中。
为了解决该问题,作为现有技术提出了具有并行执行专用执行控制单元的技术,例如专利文献1中公开的那种。
专利文献1中记载的现有技术通过实现以流水线方式并行操作至少两个子处理器的控制机制,由于主处理器负荷的分散化和各个子处理器的并行执行,而使得操作率能够提高。
执行控制单元具有诸如完成通知信号的输入之类的依从于要连接的子处理器的数目的电路配置。在此情况下,近来的系统LSI的惯常做法是让多个子处理器(IP核)集成在一个芯片上,从而所需求的是短TAT(周转时间)中的系统扩展,也就是核数目的增加。相应地发生了每次改变执行控制单元的电路配置或内部命令表的容量的必要,从而导致了具有较低的可扩展性。另一个问题是包括三个或更多个相互依从的处理的这种复杂执行控制处理是难以实现的并且具有低灵活性。
作为另一种现有技术提出的是像专利文献2中公开的那种技术,即一种使得能够改善专用于并行执行控制的执行控制电路的灵活性和可扩展性的技术。
专利文献2中记载的现有技术通过向执行控制电路提供执行控制处理器、用于核查来自每个子处理器的处理状态的状态总线输入单元和容量可变的状态FIFO,来同时实现执行控制处理的负荷分散化和可扩展性和灵活性的改善。
然而,此技术对于对一个处理状态的执行控制处理要求例如大约几十到几百周期的处理时间,因为每个子处理器的执行控制处理是由执行控制处理器上的软件处理执行的。
另一个问题是,由于子处理器的数目或处理状态的数目的扩展直接导致执行控制处理器处理的量的增加,所以诸如处理器的处理故障或执行控制电路的数目增加的必要之类的风险增大了。
作为另一种现有技术提出的是像专利文献3中公开的那种技术,其利用指令缓冲器和响应缓冲器来使能了主处理器对子处理器的控制的加速。
根据专利文献3中记载的现有技术,空闲的子处理器对指令缓冲器的自发读取消除了主处理器认识到哪个子处理器空闲的必要,从而加速了子处理器控制。
然而,该技术的前提是其中每个子处理器能够处理任何任务的同质对称多重处理(SMP),从而其原本就不适用于本发明所针对的具有异质非对称多重处理(AMP)的多处理器系统。
与专利文献2中记载的现有技术类似,因为主处理器进行的软件处理,所以该技术对一个任务的执行控制处理要求大约几十到几百周期的处理时间,即使在实现了处理的加速时也是如此。
专利文献1:2003-208412号日本专利早期公布
专利文献2:国际公布WO2010/016169A1
专利文献3:H09-218859号日本专利早期公布
要解决的第一个问题是,当不使用主处理器而是使用专用执行控制处理器(CP)在多处理器系统中实现每个子处理器的执行控制时,其执行控制处理时间(等待时间)可导致多处理器系统整体上的处理故障。
其原因是,随着对近来的图像处理系统LSI或通信处理系统LSI的加速的进一步需求,各个子处理器之间的执行控制所要求的处理时间施加了增大整个处理不会及时完成的可能性的不利影响。特别地,对于通过顺次使用各个子处理器来以流水线方式处理数据的数据处理系统,各个子处理器的处理中的时间开销可被减少多少在将来将是关键的。
例如,当执行控制处理器进行的执行控制处理整体上以专用硬件来实现以加速处理时,作为稍后将描述的第二个问题,将发生灵活性和可扩展性的降低。
第二个问题是当实现执行控制专用硬件时多处理器系统整体上的低灵活性和可扩展性。
其原因是,执行控制单元的接口和电路配置一般容易依从于所连接的子处理器的数目或者处理状态的数目。换言之,当为了扩展系统而增加子处理器的数目或处理状态的数目时,要求有电路变化,例如执行控制单元本身的接口或表容量的变化。
另一个问题是,一般是难以利用包括表查找的专用硬件来实现包括由相互依从的三个或更多个子处理器进行的处理的这种复杂执行控制处理的。即使当利用复杂的电路配置来实现该处理时,如果电路是专门用于该执行控制处理的,则其灵活性和可扩展性将非常低。
(本发明的目的)
本发明的一个目的是提供一种多处理器系统,其解决了上述问题并且使能了处理的加速,而不会妨害并行执行控制处理的灵活性和可扩展性。
发明内容
根据本发明的一个示例性方面,一种多处理器系统包括一个或多个主处理器和多个子处理器,以及进行每个子处理器的执行控制的执行控制电路,其中执行控制电路包括:执行控制处理器,用于每个子处理器的执行控制处理;控制总线输出单元,用于到每个子处理器的命令的激活;状态总线输入单元,用于来自每个子处理器的状态通知;判定电路,该判定电路判定状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理;状态加速器,该状态加速器在状态通知要被高速处理时发出相应的处理激活命令;以及状态FIFO控制单元,该状态FIFO控制单元利用执行控制处理器来处理状态通知。
根据本发明的第二示例性方面,一种包括一个或多个主处理器和多个子处理器的多处理器系统中的子处理器执行控制方法,其中,设有进行每个子处理器的执行控制的执行控制电路,执行控制电路的判定电路判定来自每个子处理器的状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理,执行控制电路的状态加速器在状态通知要被高速处理时发出相应的处理激活命令,并且执行控制电路的状态FIFO控制单元利用用于每个子处理器的执行控制处理的执行控制处理器来处理状态通知。
根据本发明的第三示例性方面,一种在包括一个或多个主处理器和多个子处理器的多处理器系统上执行的执行控制程序,其使得进行每个子处理器的执行控制的执行控制电路执行:执行控制电路的判定电路的功能,判定来自每个子处理器的状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理;执行控制电路的状态加速器的功能,在状态通知要被高速处理时发出相应的处理激活命令;以及执行控制电路的状态FIFO控制单元的功能,利用用于每个子处理器的执行控制处理的执行控制处理器来处理状态通知。
本发明使得能够提供一种允许在不妨害并行执行控制处理的灵活性和可扩展性的情况下加速处理的多处理器系统。
附图说明
图1是示出本发明的第一示例性实施例中的多处理器系统的结构的图。
图2是示出作为本发明的前提的用于控制子处理器的并行执行的示例性处理流程的图。
图3是示出作为本发明的前提的操作序列的示例的图。
图4是示出作为本发明的前提的可高速处理的操作序列的示例的图。
图5是示出本发明中的用于设定来自主处理器的命令的序列的图。
图6是示出本发明中的用于将中断通知给主处理器的序列的图。
图7是示出本发明中的用于向子处理器发出命令的序列的图。
图8是示出本发明中的用于从子处理器通知状态的序列的图。
图9是示出本发明中的状态加速器进行的执行控制处理序列的图。
图10是示出本发明的第一示例性实施例中的状态数据的格式的图。
图11是示出本发明的第一示例性实施例中的判定电路的结构的图。
图12是示出本发明中的状态加速器的结构的图。
图13是示出本发明的示例1中的数据编码/解码处理系统的图。
图14是示出本发明的示例1中的操作序列的示例的图。
图15是示出本发明中的FIFO控制电路配置的图。
图16是示出本发明中的FIFO存储器控制单元的总线控制结构的图。
图17是示出本发明的第二示例性实施例中的多处理器的结构的图。
图18是示出本发明的第二示例性实施例中的状态数据的格式的图。
图19是示出本发明的第二示例性实施例中的判定电路的结构的图;并且
图20是示出本发明的第三实施例中的多处理器的结构的图。
具体实施方式
接下来,将参考附图详细描述本发明的示例性实施例。在所有附图中,相似的组件由相同的标号标识以适当地省略对其的描述。
(第一示例性实施例)
在第一示例性实施例中,对于作为本发明中的多处理器系统,所发明的执行控制电路被应用到数据编码/解码处理系统的情况,将针对示例1等等对该系统的基本结构、特征和操作进行详细描述。在以下附图中,对于与本发明的主旨无关的部分的结构将不进行描述,并且将不对其进行图示。
图1是示出一系统的整体结构的图,在该系统中,作为本发明的第一示例性实施例的多处理器系统的示例,实现了用于控制多个子处理器的执行的执行控制电路。
本发明中的多处理器系统在主处理器侧包括主处理器(MP(CPU))10、作为主处理器的系统总线的CPU总线11和作为外围块的中断控制器12,并且在子处理器侧包括子处理器(功能块)30至3n。n(不小于1的任意自然数)表示子处理器的数目。
主处理器(MP(CPU))10利用CPU总线11执行对子处理器侧的执行控制并且利用施加到中断控制器12的中断信号来核查子处理器侧的状态。
在第一示例性实施例中,作为本发明的执行控制电路20被实现在主处理器(MP(CPU))10和子处理器(功能块)30至3n之间。执行控制电路20包括执行控制处理器(CP)21、去往/来自主处理器(MP(CPU))10的输入/输出接口(CPU I/F(接口),INTR I/F)、作为去往/来自子处理器的输入/输出接口的控制总线42和状态总线52。执行控制电路20内部可设有用于执行控制处理器(CP)21的CP指令存储器22和CP数据存储器23。
INTR I/F在这里表示中断接口。
在执行控制电路20和各个子处理器(功能块)30至3n之间,设有用于执行控制电路20控制子处理器(功能块)30至3n的控制总线控制电路40,和用于子处理器(功能块)30至3n将处理状态通知给执行控制电路20的状态总线控制电路50。
作为执行控制电路20中的来自各个子处理器(功能块)30至3n的输入接口,不使用诸如中断信号之类的专用线路,而是使用状态总线52,并且在执行控制电路20和子处理器(功能块)30至3n之间设有状态总线控制电路50使得执行控制电路20可以具有不依从于子处理器的数目的硬件配置。
在执行控制电路20中为了状态总线52的输入设有判定电路24、状态加速器25和状态FIFO(先入先出)控制单元26。通过状态总线52输入的状态数据被假定为具有在状态总线控制电路50上向与其状态通知相关的处理ID和处理状态值添加了子处理器ID的数据格式。
输入的状态数据在这里被设计为使得能够判定其是否是与在判定电路24处接下来要发出的处理命令具有一对一依从关系的简单处理状态并且可被传送到状态加速器25或状态FIFO控制单元26。然后,状态加速器25被设计为在接收到简单处理状态的输入时能够自动发出相应的处理命令。
用于向各个子处理器(功能块)30至3n发出命令的来自执行控制电路20的控制总线42的输出和在执行控制电路20与子处理器(功能块)30至3n之间设有控制总线控制电路40实现了结构不依从于子处理器的数目的执行控制电路20。
这里,在执行控制电路20中,来自执行控制处理器(CP)21的访问和来自状态加速器25的访问由命令仲裁电路29仲裁以输出。
作为执行控制电路20中与主处理器(MP(CPU))10侧的接口,设有用于来自主处理器(MP(CPU))10的命令输入的命令FIFO控制单元27并且设有用于到主处理器(MP(CPU))10的中断因素通知的中断FIFO控制单元28。
由于在实现通常的中断因素寄存器的通常方法中,因素的数目依从于寄存器的数目而具有低可扩展性,所以假定设有具有更高灵活性的中断FIFO控制单元28。
将诸如状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28之类的FIFO设计为利用同一存储器等等来共享使得每个FIFO的阶段数目能够被灵活地改变,而不会有问题。
各个子处理器(功能块)30至3n中的每一个被构造为包括用于接受来自执行控制电路20的命令的命令接收控制单元43和用于将比如处理完成之类的状态通知给执行控制电路20的状态通知控制单元53。
命令接收控制单元43作为控制总线的从动(接受侧)连接,并且具有将所获得的命令传输到子处理器的内部的功能。
状态通知控制单元53作为状态总线的主控(发送侧)连接并且具有将来自子处理器的状态值传送到执行控制电路20的功能。
(对第一示例性实施例的操作的描述)
接下来,将参考图1至图12对本示例性实施例的操作进行详细描述。
图2是示出用于利用图1中所示的执行控制电路20执行对多个子处理器(功能块)30至3n的并行执行控制的处理流程的示例的图。
(1)当用于操作子处理器的参数等等存在时,主处理器(MP(CPU))10将该参数等等写入到比如共享存储器60之类的从子处理器(功能块)30至3n中的每一个可访问的区域中。此处理不是本发明必需的。
(2)在通过CPU I/F设定用于使得多个子处理器(功能块)30至3n协同执行控制电路20操作的操作序列之后,主处理器(MP(CPU))10利用命令FIFO控制单元27发出用于开始操作序列等等的命令。
(3)执行控制电路20利用控制总线42使得子处理器30(功能块#0)在来自主处理器(MP(CPU))10的操作序列指定的定时激活处理A。
(4)子处理器30(功能块#0)基于来自执行控制电路20的激活命令从共享存储器60获得处理A所必要的参数和输入数据。
(5)子处理器30(功能块#0)执行处理A。根据需要使用子处理器30(功能块#0)中的本地存储器。
(6)子处理器30(功能块#0)将处理A的结果数据存储在共享存储器60中。
(7)子处理器30(功能块#0)通过状态总线52将处理A的完成通知给执行控制电路20。
(8)在认识到处理A完成之后,执行控制电路20根据主处理器(MP(CPU))10设定的操作序列利用控制总线42使得子处理器31(功能块#1)激活处理B。
(9)子处理器31(功能块#1)基于来自执行控制电路20的激活命令从共享存储器60获得处理B所必要的参数和输入数据。
(10)子处理器31(功能块#1)执行处理B。根据需要使用子处理器31(功能块#1)中的本地存储器。
(11)子处理器31(功能块#1)将处理B的结果数据存储在共享存储器60中。
(12)子处理器31(功能块#1)通过状态总线52将处理B的完成通知给执行控制电路20。
(13)在认识到处理B完成之后,执行控制电路20根据主处理器(MP(CPU))10设定的操作序列利用INTR I/F通过中断信号将处理完成通知给主处理器(MP(CPU))10。
(14)在通过中断认识到处理完成之后,主处理器(MP(CPU))10根据需要从共享存储器60获得处理结果数据。
关于像以上(8)(图2中的(8))中所示的操作那样的在接收到来自子处理器的状态通知(处理完成)时向随后的子处理器发出命令(处理激活)的操作,本发明的执行控制电路20可以选择以下情况的任一种。
·利用接收到的状态数据的比特的全部或一部分,通过判定电路24进行的判定,通过状态加速器25处的直接表查找,自动发出随后的命令的情况(硬件处理)。
·经由状态FIFO控制单元26在执行控制处理器(CP)21处的软件处理的情况。
图3和图4是示出图2中所示的操作序列(各个子处理器的处理的依从关系)的示例的图。
图3的示例示出了如下情况,即,在作为处理A的输出数据存在数据0和数据1的情况下,处理B使用数据0作为输入数据并且使用数据2作为输出数据,处理C使用数据1作为输入数据并且使用数据3作为输出数据,并且处理D使用作为处理B和C的输出的数据2和数据3作为输入数据。
在图3的示例中,执行控制电路20在从执行处理A的子处理器接收到数据0的写入完成的状态通知时发出用于激活处理B的命令,并且在接收到数据1的写入完成的状态通知时发出用于激活处理C的命令。
在接收到来自执行处理B的子处理器的数据2的写入完成的状态通知和来自执行处理C的子处理器的数据3的写入完成的状态通知两者时发出用于激活处理D的命令。
图4的示例示出了如下情况,即,处理E使用数据4作为输出数据,处理F只使用数据4作为输入数据,处理F使用数据5作为输出数据并且处理G只使用数据5作为输入数据。
在图4所示的示例中,处理E完成的状态通知和用于激活处理F的命令发出具有一对一关系,数据4设于其间。类似地,处理F完成的状态通知和用于激活处理G的命令发出具有一对一关系,数据5设于其间。
关于在子处理器间的相继处理之间,处理状态和随后的命令发出之间的关系具有这种一对一依从关系的部分的执行控制处理,本发明的执行控制电路20的特征在于判定电路24作出处理状态的判定以使得状态加速器25能够自动发出有关命令(硬件处理)。
在本发明中,如图3和图4中所示的这种操作序列在被定义为具有相互链接的定义每个处理的结构和定义每个数据的结构的结构群组之后,被存储在CP数据存储器23中。然后,执行控制处理器(CP)21从所获得的每个状态通知认识到哪个数据有变化(对于该数据,处理已被执行)以及哪个子处理器在操作中(或者处理完成),并且分析CP数据存储器23中存储的结构群组的链接(处理和数据之间的依从关系),从而向子处理器(功能块)30至3n中的每一个发出接下来可操作的处理命令。
更具体而言,当在图3中所示的每个处理中,准备了用于该处理的所有输入数据,输出数据写入目的地空闲并且用于该处理的执行的子处理器(运算资源)可执行(不在操作中)时,有关处理命令被发出到该子处理器。
执行控制电路20对这种操作的执行实现了如图2中所示那样的处理流程,并且在以流水线方式生成的输入数据的处理的情况下,还使得子处理器(功能块)30至3n能够以流水线方式并行执行一系列处理。
关于如图4中所示的在子处理器之间在处理状态和随后的命令发出之间具有一对一依从关系的简单操作序列的这种执行控制处理,不将其结构群组存储在CP数据存储器23上而是将其对应表存储在状态加速器25中使得能够不是利用执行控制处理器(CP)21通过软件处理而是利用状态加速器25通过硬件处理来加速该执行控制处理。
接下来,图5至图9示出了图2中所示的每个处理流程的示例性操作。
图5是示出如图2(2)中所示那样的利用命令FIFO控制单元27从主处理器(MP(CPU))10向执行控制电路20发出命令的示例性操作的图。
(A)从主处理器(MP(CPU))10通过MP总线14向命令FIFO控制单元27写入期望的命令数据导致向执行控制电路20中的执行控制处理器(CP)21生成中断信号,从而使得(B)执行控制处理器(CP)21可以从命令FIFO控制单元27获得命令数据。
图6是示出如图2(13)中所示那样的从执行控制电路20利用中断FIFO控制单元28通过中断信号将操作序列完成等等通知给主处理器(MP(CPU))10的示例性操作的图。
(A)从执行控制处理器(CP)21通过CP总线15向中断FIFO控制单元28写入诸如序列完成之类的中断因素数据导致(B)通过中断控制器12等等将中断信号通知给主处理器(MP(CPU))10。(C)主处理器(MP(CPU))10能够从中断FIFO控制单元28顺次获得其因素数据并且认识到哪个操作序列完成了等等。
图7是示出如图2(3)和图2(8)中所示那样的从执行控制处理器(CP)21向子处理器(功能块)30至3n中的每一个发出处理激活命令的示例性操作的图。当有关处理激活命令是如图4中所示那样的与相关处理状态具有一对一依从关系的处理激活命令时,参考图9和随后将进行的对其操作的描述。
(A)在通过控制总线42向负责该处理的子处理器(功能块)设定诸如处理ID(指令号码)之类的必要参数之后,执行控制处理器(CP)21发出处理激活命令。
在在命令接收控制单元43处获得处理命令时,子处理器(功能块)侧将所设定的必要参数等等传输到子处理器(功能块)中以执行处理ID(指令号码)等等所指定的处理。
例如由单层总线结构实现的控制总线控制电路40对于来自执行控制电路20的控制总线访问执行地址解码以实现与所选子处理器间的总线访问。
图8是示出如图2(7)和图2(12)中所示那样的由子处理器(功能块)30至3n中的每一个将状态通知给执行控制电路20的示例性操作的图。当有关处理状态是如图4中所示那样的与接下来要发出的处理命令具有一对一依从关系的处理状态时,参考图9和随后将进行的对其操作的描述。
(A)每个子处理器(功能块)利用状态通知控制单元53传送并输出期望的状态数据(处理ID、其状态值等等)并且当所通知的状态数据经由执行控制电路20中的判定电路24被存储在状态FIFO控制单元26中时,中断信号被输出到执行控制处理器(CP)21,从而使得(B)执行控制处理器(CP)21从状态FIFO控制单元26获得该状态数据。
当来自各个子处理器(功能块)30至3n的状态总线访问发生竞争时,例如由单层状态结构实现的状态总线控制电路50利用“单循环赛系统”等等执行访问仲裁以将来自所选子处理器的状态总线访问传送到执行控制电路20。
图9是示出如图2(7)、图2(8)和图4中所示的由各个子处理器(功能块)30至3n将处理状态通知给执行控制电路20并且自动向各个子处理器(功能块)30至3n中的有关那个发出与该处理状态具有一对一依从关系的处理命令的示例性操作的图。
(A)每个子处理器(功能块)利用状态通知控制单元53传送并输出期望的状态数据(处理ID、其状态值等等),并且当执行控制电路20中的判定电路24中判定所通知的状态数据是具有一对一依从关系的处理状态时,该数据被传送到状态加速器25。(B)状态加速器25使用所传送的处理状态值来在预先设定的命令表中查找,并且获得相应的处理命令(子处理器ID、处理ID(指令号码)等等)以自动向有关子处理器发出用于处理ID(指令号码)等等的设定或者用于处理激活的命令。关于与图7中相同的子处理器侧的命令接收控制单元43的操作和控制总线控制电路40的操作,参考以上对于图7的描述。
(对状态数据格式的描述)
图10是示出本示例性实施例中的状态数据的数据格式的示例的图。状态数据的传送是通过状态总线52实现的。各个子处理器(功能块)30至3n中的每一个例如通知作为状态总线52的地址信号的处理ID(指令号码)和作为数据信号的其状态值(指示输入数据读取完成、输出数据写入完成、处理完成等等的值)。该数据在状态总线控制电路50上在利用地址信号的较高位比特等等添加子处理器ID的情况下被通知给执行控制电路20。
本示例性实施例中的执行控制电路20在这里的特征在于每个子处理器可以使用状态值的任意比特(例如在图10中所示的示例的情况下的比特[15])来通知该状态是否与接下来要发出的处理命令具有一对一依从关系。
作为示例,比特[15]为“1”表示与接下来要发出的处理命令具有一对一依从关系的简单处理状态,并且比特[15]为“0”表示其他普通处理状态。
在本示例性实施例中,对于是否是简单处理状态的判定是由判定电路24作出的,并且当是简单处理状态时,有关状态值被传送到状态加速器25。然后,当在状态加速器25处在表中查找相应的处理命令时使用处理状态值或其比特的一部分。
这里,作为用于判定的比特,图10中所示的比特[15]只是示例性的,可以使用除比特[15]以外的其他比特,或者也可以使用状态数据中的多个任意比特作为判定比特,而不会有问题。
在普通处理状态的情况下,本发明的执行控制电路20不为每个传送地址(处理ID)实现状态寄存器,而是在执行控制电路20中的状态FIFO控制单元26中将子处理器ID(功能块代码)、处理ID(传送地址信号)及其状态值(传送数据信号)以将它们包括在一块中的数据格式存储为一个状态数据。
状态总线52和这样的数据格式产生了这样的优点,即,执行控制处理器(CP)21只要通过从状态FIFO控制单元26读取状态数据一次就可以获得与哪个子处理器的哪个处理相对应的是哪个状态(子处理器ID、处理ID及其状态值)。使用这样的数据格式以及对其他FIFO共享状态FIFO在考虑未来系统可扩展性时消除了实现不适当的额外状态寄存器的必要并且产生了容易应对通过改变状态FIFO的阶段数目进行的扩展的优点。
(对判定电路24的操作的描述)
图11示出了本示例性实施例中的判定电路24的结构示例。
在从状态总线52输入状态数据时,判定电路24判定其处理状态是否与随后的处理命令具有一对一依从关系以执行高速处理。
更具体而言,在本示例性实施例中,在例如状态数据的比特[15]被假定为是判定比特的情况下,利用设在判定电路24中的比较判定电路70来判定比特[15]是否为“1”。
然后,当判定其是与接下来要发出的处理命令具有一对一依从关系的简单处理状态时(当比特[15]为“1”时),将状态值的其余比特(例如比特[14∶0])传送到状态加速器25(EN_1有效)。
另一方面,当判定不是简单处理状态而是普通处理状态时(比特[15]为“0”),将有关状态数据传送到状态FIFO控制单元26(EN_0有效)。作为用于这里的判定的比特,比特[15]是示例性的,可以使用除比特[15]以外的其他比特,或者也可以将状态数据中的多个任意比特用于判定,而不会有问题。
判定电路24的特征还在于具有如下功能:利用用于调试或测试的标志(控制寄存器)等等,无论判定结果如何,将所有状态数据传送到状态FIFO 26,以使得执行控制处理器(CP)21能够核查或执行该执行控制处理,并且当判定状态具有一对一依从关系时,将数据传送到状态加速器25和状态FIFO控制单元26两者。
在这里由专用硬件实现的判定电路24也可利用具有高灵活性和可扩展性的结构来实现,该结构的功能可通过改变子处理器通知的状态数据的值来改变,因为只有状态数据被用于判定。
(对状态加速器25的操作的描述)
图12示出了本发明的执行控制电路20中的状态加速器25的结构示例。
以从判定电路24输入的与接下来要发出的处理命令具有一对一依从关系的处理状态值或者与该值相当的数据的一部分作为地址,状态加速器25读取存储相应处理命令的命令表71(存储器)。
命令表71具有与作为该处理命令的发出目的地的命令地址相对应的子处理器ID(功能块代码)、与命令数据相对应的处理ID(指令号码)等等的存储。
状态加速器25中的命令输出控制器72使用读取命令地址和命令数据来向负责该处理命令的子处理器(功能块)设定诸如处理ID(指令号码)之类的必要参数,然后自动发出处理激活命令。
这里,状态加速器25中的命令表71的值被设计为可在诸如执行控制处理器(CP)21的启动操作之类的系统初始操作时从执行控制处理器(CP)21或主处理器(MP(CPU))10经由CP总线15写入。
如上所述将状态加速器25构造为可利用命令表71来这样改写具有如下优点,即,在系统LSI之后灵活地改变或扩展系统,例如判定哪个处理状态要作为简单处理状态被高速处理或者判定哪个处理状态要被执行控制处理器(CP)作为普通处理状态来处理。
在处理命令发出时从状态加速器25输出的对控制总线42的总线访问当与经由CP总线15来自执行控制处理器(CP)21的访问竞争时,由命令仲裁电路29仲裁并被传送到控制总线42。
命令仲裁电路29基本上执行始终对来自状态加速器25的总线访问给予优先的访问仲裁。当对于一个处理命令发出要求多个总线访问时,电路执行总线访问仲裁以接连进行所要求的总线访问数目那么多次访问。
在这里由专用硬件实现的本发明的状态加速器25也可利用具有如下灵活性和可扩展性的结构来实现,因为其使用命令表71的表查找作为其功能:使得要发出的处理命令等等能够通过利用主处理器或执行控制处理器改变命令表71的值来任意改变。换言之,可以与执行控制处理器的指令代码等等同等地对待命令表71的设定值。
(第一示例)
图13是示出本示例性实施例在适合于多个编码处理系统(编码系统A、编码系统B)的数据编码/解码处理系统中的应用示例作为具体的一个多处理器系统的图。
(对结构的描述)
设有控制整个数据编码/解码处理系统的主处理器(MP(CPU))10、CPU总线11、中断控制器12、外部存储器控制器13等等,作为实际执行数据编码/解码处理的子处理器(功能块)设有处理元件31至35(FA1、FA2、FA3、FA4和FA5),并且作为充当与LSI的外部的接口的子处理器(功能块)设有处理元件36(F6)。
在主处理器(MP(CPU))10和各个子处理器31至36之间实现有用于执行作为本发明的特征的多个子处理器31至36的并行执行控制的执行控制电路20,并且在执行控制电路20和子处理器31至36之间设有控制总线控制电路40和状态总线控制电路50。
子处理器31至36中的每一个包括用于通过控制总线42从执行控制电路20接收命令的命令接收控制单元43和用于通过状态总线52将状态通知给执行控制电路20的状态通知控制单元53。
由于各个子处理器之间的数据传送是通过LSI中的共享存储器60执行的,该存储器被设计为多组(multibank)存储器,所以从主处理器(MP(CPU))10和各个子处理器(功能块)31至36可以对不同组的共享存储器进行并行访问。此外,各个子处理器(功能块)31至36之间的数据传送全都通过共享存储器60来执行消除了不同子处理器31至36之间的直接通信单元的必要。换言之,像本示例性实施例这样的多处理器结构预期了子处理器(功能块)的再利用的可能性的提高和系统整体上的可扩展性的提高。
这里,在示例1的执行控制电路20中,图1中所示的诸如状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28之类的各个FIFO的控制功能由专用硬件电路26、27和28实现。关于FIFO的实体,每个FIFO结构被设计为是可变的,通过其利用FIFO存储器控制单元61作为同一地址空间上的存储器(FIFO存储器)的共享和通过在内部为控制寄存器62设有用于设定每个FIFO的基本地址和FIFO的阶段数目的寄存器等等。
(对操作的描述)
将参考图13至图16描述示例1的操作。
图14是示出编码系统A和编码系统B中的每一个的数据编码/解码处理的操作序列的图。
在用于处理编码系统A的数据编码/解码处理系统中,在数据编码处理的情况下,当主处理器(MP(CPU))10向执行控制电路20发出用于编码处理A序列执行的命令时,执行控制电路20分析如图14中所示那样的编码处理A序列以进行执行控制处理,该执行控制处理包括:(A)在接收到来自主处理器(MP(CPU))10的编码处理数据A传送完成状态时向功能块31发出编码处理FA1激活命令,(B)在接收到来自功能块31的编码处理FA1完成状态时向功能块32发出编码处理FA2激活命令,以及(C)在接收到来自功能块32的编码处理FA2完成状态时向功能块36发出编码数据传送处理F6激活命令。
通过如上所述那样的执行控制处理存储来自主处理器的后续编码处理数据A使得每个功能块的操作成为流水线方式的并行操作。
此时,如图14中指示为“一对一”的,在例如编码处理FA1完成状态和编码处理FA2激活命令之间,子处理器(功能块)之间的一对一依从关系成立。因此,在状态加速器25中的命令表71处设定相应的处理命令以将该状态数据中的判定比特设定为1使得状态加速器25能够加速执行控制处理。
在解码处理的情况下,当主处理器(MP(CPU))10向执行控制电路20发出用于解码处理A序列执行的命令时,执行控制电路20分析如图14中所示那样的解码处理A序列以执行处理,该处理包括:(A)在接收到经常性周期发生的来自功能块36的输入数据传送处理F7完成状态时向功能块35发出解码处理FA5激活命令,(B)在接收到解码处理FA5完成状态时向功能块34发出解码处理FA4激活命令,(C)在接收到解码处理FA4完成状态时向功能块33发出解码处理FA3命令,以及(D)在接收到解码处理FA3完成状态时向主处理器(MP(CPU))10发出解码数据通知中断。
通过如上所述那样的执行控制处理对解码处理数据D的经常性周期传送的结果是使得每个功能块的操作成为流水线方式的并行操作。同样,在解码处理时,由于在图14中指示为“一对一”的例如在解码处理FA5完成状态和编码处理FA4激活命令之间子处理器(功能块)之间的一对一依从关系类似地成立,所以状态加速器25对执行控制处理的加速成为了可能。
同样,当系统作为用于另一编码系统B的数据编码/解码系统操作时,基本执行控制操作与数据编码/解码系统A的情况是相同的。此时,适合于编码系统A(FA1、FA2、FA3、FA4、FA5)和编码系统B(FB1、FB2、FB3、FB4、FB5)的任一处理的各个子处理器(功能块)31至35通过由执行控制电路20指示的处理命令(处理ID)选择并执行处理。要被登记在执行控制电路20中的操作序列是对于编码系统A和编码系统B两者实现的。
从编码系统A处理到编码系统B处理或者从编码系统B处理到编码系统A处理的整个系统的处理的切换通过主处理器(MP(CPU))10对用于有关编码系统的操作序列的执行(对执行控制电路20的命令发出)可容易地实现。
同样,对于与接下来要发出的处理命令具有一对一依从关系的简单处理状态的加速处理,通过在状态加速器25中的命令表71处预先设定多个操作序列的数目那么多个值或者通过在编码系统切换的定时也改写命令表71的值,可以灵活地应对多个操作序列。
在图13中所示的结构中,共享存储器60用于主处理器(MP(CPU))10和子处理器31至36之间以及不同子处理器之间的传送。
在此情况下,消除了不同子处理器之间的直接通信单元的必要,并且将处理所必要的处理参数等等写入到共亨存储器60中使得能够通过从执行控制电路20向所有子处理器31至36只发出存储处理内容(处理ID)和根据需要用于处理的参数的共享存储器地址(数据指针)和激活命令的共通控制来进行激活控制。另一个重大优点是将共享存储器60用于作为本发明的特征的执行控制电路20和不同子处理器之间的数据传送使得可以灵活地应对如图14中所示那样的每个子处理器(功能块)的处理顺序(执行顺序)不同的多个操作序列。
(对用于共享FIFO的操作的描述)
将参考图15和图16描述用于共享FIFO的操作。图15是示出用于共享FIFO的示例性结构的图。
虽然图1中示出了逻辑块结构,使得为了CP总线15和MP总线14以及状态总线52访问其FIFO,它们对中断FIFO控制单元28、状态FIFO控制单元26和命令FIFO控制单元27作出直接访问,但在共享FIFO的情况下,如图15中所示将对FIFO存储器控制单元61作出访问。
状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28中没有作为FIFO的实体,并且控制每个FIFO的写入指针(WP)、读取指针(RP)、存储数据的数目(NUM)等等。
从而,状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28各自包括写入指针寄存器、读取指针寄存器、存储数据数目寄存器、指示满/空标志的状态寄存器、用于清除FIFO的清除寄存器(CLR)、用于掩蔽在对FIFO的写入发生时引起的到主处理器(MP(CPU))10或执行控制处理器(CP)21的中断的掩蔽寄存器(MSK),等等。
控制寄存器单元62包括FIFO的数目那么多个基本地址寄存器(BASE)、阶段数目寄存器(DEPTH)、数据比特宽度寄存器(WIDTH)等等,作为用于共享FIFO的设定寄存器。
FIFO存储器控制单元61包括作为每个FIFO的实体的FIFO存储器(FIFO RAM),并且对于经由判定电路24来自CP总线15、MP总线14和状态总线的FIFO访问,分别包括利用来自控制寄存器62的每个FIFO基本地址(BASE)和来自状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28的每个写入地址指针(WP)和每个读取地址指针(RP)执行存储器访问的地址转换的地址转换电路(Address Conv.)。
将参考图15描述诸如状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28之类的每个FIFO控制单元的操作。
FIFO控制单元26、27和28各自利用来自控制寄存器单元62的每个FIFO阶段数目信号(DEPTH)和每个FIFO数据比特宽度信号(WIDTH)和来自FIFO存储器控制单元61的每个FIFO的写入使能信号(WE)和读取使能信号(RE)来控制写入地址指针(WP)、读取地址指针(RP)、存储数据数目(NUM)等等。除此之外,还可以提供诸如FIFO状态寄存器功能、FIFO清除功能和中断掩蔽功能之类的功能,而不会有问题。
图16是示出FIFO存储器控制单元61的总线控制的图。诸如状态FIFO控制单元26、命令FIFO控制单元27和中断FIFO控制单元28之类的每个FIFO的实现使用一个存储器(FIFO存储器),并且通过使用基本地址寄存器(BASE)和FIFO阶段数目寄存器(DEPTH)可以将每个FIFO区域和每个FIFO的阶段数目设定为可变的。
当向每个FIFO写入数据时和从每个FIFO读取数据时,使用专用的“中断FIFO写入地址区域(INTWRITE)”、“中断FIFO读取地址区域(INTREAD)”、“状态FIFO读取地址区域(STATREAD)”、“命令FIFO写入地址区域(CMDWRITE)”、“命令FIFO读取地址区域(CMDREAD)”等等的地址来进行访问。当访问这些区域时,利用各个FIFO的基本地址(BASE)、写入地址指针(WADR(WP))和读取地址指针(RADR(RP))的值来执行将地址转换到实际FIFO存储器的处理。
使用一个FIFO存储器(FIFO RAM)来实现每个FIFO的图16中所示的FIFO存储器控制单元61还仲裁来自CP总线15、MP总线14和状态总线52的访问的竞争。
特别执行的是不使用访问控制寄存器等等的硬件访问仲裁,对于其采用诸如“单循环赛系统”或“优先级顺序是MP总线14>CP总线15>状态总线的固定优先级系统”之类的仲裁方法。
从而,设有每个FIFO的基本地址寄存器(BASE)、阶段数目设定寄存器(DEPTH)和数据比特宽度寄存器(WIDTH)的控制寄存器单元62、设有控制写入/读取指针和存储数据的数目的这种功能的FIFO控制单元25、26和27中的每一个以及设有转换每个FIFO访问的地址的功能的FIFO存储器控制单元61使得每个FIFO(状态FIFO、命令FIFO、中断FIFO)能够被共享并且还使得每个FIFO的阶段数目和数据比特宽度能够可变。结果,可以实现可扩展性和灵活性极高的执行控制电路20。利用与每个FIFO相同的存储器也可以共享状态加速器25中的命令表71,而不会有问题。
如上所述,根据本发明,在来自各个子处理器的处理状态被分类成与接下来要发出的处理命令具有一对一依从关系的简单处理状态和其他普通处理状态的情况下,在执行控制电路中设有判定电路(状态解码器)使得能够判定所通知的处理状态属于哪个状态。
然后,在具有一对一依从关系的简单处理状态的情况下,在执行控制电路中设有状态加速器使得能够通过专用电路的表查找来自动发出相应的处理命令。
因此,依据是否是简单处理状态使能了专用硬件处理,从而与使用执行控制处理器的软件处理相比显著地加速了处理。由于发出涉及两个或更多个处理状态的一个处理命令那样的其中三个或更多个处理彼此依从的普通执行控制处理允许利用判定电路将有关处理状态传送到状态FIFO,所以可以利用执行控制处理器通过软件处理实现处理,这也同时实现了高灵活性。
此外,由于利用状态加速器的硬件执行控制处理和由状态FIFO和执行控制处理器(CP)21进行的软件执行控制处理可被并行执行,所以由此产生的负荷分布带来了处理的加速。
状态加速器中的用于发出命令的命令表因为被构造为由执行控制处理器(CP)21或主处理器(MP(CPU))10来设定,所以具有使得在LSI开发后能够通过规格改变等等来容易地改变或扩展该表的优点,并且还因为其结构是独立于执行控制电路的接口所连接到的子处理器的数目和处理状态的数目的,所以具有高灵活性和可扩展性以及速度提高的优点。
(第一示例性实施例的效果)
接下来,将描述第一示例性实施例的效果。本示例性实施例预期了以下效果。
第一个效果是增强了在多处理器系统中其负荷被从主处理器分散化(卸载)到执行控制电路的每个子处理器执行控制功能的加速和进一步的负荷分布。
其原因是,在设有用于控制各个子处理器的并行执行的执行控制电路的情况下,在定义子处理器的执行顺序的操作序列中,在各个子处理器之间处理状态和接下来要发出的处理命令彼此一对一依从的操作序列的执行控制处理可以不被实现为由执行控制处理器进行的软件处理,而是实现为由状态加速器进行的硬件处理。
现有技术经常涉及由将处理实现为硬件处理引起的灵活性和可扩展性的降低,而本发明则在维持系统整体上的高灵活性和可扩展性(稍后将作为第二和第三个效果描述)的同时实现了执行控制处理的加速,这是本发明的最大效果。
当利用执行控制处理器以软件实现执行控制处理时,从自状态FIFO中读取状态数据、识别和分析有关操作序列到发出处理命令的所有处理都是由处理器处理实现的,从而处理周期的数目(等待时间)被假定为是大约几十周期到几百周期。另一方面,当利用状态加速器由硬件处理实现执行控制处理时,从判定电路的判定、状态加速器处的表查找到处理命令的发出的所有处理都是用硬件实现的,从而可以用大约几周期(10周期或更少)的处理周期数目(等待时间)来实现处理。换言之,与使用执行控制处理器的软件处理相比,硬件处理可以几倍或者十倍以上那么快地实现。
另外,在如示例1(图14中所示的示例性操作序列)中所示的具有以流水线方式并行处理的各个子处理器的实际数据处理系统中,很有可能在各个子处理器之间处理状态和接下来要发出的处理命令是彼此一对一依从的,从而获得加速效果的可能性将相应地提高。
此外,由于由执行控制处理器进行的软件处理和由状态加速器进行的硬件处理可并行操作,使得状态加速器进行要求有简单处理状态的数目那么多并且被假定为由执行控制处理器处理的执行控制处理也使得能够平衡执行控制处理器的处理负荷。
与由执行控制处理器实现所有执行控制处理的现有技术相比,这带来了执行控制处理器的处理故障的风险的急剧降低。
第二个效果是提供了包括执行控制电路的高度灵活的多处理器系统。特别地,在维持高灵活性的同时,只需要通过添加简单的硬件电路就可以实现在各个子处理器之间处理状态和接下来要发出的处理命令彼此一对一依从的操作序列的执行控制处理的加速。
其原因是,在本发明的执行控制电路的结构中,当对于各个子处理器之间的执行控制处理,其处理状态和接下来要发出的处理命令彼此一对一依从时,可以例如根据执行控制处理器的处理负荷、命令表的容量等等为每个处理状态灵活地选择是利用由简单的表查找实现的状态加速器用硬件高速执行处理,还是利用阶段数目可变的状态FIFO和执行控制处理器以软件灵活执行处理。
特别地,将要提高速度的执行控制处理限于在各个子处理器之间处理状态和接下来要发出的处理命令彼此一对一依从的操作序列使得不用复杂的专用硬件配置而只是通过添加执行相对较简单和灵活的表查找的硬件电路(判定电路和状态加速器)就能够在维持灵活性的同时加速处理。
换言之,一个显著的特征是,本发明的执行控制电路中的执行控制处理的加速不能仅利用如专利文献2中所示那样的高度灵活的执行控制电路和简单判定电路的组合来容易地实现,而是可以如图3、图4和图14中所示通过找到处理状态和接下来要发出的处理命令彼此一对一依从的操作序列的属性并且将其充分利用为用于判定处理的加速是否可能的基准(判定点)来实现。
还示出了使用在状态数据中设有判定比特的数据格式利用相对较简单的比较判定电路实现了判定电路中的判定功能。
在此情况下,虽然必须要在子处理器侧根据有关处理状态的执行控制处理是要利用状态加速器以硬件实现还是要利用执行控制处理器以软件实现来改变状态数据值,但判定电路可有利地利用极简单的结构来实现。
另一个优点是如示例1中详细描述那样在同一存储器上共享执行控制电路中的状态FIFO、命令FIFO和中断FIFO使得能够在LSI开发后根据操作序列或者执行控制处理器的处理量来灵活地调整每个FIFO的阶段数目等等。
第三个效果是提供了包括执行控制电路并且可扩展性较高的多处理器系统。特别地,可以在维持高可扩展性的同时实现在各个子处理器之间处理状态和接下来要发出的处理命令彼此一对一依从的操作序列的执行控制处理的加速。
其原因是,在本发明中,作为执行控制电路的结构,通过使用图10中所示那样的状态数据的格式和阶段数目可变的状态FIFO并且通过利用设定可改变的命令表将状态加速器实现为专用硬件配置来实现来自每个子处理器的状态通知的处理,使得系统能够在不改变执行控制电路的硬件配置的情况下应对子处理器的数目、处理状态的数目的增加等等。
特别地,在扩展与接下来要发出的处理命令具有一对一依从关系的那种处理状态的情况下,由于其可由具有较小数目的处理周期的状态加速器处理,所以只要通过改变状态加速器中的命令表的设定等等就可以进行扩展,而不会影响整体处理等待时间或执行控制处理器的处理负荷。
由于执行控制电路的硬件基本上仅由执行控制处理器、用于每个接口的FIFO和为了加速状态处理而添加的简单硬件电路(判定电路和状态加速器)形成,并且作为主处理器侧的接口的命令FIFO和中断FIFO中的每一个的阶段数目可通过与其他FIFO共享来设定,所以本发明的执行控制电路很有可能转而应用到各种多处理器。
(第二示例性实施例)
接下来,将参考附图详细描述本发明的第二示例性实施例。在以下附图中,对于与本发明的主旨无关的部分的结构将不进行描述,并且将不对其进行图示。
在本示例性实施例中,将对内容可寻址存储器(CAM)被用于执行控制电路的判定电路中的状态判定的情况进行详细描述。
图17是示出将内容可寻址存储器(CAM)用于执行控制电路的判定电路中的状态判定的多处理器系统的示例性结构的图,该存储器是本发明的第二示例性实施例。
与第一示例性实施例类似,本发明的多处理器系统的前提是在主处理器侧包括主处理器(MP(CPU))10、其CPU总线11和作为外围块的中断控制器12,并且在子处理器侧包括各个子处理器(功能块)30至3n。主处理器(MP(CPU))10利用CPU总线11执行对子处理器侧的执行控制,并且利用输入到中断控制器12的中断信号核查子处理器侧的状态。作为本发明的执行控制电路20被实现在主处理器(MP(CPU))10和子处理器(功能块)30至3n之间,并且执行控制电路20包括与第一示例性实施例相同的接口(CPU I/F、INTR I/F、控制总线42和状态总线52)。
在执行控制电路20和各个子处理器(功能块)30至3n之间,与第一示例性实施例类似地设有控制总线控制电路40和状态总线控制电路50。各个子处理器(功能块)30至3n中的每一个与第一示例性实施例类似地被构造为包括命令接收控制单元43和状态通知控制单元53。
第二示例性实施例特有的执行控制电路20的结构是设在判定电路24中以使得能够在不将判定比特设定到处理状态值的情况下判定处理状态是否与接下来要发出的处理命令具有一对一依从关系的内容可寻址存储器(散列表)。
其特征还在于判定电路24设有来自CP总线15的访问接口以使得散列表的内容能够由执行控制处理器(CP)21来设定。第二示例性实施例还被假定为包括用于从LSI的外部观测控制总线42和状态总线52的访问状态的总线监视输出电路63。
(对第二示例性实施例的操作的描述)
接下来,将参考图17至图19详细描述本示例性实施例的操作。
执行控制电路20的基本操作,也就是图2中所示的操作流程、图3和图4中所示的操作序列以及图5至图9中所示的操作图像与第一示例性实施例的相同,并且在判定电路24中设有内容可寻址存储器(散列表)的情况下,第二示例性实施例特有的操作是利用内容可寻址存储器(散列表)来执行从子处理器(功能块)30至3n中的每一个通知来的处理状态是否与接下来要发出的处理命令具有一对一依从关系的判定。像第一示例性实施例中那样在状态数据中设定判定比特从而就不必要了。
图18是示出第二示例性实施例中的状态数据的数据格式的示例的图。
本示例性实施例中的状态数据的基本结构与图10中所示的第一示例性实施例中的数据格式相同,唯一不同的是指示是否是与接下来要发出的处理命令具有一对一依从关系的简单处理状态的判定比特是不必要的。
在简单处理状态的情况下,在在状态加速器25处在表中查找处理状态值或其比特的一部分时,数据不会被用作地址,从而与图10中所示的第一示例性实施例的格式相比,在第二示例性实施例中处理状态值可被更灵活地指派给子处理器(功能块)30至3n中的每一个。
更具体而言,在由状态加速器25进行的硬件处理和由执行控制处理器(CP)21进行的软件处理之间的选择不要求从每个子处理器通知的状态数据的改变,这产生了如下效果,即,只要通过改变执行控制电路中的表设定,例如判定电路中的内容可寻址存储器(散列表)或状态加速器25中的命令表71的设定,就可以灵活地实现该选择。
图19是示出本示例性实施例中的判定电路24的示例性结构的图。第二示例性实施例中的判定电路24利用设在该电路中的内容可寻址存储器(CAM)73来判定从子处理器(功能块)30至3n中的每一个通知来的处理状态是否与接下来要发出的处理命令具有一对一依从关系。
在通知的状态数据[31:0]作为数据的情况下,判定电路24访问内容可寻址存储器(CAM)73,并且当数据命中时(在简单处理状态的情况下),将要输出的数据的地址传送到状态加速器25,使得状态加速器25利用该地址在命令表71中执行表查找,从而用硬件执行高速执行控制处理。
另一方面,当数据在内容可寻址存储器(CAM)73中未能命中时(在普通处理状态的情况下),输入的状态数据被不加修改地传送到状态FIFO控制单元26以利用执行控制处理器(CP)21用软件处理执行该状态的执行控制处理。
在诸如启动操作之类的初始操作时,执行控制处理器(CP)21在这里利用CP总线15在图19中所示的判定电路24中的内容可寻址存储器(CAM)73和图12中所示的状态加速器25中的命令表71中将子处理器之间的彼此具有一对一依从关系的要高速处理的状态数据值和处理命令值成对地设定在各个存储器的同一地址处。当存在多个值时,可通过改变地址来设定它们。
内容可寻址存储器(CAM)73由于其在数据输入时其地址被输出的特征而基本上应当全都一次被搜索。从而一般难以准备可高速访问的内容可寻址存储器(CAM)73。
从而本示例性实施例的特征在于使用搜索范围可限定的散列表(存储器)75和地址计数器76来实现可相对较高速地访问的内容可寻址存储器(CAM)73。
首先,当状态数据被从状态总线52通知来时,利用例如用于计算每个比特的异或(XOR)的散列函数(散列值计算电路)74来获得散列值。
接下来,以该散列值作为基准地址,地址计数器76访问散列表(存储器)75以利用比较电路77判定输入的状态数据是否与所获得的值一致。
当值与数据一致时,以访问地址作为内容可寻址存储器(CAM)73的输出地址,将该值传送到状态加速器25作为与接下来的处理命令具有一对一依从关系的简单处理状态。
当值未能与数据一致时,利用由执行控制处理器(CP)21预先设定的“正方向搜索数A”和“反方向搜索数B”的设定值,地址计数器76从“基准地址”到“基准地址+A”并且从“基准地址-1”到“基准地址-B”顺次访问散列表(存储器)75以执行另一次搜索和另一次判定。
当在从-B到+A的范围上未能与数据一致时,这意味着不与接下来的处理命令具有一对一依从关系的普通处理状态,则将有关状态数据传送到状态FIFO控制单元26。
这里,执行控制处理器(CP)21对于与接下来的处理命令具有一对一依从关系的简单状态数据预先计算散列值并且以该散列值作为地址将该状态数据设定在散列表(存储器)75处。
在状态加速器25中的命令表71,在同一地址处设定相应的处理命令。当多条状态数据具有同一散列值时,以该散列值作为基准,将数据设定在该散列值前后的空闲地址处。
在此情况下,在上述“正方向搜索数A”和“反方向搜索数B”的控制寄存器处设定值以使得能够搜索直到该状态数据的位置。
从而,本示例性实施例中的判定电路24设有简单的散列计算电路74和散列表(存储器)75以及搜索范围可限定的地址计数器76使得能够用相对较简单的电路配置来实现可高速访问的内容可寻址存储器(CAM)73。
另外,作为本发明的散列表(存储器)75特有的特征,不需要存储所有对象数据,这产生了选择如下的灵活结构的优点:使得执行控制处理器(CP)21根据判定电路24或状态加速器25的处理负荷经由状态FIFO控制单元26处理加速优先级相对较低的简单状态数据,而不将该数据存储在散列表75中。
图17中所示的第二示例性实施例也具有总线监视功能。
通过总线监视输出电路63,用于从执行控制电路20向子处理器(功能块)30至3n中的每一个发出诸如处理开始之类的命令的控制总线42和用于从子处理器(功能块)30至3n中的每一个向执行控制电路20通知处理完成或差错的状态总线52这仅两种单层总线访问到LSI的外部的监视输出使得能够相对较容易地观测与每个子处理器的处理执行相关的几乎所有状态(开始、结束等等)。
从而,获得了相对优良的观测便利(调试便利),因为不是来自每个子处理器的专用线路或专用总线,而是作为本发明的特征的状态总线52和状态总线控制电路50被用于状态通知以通过共享总线实现执行控制电路20和子处理器(功能块)30至3n之间的所有通信。
(第二示例性实施例的效果)
接下来,将描述本示例性实施例的效果。
根据本示例性实施例,虽然用灵活的内容可寻址存储器(散列表)实现判定电路的判定功能与第一示例性实施例相比需要略微更复杂且更大规模的硬件,但对于在由状态加速器进行的硬件处理和由执行控制处理器进行的软件处理之间的选择,不要求对每个子处理器通知的状态数据的改变,而只要求改变执行控制电路中的表设定,例如判定电路中的内容可寻址存储器(散列表)和状态加速器中的命令表,这更灵活地实现了选择。
根据本示例性实施例,总线监视输出装置的提供实现了具有优良的调试便利和可观测性的多处理器系统。
其原因是,由于执行控制电路和每个子处理器之间的接口仅由控制总线和状态总线构成以利用控制总线将处理内容(处理ID)、处理激活命令等等传送到每个子处理器并且利用状态总线从每个子处理器传送诸如处理完成之类的状态通知,所以仅两种总线的总线监视输出使得能够相对较容易地观测与每个子处理器的处理执行相关的几乎所有状态(开始、结束等等)。
特别地,通过不是用可观测性较低的专用线路或专用总线而是用可观测性较高的状态总线来实现用于从每个子处理器通知状态的单元,可以仅在两种单层总线上观测执行控制电路与每个子处理器之间的所有通信。
此外,如第一示例性实施例的示例1中所示,当利用共享存储器实现子处理器之间的数据传送时,选择要观测的共享存储器总线并且监视输出数据到LSI的外部还使得也能够观测子处理器之间的数据传送。
(第三示例性实施例)
将参考图20详细描述本发明的第三示例性实施例。在图20中,对于与本发明的主旨无关的部分的结构将不进行描述,并且将不对其进行图示。
将针对包括多个执行控制电路以并行实现子处理器的执行控制处理的系统来详细描述本示例性实施例。
图20是示出包括作为本示例性实施例的多个执行控制电路20以实现子处理器的执行控制处理的并行执行的多处理器系统的示例性结构的图。
与第一和第二示例性实施例类似,本发明的多处理器系统被包括为在主处理器侧包括主处理器(MP(CPU))10及其CPU总线11并且在主处理器侧包括作为外围块的中断控制器12,并且在子处理器侧包括各个子处理器(功能块)30至3n。主处理器(MP(CPU))10利用CPU总线11进行对子处理器侧的执行控制,并且利用输入到中断控制器12的中断信号核查子处理器侧的状态。
作为第三示例性实施例特有的结构,作为本发明的多个(20a、20b)执行控制电路20被实现在主处理器(MP(CPU))10和子处理器(功能块)30至3n之间以使得执行控制处理被并行执行。
执行控制电路20a、20b和接口可利用与第一和第二示例性实施例的执行控制电路20相同的硬件配置和接口(CPU I/F、INTR I/F、控制总线42和状态总线52)来实现。
在执行控制电路20a、20b和子处理器(功能块)30至3n中的每一个之间,设有控制总线控制电路40和状态总线控制电路50。
控制总线控制电路40和状态总线控制电路50如图20中所示可各自被设有一个并且被执行控制电路20和20b共享,或者可对多个执行控制电路中的每一个设有控制总线控制电路40和状态总线控制电路50,而不会有问题。
虽然在图20中示出的是具有两个执行控制电路20的系统,但可以并行操作三个或更多个执行控制电路,而不会有问题。只有主处理器侧的中断控制器12的输入中断信号的数目依据所实现的执行控制电路20的数目而改变,而其他的块通过结构改变相对较容易的总线控制电路的改变就可应用(CPU总线11、控制总线控制电路40和状态总线控制电路50)。换言之,不必改变执行控制电路20的内部结构和接口,并且可依据系统改变的速率要被状态加速器25提高的处理状态的改变或者每个FIFO的阶段数目的改变可利用作为本发明的特征的命令表71等等的改写功能和示例1中所示的FIFO共享功能来应对,而不涉及硬件配置改变。
虽然这里在图20中单纯为了方便起见示出了主处理器(MP(CPU))10,但与执行控制电路20类似地可存在多个主处理器(MP(CPU)),而不会有问题。
(对第三示例性实施例的操作的描述)
接下来,将详细描述本示例性实施例的操作。
在作为本发明的特征设有多个(在图20所示的示例中是两个)执行控制电路的情况下,本示例性实施例特有的操作是执行控制电路的并行操作和负荷分布。
从主处理器(MP(CPU))10将处理所必要的操作序列分布登记在执行控制电路20a和20b并且将有关操作序列的开始命令发出到登记该操作序列的执行控制电路。
使得每个执行控制电路执行不同的操作序列使得执行控制处理能够被并行执行以实现了整个系统中的进一步负荷分布。
还可以根据整个系统的处理负荷进一步增加子处理器的数目。
虽然子处理器(功能块)30至3n侧的操作基本上与第一和第二示例性实施例的相同,但对于由两个执行控制电路20a和20b两者控制的子处理器,处理状态应当被通知给两个执行控制电路。
另一方面,对于仅由执行控制电路之一控制的子处理器,处理状态应当仅被通知到有关执行控制电路。因为将可由执行控制处理器(CP)21改变设定的命令表71和阶段数目可变的状态FIFO用于处理状态的执行控制处理,所以本发明的执行控制电路20能够灵活地应对状态通知的改变。
当来自两个执行控制电路20a和20b的控制总线访问发生竞争时,控制总线控制电路40在通过单循环赛系统等等仲裁访问之后对地址解码以实现所选执行控制电路与子处理器之间的控制总线访问。
当来自子处理器(功能块)30至3n的状态总线访问发生竞争时,状态总线控制电路50在通过单循环赛系统等等仲裁访问之后执行地址解码以实现该子处理器对所选执行控制电路的状态总线访问。
虽然预期将来多处理器系统会具有数目增加的子处理器,但像本示例性实施例中那样提供多个执行控制电路20有利地防止了由于执行控制处理的负荷增大引起的处理故障。
另一优点是作为本发明的执行控制电路20的数目的增加可以在不改变执行控制电路20的硬件配置和子处理器侧的硬件配置的情况下实现。
(第三示例性实施例的效果)
接下来,将描述本示例性实施例的效果。
与第一示例性实施例相比,本示例性实施例通过实现多个执行控制电路而实现了对执行控制处理器(CP)或状态加速器的处理的进一步负荷平衡。虽然伴随着将来系统规模的增大,预期LSI中的子处理器的数目会增加,但允许在不改变执行控制电路的硬件配置的情况下增加所实现的子处理器的数目的本发明在维持高可扩展性的同时使能了进一步的负荷分布。
虽然以上已针对优选的示例性实施例描述了本发明,但这只是用于例示的而不应被解释为限制性的,并且可在其技术思想的范围内被修改实现。
前述组件的任意组合和本发明的表现到/自方法、装置、系统、记录介质、计算机程序等等的转换也是作为本发明的模式可得的。
此外,本发明的各种组件不需要始终彼此独立,并且多个组件可被形成为一个构件,或者一个组件可由多个构件实现,或者某个组件可以是另一组件的一部分,或者某个组件的一部分和另一组件的一部分可以彼此交迭,等等。
虽然本发明的方法和计算机程序具有按顺序记载的多个步骤,但记载的顺序不是对多个步骤的执行顺序的限制。因此,当执行本发明的方法和计算机程序时,可以改变多个步骤的执行顺序,而不会妨害内容。
本发明的方法和计算机程序的多个步骤不限于在彼此不同的定时执行。因此,在某个步骤的执行期间,其他步骤可以发生,或者某个步骤的执行定时和另一步骤的执行定时的一部分或全部可彼此交迭,等等。
以上公开的示例性实施例的全部或一部分可被描述为但不限于以下附注。
(附注1)一种多处理器系统,包括:
一个或多个主处理器和多个子处理器;以及
进行每个所述子处理器的执行控制的执行控制电路,
其中所述执行控制电路包括
执行控制处理器,用于每个所述子处理器的执行控制处理,
控制总线输出单元,用于到每个所述子处理器的命令的激活,
状态总线输入单元,用于来自每个所述子处理器的状态通知,
判定电路,该判定电路判定所述状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理,
状态加速器,该状态加速器在状态通知要被高速处理时发出相应的处理激活命令,以及
状态FIFO控制单元,该状态FIFO控制单元利用所述执行控制处理器来处理所述状态通知。
(附注2)根据附注1所述的多处理器系统,其中,所述状态加速器在状态通知要被高速处理时通过表查找发出相应的处理激活命令。
(附注3)根据附注1或附注2所述的多处理器系统,其中,所述执行控制电路包括命令仲裁电路,该命令仲裁电路仲裁来自所述执行控制处理器和所述状态加速器的访问。
(附注4)根据附注1至附注3的任何一个所述的多处理器系统,其中,所述状态加速器包括
命令表,该命令表成对地存储相应的处理命令的子处理器ID和处理ID,以及
命令输出控制器,用于向所述子处理器发出相应的处理命令,其中,所述命令输出控制器
以从所述判定电路传送来的数据的全部或一部分作为地址,从所述命令表读取存储的处理命令并且向具有所读取的子处理器ID的子处理器发出处理激活命令以便包括一起读取的处理ID。
(附注5)根据附注1至附注4的任何一个所述的多处理器系统,其中
在用于所述状态通知的状态数据的格式中设有用于判定的比特区域,并且
所述判定电路包括
比较判定电路,该比较判定电路利用所述用于判定的比特区域来执行判定,以及
传送选择单元,该传送选择单元当判定状态通知具有一对一依从关系并且要被高速处理时将所述状态数据的全部或一部分传送到所述状态加速器,否则将所述状态数据传送到所述状态FIFO控制单元。
(附注6)根据附注1至附注4的任何一个所述的多处理器系统,其中,所述判定电路包括
内容可寻址存储器,该内容可寻址存储器当被利用输入的状态数据来访问时,如果具有一对一依从关系的处理命令存在,则通过输出所述命令表的地址来实现判定,以及
传送选择单元,该传送选择单元当状态数据在所述内容可寻址存储器中命中时将要输出的地址传送到所述状态加速器,并且当数据未能命中时将输入的所述状态数据传送到所述状态FIFO控制单元。
(附注7)根据附注6所述的多处理器系统,其中,所述内容可寻址存储器包括
对于状态数据的散列值计算电路,
散列表,该散列表以从具有一对一依从关系的状态数据计算出的散列值作为地址将该状态数据作为数据存储,以及
地址计数器,用于在具有相同散列值的多条状态数据存在时通过最少次数的访问实现判定。
(附注8)根据附注6或附注7所述的多处理器系统,其中,所述内容可寻址存储器的内容的设定能够被所述主处理器或所述执行控制处理器改变。
(附注9)根据附注1至附注8的任何一个所述的多处理器系统,其中,所述判定电路包括不考虑所述判定的结果根据能够被所述主处理器或所述执行控制处理器设定的控制寄存器的值将所有状态数据传送到所述状态FIFO控制单元的单元。
(附注10)根据附注1至附注9的任何一个所述的多处理器系统,包括:
执行从所述执行控制电路到每个所述子处理器的控制的控制总线用的控制总线控制电路,以及
执行从每个所述子处理器到所述执行控制电路的状态通知的状态总线用的状态总线控制电路,其中
所述状态总线控制电路包括
执行到所述执行控制电路的状态总线传送的单元,其中子处理器ID被添加到状态数据,该ID在来自每个所述子处理器的状态总线访问的仲裁时指示出状态通知来自所述子处理器中的哪个,并且
所述状态FIFO控制单元包括
将所述子处理器ID以及相应的处理ID和状态值成块存储的机构。
(附注11)根据附注1至附注10的任何一个所述的多处理器系统,其中,每个所述子处理器包括
命令接收控制单元,用于获得来自所述控制总线的处理激活命令,以及
状态通知控制单元,用于向所述状态总线发送处理状态,并且
将所述处理激活命令指定的处理ID和与该处理ID相对应的处理状态相组合地作为状态通知数据通知到所述状态总线。
(附注12)根据附注1至附注11的任何一个所述的多处理器系统,其中,所述执行控制电路包括
命令FIFO控制单元,用于从主处理器设定操作序列和输入命令以与主处理器通信,
中断FIFO控制单元,用于向主处理器发送诸如处理序列完成的中断通知,
FIFO基本地址设定寄存器和FIFO阶段数目设定寄存器,该FIFO基本地址设定寄存器和FIFO阶段数目设定寄存器在同一地址空间上在存储器中共享所述状态FIFO控制单元、所述命令FIFO控制单元和所述中断FIFO控制单元的实体以使得每个FIFO的阶段数目可变,以及
地址转换单元,该地址转换单元在对每个FIFO控制单元的访问发生时利用两个所述FIFO设定寄存器的值来将访问地址转换成实际存储器地址。
(附注13)根据附注1至附注12的任何一个所述的多处理器系统,包括作为所述子处理器之间的数据发送和接收单元多组化的共享存储器,其中每个所述子处理器包括用于输入/输出数据传送的共享存储器接口以通过所述共享存储器接口传送输入/输出数据和获得处理参数。
(附注14)根据附注1至附注13的任何一个所述的多处理器系统,包括将所述控制总线或所述状态总线监视输出到LSI的外部的总线监视输出电路。
(附注15)根据附注1至附注14的任何一个所述的多处理器系统,包括多个所述执行控制电路以并行进行执行控制处理。
(附注16)一种包括一个或多个主处理器和多个子处理器的多处理器系统中的子处理器执行控制方法,其中
设有进行每个所述子处理器的执行控制的执行控制电路,
所述执行控制电路的判定电路判定来自每个所述子处理器的状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理,
所述执行控制电路的状态加速器在状态通知要被高速处理时发出相应的处理激活命令,并且
所述执行控制电路的状态FIFO控制单元利用用于每个所述子处理器的执行控制处理的执行控制处理器来处理所述状态通知。
(附注17)根据附注16所述的执行控制方法,其中,所述状态加速器在状态通知要被高速处理时通过表查找发出相应的处理激活命令。
(附注18)根据附注16或附注17所述的执行控制方法,其中,所述执行控制电路的命令仲裁电路仲裁来自所述执行控制处理器和所述状态加速器的访问。
(附注19)根据附注16至附注18的任何一个所述的执行控制方法,其中
所述状态加速器包括成对地存储相应的处理命令的子处理器ID和处理ID的命令表,以及用于向每个所述子处理器发出相应的处理命令的命令输出控制器,
其中,以从所述判定电路传送来的数据的全部或一部分作为地址,所述命令输出控制器从所述命令表读取存储的处理命令并且向具有所读取的子处理器ID的子处理器发出包括一起读取的处理ID的处理激活命令。
(附注20)根据附注16至附注19的任何一个所述的执行控制方法,其中
在用于所述状态通知的状态数据的格式中设有用于判定的比特区域,并且
所述判定电路
利用所述用于判定的比特区域来作出判定,以及
当判定状态通知具有一对一依从关系并且要被高速处理时将所述状态数据的全部或一部分传送到所述状态加速器,否则将所述状态数据传送到所述状态FIFO控制单元。
(附注21)根据附注16至附注19的任何一个所述的执行控制方法,其中,所述判定电路
利用内容可寻址存储器,当利用输入的状态数据来访问时,如果具有一对一依从关系的处理命令存在,则通过输出所述命令表的地址来实现判定,以及
当状态数据在所述内容可寻址存储器中命中时将要输出的地址传送到所述状态加速器,并且当数据未能命中时将输入的所述状态数据传送到所述状态FIFO控制单元。
(附注22)根据附注16至附注21的任何一个所述的执行控制方法,其中,所述判定电路不考虑所述判定的结果根据能够被所述主处理器或所述执行控制处理器设定的控制寄存器的值将所有状态数据传送到所述状态FIFO控制单元。
(附注23)一种在包括一个或多个主处理器和多个子处理器的多处理器系统上执行的执行控制程序,其使得进行每个所述子处理器的执行控制的执行控制电路执行:
所述执行控制电路的判定电路的功能,判定来自每个所述子处理器的状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理;
所述执行控制电路的状态加速器的功能,在状态通知要被高速处理时发出相应的处理激活命令;以及
所述执行控制电路的状态FIFO控制单元的功能,利用用于每个所述子处理器的执行控制处理的执行控制处理器来处理所述状态通知。
(附注24)根据附注23所述的执行控制程序,其使得所述状态加速器执行在状态通知要被高速处理时通过表查找发出相应的处理激活命令的功能。
(附注25)根据附注23或附注24所述的执行控制程序,其使得所述执行控制电路的命令仲裁电路执行仲裁来自所述执行控制处理器和所述状态加速器的访问的功能。
(附注26)根据附注23至附注25的任何一个所述的执行控制程序,其中
所述状态加速器包括成对地存储相应的处理命令的子处理器ID和处理ID的命令表,以及用于向每个所述子处理器发出相应的处理命令的命令输出控制器,
其中,所述执行控制程序使得所述命令输出控制器执行
以从所述判定电路传送来的数据的全部或一部分作为地址,从所述命令表读取存储的处理命令并且向具有所读取的子处理器ID的子处理器发出包括一起读取的处理ID的处理激活命令的功能。
(附注27)根据附注23至附注26的任何一个所述的执行控制程序,其中
在用于所述状态通知的状态数据的格式中设有用于判定的比特区域,并且所述执行控制程序使得
所述判定电路执行以下功能:
利用所述用于判定的比特区域来作出判定,以及
当判定状态通知具有一对一依从关系并且要被高速处理时将所述状态数据的全部或一部分传送到所述状态加速器,否则将所述状态数据传送到所述状态FIFO控制单元。
(附注28)根据附注23至附注26的任何一个所述的执行控制程序,其使得所述判定电路执行以下功能:
利用内容可寻址存储器,当利用输入的状态数据来访问时,如果具有一对一依从关系的处理命令存在,则通过输出所述命令表的地址来实现判定,以及
当状态数据在所述内容可寻址存储器中命中时将要输出的地址传送到所述状态加速器,并且当数据未能命中时将输入的所述状态数据传送到所述状态FIFO控制单元。
(附注29)根据附注23至附注28的任何一个所述的执行控制程序,其使得所述判定电路执行不考虑所述判定的结果根据能够被所述主处理器或所述执行控制处理器设定的控制寄存器的值将所有状态数据传送到所述状态FIFO控制单元的功能。
通过引用并入
本申请基于2010年5月26日提交的2010-120241号日本专利申请并要求其优先权,该日本专利申请的公开内容通过引用被全部并入在此。

Claims (10)

1.一种多处理器系统,包括:
一个或多个主处理器和多个子处理器;以及
进行每个所述子处理器的执行控制的执行控制电路,
其中所述执行控制电路包括
执行控制处理器,用于每个所述子处理器的执行控制处理,
控制总线输出单元,用于到每个所述子处理器的命令的激活,
状态总线输入单元,用于来自每个所述子处理器的状态通知,
判定电路,该判定电路判定所述状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理,
状态加速器,该状态加速器在状态通知要被高速处理时发出相应的处理激活命令,以及
状态FIFO控制单元,该状态FIFO控制单元利用所述执行控制处理器来处理所述状态通知。
2.根据权利要求1所述的多处理器系统,其中,所述状态加速器在状态通知要被高速处理时通过表查找发出相应的处理激活命令。
3.根据权利要求1或权利要求2所述的多处理器系统,其中,所述执行控制电路包括命令仲裁电路,该命令仲裁电路仲裁来自所述执行控制处理器和所述状态加速器的访问。
4.根据权利要求1至权利要求3的任何一个所述的多处理器系统,其中,所述状态加速器包括
命令表,该命令表成对地存储相应的处理命令的子处理器ID和处理ID,以及
命令输出控制器,用于向所述子处理器发出相应的处理命令,其中,所述命令输出控制器
以从所述判定电路传送来的数据的全部或一部分作为地址,从所述命令表读取存储的处理命令并且向具有所读取的子处理器ID的子处理器发出处理激活命令以便包括一起读取的处理ID。
5.根据权利要求1至权利要求4的任何一个所述的多处理器系统,其中
在用于所述状态通知的状态数据的格式中设有用于判定的比特区域,并且
所述判定电路包括
比较判定电路,该比较判定电路利用所述用于判定的比特区域来执行判定,以及
传送选择单元,该传送选择单元当判定状态通知具有一对一依从关系并且要被高速处理时将所述状态数据的全部或一部分传送到所述状态加速器,否则将所述状态数据传送到所述状态FIFO控制单元。
6.根据权利要求1至权利要求4的任何一个所述的多处理器系统,其中,所述判定电路包括
内容可寻址存储器,该内容可寻址存储器当被利用输入的状态数据来访问时,如果具有一对一依从关系的处理命令存在,则通过输出所述命令表的地址来实现判定,以及
传送选择单元,该传送选择单元当状态数据在所述内容可寻址存储器中命中时将要输出的地址传送到所述状态加速器,并且当数据未能命中时将输入的所述状态数据传送到所述状态FIFO控制单元。
7.根据权利要求6所述的多处理器系统,其中,所述内容可寻址存储器包括
对于状态数据的散列值计算电路,
散列表,该散列表以从具有一对一依从关系的状态数据计算出的散列值作为地址将该状态数据作为数据存储,以及
地址计数器,用于在具有相同散列值的多条状态数据存在时通过最少次数的访问实现判定。
8.根据权利要求1至权利要求7的任何一个所述的多处理器系统,其中,所述执行控制电路包括
命令FIFO控制单元,用于从主处理器设定操作序列和输入命令以与主处理器通信,
中断FIFO控制单元,用于向主处理器发送诸如处理序列完成的中断通知,
FIFO基本地址设定寄存器和FIFO阶段数目设定寄存器,该FIFO基本地址设定寄存器和FIFO阶段数目设定寄存器在同一地址空间上在存储器中共享所述状态FIFO控制单元、所述命令FIFO控制单元和所述中断FIFO控制单元的实体以使得每个FIFO的阶段数目可变,以及
地址转换单元,该地址转换单元在对每个FIFO控制单元的访问发生时利用两个所述FIFO设定寄存器的值来将访问地址转换成实际存储器地址。
9.一种包括一个或多个主处理器和多个子处理器的多处理器系统中的子处理器执行控制方法,其中
设有进行每个所述子处理器的执行控制的执行控制电路,
所述执行控制电路的判定电路判定来自每个所述子处理器的状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理,
所述执行控制电路的状态加速器在状态通知要被高速处理时发出相应的处理激活命令,并且
所述执行控制电路的状态FIFO控制单元利用用于每个所述子处理器的执行控制处理的执行控制处理器来处理所述状态通知。
10.一种在包括一个或多个主处理器和多个子处理器的多处理器系统上执行的执行控制程序,其使得进行每个所述子处理器的执行控制的执行控制电路执行:
所述执行控制电路的判定电路的功能,判定来自每个所述子处理器的状态通知是否与操作序列上接下来要发出的处理命令具有一对一依从关系并且要被高速处理;
所述执行控制电路的状态加速器的功能,在状态通知要被高速处理时发出相应的处理激活命令;以及
所述执行控制电路的状态FIFO控制单元的功能,利用用于每个所述子处理器的执行控制处理的执行控制处理器来处理所述状态通知。
CN2011800260817A 2010-05-26 2011-05-24 多处理器系统、执行控制方法和执行控制程序 Pending CN102934102A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010120241 2010-05-26
JP2010-120241 2010-05-26
PCT/JP2011/061812 WO2011148920A1 (ja) 2010-05-26 2011-05-24 マルチプロセッサシステム、実行制御方法、実行制御プログラム

Publications (1)

Publication Number Publication Date
CN102934102A true CN102934102A (zh) 2013-02-13

Family

ID=45003910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800260817A Pending CN102934102A (zh) 2010-05-26 2011-05-24 多处理器系统、执行控制方法和执行控制程序

Country Status (5)

Country Link
US (1) US9164951B2 (zh)
EP (1) EP2579164B1 (zh)
JP (1) JP5895840B2 (zh)
CN (1) CN102934102A (zh)
WO (1) WO2011148920A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850788A (zh) * 2014-02-18 2015-08-19 瑞萨电子株式会社 多处理器系统
CN111666106A (zh) * 2019-03-07 2020-09-15 慧与发展有限责任合伙企业 来自多个远程芯片的数据卸载加速
CN111930676A (zh) * 2020-09-17 2020-11-13 湖北芯擎科技有限公司 多处理器间的通信方法、装置、系统及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5842206B2 (ja) 2012-01-27 2016-01-13 株式会社トプスシステムズ プロセッサ・コア、およびマルチコア・プロセッサ・システム
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
FR3008207B1 (fr) * 2013-07-04 2016-12-02 M Et R Energies Unite et procede de regulation energetique d'un systeme de production et de consommation electrique
JP6244771B2 (ja) * 2013-09-24 2017-12-13 日本電気株式会社 情報処理システム、処理装置、分散処理方法、及び、プログラム
KR20160003485A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 원격 함수 호출을 위한 자동 코드 생성
JP2018190137A (ja) * 2017-05-01 2018-11-29 富士通株式会社 伝送装置、電子機器、および起動制御方法
KR20190115811A (ko) * 2018-04-04 2019-10-14 에스케이하이닉스 주식회사 확장 메모리 카드를 포함하는 데이터 처리 시스템
CN110825514B (zh) * 2018-08-10 2023-05-23 昆仑芯(北京)科技有限公司 人工智能芯片以及用于人工智能芯片的指令执行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02273848A (ja) * 1989-04-14 1990-11-08 Nec Corp 入出力処理装置
CN101008928A (zh) * 2006-01-26 2007-08-01 国际商业机器公司 用于跟踪命令次序依赖性的方法和设备
JP2008097084A (ja) * 2006-10-06 2008-04-24 Hitachi Ltd プロセッサ及びデータ転送ユニット
WO2010016169A1 (ja) * 2008-08-07 2010-02-11 日本電気株式会社 マルチプロセッサシステム及びその制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592664A (en) * 1991-07-29 1997-01-07 Borland International Inc. Database server system with methods for alerting clients of occurrence of database server events of interest to the clients
JPH09218859A (ja) 1996-02-07 1997-08-19 Oki Electric Ind Co Ltd マルチプロセッサ制御システム
JP3729064B2 (ja) 2000-11-29 2005-12-21 日本電気株式会社 データ依存関係検出装置
JP2002207711A (ja) 2001-01-11 2002-07-26 Nec Eng Ltd グラフィックス負荷分散処理装置
JP3878508B2 (ja) 2001-11-08 2007-02-07 松下電器産業株式会社 回路群制御システム
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
JP2006099332A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP4425177B2 (ja) * 2005-05-20 2010-03-03 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、情報処理装置
JP2007219816A (ja) 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
US8607246B2 (en) * 2008-07-02 2013-12-10 Nxp, B.V. Multiprocessor circuit using run-time task scheduling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02273848A (ja) * 1989-04-14 1990-11-08 Nec Corp 入出力処理装置
CN101008928A (zh) * 2006-01-26 2007-08-01 国际商业机器公司 用于跟踪命令次序依赖性的方法和设备
JP2008097084A (ja) * 2006-10-06 2008-04-24 Hitachi Ltd プロセッサ及びデータ転送ユニット
WO2010016169A1 (ja) * 2008-08-07 2010-02-11 日本電気株式会社 マルチプロセッサシステム及びその制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850788A (zh) * 2014-02-18 2015-08-19 瑞萨电子株式会社 多处理器系统
CN111666106A (zh) * 2019-03-07 2020-09-15 慧与发展有限责任合伙企业 来自多个远程芯片的数据卸载加速
CN111930676A (zh) * 2020-09-17 2020-11-13 湖北芯擎科技有限公司 多处理器间的通信方法、装置、系统及存储介质
CN111930676B (zh) * 2020-09-17 2020-12-29 湖北芯擎科技有限公司 多处理器间的通信方法、装置、系统及存储介质

Also Published As

Publication number Publication date
US20130067201A1 (en) 2013-03-14
JP5895840B2 (ja) 2016-03-30
JPWO2011148920A1 (ja) 2013-07-25
EP2579164A4 (en) 2016-10-26
EP2579164B1 (en) 2021-01-06
US9164951B2 (en) 2015-10-20
EP2579164A1 (en) 2013-04-10
WO2011148920A1 (ja) 2011-12-01

Similar Documents

Publication Publication Date Title
CN102934102A (zh) 多处理器系统、执行控制方法和执行控制程序
Yuan et al. Complexity effective memory access scheduling for many-core accelerator architectures
US8108659B1 (en) Controlling access to memory resources shared among parallel synchronizable threads
CN101194245B (zh) 具有宽寄存器组体系结构的分组处理器
US7546393B2 (en) System for asynchronous DMA command completion notification wherein the DMA command comprising a tag belongs to a plurality of tag groups
KR101275698B1 (ko) 데이터 처리 방법 및 장치
CN106227507A (zh) 计算系统及其控制器
JP2007241918A (ja) プロセッサ装置
US11893390B2 (en) Method of debugging a processor that executes vertices of an application, each vertex being assigned to a programming thread of the processor
CN103777923A (zh) Dma向量缓冲区
CN101546275B (zh) 一种获取多处理器硬件信号量的方法
US11023277B2 (en) Scheduling of tasks in a multiprocessor device
CN103197918B (zh) 多通道时间片组
CN104615445A (zh) 一种基于原子操作的设备io队列方法
CN103197917A (zh) 计算线程阵列粒度执行抢占
CN104166539A (zh) 并行原子递增
Kohútka et al. A novel hardware-accelerated real-time task scheduler based on robust earliest deadline algorithm
CN116136783A (zh) 多加速器框架中的高效加速器卸载
US9323575B1 (en) Systems and methods for improving data restore overhead in multi-tasking environments
CN112463218A (zh) 指令发射控制方法及电路、数据处理方法及电路
Kohútka et al. A novel on-chip task scheduler for mixed-criticality real-time systems
US9921891B1 (en) Low latency interconnect integrated event handling
RU2571376C1 (ru) Способ и устройство для параллельной обработки цифровой информации в вычислительной системе
US6711655B1 (en) Finding available memory space by finding its associated memory transfer controller
US20040123073A1 (en) Data processing system having a cartesian controller

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130213