專(zhuān)利名稱(chēng):多處理器系統(tǒng)、同步控制裝置及同步控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包含多個(gè)單元處理器(element processor)的多處理器系統(tǒng),特別涉及各單元處理器分別執(zhí)行的進(jìn)程(process)間的同步控制。
背景技術(shù):
在多處理器系統(tǒng)的并行分布式處理中,在需要保持各單元處理器執(zhí)行的進(jìn)程間的數(shù)據(jù)的交換或處理順序的一致性的情況下,各單元處理器取得同步來(lái)進(jìn)行處理。
例如,在下述專(zhuān)利文獻(xiàn)1公開(kāi)的多處理器系統(tǒng)中,包括與各單元處理器對(duì)應(yīng)的同步控制部,通過(guò)在同步控制部間發(fā)送接收同步信號(hào),來(lái)實(shí)現(xiàn)各單元處理器執(zhí)行的進(jìn)程間的同步。
圖13是專(zhuān)利文獻(xiàn)1公開(kāi)的多處理器系統(tǒng)1500的結(jié)構(gòu)簡(jiǎn)圖。
多處理器系統(tǒng)1500包含5個(gè)單元處理器PE0~PE4、和對(duì)應(yīng)于各單元處理器而設(shè)的同步控制部Z0~Z4。
各單元處理器PE0~PE4和各同步控制部Z0~Z4如該圖所示,分別通過(guò)SYNCREQ信號(hào)線及SYNCACK信號(hào)線相連。
SYNCREQ信號(hào)線是用于從單元處理器向?qū)?yīng)的同步控制部通知同步信號(hào)的斷言(assert)、解除斷言(deassert)的信號(hào)線,SYNCACK信號(hào)線是用于從同步控制部向?qū)?yīng)的單元處理器通知同步允許信號(hào)的斷言、解除斷言的信號(hào)線。
各同步控制部Z0~Z4被連接在同步總線1501上,能夠相互發(fā)送接收斷言或解除斷言后的同步信號(hào)。
這里,考慮使多處理器系統(tǒng)1500執(zhí)行分層并行處理的情況。
圖14是各單元處理器PE0~PE4執(zhí)行的分層并行處理的流程圖。
向單元處理器PE0分配了應(yīng)用層的應(yīng)用、進(jìn)程層的進(jìn)程A以及線程層的線程A的處理,向單元處理器PE1分配了線程B,向單元處理器PE2分配了線程C,向單元處理器PE3分配了進(jìn)程B和線程D,向單元處理器PE4分配了線程E。
執(zhí)行應(yīng)用的單元處理器PE0在某個(gè)時(shí)刻開(kāi)始進(jìn)程A的處理,同時(shí)使單元處理器PE3開(kāi)始進(jìn)程B的處理。
執(zhí)行進(jìn)程A的單元處理器PE0在某個(gè)時(shí)刻開(kāi)始線程A的處理,使單元處理器PE1開(kāi)始線程B的處理,使單元處理器PE2開(kāi)始線程C的處理。
執(zhí)行進(jìn)程B的單元處理器PE3在某個(gè)時(shí)刻開(kāi)始線程D的處理,使單元處理器PE4開(kāi)始線程E的處理。
執(zhí)行進(jìn)程A的單元處理器PE0在線程A、B、C的處理都已結(jié)束的時(shí)刻,用各個(gè)線程的處理結(jié)果來(lái)進(jìn)行處理;執(zhí)行進(jìn)程B的單元處理器PE3在線程D、E的處理都已結(jié)束的時(shí)刻,用各個(gè)線程的處理結(jié)果來(lái)進(jìn)行處理。
然后,執(zhí)行應(yīng)用的單元處理器PE0在進(jìn)程A、B的處理都已結(jié)束的時(shí)刻,用各個(gè)處理結(jié)果來(lái)進(jìn)行處理。
例如,單元處理器PE0結(jié)束了線程A的處理后,斷言SYNCREQ信號(hào),對(duì)應(yīng)的同步控制部Z0斷言同步信號(hào)SYNC0,以便表示單元處理器PE0處于同步等待,經(jīng)同步總線1501向其他同步控制部Z1~Z4通知單元處理器PE0處于同步等待。
單元處理器PE0停止執(zhí)行接著的處理,直至從同步控制部Z0斷言了SYNCACK信號(hào)。
從與執(zhí)行線程B的處理的單元處理器PE1對(duì)應(yīng)的同步控制部Z1及與執(zhí)行線程C的處理的單元處理器PE2對(duì)應(yīng)的同步控制部Z2分別被通知了斷言后的同步信號(hào)后,同步控制部Z0向單元處理器PE0通知表示解除同步等待的、被斷言的同步允許信號(hào)。
單元處理器PE0從同步控制部Z0收到被斷言的同步允許信號(hào)的通知后,開(kāi)始接著的進(jìn)程A的處理。
專(zhuān)利文獻(xiàn)1(日本)特許(專(zhuān)利)第1940586號(hào)但是,這里成問(wèn)題的是執(zhí)行線程D的單元處理器PE3在已結(jié)束線程D的時(shí)刻斷言SYNCREQ信號(hào)、收到它的同步控制部Z3斷言同步信號(hào)這一點(diǎn)。
如果在此時(shí)刻單元處理器PE0已結(jié)束進(jìn)程A的處理,則單元處理器PE0等待來(lái)自與執(zhí)行進(jìn)程B的處理的單元處理器PE3對(duì)應(yīng)的同步控制部Z3的同步信號(hào),與單元處理器PE0對(duì)應(yīng)的同步控制部Z0,將單元處理器PE3結(jié)束線程D而造成的同步控制部Z3的同步信號(hào)的斷言、誤認(rèn)為結(jié)束進(jìn)程B而造成的同步信號(hào)的斷言,向單元處理器PE0送出同步允許信號(hào)。
即,在使上述專(zhuān)利文獻(xiàn)1公開(kāi)的多處理器系統(tǒng)進(jìn)行分層并行處理的情況下,認(rèn)為不能在單元處理器間正確地取得同步。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供一種實(shí)現(xiàn)上述分層并行處理的多處理器系統(tǒng)、同步控制裝置及同步控制方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明的多處理器系統(tǒng)包含多個(gè)單元處理器、和對(duì)應(yīng)于各單元處理器而設(shè)的多個(gè)同步控制部,其特征在于,某一單元處理器,對(duì)某一同步控制部,按照與該同步控制部對(duì)應(yīng)的單元處理器接著要執(zhí)行的處理,設(shè)定該同步控制部要發(fā)送的同步信號(hào)的值、和選擇接收到的同步信號(hào)時(shí)所用的同步選擇信息;各單元處理器,在開(kāi)始與其他單元處理器取得同步所需的某處理之前,向?qū)?yīng)的同步控制部輸出同步請(qǐng)求信號(hào),并在從該同步控制部輸入同步允許信號(hào)之前停止執(zhí)行該處理;各同步控制部,為了相互發(fā)送接收上述設(shè)定的同步信號(hào)而被連接;包括同步允許單元,在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),并且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,該同步允許單元向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
此外,本發(fā)明的同步控制裝置,在包含多個(gè)單元處理器的多處理器系統(tǒng)中,對(duì)應(yīng)于各單元處理器而設(shè)置,其特征在于,包括將表示由某一單元處理器設(shè)定的值的同步信號(hào)發(fā)送到其他的多個(gè)同步控制裝置的單元;從其他的同步控制裝置接收同步信號(hào)的單元;以及同步允許單元,在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,該同步允許單元向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
此外,本發(fā)明的同步控制方法,用于多處理器系統(tǒng),該多處理器系統(tǒng)包含多個(gè)單元處理器、和對(duì)應(yīng)于各單元處理器而設(shè)置的多個(gè)同步控制部,其特征在于,某一單元處理器,對(duì)某一同步控制部,按照與該同步控制部對(duì)應(yīng)的單元處理器接著要執(zhí)行的處理,設(shè)定該同步控制部要發(fā)送的同步信號(hào)的值、和選擇接收到的同步信號(hào)時(shí)所用的同步選擇信息;各同步控制部,相互發(fā)送接收由某一單元處理器設(shè)定的值的同步信號(hào);在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,向?qū)?yīng)的單元處理器輸出同步允許信號(hào);各單元處理器在開(kāi)始與其他單元處理器取得同步所需的處理之前,向?qū)?yīng)的同步控制部輸出同步請(qǐng)求信號(hào),并在從該同步控制部輸入了同步允許信號(hào)之前停止執(zhí)行該處理。
發(fā)明效果如果采用上述結(jié)構(gòu)的多處理器系統(tǒng),則在分層并行處理中,可以進(jìn)行設(shè)定,使得即使在下級(jí)層的處理之后、等待進(jìn)行同層的處理的其他第1單元處理器的處理后進(jìn)行中級(jí)層的處理的第2單元處理器結(jié)束下級(jí)層的處理,對(duì)應(yīng)的同步控制部也不斷言同步信號(hào);相反,可以進(jìn)行設(shè)定,使得如果該第2單元處理器已結(jié)束中級(jí)層的處理,則斷言同步信號(hào),以便向進(jìn)行上級(jí)層的處理的第3單元處理器通知中級(jí)層的處理已結(jié)束;所以能夠?qū)崿F(xiàn)分層并行處理,而不會(huì)發(fā)生不能在單元處理器間正確地取得同步的問(wèn)題。
對(duì)應(yīng)于各單元處理器而設(shè)有上述結(jié)構(gòu)的同步控制裝置的多處理器系統(tǒng)、及采用上述同步控制方法的多處理器系統(tǒng)也同樣能夠?qū)崿F(xiàn)分層并行處理。
這里,也可以是,上述多處理器系統(tǒng)包含共享存儲(chǔ)器,該共享存儲(chǔ)器可從各單元處理器及各同步控制部存取,并映射有保持各同步控制部的同步選擇信息的區(qū)域;各同步控制部包括通過(guò)專(zhuān)用線與對(duì)應(yīng)的單元處理器相連接的同步寄存器;各單元處理器按照接著要執(zhí)行的處理,對(duì)該同步寄存器設(shè)定同步信號(hào)的值。
通過(guò)該結(jié)構(gòu),對(duì)于同步選擇信息,能夠通過(guò)由某一單元處理器事先寫(xiě)入到共享存儲(chǔ)器中而被設(shè)定為某一同步控制部的同步選擇信息,對(duì)于同步信號(hào)的值,能夠通過(guò)各單元處理器將值事先寫(xiě)入到對(duì)應(yīng)的同步控制部的同步寄存器中來(lái)設(shè)定,所以各單元處理器無(wú)需為了設(shè)定而持續(xù)發(fā)出信號(hào)。
例如,進(jìn)行上級(jí)層的處理的第3單元處理器在其處理中,能夠事先設(shè)定與進(jìn)行中級(jí)層及下級(jí)層的處理的第2單元處理器對(duì)應(yīng)的同步控制部的同步選擇信息。
這里,也可以是,某一單元處理器通過(guò)執(zhí)行包含確定了同步選擇信息的信息的同步指令,將同步請(qǐng)求信號(hào)輸出到對(duì)應(yīng)的同步控制部,并對(duì)指定的同步控制部設(shè)定該同步選擇信息。
通過(guò)該結(jié)構(gòu),能夠用單指令來(lái)進(jìn)行同步請(qǐng)求信號(hào)的輸出、和對(duì)所指定的同步控制部的同步選擇信息的設(shè)定。
此外,也可以是,某一單元處理器還對(duì)某一同步控制部設(shè)定確定上述規(guī)定的值的同步模式信息;在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)上述設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示由上述同步模式信息所確定的規(guī)定的值的情況下,上述同步允許單元向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
通過(guò)同步模式信息和同步選擇信息,能夠進(jìn)行設(shè)定,使得如果選擇出的同步信號(hào)達(dá)到了所確定的規(guī)定的值,則輸出同步允許信號(hào)。
這里,也可以是,上述多處理器系統(tǒng)包含共享存儲(chǔ)器,該共享存儲(chǔ)器可從各單元處理器及各同步控制部存取,并映射有保持各同步控制部所發(fā)送的同步信號(hào)的值的區(qū)域;各同步控制部,包括通過(guò)專(zhuān)用線與對(duì)應(yīng)的單元處理器相連接的同步寄存器和同步模式寄存器;各單元處理器按照接收的同步信號(hào)中的應(yīng)關(guān)注的同步信號(hào)的值,對(duì)對(duì)應(yīng)的同步控制部的同步選擇寄存器設(shè)定同步選擇信息,并對(duì)對(duì)應(yīng)的同步控制部的同步模式寄存器設(shè)定同步模式信息。
通過(guò)該結(jié)構(gòu),對(duì)于同步信號(hào)的值,能夠通過(guò)由某一個(gè)單元處理器事先寫(xiě)入到共享存儲(chǔ)器中而被設(shè)定為某一個(gè)同步控制部的同步信號(hào),對(duì)于同步選擇信息及同步模式信息,能夠通過(guò)由各單元處理器事先將信息寫(xiě)入到對(duì)應(yīng)的同步控制部的同步寄存器中來(lái)設(shè)定,所以各單元處理器無(wú)需為了設(shè)定而持續(xù)發(fā)出信號(hào)。
這里,也可以是,某一單元處理器通過(guò)執(zhí)行包含確定了上述同步選擇信息及上述同步模式信息的信息的同步指令,將同步請(qǐng)求信號(hào)輸出到對(duì)應(yīng)的同步控制部,并對(duì)所指定的同步控制部設(shè)定該同步選擇信息及該同步模式。
通過(guò)該結(jié)構(gòu),能夠用單指令來(lái)進(jìn)行同步請(qǐng)求信號(hào)的輸出、和對(duì)所指定的同步控制部的同步選擇信息及同步模式信息的設(shè)定。
圖1是多處理器系統(tǒng)1的結(jié)構(gòu)圖。
圖2是同步控制部S0的結(jié)構(gòu)圖。
圖3是同步允許部201的邏輯電路結(jié)構(gòu)圖。
圖4是使多處理器系統(tǒng)1執(zhí)行分層并行處理的情況下的時(shí)序圖。
圖5是包含同步選擇信號(hào)字段的同步指令的格式圖。
圖6是同步指令和同步選擇表的圖。
圖7是同步控制部S0X的結(jié)構(gòu)圖。
圖8是同步允許部801的邏輯電路結(jié)構(gòu)圖。
圖9是使多處理器系統(tǒng)1X執(zhí)行分層并行處理的情況下的時(shí)序圖。
圖10是包含同步選擇信號(hào)字段及同步模式位的同步指令的格式圖。
圖11是同步控制部S0Y的結(jié)構(gòu)圖。
圖12是同步控制部S0Z的結(jié)構(gòu)圖。
圖13是現(xiàn)有的多處理器系統(tǒng)1500的結(jié)構(gòu)圖。
圖14是各單元處理器PE0~PE4執(zhí)行的分層并行處理的流程圖。
標(biāo)號(hào)說(shuō)明
1、1500 多處理器系統(tǒng)2、1501 同步總線3 共享總線4 共享存儲(chǔ)器200 同步寄存器201、801、1301、1401 同步允許部800、1300 同步信號(hào)輸出部802 同步選擇寄存器803、1302 同步模式寄存器PE0~PE4、PE0X、PE0Y、PE0Z 單元處理器S0~S4、S0X、S0Y、S0Z 同步控制部具體實(shí)施方式
以下,用附圖來(lái)說(shuō)明本發(fā)明一實(shí)施方式。
<結(jié)構(gòu)>
圖1是多處理器系統(tǒng)1的結(jié)構(gòu)圖。
多處理器系統(tǒng)1包含5個(gè)單元處理器PE0~PE4;對(duì)應(yīng)于各單元處理器PE0~PE4而設(shè)的同步控制部S0~S4;連接各同步控制部S0~S4的同步總線2;以及連接各單元處理器PE0~PE4、各同步控制部S0~S4及共享存儲(chǔ)器的共享總線3。
同步總線2由與單元處理器的數(shù)目相同的5根信號(hào)線組成。
各單元處理器PE0~PE4和對(duì)應(yīng)的各同步控制部S0~S4分別通過(guò)SYNCSET信號(hào)線、SYNCREQ信號(hào)線及SYNCACK信號(hào)線相連。
在共享存儲(chǔ)器4上,映射著保持各同步控制部S0~S4的同步選擇信息的區(qū)域。
同步選擇信息是從最高位起與各個(gè)同步信號(hào)SYNC4、SYNC3、SYNC2、SYNC1、SYNC0對(duì)應(yīng)的5位二進(jìn)制數(shù)的信息,通過(guò)由某一個(gè)單元處理器寫(xiě)入到共享存儲(chǔ)器4中來(lái)設(shè)定。
圖2是作為各同步控制部的代表的同步控制部S0的結(jié)構(gòu)圖。
同步控制部S1~S4只有相連接的單元處理器、信號(hào)線不同,是同樣的結(jié)構(gòu),所以省略其說(shuō)明。
同步控制部S0在其內(nèi)部包括同步寄存器200、同步允許部201。
在同步寄存器200上,連接著SYNCSET信號(hào)線及SYNC0信號(hào)線,在同步允許部201上,連接著SYNC0~SYNC4信號(hào)線(同步總線2)、共享總線3、SYNCREQ信號(hào)線及SYNCACK信號(hào)線。
SYNCSET信號(hào)線是用于將單元處理器PE0設(shè)定的值通知給同步寄存器200的信號(hào)線。
如果同步寄存器200保持的值是1,則同步控制部S0將SYNC0信號(hào)線設(shè)為斷言狀態(tài)并輸出;如果保持的值是0,則將SYNC0信號(hào)線設(shè)為解除斷言狀態(tài)并輸出。
SYNCREQ信號(hào)線是用于將單元處理器PE0執(zhí)行了同步指令時(shí)斷言的同步請(qǐng)求信號(hào)通知給對(duì)應(yīng)的同步控制部S0的信號(hào)線。
同步允許部201通過(guò)將來(lái)自SYNCREQ信號(hào)線的同步請(qǐng)求信號(hào)作為輸入,從SYNC0~SYNC4信號(hào)線接收來(lái)自各同步控制部的同步信號(hào),經(jīng)共享總線3來(lái)讀入寫(xiě)入到共享存儲(chǔ)器4中的同步選擇信息SYNCSEL0,用接收到的各同步信號(hào)、同步選擇信息SYNCSEL0、以及同步請(qǐng)求信號(hào)進(jìn)行邏輯運(yùn)算,從而將0(解除斷言)或1(斷言)的同步允許信號(hào)經(jīng)SYNCACK信號(hào)線輸出到單元處理器PE0。
各單元處理器PE0~PE4在斷言了同步請(qǐng)求信號(hào)后、直至同步允許信號(hào)被斷言的期間,設(shè)為同步等待而停止執(zhí)行處理。
圖3是同步允許部201的邏輯電路結(jié)構(gòu)圖。
向虛線包圍部分300所示的各OR(“或”)電路元件中分別輸入從各同步控制部接收到的同步信號(hào)(SYNC0~SYNC4)、和讀入的同步選擇信息SYNCSEL0的各位(記作SYNCSEL
、SYNCSEL[1]、SYNCSEL[2]、SYNCSEL[3]、SYNCSEL[4])的反轉(zhuǎn)值。
然后,各OR電路元件取邏輯“和”的各個(gè)結(jié)果被輸入到線“AND”電路元件301中。然后,將線“AND”電路元件301的輸出和同步請(qǐng)求信號(hào)輸入到“AND”電路元件302中,將其結(jié)果輸出到SYNCACK信號(hào)線。
<動(dòng)作>
這里,用時(shí)序圖來(lái)說(shuō)明具體動(dòng)作。
圖4是使多處理器系統(tǒng)1執(zhí)行背景技術(shù)中描述過(guò)的圖14所示的分層并行處理的情況下的時(shí)序圖。
按該圖所示的各時(shí)間T1~T7來(lái)分別說(shuō)明各單元處理器PE0~PE4及同步控制部S0~S4的動(dòng)作。
<時(shí)間T1>
單元處理器PE0從時(shí)間T1起開(kāi)始應(yīng)用的處理,對(duì)共享存儲(chǔ)器4進(jìn)行將同步選擇信息SYNCSEL0~SYNCSEL4都設(shè)為“00001”的設(shè)定。在與單元處理器PE0對(duì)應(yīng)的同步控制部S0的同步寄存器中,設(shè)定了缺省的值0,所以同步信號(hào)SYNC0仍然是解除斷言。
單元處理器PE1~PE4在時(shí)間T1分別對(duì)對(duì)應(yīng)的同步控制部S1~S4的同步寄存器設(shè)定值1,斷言同步請(qǐng)求信號(hào)。
同步控制部S1~S4的同步寄存器都被設(shè)定了1的值,所以斷言同步信號(hào)SYNC1~4。此外,同步選擇信息SYNCSEL0~SYNCSEL4都被設(shè)定為“00001”,與單元處理器PE0對(duì)應(yīng)的同步控制部S0未斷言同步信號(hào)SYNC0,所以輸入的同步請(qǐng)求信號(hào)被斷言的同步控制部S1~S4,不斷言同步允許信號(hào)。
<時(shí)間T2>
在時(shí)間T2緊前、即開(kāi)始進(jìn)程A及進(jìn)程B前,單元處理器PE0對(duì)共享存儲(chǔ)器4進(jìn)行將同步選擇信息SYNCSEL3設(shè)為“01000”的設(shè)定,開(kāi)始進(jìn)程A的處理。
與單元處理器PE3對(duì)應(yīng)的同步控制部S3斷言了同步信號(hào)SYNC3,而且同步選擇信息SYNCSEL3被設(shè)定為“01000”,從單元處理器PE3斷言了同步請(qǐng)求信號(hào),所以同步控制部S3的同步允許部斷言同步允許信號(hào)。由此,單元處理器PE3開(kāi)始進(jìn)程B的處理。
同步控制部S3斷言了同步允許信號(hào)后,立即解除斷言同步信號(hào)SYNC3。
在時(shí)間T2,單元處理器PE1、PE2、PE4維持同步等待狀態(tài)。
<時(shí)間T3>
在時(shí)間T3緊前、即開(kāi)始線程A、B、C前,單元處理器PE0對(duì)共享存儲(chǔ)器4進(jìn)行將同步選擇信息SYNCSEL1設(shè)為“00010”、將同步選擇信息SYNCSEL2設(shè)為“00100”的設(shè)定,開(kāi)始線程A的處理。
與單元處理器PE1對(duì)應(yīng)的同步控制部S1斷言了同步信號(hào)SYNC1,而且同步選擇信息SYNCSEL1被設(shè)定為“00010”,從單元處理器PE1斷言了同步請(qǐng)求信號(hào),所以同步控制部S1的同步允許部斷言同步允許信號(hào)。由此,單元處理器PE1開(kāi)始線程B的處理。
同步控制部S1斷言了同步允許信號(hào)后,立即解除斷言同步信號(hào)SYNC1。
與單元處理器PE2對(duì)應(yīng)的同步控制部S2斷言了同步信號(hào)SYNC2,而且同步選擇信息SYNCSEL2被設(shè)定為“00100”,從單元處理器PE2斷言了同步請(qǐng)求信號(hào),所以同步控制部S2的同步允許部斷言同步允許信號(hào)。由此,單元處理器PE2開(kāi)始線程C的處理。
同步控制部S2斷言了同步允許信號(hào)后,立即解除斷言同步信號(hào)SYNC2。
在時(shí)間T3,單元處理器PE4維持同步等待狀態(tài)。
<時(shí)間T4>
在時(shí)間T4緊前、即開(kāi)始線程D、E前,單元處理器PE3對(duì)共享存儲(chǔ)器4進(jìn)行將同步選擇信息SYNCSEL4設(shè)為“10000”的設(shè)定,開(kāi)始線程D的處理。
與單元處理器PE4對(duì)應(yīng)的同步控制部S4斷言了同步信號(hào)SYNC4,而且同步選擇信息SYNCSEL4被設(shè)定為“10000”,從單元處理器PE4斷言了同步請(qǐng)求信號(hào),所以同步控制部S4的同步允許部斷言同步允許信號(hào)。由此,單元處理器PE4開(kāi)始線程E的處理。
同步控制部S4斷言了同步允許信號(hào)后,立即解除斷言同步信號(hào)SYNC4。
<時(shí)間T5>
在時(shí)間T5前,單元處理器PE0結(jié)束線程A的處理,并將SYNCSEL0設(shè)定為“00110”,斷言同步請(qǐng)求信號(hào)。此時(shí),同步信號(hào)SYNC0的值不被設(shè)定為1,仍然是0,所以同步信號(hào)SYNC0仍然被解除斷言。
此外,單元處理器PE2也在時(shí)間T5前結(jié)束線程C的處理,并將SYNCSEL0設(shè)定為“00000”,斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE2將同步信號(hào)SYNC2的值設(shè)定為1,所以同步控制部S2斷言同步信號(hào)SYNC2。
在時(shí)間T5緊前,單元處理器PE1結(jié)束線程B的處理,并將SYNCSEL1設(shè)定為“00000”,在時(shí)間T5斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE1將同步信號(hào)SYNC1的值設(shè)定為1,所以同步控制部S1斷言同步信號(hào)SYNC1。
在時(shí)間T5,由于同步信號(hào)SYNC1、SYNC2被斷言,所以同步控制部S0斷言同步允許信號(hào),收到它的單元處理器PE0開(kāi)始進(jìn)程A的處理。
<時(shí)間T6>
在時(shí)間T6前,單元處理器PE3結(jié)束線程D的處理,并將SYNCSEL3設(shè)定為“10000”,斷言同步請(qǐng)求信號(hào)。此時(shí),同步信號(hào)SYNC3的值不被設(shè)定為1,仍然是0,所以同步信號(hào)SYNC3仍然被解除斷言。
在時(shí)間T6緊前,單元處理器PE4結(jié)束線程E的處理,并將SYNCSEL4設(shè)定為“00000”,在時(shí)間T6斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE4將同步信號(hào)SYNC4的值設(shè)定為1,所以同步控制部S4斷言同步信號(hào)SYNC4。
在時(shí)間T6,由于同步信號(hào)SYNC4被斷言,所以同步控制部S3斷言同步允許信號(hào),收到它的單元處理器PE3開(kāi)始進(jìn)程B的處理。
<時(shí)間T7>
在時(shí)間T7前,單元處理器PE0結(jié)束進(jìn)程A的處理,并將SYNCSEL0設(shè)定為“01000”,斷言同步請(qǐng)求信號(hào)。此時(shí),同步信號(hào)SYNC0的值不被設(shè)定為1,仍然是0,所以同步信號(hào)SYNC0仍然被解除斷言。
在時(shí)間T7緊前,單元處理器PE3結(jié)束進(jìn)程B的處理,并將SYNCSEL3設(shè)定為“00000”,在時(shí)間T7斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE3將同步信號(hào)SYNC3的值設(shè)定為1,所以同步控制部S3斷言同步信號(hào)SYNC3。
在時(shí)間T7,由于同步信號(hào)SYNC3被斷言,所以同步控制部S0斷言同步允許信號(hào),收到它的單元處理器PE0開(kāi)始應(yīng)用的處理。
<效果>
采用以上所述的多處理器系統(tǒng)1,不依賴(lài)于表示各單元處理器的實(shí)際的同步等待的、斷言的同步請(qǐng)求信號(hào)的輸出,就能夠按照與同步控制部對(duì)應(yīng)的單元處理器接著要執(zhí)行的處理,來(lái)設(shè)定該同步控制部要發(fā)送的同步信號(hào)的值,所以,在并行執(zhí)行上述應(yīng)用層、進(jìn)程層、線程層各層的處理的情況下,在線程層的處理之后、等待進(jìn)行同層的處理的其他單元處理器的處理,所以進(jìn)行進(jìn)程層的處理的單元處理器例如單元處理器PE3進(jìn)行設(shè)定,使得即使單元處理器PE3結(jié)束了線程層的處理,對(duì)應(yīng)的同步控制部S3也不斷言同步信號(hào),如果單元處理器PE3結(jié)束了進(jìn)程層的處理,則斷言同步信號(hào),以便向進(jìn)行應(yīng)用層的處理的單元處理器PE0通知進(jìn)程層的處理已結(jié)束。
由此,能夠?qū)崿F(xiàn)分層并行處理,而不會(huì)發(fā)生在單元處理器間不能正確取得同步的問(wèn)題。
其中,在上述多處理器系統(tǒng)1的動(dòng)作中,某一個(gè)單元處理器在執(zhí)行斷言同步請(qǐng)求信號(hào)的同步指令前設(shè)定了同步選擇信息,但是同步選擇信息和同步信號(hào)的值往往在同一定時(shí)變更,所以也可以在同步指令中設(shè)置同步選擇信號(hào)字段。
圖5是包含同步選擇信號(hào)字段的同步指令的格式圖。
將同步指令的指令長(zhǎng)度設(shè)為32位,將低5位作為同步選擇信號(hào)字段。
也可以使某一個(gè)單元處理器執(zhí)行了這種同步指令后,將同步選擇信號(hào)字段的值作為指定的同步控制部的同步選擇信息,設(shè)定到共享存儲(chǔ)器4中。
此外,考慮單元處理器數(shù)為5個(gè)以上的情況,也可以將低10位分配為同步選擇信號(hào)字段。再者,在單元處理器數(shù)為32臺(tái)以上、不能容納在同步指令的指令長(zhǎng)度中的情況下,也可以如圖6所示準(zhǔn)備與單元處理器數(shù)相同的位寬度的同步選擇表,用同步指令的低位對(duì)該表進(jìn)行尋址來(lái)選擇同步選擇信息。
此外,對(duì)于未實(shí)現(xiàn)上述同步指令的單元處理器,如果是按次序(in-order)地執(zhí)行對(duì)數(shù)據(jù)存儲(chǔ)器的加載/存儲(chǔ)指令、并通過(guò)存儲(chǔ)器存取等待來(lái)互鎖的單元處理器,則可以用加載/存儲(chǔ)指令來(lái)取代同步指令。例如,通過(guò)預(yù)先為同步控制部分配32位存儲(chǔ)空間上的地址,將用存儲(chǔ)指令向其進(jìn)行的存儲(chǔ)器請(qǐng)求(strobe選通)作為同步請(qǐng)求信號(hào),將存儲(chǔ)數(shù)據(jù)作為同步選擇信息而輸出到同步控制部,將同步允許信號(hào)作為存儲(chǔ)器確認(rèn)而返回給單元處理器,能夠使存儲(chǔ)指令起同步指令的功能。
<變形例1>
圖7是變形例1的多處理器系統(tǒng)1X(未圖示)的同步控制部S0X的結(jié)構(gòu)圖。
多處理器系統(tǒng)1X基本上與圖1所示的多處理器系統(tǒng)1結(jié)構(gòu)相同,但是各單元處理器PE0X~PE4X和各同步控制部S0X~S4X之間的連接關(guān)系不同,同步控制部S0X~S4X的內(nèi)部結(jié)構(gòu)也不同。
作為同步控制部S0X~S4X的代表,只說(shuō)明同步控制部S0X。
<變形例1的結(jié)構(gòu)>
同步控制部S0X在其內(nèi)部包括同步信號(hào)輸出部800、同步允許部801、同步選擇寄存器802及同步模式寄存器803。
與上述同步控制部S0的不同點(diǎn)在于由某一個(gè)單元處理器寫(xiě)入到共享存儲(chǔ)器4中的同步信號(hào)SYNC0的值被輸入到與共享總線2相連的同步信號(hào)輸出部800中;以及包括同步選擇寄存器802和同步模式寄存器803。
在同步信號(hào)輸出部800上連接著共享總線3,在同步允許部801上連接著SYNC0~SYNC4信號(hào)線(同步總線2)、SYNCREQ信號(hào)線及SYNCACK信號(hào)線。
此外,SYNCMODE0信號(hào)線被連接在同步模式寄存器803上,SYNCSEL0信號(hào)線被連接在同步選擇寄存器802上。
同步信號(hào)輸出部800經(jīng)共享總線2輸入由某一個(gè)單元處理器寫(xiě)入到共享存儲(chǔ)器4中的SYNC0的值,如果該值是1,則將SYNC0信號(hào)線設(shè)為斷言狀態(tài)并輸出,如果是0,則將SYNC0信號(hào)線設(shè)為解除斷言狀態(tài)并輸出。
SYNCREQ信號(hào)線是在單元處理器PE0執(zhí)行了同步指令時(shí)被斷言的信號(hào)線。
SYNCMODE0信號(hào)線是將從單元處理器PE0設(shè)定的同步模式信息通知給同步模式寄存器803的信號(hào)線。
SYNCSEL0信號(hào)線是將從單元處理器PE0設(shè)定的同步選擇信息通知給同步選擇寄存器802的信號(hào)線。
同步允許部801通過(guò)用從SYNCREQ信號(hào)線輸入的同步請(qǐng)求信號(hào)、經(jīng)SYNC0~SYNC4信號(hào)線接收到的來(lái)自各同步控制部的同步信號(hào)、被寫(xiě)入到同步模式寄存器803中的同步模式信息SYNCMODE0、以及被寫(xiě)入到同步選擇寄存器802中的同步選擇信息SYNCSEL0進(jìn)行邏輯運(yùn)算,從而將0(解除斷言)或1(斷言)的同步允許信號(hào)經(jīng)SYNCACK信號(hào)線輸出到單元處理器PE0X。
圖8是同步允許部801的邏輯電路結(jié)構(gòu)圖。
向虛線包圍部分900所示的各XOR(“異或”)電路元件中分別輸入從各同步控制部接收到的同步信號(hào)(SYNC0~SYNC4)和同步模式信息SYNCMODE0。然后,由各XOR電路元件取了“異或”的各個(gè)結(jié)果,被輸入到虛線包圍部分901所示的各OR電路元件中。
向各OR電路元件中還輸入同步選擇信息SYNCSEL0的各位(記作SYNCSEL
、SYNCSEL[1]、SYNCSEL[2]、SYNCSEL[3]、SYNCSEL[4])的反轉(zhuǎn)值。
然后,由各OR電路元件取了邏輯“和”的各個(gè)結(jié)果被輸入到線“AND”電路元件902中。然后,將線“AND”電路元件902的輸出和同步請(qǐng)求信號(hào)輸入到“AND”電路元件903中,將其結(jié)果輸出到SYNCACK信號(hào)線。
這里說(shuō)明同步模式信息的作用同步模式信息是0或1的值,在同步模式信息為0的情況下,同步信號(hào)以原來(lái)的值通過(guò)XOR電路元件;而在同步模式信息為1的情況下,同步信號(hào)在通過(guò)XOR電路元件時(shí)其值被反轉(zhuǎn)。
因此,通過(guò)使同步模式信息為0,如果在同步選擇信息SYNC0中,與為1的位對(duì)應(yīng)的同步信號(hào)是1,則可以斷言同步允許信號(hào);相反,通過(guò)使同步模式信息為1,如果在同步選擇信息SYNC0中,與為1的位對(duì)應(yīng)的同步信號(hào)是0,則可以斷言同步允許信號(hào),因此,可以進(jìn)行下述設(shè)定在想看到選擇出的同步信號(hào)從解除斷言變?yōu)閿嘌缘亩〞r(shí)的情況下使同步模式信息為0;相反,在想看到從斷言變?yōu)榻獬龜嘌缘亩〞r(shí)的情況下使同步模式信息為1。
<變形例1的動(dòng)作>
這里,用流程圖來(lái)說(shuō)明具體動(dòng)作。
圖9是使多處理器系統(tǒng)1執(zhí)行背景技術(shù)中描述過(guò)的圖14所示的分層并行處理的情況下的時(shí)序圖。
按該圖所示的各時(shí)間T1~T7來(lái)分別說(shuō)明各單元處理器PE0X~PE4X及同步控制部S0X~S4X的動(dòng)作。
<時(shí)間T1>
單元處理器PE0X從時(shí)間T1起開(kāi)始應(yīng)用的處理,對(duì)共享存儲(chǔ)器4進(jìn)行設(shè)定,將同步信號(hào)SYNC0設(shè)為0、將SYNC1設(shè)為1、將SYNC2設(shè)為0、將SYNC3設(shè)為1、將SYNC4設(shè)為1,對(duì)對(duì)應(yīng)的同步控制部S0X的同步選擇寄存器進(jìn)行將同步選擇信息SYNCSEL0設(shè)為“00000”的設(shè)定,對(duì)同步模式寄存器進(jìn)行將同步模式信息設(shè)為0的設(shè)定。
單元處理器PE1X在時(shí)間T1對(duì)對(duì)應(yīng)的同步控制部S1X的同步選擇寄存器設(shè)定“00010”作為同步選擇信息,對(duì)同步模式寄存器設(shè)定1作為同步模式信息,斷言同步請(qǐng)求信號(hào)。
單元處理器PE2X在時(shí)間T1對(duì)對(duì)應(yīng)的同步控制部S2X的同步選擇寄存器設(shè)定“00010”作為同步選擇信息,對(duì)同步模式寄存器設(shè)定1作為同步模式信息,斷言同步請(qǐng)求信號(hào)。
單元處理器PE3X在時(shí)間T1對(duì)對(duì)應(yīng)的同步控制部S3X的同步選擇寄存器設(shè)定“01000”作為同步選擇信息,對(duì)同步模式寄存器設(shè)定1作為同步模式信息,斷言同步請(qǐng)求信號(hào)。
單元處理器PE4X在時(shí)間T1對(duì)對(duì)應(yīng)的同步控制部S4X的同步選擇寄存器設(shè)定“10000”作為同步選擇信息,對(duì)同步模式寄存器設(shè)定1作為同步模式信息,斷言同步請(qǐng)求信號(hào)。
由于向同步信號(hào)輸出部中輸入了SYNC0的值0,所以同步控制部S0X解除斷言同步信號(hào)SYNC0。
由于向同步信號(hào)輸出部中輸入了SYNC1的值1,所以同步控制部S1X斷言同步信號(hào)SYNC1。
由于向同步信號(hào)輸出部中輸入了SYNC2的值0,所以同步控制部S2X解除斷言同步信號(hào)SYNC2。
由于向同步信號(hào)輸出部中輸入了SYNC3的值1,所以同步控制部S3X斷言同步信號(hào)SYNC3。
由于向同步信號(hào)輸出部中輸入了SYNC4的值1,所以同步控制部S4X斷言同步信號(hào)SYNC4。
由于對(duì)同步模式寄存器設(shè)定了0的值,所以只要對(duì)同步選擇寄存器設(shè)定的待選擇的同步信號(hào)不被斷言(1),同步控制部S0X就不斷言同步允許信號(hào)。
由于都對(duì)同步模式寄存器設(shè)定了1的值,所以只要對(duì)同步選擇寄存器設(shè)定的待選擇的同步信號(hào)不被解除斷言(0),同步控制部S1X~S4X就不斷言同步允許信號(hào)。
<時(shí)間T2>
在時(shí)間T2,單元處理器PE0X對(duì)共享存儲(chǔ)器4進(jìn)行將同步信號(hào)SYNC3的值設(shè)為0的設(shè)定,開(kāi)始進(jìn)程A的處理。
同步控制部S3X的同步信號(hào)輸出部根據(jù)經(jīng)共享總線2輸入的同步信號(hào)SYNC3的值0,來(lái)解除斷言同步信號(hào)SYNC3。同步控制部S3X的同步允許部接受該同步信號(hào)SYNC3的解除斷言,并斷言同步允許信號(hào)。
由此,單元處理器PE3X開(kāi)始進(jìn)程B的處理。
在時(shí)間T2,單元處理器PE1X、PE2X、PE4X維持同步等待狀態(tài)。
<時(shí)間T3>
在時(shí)間T3,單元處理器PE0X對(duì)共享存儲(chǔ)器4進(jìn)行將同步信號(hào)SYNC1的值設(shè)為0的設(shè)定,開(kāi)始線程A的處理。
同步控制部S1X的同步信號(hào)輸出部根據(jù)經(jīng)共享總線2輸入的同步信號(hào)SYNC1的值0,來(lái)解除斷言同步信號(hào)SYNC1。同步控制部S1X和同步控制部S2X各自的同步允許部接受該同步信號(hào)SYNC1的解除斷言,各同步允許部斷言同步允許信號(hào)。
由此,單元處理器PE1X開(kāi)始線程B的處理,而單元處理器PE2X開(kāi)始線程C的處理。
在時(shí)間T3,單元處理器PE4X維持同步等待狀態(tài)。
<時(shí)間T4>
在時(shí)間T4,單元處理器PE3X對(duì)共享存儲(chǔ)器4進(jìn)行將同步信號(hào)SYNC4的值設(shè)為0的設(shè)定,開(kāi)始線程D的處理。
同步控制部S4X的同步信號(hào)輸出部根據(jù)經(jīng)共享總線2輸入的同步信號(hào)SYNC4的值0,來(lái)解除斷言同步信號(hào)SYNC4。同步控制部S4X的同步允許部接受該同步信號(hào)SYNC4的解除斷言,并斷言同步允許信號(hào)。
由此,單元處理器PE4X開(kāi)始線程E的處理。
<時(shí)間T5>
在時(shí)間T5前,單元處理器PE0X結(jié)束線程A的處理,并將SYNCSEL0設(shè)定為“00110”,斷言同步請(qǐng)求信號(hào)。此時(shí),同步信號(hào)SYNC0的值不被設(shè)定為1,仍然是0,所以同步信號(hào)SYNC0仍然被解除斷言。
此外,單元處理器PE2X也在時(shí)間T5前結(jié)束線程C的處理,并斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE2X對(duì)共享存儲(chǔ)器2將同步信號(hào)SYNC2的值設(shè)定為1,所以同步控制部S2X斷言同步信號(hào)SYNC2。
在時(shí)間T5,單元處理器PE1X結(jié)束線程B的處理,并斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE1X對(duì)共享存儲(chǔ)器2將同步信號(hào)SYNC1的值設(shè)定為1,所以同步控制部S1X斷言同步信號(hào)SYNC1。
在時(shí)間T5,由于同步信號(hào)SYNC1、SYNC2被斷言,所以同步控制部S0X斷言同步允許信號(hào),收到它的單元處理器PE0X開(kāi)始進(jìn)程A的處理。
<時(shí)間T6>
在時(shí)間T6前,單元處理器PE3X結(jié)束線程D的處理,并斷言同步請(qǐng)求信號(hào)。此時(shí),同步信號(hào)SYNC3的值不被設(shè)定為1,仍然是0,所以同步信號(hào)SYNC3仍然被解除斷言。
在時(shí)間T6,單元處理器PE4X結(jié)束線程E的處理,并斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE4X將同步信號(hào)SYNC4的值設(shè)定為1,所以同步控制部S4X斷言同步信號(hào)SYNC4。
在時(shí)間T6,由于同步信號(hào)SYNC4被斷言,所以同步控制部S3X斷言同步允許信號(hào),收到它的單元處理器PE3X開(kāi)始進(jìn)程B的處理。
<時(shí)間T7>
在時(shí)間T7前,單元處理器PE0X結(jié)束進(jìn)程A的處理,并斷言同步請(qǐng)求信號(hào)。此時(shí),同步信號(hào)SYNC0的值不被設(shè)定為1,仍然是0,所以同步信號(hào)SYNC0仍然被解除斷言。
在時(shí)間T7,單元處理器PE3X結(jié)束進(jìn)程B的處理,并斷言同步請(qǐng)求信號(hào)。此時(shí),單元處理器PE3X將同步信號(hào)SYNC3的值設(shè)定為1,所以同步控制部S3X斷言同步信號(hào)SYNC3。
在時(shí)間T7,由于同步信號(hào)SYNC3被斷言,所以同步控制部S0X斷言同步允許信號(hào),收到它的單元處理器PE0X開(kāi)始應(yīng)用的處理。
<變形例1的效果>
以上所述的多處理器系統(tǒng)1X與多處理器系統(tǒng)1相比,能夠大幅度減少其同步控制使用共享存儲(chǔ)器及共享總線2的次數(shù),所以可望取得抑制在單元處理器的數(shù)目增加了的情況下可能發(fā)生的開(kāi)銷(xiāo)的效果。
此外,作為同步指令,也可以采用圖10所示的、包含同步選擇字段和同步模式位的指令格式。
再者,也可以采用圖11及圖12所示的結(jié)構(gòu)的同步控制部。
<變形例2>
圖11是變形例2的多處理器系統(tǒng)1Y(未圖示)的同步控制部S0Y的結(jié)構(gòu)圖。
多處理器系統(tǒng)1Y基本上與多處理器系統(tǒng)1X結(jié)構(gòu)相同,動(dòng)作也相同,但是各單元處理器PE0Y~PE4Y和各同步控制部S0Y~S4Y之間的連接關(guān)系不同,同步控制部S0Y~S4Y的內(nèi)部結(jié)構(gòu)也不同。
因此,將同步控制部S0Y作為同步控制部S0Y~S4Y的代表,只說(shuō)明該不同點(diǎn)。
同步控制部S0Y在其內(nèi)部包括同步信號(hào)輸出部1300、同步允許部1301、同步模式寄存器1302。
與上述同步控制部S0X的不同點(diǎn)是不包括同步選擇寄存器802。
SYNCSEL0信號(hào)線是將從單元處理器PE0Y設(shè)定的同步選擇信息通知給同步允許部1301的信號(hào)線。
同步允許部1301通過(guò)用從SYNCREQ信號(hào)線輸入的同步請(qǐng)求信號(hào)、經(jīng)SYNC0~SYNC4信號(hào)線接收到的來(lái)自各同步控制部的同步信號(hào)、被寫(xiě)入到同步模式寄存器1303中的同步模式信息SYNCMODE0、以及從單元處理器PE0Y直接通知的同步選擇信息SYNCSEL0進(jìn)行邏輯運(yùn)算,從而將0(解除斷言)或1(斷言)的同步允許信號(hào)經(jīng)SYNCACK信號(hào)線輸出到單元處理器PE0Y。
<變形例3>
圖12是變形例3的多處理器系統(tǒng)1Z(未圖示)的同步控制部S0Z的結(jié)構(gòu)圖。
多處理器系統(tǒng)1Z基本上與多處理器系統(tǒng)1X結(jié)構(gòu)相同,動(dòng)作也相同,但是各單元處理器PE0Z~PE4Z和各同步控制部S0Z~S4Z之間的連接關(guān)系不同,同步控制部S0Z~S4Z的內(nèi)部結(jié)構(gòu)也不同。
因此,將同步控制部S0Z作為同步控制部S0Z~S4Z的代表,只說(shuō)明該不同點(diǎn)。
同步控制部S0Z在其內(nèi)部包括同步信號(hào)輸出部1400、同步允許部1401。
與上述同步控制部S0X的不同點(diǎn)是不包括同步選擇寄存器802、同步模式寄存器803。
SYNCSEL0信號(hào)線是將從單元處理器PE0Z輸入的同步選擇信息通知給同步允許部1401的信號(hào)線。
SYNCMODE0信號(hào)線是將從單元處理器PE0Z輸入的同步模式信息通知給同步允許部1401的信號(hào)線。
同步允許部1401通過(guò)用從SYNCREQ信號(hào)線輸入的同步請(qǐng)求信號(hào)、經(jīng)SYNC0~SYNC4信號(hào)線接收到的來(lái)自各同步控制部的同步信號(hào)、以及從單元處理器PE0Z直接通知的同步選擇信息SYNCSEL0及同步模式信息SYNCMODE0進(jìn)行邏輯運(yùn)算,從而將0(解除斷言)或1(斷言)的同步允許信號(hào)經(jīng)SYNCACK信號(hào)線輸出到單元處理器PE0Z。
產(chǎn)業(yè)上的可利用性本發(fā)明對(duì)進(jìn)行并行處理的多處理器系統(tǒng)來(lái)說(shuō)是有用的。
權(quán)利要求
1.一種多處理器系統(tǒng),包含多個(gè)單元處理器、和對(duì)應(yīng)于各單元處理器而設(shè)的多個(gè)同步控制部,其特征在于,某一單元處理器,對(duì)某一同步控制部,按照與該同步控制部對(duì)應(yīng)的單元處理器接著要執(zhí)行的處理,設(shè)定該同步控制部要發(fā)送的同步信號(hào)的值、和選擇接收到的同步信號(hào)時(shí)所用的同步選擇信息;各單元處理器,在開(kāi)始與其他單元處理器取得同步所需的某處理之前,向?qū)?yīng)的同步控制部輸出同步請(qǐng)求信號(hào),并在從該同步控制部輸入同步允許信號(hào)之前停止執(zhí)行該處理;各同步控制部,為了相互發(fā)送接收上述設(shè)定的同步信號(hào)而被連接;包括同步允許單元,在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),并且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,該同步允許單元向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
2.如權(quán)利要求1所述的多處理器系統(tǒng),其特征在于,上述多處理器系統(tǒng)包含共享存儲(chǔ)器,該共享存儲(chǔ)器可從各單元處理器及各同步控制部存取,并映射有保持各同步控制部的同步選擇信息的區(qū)域;各同步控制部包括通過(guò)專(zhuān)用線與對(duì)應(yīng)的單元處理器相連接的同步寄存器;各單元處理器按照接著要執(zhí)行的處理,對(duì)該同步寄存器設(shè)定同步信號(hào)的值。
3.如權(quán)利要求1所述的多處理器系統(tǒng),其特征在于,某一單元處理器通過(guò)執(zhí)行包含確定了同步選擇信息的信息的同步指令,將同步請(qǐng)求信號(hào)輸出到對(duì)應(yīng)的同步控制部,并對(duì)指定的同步控制部設(shè)定該同步選擇信息。
4.如權(quán)利要求1所述的多處理器系統(tǒng),其特征在于,某一單元處理器還對(duì)某一同步控制部設(shè)定確定上述規(guī)定的值的同步模式信息;在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)上述設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示由上述同步模式信息所確定的規(guī)定的值的情況下,上述同步允許單元向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
5.如權(quán)利要求4所述的多處理器系統(tǒng),其特征在于,上述多處理器系統(tǒng)包含共享存儲(chǔ)器,該共享存儲(chǔ)器可從各單元處理器及各同步控制部存取,并映射有保持各同步控制部所發(fā)送的同步信號(hào)的值的區(qū)域;各同步控制部,包括通過(guò)專(zhuān)用線與對(duì)應(yīng)的單元處理器相連接的同步寄存器和同步模式寄存器;各單元處理器按照接收的同步信號(hào)中的應(yīng)關(guān)注的同步信號(hào)的值,對(duì)所對(duì)應(yīng)的同步控制部的同步選擇寄存器設(shè)定同步選擇信息,并對(duì)所對(duì)應(yīng)的同步控制部的同步模式寄存器設(shè)定同步模式信息。
6.如權(quán)利要求4所述的多處理器系統(tǒng),其特征在于,某一單元處理器通過(guò)執(zhí)行包含確定了上述同步選擇信息及上述同步模式信息的信息的同步指令,將同步請(qǐng)求信號(hào)輸出到對(duì)應(yīng)的同步控制部,并對(duì)所指定的同步控制部設(shè)定該同步選擇信息及該同步模式。
7.一種同步控制裝置,在包含多個(gè)單元處理器的多處理器系統(tǒng)中,對(duì)應(yīng)于各單元處理器而設(shè)置,其特征在于,包括將表示由某一單元處理器設(shè)定的值的同步信號(hào)發(fā)送到其他的多個(gè)同步控制裝置的單元;從其他的同步控制裝置接收同步信號(hào)的單元;以及同步允許單元,在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,該同步允許單元向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
8.一種同步控制方法,用于多處理器系統(tǒng),該多處理器系統(tǒng)包含多個(gè)單元處理器、和對(duì)應(yīng)于各單元處理器而設(shè)置的多個(gè)同步控制部,其特征在于,某一單元處理器,對(duì)某一同步控制部,按照與該同步控制部對(duì)應(yīng)的單元處理器接著要執(zhí)行的處理,設(shè)定該同步控制部要發(fā)送的同步信號(hào)的值、和選擇接收到的同步信號(hào)時(shí)所用的同步選擇信息;各同步控制部,相互發(fā)送接收由某一單元處理器設(shè)定的值的同步信號(hào);在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,向?qū)?yīng)的單元處理器輸出同步允許信號(hào);各單元處理器在開(kāi)始與其他單元處理器取得同步所需的處理之前,向?qū)?yīng)的同步控制部輸出同步請(qǐng)求信號(hào),并在從該同步控制部輸入了同步允許信號(hào)之前停止執(zhí)行該處理。
全文摘要
本發(fā)明的目的在于提供一種實(shí)現(xiàn)分層并行處理的多處理器系統(tǒng)。這種多處理器系統(tǒng)對(duì)應(yīng)于各單元處理器而設(shè)有同步控制部。各同步控制部為了相互發(fā)送接收按照對(duì)應(yīng)的單元處理器接著要執(zhí)行的處理而設(shè)定的同步信號(hào)而被連接;包括同步允許部,在從對(duì)應(yīng)的單元處理器輸入了同步請(qǐng)求信號(hào),而且接收到的同步信號(hào)中的、根據(jù)由某一單元處理器設(shè)定的同步選擇信息而被選擇出的同步信號(hào)都表示規(guī)定的值的情況下,該同步允許部向?qū)?yīng)的單元處理器輸出同步允許信號(hào)。
文檔編號(hào)G06F9/52GK101048739SQ20058003714
公開(kāi)日2007年10月3日 申請(qǐng)日期2005年10月21日 優(yōu)先權(quán)日2004年10月27日
發(fā)明者西岡伸一郎 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社