專利名稱:多處理器系統(tǒng)、執(zhí)行控制方法和執(zhí)行控制程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多處理器系統(tǒng)的改善,更具體而言涉及使得能夠在不妨害并行執(zhí)行控制處理的靈活性和可擴展性的情況下加速系統(tǒng)的多處理器系統(tǒng)。
背景技術(shù):
多處理器系統(tǒng)被大致分成兩類,即,被設(shè)計為執(zhí)行對稱多重處理(SMP)的系統(tǒng),其中每個處理器是同質(zhì)的,以及被設(shè)計為執(zhí)行非對稱多重處理(AMP)的系統(tǒng),其中每個處理器是異質(zhì)的。這里,后一種異質(zhì)多處理器系統(tǒng)一般采用由主處理器(MP)直接控制其他多個子處理器的執(zhí)行的控制方法。在此方法中,管理整個系統(tǒng)以執(zhí)行主處理的主處理器也執(zhí)行每個功能上分布的子處理器的激活控制。在此場合下,對每個子處理器的控制是利用由主處理器持有訪問權(quán)的系統(tǒng)總線來實現(xiàn)的,通過該總線在從每個子處理器輸入中斷信號之后作出來自每個子處理器的處理完成通知以利用系統(tǒng)總線核查每個子處理器的狀態(tài)。如上所述的這種控制方法具有如下優(yōu)點,S卩,促進了對整個多處理器系統(tǒng)的控制序列的考慮和實現(xiàn),并且具有較高的用于調(diào)試的可觀測性,因為整個系統(tǒng)的狀態(tài)管理和每個子處理器的狀態(tài)管理可被聚集在一個地方。然而,這具有處理故障的問題,因為近來系統(tǒng)LSI規(guī)模的增大及其復(fù)雜化使得處理負荷集中在主處理器中。為了解決該問題,作為現(xiàn)有技術(shù)提出了具有并行執(zhí)行專用執(zhí)行控制單元的技術(shù),例如專利文獻I中公開的那種。專利文獻I中記載的現(xiàn)有技術(shù)通過實現(xiàn)以流水線方式并行操作至少兩個子處理器的控制機制,由于主處理器負荷的分散化和各個子處理器的并行執(zhí)行,而使得操作率能夠提聞。執(zhí)行控制單元具有諸如完成通知信號的輸入之類的依從于要連接的子處理器的數(shù)目的電路配置。在此情況下,近來的系統(tǒng)LSI的慣常做法是讓多個子處理器(IP核)集成在一個芯片上,從而所需求的是短TAT (周轉(zhuǎn)時間)中的系統(tǒng)擴展,也就是核數(shù)目的增加。相應(yīng)地發(fā)生了每次改變執(zhí)行控制單元的電路配置或內(nèi)部命令表的容量的必要,從而導(dǎo)致了具有較低的可擴展性。另一個問題是包括三個或更多個相互依從的處理的這種復(fù)雜執(zhí)行控制處理是難以實現(xiàn)的并且具有低靈活性。作為另一種現(xiàn)有技術(shù)提出的是像專利文獻2中公開的那種技術(shù),即一種使得能夠改善專用于并行執(zhí)行控制的執(zhí)行控制電路的靈活性和可擴展性的技術(shù)。專利文獻2中記載的現(xiàn)有技術(shù)通過向執(zhí)行控制電路提供執(zhí)行控制處理器、用于核查來自每個子處理器的處理狀態(tài)的狀態(tài)總線輸入單元和容量可變的狀態(tài)FIFO,來同時實現(xiàn)執(zhí)行控制處理的負荷分散化和可擴展性和靈活性的改善。
然而,此技術(shù)對于對一個處理狀態(tài)的執(zhí)行控制處理要求例如大約幾十到幾百周期的處理時間,因為每個子處理器的執(zhí)行控制處理是由執(zhí)行控制處理器上的軟件處理執(zhí)行的。另一個問題是,由于子處理器的數(shù)目或處理狀態(tài)的數(shù)目的擴展直接導(dǎo)致執(zhí)行控制處理器處理的量的增加,所以諸如處理器的處理故障或執(zhí)行控制電路的數(shù)目增加的必要之類的風(fēng)險增大了。作為另一種現(xiàn)有技術(shù)提出的是像專利文獻3中公開的那種技術(shù),其利用指令緩沖器和響應(yīng)緩沖器來使能了主處理器對子處理器的控制的加速。根據(jù)專利文獻3中記載的現(xiàn)有技術(shù),空閑的子處理器對指令緩沖器的自發(fā)讀取消除了主處理器認識到哪個子處理器空閑的必要,從而加速了子處理器控制。然而,該技術(shù)的前提是其中每個子處理器能夠處理任何任務(wù)的同質(zhì)對稱多重處理(SMP),從而其原本就不適用于本發(fā)明所針對的具有異質(zhì)非對稱多重處理(AMP)的多處理器系統(tǒng)。與專利文獻2中記載的現(xiàn)有技術(shù)類似,因為主處理器進行的軟件處理,所以該技術(shù)對一個任務(wù)的執(zhí)行控制處理要求大約幾十到幾百周期的處理時間,即使在實現(xiàn)了處理的加速時也是如此。專利文獻I :2003-208412號日本專利早期公布專利文獻2 :國際公布W02010/016169A1專利文獻3 :H09-218859號日本專利早期公布要解決的第一個問題是,當(dāng)不使用主處理器而是使用專用執(zhí)行控制處理器(CP)在多處理器系統(tǒng)中實現(xiàn)每個子處理器的執(zhí)行控制時,其執(zhí)行控制處理時間(等待時間)可導(dǎo)致多處理器系統(tǒng)整體上的處理故障。其原因是,隨著對近來的圖像處理系統(tǒng)LSI或通信處理系統(tǒng)LSI的加速的進一步需求,各個子處理器之間的執(zhí)行控制所要求的處理時間施加了增大整個處理不會及時完成的可能性的不利影響。特別地,對于通過順次使用各個子處理器來以流水線方式處理數(shù)據(jù)的數(shù)據(jù)處理系統(tǒng),各個子處理器的處理中的時間開銷可被減少多少在將來將是關(guān)鍵的。例如,當(dāng)執(zhí)行控制處理器進行的執(zhí)行控制處理整體上以專用硬件來實現(xiàn)以加速處理時,作為稍后將描述的第二個問題,將發(fā)生靈活性和可擴展性的降低。第二個問題是當(dāng)實現(xiàn)執(zhí)行控制專用硬件時多處理器系統(tǒng)整體上的低靈活性和可擴展性。其原因是,執(zhí)行控制單元的接口和電路配置一般容易依從于所連接的子處理器的數(shù)目或者處理狀態(tài)的數(shù)目。換言之,當(dāng)為了擴展系統(tǒng)而增加子處理器的數(shù)目或處理狀態(tài)的數(shù)目時,要求有電路變化,例如執(zhí)行控制單元本身的接口或表容量的變化。另一個問題是,一般是難以利用包括表查找的專用硬件來實現(xiàn)包括由相互依從的三個或更多個子處理器進行的處理的這種復(fù)雜執(zhí)行控制處理的。即使當(dāng)利用復(fù)雜的電路配置來實現(xiàn)該處理時,如果電路是專門用于該執(zhí)行控制處理的,則其靈活性和可擴展性將非常低。(本發(fā)明的目的)本發(fā)明的一個目的是提供一種多處理器系統(tǒng),其解決了上述問題并且使能了處理的加速,而不會妨害并行執(zhí)行控制處理的靈活性和可擴展性。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個不例性方面,一種多處理器系統(tǒng)包括一個或多個主處理器和多個子處理器,以及進行每個子處理器的執(zhí)行控制的執(zhí)行控制電路,其中執(zhí)行控制電路包括執(zhí)行控制處理器,用于每個子處理器的執(zhí)行控制處理;控制總線輸出單元,用于到每個子處理器的命令的激活;狀態(tài)總線輸入單元,用于來自每個子處理器的狀態(tài)通知;判定電路,該判定電路判定狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理;狀態(tài)加速器,該狀態(tài)加速器在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令;以及狀態(tài)FIFO控制單元,該狀態(tài)FIFO控制單元利用執(zhí)行控制處理器來處理狀態(tài)通知。根據(jù)本發(fā)明的第二示例性方面,一種包括一個或多個主處理器和多個子處理器的多處理器系統(tǒng)中的子處理器執(zhí)行控制方法,其中,設(shè)有進行每個子處理器的執(zhí)行控制的執(zhí)行控制電路,執(zhí)行控制電路的判定電路判定來自每個子處理器的狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理,執(zhí)行控制電路的狀態(tài)加速器在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令,并且執(zhí)行控制電路的狀態(tài)FIFO控制單元利用用于每個子處理器的執(zhí)行控制處理的執(zhí)行控制處理器來處理狀態(tài)通知。根據(jù)本發(fā)明的第三示例性方面,一種在包括一個或多個主處理器和多個子處理器的多處理器系統(tǒng)上執(zhí)行的執(zhí)行控制程序,其使得進行每個子處理器的執(zhí)行控制的執(zhí)行控制電路執(zhí)行執(zhí)行控制電路的判定電路的功能,判定來自每個子處理器的狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理;執(zhí)行控制電路的狀態(tài)加速器的功能,在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令;以及執(zhí)行控制電路的狀態(tài)FIFO控制單元的功能,利用用于每個子處理器的執(zhí)行控制處理的執(zhí)行控制處理器來處理狀態(tài)通知。本發(fā)明使得能夠提供一種允許在不妨害并行執(zhí)行控制處理的靈活性和可擴展性的情況下加速處理的多處理器系統(tǒng)。
圖11
圖12
圖13
圖14
圖15
圖16
圖17
圖18
圖19
圖20
是示出本發(fā)明的第一示例性實施例中的判定電路的結(jié)構(gòu)的圖。
是示出本發(fā)明中的狀態(tài)加速器的結(jié)構(gòu)的圖。
是示出本發(fā)明的示例I中的數(shù)據(jù)編碼/解碼處理系統(tǒng)的圖。
是示出本發(fā)明的示例I中的操作序列的示例的圖。
是示出本發(fā)明中的FIFO控制電路配置的圖。
是示出本發(fā)明中的FIFO存儲器控制單元的總線控制結(jié)構(gòu)的圖。是示出本發(fā)明的第二示例性實施例中的多處理器的結(jié)構(gòu)的圖。是示出本發(fā)明的第二示例性實施例中的狀態(tài)數(shù)據(jù)的格式的圖。
是示出本發(fā)明的第二示例性實施例中的判定電路的結(jié)構(gòu)的圖;并且是示出本發(fā)明的第三實施例中的多處理器的結(jié)構(gòu)的圖。
具體實施例方式接下來,將參考附圖詳細描述本發(fā)明的示例性實施例。在所有附圖中,相似的組件由相同的標(biāo)號標(biāo)識以適當(dāng)?shù)厥÷詫ζ涞拿枋觥?第一示例性實施例)在第一示例性實施例中,對于作為本發(fā)明中的多處理器系統(tǒng),所發(fā)明的執(zhí)行控制電路被應(yīng)用到數(shù)據(jù)編碼/解碼處理系統(tǒng)的情況,將針對示例I等等對該系統(tǒng)的基本結(jié)構(gòu)、特征和操作進行詳細描述。在以下附圖中,對于與本發(fā)明的主旨無關(guān)的部分的結(jié)構(gòu)將不進行描述,并且將不對其進行圖示。圖I是示出一系統(tǒng)的整體結(jié)構(gòu)的圖,在該系統(tǒng)中,作為本發(fā)明的第一示例性實施例的多處理器系統(tǒng)的示例,實現(xiàn)了用于控制多個子處理器的執(zhí)行的執(zhí)行控制電路。本發(fā)明中的多處理器系統(tǒng)在主處理器側(cè)包括主處理器(MP(CPU)) 10、作為主處理器的系統(tǒng)總線的CPU總線11和作為外圍塊的中斷控制器12,并且在子處理器側(cè)包括子處理器(功能塊)30至3n。n(不小于I的任意自然數(shù))表示子處理器的數(shù)目。主處理器(MP(CPU)) 10利用CPU總線11執(zhí)行對子處理器側(cè)的執(zhí)行控制并且利用施加到中斷控制器12的中斷信號來核查子處理器側(cè)的狀態(tài)。在第一示例性實施例中,作為本發(fā)明的執(zhí)行控制電路2O被實現(xiàn)在主處理器(MP (CPU)) 10和子處理器(功能塊)30至3n之間。執(zhí)行控制電路20包括執(zhí)行控制處理器(CP) 21、去往/來自主處理器(MP(CPU))IO的輸入/輸出接口 (CPU I/F(接口),INTR I/F)、作為去往/來自子處理器的輸入/輸出接口的控制總線42和狀態(tài)總線52。執(zhí)行控制電路20內(nèi)部可設(shè)有用于執(zhí)行控制處理器(CP) 21的CP指令存儲器22和CP數(shù)據(jù)存儲器23。INTR I/F在這里表示中斷接口。在執(zhí)行控制電路20和各個子處理器(功能塊)30至3n之間,設(shè)有用于執(zhí)行控制電路20控制子處理器(功能塊)30至3n的控制總線控制電路40,和用于子處理器(功能塊)30至3n將處理狀態(tài)通知給執(zhí)行控制電路20的狀態(tài)總線控制電路50。作為執(zhí)行控制電路20中的來自各個子處理器(功能塊)30至3n的輸入接口,不使用諸如中斷信號之類的專用線路,而是使用狀態(tài)總線52,并且在執(zhí)行控制電路20和子處理器(功能塊)30至3n之間設(shè)有狀態(tài)總線控制電路50使得執(zhí)行控制電路20可以具有不依從于子處理器的數(shù)目的硬件配置。
7
在執(zhí)行控制電路20中為了狀態(tài)總線52的輸入設(shè)有判定電路24、狀態(tài)加速器25和狀態(tài)FIFO (先入先出)控制單元26。通過狀態(tài)總線52輸入的狀態(tài)數(shù)據(jù)被假定為具有在狀態(tài)總線控制電路50上向與其狀態(tài)通知相關(guān)的處理ID和處理狀態(tài)值添加了子處理器ID的數(shù)據(jù)格式。輸入的狀態(tài)數(shù)據(jù)在這里被設(shè)計為使得能夠判定其是否是與在判定電路24處接下來要發(fā)出的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài)并且可被傳送到狀態(tài)加速器25或狀態(tài)FIFO控制單元26。然后,狀態(tài)加速器25被設(shè)計為在接收到簡單處理狀態(tài)的輸入時能夠自動發(fā)出相應(yīng)的處理命令。用于向各個子處理器(功能塊)30至3n發(fā)出命令的來自執(zhí)行控制電路20的控制總線42的輸出和在執(zhí)行控制電路20與子處理器(功能塊)30至3n之間設(shè)有控制總線控制電路40實現(xiàn)了結(jié)構(gòu)不依從于子處理器的數(shù)目的執(zhí)行控制電路20。這里,在執(zhí)行控制電路20中,來自執(zhí)行控制處理器(CP) 21的訪問和來自狀態(tài)加速器25的訪問由命令仲裁電路29仲裁以輸出。作為執(zhí)行控制電路20中與主處理器(MP (CPU)) 10側(cè)的接口,設(shè)有用于來自主處理器(MP(CPU))IO的命令輸入的命令FIFO控制單元27并且設(shè)有用于到主處理器(MP (CPU)) 10的中斷因素通知的中斷FIFO控制單元28。由于在實現(xiàn)通常的中斷因素寄存器的通常方法中,因素的數(shù)目依從于寄存器的數(shù)目而具有低可擴展性,所以假定設(shè)有具有更高靈活性的中斷FIFO控制單元28。將諸如狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28之類的FIFO設(shè)計為利用同一存儲器等等來共享使得每個FIFO的階段數(shù)目能夠被靈活地改變,而不會有問題。各個子處理器(功能塊)30至3n中的每一個被構(gòu)造為包括用于接受來自執(zhí)行控制電路20的命令的命令接收控制單元43和用于將比如處理完成之類的狀態(tài)通知給執(zhí)行控制電路20的狀態(tài)通知控制單元53。命令接收控制單元43作為控制總線的從動(接受側(cè))連接,并且具有將所獲得的命令傳輸?shù)阶犹幚砥鞯膬?nèi)部的功能。狀態(tài)通知控制單元53作為狀態(tài)總線的主控(發(fā)送側(cè))連接并且具有將來自子處理器的狀態(tài)值傳送到執(zhí)行控制電路20的功能。(對第一示例性實施例的操作的描述)接下來,將參考圖I至圖12對本示例性實施例的操作進行詳細描述。圖2是示出用于利用圖I中所示的執(zhí)行控制電路20執(zhí)行對多個子處理器(功能塊)30至3n的并行執(zhí)行控制的處理流程的示例的圖。(I)當(dāng)用于操作子處理器的參數(shù)等等存在時,主處理器(MP(CPU)) 10將該參數(shù)等等寫入到比如共享存儲器60之類的從子處理器(功能塊)30至3n中的每一個可訪問的區(qū)域中。此處理不是本發(fā)明必需的。(2)在通過CPU I/F設(shè)定用于使得多個子處理器(功能塊)30至3n協(xié)同執(zhí)行控制電路20操作的操作序列之后,主處理器(MP (CPU)) 10利用命令FIFO控制單元27發(fā)出用于開始操作序列等等的命令。(3)執(zhí)行控制電路20利用控制總線42使得子處理器30 (功能塊#0)在來自主處
8理器(MP(CPU))IO的操作序列指定的定時激活處理A。(4)子處理器30 (功能塊#0)基于來自執(zhí)行控制電路20的激活命令從共享存儲器60獲得處理A所必要的參數(shù)和輸入數(shù)據(jù)。(5)子處理器30 (功能塊#0)執(zhí)行處理A。根據(jù)需要使用子處理器30 (功能塊#0)中的本地存儲器。(6)子處理器30 (功能塊#0)將處理A的結(jié)果數(shù)據(jù)存儲在共享存儲器60中。(7)子處理器30 (功能塊#0)通過狀態(tài)總線52將處理A的完成通知給執(zhí)行控制電路20。(8)在認識到處理A完成之后,執(zhí)行控制電路20根據(jù)主處理器(MP(CPU)) 10設(shè)定的操作序列利用控制總線42使得子處理器31 (功能塊#1)激活處理B。(9)子處理器31(功能塊#1)基于來自執(zhí)行控制電路20的激活命令從共享存儲器60獲得處理B所必要的參數(shù)和輸入數(shù)據(jù)。(10)子處理器31 (功能塊#1)執(zhí)行處理B。根據(jù)需要使用子處理器31 (功能塊#1)中的本地存儲器。(11)子處理器31 (功能塊#1)將處理B的結(jié)果數(shù)據(jù)存儲在共享存儲器60中。(12)子處理器31 (功能塊#1)通過狀態(tài)總線52將處理B的完成通知給執(zhí)行控制電路20。(13)在認識到處理B完成之后,執(zhí)行控制電路20根據(jù)主處理器(MP (CPU)) 10設(shè)定的操作序列利用INTR I/F通過中斷信號將處理完成通知給主處理器(MP(CPU)) 10。(14)在通過中斷認識到處理完成之后,主處理器(MP(CPU)) 10根據(jù)需要從共享存儲器60獲得處理結(jié)果數(shù)據(jù)。關(guān)于像以上(8)(圖2中的(8))中所示的操作那樣的在接收到來自子處理器的狀態(tài)通知(處理完成)時向隨后的子處理器發(fā)出命令(處理激活)的操作,本發(fā)明的執(zhí)行控制電路20可以選擇以下情況的任一種?!だ媒邮盏降臓顟B(tài)數(shù)據(jù)的比特的全部或一部分,通過判定電路24進行的判定,通過狀態(tài)加速器25處的直接表查找,自動發(fā)出隨后的命令的情況(硬件處理)?!そ?jīng)由狀態(tài)FIFO控制單元26在執(zhí)行控制處理器(CP) 21處的軟件處理的情況。圖3和圖4是示出圖2中所示的操作序列(各個子處理器的處理的依從關(guān)系)的示例的圖。圖3的示例示出了如下情況,即,在作為處理A的輸出數(shù)據(jù)存在數(shù)據(jù)O和數(shù)據(jù)I的情況下,處理B使用數(shù)據(jù)O作為輸入數(shù)據(jù)并且使用數(shù)據(jù)2作為輸出數(shù)據(jù),處理C使用數(shù)據(jù)I作為輸入數(shù)據(jù)并且使用數(shù)據(jù)3作為輸出數(shù)據(jù),并且處理D使用作為處理B和C的輸出的數(shù)據(jù)2和數(shù)據(jù)3作為輸入數(shù)據(jù)。在圖3的示例中,執(zhí)行控制電路20在從執(zhí)行處理A的子處理器接收到數(shù)據(jù)O的寫入完成的狀態(tài)通知時發(fā)出用于激活處理B的命令,并且在接收到數(shù)據(jù)I的寫入完成的狀態(tài)通知時發(fā)出用于激活處理C的命令。在接收到來自執(zhí)行處理B的子處理器的數(shù)據(jù)2的寫入完成的狀態(tài)通知和來自執(zhí)行處理C的子處理器的數(shù)據(jù)3的寫入完成的狀態(tài)通知兩者時發(fā)出用于激活處理D的命令。圖4的示例示出了如下情況,即,處理E使用數(shù)據(jù)4作為輸出數(shù)據(jù),處理F只使用數(shù)據(jù)4作為輸入數(shù)據(jù),處理F使用數(shù)據(jù)5作為輸出數(shù)據(jù)并且處理G只使用數(shù)據(jù)5作為輸入數(shù)據(jù)。在圖4所示的示例中,處理E完成的狀態(tài)通知和用于激活處理F的命令發(fā)出具有一對一關(guān)系,數(shù)據(jù)4設(shè)于其間。類似地,處理F完成的狀態(tài)通知和用于激活處理G的命令發(fā)出具有一對一關(guān)系,數(shù)據(jù)5設(shè)于其間。關(guān)于在子處理器間的相繼處理之間,處理狀態(tài)和隨后的命令發(fā)出之間的關(guān)系具有這種一對一依從關(guān)系的部分的執(zhí)行控制處理,本發(fā)明的執(zhí)行控制電路20的特征在于判定電路24作出處理狀態(tài)的判定以使得狀態(tài)加速器25能夠自動發(fā)出有關(guān)命令(硬件處理)。在本發(fā)明中,如圖3和圖4中所示的這種操作序列在被定義為具有相互鏈接的定義每個處理的結(jié)構(gòu)和定義每個數(shù)據(jù)的結(jié)構(gòu)的結(jié)構(gòu)群組之后,被存儲在CP數(shù)據(jù)存儲器23中。然后,執(zhí)行控制處理器(CP) 21從所獲得的每個狀態(tài)通知認識到哪個數(shù)據(jù)有變化(對于該數(shù)據(jù),處理已被執(zhí)行)以及哪個子處理器在操作中(或者處理完成),并且分析CP數(shù)據(jù)存儲器23中存儲的結(jié)構(gòu)群組的鏈接(處理和數(shù)據(jù)之間的依從關(guān)系),從而向子處理器(功能塊)30至3n中的每一個發(fā)出接下來可操作的處理命令。更具體而言,當(dāng)在圖3中所示的每個處理中,準備了用于該處理的所有輸入數(shù)據(jù),輸出數(shù)據(jù)寫入目的地空閑并且用于該處理的執(zhí)行的子處理器(運算資源)可執(zhí)行(不在操作中)時,有關(guān)處理命令被發(fā)出到該子處理器。執(zhí)行控制電路20對這種操作的執(zhí)行實現(xiàn)了如圖2中所示那樣的處理流程,并且在以流水線方式生成的輸入數(shù)據(jù)的處理的情況下,還使得子處理器(功能塊)30至3n能夠以流水線方式并行執(zhí)行一系列處理。關(guān)于如圖4中所示的在子處理器之間在處理狀態(tài)和隨后的命令發(fā)出之間具有一對一依從關(guān)系的簡單操作序列的這種執(zhí)行控制處理,不將其結(jié)構(gòu)群組存儲在CP數(shù)據(jù)存儲器23上而是將其對應(yīng)表存儲在狀態(tài)加速器25中使得能夠不是利用執(zhí)行控制處理器(CP) 21通過軟件處理而是利用狀態(tài)加速器25通過硬件處理來加速該執(zhí)行控制處理。接下來,圖5至圖9示出了圖2中所示的每個處理流程的示例性操作。圖5是示出如圖2(2)中所示那樣的利用命令FIFO控制單元27從主處理器(MP(CPU))IO向執(zhí)行控制電路20發(fā)出命令的示例性操作的圖。(A)從主處理器(MP(CPU)) 10通過MP總線14向命令FIFO控制單元27寫入期望的命令數(shù)據(jù)導(dǎo)致向執(zhí)行控制電路20中的執(zhí)行控制處理器(CP)21生成中斷信號,從而使得(B)執(zhí)行控制處理器(CP) 21可以從命令FIFO控制單元27獲得命令數(shù)據(jù)。圖6是示出如圖2(13)中所示那樣的從執(zhí)行控制電路20利用中斷FIFO控制單元28通過中斷信號將操作序列完成等等通知給主處理器(MP(CPU))IO的示例性操作的圖。(A)從執(zhí)行控制處理器(CP) 21通過CP總線15向中斷FIFO控制單元28寫入諸如序列完成之類的中斷因素數(shù)據(jù)導(dǎo)致(B)通過中斷控制器12等等將中斷信號通知給主處理器(MP (CPU)) 10。(C)主處理器(MP (CPU)) 10能夠從中斷FIFO控制單元28順次獲得其因素數(shù)據(jù)并且認識到哪個操作序列完成了等等。圖7是示出如圖2(3)和圖2(8)中所示那樣的從執(zhí)行控制處理器(CP)21向子處理器(功能塊)30至3n中的每一個發(fā)出處理激活命令的示例性操作的圖。當(dāng)有關(guān)處理激活命令是如圖4中所示那樣的與相關(guān)處理狀態(tài)具有一對一依從關(guān)系的處理激活命令時,參考圖9和隨后將進行的對其操作的描述。(A)在通過控制總線42向負責(zé)該處理的子處理器(功能塊)設(shè)定諸如處理ID (指令號碼)之類的必要參數(shù)之后,執(zhí)行控制處理器(CP)21發(fā)出處理激活命令。在在命令接收控制單元43處獲得處理命令時,子處理器(功能塊)側(cè)將所設(shè)定的必要參數(shù)等等傳輸?shù)阶犹幚砥?功能塊)中以執(zhí)行處理ID (指令號碼)等等所指定的處理。例如由單層總線結(jié)構(gòu)實現(xiàn)的控制總線控制電路40對于來自執(zhí)行控制電路20的控制總線訪問執(zhí)行地址解碼以實現(xiàn)與所選子處理器間的總線訪問。圖8是示出如圖2(7)和圖2(12)中所示那樣的由子處理器(功能塊)30至3n中的每一個將狀態(tài)通知給執(zhí)行控制電路20的示例性操作的圖。當(dāng)有關(guān)處理狀態(tài)是如圖4中所示那樣的與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的處理狀態(tài)時,參考圖9和隨后將進行的對其操作的描述。(A)每個子處理器(功能塊)利用狀態(tài)通知控制單元53傳送并輸出期望的狀態(tài)數(shù)據(jù)(處理ID、其狀態(tài)值等等)并且當(dāng)所通知的狀態(tài)數(shù)據(jù)經(jīng)由執(zhí)行控制電路20中的判定電路24被存儲在狀態(tài)FIFO控制單元26中時,中斷信號被輸出到執(zhí)行控制處理器(CP) 21,從而使得(B)執(zhí)行控制處理器(CP) 21從狀態(tài)FIFO控制單元26獲得該狀態(tài)數(shù)據(jù)。當(dāng)來自各個子處理器(功能塊)30至3n的狀態(tài)總線訪問發(fā)生競爭時,例如由單層狀態(tài)結(jié)構(gòu)實現(xiàn)的狀態(tài)總線控制電路50利用“單循環(huán)賽系統(tǒng)”等等執(zhí)行訪問仲裁以將來自所選子處理器的狀態(tài)總線訪問傳送到執(zhí)行控制電路20。圖9是示出如圖2(7)、圖2(8)和圖4中所示的由各個子處理器(功能塊)30至3n將處理狀態(tài)通知給執(zhí)行控制電路20并且自動向各個子處理器(功能塊)30至3n中的有關(guān)那個發(fā)出與該處理狀態(tài)具有一對一依從關(guān)系的處理命令的示例性操作的圖。(A)每個子處理器(功能塊)利用狀態(tài)通知控制單元53傳送并輸出期望的狀態(tài)數(shù)據(jù)(處理ID、其狀態(tài)值等等),并且當(dāng)執(zhí)行控制電路20中的判定電路24中判定所通知的狀態(tài)數(shù)據(jù)是具有一對一依從關(guān)系的處理狀態(tài)時,該數(shù)據(jù)被傳送到狀態(tài)加速器25。(B)狀態(tài)加速器25使用所傳送的處理狀態(tài)值來在預(yù)先設(shè)定的命令表中查找,并且獲得相應(yīng)的處理命令(子處理器ID、處理ID(指令號碼)等等)以自動向有關(guān)子處理器發(fā)出用于處理ID(指令號碼)等等的設(shè)定或者用于處理激活的命令。關(guān)于與圖7中相同的子處理器側(cè)的命令接收控制單元43的操作和控制總線控制電路40的操作,參考以上對于圖7的描述。(對狀態(tài)數(shù)據(jù)格式的描述)圖10是示出本示例性實施例中的狀態(tài)數(shù)據(jù)的數(shù)據(jù)格式的示例的圖。狀態(tài)數(shù)據(jù)的傳送是通過狀態(tài)總線52實現(xiàn)的。各個子處理器(功能塊)30至3n中的每一個例如通知作為狀態(tài)總線52的地址信號的處理ID(指令號碼)和作為數(shù)據(jù)信號的其狀態(tài)值(指示輸入數(shù)據(jù)讀取完成、輸出數(shù)據(jù)寫入完成、處理完成等等的值)。該數(shù)據(jù)在狀態(tài)總線控制電路50上在利用地址信號的較高位比特等等添加子處理器ID的情況下被通知給執(zhí)行控制電路20。本示例性實施例中的執(zhí)行控制電路20在這里的特征在于每個子處理器可以使用狀態(tài)值的任意比特(例如在圖10中所示的示例的情況下的比特[15])來通知該狀態(tài)是否與接下來要發(fā)出的處理命令具有一對一依從關(guān)系。作為示例,比特[15]為“I”表示與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài),并且比特[15]為“O”表示其他普通處理狀態(tài)。
在本示例性實施例中,對于是否是簡單處理狀態(tài)的判定是由判定電路24作出的,并且當(dāng)是簡單處理狀態(tài)時,有關(guān)狀態(tài)值被傳送到狀態(tài)加速器25。然后,當(dāng)在狀態(tài)加速器25處在表中查找相應(yīng)的處理命令時使用處理狀態(tài)值或其比特的一部分。這里,作為用于判定的比特,圖10中所示的比特[15]只是示例性的,可以使用除比特[15]以外的其他比特,或者也可以使用狀態(tài)數(shù)據(jù)中的多個任意比特作為判定比特,而不會有問題。在普通處理狀態(tài)的情況下,本發(fā)明的執(zhí)行控制電路20不為每個傳送地址(處理ID)實現(xiàn)狀態(tài)寄存器,而是在執(zhí)行控制電路20中的狀態(tài)FIFO控制單元26中將子處理器ID (功能塊代碼)、處理ID (傳送地址信號)及其狀態(tài)值(傳送數(shù)據(jù)信號)以將它們包括在一塊中的數(shù)據(jù)格式存儲為一個狀態(tài)數(shù)據(jù)。狀態(tài)總線52和這樣的數(shù)據(jù)格式產(chǎn)生了這樣的優(yōu)點,即,執(zhí)行控制處理器(CP)21只要通過從狀態(tài)FIFO控制單元26讀取狀態(tài)數(shù)據(jù)一次就可以獲得與哪個子處理器的哪個處理相對應(yīng)的是哪個狀態(tài)(子處理器ID、處理ID及其狀態(tài)值)。使用這樣的數(shù)據(jù)格式以及對其他FIFO共享狀態(tài)FIFO在考慮未來系統(tǒng)可擴展性時消除了實現(xiàn)不適當(dāng)?shù)念~外狀態(tài)寄存器的必要并且產(chǎn)生了容易應(yīng)對通過改變狀態(tài)FIFO的階段數(shù)目進行的擴展的優(yōu)點。(對判定電路24的操作的描述)圖11示出了本示例性實施例中的判定電路24的結(jié)構(gòu)示例。在從狀態(tài)總線52輸入狀態(tài)數(shù)據(jù)時,判定電路24判定其處理狀態(tài)是否與隨后的處理命令具有一對一依從關(guān)系以執(zhí)行高速處理。更具體而言,在本示例性實施例中,在例如狀態(tài)數(shù)據(jù)的比特[15]被假定為是判定比特的情況下,利用設(shè)在判定電路24中的比較判定電路70來判定比特[15]是否為“I”。然后,當(dāng)判定其是與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài)時(當(dāng)比特[15]為“I”時),將狀態(tài)值的其余比特(例如比特[14 0])傳送到狀態(tài)加速器25 (EN_1有效)。另一方面,當(dāng)判定不是簡單處理狀態(tài)而是普通處理狀態(tài)時(比特[15]為“O”),將有關(guān)狀態(tài)數(shù)據(jù)傳送到狀態(tài)FIFO控制單元26 (ΕΝ_0有效)。作為用于這里的判定的比特,比特[15]是示例性的,可以使用除比特[15]以外的其他比特,或者也可以將狀態(tài)數(shù)據(jù)中的多個任意比特用于判定,而不會有問題。判定電路24的特征還在于具有如下功能利用用于調(diào)試或測試的標(biāo)志(控制寄存器)等等,無論判定結(jié)果如何,將所有狀態(tài)數(shù)據(jù)傳送到狀態(tài)FIFO 26,以使得執(zhí)行控制處理器(CP) 21能夠核查或執(zhí)行該執(zhí)行控制處理,并且當(dāng)判定狀態(tài)具有一對一依從關(guān)系時,將數(shù)據(jù)傳送到狀態(tài)加速器25和狀態(tài)FIFO控制單元26兩者。在這里由專用硬件實現(xiàn)的判定電路24也可利用具有高靈活性和可擴展性的結(jié)構(gòu)來實現(xiàn),該結(jié)構(gòu)的功能可通過改變子處理器通知的狀態(tài)數(shù)據(jù)的值來改變,因為只有狀態(tài)數(shù)據(jù)被用于判定。(對狀態(tài)加速器25的操作的描述)圖12示出了本發(fā)明的執(zhí)行控制電路20中的狀態(tài)加速器25的結(jié)構(gòu)示例。以從判定電路24輸入的與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的處理狀態(tài)值或者與該值相當(dāng)?shù)臄?shù)據(jù)的一部分作為地址,狀態(tài)加速器25讀取存儲相應(yīng)處理命令
12的命令表71 (存儲器)。命令表71具有與作為該處理命令的發(fā)出目的地的命令地址相對應(yīng)的子處理器ID(功能塊代碼)、與命令數(shù)據(jù)相對應(yīng)的處理ID(指令號碼)等等的存儲。狀態(tài)加速器25中的命令輸出控制器72使用讀取命令地址和命令數(shù)據(jù)來向負責(zé)該處理命令的子處理器(功能塊)設(shè)定諸如處理ID(指令號碼)之類的必要參數(shù),然后自動發(fā)出處理激活命令。這里,狀態(tài)加速器25中的命令表71的值被設(shè)計為可在諸如執(zhí)行控制處理器(CP)21的啟動操作之類的系統(tǒng)初始操作時從執(zhí)行控制處理器(CP)21或主處理器(MP(CPU))IO經(jīng)由CP總線15寫入。如上所述將狀態(tài)加速器25構(gòu)造為可利用命令表71來這樣改寫具有如下優(yōu)點,SP,在系統(tǒng)LSI之后靈活地改變或擴展系統(tǒng),例如判定哪個處理狀態(tài)要作為簡單處理狀態(tài)被高速處理或者判定哪個處理狀態(tài)要被執(zhí)行控制處理器(CP)作為普通處理狀態(tài)來處理。在處理命令發(fā)出時從狀態(tài)加速器25輸出的對控制總線42的總線訪問當(dāng)與經(jīng)由CP總線15來自執(zhí)行控制處理器(CP)21的訪問競爭時,由命令仲裁電路29仲裁并被傳送到控制總線42。命令仲裁電路29基本上執(zhí)行始終對來自狀態(tài)加速器25的總線訪問給予優(yōu)先的訪問仲裁。當(dāng)對于一個處理命令發(fā)出要求多個總線訪問時,電路執(zhí)行總線訪問仲裁以接連進行所要求的總線訪問數(shù)目那么多次訪問。在這里由專用硬件實現(xiàn)的本發(fā)明的狀態(tài)加速器25也可利用具有如下靈活性和可擴展性的結(jié)構(gòu)來實現(xiàn),因為其使用命令表71的表查找作為其功能使得要發(fā)出的處理命令等等能夠通過利用主處理器或執(zhí)行控制處理器改變命令表71的值來任意改變。換言之,可以與執(zhí)行控制處理器的指令代碼等等同等地對待命令表71的設(shè)定值。(第一示例)圖13是不出本不例性實施例在適合于多個編碼處理系統(tǒng)(編碼系統(tǒng)A、編碼系統(tǒng)B)的數(shù)據(jù)編碼/解碼處理系統(tǒng)中的應(yīng)用示例作為具體的一個多處理器系統(tǒng)的圖。(對結(jié)構(gòu)的描述)設(shè)有控制整個數(shù)據(jù)編碼/解碼處理系統(tǒng)的主處理器(MP(CPU)) 10、CPU總線11、中斷控制器12、外部存儲器控制器13等等,作為實際執(zhí)行數(shù)據(jù)編碼/解碼處理的子處理器(功能塊)設(shè)有處理元件31至35$41、?42、?43、?44和?八5),并且作為充當(dāng)與1^1的外部的接口的子處理器(功能塊)設(shè)有處理元件36 (F6)。在主處理器(MP(CPU)) 10和各個子處理器31至36之間實現(xiàn)有用于執(zhí)行作為本發(fā)明的特征的多個子處理器31至36的并行執(zhí)行控制的執(zhí)行控制電路20,并且在執(zhí)行控制電路20和子處理器31至36之間設(shè)有控制總線控制電路40和狀態(tài)總線控制電路50。子處理器31至36中的每一個包括用于通過控制總線42從執(zhí)行控制電路20接收命令的命令接收控制單元43和用于通過狀態(tài)總線52將狀態(tài)通知給執(zhí)行控制電路20的狀態(tài)通知控制單元53。由于各個子處理器之間的數(shù)據(jù)傳送是通過LSI中的共享存儲器60執(zhí)行的,該存儲器被設(shè)計為多組(multibank)存儲器,所以從主處理器(MP(CPU)) 10和各個子處理器(功能塊)31至36可以對不同組的共享存儲器進行并行訪問。此外,各個子處理器(功能塊)31至36之間的數(shù)據(jù)傳送全都通過共享存儲器60來執(zhí)行消除了不同子處理器31至36之間的直接通信單元的必要。換言之,像本示例性實施例這樣的多處理器結(jié)構(gòu)預(yù)期了子處理器(功能塊)的再利用的可能性的提高和系統(tǒng)整體上的可擴展性的提高。這里,在示例I的執(zhí)行控制電路20中,圖I中所示的諸如狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28之類的各個FIFO的控制功能由專用硬件電路26、27和28實現(xiàn)。關(guān)于FIFO的實體,每個FIFO結(jié)構(gòu)被設(shè)計為是可變的,通過其利用FIFO存儲器控制單元61作為同一地址空間上的存儲器(FIFO存儲器)的共享和通過在內(nèi)部為控制寄存器62設(shè)有用于設(shè)定每個FIFO的基本地址和FIFO的階段數(shù)目的寄存器等等。(對操作的描述)將參考圖13至圖16描述示例I的操作。圖14是示出編碼系統(tǒng)A和編碼系統(tǒng)B中的每一個的數(shù)據(jù)編碼/解碼處理的操作序列的圖。在用于處理編碼系統(tǒng)A的數(shù)據(jù)編碼/解碼處理系統(tǒng)中,在數(shù)據(jù)編碼處理的情況下,當(dāng)主處理器(MP(CPU))IO向執(zhí)行控制電路20發(fā)出用于編碼處理A序列執(zhí)行的命令時,執(zhí)行控制電路20分析如圖14中所示那樣的編碼處理A序列以進行執(zhí)行控制處理,該執(zhí)行控制處理包括(A)在接收到來自主處理器(MP (CPU)) 10的編碼處理數(shù)據(jù)A傳送完成狀態(tài)時向功能塊31發(fā)出編碼處理FAl激活命令,(B)在接收到來自功能塊31的編碼處理FAl完成狀態(tài)時向功能塊32發(fā)出編碼處理FA2激活命令,以及(C)在接收到來自功能塊32的編碼處理FA2完成狀態(tài)時向功能塊36發(fā)出編碼數(shù)據(jù)傳送處理F6激活命令。通過如上所述那樣的執(zhí)行控制處理存儲來自主處理器的后續(xù)編碼處理數(shù)據(jù)A使得每個功能塊的操作成為流水線方式的并行操作。此時,如圖14中指示為“一對一”的,在例如編碼處理FAl完成狀態(tài)和編碼處理FA2激活命令之間,子處理器(功能塊)之間的一對一依從關(guān)系成立。因此,在狀態(tài)加速器25中的命令表71處設(shè)定相應(yīng)的處理命令以將該狀態(tài)數(shù)據(jù)中的判定比特設(shè)定為I使得狀態(tài)加速器25能夠加速執(zhí)行控制處理。在解碼處理的情況下,當(dāng)主處理器(MP(CPU)) 10向執(zhí)行控制電路20發(fā)出用于解碼處理A序列執(zhí)行的命令時,執(zhí)行控制電路20分析如圖14中所示那樣的解碼處理A序列以執(zhí)行處理,該處理包括(A)在接收到經(jīng)常性周期發(fā)生的來自功能塊36的輸入數(shù)據(jù)傳送處理F7完成狀態(tài)時向功能塊35發(fā)出解碼處理FA5激活命令,(B)在接收到解碼處理FA5完成狀態(tài)時向功能塊34發(fā)出解碼處理FA4激活命令,(C)在接收到解碼處理FA4完成狀態(tài)時向功能塊33發(fā)出解碼處理FA3命令,以及(D)在接收到解碼處理FA3完成狀態(tài)時向主處理器(MP(CPU)) 10發(fā)出解碼數(shù)據(jù)通知中斷。通過如上所述那樣的執(zhí)行控制處理對解碼處理數(shù)據(jù)D的經(jīng)常性周期傳送的結(jié)果是使得每個功能塊的操作成為流水線方式的并行操作。同樣,在解碼處理時,由于在圖14中指示為“一對一”的例如在解碼處理FA5完成狀態(tài)和編碼處理FA4激活命令之間子處理器(功能塊)之間的一對一依從關(guān)系類似地成立,所以狀態(tài)加速器25對執(zhí)行控制處理的加速成為了可能。同樣,當(dāng)系統(tǒng)作為用于另一編碼系統(tǒng)B的數(shù)據(jù)編碼/解碼系統(tǒng)操作時,基本執(zhí)行控制操作與數(shù)據(jù)編碼/解碼系統(tǒng)A的情況是相同的。此時,適合于編碼系統(tǒng)A(FA1、FA2、FA3、FA4、FA5)和編碼系統(tǒng)8$81、?82483、?84485)的任一處理的各個子處理器(功能塊)31至35通過由執(zhí)行控制電路20指示的處理命令(處理ID)選擇并執(zhí)行處理。要被登記在執(zhí)行控制電路20中的操作序列是對于編碼系統(tǒng)A和編碼系統(tǒng)B兩者實現(xiàn)的。從編碼系統(tǒng)A處理到編碼系統(tǒng)B處理或者從編碼系統(tǒng)B處理到編碼系統(tǒng)A處理的整個系統(tǒng)的處理的切換通過主處理器(MP(CPU)) 10對用于有關(guān)編碼系統(tǒng)的操作序列的執(zhí)行(對執(zhí)行控制電路20的命令發(fā)出)可容易地實現(xiàn)。同樣,對于與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài)的加速處理,通過在狀態(tài)加速器25中的命令表71處預(yù)先設(shè)定多個操作序列的數(shù)目那么多個值或者通過在編碼系統(tǒng)切換的定時也改寫命令表71的值,可以靈活地應(yīng)對多個操作序列。在圖13中所示的結(jié)構(gòu)中,共享存儲器60用于主處理器(MP(CPU)) 10和子處理器31至36之間以及不同子處理器之間的傳送。在此情況下,消除了不同子處理器之間的直接通信單元的必要,并且將處理所必要的處理參數(shù)等等寫入到共亨存儲器60中使得能夠通過從執(zhí)行控制電路20向所有子處理器31至36只發(fā)出存儲處理內(nèi)容(處理ID)和根據(jù)需要用于處理的參數(shù)的共享存儲器地址(數(shù)據(jù)指針)和激活命令的共通控制來進行激活控制。另一個重大優(yōu)點是將共享存儲器60用于作為本發(fā)明的特征的執(zhí)行控制電路20和不同子處理器之間的數(shù)據(jù)傳送使得可以靈活地應(yīng)對如圖14中所示那樣的每個子處理器(功能塊)的處理順序(執(zhí)行順序)不同的多個操作序列。(對用于共享FIFO的操作的描述)將參考圖15和圖16描述用于共享FIFO的操作。圖15是示出用于共享FIFO的示例性結(jié)構(gòu)的圖。雖然圖I中示出了邏輯塊結(jié)構(gòu),使得為了 CP總線15和MP總線14以及狀態(tài)總線52訪問其FIFO,它們對中斷FIFO控制單元28、狀態(tài)FIFO控制單元26和命令FIFO控制單元27作出直接訪問,但在共享FIFO的情況下,如圖15中所示將對FIFO存儲器控制單元61作出訪問。狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28中沒有作為FIFO的實體,并且控制每個FIFO的寫入指針(WP)、讀取指針(RP)、存儲數(shù)據(jù)的數(shù)目(NUM)等等。從而,狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28各自包括與入指針寄存器、讀取指針寄存器、存儲數(shù)據(jù)數(shù)目寄存器、指不滿/空標(biāo)志的狀態(tài)寄存器、用于清除FIFO的清除寄存器(CLR)、用于掩蔽在對FIFO的寫入發(fā)生時引起的到主處理器(MP(CPU)) 10或執(zhí)行控制處理器(CP) 21的中斷的掩蔽寄存器(MSK),等等??刂萍拇嫫鲉卧?2包括FIFO的數(shù)目那么多個基本地址寄存器(BASE)、階段數(shù)目寄存器(DEPTH)、數(shù)據(jù)比特寬度寄存器(WIDTH)等等,作為用于共享FIFO的設(shè)定寄存器。FIFO存儲器控制單元61包括作為每個FIFO的實體的FIFO存儲器(FIFO RAM),并且對于經(jīng)由判定電路24來自CP總線15、MP總線14和狀態(tài)總線的FIFO訪問,分別包括利用來自控制寄存器62的每個FIFO基本地址(BASE)和來自狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28的每個寫入地址指針(WP)和每個讀取地址指針(RP)執(zhí)行存儲器訪問的地址轉(zhuǎn)換的地址轉(zhuǎn)換電路(Address Conv.)。
將參考圖15描述諸如狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28之類的每個FIFO控制單元的操作。FIFO控制單元26、27和28各自利用來自控制寄存器單元62的每個FIFO階段數(shù)目信號(DEPTH)和每個FIFO數(shù)據(jù)比特寬度信號(WIDTH)和來自FIFO存儲器控制單元61的每個FIFO的寫入使能信號(WE)和讀取使能信號(RE)來控制寫入地址指針(WP)、讀取地址指針(RP)、存儲數(shù)據(jù)數(shù)目(NUM)等等。除此之外,還可以提供諸如FIFO狀態(tài)寄存器功能、FIFO清除功能和中斷掩蔽功能之類的功能,而不會有問題。圖16是示出FIFO存儲器控制單元61的總線控制的圖。諸如狀態(tài)FIFO控制單元26、命令FIFO控制單元27和中斷FIFO控制單元28之類的每個FIFO的實現(xiàn)使用一個存儲器(FIFO存儲器),并且通過使用基本地址寄存器(BASE)和FIFO階段數(shù)目寄存器(DEPTH)可以將每個FIFO區(qū)域和每個FIFO的階段數(shù)目設(shè)定為可變的。當(dāng)向每個FIFO寫入數(shù)據(jù)時和從每個FIFO讀取數(shù)據(jù)時,使用專用的“中斷FIFO寫入地址區(qū)域(INTWRITE) ”、“中斷FIFO讀取地址區(qū)域(INTREAD) ”、“狀態(tài)FIFO讀取地址區(qū)域(STATREAD) ”、“命令FIFO寫入地址區(qū)域(CMDWRITE) ”、“命令FIFO讀取地址區(qū)域(CMDREAD) ”等等的地址來進行訪問。當(dāng)訪問這些區(qū)域時,利用各個FIFO的基本地址(BASE)、寫入地址指針(WADR(WP))和讀取地址指針(RADR(RP))的值來執(zhí)行將地址轉(zhuǎn)換到實際FIFO存儲器的處理。使用一個FIFO存儲器(FIFO RAM)來實現(xiàn)每個FIFO的圖16中所示的FIFO存儲器控制單元61還仲裁來自CP總線15、MP總線14和狀態(tài)總線52的訪問的競爭。特別執(zhí)行的是不使用訪問控制寄存器等等的硬件訪問仲裁,對于其采用諸如“單循環(huán)賽系統(tǒng)”或“優(yōu)先級順序是MP總線14 > CP總線15 >狀態(tài)總線的固定優(yōu)先級系統(tǒng)”之類的仲裁方法。從而,設(shè)有每個FIFO的基本地址寄存器(BASE)、階段數(shù)目設(shè)定寄存器(DEPTH)和數(shù)據(jù)比特寬度寄存器(WIDTH)的控制寄存器單元62、設(shè)有控制寫入/讀取指針和存儲數(shù)據(jù)的數(shù)目的這種功能的FIFO控制單元25、26和27中的每一個以及設(shè)有轉(zhuǎn)換每個FIFO訪問的地址的功能的FIFO存儲器控制單元61使得每個FIFO (狀態(tài)FIFO、命令FIFO、中斷FIFO)能夠被共享并且還使得每個FIFO的階段數(shù)目和數(shù)據(jù)比特寬度能夠可變。結(jié)果,可以實現(xiàn)可擴展性和靈活性極高的執(zhí)行控制電路20。利用與每個FIFO相同的存儲器也可以共享狀態(tài)加速器25中的命令表71,而不會有問題。如上所述,根據(jù)本發(fā)明,在來自各個子處理器的處理狀態(tài)被分類成與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài)和其他普通處理狀態(tài)的情況下,在執(zhí)行控制電路中設(shè)有判定電路(狀態(tài)解碼器)使得能夠判定所通知的處理狀態(tài)屬于哪個狀態(tài)。然后,在具有一對一依從關(guān)系的簡單處理狀態(tài)的情況下,在執(zhí)行控制電路中設(shè)有狀態(tài)加速器使得能夠通過專用電路的表查找來自動發(fā)出相應(yīng)的處理命令。因此,依據(jù)是否是簡單處理狀態(tài)使能了專用硬件處理,從而與使用執(zhí)行控制處理器的軟件處理相比顯著地加速了處理。由于發(fā)出涉及兩個或更多個處理狀態(tài)的一個處理命令那樣的其中三個或更多個處理彼此依從的普通執(zhí)行控制處理允許利用判定電路將有關(guān)處理狀態(tài)傳送到狀態(tài)FIF0,所以可以利用執(zhí)行控制處理器通過軟件處理實現(xiàn)處理,這也同時實現(xiàn)了高靈活性。
此外,由于利用狀態(tài)加速器的硬件執(zhí)行控制處理和由狀態(tài)FIFO和執(zhí)行控制處理器(CP)21進行的軟件執(zhí)行控制處理可被并行執(zhí)行,所以由此產(chǎn)生的負荷分布帶來了處理的加速。狀態(tài)加速器中的用于發(fā)出命令的命令表因為被構(gòu)造為由執(zhí)行控制處理器(CP)21或主處理器(MP(CPU)) 10來設(shè)定,所以具有使得在LSI開發(fā)后能夠通過規(guī)格改變等等來容易地改變或擴展該表的優(yōu)點,并且還因為其結(jié)構(gòu)是獨立于執(zhí)行控制電路的接口所連接到的子處理器的數(shù)目和處理狀態(tài)的數(shù)目的,所以具有高靈活性和可擴展性以及速度提高的優(yōu)(第一示例性實施例的效果)接下來,將描述第一示例性實施例的效果。本示例性實施例預(yù)期了以下效果。第一個效果是增強了在多處理器系統(tǒng)中其負荷被從主處理器分散化(卸載)到執(zhí)行控制電路的每個子處理器執(zhí)行控制功能的加速和進一步的負荷分布。其原因是,在設(shè)有用于控制各個子處理器的并行執(zhí)行的執(zhí)行控制電路的情況下,在定義子處理器的執(zhí)行順序的操作序列中,在各個子處理器之間處理狀態(tài)和接下來要發(fā)出的處理命令彼此一對一依從的操作序列的執(zhí)行控制處理可以不被實現(xiàn)為由執(zhí)行控制處理器進行的軟件處理,而是實現(xiàn)為由狀態(tài)加速器進行的硬件處理?,F(xiàn)有技術(shù)經(jīng)常涉及由將處理實現(xiàn)為硬件處理引起的靈活性和可擴展性的降低,而本發(fā)明則在維持系統(tǒng)整體上的高靈活性和可擴展性(稍后將作為第二和第三個效果描述)的同時實現(xiàn)了執(zhí)行控制處理的加速,這是本發(fā)明的最大效果。當(dāng)利用執(zhí)行控制處理器以軟件實現(xiàn)執(zhí)行控制處理時,從自狀態(tài)FIFO中讀取狀態(tài)數(shù)據(jù)、識別和分析有關(guān)操作序列到發(fā)出處理命令的所有處理都是由處理器處理實現(xiàn)的,從而處理周期的數(shù)目(等待時間)被假定為是大約幾十周期到幾百周期。另一方面,當(dāng)利用狀態(tài)加速器由硬件處理實現(xiàn)執(zhí)行控制處理時,從判定電路的判定、狀態(tài)加速器處的表查找到處理命令的發(fā)出的所有處理都是用硬件實現(xiàn)的,從而可以用大約幾周期(10周期或更少)的處理周期數(shù)目(等待時間)來實現(xiàn)處理。換言之,與使用執(zhí)行控制處理器的軟件處理相比,硬件處理可以幾倍或者十倍以上那么快地實現(xiàn)。另外,在如示例1(圖14中所示的示例性操作序列)中所示的具有以流水線方式并行處理的各個子處理器的實際數(shù)據(jù)處理系統(tǒng)中,很有可能在各個子處理器之間處理狀態(tài)和接下來要發(fā)出的處理命令是彼此一對一依從的,從而獲得加速效果的可能性將相應(yīng)地提聞。此外,由于由執(zhí)行控制處理器進行的軟件處理和由狀態(tài)加速器進行的硬件處理可并行操作,使得狀態(tài)加速器進行要求有簡單處理狀態(tài)的數(shù)目那么多并且被假定為由執(zhí)行控制處理器處理的執(zhí)行控制處理也使得能夠平衡執(zhí)行控制處理器的處理負荷。與由執(zhí)行控制處理器實現(xiàn)所有執(zhí)行控制處理的現(xiàn)有技術(shù)相比,這帶來了執(zhí)行控制處理器的處理故障的風(fēng)險的急劇降低。第二個效果是提供了包括執(zhí)行控制電路的高度靈活的多處理器系統(tǒng)。特別地,在維持高靈活性的同時,只需要通過添加簡單的硬件電路就可以實現(xiàn)在各個子處理器之間處理狀態(tài)和接下來要發(fā)出的處理命令彼此一對一依從的操作序列的執(zhí)行控制處理的加速。其原因是,在本發(fā)明的執(zhí)行控制電路的結(jié)構(gòu)中,當(dāng)對于各個子處理器之間的執(zhí)行控制處理,其處理狀態(tài)和接下來要發(fā)出的處理命令彼此一對一依從時,可以例如根據(jù)執(zhí)行控制處理器的處理負荷、命令表的容量等等為每個處理狀態(tài)靈活地選擇是利用由簡單的表查找實現(xiàn)的狀態(tài)加速器用硬件高速執(zhí)行處理,還是利用階段數(shù)目可變的狀態(tài)FIFO和執(zhí)行控制處理器以軟件靈活執(zhí)行處理。
特別地,將要提高速度的執(zhí)行控制處理限于在各個子處理器之間處理狀態(tài)和接下來要發(fā)出的處理命令彼此一對一依從的操作序列使得不用復(fù)雜的專用硬件配置而只是通過添加執(zhí)行相對較簡單和靈活的表查找的硬件電路(判定電路和狀態(tài)加速器)就能夠在維持靈活性的同時加速處理。換言之,一個顯著的特征是,本發(fā)明的執(zhí)行控制電路中的執(zhí)行控制處理的加速不能僅利用如專利文獻2中所示那樣的高度靈活的執(zhí)行控制電路和簡單判定電路的組合來容易地實現(xiàn),而是可以如圖3、圖4和圖14中所示通過找到處理狀態(tài)和接下來要發(fā)出的處理命令彼此一對一依從的操作序列的屬性并且將其充分利用為用于判定處理的加速是否可能的基準(判定點)來實現(xiàn)。還示出了使用在狀態(tài)數(shù)據(jù)中設(shè)有判定比特的數(shù)據(jù)格式利用相對較簡單的比較判定電路實現(xiàn)了判定電路中的判定功能。在此情況下,雖然必須要在子處理器側(cè)根據(jù)有關(guān)處理狀態(tài)的執(zhí)行控制處理是要利用狀態(tài)加速器以硬件實現(xiàn)還是要利用執(zhí)行控制處理器以軟件實現(xiàn)來改變狀態(tài)數(shù)據(jù)值,但判定電路可有利地利用極簡單的結(jié)構(gòu)來實現(xiàn)。另一個優(yōu)點是如示例I中詳細描述那樣在同一存儲器上共享執(zhí)行控制電路中的狀態(tài)FIFO、命令FIFO和中斷FIFO使得能夠在LSI開發(fā)后根據(jù)操作序列或者執(zhí)行控制處理器的處理量來靈活地調(diào)整每個FIFO的階段數(shù)目等等。第三個效果是提供了包括執(zhí)行控制電路并且可擴展性較高的多處理器系統(tǒng)。特別地,可以在維持高可擴展性的同時實現(xiàn)在各個子處理器之間處理狀態(tài)和接下來要發(fā)出的處理命令彼此一對一依從的操作序列的執(zhí)行控制處理的加速。其原因是,在本發(fā)明中,作為執(zhí)行控制電路的結(jié)構(gòu),通過使用圖10中所示那樣的狀態(tài)數(shù)據(jù)的格式和階段數(shù)目可變的狀態(tài)FIFO并且通過利用設(shè)定可改變的命令表將狀態(tài)加速器實現(xiàn)為專用硬件配置來實現(xiàn)來自每個子處理器的狀態(tài)通知的處理,使得系統(tǒng)能夠在不改變執(zhí)行控制電路的硬件配置的情況下應(yīng)對子處理器的數(shù)目、處理狀態(tài)的數(shù)目的增加等
坐寸ο特別地,在擴展與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的那種處理狀態(tài)的情況下,由于其可由具有較小數(shù)目的處理周期的狀態(tài)加速器處理,所以只要通過改變狀態(tài)加速器中的命令表的設(shè)定等等就可以進行擴展,而不會影響整體處理等待時間或執(zhí)行控制處理器的處理負荷。由于執(zhí)行控制電路的硬件基本上僅由執(zhí)行控制處理器、用于每個接口的FIFO和為了加速狀態(tài)處理而添加的簡單硬件電路(判定電路和狀態(tài)加速器)形成,并且作為主處理器側(cè)的接口的命令FIFO和中斷FIFO中的每一個的階段數(shù)目可通過與其他FIFO共享來設(shè)定,所以本發(fā)明的執(zhí)行控制電路很有可能轉(zhuǎn)而應(yīng)用到各種多處理器。(第二示例性實施例)接下來,將參考附圖詳細描述本發(fā)明的第二示例性實施例。在以下附圖中,對于與本發(fā)明的主旨無關(guān)的部分的結(jié)構(gòu)將不進行描述,并且將不對其進行圖示。在本示例性實施例中,將對內(nèi)容可尋址存儲器(CAM)被用于執(zhí)行控制電路的判定電路中的狀態(tài)判定的情況進行詳細描述。圖17是示出將內(nèi)容可尋址存儲器(CAM)用于執(zhí)行控制電路的判定電路中的狀態(tài)判定的多處理器系統(tǒng)的示例性結(jié)構(gòu)的圖,該存儲器是本發(fā)明的第二示例性實施例。與第一示例性實施例類似,本發(fā)明的多處理器系統(tǒng)的前提是在主處理器側(cè)包括主處理器(MP(CPU)) 10、其CPU總線11和作為外圍塊的中斷控制器12,并且在子處理器側(cè)包括各個子處理器(功能塊)30至3n。主處理器(MP(CPU)) 10利用CPU總線11執(zhí)行對子處理器側(cè)的執(zhí)行控制,并且利用輸入到中斷控制器12的中斷信號核查子處理器側(cè)的狀態(tài)。作為本發(fā)明的執(zhí)行控制電路20被實現(xiàn)在主處理器(MP(CPU)) 10和子處理器(功能塊)30至3n之間,并且執(zhí)行控制電路20包括與第一示例性實施例相同的接口(CPU I/F、INTR I/F、控制總線42和狀態(tài)總線52)。在執(zhí)行控制電路20和各個子處理器(功能塊)30至3n之間,與第一示例性實施例類似地設(shè)有控制總線控制電路40和狀態(tài)總線控制電路50。各個子處理器(功能塊)30至3n中的每一個與第一示例性實施例類似地被構(gòu)造為包括命令接收控制單元43和狀態(tài)通知控制單元53。 第二示例性實施例特有的執(zhí)行控制電路20的結(jié)構(gòu)是設(shè)在判定電路24中以使得能夠在不將判定比特設(shè)定到處理狀態(tài)值的情況下判定處理狀態(tài)是否與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的內(nèi)容可尋址存儲器(散列表)。其特征還在于判定電路24設(shè)有來自CP總線15的訪問接口以使得散列表的內(nèi)容能夠由執(zhí)行控制處理器(CP)21來設(shè)定。第二示例性實施例還被假定為包括用于從LSI的外部觀測控制總線42和狀態(tài)總線52的訪問狀態(tài)的總線監(jiān)視輸出電路63。(對第二示例性實施例的操作的描述)接下來,將參考圖17至圖19詳細描述本示例性實施例的操作。執(zhí)行控制電路20的基本操作,也就是圖2中所示的操作流程、圖3和圖4中所示的操作序列以及圖5至圖9中所示的操作圖像與第一示例性實施例的相同,并且在判定電路24中設(shè)有內(nèi)容可尋址存儲器(散列表)的情況下,第二示例性實施例特有的操作是利用內(nèi)容可尋址存儲器(散列表)來執(zhí)行從子處理器(功能塊)30至3n中的每一個通知來的處理狀態(tài)是否與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的判定。像第一示例性實施例中那樣在狀態(tài)數(shù)據(jù)中設(shè)定判定比特從而就不必要了。圖18是示出第二示例性實施例中的狀態(tài)數(shù)據(jù)的數(shù)據(jù)格式的示例的圖。本示例性實施例中的狀態(tài)數(shù)據(jù)的基本結(jié)構(gòu)與圖10中所示的第一示例性實施例中的數(shù)據(jù)格式相同,唯一不同的是指示是否是與接下來要發(fā)出的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài)的判定比特是不必要的。在簡單處理狀態(tài)的情況下,在在狀態(tài)加速器25處在表中查找處理狀態(tài)值或其比特的一部分時,數(shù)據(jù)不會被用作地址,從而與圖10中所示的第一示例性實施例的格式相比,在第二示例性實施例中處理狀態(tài)值可被更靈活地指派給子處理器(功能塊)30至3n中的每一個。更具體而言,在由狀態(tài)加速器25進行的硬件處理和由執(zhí)行控制處理器(CP)21進行的軟件處理之間的選擇不要求從每個子處理器通知的狀態(tài)數(shù)據(jù)的改變,這產(chǎn)生了如下效果,即,只要通過改變執(zhí)行控制電路中的表設(shè)定,例如判定電路中的內(nèi)容可尋址存儲器(散列表)或狀態(tài)加速器25中的命令表71的設(shè)定,就可以靈活地實現(xiàn)該選擇。
圖19是示出本示例性實施例中的判定電路24的示例性結(jié)構(gòu)的圖。第二示例性實施例中的判定電路24利用設(shè)在該電路中的內(nèi)容可尋址存儲器(CAM)73來判定從子處理器(功能塊)30至3n中的每一個通知來的處理狀態(tài)是否與接下來要發(fā)出的處理命令具有一對一依從關(guān)系。在通知的狀態(tài)數(shù)據(jù)[31:0]作為數(shù)據(jù)的情況下,判定電路24訪問內(nèi)容可尋址存儲器(CAM) 73,并且當(dāng)數(shù)據(jù)命中時(在簡單處理狀態(tài)的情況下),將要輸出的數(shù)據(jù)的地址傳送到狀態(tài)加速器25,使得狀態(tài)加速器25利用該地址在命令表71中執(zhí)行表查找,從而用硬件執(zhí)行高速執(zhí)行控制處理。另一方面,當(dāng)數(shù)據(jù)在內(nèi)容可尋址存儲器(CAM)73中未能命中時(在普通處理狀態(tài)的情況下),輸入的狀態(tài)數(shù)據(jù)被不加修改地傳送到狀態(tài)FIFO控制單元26以利用執(zhí)行控制處理器(CP) 21用軟件處理執(zhí)行該狀態(tài)的執(zhí)行控制處理。在諸如啟動操作之類的初始操作時,執(zhí)行控制處理器(CP) 21在這里利用CP總線15在圖19中所示的判定電路24中的內(nèi)容可尋址存儲器(CAM) 73和圖12中所示的狀態(tài)加速器25中的命令表71中將子處理器之間的彼此具有一對一依從關(guān)系的要高速處理的狀態(tài)數(shù)據(jù)值和處理命令值成對地設(shè)定在各個存儲器的同一地址處。當(dāng)存在多個值時,可通過改變地址來設(shè)定它們。內(nèi)容可尋址存儲器(CAM) 73由于其在數(shù)據(jù)輸入時其地址被輸出的特征而基本上應(yīng)當(dāng)全都一次被搜索。從而一般難以準備可高速訪問的內(nèi)容可尋址存儲器(CAM)73。從而本示例性實施例的特征在于使用搜索范圍可限定的散列表(存儲器)75和地址計數(shù)器76來實現(xiàn)可相對較高速地訪問的內(nèi)容可尋址存儲器(CAM) 73。首先,當(dāng)狀態(tài)數(shù)據(jù)被從狀態(tài)總線52通知來時,利用例如用于計算每個比特的異或(XOR)的散列函數(shù)(散列值計算電路)74來獲得散列值。接下來,以該散列值作為基準地址,地址計數(shù)器76訪問散列表(存儲器)75以利用比較電路77判定輸入的狀態(tài)數(shù)據(jù)是否與所獲得的值一致。當(dāng)值與數(shù)據(jù)一致時,以訪問地址作為內(nèi)容可尋址存儲器(CAM)73的輸出地址,將該值傳送到狀態(tài)加速器25作為與接下來的處理命令具有一對一依從關(guān)系的簡單處理狀態(tài)。當(dāng)值未能與數(shù)據(jù)一致時,利用由執(zhí)行控制處理器(CP)21預(yù)先設(shè)定的“正方向搜索數(shù)A”和“反方向搜索數(shù)B”的設(shè)定值,地址計數(shù)器76從“基準地址”到“基準地址+A”并且從“基準地址-I”到“基準地址-B”順次訪問散列表(存儲器)75以執(zhí)行另一次搜索和另
一次判定。當(dāng)在從-B到+A的范圍上未能與數(shù)據(jù)一致時,這意味著不與接下來的處理命令具有一對一依從關(guān)系的普通處理狀態(tài),則將有關(guān)狀態(tài)數(shù)據(jù)傳送到狀態(tài)FIFO控制單元26。這里,執(zhí)行控制處理器(CP) 21對于與接下來的處理命令具有一對一依從關(guān)系的簡單狀態(tài)數(shù)據(jù)預(yù)先計算散列值并且以該散列值作為地址將該狀態(tài)數(shù)據(jù)設(shè)定在散列表(存儲器)75處。
在狀態(tài)加速器25中的命令表71,在同一地址處設(shè)定相應(yīng)的處理命令。當(dāng)多條狀態(tài)數(shù)據(jù)具有同一散列值時,以該散列值作為基準,將數(shù)據(jù)設(shè)定在該散列值前后的空閑地址處。在此情況下,在上述“正方向搜索數(shù)A”和“反方向搜索數(shù)B”的控制寄存器處設(shè)定值以使得能夠搜索直到該狀態(tài)數(shù)據(jù)的位置。從而,本示例性實施例中的判定電路24設(shè)有簡單的散列計算電路74和散列表(存儲器)75以及搜索范圍可限定的地址計數(shù)器76使得能夠用相對較簡單的電路配置來實現(xiàn)可高速訪問的內(nèi)容可尋址存儲器(CAM) 73。另外,作為本發(fā)明的散列表(存儲器)75特有的特征,不需要存儲所有對象數(shù)據(jù),這產(chǎn)生了選擇如下的靈活結(jié)構(gòu)的優(yōu)點使得執(zhí)行控制處理器(CP) 21根據(jù)判定電路24或狀態(tài)加速器25的處理負荷經(jīng)由狀態(tài)FIFO控制單元26處理加速優(yōu)先級相對較低的簡單狀態(tài)數(shù)據(jù),而不將該數(shù)據(jù)存儲在散列表75中。圖17中所示的第二示例性實施例也具有總線監(jiān)視功能。通過總線監(jiān)視輸出電路63,用于從執(zhí)行控制電路20向子處理器(功能塊)30至3n中的每一個發(fā)出諸如處理開始之類的命令的控制總線42和用于從子處理器(功能塊)30至3n中的每一個向執(zhí)行控制電路20通知處理完成或差錯的狀態(tài)總線52這僅兩種單層總線訪問到LSI的外部的監(jiān)視輸出使得能夠相對較容易地觀測與每個子處理器的處理執(zhí)行相關(guān)的幾乎所有狀態(tài)(開始、結(jié)束等等)。從而,獲得了相對優(yōu)良的觀測便利(調(diào)試便利),因為不是來自每個子處理器的專用線路或?qū)S每偩€,而是作為本發(fā)明的特征的狀態(tài)總線52和狀態(tài)總線控制電路50被用于狀態(tài)通知以通過共享總線實現(xiàn)執(zhí)行控制電路20和子處理器(功能塊)30至3n之間的所有通信。(第二示例性實施例的效果)接下來,將描述本示例性實施例的效果。根據(jù)本示例性實施例,雖然用靈活的內(nèi)容可尋址存儲器(散列表)實現(xiàn)判定電路的判定功能與第一示例性實施例相比需要略微更復(fù)雜且更大規(guī)模的硬件,但對于在由狀態(tài)加速器進行的硬件處理和由執(zhí)行控制處理器進行的軟件處理之間的選擇,不要求對每個子處理器通知的狀態(tài)數(shù)據(jù)的改變,而只要求改變執(zhí)行控制電路中的表設(shè)定,例如判定電路中的內(nèi)容可尋址存儲器(散列表)和狀態(tài)加速器中的命令表,這更靈活地實現(xiàn)了選擇。根據(jù)本示例性實施例,總線監(jiān)視輸出裝置的提供實現(xiàn)了具有優(yōu)良的調(diào)試便利和可觀測性的多處理器系統(tǒng)。其原因是,由于執(zhí)行控制電路和每個子處理器之間的接口僅由控制總線和狀態(tài)總線構(gòu)成以利用控制總線將處理內(nèi)容(處理ID)、處理激活命令等等傳送到每個子處理器并且利用狀態(tài)總線從每個子處理器傳送諸如處理完成之類的狀態(tài)通知,所以僅兩種總線的總線監(jiān)視輸出使得能夠相對較容易地觀測與每個子處理器的處理執(zhí)行相關(guān)的幾乎所有狀態(tài)(開始、結(jié)束等等)。特別地,通過不是用可觀測性較低的專用線路或?qū)S每偩€而是用可觀測性較高的狀態(tài)總線來實現(xiàn)用于從每個子處理器通知狀態(tài)的單元,可以僅在兩種單層總線上觀測執(zhí)行控制電路與每個子處理器之間的所有通信。此外,如第一示例性實施例的示例I中所示,當(dāng)利用共享存儲器實現(xiàn)子處理器之間的數(shù)據(jù)傳送時,選擇要觀測的共享存儲器總線并且監(jiān)視輸出數(shù)據(jù)到LSI的外部還使得也能夠觀測子處理器之間的數(shù)據(jù)傳送。(第三示例性實施例)將參考圖20詳細描述本發(fā)明的第三示例性實施例。在圖20中,對于與本發(fā)明的主旨無關(guān)的部分的結(jié)構(gòu)將不進行描述,并且將不對其進行圖示。將針對包括多個執(zhí)行控制電路以并行實現(xiàn)子處理器的執(zhí)行控制處理的系統(tǒng)來詳細描述本示例性實施例。圖20是示出包括作為本示例性實施例的多個執(zhí)行控制電路20以實現(xiàn)子處理器的執(zhí)行控制處理的并行執(zhí)行的多處理器系統(tǒng)的示例性結(jié)構(gòu)的圖。與第一和第二示例性實施例類似,本發(fā)明的多處理器系統(tǒng)被包括為在主處理器側(cè)包括主處理器(MP(CPU)) 10及其CPU總線11并且在主處理器側(cè)包括作為外圍塊的中斷控制器12,并且在子處理器側(cè)包括各個子處理器(功能塊)30至3n。主處理器(MP (CPU)) 10利用CPU總線11進行對子處理器側(cè)的執(zhí)行控制,并且利用輸入到中斷控制器12的中斷信號核查子處理器側(cè)的狀態(tài)。作為第三示例性實施例特有的結(jié)構(gòu),作為本發(fā)明的多個(20a、20b)執(zhí)行控制電路20被實現(xiàn)在主處理器(MP (CPU)) 10和子處理器(功能塊)30至3n之間以使得執(zhí)行控制處理被并行執(zhí)行。執(zhí)行控制電路20a、20b和接口可利用與第一和第二示例性實施例的執(zhí)行控制電路20相同的硬件配置和接口(CPU I/F、INTR I/F、控制總線42和狀態(tài)總線52)來實現(xiàn)。在執(zhí)行控制電路20a、20b和子處理器(功能塊)30至3n中的每一個之間,設(shè)有控制總線控制電路40和狀態(tài)總線控制電路50??刂瓶偩€控制電路40和狀態(tài)總線控制電路50如圖20中所示可各自被設(shè)有一個并且被執(zhí)行控制電路20和20b共享,或者可對多個執(zhí)行控制電路中的每一個設(shè)有控制總線控制電路40和狀態(tài)總線控制電路50,而不會有問題。雖然在圖20中示出的是具有兩個執(zhí)行控制電路20的系統(tǒng),但可以并行操作三個或更多個執(zhí)行控制電路,而不會有問題。只有主處理器側(cè)的中斷控制器12的輸入中斷信號的數(shù)目依據(jù)所實現(xiàn)的執(zhí)行控制電路20的數(shù)目而改變,而其他的塊通過結(jié)構(gòu)改變相對較容易的總線控制電路的改變就可應(yīng)用(CPU總線11、控制總線控制電路40和狀態(tài)總線控制電路50)。換言之,不必改變執(zhí)行控制電路20的內(nèi)部結(jié)構(gòu)和接口,并且可依據(jù)系統(tǒng)改變的速率要被狀態(tài)加速器25提高的處理狀態(tài)的改變或者每個FIFO的階段數(shù)目的改變可利用作為本發(fā)明的特征的命令表71等等的改寫功能和示例I中所示的FIFO共享功能來應(yīng)對,而不涉及硬件配置改變。雖然這里在圖20中單純?yōu)榱朔奖闫鹨娛境隽酥魈幚砥?MP(CPU)) 10,但與執(zhí)行控制電路20類似地可存在多個主處理器(MP(CPU)),而不會有問題。(對第三示例性實施例的操作的描述)接下來,將詳細描述本示例性實施例的操作。在作為本發(fā)明的特征設(shè)有多個(在圖20所示的示例中是兩個)執(zhí)行控制電路的情況下,本示例性實施例特有的操作是執(zhí)行控制電路的并行操作和負荷分布。從主處理器(MP(CPU)) 10將處理所必要的操作序列分布登記在執(zhí)行控制電路20a和20b并且將有關(guān)操作序列的開始命令發(fā)出到登記該操作序列的執(zhí)行控制電路。使得每個執(zhí)行控制電路執(zhí)行不同的操作序列使得執(zhí)行控制處理能夠被并行執(zhí)行以實現(xiàn)了整個系統(tǒng)中的進一步負荷分布。還可以根據(jù)整個系統(tǒng)的處理負荷進一步增加子處理器的數(shù)目。雖然子處理器(功能塊)30至3n側(cè)的操作基本上與第一和第二示例性實施例的相同,但對于由兩個執(zhí)行控制電路20a和20b兩者控制的子處理器,處理狀態(tài)應(yīng)當(dāng)被通知給兩個執(zhí)行控制電路。另一方面,對于僅由執(zhí)行控制電路之一控制的子處理器,處理狀態(tài)應(yīng)當(dāng)僅被通知到有關(guān)執(zhí)行控制電路。因為將可由執(zhí)行控制處理器(CP) 21改變設(shè)定的命令表71和階段數(shù)目可變的狀態(tài)FIFO用于處理狀態(tài)的執(zhí)行控制處理,所以本發(fā)明的執(zhí)行控制電路20能夠靈活地應(yīng)對狀態(tài)通知的改變。當(dāng)來自兩個執(zhí)行控制電路20a和20b的控制總線訪問發(fā)生競爭時,控制總線控制電路40在通過單循環(huán)賽系統(tǒng)等等仲裁訪問之后對地址解碼以實現(xiàn)所選執(zhí)行控制電路與子處理器之間的控制總線訪問。當(dāng)來自子處理器(功能塊)30至3n的狀態(tài)總線訪問發(fā)生競爭時,狀態(tài)總線控制電路50在通過單循環(huán)賽系統(tǒng)等等仲裁訪問之后執(zhí)行地址解碼以實現(xiàn)該子處理器對所選執(zhí)行控制電路的狀態(tài)總線訪問。雖然預(yù)期將來多處理器系統(tǒng)會具有數(shù)目增加的子處理器,但像本示例性實施例中那樣提供多個執(zhí)行控制電路20有利地防止了由于執(zhí)行控制處理的負荷增大引起的處理故障。另一優(yōu)點是作為本發(fā)明的執(zhí)行控制電路20的數(shù)目的增加可以在不改變執(zhí)行控制電路20的硬件配置和子處理器側(cè)的硬件配置的情況下實現(xiàn)。(第三示例性實施例的效果)接下來,將描述本示例性實施例的效果。與第一示例性實施例相比,本示例性實施例通過實現(xiàn)多個執(zhí)行控制電路而實現(xiàn)了對執(zhí)行控制處理器(CP)或狀態(tài)加速器的處理的進一步負荷平衡。雖然伴隨著將來系統(tǒng)規(guī)模的增大,預(yù)期LSI中的子處理器的數(shù)目會增加,但允許在不改變執(zhí)行控制電路的硬件配置的情況下增加所實現(xiàn)的子處理器的數(shù)目的本發(fā)明在維持高可擴展性的同時使能了進一步的負荷分布。雖然以上已針對優(yōu)選的示例性實施例描述了本發(fā)明,但這只是用于例示的而不應(yīng)被解釋為限制性的,并且可在其技術(shù)思想的范圍內(nèi)被修改實現(xiàn)。前述組件的任意組合和本發(fā)明的表現(xiàn)到/自方法、裝置、系統(tǒng)、記錄介質(zhì)、計算機程序等等的轉(zhuǎn)換也是作為本發(fā)明的模式可得的。此外,本發(fā)明的各種組件不需要始終彼此獨立,并且多個組件可被形成為一個構(gòu)件,或者一個組件可由多個構(gòu)件實現(xiàn),或者某個組件可以是另一組件的一部分,或者某個組件的一部分和另一組件的一部分可以彼此交迭,等等。雖然本發(fā)明的方法和計算機程序具有按順序記載的多個步驟,但記載的順序不是對多個步驟的執(zhí)行順序的限制。因此,當(dāng)執(zhí)行本發(fā)明的方法和計算機程序時,可以改變多個步驟的執(zhí)行順序,而不會妨害內(nèi)容。
本發(fā)明的方法和計算機程序的多個步驟不限于在彼此不同的定時執(zhí)行。因此,在某個步驟的執(zhí)行期間,其他步驟可以發(fā)生,或者某個步驟的執(zhí)行定時和另一步驟的執(zhí)行定時的一部分或全部可彼此交迭,等等。以上公開的示例性實施例的全部或一部分可被描述為但不限于以下附注。(附注I)一種多處理器系統(tǒng),包括一個或多個主處理器和多個子處理器;以及進行每個所述子處理器的執(zhí)行控制的執(zhí)行控制電路,其中所述執(zhí)行控制電路包括執(zhí)行控制處理器,用于每個所述子處理器的執(zhí)行控制處理,控制總線輸出單元,用于到每個所述子處理器的命令的激活,狀態(tài)總線輸入單元,用于來自每個所述子處理器的狀態(tài)通知,判定電路,該判定電路判定所述狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理,狀態(tài)加速器,該狀態(tài)加速器在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令,以及狀態(tài)FIFO控制單元,該狀態(tài)FIFO控制單元利用所述執(zhí)行控制處理器來處理所述狀態(tài)通知。(附注2)根據(jù)附注I所述的多處理器系統(tǒng),其中,所述狀態(tài)加速器在狀態(tài)通知要被高速處理時通過表查找發(fā)出相應(yīng)的處理激活命令。(附注3)根據(jù)附注I或附注2所述的多處理器系統(tǒng),其中,所述執(zhí)行控制電路包括命令仲裁電路,該命令仲裁電路仲裁來自所述執(zhí)行控制處理器和所述狀態(tài)加速器的訪問。(附注4)根據(jù)附注I至附注3的任何一個所述的多處理器系統(tǒng),其中,所述狀態(tài)加速器包括命令表,該命令表成對地存儲相應(yīng)的處理命令的子處理器ID和處理ID,以及命令輸出控制器,用于向所述子處理器發(fā)出相應(yīng)的處理命令,其中,所述命令輸出控制器以從所述判定電路傳送來的數(shù)據(jù)的全部或一部分作為地址,從所述命令表讀取存儲的處理命令并且向具有所讀取的子處理器ID的子處理器發(fā)出處理激活命令以便包括一起讀取的處理ID。(附注5)根據(jù)附注I至附注4的任何一個所述的多處理器系統(tǒng),其中在用于所述狀態(tài)通知的狀態(tài)數(shù)據(jù)的格式中設(shè)有用于判定的比特區(qū)域,并且所述判定電路包括比較判定電路,該比較判定電路利用所述用于判定的比特區(qū)域來執(zhí)行判定,以及傳送選擇單元,該傳送選擇單元當(dāng)判定狀態(tài)通知具有一對一依從關(guān)系并且要被高速處理時將所述狀態(tài)數(shù)據(jù)的全部或一部分傳送到所述狀態(tài)加速器,否則將所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。(附注6)根據(jù)附注I至附注4的任何一個所述的多處理器系統(tǒng),其中,所述判定電路包括內(nèi)容可尋址存儲器,該內(nèi)容可尋址存儲器當(dāng)被利用輸入的狀態(tài)數(shù)據(jù)來訪問時,如果具有一對一依從關(guān)系的處理命令存在,則通過輸出所述命令表的地址來實現(xiàn)判定,以及傳送選擇單元,該傳送選擇單元當(dāng)狀態(tài)數(shù)據(jù)在所述內(nèi)容可尋址存儲器中命中時將要輸出的地址傳送到所述狀態(tài)加速器,并且當(dāng)數(shù)據(jù)未能命中時將輸入的所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。 (附注7)根據(jù)附注6所述的多處理器系統(tǒng),其中,所述內(nèi)容可尋址存儲器包括對于狀態(tài)數(shù)據(jù)的散列值計算電路,散列表,該散列表以從具有一對一依從關(guān)系的狀態(tài)數(shù)據(jù)計算出的散列值作為地址將該狀態(tài)數(shù)據(jù)作為數(shù)據(jù)存儲,以及地址計數(shù)器,用于在具有相同散列值的多條狀態(tài)數(shù)據(jù)存在時通過最少次數(shù)的訪問實現(xiàn)判定。(附注8)根據(jù)附注6或附注7所述的多處理器系統(tǒng),其中,所述內(nèi)容可尋址存儲器的內(nèi)容的設(shè)定能夠被所述主處理器或所述執(zhí)行控制處理器改變。(附注9)根據(jù)附注I至附注8的任何一個所述的多處理器系統(tǒng),其中,所述判定電路包括不考慮所述判定的結(jié)果根據(jù)能夠被所述主處理器或所述執(zhí)行控制處理器設(shè)定的控制寄存器的值將所有狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元的單元。(附注10)根據(jù)附注I至附注9的任何一個所述的多處理器系統(tǒng),包括執(zhí)行從所述執(zhí)行控制電路到每個所述子處理器的控制的控制總線用的控制總線控制電路,以及執(zhí)行從每個所述子處理器到所述執(zhí)行控制電路的狀態(tài)通知的狀態(tài)總線用的狀態(tài)總線控制電路,其中所述狀態(tài)總線控制電路包括執(zhí)行到所述執(zhí)行控制電路的狀態(tài)總線傳送的單元,其中子處理器ID被添加到狀態(tài)數(shù)據(jù),該ID在來自每個所述子處理器的狀態(tài)總線訪問的仲裁時指示出狀態(tài)通知來自所述子處理器中的哪個,并且所述狀態(tài)FIFO控制單元包括將所述子處理器ID以及相應(yīng)的處理ID和狀態(tài)值成塊存儲的機構(gòu)。(附注11)根據(jù)附注I至附注10的任何一個所述的多處理器系統(tǒng),其中,每個所述子處理器包括命令接收控制單元,用于獲得來自所述控制總線的處理激活命令,以及狀態(tài)通知控制單元,用于向所述狀態(tài)總線發(fā)送處理狀態(tài),并且將所述處理激活命令指定的處理ID和與該處理ID相對應(yīng)的處理狀態(tài)相組合地作為狀態(tài)通知數(shù)據(jù)通知到所述狀態(tài)總線。(附注12)根據(jù)附注I至附注11的任何一個所述的多處理器系統(tǒng),其中,所述執(zhí)行控制電路包括命令FIFO控制單元,用于從主處理器設(shè)定操作序列和輸入命令以與主處理器通 目, 中斷FIFO控制單元,用于向主處理器發(fā)送諸如處理序列完成的中斷通知,F(xiàn)IFO基本地址設(shè)定寄存器和FIFO階段數(shù)目設(shè)定寄存器,該FIFO基本地址設(shè)定寄存器和FIFO階段數(shù)目設(shè)定寄存器在同一地址空間上在存儲器中共享所述狀態(tài)FIFO控制單元、所述命令FIFO控制單元和所述中斷FIFO控制單元的實體以使得每個FIFO的階段數(shù)目可變,以及地址轉(zhuǎn)換單元,該地址轉(zhuǎn)換單元在對每個FIFO控制單元的訪問發(fā)生時利用兩個所述FIFO設(shè)定寄存器的值來將訪問地址轉(zhuǎn)換成實際存儲器地址。(附注13)根據(jù)附注I至附注12的任何一個所述的多處理器系統(tǒng),包括作為所述子處理器之間的數(shù)據(jù)發(fā)送和接收單元多組化的共享存儲器,其中每個所述子處理器包括用于輸入/輸出數(shù)據(jù)傳送的共享存儲器接口以通過所述共享存儲器接口傳送輸入/輸出數(shù)據(jù)和獲得處理參數(shù)。(附注14)根據(jù)附注I至附注13的任何一個所述的多處理器系統(tǒng),包括將所述控制總線或所述狀態(tài)總線監(jiān)視輸出到LSI的外部的總線監(jiān)視輸出電路。(附注15)根據(jù)附注I至附注14的任何一個所述的多處理器系統(tǒng),包括多個所述執(zhí)行控制電路以并行進行執(zhí)行控制處理。(附注16)—種包括一個或多個主處理器和多個子處理器的多處理器系統(tǒng)中的子處理器執(zhí)行控制方法,其中設(shè)有進行每個所述子處理器的執(zhí)行控制的執(zhí)行控制電路,所述執(zhí)行控制電路的判定電路判定來自每個所述子處理器的狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理,所述執(zhí)行控制電路的狀態(tài)加速器在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令,并且所述執(zhí)行控制電路的狀態(tài)FIFO控制單元利用用于每個所述子處理器的執(zhí)行控制處理的執(zhí)行控制處理器來處理所述狀態(tài)通知。(附注17)根據(jù)附注16所述的執(zhí)行控制方法,其中,所述狀態(tài)加速器在狀態(tài)通知要被高速處理時通過表查找發(fā)出相應(yīng)的處理激活命令。(附注18)根據(jù)附注16或附注17所述的執(zhí)行控制方法,其中,所述執(zhí)行控制電路的命令仲裁電路仲裁來自所述執(zhí)行控制處理器和所述狀態(tài)加速器的訪問。(附注19)根據(jù)附注16至附注18的任何一個所述的執(zhí)行控制方法,其中所述狀態(tài)加速器包括成對地存儲相應(yīng)的處理命令的子處理器ID和處理ID的命令表,以及用于向每個所述子處理器發(fā)出相應(yīng)的處理命令的命令輸出控制器,其中,以從所述判定電路傳送來的數(shù)據(jù)的全部或一部分作為地址,所述命令輸出控制器從所述命令表讀取存儲的處理命令并且向具有所讀取的子處理器ID的子處理器發(fā)出包括一起讀取的處理ID的處理激活命令。(附注20)根據(jù)附注16至附注19的任何一個所述的執(zhí)行控制方法,其中在用于所述狀態(tài)通知的狀態(tài)數(shù)據(jù)的格式中設(shè)有用于判定的比特區(qū)域,并且所述判定電路利用所述用于判定的比特區(qū)域來作出判定,以及當(dāng)判定狀態(tài)通知具有一對一依從關(guān)系并且要被高速處理時將所述狀態(tài)數(shù)據(jù)的全部或一部分傳送到所述狀態(tài)加速器,否則將所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。(附注21)根據(jù)附注16至附注19的任何一個所述的執(zhí)行控制方法,其中,所述判定電路
利用內(nèi)容可尋址存儲器,當(dāng)利用輸入的狀態(tài)數(shù)據(jù)來訪問時,如果具有一對一依從關(guān)系的處理命令存在,則通過輸出所述命令表的地址來實現(xiàn)判定,以及當(dāng)狀態(tài)數(shù)據(jù)在所述內(nèi)容可尋址存儲器中命中時將要輸出的地址傳送到所述狀態(tài)加速器,并且當(dāng)數(shù)據(jù)未能命中時將輸入的所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。(附注22)根據(jù)附注16至附注21的任何一個所述的執(zhí)行控制方法,其中,所述判定電路不考慮所述判定的結(jié)果根據(jù)能夠被所述主處理器或所述執(zhí)行控制處理器設(shè)定的控制寄存器的值將所有狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。(附注23)—種在包括一個或多個主處理器和多個子處理器的多處理器系統(tǒng)上執(zhí)行的執(zhí)行控制程序,其使得進行每個所述子處理器的執(zhí)行控制的執(zhí)行控制電路執(zhí)行所述執(zhí)行控制電路的判定電路的功能,判定來自每個所述子處理器的狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理;所述執(zhí)行控制電路的狀態(tài)加速器的功能,在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令;以及所述執(zhí)行控制電路的狀態(tài)FIFO控制單元的功能,利用用于每個所述子處理器的執(zhí)行控制處理的執(zhí)行控制處理器來處理所述狀態(tài)通知。(附注24)根據(jù)附注23所述的執(zhí)行控制程序,其使得所述狀態(tài)加速器執(zhí)行在狀態(tài)通知要被高速處理時通過表查找發(fā)出相應(yīng)的處理激活命令的功能。(附注25)根據(jù)附注23或附注24所述的執(zhí)行控制程序,其使得所述執(zhí)行控制電路的命令仲裁電路執(zhí)行仲裁來自所述執(zhí)行控制處理器和所述狀態(tài)加速器的訪問的功能。(附注26)根據(jù)附注23至附注25的任何一個所述的執(zhí)行控制程序,其中所述狀態(tài)加速器包括成對地存儲相應(yīng)的處理命令的子處理器ID和處理ID的命令表,以及用于向每個所述子處理器發(fā)出相應(yīng)的處理命令的命令輸出控制器,其中,所述執(zhí)行控制程序使得所述命令輸出控制器執(zhí)行以從所述判定電路傳送來的數(shù)據(jù)的全部或一部分作為地址,從所述命令表讀取存儲的處理命令并且向具有所讀取的子處理器ID的子處理器發(fā)出包括一起讀取的處理ID的處理激活命令的功能。(附注27)根據(jù)附注23至附注26的任何一個所述的執(zhí)行控制程序,其中在用于所述狀態(tài)通知的狀態(tài)數(shù)據(jù)的格式中設(shè)有用于判定的比特區(qū)域,并且所述執(zhí)行控制程序使得所述判定電路執(zhí)行以下功能利用所述用于判定的比特區(qū)域來作出判定,以及當(dāng)判定狀態(tài)通知具有一對一依從關(guān)系并且要被高速處理時將所述狀態(tài)數(shù)據(jù)的全部或一部分傳送到所述狀態(tài)加速器,否則將所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。(附注28)根據(jù)附注23至附注26的任何一個所述的執(zhí)行控制程序,其使得所述判定電路執(zhí)行以下功能利用內(nèi)容可尋址存儲器,當(dāng)利用輸入的狀態(tài)數(shù)據(jù)來訪問時,如果具有一對一依從關(guān)系的處理命令存在,則通過輸出所述命令表的地址來實現(xiàn)判定,以及當(dāng)狀態(tài)數(shù)據(jù)在所述內(nèi)容可尋址存儲器中命中時將要輸出的地址傳送到所述狀態(tài)加速器,并且當(dāng)數(shù)據(jù)未能命中時將輸入的所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。
(附注29)根據(jù)附注23至附注28的任何一個所述的執(zhí)行控制程序,其使得所述判定電路執(zhí)行不考慮所述判定的結(jié)果根據(jù)能夠被所述主處理器或所述執(zhí)行控制處理器設(shè)定的控制寄存器的值將所有狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元的功能。通過引用并入本申請基于2010年5月26日提交的2010-120241號日本專利申請并要求其優(yōu)先權(quán),該日本專利申請的公開內(nèi)容通過引用被全部并入在此。
權(quán)利要求
1.一種多處理器系統(tǒng),包括 一個或多個主處理器和多個子處理器;以及 進行每個所述子處理器的執(zhí)行控制的執(zhí)行控制電路, 其中所述執(zhí)行控制電路包括 執(zhí)行控制處理器,用于每個所述子處理器的執(zhí)行控制處理, 控制總線輸出單元,用于到每個所述子處理器的命令的激活, 狀態(tài)總線輸入單元,用于來自每個所述子處理器的狀態(tài)通知, 判定電路,該判定電路判定所述狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理, 狀態(tài)加速器,該狀態(tài)加速器在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令,以及 狀態(tài)FIFO控制單元,該狀態(tài)FIFO控制單元利用所述執(zhí)行控制處理器來處理所述狀態(tài)通知。
2.根據(jù)權(quán)利要求I所述的多處理器系統(tǒng),其中,所述狀態(tài)加速器在狀態(tài)通知要被高速處理時通過表查找發(fā)出相應(yīng)的處理激活命令。
3.根據(jù)權(quán)利要求I或權(quán)利要求2所述的多處理器系統(tǒng),其中,所述執(zhí)行控制電路包括命令仲裁電路,該命令仲裁電路仲裁來自所述執(zhí)行控制處理器和所述狀態(tài)加速器的訪問。
4.根據(jù)權(quán)利要求I至權(quán)利要求3的任何一個所述的多處理器系統(tǒng),其中,所述狀態(tài)加速器包括 命令表,該命令表成對地存儲相應(yīng)的處理命令的子處理器ID和處理ID,以及 命令輸出控制器,用于向所述子處理器發(fā)出相應(yīng)的處理命令,其中,所述命令輸出控制器 以從所述判定電路傳送來的數(shù)據(jù)的全部或一部分作為地址,從所述命令表讀取存儲的處理命令并且向具有所讀取的子處理器ID的子處理器發(fā)出處理激活命令以便包括一起讀取的處理ID。
5.根據(jù)權(quán)利要求I至權(quán)利要求4的任何一個所述的多處理器系統(tǒng),其中 在用于所述狀態(tài)通知的狀態(tài)數(shù)據(jù)的格式中設(shè)有用于判定的比特區(qū)域,并且 所述判定電路包括 比較判定電路,該比較判定電路利用所述用于判定的比特區(qū)域來執(zhí)行判定,以及傳送選擇單元,該傳送選擇單元當(dāng)判定狀態(tài)通知具有一對一依從關(guān)系并且要被高速處理時將所述狀態(tài)數(shù)據(jù)的全部或一部分傳送到所述狀態(tài)加速器,否則將所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。
6.根據(jù)權(quán)利要求I至權(quán)利要求4的任何一個所述的多處理器系統(tǒng),其中,所述判定電路包括 內(nèi)容可尋址存儲器,該內(nèi)容可尋址存儲器當(dāng)被利用輸入的狀態(tài)數(shù)據(jù)來訪問時,如果具有一對一依從關(guān)系的處理命令存在,則通過輸出所述命令表的地址來實現(xiàn)判定,以及 傳送選擇單元,該傳送選擇單元當(dāng)狀態(tài)數(shù)據(jù)在所述內(nèi)容可尋址存儲器中命中時將要輸出的地址傳送到所述狀態(tài)加速器,并且當(dāng)數(shù)據(jù)未能命中時將輸入的所述狀態(tài)數(shù)據(jù)傳送到所述狀態(tài)FIFO控制單元。
7.根據(jù)權(quán)利要求6所述的多處理器系統(tǒng),其中,所述內(nèi)容可尋址存儲器包括 對于狀態(tài)數(shù)據(jù)的散列值計算電路, 散列表,該散列表以從具有一對一依從關(guān)系的狀態(tài)數(shù)據(jù)計算出的散列值作為地址將該狀態(tài)數(shù)據(jù)作為數(shù)據(jù)存儲,以及 地址計數(shù)器,用于在具有相同散列值的多條狀態(tài)數(shù)據(jù)存在時通過最少次數(shù)的訪問實現(xiàn)判定。
8.根據(jù)權(quán)利要求I至權(quán)利要求7的任何一個所述的多處理器系統(tǒng),其中,所述執(zhí)行控制電路包括 命令FIFO控制單元,用于從主處理器設(shè)定操作序列和輸入命令以與主處理器通信, 中斷FIFO控制單元,用于向主處理器發(fā)送諸如處理序列完成的中斷通知, FIFO基本地址設(shè)定寄存器和FIFO階段數(shù)目設(shè)定寄存器,該FIFO基本地址設(shè)定寄存器和FIFO階段數(shù)目設(shè)定寄存器在同一地址空間上在存儲器中共享所述狀態(tài)FIFO控制單元、所述命令FIFO控制單元和所述中斷FIFO控制單元的實體以使得每個FIFO的階段數(shù)目可變,以及 地址轉(zhuǎn)換單元,該地址轉(zhuǎn)換單元在對每個FIFO控制單元的訪問發(fā)生時利用兩個所述FIFO設(shè)定寄存器的值來將訪問地址轉(zhuǎn)換成實際存儲器地址。
9.一種包括一個或多個主處理器和多個子處理器的多處理器系統(tǒng)中的子處理器執(zhí)行控制方法,其中 設(shè)有進行每個所述子處理器的執(zhí)行控制的執(zhí)行控制電路, 所述執(zhí)行控制電路的判定電路判定來自每個所述子處理器的狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理, 所述執(zhí)行控制電路的狀態(tài)加速器在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令,并且 所述執(zhí)行控制電路的狀態(tài)FIFO控制單元利用用于每個所述子處理器的執(zhí)行控制處理的執(zhí)行控制處理器來處理所述狀態(tài)通知。
10.一種在包括一個或多個主處理器和多個子處理器的多處理器系統(tǒng)上執(zhí)行的執(zhí)行控制程序,其使得進行每個所述子處理器的執(zhí)行控制的執(zhí)行控制電路執(zhí)行 所述執(zhí)行控制電路的判定電路的功能,判定來自每個所述子處理器的狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理; 所述執(zhí)行控制電路的狀態(tài)加速器的功能,在狀態(tài)通知要被高速處理時發(fā)出相應(yīng)的處理激活命令;以及 所述執(zhí)行控制電路的狀態(tài)FIFO控制單元的功能,利用用于每個所述子處理器的執(zhí)行控制處理的執(zhí)行控制處理器來處理所述狀態(tài)通知。
全文摘要
公開了一種允許更快速的并行執(zhí)行控制處理而不會損害靈活性或可擴展性的多處理器系統(tǒng)。公開的多處理器系統(tǒng)設(shè)有一個或多個主處理器(10)、多個子處理器(30至3n)以及用于執(zhí)行每個子處理器(30至3n)的執(zhí)行控制的執(zhí)行控制電路(20);其中執(zhí)行控制電路(20)設(shè)有用于每個子處理器的執(zhí)行控制處理的執(zhí)行控制用處理器(21)、用于每個子處理器的命令觸發(fā)的控制總線輸出裝置、用于來自每個子處理器的狀態(tài)通知的狀態(tài)總線輸入裝置、用于評估狀態(tài)通知是否與操作序列上接下來要發(fā)出的處理命令具有一對一依從關(guān)系并且要被高速處理的評估電路(24)、用于在要執(zhí)行高速處理的情況下發(fā)出相應(yīng)的處理觸發(fā)命令的狀態(tài)加速器(25),以及用于利用執(zhí)行控制處理器來處理狀態(tài)通知的狀態(tài)FIFO控制單元(26)。
文檔編號G06F15/167GK102934102SQ20118002608
公開日2013年2月13日 申請日期2011年5月24日 優(yōu)先權(quán)日2010年5月26日
發(fā)明者竹內(nèi)俊樹, 井倉裕之 申請人:日本電氣株式會社