亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多處理器的制作方法

文檔序號:6593961閱讀:146來源:國知局
專利名稱:多處理器的制作方法
技術領域
本發(fā)明涉及在能夠同時執(zhí)行多個線程的一個處理器和進行對應于所述一個處理 器的處理請求的處理的另一處理器中,高效進行這些處理器間的數(shù)據(jù)交換的技術。
背景技術
為了進行數(shù)字化后的影像數(shù)據(jù)和聲音數(shù)據(jù)等的壓縮、解壓縮等的媒體處理,使用 著專用硬件或高性能的DSP(Digital Signal Processor 數(shù)字信號處理器)等。近年來,媒體處理的復雜度升高,圖像大小、聲音的聲道數(shù)等也處于增加的趨勢, 該媒體處理的運算量也趨向于增大。因此,要求提高處理效率。因此,例如,在非專利文獻1中,公開了通過同時執(zhí)行多個程序來大幅提高運算效 率的高性能多線程處理器。通過使用該多線程處理器,能夠?qū)崿F(xiàn)媒體處理性能的提高。非專禾丨J 文獻 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但是,在使用非專利文獻1公開的多線程處理器來實現(xiàn)媒體處理的方法中,在處 理器間進行數(shù)據(jù)的交換時存在問題。具體而言,在為了實現(xiàn)某個應用程序而由多線程處理器執(zhí)行多個線程、且另一處 理器根據(jù)來自多線程處理器所執(zhí)行的一個線程的處理請求而進行處理的情況下,需要在這 些處理器之間進行數(shù)據(jù)的交換。在進行該交換動作時,在接收數(shù)據(jù)側(cè)的線程(請求處理的 線程)不是活動狀態(tài)(active)的情況下,需要等待對方側(cè)成為活動狀態(tài),或進行用于使對 方側(cè)變?yōu)榛顒訝顟B(tài)的處理。在該期間,傳送數(shù)據(jù)側(cè)的所述另一處理器為使用資源的狀態(tài),會 降低處理器的運算效率。在圖13中表示具體例。這里,假設在兩個邏輯處理器上執(zhí)行不同的線程,擴展運 算處理器通過邏輯處理器上的線程的處理委托來執(zhí)行處理,并將執(zhí)行結(jié)果送回委托源的線程。在時間t0時點,在第一邏輯處理器中執(zhí)行線程2,在第二邏輯處理器中執(zhí)行線程 1(步驟3500、5501)。在時間tl,線程1向擴展運算處理器進行處理委托,接收到處理委托的擴展運算 處理器進行對線程1的處理(步驟S502)。在時間t2,線程1變?yōu)榉腔顒?,線程3被在第二邏輯處理器上執(zhí)行(步驟S503), 在線程3的執(zhí)行中的時間t3結(jié)束擴展運算處理器的處理。在該情況下,由于在執(zhí)行著線程 3,所以擴展運算處理器不能將處理結(jié)果反映到線程1,因此在第二處理器上的處理對象從 線程3切換到線程1之前,處于等待狀態(tài)。因此,在時間t4,即使由線程2發(fā)出處理委托,擴 展運算處理器也不能接受處理委托。之后,如果在第二邏輯處理器上處理對象從線程3切換到線程1 (時間t5),則擴展 運算處理器將步驟S502中的處理結(jié)果反映到線程1,從線程1的處理釋放(時間t6)。
5
在時間t6以后,在第二邏輯處理器中執(zhí)行反映了處理結(jié)果的線程1 (步驟S504)。并且,在時間t7,擴展運算處理器接受來自線程2的處理委托,進行對線程2的處理。這樣,在時間t3到t5期間,盡管對線程1的處理已結(jié)束,但由于線程1不是處理 對象,即沒有處于能夠反映處理結(jié)果的狀態(tài),因此擴展運算處理器仍處于沒有從線程1的 占有中被釋放的狀態(tài),所以運算效率下降。

發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種不會降低處理效率、而能夠處理多個線程的多處 理器和處理方法。為了實現(xiàn)上述的目的,本發(fā)明的多處理器,包括第一處理器,對多個線程中的作 為執(zhí)行對象的規(guī)定個數(shù)的線程分別分配不同的寄存器文件,并行進行所分配的各線程的處 理;以及第二處理器,進行按照所述第一處理器的指示的處理,上述多處理器的特征在于, 如果由所述第一處理器進行處理委托,則所述第二處理器進行按照所述第一處理器的指示 的處理,并將該處理結(jié)果的值的寫入請求通知給所述第一處理器;所述第一處理器包括 存儲單元,具有按照所述多個線程各自分配的區(qū)域;第一控制單元,對于作為執(zhí)行對象的各 線程,在該線程從執(zhí)行對象變?yōu)榉菆?zhí)行對象的情況下,將分配給該線程的寄存器文件內(nèi)的 值保存到在所述存儲單元中分配的區(qū)域;第二控制單元,控制為按照執(zhí)行對象的一個線程 所包含的指令,向所述第二處理器進行處理委托,如果從所述第二處理器接收到對該線程 的處理結(jié)果的值的寫入請求,則判斷在當前時點該線程是否為執(zhí)行對象,在判斷為不是執(zhí) 行對象的情況下,向在所述存儲單元中分配給該線程的區(qū)域的一部分寫入所述處理結(jié)果的 值;以及第三控制單元,在線程從非執(zhí)行對象再次成為執(zhí)行對象的情況下,將分配給該線程 的區(qū)域內(nèi)的值再次恢復到所分配的寄存器文件中。根據(jù)該結(jié)構(gòu),多處理器的第一處理器在接收到來自第二處理器的寫入請求的時 點,在向第二處理器委托處理的線程不是執(zhí)行對象的情況下,將處理結(jié)果的值寫入存儲單 元,所以能夠結(jié)束第二處理器對委托了處理的線程的處理。由此,第一處理器能夠?qū)⑾旅娴?處理委托委托給第二處理器,所以能夠處理多個線程,而不會使多處理器處理效率下降。這里,也可以是,所述第二控制單元在對所述第二處理器委托處理時,將識別所述 一個線程的線程標識符輸出給所述第二處理器;所述第二處理器從所述第一處理器接收所 述線程標識符,并進行存儲;所述第二控制單元如果接收到所述寫入請求,則取得存儲在所 述第二處理器中的所述線程標識符,并根據(jù)所取得的線程標識符,確定作為所述判斷對象 的線程。根據(jù)該結(jié)構(gòu),多處理器的第一處理器在接收到所述寫入請求時,從第二處理器取 得對進行了處理委托的線程進行識別的線程標識符,所以能夠可靠地確定判斷對象的線程。這里,也可以是,所述第二控制單元存儲在所述存儲單元中分配給各線程的區(qū)域 各自的開頭地址;所述第二處理器,如果執(zhí)行包含操作碼、第一操作數(shù)以及第二操作數(shù)的指 令,則將所述寫入請求通知給所述第一處理器,所述操作碼用于指示傳送所述處理結(jié)果的 值,所述第一操作數(shù)用于指定存儲有所述處理結(jié)果的值的第二處理器內(nèi)的寄存器文件內(nèi)的寄存器,所述第二操作數(shù)用于指定傳送目的地的寄存器文件內(nèi)的寄存器;所述第二控制單 元,在通過所述判斷而判斷為所述線程標識符所表示的線程為非執(zhí)行對象的情況下,控制 為根據(jù)對所述線程標識符所表示的線程分配的區(qū)域的開頭地址、以及由所述第二處理器執(zhí) 行的指令所包含的所述第二操作數(shù)所表示的寄存器,確定所述存儲單元中的寫入位置,并 向所確定的位置寫入存儲在由所述第二處理器執(zhí)行的指令所包含的所述第一操作數(shù)所表 示的寄存器中的所述處理結(jié)果的值;在通過所述判斷而判斷為所述線程標識符所表示的線 程為執(zhí)行對象的情況下,控制為在對應的寄存器標識符所表示的寄存器文件中,向所述第 二操作數(shù)所表示的寄存器寫入存儲在由所述第二處理器執(zhí)行的指令所包含的所述第一操 作數(shù)所表示的寄存器中的所述處理結(jié)果的值。根據(jù)該結(jié)構(gòu),通過第二處理器執(zhí)行所述指令,能夠可靠地確定第二處理器內(nèi)的處 理結(jié)果的值的保存位置、和對進行處理委托的線程的寫入位置。這里,也可以是,所述第二控制單元,對于所述多個線程的各個線程,將表示該線 程為執(zhí)行對象還是非執(zhí)行對象的標志和在該線程為執(zhí)行對象的情況下識別被分配的寄存 器文件的寄存器標識符對應起來存儲;在所述判斷中,使用與所述線程標識符所表示的線 程對應的標志來進行所述判斷。根據(jù)該結(jié)構(gòu),第一處理器通過使用所述標志,能夠可靠地判斷判斷對象的線程是 否為執(zhí)行對象。這里,也可以是,所述第二控制單元在向所述第二處理器徑向處理委托時,將識別 所述一個線程的線程標識符輸出給所述第二處理器;所述第二處理器從所述第一處理器接 收并存儲所述線程標識符,并在通知所述寫入請求時,將所述線程標識符包含在所述寫入 請求中通知給所述第一處理器;所述第二控制單元如果接收到所述寫入請求,則根據(jù)接收 到的所述寫入請求所包含的線程標識符,確定作為所述判斷對象的線程。根據(jù)該結(jié)構(gòu),多處理器的第一處理器接收包含用于對進行了處理委托的線程進行 識別的線程標識符的所述寫入請求,所以能夠可靠地確定判斷對象的線程。這里,也可以是,所述第二控制單元存儲在所述存儲單元中分配給各線程的區(qū)域 各自的開頭地址;所述第二處理器,如果執(zhí)行包含操作碼、第一操作數(shù)、第二操作數(shù)以及線 程標識符的指令,則將包含所述線程標識符的所述寫入請求通知給所述第一處理器,所述 操作碼用于指示傳送所述處理結(jié)果的值,所述第一操作數(shù)用于指定存儲有所述處理結(jié)果的 值的第二處理器內(nèi)的寄存器文件內(nèi)的寄存器,所述第二操作數(shù)用于指定傳送目的地的寄存 器文件內(nèi)的寄存器,所述線程標識符用于對請求處理的線程進行識別;所述第二控制單元 在通過所述判斷而判斷為所述線程標識符所表示的線程為非執(zhí)行對象的情況下控制為,根 據(jù)對所述線程標識符所表示的線程分配的區(qū)域的開頭地址、以及由所述第二處理器執(zhí)行的 指令所包含的所述第二操作數(shù)所表示的寄存器,確定所述存儲單元中的寫入位置,并向所 確定的位置寫入存儲在由所述第二處理器執(zhí)行的指令所包含的所述第一操作數(shù)所表示的 寄存器中的所述處理結(jié)果的值。根據(jù)該結(jié)構(gòu),通過第二處理器執(zhí)行所述指令,能夠可靠地確定第二處理器內(nèi)的處 理結(jié)果的值的存儲位置、對進行了處理委托的線程的寫入位置、和進行了處理委托的線程。這里,也可以是,所述多處理器是執(zhí)行影像的解碼處理的處理系統(tǒng);由所述第一處理器處理的各線程進行所述解碼處理中的被可變長編碼的信號的解碼;由所述第二處理器進行的對應于所述指示的處理是與所述解碼處理中的逆量化、逆 頻率變換、運動補償以及圖像數(shù)據(jù)的加法有關的處理。根據(jù)該結(jié)構(gòu),由多處理器進行的解碼處理能夠不降低處理效率地處理多個線程。這里,也可以是,所述多處理器是執(zhí)行影像的編碼處理的處理系統(tǒng);由所述第一處 理器處理的各線程進行所述編碼處理中的與對圖像數(shù)據(jù)的可變長編碼有關的處理;由所述 第二處理器進行的對應于所述指示的處理是與所述編碼處理中的對編碼對象的圖像數(shù)據(jù) 的預測誤差、量化、頻率變換、運動補償、運動檢索、逆量化、逆頻率變換以及圖像數(shù)據(jù)的加 法有關的處理。根據(jù)該結(jié)構(gòu),多處理器進行的編碼處理能夠不降低處理效率地處理多個線程。


圖1是表示多處理器系統(tǒng)10的結(jié)構(gòu)的圖。圖2是表示控制部111的結(jié)構(gòu)的圖。圖3是表示線程信息表TlOO的數(shù)據(jù)結(jié)構(gòu)的一例的圖。圖4是表示運算結(jié)束控制指令TllO的數(shù)據(jù)結(jié)構(gòu)的一例的圖。圖5是表示反映對象線程活動的情況下的數(shù)據(jù)的反映目的地的圖。圖6是表示反映對象線程不活動的情況下的數(shù)據(jù)的反映目的地的圖。圖7是表示運算結(jié)束控制指令TllO執(zhí)行時的處理動作的流程圖。圖8是表示執(zhí)行多個線程的情況下的動作的具體例的圖。圖9是表示運算結(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)有技術中執(zhí)行多個線程的情況下的動作的具體例的圖。
具體實施例方式1.實施方式1下面,參照

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