專(zhuān)利名稱(chēng):多處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在能夠同時(shí)執(zhí)行多個(gè)線程的一個(gè)處理器和進(jìn)行對(duì)應(yīng)于所述一個(gè)處理 器的處理請(qǐng)求的處理的另一處理器中,高效進(jìn)行這些處理器間的數(shù)據(jù)交換的技術(shù)。
背景技術(shù):
為了進(jìn)行數(shù)字化后的影像數(shù)據(jù)和聲音數(shù)據(jù)等的壓縮、解壓縮等的媒體處理,使用 著專(zhuān)用硬件或高性能的DSP(Digital Signal Processor 數(shù)字信號(hào)處理器)等。近年來(lái),媒體處理的復(fù)雜度升高,圖像大小、聲音的聲道數(shù)等也處于增加的趨勢(shì), 該媒體處理的運(yùn)算量也趨向于增大。因此,要求提高處理效率。因此,例如,在非專(zhuān)利文獻(xiàn)1中,公開(kāi)了通過(guò)同時(shí)執(zhí)行多個(gè)程序來(lái)大幅提高運(yùn)算效 率的高性能多線程處理器。通過(guò)使用該多線程處理器,能夠?qū)崿F(xiàn)媒體處理性能的提高。非專(zhuān)禾丨J 文獻(xiàn) 1 〃 A Multithreaded Processor Architecture with Simultaneous Instruction Issuing" , In Proc. of ISS' 91 !international Symposium on Supercomputing, Fukuoka, Japan, pp. 87—96, November 1991但是,在使用非專(zhuān)利文獻(xiàn)1公開(kāi)的多線程處理器來(lái)實(shí)現(xiàn)媒體處理的方法中,在處 理器間進(jìn)行數(shù)據(jù)的交換時(shí)存在問(wèn)題。具體而言,在為了實(shí)現(xiàn)某個(gè)應(yīng)用程序而由多線程處理器執(zhí)行多個(gè)線程、且另一處 理器根據(jù)來(lái)自多線程處理器所執(zhí)行的一個(gè)線程的處理請(qǐng)求而進(jìn)行處理的情況下,需要在這 些處理器之間進(jìn)行數(shù)據(jù)的交換。在進(jìn)行該交換動(dòng)作時(shí),在接收數(shù)據(jù)側(cè)的線程(請(qǐng)求處理的 線程)不是活動(dòng)狀態(tài)(active)的情況下,需要等待對(duì)方側(cè)成為活動(dòng)狀態(tài),或進(jìn)行用于使對(duì) 方側(cè)變?yōu)榛顒?dòng)狀態(tài)的處理。在該期間,傳送數(shù)據(jù)側(cè)的所述另一處理器為使用資源的狀態(tài),會(huì) 降低處理器的運(yùn)算效率。在圖13中表示具體例。這里,假設(shè)在兩個(gè)邏輯處理器上執(zhí)行不同的線程,擴(kuò)展運(yùn) 算處理器通過(guò)邏輯處理器上的線程的處理委托來(lái)執(zhí)行處理,并將執(zhí)行結(jié)果送回委托源的線程。在時(shí)間t0時(shí)點(diǎn),在第一邏輯處理器中執(zhí)行線程2,在第二邏輯處理器中執(zhí)行線程 1(步驟3500、5501)。在時(shí)間tl,線程1向擴(kuò)展運(yùn)算處理器進(jìn)行處理委托,接收到處理委托的擴(kuò)展運(yùn)算 處理器進(jìn)行對(duì)線程1的處理(步驟S502)。在時(shí)間t2,線程1變?yōu)榉腔顒?dòng),線程3被在第二邏輯處理器上執(zhí)行(步驟S503), 在線程3的執(zhí)行中的時(shí)間t3結(jié)束擴(kuò)展運(yùn)算處理器的處理。在該情況下,由于在執(zhí)行著線程 3,所以擴(kuò)展運(yùn)算處理器不能將處理結(jié)果反映到線程1,因此在第二處理器上的處理對(duì)象從 線程3切換到線程1之前,處于等待狀態(tài)。因此,在時(shí)間t4,即使由線程2發(fā)出處理委托,擴(kuò) 展運(yùn)算處理器也不能接受處理委托。之后,如果在第二邏輯處理器上處理對(duì)象從線程3切換到線程1 (時(shí)間t5),則擴(kuò)展 運(yùn)算處理器將步驟S502中的處理結(jié)果反映到線程1,從線程1的處理釋放(時(shí)間t6)。
5
在時(shí)間t6以后,在第二邏輯處理器中執(zhí)行反映了處理結(jié)果的線程1 (步驟S504)。并且,在時(shí)間t7,擴(kuò)展運(yùn)算處理器接受來(lái)自線程2的處理委托,進(jìn)行對(duì)線程2的處理。這樣,在時(shí)間t3到t5期間,盡管對(duì)線程1的處理已結(jié)束,但由于線程1不是處理 對(duì)象,即沒(méi)有處于能夠反映處理結(jié)果的狀態(tài),因此擴(kuò)展運(yùn)算處理器仍處于沒(méi)有從線程1的 占有中被釋放的狀態(tài),所以運(yùn)算效率下降。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種不會(huì)降低處理效率、而能夠處理多個(gè)線程的多處 理器和處理方法。為了實(shí)現(xiàn)上述的目的,本發(fā)明的多處理器,包括第一處理器,對(duì)多個(gè)線程中的作 為執(zhí)行對(duì)象的規(guī)定個(gè)數(shù)的線程分別分配不同的寄存器文件,并行進(jìn)行所分配的各線程的處 理;以及第二處理器,進(jìn)行按照所述第一處理器的指示的處理,上述多處理器的特征在于, 如果由所述第一處理器進(jìn)行處理委托,則所述第二處理器進(jìn)行按照所述第一處理器的指示 的處理,并將該處理結(jié)果的值的寫(xiě)入請(qǐng)求通知給所述第一處理器;所述第一處理器包括 存儲(chǔ)單元,具有按照所述多個(gè)線程各自分配的區(qū)域;第一控制單元,對(duì)于作為執(zhí)行對(duì)象的各 線程,在該線程從執(zhí)行對(duì)象變?yōu)榉菆?zhí)行對(duì)象的情況下,將分配給該線程的寄存器文件內(nèi)的 值保存到在所述存儲(chǔ)單元中分配的區(qū)域;第二控制單元,控制為按照?qǐng)?zhí)行對(duì)象的一個(gè)線程 所包含的指令,向所述第二處理器進(jìn)行處理委托,如果從所述第二處理器接收到對(duì)該線程 的處理結(jié)果的值的寫(xiě)入請(qǐng)求,則判斷在當(dāng)前時(shí)點(diǎn)該線程是否為執(zhí)行對(duì)象,在判斷為不是執(zhí) 行對(duì)象的情況下,向在所述存儲(chǔ)單元中分配給該線程的區(qū)域的一部分寫(xiě)入所述處理結(jié)果的 值;以及第三控制單元,在線程從非執(zhí)行對(duì)象再次成為執(zhí)行對(duì)象的情況下,將分配給該線程 的區(qū)域內(nèi)的值再次恢復(fù)到所分配的寄存器文件中。根據(jù)該結(jié)構(gòu),多處理器的第一處理器在接收到來(lái)自第二處理器的寫(xiě)入請(qǐng)求的時(shí) 點(diǎn),在向第二處理器委托處理的線程不是執(zhí)行對(duì)象的情況下,將處理結(jié)果的值寫(xiě)入存儲(chǔ)單 元,所以能夠結(jié)束第二處理器對(duì)委托了處理的線程的處理。由此,第一處理器能夠?qū)⑾旅娴?處理委托委托給第二處理器,所以能夠處理多個(gè)線程,而不會(huì)使多處理器處理效率下降。這里,也可以是,所述第二控制單元在對(duì)所述第二處理器委托處理時(shí),將識(shí)別所述 一個(gè)線程的線程標(biāo)識(shí)符輸出給所述第二處理器;所述第二處理器從所述第一處理器接收所 述線程標(biāo)識(shí)符,并進(jìn)行存儲(chǔ);所述第二控制單元如果接收到所述寫(xiě)入請(qǐng)求,則取得存儲(chǔ)在所 述第二處理器中的所述線程標(biāo)識(shí)符,并根據(jù)所取得的線程標(biāo)識(shí)符,確定作為所述判斷對(duì)象 的線程。根據(jù)該結(jié)構(gòu),多處理器的第一處理器在接收到所述寫(xiě)入請(qǐng)求時(shí),從第二處理器取 得對(duì)進(jìn)行了處理委托的線程進(jìn)行識(shí)別的線程標(biāo)識(shí)符,所以能夠可靠地確定判斷對(duì)象的線程。這里,也可以是,所述第二控制單元存儲(chǔ)在所述存儲(chǔ)單元中分配給各線程的區(qū)域 各自的開(kāi)頭地址;所述第二處理器,如果執(zhí)行包含操作碼、第一操作數(shù)以及第二操作數(shù)的指 令,則將所述寫(xiě)入請(qǐng)求通知給所述第一處理器,所述操作碼用于指示傳送所述處理結(jié)果的 值,所述第一操作數(shù)用于指定存儲(chǔ)有所述處理結(jié)果的值的第二處理器內(nèi)的寄存器文件內(nèi)的寄存器,所述第二操作數(shù)用于指定傳送目的地的寄存器文件內(nèi)的寄存器;所述第二控制單 元,在通過(guò)所述判斷而判斷為所述線程標(biāo)識(shí)符所表示的線程為非執(zhí)行對(duì)象的情況下,控制 為根據(jù)對(duì)所述線程標(biāo)識(shí)符所表示的線程分配的區(qū)域的開(kāi)頭地址、以及由所述第二處理器執(zhí) 行的指令所包含的所述第二操作數(shù)所表示的寄存器,確定所述存儲(chǔ)單元中的寫(xiě)入位置,并 向所確定的位置寫(xiě)入存儲(chǔ)在由所述第二處理器執(zhí)行的指令所包含的所述第一操作數(shù)所表 示的寄存器中的所述處理結(jié)果的值;在通過(guò)所述判斷而判斷為所述線程標(biāo)識(shí)符所表示的線 程為執(zhí)行對(duì)象的情況下,控制為在對(duì)應(yīng)的寄存器標(biāo)識(shí)符所表示的寄存器文件中,向所述第 二操作數(shù)所表示的寄存器寫(xiě)入存儲(chǔ)在由所述第二處理器執(zhí)行的指令所包含的所述第一操 作數(shù)所表示的寄存器中的所述處理結(jié)果的值。根據(jù)該結(jié)構(gòu),通過(guò)第二處理器執(zhí)行所述指令,能夠可靠地確定第二處理器內(nèi)的處 理結(jié)果的值的保存位置、和對(duì)進(jìn)行處理委托的線程的寫(xiě)入位置。這里,也可以是,所述第二控制單元,對(duì)于所述多個(gè)線程的各個(gè)線程,將表示該線 程為執(zhí)行對(duì)象還是非執(zhí)行對(duì)象的標(biāo)志和在該線程為執(zhí)行對(duì)象的情況下識(shí)別被分配的寄存 器文件的寄存器標(biāo)識(shí)符對(duì)應(yīng)起來(lái)存儲(chǔ);在所述判斷中,使用與所述線程標(biāo)識(shí)符所表示的線 程對(duì)應(yīng)的標(biāo)志來(lái)進(jìn)行所述判斷。根據(jù)該結(jié)構(gòu),第一處理器通過(guò)使用所述標(biāo)志,能夠可靠地判斷判斷對(duì)象的線程是 否為執(zhí)行對(duì)象。這里,也可以是,所述第二控制單元在向所述第二處理器徑向處理委托時(shí),將識(shí)別 所述一個(gè)線程的線程標(biāo)識(shí)符輸出給所述第二處理器;所述第二處理器從所述第一處理器接 收并存儲(chǔ)所述線程標(biāo)識(shí)符,并在通知所述寫(xiě)入請(qǐng)求時(shí),將所述線程標(biāo)識(shí)符包含在所述寫(xiě)入 請(qǐng)求中通知給所述第一處理器;所述第二控制單元如果接收到所述寫(xiě)入請(qǐng)求,則根據(jù)接收 到的所述寫(xiě)入請(qǐng)求所包含的線程標(biāo)識(shí)符,確定作為所述判斷對(duì)象的線程。根據(jù)該結(jié)構(gòu),多處理器的第一處理器接收包含用于對(duì)進(jìn)行了處理委托的線程進(jìn)行 識(shí)別的線程標(biāo)識(shí)符的所述寫(xiě)入請(qǐng)求,所以能夠可靠地確定判斷對(duì)象的線程。這里,也可以是,所述第二控制單元存儲(chǔ)在所述存儲(chǔ)單元中分配給各線程的區(qū)域 各自的開(kāi)頭地址;所述第二處理器,如果執(zhí)行包含操作碼、第一操作數(shù)、第二操作數(shù)以及線 程標(biāo)識(shí)符的指令,則將包含所述線程標(biāo)識(shí)符的所述寫(xiě)入請(qǐng)求通知給所述第一處理器,所述 操作碼用于指示傳送所述處理結(jié)果的值,所述第一操作數(shù)用于指定存儲(chǔ)有所述處理結(jié)果的 值的第二處理器內(nèi)的寄存器文件內(nèi)的寄存器,所述第二操作數(shù)用于指定傳送目的地的寄存 器文件內(nèi)的寄存器,所述線程標(biāo)識(shí)符用于對(duì)請(qǐng)求處理的線程進(jìn)行識(shí)別;所述第二控制單元 在通過(guò)所述判斷而判斷為所述線程標(biāo)識(shí)符所表示的線程為非執(zhí)行對(duì)象的情況下控制為,根 據(jù)對(duì)所述線程標(biāo)識(shí)符所表示的線程分配的區(qū)域的開(kāi)頭地址、以及由所述第二處理器執(zhí)行的 指令所包含的所述第二操作數(shù)所表示的寄存器,確定所述存儲(chǔ)單元中的寫(xiě)入位置,并向所 確定的位置寫(xiě)入存儲(chǔ)在由所述第二處理器執(zhí)行的指令所包含的所述第一操作數(shù)所表示的 寄存器中的所述處理結(jié)果的值。根據(jù)該結(jié)構(gòu),通過(guò)第二處理器執(zhí)行所述指令,能夠可靠地確定第二處理器內(nèi)的處 理結(jié)果的值的存儲(chǔ)位置、對(duì)進(jìn)行了處理委托的線程的寫(xiě)入位置、和進(jìn)行了處理委托的線程。這里,也可以是,所述多處理器是執(zhí)行影像的解碼處理的處理系統(tǒng);由所述第一處理器處理的各線程進(jìn)行所述解碼處理中的被可變長(zhǎng)編碼的信號(hào)的解碼;由所述第二處理器進(jìn)行的對(duì)應(yīng)于所述指示的處理是與所述解碼處理中的逆量化、逆 頻率變換、運(yùn)動(dòng)補(bǔ)償以及圖像數(shù)據(jù)的加法有關(guān)的處理。根據(jù)該結(jié)構(gòu),由多處理器進(jìn)行的解碼處理能夠不降低處理效率地處理多個(gè)線程。這里,也可以是,所述多處理器是執(zhí)行影像的編碼處理的處理系統(tǒng);由所述第一處 理器處理的各線程進(jìn)行所述編碼處理中的與對(duì)圖像數(shù)據(jù)的可變長(zhǎng)編碼有關(guān)的處理;由所述 第二處理器進(jìn)行的對(duì)應(yīng)于所述指示的處理是與所述編碼處理中的對(duì)編碼對(duì)象的圖像數(shù)據(jù) 的預(yù)測(cè)誤差、量化、頻率變換、運(yùn)動(dòng)補(bǔ)償、運(yùn)動(dòng)檢索、逆量化、逆頻率變換以及圖像數(shù)據(jù)的加 法有關(guān)的處理。根據(jù)該結(jié)構(gòu),多處理器進(jìn)行的編碼處理能夠不降低處理效率地處理多個(gè)線程。
圖1是表示多處理器系統(tǒng)10的結(jié)構(gòu)的圖。圖2是表示控制部111的結(jié)構(gòu)的圖。圖3是表示線程信息表TlOO的數(shù)據(jù)結(jié)構(gòu)的一例的圖。圖4是表示運(yùn)算結(jié)束控制指令TllO的數(shù)據(jù)結(jié)構(gòu)的一例的圖。圖5是表示反映對(duì)象線程活動(dòng)的情況下的數(shù)據(jù)的反映目的地的圖。圖6是表示反映對(duì)象線程不活動(dòng)的情況下的數(shù)據(jù)的反映目的地的圖。圖7是表示運(yùn)算結(jié)束控制指令TllO執(zhí)行時(shí)的處理動(dòng)作的流程圖。圖8是表示執(zhí)行多個(gè)線程的情況下的動(dòng)作的具體例的圖。圖9是表示運(yùn)算結(jié)束控制指令T120的數(shù)據(jù)結(jié)構(gòu)的一例的圖。圖10是表示多處理器系統(tǒng)1000的結(jié)構(gòu)的圖。圖11是表示將多處理器系統(tǒng)10適用于解碼器IOA的情況下的一例的圖。圖12是表示將多處理器系統(tǒng)10適用于編碼器IOB的情況下的一例的圖。圖13是表示在現(xiàn)有技術(shù)中執(zhí)行多個(gè)線程的情況下的動(dòng)作的具體例的圖。
具體實(shí)施例方式1.實(shí)施方式1下面,參照
本發(fā)明的實(shí)施方式1。1. 1 結(jié)構(gòu)圖1表示本發(fā)明的實(shí)施方式1的多處理器系統(tǒng)10的結(jié)構(gòu)。多處理器系統(tǒng)10包括多線程處理器11和擴(kuò)展運(yùn)算處理器12。多線程處理器11是同時(shí)獨(dú)立執(zhí)行最大N(N是2以上的整數(shù))個(gè)指令流(N個(gè)線 程)的處理器。擴(kuò)展運(yùn)算處理器12是通過(guò)來(lái)自多線程處理器11的控制而啟動(dòng),并基于在多線程 處理器11中執(zhí)行中的1個(gè)線程的指示來(lái)執(zhí)行處理的處理器。下面,說(shuō)明這些處理器的結(jié)構(gòu)。(1)多線程處理器11的結(jié)構(gòu)多線程處理器11如圖1所示,包括指令存儲(chǔ)器101、指令解碼器102、N個(gè)指令緩 沖器(第一指令緩沖器103、第二指令緩沖器104、…、第N指令緩沖器10 、N個(gè)寄存器文件(第一寄存器文件106、第二寄存器文件107、…、第N寄存器文件108)、運(yùn)算器組109、 回寫(xiě)(write back)總線110、控制部111、和上下文存儲(chǔ)器112。這里,各指令緩沖器和各寄存器文件一對(duì)一地對(duì)應(yīng),構(gòu)成N個(gè)邏輯處理器。在本實(shí) 施方式1中,設(shè)為由第一指令緩沖器103和第一寄存器文件106構(gòu)成第一邏輯處理器151, 由第二指令緩沖器104和第二寄存器文件107構(gòu)成第二邏輯處理器152,…,由第N指令緩 沖器105和第N寄存器文件108構(gòu)成第N邏輯處理器153。多線程處理器11通過(guò)將多個(gè)線程中最大N個(gè)線程分別分配給不同的邏輯處理器, 實(shí)現(xiàn)并行執(zhí)行最大N個(gè)線程。(1-1)指令存儲(chǔ)器101指令存儲(chǔ)器101保持由N個(gè)邏輯處理器中的某一個(gè)邏輯處理器執(zhí)行的多個(gè)指令流 (線程)。(1- 指令解碼器102指令解碼器102從指令存儲(chǔ)器101中讀出屬于作為執(zhí)行對(duì)象的1個(gè)以上的線程的 指令,進(jìn)行解碼,并寫(xiě)入到被分配了該指令所屬的線程的邏輯處理器的指令緩沖器中。(1-3)第一指令緩沖器103 第N指令緩沖器105第i指令緩沖器(i是1以上N以下的整數(shù),下面相同。)屬于第i邏輯處理器,接 受屬于分配到該第i邏輯處理器的線程的指令,并進(jìn)行保持。(1-4)第一寄存器文件106 第N寄存器文件108第i寄存器文件屬于第i邏輯處理器,是在執(zhí)行第i指令緩沖器所保持的指令時(shí), 保持作為讀出和寫(xiě)入對(duì)象的數(shù)據(jù)的寄存器組。另外,設(shè)各個(gè)寄存器文件的開(kāi)頭地址從0開(kāi)始。(1-5)運(yùn)算器組 109運(yùn)算器組109是包含加法器和乘法器等多個(gè)運(yùn)算器的處理部,并行進(jìn)行各邏輯處 理器的處理。(1-6)回寫(xiě)總線 110回寫(xiě)總線110是用于將來(lái)自運(yùn)算器組109的輸出寫(xiě)回到第一寄存器文件106 第 N寄存器文件108的總線。(1-7)控制部 111控制部111如圖2所示,包括線程控制部160、線程信息存儲(chǔ)部161和處理器控制 部 162。(1-7-1)線程控制部 160線程控制部160管理各線程的活動(dòng)(active)化和非活動(dòng)化。這里,所謂活動(dòng)的線 程是指被確保為占有第i邏輯處理器、即第i指令緩沖器和第i寄存器文件的資源、并處于 能夠在該第i邏輯處理器上立即執(zhí)行的狀態(tài)的線程。所謂非活動(dòng)的線程是指沒(méi)有被確保為 占有任何一個(gè)邏輯處理器的資源的線程。線程控制部160根據(jù)線程切換的原因,來(lái)進(jìn)行線程的非活動(dòng)化和活動(dòng)化。這里,作 為線程切換的原因,可以舉出接收表示活動(dòng)的線程的執(zhí)行時(shí)間達(dá)到一定值的信號(hào)、接收從 其他硬件輸入的事件發(fā)生信號(hào)、以及執(zhí)行指定的指令。線程控制部160如圖2中所示,具有保存部165和恢復(fù)部166,在保存部165中進(jìn)行線程的非活動(dòng)化,在恢復(fù)部166中進(jìn)行線程的活動(dòng)化。線程控制部160例如如果接收到表示活動(dòng)的線程的執(zhí)行時(shí)間達(dá)到一定值的信號(hào), 則將該線程設(shè)為非活動(dòng)化。具體而言,保存部165停止從被決定為非活動(dòng)化對(duì)象的線程(例 如為在第二邏輯處理器上執(zhí)行的線程)的指令存儲(chǔ)器101讀出指令,并且停止從第二指令 緩沖器104發(fā)出指令。并且,保存部165將第二寄存器文件107的內(nèi)容保存到上下文存儲(chǔ) 器112的預(yù)定區(qū)域上。線程控制部160在非活動(dòng)狀態(tài)的線程再次成為執(zhí)行對(duì)象的情況下,進(jìn)行該線程的 活動(dòng)化。具體而言,恢復(fù)部166從上下文存儲(chǔ)器112讀出被定義為活動(dòng)對(duì)象的線程(這里 設(shè)為分配給第二邏輯處理器的線程)所使用的數(shù)據(jù)(值),并恢復(fù)到第二寄存器文件107。 之后,從指令存儲(chǔ)器101讀出對(duì)應(yīng)的指令,并開(kāi)始執(zhí)行。對(duì)于上下文存儲(chǔ)器112上的數(shù)據(jù)的 管理方法,將在后面敘述。線程控制部160在將線程設(shè)為活動(dòng)化和非活動(dòng)化時(shí),進(jìn)行后述的線程信息表TlOO 的更新。(1-7-2)線程信息存儲(chǔ)部161線程信息存儲(chǔ)部161管理各個(gè)線程各自的狀態(tài),具有如圖3所示的線程信息表 T100。線程信息表TlOO具有用于存儲(chǔ)多個(gè)(線程個(gè)數(shù))下述組(條目)的區(qū)域,該組由 線程ID201、有效(Valid)標(biāo)志202、邏輯處理器ID203、線程狀態(tài)標(biāo)志204、和基本地址205 構(gòu)成。線程ID201是表示各條目所保持的線程的信息對(duì)應(yīng)于哪個(gè)線程的ID號(hào)。有效標(biāo)志202是表示各條目所保持的線程的信息是否有效的有效位,“0”表示無(wú) 效的信息,“ 1,,表示有效的信息。邏輯處理器ID203是表示各條目所保持的線程的信息是否在某個(gè)邏輯處理器上 被執(zhí)行著的ID號(hào)。例如,邏輯處理器ID的值“00”表示第一邏輯處理器151,“01”表示第 二邏輯處理器152。線程狀態(tài)標(biāo)志204是表示各條目所保持的線程狀態(tài)的信息?!?0”表示非活動(dòng)狀 態(tài)、“01”表示活動(dòng)狀態(tài)、“10”或“11”表示在活動(dòng)化或非活動(dòng)化的處理過(guò)程中。另外,線程 狀態(tài)標(biāo)志204在線程控制部160中進(jìn)行線程的從活動(dòng)向非活動(dòng)的狀態(tài)變更、或從非活動(dòng)向 活動(dòng)的狀態(tài)變更時(shí),由線程控制部160更新。例如,線程的從活動(dòng)向非活動(dòng)的狀態(tài)變更是由 保存部165進(jìn)行,從非活動(dòng)向活動(dòng)的狀態(tài)變更是由恢復(fù)部166進(jìn)行。基本地址205表示上下文存儲(chǔ)器112內(nèi)的地址,以該地址為開(kāi)頭位置,存儲(chǔ)對(duì)與保 持在條目中的線程ID對(duì)應(yīng)的線程的寄存器值。條目206表示線程ID為“00001”線程1有效,并通過(guò)當(dāng)前邏輯處理器ID “00”和
線程狀態(tài)標(biāo)志,表示在第一邏輯處理器151上執(zhí)行。此外,條目208表示線程ID為“00011 ”的線程3有效,且當(dāng)前處于非活動(dòng)狀態(tài)。另外,如上所述,線程信息表TlOO由線程控制部160更新。例如,在線程1從活動(dòng) 切換為非活動(dòng)的情況下,保存部165將線程1、即與線程ID“00001”對(duì)應(yīng)的線程狀態(tài)標(biāo)志從 “00”更新為表示線程狀態(tài)的切換中的值“ 10”,若切換完成,則線程狀態(tài)標(biāo)志從“ 10”更新為 表示非活動(dòng)狀態(tài)的值“01”。此外,相反,在從非活動(dòng)切換為活動(dòng)的情況下,恢復(fù)部166將線
10程1的線程狀態(tài)標(biāo)志從“01”更新為表示線程狀態(tài)的切換中的值“11”,表示在線程狀態(tài)的切 換中,若切換完成,則將線程狀態(tài)標(biāo)志從“ 11”更新為“00”。進(jìn)一步,例如,在線程3初次分配到邏輯處理器時(shí)(這里,設(shè)為第一邏輯處理器), 線程控制部160追加與線程3對(duì)應(yīng)的條目。在該情況下,條目中包含線程ID“00011 ”、有效 標(biāo)志“ 1 ”、邏輯處理器ID “ 00 ”、線程狀態(tài)標(biāo)志“ 01 ”、和基本地址“ 0x4000000 ”。(1-7-3)處理器控制部162處理器控制部162根據(jù)作為執(zhí)行對(duì)象的一個(gè)線程的指令,向擴(kuò)展運(yùn)算處理器12進(jìn) 行處理委托。具體而言,處理器控制部162按照運(yùn)算器組109中的、執(zhí)行分配給1個(gè)邏輯處 理器的線程的指令的運(yùn)算器所執(zhí)行的指令,向擴(kuò)展運(yùn)算處理器12進(jìn)行處理委托。另外,處 理器控制部162從線程信息表TlOO取得對(duì)請(qǐng)求了處理的該一個(gè)線程進(jìn)行識(shí)別的線程ID,并 將所取得的線程ID輸出給擴(kuò)展運(yùn)算處理器。之后,處理器控制部162如果從擴(kuò)展運(yùn)算處理器12接收與向?qū)U(kuò)展運(yùn)算處理器12 請(qǐng)求了處理的線程的寫(xiě)入有關(guān)的寫(xiě)入請(qǐng)求,則從擴(kuò)展運(yùn)算處理器12取得處理的委托源的 線程的線程ID。這里,所謂寫(xiě)入請(qǐng)求是指若由擴(kuò)展運(yùn)算處理器12執(zhí)行運(yùn)算結(jié)束控制指令 T110,則通知給處理器控制部162的請(qǐng)求。對(duì)于運(yùn)算結(jié)束控制指令TllO的細(xì)節(jié),將在后面 敘述。處理器控制部162使用線程信息表T100,參照包含所取得的線程ID的條目?jī)?nèi)的線 程狀態(tài)標(biāo)志,判斷是否將與該線程ID對(duì)應(yīng)的線程作為執(zhí)行對(duì)象分配了邏輯處理器,即判斷 是活動(dòng)狀態(tài)還是非活動(dòng)狀態(tài)。在判斷為是非活動(dòng)狀態(tài)的情況下,處理器控制部162控制為,將從擴(kuò)展運(yùn)算處理 器12輸出的寫(xiě)入對(duì)象的數(shù)據(jù)寫(xiě)入到由該條目?jī)?nèi)的基本地址和在擴(kuò)展運(yùn)算處理器12中指定 的寄存器確定的上下文存儲(chǔ)器112內(nèi)的地址。另外,向上下文存儲(chǔ)器112的寫(xiě)入不會(huì)對(duì)當(dāng) 前時(shí)點(diǎn)活動(dòng)的線程的執(zhí)行帶來(lái)影響,而通過(guò)硬件的處理并行實(shí)現(xiàn)。通過(guò)這樣的動(dòng)作,可以防 止搶占執(zhí)行活動(dòng)的線程的執(zhí)行時(shí)間而降低處理效率。在判斷為是活動(dòng)狀態(tài)的情況下,處理器控制部162控制為在分配了與該線程ID對(duì) 應(yīng)的線程的邏輯處理器的寄存器文件中,將從擴(kuò)展運(yùn)算處理器12輸出的寫(xiě)入對(duì)象的數(shù)據(jù) 寫(xiě)入到由擴(kuò)展運(yùn)算處理器12指定的地址中。這里,說(shuō)明由擴(kuò)展運(yùn)算處理器12執(zhí)行的運(yùn)算結(jié)束控制指令TllO的數(shù)據(jù)結(jié)構(gòu)。圖4是本實(shí)施方式1的運(yùn)算結(jié)束控制指令TllO的格式,由操作碼301、第一操作數(shù) 302以及第二操作數(shù)303構(gòu)成。操作碼301是指示處理器以使其完成執(zhí)行中的本線程(擴(kuò)展運(yùn)算處理器12)、并 且將本線程(擴(kuò)展運(yùn)算處理器1 的在寄存器文件內(nèi)的數(shù)據(jù)傳送到其他線程(請(qǐng)求源的線 程)的寄存器文件內(nèi)的代碼。第一操作數(shù)302將本線程(擴(kuò)展運(yùn)算處理器)所使用的寄存器文件的寄存器指定 為數(shù)據(jù)傳送源。第二操作數(shù)303將其他線程(請(qǐng)求源的線程)所使用的寄存器文件的寄存器指定 為數(shù)據(jù)傳送目的地。另外,這里設(shè)第二操作數(shù)303是用寄存器號(hào)表示寄存器的操作數(shù)。在請(qǐng)求源的線程為活動(dòng)狀態(tài)的情況下,通過(guò)處理器控制部162的控制,將由第一 操作數(shù)302表示的寄存器中存儲(chǔ)的數(shù)據(jù)(值)寫(xiě)入到由第二操作數(shù)303表示的、邏輯處理
11器內(nèi)的寄存器文件的寄存器中。在請(qǐng)求源的線程為活動(dòng)狀態(tài)的情況下,通過(guò)處理器控制部162的控制,首先使用 線程信息表T100,從包含所取得的線程ID的條目中確定(特別指定)與請(qǐng)求源的線程相對(duì) 應(yīng)的基本地址。根據(jù)所確定的基本地址和由第二操作數(shù)303表示的值(Rd),確定應(yīng)在上下 文存儲(chǔ)器112內(nèi)寫(xiě)入的地址。例如,在用4個(gè)字節(jié)存儲(chǔ)基本地址、且寄存器的大小各為4個(gè) 字節(jié)的情況下,用公式“基本地址+(第二操作數(shù)X4)”來(lái)確定。存儲(chǔ)在由第一操作數(shù)302 表示的寄存器中的數(shù)據(jù)(值)被寫(xiě)入到由所確定的上下文存儲(chǔ)器112上的地址表示的寄存 器中。圖5和圖6是本實(shí)施方式1中的執(zhí)行(發(fā)出)了運(yùn)算結(jié)束控制指令TllO的情況下 的動(dòng)作。另外,這里,為了便于說(shuō)明,設(shè)多線程處理器11僅具有寄存器文件106、107兩個(gè), 線程1向擴(kuò)展運(yùn)算處理器12進(jìn)行處理委托,且在處理委托時(shí)點(diǎn),線程1和線程2分別分配 到寄存器文件106、107。若在擴(kuò)展運(yùn)算處理器12中發(fā)出線程完成指令,則在應(yīng)反映結(jié)果的線程(這里是線 程1)、即對(duì)擴(kuò)展運(yùn)算處理器12進(jìn)行了處理委托的線程1為活動(dòng)的情況下,如圖5所示,在由 第一操作數(shù)302指定的、寄存器文件116內(nèi)的寄存器Rs402中存儲(chǔ)的值通過(guò)處理器控制部 162的控制,傳送(寫(xiě)入)到進(jìn)行了處理委托的線程1所占有的寄存器文件106內(nèi)的、由第 二操作數(shù)303指定的寄存器Rd404中。在應(yīng)反映結(jié)果的線程(這里是線程1)在多線程處理器11上非活動(dòng)的情況下,例 如,在寄存器文件106由線程3占有、寄存器文件107由線程2占有的情況下,如圖6所示, 通過(guò)處理器控制部162的控制,根據(jù)與進(jìn)行了處理委托的線程1對(duì)應(yīng)的上下文存儲(chǔ)器112 內(nèi)的基本地址和由第二操作數(shù)303指定的寄存器Rd404,通過(guò)上述公式確定上下文存儲(chǔ)器 112上的存儲(chǔ)目的地的地址,并且在由第一操作數(shù)302指定的、寄存器文件116內(nèi)的寄存器 RS402中存儲(chǔ)的值被傳送(寫(xiě)入)到所確定的地址中。(1-8)上下文存儲(chǔ)器112上下文存儲(chǔ)器112是保存處于非活動(dòng)狀態(tài)的線程的寄存器組的內(nèi)容的存儲(chǔ)器,對(duì) 各線程分別分配不同的區(qū)域。這里,對(duì)各線程,分別將不同的地址作為基本地址建立對(duì)應(yīng),從而實(shí)現(xiàn)區(qū)域的分 配。(2)擴(kuò)展運(yùn)算處理器12的結(jié)構(gòu)擴(kuò)展運(yùn)算處理器12如圖1所示,包括指令存儲(chǔ)器113、指令解碼器114、指令緩沖 器115、寄存器文件116、運(yùn)算器組117、回寫(xiě)總線118和線程信息存儲(chǔ)部119。(2-1)指令存儲(chǔ)器113指令存儲(chǔ)器113是保持在擴(kuò)展運(yùn)算處理器12中執(zhí)行的指令的存儲(chǔ)器。(2- 指令解碼器114指令解碼器114是從指令存儲(chǔ)器113讀出指令,進(jìn)行解碼,并寫(xiě)入到指令緩沖器 115的處理部。若通過(guò)解碼發(fā)出(執(zhí)行)運(yùn)算結(jié)束控制指令T110,則指令解碼器114將發(fā)出的運(yùn) 算結(jié)束控制指令TllO寫(xiě)入到指令緩沖器115,并且對(duì)多線程處理器11的處理器控制部162 通知寫(xiě)入請(qǐng)求。
(2-3)指令緩沖器115指令緩沖器115是從指令解碼器114接收指令并進(jìn)行保持的存儲(chǔ)部。寄存器文件116是在執(zhí)行保持在指令緩沖器115中的指令時(shí),保持作為讀出和寫(xiě) 入對(duì)象的數(shù)據(jù)的寄存器組。另外,設(shè)寄存器文件116的開(kāi)頭地址從0開(kāi)始。(2-4)運(yùn)算器組 117運(yùn)算器組117是包含加法器和乘法器等多個(gè)運(yùn)算器的處理部,執(zhí)行保持在指令緩 沖器115中的指令。運(yùn)算器組117,如果從指令緩沖器115讀出運(yùn)算結(jié)束控制指令T110,則讀出所讀出 的運(yùn)算結(jié)束控制指令TllO所包含的第一操作數(shù)302所表示的寄存器Rs的值,并經(jīng)由回寫(xiě) 總線118,將所讀出的值和將該值寫(xiě)入到由第二操作數(shù)302表示的寄存器Rd中的指示輸出 給多線程處理器11。另外,對(duì)于回寫(xiě)總線118,將在后面敘述。這時(shí),如果從擴(kuò)展運(yùn)算處理器12輸出這些信息,則多線程處理器11的處理器控制 部162控制為根據(jù)之前進(jìn)行的判斷結(jié)果,將輸出的值寫(xiě)入到使用寫(xiě)入目的地的地址來(lái)確定 的寫(xiě)入目的地。(2-5)回寫(xiě)總線 118回寫(xiě)總線118是用于將來(lái)自運(yùn)算器組117的輸出寫(xiě)回到寄存器文件116、第一寄存 器文件106 第N寄存器文件108,以及用于將寄存器文件116的內(nèi)容寫(xiě)入到第一寄存器文 件106 第N寄存器文件108或上下文存儲(chǔ)器112的總線。(2-6)線程信息存儲(chǔ)部119線程信息存儲(chǔ)部119具有存儲(chǔ)線程ID的區(qū)域,該線程ID對(duì)有處理委托的請(qǐng)求的 線程進(jìn)行識(shí)別。對(duì)該線程信息存儲(chǔ)部119的寫(xiě)入由多線程處理器11的處理器控制部162進(jìn)行。1.2 動(dòng)作這里,使用圖7所示的流程圖來(lái)說(shuō)明執(zhí)行了運(yùn)算結(jié)束控制指令TllO時(shí)的多處理器 系統(tǒng)10的動(dòng)作。若由擴(kuò)展運(yùn)算處理器12發(fā)出運(yùn)算結(jié)束控制指令T110,則多線程處理器11的處理 器控制部162從線程信息存儲(chǔ)部119取得應(yīng)反映的線程的ID、即處理請(qǐng)求源的線程ID (步 驟 S105)。處理器控制部162讀出線程信息表TlOO的記錄了應(yīng)反映的線程ID的信息的條目 (步驟 Sl 10)。處理器控制部162判斷所讀出的條目所包含的有效標(biāo)志202的內(nèi)容是否是1(步 驟 Sl 15)。在判斷為不是1的情況下(步驟S115中的“否”),多處理器系統(tǒng)10進(jìn)行錯(cuò)誤處 理(步驟S140),結(jié)束處理。這里錯(cuò)誤處理例如是丟棄保存在寄存器文件116中的內(nèi)容、保 持在指令緩沖器中的指令、和當(dāng)前由擴(kuò)展運(yùn)算處理器在執(zhí)行中的指令的處理。在判斷為是1的情況下(步驟S115中的“是”),處理器控制部162判斷所讀出的 條目所包含的線程狀態(tài)標(biāo)志204的內(nèi)容是否是01 (步驟S120)。在判斷為是01的情況下(步驟S120中的“是”),處理器控制部162控制為向所讀出的條目所包含的邏輯處理器ID203的內(nèi)容所表示的邏輯處理器具有的寄存器文件中的、 由第二操作數(shù)303表示的寄存器Rd,寫(xiě)入擴(kuò)展運(yùn)算處理器的寄存器文件116中的、由第一操 作數(shù)302表示的寄存器Rs的內(nèi)容(步驟S125)。在判斷為線程狀態(tài)標(biāo)志204的內(nèi)容不是01的情況下(步驟S125中的“否”),處 理器控制部162判斷線程狀態(tài)標(biāo)志204的內(nèi)容是否是00 (步驟S130)。在判斷為是00的情況下(步驟S130中的“是”)、處理器控制部162將擴(kuò)展運(yùn)算 處理器的寄存器文件116中的、由第一操作數(shù)302表示的寄存器Rs的內(nèi)容,傳送到根據(jù)所 讀出的條目所包含的基本地址205和由第二操作數(shù)303表示的寄存器Rd計(jì)算出的上下文 存儲(chǔ)器112上的地址,完成線程完成指令的執(zhí)行。在判斷為線程狀態(tài)標(biāo)志204的內(nèi)容不是00的情況下(步驟S130中的“否”),處 理回到步驟S120,等待線程的狀態(tài)被更新。1.3實(shí)施方式1的總結(jié)圖8是本發(fā)明的實(shí)施方式1中的多個(gè)線程動(dòng)作的情形。另外,這里,設(shè)邏輯處理器 的個(gè)數(shù)為2個(gè)。在時(shí)間t0時(shí)點(diǎn),在第一邏輯處理器151中執(zhí)行線程2,在第二邏輯處理器152中執(zhí) 行線程1(步驟S201、S202)。在時(shí)間tl,線程1向擴(kuò)展運(yùn)算處理器12進(jìn)行處理委托,接受了處理委托的擴(kuò)展運(yùn) 算處理器12進(jìn)行對(duì)線程1的處理(步驟S203)。在時(shí)間t2,線程1成為非活動(dòng),線程3在第二邏輯處理器151上被執(zhí)行(步驟 S204),若在線程3的執(zhí)行中的時(shí)間t3結(jié)束擴(kuò)展運(yùn)算處理器12的處理,則由于線程1為非 活動(dòng)的狀態(tài),所以處理結(jié)果被寫(xiě)入到上下文存儲(chǔ)器。之后,在線程3的執(zhí)行中的時(shí)間t4,若線程2向擴(kuò)展運(yùn)算處理器12進(jìn)行了處理委 托,則擴(kuò)展運(yùn)算處理器12從線程1的處理中釋放,即,沒(méi)有被線程1占有,所以擴(kuò)展運(yùn)算處 理器12進(jìn)行對(duì)線程2的處理(步驟S205)。在線程3結(jié)束后的時(shí)間t5,若線程1再次成為活動(dòng),則由于在上下文存儲(chǔ)器112中 反映了基于擴(kuò)展運(yùn)算處理器12的處理結(jié)果,所以線程1通過(guò)使用保持在上下文存儲(chǔ)器112 內(nèi)的數(shù)據(jù),繼續(xù)進(jìn)行處理(步驟S206)。這樣,本實(shí)施方式1的多處理器系統(tǒng)10在基于來(lái)自線程1的處理請(qǐng)求進(jìn)行的擴(kuò)展 運(yùn)算處理器12的處理結(jié)束了時(shí),即使在作為數(shù)據(jù)的反映目的地的線程1不活動(dòng)的情況下, 也可通過(guò)上述的運(yùn)算結(jié)束控制指令TllO將處理結(jié)果(數(shù)據(jù))反映到上下文存儲(chǔ)器112上 的與線程1對(duì)應(yīng)的區(qū)域上,并立即完成處理。因此,不會(huì)產(chǎn)生不需要的等待時(shí)間,而能夠有 效使用運(yùn)算資源。根據(jù)本實(shí)施方式的多處理器,在使基于擴(kuò)展運(yùn)算處理器12的線程結(jié)束、并且將作 為處理結(jié)果的數(shù)據(jù)傳送到其他線程(委托源的線程)時(shí),根據(jù)該其他線程的狀態(tài),即數(shù)據(jù)接 收側(cè)的線程是否活動(dòng),來(lái)適當(dāng)選擇數(shù)據(jù)傳送目的地,所以能夠有效進(jìn)行線程間的數(shù)據(jù)交換。2.實(shí)施方式2實(shí)施方式2中,運(yùn)算結(jié)束控制指令字段的數(shù)據(jù)結(jié)構(gòu)與實(shí)施方式1不同。以下說(shuō)明指令字段的結(jié)構(gòu)和動(dòng)作流程圖中的不同點(diǎn)。另外,對(duì)于與實(shí)施方式1相 同的結(jié)構(gòu)要素,使用同一符號(hào)。
14
2. 1關(guān)于運(yùn)算結(jié)束控制指令T120圖9是本發(fā)明的實(shí)施方式2中的運(yùn)算結(jié)束控制指令T120的格式,由操作碼901、第 一操作數(shù)902、第二操作數(shù)903和第三操作數(shù)904構(gòu)成。操作碼901、第一操作數(shù)902、第二操作數(shù)903與實(shí)施方式1的操作碼301、第一操 作數(shù)302、第二操作數(shù)303相同,所以這里省略說(shuō)明。第三操作數(shù)904指定具有由第二操作數(shù)903指定的寄存器的線程ID、即進(jìn)行了處 理請(qǐng)求的線程的線程ID。2. 2 結(jié)構(gòu)說(shuō)明實(shí)施方式2中的多處理器系統(tǒng)1000。多處理器系統(tǒng)1000如圖10所示,由多線程處理器Ila和擴(kuò)展運(yùn)算處理器12a構(gòu) 成。在實(shí)施方式2中,指令解碼器和處理器控制部與實(shí)施方式1不同。下面,說(shuō)明圖10 所示的實(shí)施方式2中的指令解碼器IHa和處理器控制部16加。對(duì)于賦予了與實(shí)施方式1 同樣的附圖標(biāo)記的結(jié)構(gòu)要素,由于已在實(shí)施方式1中進(jìn)行了說(shuō)明,所以省略這里的說(shuō)明。另 外,圖10所示的第一邏輯處理器151,雖然未圖示但與實(shí)施方式1同樣具有第一指令緩沖器 103和第一寄存器文件106。此外,第二邏輯處理器152和第N邏輯處理器153也同樣具有 實(shí)施方式1所示的指令緩沖器和寄存器文件。對(duì)于線程控制部160,也雖然沒(méi)有圖示,但是 與實(shí)施方式1同樣,具有保存部165和恢復(fù)部166。(1)指令解碼器11 若通過(guò)解碼發(fā)出運(yùn)算結(jié)束控制指令T120,則指令解碼器11 從第三操作數(shù)取得 線程ID。指令解碼器IHa將所發(fā)出的運(yùn)算結(jié)束控制指令T120寫(xiě)入指令緩沖器115,并且 向多線程處理器11的處理器控制部16 通知包含所取得的線程ID的寫(xiě)入請(qǐng)求。(2)處理器控制部16 處理器控制部16 與實(shí)施方式1同樣,根據(jù)作為執(zhí)行對(duì)象的一個(gè)線程的指令,向 擴(kuò)展運(yùn)算處理器12進(jìn)行處理委托,并向擴(kuò)展運(yùn)算處理器12通知進(jìn)行了處理委托的線程的 線程ID。這時(shí),線程ID被寫(xiě)入到線程信息存儲(chǔ)部119。之后,處理器控制部16 若從擴(kuò)展運(yùn)算處理器12接收包含線程ID的寫(xiě)入請(qǐng)求, 則參照包含接收到的寫(xiě)入請(qǐng)求所包含的線程ID的條目?jī)?nèi)的線程狀態(tài)標(biāo)志,判斷與該線程 ID對(duì)應(yīng)的線程是否被作為執(zhí)行對(duì)象來(lái)分配了邏輯處理器,S卩,是活動(dòng)狀態(tài)還是非活動(dòng)狀態(tài)。 對(duì)于之后的動(dòng)作,由于與實(shí)施方式1同樣,所以省略這里的說(shuō)明。2. 3 動(dòng)作以下,對(duì)于執(zhí)行了運(yùn)算結(jié)束控制指令T120的情況下的多處理器系統(tǒng)10的動(dòng)作,僅 說(shuō)明圖7的變更點(diǎn)。變更點(diǎn)如以下這樣改變步驟S105的動(dòng)作。若在擴(kuò)展運(yùn)算處理器12中執(zhí)行運(yùn)算結(jié)束控制指令T120,則從第三操作數(shù)904取得 運(yùn)算結(jié)束控制指令T120所包含的線程ID。之后的動(dòng)作與圖7所示的步驟SllO到S140的動(dòng)作相同,所以省略這里的說(shuō)明。2. 4實(shí)施方式2的總結(jié)在實(shí)施方式2中,表示作為是否活動(dòng)的判斷對(duì)象的線程的線程ID的取得方法與實(shí)施方式1不同,所得到的效果相同。3.實(shí)施方式3這里,作為使用實(shí)施方式1所示的多處理器系統(tǒng)10的系統(tǒng)的具體例,說(shuō)明適用于 影像的解碼、編碼處理的情況。圖11表示將多處理器系統(tǒng)10適用于進(jìn)行解碼處理的解碼器IOA的情況。圖12表示將多處理器系統(tǒng)10適用于進(jìn)行編碼處理的編碼器IOB的情況。3. 1適用于解碼處理的情況解碼器IOA如圖11所示,包括可變長(zhǎng)解碼部500、逆量化·逆正交變換部501、運(yùn) 動(dòng)補(bǔ)償部502、加法部503、開(kāi)關(guān)504和參照?qǐng)D像緩沖器505。這些構(gòu)成要素是已知的,所以省略這里的詳細(xì)說(shuō)明,僅說(shuō)明這些的概要??勺冮L(zhǎng)解碼部500對(duì)被可變長(zhǎng)編碼的信號(hào)進(jìn)行解碼(decode)。逆量化 逆正交變換部501對(duì)由可變長(zhǎng)解碼部500得到的量化DCT系數(shù)進(jìn)行逆量 化和逆頻率變換。運(yùn)動(dòng)補(bǔ)償部502進(jìn)行使用了運(yùn)動(dòng)矢量的圖像數(shù)據(jù)的生成。加法部503相加由運(yùn)動(dòng)補(bǔ)償部502得到的圖像數(shù)據(jù)和由逆量化·逆正交變換部 501得到的圖像的數(shù)據(jù),而生成應(yīng)輸出的圖像數(shù)據(jù)。開(kāi)關(guān)504根據(jù)由可變長(zhǎng)解碼部500得到的解碼對(duì)象的圖片種類(lèi)(P、I、B圖片),切 換與逆量化·逆正交變換部501的連接或與加法部503的S連接。參照?qǐng)D像緩沖器505用于保持參照?qǐng)D像。這里,如圖11所示,通過(guò)適用為使實(shí)施方式1所示的多線程處理器11進(jìn)行與可變 長(zhǎng)解碼部500和開(kāi)關(guān)有關(guān)的處理,擴(kuò)展運(yùn)算處理器12進(jìn)行與逆量化 逆正交變換部501、運(yùn) 動(dòng)補(bǔ)償部502和加法部503有關(guān)的處理,從而能夠?qū)?shí)施方式1所示的多處理器系統(tǒng)10適 用于進(jìn)行解碼處理的解碼器。3. 3適用于編碼處理的情況編碼器IOB如圖12所示,包括減法部600、正交變換·量化部601、可變長(zhǎng)編碼部 602、逆量化·逆正交變換部603、加法部604、運(yùn)動(dòng)補(bǔ)償部605、運(yùn)動(dòng)檢索部606和參照?qǐng)D像 緩沖器607。由于這些構(gòu)成要素是已知的,所以省略這里的詳細(xì)說(shuō)明,而僅說(shuō)明這些的概要。減法部600計(jì)算對(duì)編碼對(duì)象的圖像數(shù)據(jù)的預(yù)測(cè)誤差。正交變換·量化部601對(duì)預(yù)測(cè)誤差進(jìn)行頻率變換和量化??勺冮L(zhǎng)編碼部602對(duì)量化DCT系數(shù)和運(yùn)動(dòng)矢量進(jìn)行可變長(zhǎng)編碼。逆量化 逆正交變換部603為了在運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用而對(duì)量化DCT系數(shù)進(jìn)行逆 量化和逆頻率變換。加法部604進(jìn)行由運(yùn)動(dòng)補(bǔ)償部502得到的圖像數(shù)據(jù)與從逆量化·逆正交變換部 501得到的圖像的數(shù)據(jù)的相加,并通過(guò)去塊濾波器對(duì)相加結(jié)果的圖像數(shù)據(jù)實(shí)施去塊濾波處 理,生成用于在參照?qǐng)D像緩沖器607中作為參照?qǐng)D像來(lái)保持的圖像數(shù)據(jù)。運(yùn)動(dòng)補(bǔ)償部605進(jìn)行使用了運(yùn)動(dòng)矢量的圖像數(shù)據(jù)的生成。運(yùn)動(dòng)檢索部606進(jìn)行運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),檢測(cè)出運(yùn)動(dòng)矢量。參照?qǐng)D像緩沖器607用于保持參照?qǐng)D像。
這里,如圖12所示,通過(guò)適用為使實(shí)施方式1所示的多線程處理器11進(jìn)行與可變 長(zhǎng)編碼部602有關(guān)的處理,擴(kuò)展運(yùn)算處理器12進(jìn)行與減法部600、正交變換·量化部601、 逆量化 逆正交變換部603、加法部604、運(yùn)動(dòng)補(bǔ)償部605和運(yùn)動(dòng)檢索部606有關(guān)的處理,從 而能夠在編碼器IOB中適用實(shí)施方式1所示的多處理器系統(tǒng)10。3. 3實(shí)施方式3的總結(jié)對(duì)使用H. 264等標(biāo)準(zhǔn)壓縮的影像信號(hào)進(jìn)行解碼時(shí),如上所述,需要進(jìn)行比特流的 解析、被可變長(zhǎng)編碼的信號(hào)的解碼處理、逆量化、逆頻率變換、運(yùn)動(dòng)補(bǔ)償、去塊濾波處理。在這些處理中,比特流的解析、被可變長(zhǎng)編碼的信號(hào)的解碼處理這樣的順序處理, 在一般處理器(多線程處理器)中能夠進(jìn)行實(shí)際的動(dòng)作頻率下的處理。另一方面,關(guān)于作 為像素處理的逆量化、逆頻率變換、運(yùn)動(dòng)補(bǔ)償、去塊濾波處理,適用對(duì)多個(gè)像素同時(shí)進(jìn)行運(yùn) 算的數(shù)據(jù)并行式處理器(擴(kuò)展運(yùn)算處理器)。數(shù)據(jù)并行式處理器因寄存器組和運(yùn)算器而需要寬度較寬的數(shù)據(jù)寬度,所以通過(guò)設(shè) 為獨(dú)立的擴(kuò)展運(yùn)算處理器,能夠安裝高效的處理器,而不會(huì)增加進(jìn)行順序處理的處理器的 資源。在本實(shí)施例中,通過(guò)由多線程處理器進(jìn)行順序處理、由所述擴(kuò)展運(yùn)算處理器進(jìn)行 像素處理,能夠構(gòu)筑抑制了電路規(guī)模的增加、并且提高擴(kuò)展運(yùn)算處理器的使用效率的實(shí)時(shí) 影像處理系統(tǒng)。4.變形例上述說(shuō)明的各實(shí)施方式是本發(fā)明的實(shí)施的一例,本發(fā)明并不限于該實(shí)施方式,可 以在不脫離其精神的范圍內(nèi)以各種方式進(jìn)行實(shí)施。例如,下面這種情形也包含在本發(fā)明中。(1)上述實(shí)施方式中,擴(kuò)展運(yùn)算處理器12的各結(jié)構(gòu)要素113 117可以與多線程 處理器11的結(jié)構(gòu)要素共用。(2)上述實(shí)施方式中,擴(kuò)展運(yùn)算處理器12與多線程處理器11相獨(dú)立地保持了指 令,但是并不限于此。也可以是,擴(kuò)展運(yùn)算處理器12根據(jù)供給源的線程、即邏輯處理器的指示來(lái)動(dòng)作。(3)上述實(shí)施方式中,指令解碼器114將寫(xiě)入請(qǐng)求通知給處理器控制部162,但是 并不限于此。也可以是,運(yùn)算器組117在進(jìn)行基于運(yùn)算結(jié)束控制指令TllO的處理后,向多線程 處理器11輸出數(shù)據(jù)時(shí),將寫(xiě)入請(qǐng)求通知給處理器控制部162。此外,在運(yùn)算器組117進(jìn)行基于運(yùn)算結(jié)束控制指令T120的處理的情況下,也同樣 通過(guò)在向多線程處理器11輸出數(shù)據(jù)時(shí),將包含線程ID的寫(xiě)入請(qǐng)求通知給處理器控制部162 來(lái)實(shí)現(xiàn)。(4)上述實(shí)施方式中,運(yùn)算結(jié)束控制指令Tl 10包含一組由第一操作數(shù)Rs和第二操 作數(shù)Rd構(gòu)成的組,但是并不限于此。在運(yùn)算結(jié)束控制指令TllO內(nèi)也可以包含多個(gè)該組。此外,在運(yùn)算結(jié)束控制指令T120中也同樣,可以包含多個(gè)由第一操作數(shù)Rs和第二 操作數(shù)Rd構(gòu)成的組。(5)上述實(shí)施方式中,在執(zhí)行了運(yùn)算結(jié)束控制指令Tl 10時(shí),運(yùn)算器組117將在運(yùn)算 結(jié)束控制指令TllO所包含的第一操作數(shù)所表示的寄存器Rs中存儲(chǔ)的值(處理結(jié)果)、和將 該值寫(xiě)入到第二操作數(shù)所表示的寄存器Rd中的指示輸出給多線程處理器11,但是并不限于此。也可以是,運(yùn)算器組117將運(yùn)算結(jié)束控制指令TllO所包含的第一操作數(shù)所表示的 寄存器Rs、和將該值寫(xiě)入到第二操作數(shù)所表示的寄存器Rd中的指示輸出給多線程處理器 11。這時(shí),處理器控制部162根據(jù)接收到的指示所包含的寄存器Rs所表示的地址,從 寄存器文件116讀出處理結(jié)果,并對(duì)于所讀出的處理結(jié)果,使用寄存器Rd確定與請(qǐng)求源的 線程的狀態(tài)對(duì)應(yīng)的寫(xiě)入目的地。此外,在實(shí)施方式2中,能夠通過(guò)在上述的指示中進(jìn)一步包含由第3操作數(shù)表示的 請(qǐng)求源的線程ID來(lái)實(shí)現(xiàn)。(6)在上述實(shí)施方式中,在線程初次分配到邏輯處理器時(shí),線程控制部160追加與 該線程對(duì)應(yīng)的條目,但是并不限于此。例如,也可以將各線程與被分配的邏輯處理器預(yù)先建立對(duì)應(yīng)。該情況下,在線程信 息表TlOO中預(yù)先登記有每個(gè)線程的條目,將條目所包含的有效標(biāo)志和線程狀態(tài)標(biāo)志各自 的初始值設(shè)為“0”和“00”,并根據(jù)對(duì)應(yīng)的線程的狀態(tài),線程控制部160更新這些標(biāo)志的值。(8)在上述實(shí)施方式中,多線程處理器11是1個(gè)處理器,在該處理器內(nèi)構(gòu)成多個(gè)邏 輯處理器,但是并不限于此。在多線程處理器11內(nèi)也可以構(gòu)成多個(gè)處理器元件。(9)在上述實(shí)施方式中,擴(kuò)展運(yùn)算處理器12在對(duì)處理請(qǐng)求源的線程的處理完成的 時(shí)點(diǎn),將與寫(xiě)入有關(guān)的請(qǐng)求通知給多線程處理器11,但是并不限于此。也可以在處理過(guò)程中,向多線程處理器11通知與寫(xiě)入有關(guān)的請(qǐng)求。(10)在上述實(shí)施方式中,寄存器的尺寸為4個(gè)字節(jié),但是并不限于此。寄存器的尺寸也可以是其他值。例如16個(gè)字節(jié)。在該情況下,上述的公式變更為 “基本地址+(第二操作數(shù)X 16) ”。(11)在上述實(shí)施方式中,各邏輯處理器并行執(zhí)行,但是并不限于此。例如,也可以是僅對(duì)各邏輯處理器中的一個(gè)邏輯處理器分配運(yùn)算器組109、并通過(guò) 時(shí)間段變更該分配的基于模擬并行的處理。另外,這種模擬的并行處理也包含在本發(fā)明的并行處理的概念中。(12)本發(fā)明也可以是如上所述的方法。此外,也可以是通過(guò)計(jì)算機(jī)實(shí)現(xiàn)這些方法 的計(jì)算機(jī)程序,也可以是由所述計(jì)算機(jī)程序構(gòu)成的數(shù)字信號(hào)。此外,本發(fā)明也可以是將所述計(jì)算機(jī)程序或所述數(shù)字信號(hào)記錄在計(jì)算機(jī)可讀取的 記錄介質(zhì)、例如軟盤(pán)、硬盤(pán)、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD (Blu-ray Disc)、半導(dǎo)體 存儲(chǔ)器等上的結(jié)構(gòu)。此外,也可以是在這些記錄介質(zhì)上記錄的所述數(shù)字信號(hào)。(13)可以分別組合上述實(shí)施方式和上述變形例。工業(yè)實(shí)用性本發(fā)明的多處理器系統(tǒng)具有靈活地實(shí)現(xiàn)高性能的運(yùn)算處理的功能,因此能夠適用 于DVD記錄機(jī)或數(shù)字TV等進(jìn)行影像或聲音的媒體處理的多處理器系統(tǒng)。在制造、銷(xiāo)售本發(fā)明的多處理器系統(tǒng)的產(chǎn)業(yè)中,能夠經(jīng)營(yíng)性地、即反復(fù)且持續(xù)地使用。符號(hào)說(shuō)明
10多處理器系統(tǒng)
11多線程處理器
12擴(kuò)展運(yùn)算處理器
101指令存儲(chǔ)器
102指令解碼器
103第一命令緩沖器
104第二命令緩沖器
105第N命令緩沖器
106第一寄存器文件
107第二寄存器文件
108第N寄存器文件
109運(yùn)算器組
110回寫(xiě)總線
111控制部
112上下文存儲(chǔ)器
113指令存儲(chǔ)器
114指令解碼器
115指令緩沖器
116寄存器文件
117運(yùn)算器組
118回寫(xiě)總線
119線程信息存儲(chǔ)部
160線程控制部
161線程信息存儲(chǔ)部
162處理器控制部
165保存部
166恢復(fù)部
說(shuō)明書(shū)
15/15 頁(yè)
19
權(quán)利要求
1.一種多處理器,包括第一處理器,對(duì)多個(gè)線程中的作為執(zhí)行對(duì)象的規(guī)定個(gè)數(shù)的線 程分別分配不同的寄存器文件,并行進(jìn)行所分配的各線程的處理;以及第二處理器,進(jìn)行按 照所述第一處理器的指示的處理,上述多處理器的特征在于,如果由所述第一處理器進(jìn)行處理委托,則所述第二處理器進(jìn)行按照所述第一處理器的 指示的處理,并將該處理結(jié)果的值的寫(xiě)入請(qǐng)求通知給所述第一處理器; 所述第一處理器包括存儲(chǔ)單元,具有按照所述多個(gè)線程的每個(gè)線程分配的區(qū)域;第一控制單元,對(duì)于作為執(zhí)行對(duì)象的各線程,在該線程從執(zhí)行對(duì)象變?yōu)榉菆?zhí)行對(duì)象的 情況下,將分配給該線程的寄存器文件內(nèi)的值保存到在所述存儲(chǔ)單元中分配的區(qū)域;第二控制單元,控制為按照?qǐng)?zhí)行對(duì)象的一個(gè)線程所包含的指令,向所述第二處理器進(jìn) 行處理委托,如果從所述第二處理器接收到對(duì)該線程的處理結(jié)果的值的寫(xiě)入請(qǐng)求,則判斷 在當(dāng)前時(shí)點(diǎn)該線程是否為執(zhí)行對(duì)象,在判斷為不是執(zhí)行對(duì)象的情況下,向在所述存儲(chǔ)單元 中分配給該線程的區(qū)域的一部分寫(xiě)入所述處理結(jié)果的值;以及第三控制單元,在線程從非執(zhí)行對(duì)象再次成為執(zhí)行對(duì)象的情況下,將分配給該線程的 區(qū)域內(nèi)的值再次恢復(fù)到所分配的寄存器文件中。
2.根據(jù)權(quán)利要求1所述的多處理器,其特征在于,所述第二控制單元在向所述第二處理器進(jìn)行處理委托時(shí),將識(shí)別所述一個(gè)線程的線程 標(biāo)識(shí)符輸出給所述第二處理器;所述第二處理器從所述第一處理器接收所述線程標(biāo)識(shí)符,并進(jìn)行存儲(chǔ); 所述第二控制單元如果接收到所述寫(xiě)入請(qǐng)求,則取得存儲(chǔ)在所述第二處理器中的所述 線程標(biāo)識(shí)符,并根據(jù)所取得的線程標(biāo)識(shí)符,確定作為所述判斷對(duì)象的線程。
3.根據(jù)權(quán)利要求2所述的多處理器,其特征在于,所述第二控制單元存儲(chǔ)在所述存儲(chǔ)單元中分配給各線程的區(qū)域各自的開(kāi)頭地址; 所述第二處理器,如果執(zhí)行包含操作碼、第一操作數(shù)以及第二操作數(shù)的指令,則將所述 寫(xiě)入請(qǐng)求通知給所述第一處理器,所述操作碼用于指示傳送所述處理結(jié)果的值,所述第一 操作數(shù)用于指定存儲(chǔ)有所述處理結(jié)果的值的第二處理器內(nèi)的寄存器文件內(nèi)的寄存器,所述 第二操作數(shù)用于指定傳送目的地的寄存器文件內(nèi)的寄存器; 所述第二控制單元,在通過(guò)所述判斷而判斷為所述線程標(biāo)識(shí)符所表示的線程為非執(zhí)行對(duì)象的情況下,控制 為根據(jù)對(duì)所述線程標(biāo)識(shí)符所表示的線程分配的區(qū)域的開(kāi)頭地址、以及由所述第二處理器執(zhí) 行的指令所包含的所述第二操作數(shù)所表示的寄存器,確定所述存儲(chǔ)單元中的寫(xiě)入位置,并 向所確定的位置寫(xiě)入存儲(chǔ)在由所述第二處理器執(zhí)行的指令所包含的所述第一操作數(shù)所表 示的寄存器中的所述處理結(jié)果的值;在通過(guò)所述判斷而判斷為所述線程標(biāo)識(shí)符所表示的線程為執(zhí)行對(duì)象的情況下,控制為 在對(duì)應(yīng)的寄存器標(biāo)識(shí)符所表示的寄存器文件中,向所述第二操作數(shù)所表示的寄存器寫(xiě)入存 儲(chǔ)在由所述第二處理器執(zhí)行的指令所包含的所述第一操作數(shù)所表示的寄存器中的所述處 理結(jié)果的值。
4.根據(jù)權(quán)利要求3所述的多處理器,其特征在于, 所述第二控制單元,對(duì)于所述多個(gè)線程的各個(gè)線程,將表示該線程為執(zhí)行對(duì)象還是非執(zhí)行對(duì)象的標(biāo)志和在 該線程為執(zhí)行對(duì)象的情況下識(shí)別被分配的寄存器文件的寄存器標(biāo)識(shí)符對(duì)應(yīng)起來(lái)存儲(chǔ); 在所述判斷中,使用與所述線程標(biāo)識(shí)符所表示的線程對(duì)應(yīng)的標(biāo)志來(lái)進(jìn)行所述判斷。
5.根據(jù)權(quán)利要求1所述的多處理器,其特征在于,所述第二控制單元在向所述第二處理器進(jìn)行處理委托時(shí),將識(shí)別所述一個(gè)線程的線程 標(biāo)識(shí)符輸出給所述第二處理器;所述第二處理器從所述第一處理器接收并存儲(chǔ)所述線程標(biāo)識(shí)符,并在通知所述寫(xiě)入請(qǐng) 求時(shí),將所述線程標(biāo)識(shí)符包含在所述寫(xiě)入請(qǐng)求中通知給所述第一處理器;所述第二控制單元如果接收到所述寫(xiě)入請(qǐng)求,則根據(jù)接收到的所述寫(xiě)入請(qǐng)求所包含的 線程標(biāo)識(shí)符,確定作為所述判斷對(duì)象的線程。
6.根據(jù)權(quán)利要求5所述的多處理器,其特征在于,所述第二控制單元存儲(chǔ)在所述存儲(chǔ)單元中分配給各線程的區(qū)域各自的開(kāi)頭地址; 所述第二處理器,如果執(zhí)行包含操作碼、第一操作數(shù)、第二操作數(shù)以及線程標(biāo)識(shí)符的指 令,則將包含所述線程標(biāo)識(shí)符的所述寫(xiě)入請(qǐng)求通知給所述第一處理器,所述操作碼用于指 示傳送所述處理結(jié)果的值,所述第一操作數(shù)用于指定存儲(chǔ)有所述處理結(jié)果的值的第二處理 器內(nèi)的寄存器文件內(nèi)的寄存器,所述第二操作數(shù)用于指定傳送目的地的寄存器文件內(nèi)的寄 存器,所述線程標(biāo)識(shí)符用于對(duì)請(qǐng)求處理的線程進(jìn)行識(shí)別;所述第二控制單元在通過(guò)所述判斷而判斷為所述線程標(biāo)識(shí)符所表示的線程為非執(zhí)行 對(duì)象的情況下,控制為根據(jù)對(duì)所述線程標(biāo)識(shí)符所表示的線程分配的區(qū)域的開(kāi)頭地址、以及 由所述第二處理器執(zhí)行的指令所包含的所述第二操作數(shù)所表示的寄存器,確定所述存儲(chǔ)單 元中的寫(xiě)入位置,并向所確定的位置寫(xiě)入存儲(chǔ)在由所述第二處理器執(zhí)行的指令所包含的所 述第一操作數(shù)所表示的寄存器中的所述處理結(jié)果的值。
7.根據(jù)權(quán)利要求1所述的多處理器,其特征在于, 所述多處理器是執(zhí)行影像的解碼處理的處理系統(tǒng);由所述第一處理器處理的各線程進(jìn)行所述解碼處理中的被可變長(zhǎng)編碼的信號(hào)的解碼;由所述第二處理器進(jìn)行的對(duì)應(yīng)于所述指示的處理是與所述解碼處理中的逆量化、逆頻 率變換、運(yùn)動(dòng)補(bǔ)償以及圖像數(shù)據(jù)的加法有關(guān)的處理。
8.根據(jù)權(quán)利要求1所述的多處理器,其特征在于, 所述多處理器是執(zhí)行影像的編碼處理的處理系統(tǒng);由所述第一處理器處理的各線程進(jìn)行所述編碼處理中的與對(duì)圖像數(shù)據(jù)的可變長(zhǎng)編碼 有關(guān)的處理;由所述第二處理器進(jìn)行的對(duì)應(yīng)于所述指示的處理是與所述編碼處理中的對(duì)編碼對(duì)象 的圖像數(shù)據(jù)的預(yù)測(cè)誤差、量化、頻率變換、運(yùn)動(dòng)補(bǔ)償、運(yùn)動(dòng)檢索、逆量化、逆頻率變換以及圖 像數(shù)據(jù)的加法有關(guān)的處理。
9.一種處理方法,在多處理器中使用,該多處理器包括第一處理器,對(duì)多個(gè)線程中的 作為執(zhí)行對(duì)象的規(guī)定個(gè)數(shù)的線程分別分配不同的寄存器文件,并行進(jìn)行所分配的各線程的 處理;以及第二處理器,進(jìn)行按照所述第一處理器的指示的處理,上述處理方法的特征在 于,如果由所述第一處理器進(jìn)行處理委托,則所述第二處理器進(jìn)行按照所述第一處理器的 指示的處理,并將該處理結(jié)果的值的寫(xiě)入請(qǐng)求通知給所述第一處理器;所述第一處理器具備存儲(chǔ)單元,該存儲(chǔ)單元具有按照所述多個(gè)線程的每個(gè)線程分配的 區(qū)域;所述處理方法包括第一控制步驟,對(duì)于作為執(zhí)行對(duì)象的各線程,在該線程從執(zhí)行對(duì)象變?yōu)榉菆?zhí)行對(duì)象的 情況下,將分配給該線程的寄存器文件內(nèi)的值保存到在所述存儲(chǔ)單元中所分配的區(qū)域;第二控制步驟,控制為按照?qǐng)?zhí)行對(duì)象的一個(gè)線程所包含的指令,向所述第二處理器進(jìn) 行處理委托,如果從所述第二處理器接收到對(duì)該線程的處理結(jié)果的值的寫(xiě)入請(qǐng)求,則判斷 在當(dāng)前時(shí)點(diǎn)該線程是否為執(zhí)行對(duì)象,在判斷為不是執(zhí)行對(duì)象的情況下,向在所述存儲(chǔ)單元 中分配給該線程的區(qū)域的一部分寫(xiě)入所述處理結(jié)果的值;以及第三控制步驟,在線程從非執(zhí)行對(duì)象再次成為執(zhí)行對(duì)象的情況下,將分配給該線程的 區(qū)域內(nèi)的值再次恢復(fù)到所分配的寄存器文件中。
全文摘要
提供一種多處理器,不會(huì)降低處理效率的多處理器,而能夠處理多個(gè)線程。該多處理器包括第一處理器,對(duì)多個(gè)線程中的作為執(zhí)行對(duì)象的規(guī)定個(gè)數(shù)的線程分別分配不同的寄存器文件,并行進(jìn)行所分配的各線程的處理;以及第二處理器,進(jìn)行對(duì)應(yīng)于所述第一處理器的指示的處理,所述第一處理器具有按照所述多個(gè)線程的每個(gè)線程分配的存儲(chǔ)區(qū)域,按照?qǐng)?zhí)行對(duì)象的一個(gè)線程所包含的指令,向所述第二處理器進(jìn)行處理委托,若從所述第二處理器接收到對(duì)該線程的處理結(jié)果的值的寫(xiě)入請(qǐng)求,則判斷在當(dāng)前時(shí)點(diǎn)該線程是否為執(zhí)行對(duì)象,在判斷為不是執(zhí)行對(duì)象的情況下,控制為向分配給該線程的存儲(chǔ)區(qū)域?qū)懭胨鎏幚斫Y(jié)果的值。
文檔編號(hào)G06F9/48GK102067088SQ20098012284
公開(kāi)日2011年5月18日 申請(qǐng)日期2009年6月16日 優(yōu)先權(quán)日2008年6月19日
發(fā)明者森下廣之 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社