国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      處理器裝置、多線程處理器裝置的制作方法

      文檔序號:6596350閱讀:216來源:國知局
      專利名稱:處理器裝置、多線程處理器裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及具有一邊切換處理器裝置的程序一邊執(zhí)行的多個處理器的處理器裝置以及多線程處理器裝置,尤其涉及使硬件資源在多個處理器中共享的處理器裝置以及多線程處理器裝置。
      背景技術(shù)
      近些年隨著數(shù)字技術(shù)、運動圖像以及聲音的壓縮擴展技術(shù)的急速進(jìn)展,被搭載于數(shù)字電視、數(shù)字錄像機(DVD記錄器等)、便攜式電話、以及影像聲音設(shè)備(攝像機等)的處理器被要求具有更高的性能。例如,作為實現(xiàn)高性能化的處理器有周知的多線程處理器(例如,參照專利文獻(xiàn) 1)。該多線程處理器通過同時執(zhí)行多個線程,來提高處理效率。并且,多線程處理器在多個線程的執(zhí)行過程中,由于能夠共享資源,因此與將多個處理器獨立設(shè)置相比,能夠提高處理器的面積優(yōu)化(area-efficient)。另外,在這樣的處理器中所進(jìn)行的處理有沒有被要求實時性的與控制相關(guān)的主處理、和被要求了實時性的運動圖像的壓縮與擴展處理等媒體處理。例如,專利文獻(xiàn)2所記載的影像聲音處理用集成電路包括進(jìn)行主處理的微電腦塊以及進(jìn)行媒體處理的媒體處理塊。并且,作為使 FPU (浮點處理單元 floating Point number processing Unit)的上下文切換的必要性成為最小的技術(shù),提出了延遲上下文切換(Lazy context switch)這種技術(shù)。根據(jù)這種方法,以執(zhí)行上下文,直到需要執(zhí)行FPU指令為止,使FPU上下文的保存與恢復(fù)延遲。即,在通常的處理器的上下文的保存以及恢復(fù)為不同步的狀態(tài),進(jìn)行FPU的上下文切換,并將這一機會抑制成需要的最小限度。從FPU具有多個寄存器、以及在被時分多路復(fù)用的程序中存在不使用FPU程序上來看,上述的方法試圖降低FPU上下文的保存以及恢復(fù)的額外開銷量。(現(xiàn)有技術(shù)文獻(xiàn))專利文獻(xiàn)專利文獻(xiàn)1日本特開2006-302261號公報專利文獻(xiàn)2國際公開第2005/096168號專利文獻(xiàn)3日本特開2003-271399號公報專利文獻(xiàn)4日本特開2008-123045號公報專利文獻(xiàn)5日本特開2004-246862號公報然而,在多處理器中利用FPU等硬件資源的情況下,具有以下的問題。在按每個處理器具備FPU,并按每個處理器適用延遲上下文切換的情況下,則電路規(guī)模增大。而且,在每個處理器之間產(chǎn)生FPU有效性的不均勻,不能提高使用效率
      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種能夠使FPU等硬件資源在多個處理器共享,并能夠使使用效率提高的處理器裝置以及多線程處理器裝置。為了解決上述的課題,本發(fā)明的處理器裝置包括多個處理器,對多個程序一邊進(jìn)行切換一邊執(zhí)行;一個以上的硬件資源,具有保持?jǐn)?shù)據(jù)的寄存器,補充所述多個處理器的指令執(zhí)行;存儲器,按照所述多個程序中的包含利用所述硬件資源的規(guī)定指令的每個程序,記憶擴展上下文數(shù)據(jù),該擴展上下文數(shù)據(jù)是所述硬件資源內(nèi)的寄存器數(shù)據(jù)的復(fù)制;控制部,在所述硬件資源與所述存儲器之間,控制擴展上下文數(shù)據(jù)的保存與恢復(fù);第一判斷部,判斷目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在所述硬件資源內(nèi)的可能性;以及第二判斷部,判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù),是否屬于將要執(zhí)行所述規(guī)定指令的處理器;在由所述第一判斷部判斷出有所述可能性、且由所述第二判斷部判斷出所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)屬于將要執(zhí)行所述規(guī)定指令的處理器的情況下,所述控制部不進(jìn)行擴展上下文數(shù)據(jù)的保存以及恢復(fù),所述硬件資源執(zhí)行該規(guī)定指令。根據(jù)此構(gòu)成,能夠在多個處理器共享各個硬件資源。即,不論哪個處理器都能夠使用各個硬件資源。因此,能夠使硬件資源的使用效率提高。由于不需要按照每個處理器來具備硬件資源,因此只需要按照所需的處理性能來具備最小限度的硬件資源即可,從而能夠減小電路規(guī)?;蚰軌蜻M(jìn)行最佳化。在此,也可以是,所述控制部包括第一轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于同一個處理器的上下文數(shù)據(jù)恢復(fù);以及第二轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于不同的處理器的擴展上下文數(shù)據(jù)恢復(fù)。在此,也可以是,所述硬件資源是擴展運算單元,執(zhí)行所述多個處理器所不能執(zhí)行的擴展指令,所述規(guī)定指令是所述擴展指令。根據(jù)此構(gòu)成,能夠高效率地在多個處理器共享FPU以及硬件加速器等擴展運算單元,從而能夠使擴展上下文數(shù)據(jù)的保存以及恢復(fù)成為最小限。在此,也可以是,所述第一判斷部包括被設(shè)置在多個處理器的每一個的數(shù)據(jù)判斷部;各個數(shù)據(jù)判斷部,在該數(shù)據(jù)判斷部所對應(yīng)的處理器將要執(zhí)行程序中的所述規(guī)定指令之時,判斷在與該數(shù)據(jù)判斷部相對應(yīng)的處理器目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù),是否有被保持在所述硬件資源內(nèi)的可能性;所述第二判斷部包括被設(shè)置在多個處理器的每一個的處理器判斷部;各個處理器判斷部判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)是否屬于將要執(zhí)行所述規(guī)定指令的處理器。根據(jù)此構(gòu)成,由于按照每個處理器具備了數(shù)據(jù)判斷部以及處理器判斷部,在硬件資源保持了目前正在執(zhí)行中的程序(即發(fā)出規(guī)定指令的程序)的擴展上下文數(shù)據(jù)的情況下,能夠不會給其他的處理器帶來任何影響,來使用硬件資源。在此,也可以是,所述多個處理器的每一個具有狀態(tài)寄存器;各個狀態(tài)寄存器的數(shù)據(jù)的復(fù)制被包含在每個程序的上下文數(shù)據(jù)中;各個狀態(tài)寄存器保持第一狀態(tài)信息和第二狀態(tài)信息,所述第一狀態(tài)信息按照每個所述硬件資源示出,目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在該硬件資源內(nèi)的可能性,所述第二狀態(tài)信息按照每個所述硬件資源示出,被保持在該硬件資源內(nèi)的擴展上下文數(shù)據(jù)所對應(yīng)的處理器;所述各個數(shù)據(jù)判斷部包括第一判斷電路,該第一判斷電路在對應(yīng)的處理器將要執(zhí)行程序中的所述規(guī)定指令之時,判斷所述第一狀態(tài)信息是真還是假,在判斷為是假之時,產(chǎn)生第一例外中斷信號;所述各個處理器判斷部包括第二判斷電路,該第二判斷電路在對應(yīng)的所述第一判斷電路判斷為假之時,判斷對應(yīng)的處理器與所述第二狀態(tài)信息所示的處理器是否一致,在判斷為是假之時,產(chǎn)生第二例外中斷信號;〉所述硬件資源,在所述第二判斷電路判斷為一致之時,不等待擴展上下文數(shù)據(jù)的保存以及恢復(fù),而按照該規(guī)定指令立即工作。根據(jù)此構(gòu)成,由于數(shù)據(jù)判斷部以及處理器判斷部由硬件(第一判斷電路以及第二判斷電路)構(gòu)成,因此在硬件資源保持了目前正在執(zhí)行中的程序(即發(fā)出規(guī)定指令的程序) 的擴展上下文數(shù)據(jù)的情況下,既不會給其他的處理器帶來任何影響,又能夠高速地使用硬件資源。在此,也可以是,所述第一轉(zhuǎn)移部包括被設(shè)置在每個處理器的保存恢復(fù)部;各個保存恢復(fù)部,在產(chǎn)生了所述第一例外中斷信號的情況下,將擴展上下文數(shù)據(jù)從所述硬件資源保存到所述存儲器,將將要執(zhí)行所述規(guī)定指令的處理器的擴展上下文數(shù)據(jù),從所述存儲器恢復(fù)到所述硬件資源;所述多個處理器包括第一處理器和第二處理器;所述第一處理器通過執(zhí)行第一操作系統(tǒng),從而以時分多路復(fù)用來執(zhí)行多個程序;所述第二處理器通過執(zhí)行與第一操作系統(tǒng)不同的第二操作系統(tǒng),從而以時分多路復(fù)用來執(zhí)行多個程序;所述第一處理器內(nèi)的所述保存恢復(fù)部,在所述第一處理器內(nèi)的所述第一判斷電路產(chǎn)生了所述第一例外中斷信號之時,由所述第一操作系統(tǒng)啟動;所述第二處理器內(nèi)的所述保存恢復(fù)部,在所述第二處理器內(nèi)的所述第一判斷電路產(chǎn)生了所述第一例外中斷信號之時,由所述第二操作系統(tǒng)啟動。根據(jù)此構(gòu)成,能夠在執(zhí)行不同的操作系統(tǒng)(以下簡稱為OS)的處理器之間,共享硬件資源。在處理器的程序之間需要進(jìn)行硬件資源的擴展上下文數(shù)據(jù)的切換的情況下,能夠在不會給其他的OS帶來影響的情況下,在OS內(nèi)高效率地切換擴展上下文數(shù)據(jù)。在此,也可以是,所述多個處理器的至少一個執(zhí)行第三操作系統(tǒng),該第三操作系統(tǒng)管理所述第一操作系統(tǒng)和所述第二操作系統(tǒng);所述第二轉(zhuǎn)移部,在任一個所述第二判斷電路產(chǎn)生了所述第二例外中斷信號之時,由第三操作系統(tǒng)啟動。根據(jù)此構(gòu)成,能夠在執(zhí)行不同的操作系統(tǒng)(以下簡略成為OS)的處理器之間共享硬件資源。在執(zhí)行不同的OS的處理器之間需要進(jìn)行硬件資源的擴展上下文數(shù)據(jù)的切換的情況下,在第三OS的管理下,對擴展上下文數(shù)據(jù)進(jìn)行切換。據(jù)此,由于不論針對哪個處理器上的程序,擴展上下文數(shù)據(jù)的切換都能夠被隱蔽,因此能夠容易地使以往的程序流通。在此,也可以是,所述第三操作系統(tǒng),在任一個所述第二判斷電路產(chǎn)生了所述第二例外中斷信號之時,在該硬件資源正在執(zhí)行其他的處理器的規(guī)定指令的情況下,等待該硬件資源的釋放,在確保了該硬件資源之后,啟動所述第二轉(zhuǎn)移部。根據(jù)此構(gòu)成,即使在不同的OS的處理器之間發(fā)生了規(guī)定指令的競爭的情況下(硬件資源的使用發(fā)生了競爭的情況下),也能夠在第三OS的管理下容易地進(jìn)行調(diào)停。在此,也可以是,所述第二轉(zhuǎn)移部,從所述其他的處理器所對應(yīng)的擴展上下文數(shù)據(jù)從所述硬件資源保存到所述存儲器的工作開始,直到將要執(zhí)行所述規(guī)定指令的處理器的擴展上下文數(shù)據(jù)從所述存儲器恢復(fù)到所述硬件資源的工作的改善為止,連續(xù)地進(jìn)行處理。根據(jù)此構(gòu)成,由于第二轉(zhuǎn)移部從上述的保存開始直到恢復(fù)結(jié)束為止連續(xù)地進(jìn)行處理,因此不會在每個程序的上下文數(shù)據(jù)(尤其是第一狀態(tài)信息以及第二狀態(tài)信息)中產(chǎn)生矛盾,并且不會受到其他的處理器的干涉,能夠在不同的處理器之間共享硬件資源。在此,也可以是,各個處理器進(jìn)一步包括清除電路,該清除電路在該處理器遷移到停止?fàn)顟B(tài)、等待狀態(tài)、或停頓狀態(tài)之時,清除該處理器所對應(yīng)的第二狀態(tài)信息。根據(jù)此構(gòu)成,在一個處理器遷移到停止?fàn)顟B(tài)、等待狀態(tài)或停頓狀態(tài)之時,通過清除電路能夠釋放該處理器正在使用的硬件資源,從而能夠提高在多個處理器之間共享的硬件資源的使用效率。在此,也可以是,所述各個狀態(tài)寄存器保持第三狀態(tài)信息,該第三狀態(tài)信息示出是否鎖定第二狀態(tài)信息;所述第三操作系統(tǒng),在第三狀態(tài)信息示出鎖定第二狀態(tài)信息之時,禁止由所述清除電路清除第二狀態(tài)信息。根據(jù)此構(gòu)成,在使用硬件資源的處理器為固定的情況下,以及在硬件資源優(yōu)先被某個處理器使用的情況下,程序員通過將第三狀態(tài)信息設(shè)定為“鎖定”,從而該處理器能夠持續(xù)占有硬件資源,從而能夠減少不不要的擴展上下文數(shù)據(jù)的保存以及恢復(fù)。并且,本發(fā)明的處理器裝置的構(gòu)成也可以是,包括多線程處理器,該多線程處理器包括,通過同時執(zhí)行多個線程來切換多個程序的多個虛擬處理器;一個以上的硬件資源, 具有保持?jǐn)?shù)據(jù)的寄存器,輔助具有保持?jǐn)?shù)據(jù)的寄存器的所述多個虛擬處理器的指令執(zhí)行; 存儲器,按照所述多個程序中的包含利用所述硬件資源的規(guī)定指令的每個程序,記憶擴展上下文數(shù)據(jù),該擴展上下文數(shù)據(jù)是所述硬件資源內(nèi)的寄存器數(shù)據(jù)的復(fù)制;控制部,在所述硬件資源與所述存儲器之間,控制擴展上下文數(shù)據(jù)的保存與恢復(fù);第一判斷部,判斷目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在所述硬件資源內(nèi)的可能性;以及第二判斷部,判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù),是否屬于將要執(zhí)行所述規(guī)定指令的處理器;在由所述第一判斷部判斷出有所述可能性、且由所述第二判斷部判斷出所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)屬于將要執(zhí)行所述規(guī)定指令的處理器的情況下,所述控制部不進(jìn)行擴展上下文數(shù)據(jù)的保存以及恢復(fù),所述硬件資源執(zhí)行該規(guī)定指令。根據(jù)此構(gòu)成,具有與上述同樣的效果。在此,也可以是,所述控制部包括第一轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于同一個處理器的上下文數(shù)據(jù)恢復(fù);以及第二轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于不同的處理器的擴展上下文數(shù)據(jù)恢復(fù)。在此,也可以是,所述多個虛擬處理器的每一個至少與一個線程相對應(yīng);所述多線程處理器具有多個指令準(zhǔn)備部,取線程的指令并進(jìn)行譯碼;執(zhí)行部,同時執(zhí)行與一個以上的線程相對應(yīng)的一個以上的指令,并且這些指令是由所述多個指令準(zhǔn)備部譯碼的指令;以及狀態(tài)寄存器,被設(shè)置在每個指令準(zhǔn)備部;所述控制部,通過按照每個指令準(zhǔn)備部,將目前的線程替換為其他的線程,從而對所述多個虛擬處理器中的正在執(zhí)行中的虛擬處理器與不是正在執(zhí)行中的虛擬處理器進(jìn)行替換;各個狀態(tài)寄存器的數(shù)據(jù)的復(fù)制被包含在每個虛擬處理器的上下文數(shù)據(jù)中;各個狀態(tài)寄存器保持第一狀態(tài)信息和第二狀態(tài)信息,所述第一狀態(tài)信息,按照每個所述硬件資源示出,目前正在執(zhí)行中的虛擬處理器的擴展上下文數(shù)據(jù)是否有被保持在該硬件資源內(nèi)的可能性;所述第二狀態(tài)信息,按照每個所述硬件資源示出,與被保持在該硬件資源內(nèi)的擴展上下文數(shù)據(jù)相對應(yīng)的虛擬處理器;所述多線程處理器還包括清除電路,該清除電路在由于線程的替換而正在執(zhí)行中的虛擬處理器成為不是正在執(zhí)行中之時,對進(jìn)行了線程的替換的指令準(zhǔn)備部內(nèi)的狀態(tài)寄存器的第二狀態(tài)信息進(jìn)行清除。在此,也可以是,所述第一判斷部包括被設(shè)置在所述多個指令準(zhǔn)備部的每一個的數(shù)據(jù)判斷部;所述各個數(shù)據(jù)判斷部,在對應(yīng)的指令準(zhǔn)備部的線程將要執(zhí)行所述規(guī)定指令之時,通過判斷所述第一狀態(tài)信息是真還是假,來判斷目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在所述硬件資源內(nèi)的可能性;所述第二判斷部包括被設(shè)置在多個指令準(zhǔn)備部的每一個的處理器判斷部;所述各個處理器判斷部,在對應(yīng)的指令準(zhǔn)備部內(nèi)的所述數(shù)據(jù)判斷部判斷為是假之時,判斷對應(yīng)的指令準(zhǔn)備部的虛擬處理器是否與所述第二狀態(tài)信息所示的虛擬處理器一致,在判斷為是假之時,產(chǎn)生第二例外中斷信號;所述多線程處理器還包括清除電路,將由來自所述處理器判斷部的第二例外中斷信號而被啟動的第二例外中斷處理,作為操作系統(tǒng)的一部分的功能來執(zhí)行;所述操作系統(tǒng)包括所述硬件資源的獲得處理和等待所述硬件資源的釋放的等待處理;所述操作系統(tǒng)進(jìn)行以下工作在屬于使所述第二例外中斷信號產(chǎn)生的虛擬處理器所屬的指令準(zhǔn)備部以外的指令準(zhǔn)備部的虛擬處理器中,在該硬件資源不是正在使用中的情況下,作為獲得處理,將示出為真的第一狀態(tài)信息和示出使所述第二例外中斷信號產(chǎn)生的虛擬處理器的第二狀態(tài)信息,設(shè)定到使所述第二例外中斷信號產(chǎn)生的指令準(zhǔn)備部內(nèi)的狀態(tài)寄存器;在使所述第二例外中斷信號產(chǎn)生的虛擬處理器所屬的指令準(zhǔn)備部以外的指令準(zhǔn)備部,在虛擬處理器中該硬件資源為正在使用中的情況下, 進(jìn)行所述等待處理。通過這種構(gòu)成,能夠?qū)⒂布Y源(例如FPU以及硬件加速器等擴展運算單元)在多個處理器中效率良好地共享。即不論哪個處理器都能夠使用各個硬件資源。因此,能夠提高硬件資源的使用效率。由于無需使每個處理器都具備硬件資源,因此,只需要應(yīng)對所需要的處理性能的數(shù)量最少的硬件資源即可,因此能夠減小電路規(guī)模或者對電路規(guī)模進(jìn)行最佳化。


      圖1是示出實施例1中的處理器裝置的構(gòu)成的方框圖。圖2是實施例1中的狀態(tài)寄存器部內(nèi)的第一至第三狀態(tài)信息的一個例子的圖。圖3是有關(guān)實施例1中的處理器裝置中的操作系統(tǒng)的說明圖。圖4是示出實施例1中的硬件資源切換工作的流程圖。圖5示出了實施例1中的第三操作系統(tǒng)所管理的數(shù)據(jù)的一個例子。圖6是示出實施例1中的硬件資源切換工作的詳細(xì)流程圖。圖7是實施例2所涉及的處理器系統(tǒng)的構(gòu)成的方框圖。圖8是實施例2所涉及的處理器塊的構(gòu)成的方框圖。圖9示出了實施例2所涉及的上下文的構(gòu)成。圖10示出了實施例2所涉及的邏輯地址空間的管理。圖11示出了實施例2所涉及的地址管理表的構(gòu)成。圖12示出了實施例2中的邏輯地址的對應(yīng)關(guān)系。圖13示出了實施例2所涉及的條目指定寄存器的構(gòu)成。
      圖14示出了實施例2所涉及的TLB(旁路轉(zhuǎn)換緩沖)所進(jìn)行的條目的分配處理。圖15是實施例2所涉及的TLB所進(jìn)行的處理的流程圖。圖16示出了實施例2所涉及的物理保護(hù)寄存器的構(gòu)成。圖17示出了在實施例2中,由PVID保護(hù)的物理地址空間。圖18示出了實施例2所涉及的保護(hù)違反寄存器的構(gòu)成。圖19示出了實施例2所涉及的錯誤地址寄存器的構(gòu)成。圖20示出了實施例2所涉及的FPU分配寄存器的構(gòu)成。圖21示出了實施例2所涉及的FPU分配部所進(jìn)行的FPU的分配處理。圖22A示出了實施例2所涉及的路(way)指定寄存器的構(gòu)成。圖22B示出了實施例2所涉及的路指定寄存器的構(gòu)成。圖23在模式上示出了實施例2所涉及的高速緩沖存儲器所進(jìn)行的路(way)的分配處理。圖M是實施例2所涉及高速緩沖存儲器所進(jìn)行的處理的流程圖。圖25示出了實施例2所涉及的中斷控制寄存器的構(gòu)成。圖沈示出了實施例2所涉及的處理器系統(tǒng)中的存儲器存取管理。圖27示出了實施例2所涉及的存儲器IF塊所進(jìn)行的總線帶寬的分配。圖觀是實施例2所涉及的處理器系統(tǒng)中的資源分割處理的流程圖。
      具體實施例方式(實施例1)在本實施例中的處理器裝置中,在多個處理器之間共享硬件資源,該處理器裝置包括第一判斷部,判斷在硬件資源內(nèi)的寄存器中,是否保持有目前正在執(zhí)行中的某個程序的擴展上下文數(shù)據(jù);第二判斷部,判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)與哪個處理器相對應(yīng);第一轉(zhuǎn)移部,在處理器內(nèi)的程序之間進(jìn)行擴展上下文數(shù)據(jù)的保存與恢復(fù);以及第二轉(zhuǎn)移部,在處理器之間的程序之間進(jìn)行擴展上下文數(shù)據(jù)的保存與恢復(fù)。圖1是示出本發(fā)明的實施例1中的處理器裝置的構(gòu)成的方框圖。該處理器裝置包括指令準(zhǔn)備部210、220和230、執(zhí)行流水線部M0、控制部250、硬件資源260和270、以及存儲器 310、320、330。指令準(zhǔn)備部210、220、230以及執(zhí)行流水線部240構(gòu)成多線程處理器。指令準(zhǔn)備部 210、220、230分別獨立地從線程(程序)中取指令并譯碼,并將譯碼結(jié)果發(fā)行到執(zhí)行流水線部 240。執(zhí)行流水線部240包括多個功能單元(ALU、加載/存儲單元、分支處理單元、乘法器、除法器等),在多個功能單元中同時執(zhí)行多個指令譯碼結(jié)果中的能夠執(zhí)行的指令。由于一個指令準(zhǔn)備部與執(zhí)行流水線部240所組成的組實際上作為一個處理器來發(fā)揮功能,因此稱為虛擬處理器或邏輯處理器。即,指令準(zhǔn)備部210、220、230以及執(zhí)行流水線部240相當(dāng)于三個虛擬處理器0 2。各個虛擬處理器一邊切換程序一邊執(zhí)行。另外,也可以取代指令準(zhǔn)備部210、220、230以及執(zhí)行流水線部M0,而具備獨立工作的多個物理處理器。以下,在沒有特別需要區(qū)分三個虛擬處理器0 2 (邏輯處理器)和三個物理處理器的情況下,簡單稱為處理器0 2。
      存儲器310、320和330具有與三個處理器相對應(yīng)的地址空間。存儲器310記憶程序、程序的通常的上下文數(shù)據(jù)311、硬件資源的擴展上下文數(shù)據(jù)312等。存儲器320和330 也是同樣。三個存儲器310、320和330的物理地址空間為一個,而具有三個獨立的虛擬地址空間。另外,三個存儲器310、320和330也可以具有三個獨立的物理地址空間。并且,也可以將上下文數(shù)據(jù)311、321和331存儲到其他的上下文數(shù)據(jù)專用的存儲器。指令準(zhǔn)備部210包括從存儲器310中取指令的指令取出部211、譯碼被取出的指令的指令譯碼部212、狀態(tài)寄存器部213、寄存器部214、第一判斷部215以及第二判斷部 216。指令準(zhǔn)備部220包括從存儲器320中取指令的指令取出部221、譯碼被取出的指令的指令譯碼部222、狀態(tài)寄存器部223、寄存器部224、第一判斷部225、以及第二判斷部 226。指令準(zhǔn)備部230包括從存儲器330中取指令的指令取出部231、譯碼被取出的指令的指令譯碼部232、狀態(tài)寄存器部233、寄存器部234、第一判斷部235、以及第二判斷部 236。狀態(tài)寄存器部213以及寄存器部214的各個數(shù)據(jù)構(gòu)成正在執(zhí)行中的程序的上下文數(shù)據(jù)。狀態(tài)寄存器部223以及寄存器部224也是同樣。狀態(tài)寄存器部233以及寄存器部 234也是同樣??刂撇?50具有第一轉(zhuǎn)移部251和第二轉(zhuǎn)移部252,在硬件資源260和270以及存儲器310、320和330之間控制擴展上下文數(shù)據(jù)的保存和恢復(fù)。硬件資源260和270分別具有保持?jǐn)?shù)據(jù)的寄存器群261和271,輔助多個處理器。各個硬件資源例如可以是FPU(浮點處理單元Floating Point number processing Unit)、硬件加速器、擴展運算單元等。FPU執(zhí)行程序中的浮點運算指令(以下稱為FPU指令)。硬件加速器從處理器中接受指令,針對被指定的數(shù)據(jù)高速執(zhí)行乘累加運算、蝶形運算、 數(shù)據(jù)塊的量化或逆量化等。擴展運算單元執(zhí)行處理器所不能直接執(zhí)行的擴展指令(乘法指令、除法指令、擴展運算單元所專用的指令等)。寄存器群261、271分別保持對應(yīng)的硬件資源的上下文(以下稱為擴展上下文數(shù)據(jù))。各個硬件資源由多個處理器共享。在此,擴展上下文數(shù)據(jù)在各個處理器的程序的上下文數(shù)據(jù)的保存與恢復(fù)中是非同步進(jìn)行的。即,處理器實際上執(zhí)行利用硬件資源的規(guī)定指令 (上述的FPU指令、命令、擴展指令),只有在需要該擴展上下文數(shù)據(jù)時才被保存以及恢復(fù)。存儲器310記憶上下文數(shù)據(jù)311和擴展上下文數(shù)據(jù)312,所述上下文數(shù)據(jù)311是由多個處理器進(jìn)行了時分多路復(fù)用的各個程序的上下文數(shù)據(jù),所述擴展上下文數(shù)據(jù)312是按照多個程序中的、利用硬件資源的、包含規(guī)定指令的程序的每一個的,所述硬件資源內(nèi)的寄存器數(shù)據(jù)的復(fù)制。同樣,存儲器320記憶上下文數(shù)據(jù)321和擴展上下文數(shù)據(jù)322。存儲器 330記憶上下文數(shù)據(jù)331和擴展上下文數(shù)據(jù)332。第一判斷部215,在對應(yīng)于指令準(zhǔn)備部210的處理器將要執(zhí)行程序中的規(guī)定指令時,判斷硬件資源內(nèi)的寄存器中是否保持有目前正在執(zhí)行的程序的擴展上下文數(shù)據(jù)。第二判斷部216判斷硬件資源內(nèi)的擴展上下文數(shù)據(jù),是否屬于將要執(zhí)行該規(guī)定指令的處理器。第一轉(zhuǎn)移部251按照第一判斷部215以及第二判斷部216的判斷結(jié)果,從硬件資源中將擴展上下文數(shù)據(jù)保存到存儲器310、320、330的某一個,并將屬于與保存的擴展上下文數(shù)據(jù)相同的處理器(或相同的存儲器)的上下文數(shù)據(jù)恢復(fù)?;謴?fù)后,硬件資源260或270 執(zhí)行該規(guī)定指令。第二轉(zhuǎn)移部252按照第一判斷部215以及第二判斷部216的判斷結(jié)果,從硬件資源將擴展上下文數(shù)據(jù)保存到存儲器310、320、330的某一個,將屬于與保存的擴展上下文數(shù)據(jù)不同的處理器(或不同的存儲器)的上下文數(shù)據(jù)恢復(fù)?;謴?fù)后,硬件資源260或270執(zhí)行該規(guī)定指令。硬件資源260或270,在由第一判斷部215判斷出目前正在執(zhí)行的程序的擴展上下文數(shù)據(jù)被保持在硬件資源內(nèi)的寄存器中,并且在由第二判斷部216判斷出硬件資源內(nèi)的擴展上下文數(shù)據(jù)屬于將要執(zhí)行該規(guī)定指令的處理器的情況下,不等待擴展上下文數(shù)據(jù)的保存以及恢復(fù),而立即執(zhí)行該規(guī)定指令。通過以上的構(gòu)成,各個硬件資源260或270能夠在多個處理器中共享。即,不論哪個處理器都能夠使用各個硬件資源。因此,能夠提高硬件資源的使用效率。并且,由于無需按每個處理器來具備硬件資源,因此,只要具備與所需的處理性能相對應(yīng)的所需數(shù)量最小限的硬件資源就可以,從而能夠減小電路規(guī)?;蚰軌蜻M(jìn)行最佳化。圖2示出了本發(fā)明的實施例1中的狀態(tài)寄存器部內(nèi)的第一至第三狀態(tài)信息的一個例子。該圖示出了狀態(tài)寄存器部213、223、或233的一部分。在此,以狀態(tài)寄存器部213 為例進(jìn)行說明。狀態(tài)寄存器部213包括被稱為PSRO^rocessor Status Register 處理機狀態(tài)寄存器)的寄存器、和被稱為 LPFOSR(Logical Processor FPU Operation Status Register)的寄存器。其中,PSR(Processor Status Register :處理機狀態(tài)寄存器)被包含在程序的上下文數(shù)據(jù)311中。LPFOSR或者被包含在程序的上下文數(shù)據(jù)311中,或者不被包含在程序的上下文數(shù)據(jù)311中而由另外的OS(操作系統(tǒng))來管理。PSR中包含作為第一狀態(tài)信息的FE (FPU Enable)位,所述第一狀態(tài)信息示出了, 目前正在執(zhí)行的程序的擴展上下文數(shù)據(jù)有被保持在硬件資源內(nèi)的可能性。LPFOSR 包含作為第二狀態(tài)信息的 LPFEO (Logical Processor FPU Enable 0)和 LPFEl位,所述第二狀態(tài)信息示出與被保持在硬件資源內(nèi)的擴展上下文數(shù)據(jù)相對應(yīng)的處理器。LPFE0、LPFEl位,僅在排他性地某一個為1比特時成為“1”,或者是全部成為“0”。在該例子中,LPFEO位與處理器0相對應(yīng),LPFEl位與處理器1以及2相對應(yīng)。LPFOSR還包括第三狀態(tài)信息(FL位),該第三狀態(tài)信息示出是否鎖定第二狀態(tài)信息。即,正在執(zhí)行的程序的PSR的FE位示出了,擴展上下文數(shù)據(jù)有被保持在硬件資源內(nèi)的可能性,而且,在由LPFEO或LPFEl示出了,正在執(zhí)行該程序的處理器與被保持在硬件資源內(nèi)的擴展上下文數(shù)據(jù)相對應(yīng)的情況下,該處理器則能夠使用由LPFEO或LPFEl所示的某一個硬件資源。第一判斷部215包括第一判斷電路(數(shù)據(jù)判斷部),該第一判斷電路在對應(yīng)的處理器將要執(zhí)行程序中的所述規(guī)定指令之時,判斷所述第一狀態(tài)信息是真還是假,在判斷為是假之時,產(chǎn)生第一例外中斷信號。第二判斷部216包括第二判斷電路(處理器判斷部),該第二判斷電路在對應(yīng)的第一判斷電路判斷為假的情況下,判斷對應(yīng)的處理器與所述第二狀態(tài)信息所表示的處理器是否一致,在判斷為假之時,生成第二例外中斷信號。第一以及第二判斷電路由硬件構(gòu)成。這樣,尤其在不需要替換擴展上下文數(shù)據(jù)的情況下,能夠使處理高速化。圖3是本發(fā)明的實施例1中的處理器裝置中的操作系統(tǒng)的說明圖。在該圖中,處理器0 2與三個虛擬處理器或三個物理處理器相對應(yīng)。處理器0通過執(zhí)行第一操作系統(tǒng)(以下略稱為OS),從而以時分多路復(fù)用來執(zhí)行多個程序。處理器1以及2通過執(zhí)行與第一 OS不同的第二 0S,從而以時分多路復(fù)用來執(zhí)行多個程序。第一 OS例如是Linux,第二 OS例如是實時OS。第一轉(zhuǎn)移部251包括按照每個處理器而被設(shè)置的保存恢復(fù)部251a、251b、251c。各個保存恢復(fù)部,在第一例外中斷信號產(chǎn)生的情況下,將擴展上下文數(shù)據(jù)從所述硬件資源中保存到所述存儲器,并從所述存儲器中將將要執(zhí)行所述規(guī)定指令的處理器的擴展上下文數(shù)據(jù)恢復(fù)到所述硬件資源,在處理器0內(nèi)的第一判斷部215產(chǎn)生了第一例外中斷信號之時,處理器0內(nèi)的所述保存恢復(fù)部251a由第一 OS啟動。在處理器1以及2的第一判斷部225、235產(chǎn)生了第一例外中斷信號之時,處理器 1以及2的保存恢復(fù)部251b、251c由第二 OS啟動。處理器0 2之中的至少一個,通過執(zhí)行管理第一 OS和第二 OS的第三0S,來控制第二轉(zhuǎn)移部252。也就是說,在某一個第二判斷部產(chǎn)生了第二例外中斷信號之時,第二轉(zhuǎn)移部252由第三操作系統(tǒng)啟動。在屬于其他的處理器的擴展上下文數(shù)據(jù),從硬件資源保存到存儲器310、320、330的某一個的工作開始之時,直到將要執(zhí)行所述規(guī)定指令的處理器的擴展上下文數(shù)據(jù)從所述存儲器恢復(fù)到所述硬件資源的工作結(jié)束為止,被啟動的第二轉(zhuǎn)移部 252連續(xù)地進(jìn)行處理。據(jù)此,在每個程序的上下文數(shù)據(jù)(尤其是第一狀態(tài)信息以及第二狀態(tài)信息)中不會產(chǎn)生矛盾,也不會受到其他的處理器的干擾,并且能夠在不同的處理器之間共享硬件資源。而且,第三OS控制清除部253。清除部253是每個處理器所具備的清除電路的總稱。各個清除電路在與該清除電路相對應(yīng)的處理器遷移到停止?fàn)顟B(tài)、等待狀態(tài)或停頓狀態(tài)之時,清除與該處理器相對應(yīng)的第二狀態(tài)信息(LPFE0以及LPFEl位)。據(jù)此,能夠釋放該處理器所使用的硬件資源,并能夠提高在多個處理器被共享的硬件資源的使用效率。但是,在第三狀態(tài)信息(FL位)被設(shè)定(FL= 1)的情況下,清除電路的工作被禁止。據(jù)此,在使用硬件資源的處理器為固定的情況下,以及硬件資源由某個處理器優(yōu)先使用的情況下,程序員通過將第三狀態(tài)信息設(shè)定為“鎖定”,從而硬件資源能夠由該處理器持續(xù)占有,從而能夠減少不必要的擴展上下文數(shù)據(jù)的保存以及恢復(fù)。圖4是示出本發(fā)明的實施例1中的硬件資源切換工作的概略的流程圖。在該圖中示出了,處理器0 2之中的某一個處理器的工作。在此,以該圖示出處理器0的工作,以及硬件資源是FPU為例進(jìn)行說明。在處理器0將要執(zhí)行FPU指令之時(FPU指令的執(zhí)行請求由處理器0通過硬件來檢測出之時)(S30),判斷FPU寄存器是否為不能使用(S31)?!癋PU寄存器不能使用”的意思是,F(xiàn)E = 1、且LPFEO = 1(或者LPFEl = 1)的情況,在FPU寄存器中保持有屬于發(fā)出FPU 指令的執(zhí)行請求的處理器0的程序的擴展上下文數(shù)據(jù)。該判斷是由第一判斷電路以及第二判斷電路在幾乎沒有延遲時間的情況下被執(zhí)行的。在這種情況下,F(xiàn)PU指令立即由LPFEO或LPFEl中示出1的一方所對應(yīng)的FPU來執(zhí)行(S34)。而且,在“FPU寄存器不能使用”的情況下,判斷FPU寄存器中是否保持有屬于其他的處理器的擴展上下文數(shù)據(jù)(S32)。該判斷由第一判斷電路以及第二判斷電路執(zhí)行。在FPU寄存器保持有屬于相同處理器0的擴展上下文數(shù)據(jù),但不是當(dāng)前處理器O正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)的情況下,也就是說,該處理器的PSR的FE位為1,LPFOSR的LPFEl或LPFEO的某一個為1的情況下,進(jìn)行LP內(nèi)的上下文切換(S36)。 LP (Logical Processor 邏輯處理器)內(nèi)的上下文切換由第一轉(zhuǎn)移部251執(zhí)行。在FPU寄存器中保存有屬于不同的處理器1或2的擴展上下文數(shù)據(jù)的情況下,即該處理器的LPFOSR的LPFEl和LPFEO均為0的情況下,進(jìn)行LP間的上下文切換(S41)。 LP (Logical Processor 邏輯處理器)間的上下文切換由第二轉(zhuǎn)移部252執(zhí)行。在LP內(nèi)或LP間上下文切換之后,F(xiàn)PU指令立即由FPU執(zhí)行(S34)。上述的步驟中,S30、S31、S32由處理器內(nèi)的硬件執(zhí)行。SM由FPU執(zhí)行。S36在第一 OS的控制下,由第一轉(zhuǎn)移部251執(zhí)行。S41在第一 OS的控制下,由第二轉(zhuǎn)移部252執(zhí)行。圖5示出了本發(fā)明的實施例1中的第三OS所管理的數(shù)據(jù)的一個例子。該圖的表Tl是,將處理器的ID(在此為LPID)與將要使用的硬件資源(在此為 FPUO和FPU1)對應(yīng)起來的表。表T2是,將FPU編號、占有目前FPU的處理器ID(LPID)、以及鎖定屬性(FL比特)對應(yīng)起來的表。第三OS不停地分別將表T1、T2更新為最新狀態(tài),在軟件上管理FPU。第三OS參考這樣的表,進(jìn)行(I)FPUOU與LPID的相關(guān)聯(lián)(應(yīng)該重新分配給LP的 FPU的選擇),O)使用當(dāng)前的FPU0、1的LPID,(3)目前正在使用FPUn的LP的鎖定屬性的管理。更具體而言,(1)第三OS管理各個LP準(zhǔn)備使用哪個FPUn (在軟件上管理各個LP 準(zhǔn)備使用的FPUn),決定將圖2所示的LPFOSR內(nèi)的LPFE0、LPFEl設(shè)定為哪個比特。即,能夠管理在各個LP使用哪個FPUn的上下文。(2)第三OS通過管理目前正在使用FPU0、1的LPID,從而管理現(xiàn)狀的FPU0、1是由哪個處理器使用,以及是否馬上要被使用,并將LP間的上下文恢復(fù)和保存作為連續(xù)的操作
      來管理。(3)第三OS能夠通過軟件來進(jìn)行使用FPUn的LP的鎖定管理,并能夠通過軟件來管理FPUn的鎖定屬性。據(jù)此,關(guān)于FPU的占有狀態(tài),能夠由自身LP來鎖定,也可以從其他的LP中解除。圖6是示出本發(fā)明的實施例1中的硬件資源切換工作的詳細(xì)流程圖。在該圖中分別示出了,由處理器的硬件執(zhí)行的步驟、由第一 OS或第二 OS執(zhí)行的步驟、以及由第三OS執(zhí)行的步驟。在該圖中示出了處理器0 3中的某一個處理器的工作。在此,以該圖表示處理器0的工作、硬件資源是FPU為例進(jìn)行說明。處理器0在將要執(zhí)行FPU之時(在處理器0通過硬件檢測出FPU指令的執(zhí)行請求之時)(S30),第一判斷部215通過判斷PSR內(nèi)的FE位(第一狀態(tài)信息)是真還是假,來判斷FPU寄存器是是否能夠使用(S31),而且,第二判斷部216判斷LPFEO和1位(第二狀態(tài)信息)的某一個位是否為真(S32)。據(jù)此,在FE = 1且L0FE0 = 1的情況下,意味著在FPU 寄存器保持有,屬于發(fā)出了 FPU執(zhí)行的執(zhí)行請求的寄存器0的程序的擴展上下文數(shù)據(jù)。該判斷是由第一判斷電路以及第二判斷電路在幾乎沒有延遲時間的狀態(tài)下進(jìn)行的。在這種情況下,F(xiàn)PU指令立即由FPU執(zhí)行(S33)。并且,第一判斷部215在FE = 0的情況下(FPU寄存器為不能使用的情況下),產(chǎn)生第一例外中斷信號(S34)。據(jù)此,控制移向第一 OS或第二 OS(在此為第一 OS)。第一 OS 為了確保FPU(在此為FPU0)而設(shè)定FE= 1(S35),并按照需要進(jìn)行OS內(nèi)的FPU的上下文的保存與恢復(fù)。在第二判斷部216判斷為FPUO內(nèi)的擴展上下文數(shù)據(jù)屬于同一個處理器的情況下,將擴展上下文數(shù)據(jù)從FPUO保存到存儲器310,并恢復(fù)將要執(zhí)行目前正在執(zhí)行中的 FPU指令的程序的擴展上下文數(shù)據(jù)(S36),從中斷處理開始返回(S37)。據(jù)此,將要執(zhí)行FPU 指令的程序就像什么都沒有發(fā)生那樣,經(jīng)過S31 (True:真)、S32 (True:真)的判斷。據(jù)此, FPUO執(zhí)行FPU指令。另外,雖然第一 OS設(shè)定為FE = 1 (S36),將要保存FPUO內(nèi)的擴展上下文數(shù)據(jù),但是在由第二判斷部216判斷為FPUO內(nèi)的擴展上下文數(shù)據(jù)屬于其他的處理器的情況下,產(chǎn)生第二例外中斷信號(S38)。據(jù)此,控制遷移到第三OS。接受了第二例外中斷信號的第三0S,為了確保FPUO的使用權(quán)而設(shè)定LPFEO = l(S38a),判斷是否確保了 FPUO的使用權(quán)(S38b),在能夠確保的情況下,參照表T2,判斷目前占有FPUO的處理器(FPU0-LPID)與將要執(zhí)行FPU指令的處理器是否為同一個(S40),如果不相同進(jìn)行不同的處理器間的上下文替換(S41),退出中斷處理(S42)。在不能確保FPUO的情況下(不管是否將1寫入到LPFEO,在LPFEO = 0的情況下,即在由其他的物理處理器確保了 FPUO的情況下),第三OS直到FPUO被釋放為止進(jìn)入等待處理(S39)。在該等待處理中,可以通過輪詢、事件等待等來檢查是否被釋放。并且,在S40,在目前占有FPUO的處理器(FPU0-LPID)與將要執(zhí)行FPU指令的處理器相同的情況下,由于不需要上下文替換,因此直接退出中斷處理。該例子是在處理器執(zhí)行的程序在一旦成為間歇狀態(tài)、停止?fàn)顟B(tài)的情況下,因FE位被清除而引起的。以下,對上述的處理中的接受了第二例外中斷信號的第三OS處理進(jìn)行進(jìn)一步地詳細(xì)說明。圖3所示的第三0S,將由來自第二判斷部216、2沈、236的各個第二例外中斷信號啟動的第二例外中斷處理,作為操作系統(tǒng)的一部分功能來執(zhí)行。第三OS為了支持第二例外中斷處理,而包括所述硬件資源的獲得處理和所述硬件資源的釋放等待處理等。第三OS在獲得處理中,在屬于產(chǎn)生了第二例外中斷信號的虛擬處理器所屬的指令準(zhǔn)備部以外的指令準(zhǔn)備部的虛擬處理器中,在該硬件資源不是正在被使用的情況下(情況1),將表示真的第一狀態(tài)信息和表示產(chǎn)生了所述第二例外中斷信號的處理器的第二狀態(tài)信息,設(shè)定到產(chǎn)生了第二例外中斷信號的指令準(zhǔn)備部內(nèi)的狀態(tài)寄存器。表示真的第一狀態(tài)信息示出了,目前正在執(zhí)行的程序的擴展上下文數(shù)據(jù)有被保持在硬件資源內(nèi)的可能性。在上述步驟S38b中,被判斷為FPUO的使用權(quán)已被確保的情況為情況1。并且,第三OS在與產(chǎn)生了第二例外中斷信號的虛擬處理器所屬的指令準(zhǔn)備部以外的指令準(zhǔn)備部相對應(yīng)的虛擬處理器中,在該硬件資源為正在被使用的情況下(情況2), 執(zhí)行等待所述硬件資源的釋放的等待處理。在上述步驟S38b中,被判斷為FPUO的使用權(quán)沒有被確保,且進(jìn)入到步驟S39 (等待處理)的情況為情況2。在步驟S38b,獲得硬件資源的處理例如具有用于對資源進(jìn)行排他控制的MUTEX等的管理對象,并且可以利用這樣的管理對象。如以上說明,通過本實施例的處理器裝置,能夠在多個處理器共享各個硬件資源。 即,不論在哪個處理器都能夠使用各個硬件資源。因此,能夠提高硬件資源的使用效率。由于無需使每個處理器都具備硬件資源,因此只需要按照所需的處理性能具備所需最小限的數(shù)量的硬件資源即可,從而能夠減小電路規(guī)?;蚰軌蜻M(jìn)行最佳化。能夠在多個處理器高效率地共享FPU以及硬件資源加速器等擴展運算單元,并能夠使擴展上下文數(shù)據(jù)的保存以及恢復(fù)成為最小限度。(實施例2)在本實施例中,對將在實施例1說明的處理器裝置適用于媒體處理器的情況的構(gòu)成進(jìn)行說明。本實施例所涉及的處理器系統(tǒng)包括單一的處理器塊,該單一的處理器塊共享資源,進(jìn)行主處理和媒體處理。處理器塊具有與實施例1的處理器裝置相同的功能,并且,由單一的處理器裝置進(jìn)行,該單一的處理器裝置共享資源,進(jìn)行主處理和媒體處理。本發(fā)明的實施例所涉及的處理器系統(tǒng)在針對主處理的線程和媒體處理的線程給予不同的標(biāo)簽信息的同時,將處理器系統(tǒng)所具有的資源與該標(biāo)簽信息對應(yīng)起來分割。據(jù)此,本發(fā)明的實施例所涉及的處理器系統(tǒng)不僅能夠提高面積優(yōu)化,而且能夠保證性能以及提高堅固性。首先,對本發(fā)明的實施例所涉及的處理器系統(tǒng)的構(gòu)成進(jìn)行說明。圖7是示出實施例2所涉及的處理器系統(tǒng)10的基本構(gòu)成的功能方框圖。該處理器系統(tǒng)10是進(jìn)行與影像聲音流有關(guān)的各種信號處理的系統(tǒng)LSI,利用外部存儲器15來執(zhí)行多個線程。例如,處理器系統(tǒng)10被搭載于數(shù)字電視系統(tǒng)、DVD記錄器、數(shù)字相機以及便攜式電話等。該處理器系統(tǒng)10包括處理器塊11、流1/0(輸入/輸出)塊 12、AVIO(Audio Visual Input Output 音頻視頻輸入輸出)塊13、以及存儲器IF(接口) 塊14。處理器塊11與實施例1中所說明的處理器裝置相同。以下,省略相同之處,以不同之處為中心進(jìn)行說明。處理器塊11是控制整個處理器系統(tǒng)10的處理器,通過控制總線16來控制流I/O 塊12、AVIO塊13、以及存儲器IF塊14,并通過數(shù)據(jù)總線17以及存儲器IF塊14來針對外部存儲器15進(jìn)行存取。并且,處理器塊11是一電路塊,通過數(shù)據(jù)總線17以及存儲器IF塊 14,從外部存儲器15讀出壓縮圖像聲音流等圖像聲音數(shù)據(jù),在進(jìn)行了壓縮或擴展等媒體處理之后,再次通過數(shù)據(jù)總線17以及存儲器IF塊14,將處理后的圖像數(shù)據(jù)或聲音數(shù)據(jù)存儲到外部存儲器15。S卩,處理器塊11進(jìn)行主處理和媒體處理,所述主處理是指,不依存于影像聲音的輸出周期(幀率等)的非實時的通用(與控制相關(guān)聯(lián)的)處理,所述媒體處理是指,依存于影像聲音的輸出周期的實時的通用(與媒體相關(guān)聯(lián)的)處理。例如,處理器系統(tǒng)10搭載于數(shù)字電視系統(tǒng)的情況下,主處理進(jìn)行該數(shù)字電視系統(tǒng)的控制,媒體處理進(jìn)行數(shù)字影像的擴展。流I/O塊12是一電路塊,在由處理器塊11所進(jìn)行的控制下,從蓄積媒體以及網(wǎng)絡(luò)等周邊設(shè)備中,讀取壓縮圖像聲音流等流數(shù)據(jù),通過數(shù)據(jù)總線18以及存儲器IF塊14,存儲到外部存儲器15,或進(jìn)行相反方向的流傳送。這樣,流I/O塊12進(jìn)行不依存于影像聲音的輸出周期的非實時的IO處理。AVIO塊13是一電路塊,在由處理器塊11所進(jìn)行的控制下,通過數(shù)據(jù)總線19以及存儲器IF塊14從外部存儲器15中讀出圖像數(shù)據(jù)以及聲音數(shù)據(jù)等,在施行了各種圖形處理等之后,作為圖像信號以及聲音信號輸出到外部的顯示裝置以及揚聲器等,或進(jìn)行相反方向的數(shù)據(jù)傳送。這樣,AVIO塊13進(jìn)行依存于影像聲音的輸出周期的實時的10(輸入輸出)處理。存儲器IF塊14是一電路塊,在由處理器塊11所進(jìn)行的控制下,進(jìn)行控制,以使得在處理器塊11、流I/O塊12、AVIO塊13、以及存儲器IF塊14和外部存儲器15之間,并行地進(jìn)行數(shù)據(jù)請求。并且,存儲器IF塊14按照來自處理器塊11的請求,在確保處理器塊11、 流I/O塊12、AVI0塊13、以及存儲器IF塊14和外部存儲器15之間的傳輸頻帶的狀態(tài)下, 保證等待時間。接著,對處理器塊11的詳細(xì)構(gòu)成進(jìn)行說明。圖8是示出處理器塊11的構(gòu)成的功能方框圖。該處理器塊11包括執(zhí)行部101、VMPC (虛擬多處理器控制部)102、 TLB (Translation Lookaside Buffer :旁路轉(zhuǎn)換緩沖)104、物理地址管理部 105、 FPU (Floating Point number processing Unit :浮點處理單元)107、FPU 分配部 108、高速緩沖存儲器109、B⑶110、以及中斷控制部111。在此,處理器塊11作為虛擬多處理器(VMP :Virtual Multi ftOcessor)發(fā)揮作用。虛擬多處理器一般是指指令并行處理器的一種,其將多個邏輯處理器(LP=Logical Processor)的功能以時間分割來表現(xiàn)。在此,一個LP實質(zhì)上與被設(shè)定在物理處理器(PP Physical Processor)的寄存器群的一個上下文相對應(yīng)。通過管理分配到各個LP的時間單位(時隙Time Slot)的頻度,從而能夠保證由各個LP執(zhí)行的應(yīng)用程序間的負(fù)載平衡。另外,至于VMP的構(gòu)成以及工作,其中具有代表性的一個例子已經(jīng)由日本特開2003-271399號公報(專利文獻(xiàn)3)詳細(xì)公開,因此在此省略詳細(xì)說明。并且,處理器塊11作為多線程流水線型處理器(多線程處理器)發(fā)揮作用。多線程流水線型處理器通過同時處理多個線程,并且為了不使執(zhí)行流水線空閑而處理多個線程,從而能夠提高處理效率。另外,至于多線程流水線型處理器的構(gòu)成以及工作,作為一個代表例子由于已經(jīng)由日本特開2008-123045號公報(專利文獻(xiàn)4)詳細(xì)公開,因此在此省略詳細(xì)說明。執(zhí)行部101同時執(zhí)行多個線程。該執(zhí)行部101包括多個物理處理器121、運算控制部122、以及運算部123。多個物理處理器121分別包括寄存器。每個寄存器保持一個以上的上下文124。 在此,上下文IM是指,與多個線程(LP)的每一個對應(yīng),為了執(zhí)行對應(yīng)的線程而所需的控制信息以及數(shù)據(jù)信息等。各個物理處理器121取線程(程序)中的指令并譯碼,將譯碼結(jié)果發(fā)行到運算控制部122。運算部123具有多個運算器,同時執(zhí)行多個線程。運算控制部122進(jìn)行多線程流水線型處理器中的流水線控制。具體而言,運算控制部122為了不使執(zhí)行流水線空閑,而將多個線程分配給具有運算部123的運算器之后執(zhí)行。
      VMPC102控制虛擬多線程處理。該VMPC102包括排程器126、上下文存儲器127、 以及上下文控制部128。排程器1 是硬件排程器,按照多個線程的優(yōu)先級,進(jìn)行決定多個線程的執(zhí)行順序以及執(zhí)行線程的PP的調(diào)度。具體而言,排程器1 通過將LP分配到PP或取消該分配, 來切換執(zhí)行部101所執(zhí)行的線程。上下文存儲器127記憶分別與多個LP對應(yīng)的多個上下文124。另外,該上下文存儲器127或多個物理處理器121所具備的寄存器相當(dāng)于本發(fā)明的保持單元。上下文控制部1 進(jìn)行所謂的上下文的恢復(fù)以及保存。具體而言,上下文控制部 128將執(zhí)行結(jié)束了的物理處理器121所保持的上下文IM寫入到上下文存儲器127。并且, 上下文控制部1 從上下文存儲器127中讀出今后將要執(zhí)行的線程的上下文124,并將讀出的上下文1 轉(zhuǎn)送到與該線程相對應(yīng)的LP所指派的物理處理器121。圖9是示出一個上下文124的構(gòu)成的圖。并且,圖9中沒有示出用于執(zhí)行線程的所需的通常的控制信息以及通常的數(shù)據(jù)信息等,僅示出了新被附加到上下文1 的信息。如圖9所示,上下文IM包括TVID (TLB存取虛擬標(biāo)識符)140、PVID (物理存儲器保護(hù)虛擬標(biāo)識符)141、以及MVID (存儲器存取虛擬標(biāo)識符)142。該TVID140、PVID141以及MVID142是表示,多個線程(LP)的每一個是屬于主處理的線程還是屬于媒體處理的線程的標(biāo)簽信息。TVID140用于設(shè)定多個虛擬存儲器保護(hù)組。例如,對主處理的線程和媒體處理的線程分別賦予不同的TVID140。執(zhí)行部101利用此TVID140,能夠制作分別獨立的邏輯地址空
      間的頁面管理信息。PVID141用于限制物理存儲器區(qū)域的存取。MVID142用于設(shè)定向存儲器IF塊14的存取方式。存儲器IF塊14利用此MVID142 來決定是優(yōu)先等待時間(重視響應(yīng)度),還是優(yōu)先總線帶寬(保證性能)。圖10在模式上示出了處理器系統(tǒng)10中的邏輯地址空間的管理。如圖10所示,處理器系統(tǒng)10由用戶級、管理程序級以及虛擬監(jiān)視器級這三個層次來控制。用戶級是進(jìn)行每個線程(LP)的控制的層次。管理程序級是與進(jìn)行多個線程的控制的操作系統(tǒng)(OS)相對應(yīng)的層次。例如,圖10所示的管理程序級中包括作為主處理的OS 的Linux內(nèi)核程序,和作為媒體處理的OS的系統(tǒng)管理(System Manager)。虛擬監(jiān)視器級是控制管理程序級的多個OS。具體而言,由虛擬監(jiān)視器級的OS (監(jiān)視器程序)來進(jìn)行利用了 TVID140的邏輯地址空間的區(qū)分。即,處理器系統(tǒng)10為了不使多個OS所使用的邏輯地址空間相互干擾,而管理邏輯地址空間。例如,各個上下文的 TVID140.PVID141以及MVID142使設(shè)定只能在虛擬監(jiān)視器級進(jìn)行。并且,虛擬監(jiān)視器級的OS是本發(fā)明的分離單元,將處理器系統(tǒng)10所具有的多個資源分割為,與屬于主處理的線程相對應(yīng)的第一資源和與屬于媒體處理的線程相對應(yīng)的第二資源。在此,資源具體是指,外部存儲器15的存儲器區(qū)域(邏輯地址空間以及物理地址空間)、高速緩沖存儲器109的存儲區(qū)域、TLB104的存儲區(qū)域以及FPU107。這樣,通過在虛擬監(jiān)視器級分割資源,從而設(shè)計者能夠以與由處理器獨立地執(zhí)行主處理和媒體處理相同的情況,來設(shè)計主處理以及媒體處理的OS。TLB104是一種高速緩沖存儲器,保持地址變換表130,該地址變換表130是示出邏輯地址與物理地址的對應(yīng)關(guān)系的頁表的一部分。該TLB104利用地址變換表130,進(jìn)行邏輯地址與物理地址之間的變換。圖11示出了地址變換表130的構(gòu)成。如圖11所示,地址變換表130包括多個條目150。各個條目150包括用于識別邏輯地址的TLB標(biāo)簽部151、以及與該TLB標(biāo)簽部151相對應(yīng)的TLB數(shù)據(jù)部152。TLB標(biāo)簽部 151 包括VPN153、TVID140、以及 PID154。TLB 數(shù)據(jù)部 152 包括PPm55 和 Attributel56。VPN153是用戶級的邏輯地址,具體而言是邏輯地址空間的頁編號。PID154是用于識別使用了該數(shù)據(jù)的處理的ID。PPN155是與該TLB標(biāo)簽151相對應(yīng)的物理地址,具體而言是物理地址空間的頁編號。Attributel56示出了與該TLB標(biāo)簽部151相對應(yīng)的數(shù)據(jù)的屬性。具體而言, Attributel56示出了 是否能夠針對該數(shù)據(jù)進(jìn)行存取、是將該數(shù)據(jù)存儲到高速緩沖存儲器 109還是不存儲、以及該數(shù)據(jù)是否具有特權(quán)等。并且,TLB104對多個線程(LP)所使用的邏輯地址空間進(jìn)行管理。圖12在模式上示出了處理器系統(tǒng)10中的邏輯地址的對應(yīng)關(guān)系。如以上所述, TLB104針對每個處理的邏輯地址(VPm5;3)和PIDlM以及TVID140的組,使一個物理地址 (PPN155)與其對應(yīng)。這樣,在具有相同TVID的LP上的管理程序級中,通過將一個物理地址與每個處理的邏輯地址(VPm5;3)和PIDlM組成的組相對應(yīng),從而能夠在管理程序級中,在區(qū)分了各個處理的邏輯地址的基礎(chǔ)上,使該邏輯地址與物理地址相對應(yīng)。在此,在TLB104的更新時,被更新的條目TVID由被設(shè)定到進(jìn)行更新的LP的TVID 來設(shè)定。并且,TLB104針對將TVID140附加到每個處理的邏輯地址(VPm5;3)和PIDlM的組,使一個物理地址(PPNlM)與其對應(yīng)。據(jù)此,TLB104在虛擬監(jiān)視器級中,通過對主處理和媒體處理分別設(shè)定不同的TVID,從而能夠給予獨立地邏輯地址空間。并且,該TLB104具備條目指定寄存器135。條目指定寄存器135保持用于指定分配給TVID140的條目150的信息。圖13示出了條目指定寄存器135中所存儲的數(shù)據(jù)的一個例子。如圖13所示,條目指定寄存器135保持TVID140與條目150的對應(yīng)關(guān)系。并且,條目指定寄存器135由虛擬監(jiān)視器級的OS(監(jiān)視器程序)設(shè)定并被更新。TLB104利用被設(shè)定在條目指定寄存器135的信息,按照各個TVID140來決定使用的條目150。具體而言,TLB104在TLB失敗(TLB miss)(從LP輸入的邏輯地址(TLB標(biāo)簽部151)沒有被保持在地址變換表130中)的情況下,置換與該LP的TVID140相對應(yīng)的條目150的數(shù)據(jù)。圖14在模式上示出了在TLB104的條目150的分配狀態(tài)。如圖14所示,多個條目150由多個LP共享。并且,TLB104利用TVID140,與具有相同的TVID140的LP之間共享條目150。例如,在具有TVIDO的LPO中被分配有條目0-條目2,在具有TVIDl的LPl以及LP2中被分配有條目3-條目7。據(jù)此,TLB104能夠針對屬于主處理的線程使用條目0-條目2,針對屬于媒體處理的線程使用條目3-條目7。圖15是示出TLB104所進(jìn)行的處理的流程的流程圖。
      如圖15所示,在發(fā)生從LP向外部存儲器15的存取的情況下,首先,TLB104判斷是否存儲了與從進(jìn)行存取的LP輸入的邏輯地址(VPW53、TVID140以及PID154)相同的邏輯地址(SlOl)。在沒有存儲的情況下,即TLB失敗的情況下(S101的“是”),TLB104更新被分配在進(jìn)行存取的LP的TVID140的條目150。換而言之,TLB104更新進(jìn)行存取的LP的TVID140 和同一個TVID140的條目150(S102)。具體而言,TLB104從被存儲在外部存儲器15等的頁表中,讀出TLB失敗后的邏輯地址與物理地址的對應(yīng)關(guān)系,并將讀出的對應(yīng)關(guān)系存儲到被分配在進(jìn)行存取的LPTVID140的條目150中。接著,TLB104利用更新的對應(yīng)關(guān)系,將邏輯地址變換為物理地址(S103)。另外,在步驟S101,在存儲了與從LP輸入的邏輯地址相同的邏輯地址的情況下, 即TLB命中的情況下(S101的“否”),TLB104利用TLB命中后的對應(yīng)關(guān)系,將邏輯地址變換為物理地址(S103)。在此,被存儲在外部存儲器15等的頁表是按照每個TVID140或每個PVID141而被事先制作的,以便分配外部存儲器15的物理地址。該頁表例如由管理程序級或虛擬監(jiān)視器級OS制作以及更新。物理地址管理部105利用PVID141來進(jìn)行物理地址空間的地址保護(hù)。該物理地址管理部105包括多個物理存儲器保護(hù)寄存器131、保護(hù)違反寄存器132、錯誤地址寄存器 133。各個物理存儲器保護(hù)寄存器131按照各個物理地址范圍,保持示出能夠針對該物理地址范圍進(jìn)行存取的LP的信息。圖16示出了被保持在一個物理存儲器保護(hù)寄存器131中的信息的構(gòu)成。如圖16所示,物理存儲器保護(hù)寄存器所保持的信息中包含BASEADDR161、PS162、PN163、 PVID0WE-PVID3WE164,PVID0RE-PVID3ffE165oBASEADDR161、PS162、以及PN163是指定物理地址范圍的信息。具體而言, BASEADDR161是指定的物理地址范圍的開頭的地址的上位16位。PS162表示頁面大小。例如,作為頁面大小被設(shè)定有1KB、64KB、1MB或64MB。PW63示出被設(shè)定到PS162的頁面大小的頁面數(shù)。PVID0WE-PVID3WE164 以及 PVID0RE-PVID3RE165 示出,能夠在以 BASEADDR161、 PS162以及PW63指定的物理地址范圍內(nèi)進(jìn)行存取的LP的PVID141。具體而言,PVID0WE-PVID3WE164分別按照PVID141設(shè)置1位。并且, PVID0TO-PVID3TO164示出,被賦予了對應(yīng)的PVID141的LP能否將數(shù)據(jù)寫入到被指定的物理地址范圍。PVID0RE-PVID3RE165 分別按照每個PVID141 設(shè)置 1 位。并且,PVID0RE-PVID3RE165 示出,被賦予了對應(yīng)的PVID141的LP能否讀出被指定的物理地址范圍的數(shù)據(jù)。并且,在此雖然是4種PVID141被賦予在多個LP,不過只要是2種以上的PVID141 被賦予在多個LP即可。圖17示出了由PVID141保護(hù)的物理地址空間的一個例子。并且,在此,物理地址管理部105具有4個物理存儲器保護(hù)寄存器131 (PMG0PR-PMG3PR)。并且,PVIDO被賦予在 Linux (主處理)的LP群,PVIDl被賦予在媒體處理的LP中的圖像處理的LP群,PVID2被
      21賦予在媒體處理的LP中的聲音處理的LP群,PVID3被賦予在System Manager (系統(tǒng)信息管理,媒體處理的0 的LP群。并且,物理地址管理部105,在LP對沒有被該LP的PVID141許可的物理地址進(jìn)行了存取的情況下,在發(fā)生例外中斷的同時,將發(fā)生了錯誤的存取信息寫入到保護(hù)違反寄存器132,并且,將成為錯誤的原因的存取的被存取的物理地址寫入到錯誤地址寄存器133。圖18示出了保護(hù)違反寄存器132中所保持的存取信息的構(gòu)成。如圖18所示,保護(hù)違反寄存器132中所保持的存取信息包括PVERR167和PVID141。PVERR167示出,該錯誤是否為物理存儲器空間保護(hù)違反(LP對沒有被該LP的PVID141許可的物理地址進(jìn)行存取的錯誤)。PVID141被設(shè)定有發(fā)生了物理存儲器空間保護(hù)違反的PVID141。圖19示出了錯誤地址寄存器133中所保持的信息的構(gòu)成。如圖16所示,錯誤地址寄存器133保持成為錯誤原因的存取的被存取的物理地址(BEA[31:0])。如以上所述,通過利用PVID141保護(hù)物理地址,從而能夠提高系統(tǒng)的堅固性。具體而言,在錯誤排除時,設(shè)計者能夠容易地從發(fā)生了錯誤的物理地址以及PVID中,判別圖像處理以及聲音處理中的哪個處理發(fā)生了錯誤。并且,在主處理的錯誤排除時,對于在不能寫入圖像處理等地址發(fā)生的誤工作,能夠毫不遲疑地對圖像處理的誤工作進(jìn)行錯誤排除。FPU分配部108將多個FPU107分配給LP。該FPU分配部108具備FPU分配寄存器 137。圖20示出了 FPU分配寄存器137中所存儲的數(shù)據(jù)的一個數(shù)據(jù)的例子。如圖20所示,按照每個TVID140FPU107對應(yīng)于FPU分配寄存器137。并且,F(xiàn)PU分配寄存器137由虛擬監(jiān)視器級的OS(監(jiān)視器程序)來設(shè)定以及更新。圖21在模式上示出了由FPU分配部108進(jìn)行的FPU107的分配處理。如圖21所示,多個FPU107由多個LP共享。并且,F(xiàn)PU分配部108利用TVID140,在具有相同TVID140的LP之間共享FPU107。例如,F(xiàn)PU分配部108將FPUO分配給具有TVIDO 的LPOdf FPUl分配給具有TVIDl的LPl以及LP2。并且,LP利用由FPU分配部108分配的FPU107來執(zhí)行線程。高速緩沖存儲器109是對在處理器塊11所使用的數(shù)據(jù)進(jìn)行暫時存儲的存儲器。 并且,高速緩沖存儲器109針對具有不同的TVID140的LP,使用獨立的不同的數(shù)據(jù)區(qū)域 (Way 168 路168)。該高速緩沖存儲器109具有路指定寄存器136。圖22A以及圖22B示出了路指定寄存器136中所存儲的數(shù)據(jù)的一個例子。如圖22A所示,按照每個TVID140,路168對應(yīng)于路指定寄存器136。并且,路指定寄存器136由虛擬監(jiān)視器級的OS(監(jiān)視器程序)設(shè)定以及更新。并且,如圖22B所示,也可以按照每個LP來與路168對應(yīng)。在這種情況下,例如上下文124內(nèi)包含該LP所使用的路的信息,虛擬監(jiān)視器級的OS或管理程序級的OS參考上下文124,設(shè)定并更新路指定寄存器136。圖23在模式上示出了由高速緩沖存儲器109進(jìn)行的路168的分配處理。如圖23所示,高速緩沖存儲器109具有多個路168 (Way0-Way7),以作為數(shù)據(jù)存儲單位。該高速緩沖存儲器109利用TVID140,在具有相同TVID140的LP之間共享路168。 例如,在具有TVIDO的LPO被分配有wayO-wayl,具有TVIDl的LPl以及LP2被分配有 Way2-Way7。據(jù)此,高速緩沖存儲器109將屬于主處理的線程的數(shù)據(jù)高速緩存到wayO-wayl,將屬于媒體處理的線程的數(shù)據(jù)高速緩存到way2-Way7。這樣,高速緩沖存儲器109能夠在具有不同的TVID140的LP之間,不相互驅(qū)逐高
      速緩存數(shù)據(jù)。圖M是由高速緩沖存儲器進(jìn)行的處理的流程的流程圖。如圖M所示,在由LP向外部存儲器15進(jìn)行了存取的情況下,首先,高速緩沖存儲器109判斷是否存儲了與從進(jìn)行存取的LP輸入的地址(物理地址)相同的地址(Slll)。在沒有存儲的情況下,即高速緩存失敗的情況下(S111的“是”),高速緩沖存儲器109將從進(jìn)行存取的LP輸入的地址以及數(shù)據(jù),高速緩存到由路指定寄存器136指定的路 168(S112)。具體而言,在讀操作(read-access)的情況下,高速緩沖存儲器109從外部存儲器15等讀出數(shù)據(jù),并將讀出的數(shù)據(jù)存儲到由路指定寄存器136指定的路168。并且,在寫操作(write-access)的情況下,高速緩沖存儲器109將從進(jìn)行存取的LP輸入的數(shù)據(jù)存儲到由路指定寄存器136指定的路168。另外,在步驟S111,在存儲了與從進(jìn)行存取的LP輸入的地址相同的地址的情況下,即在高速緩存命中的情況下(S111的“否”),高速緩沖存儲器109將高速緩存命中的數(shù)據(jù)更新(寫操作時)或輸出到進(jìn)行存取的LP (讀操作時)(S113)。B⑶110用于控制處理器塊11與存儲器IF塊14之間的數(shù)據(jù)傳送。中斷控制部111進(jìn)行中斷的檢測、請求以及許可等。該中斷控制部111具備多個中斷控制寄存器134。例如,中斷控制部111具備1 個中斷控制寄存器134。中斷控制部 111參考中斷控制寄存器134,將發(fā)生了中斷之事通知給與發(fā)生了中斷的中斷因素對應(yīng)的線程(LP)。在中斷控制寄存器134中被設(shè)定有與中斷因素相對應(yīng)的將要被中斷的線程。圖25示出了一個中斷控制寄存器134的構(gòu)成。圖25所示的中斷控制寄存器134包括與中斷因素相對應(yīng)的、系統(tǒng)中斷171 (SYSINT)、LP標(biāo)識符172 (LPID)、LP中斷173 (LPINT)、 冊事件 174 (HWEVT)。系統(tǒng)中斷171示出該中斷是否為系統(tǒng)中斷(全局中斷)。LP標(biāo)識符172示出將要被中斷的LP。LP中斷173示出該中斷是否為LP中斷(局部中斷)。冊事件174示出是否由于該中斷因素而產(chǎn)生硬件事件。在系統(tǒng)中斷的情況下,中斷控制部111將發(fā)生了中斷之事通知給正在執(zhí)行當(dāng)前線程的LP。并且,在LP中斷的情況下,中斷控制部111針對LP標(biāo)識符所表示的LP進(jìn)行中斷。 并且,在硬件事件的情況下,針對LP標(biāo)識符172所表示的LP發(fā)送硬件事件。由該硬件事件而該LP被喚起。并且,系統(tǒng)中斷171以及LP標(biāo)識符172只有虛擬監(jiān)視器級的OS (監(jiān)視器程序)能夠改寫,LP中斷173以及HW事件174只有虛擬監(jiān)視器級以及管理程序級的OS能夠改寫。以下對處理器系統(tǒng)10內(nèi)的存儲器存取管理進(jìn)行說明。圖沈在模式上示出了處理器系統(tǒng)10中的存儲器存取管理的狀態(tài)。如圖沈所示, MVID142從處理器塊11被發(fā)送到存儲器IF塊14。存儲器IF塊14利用該MVID142,按照每個MVID142,在對總線帶寬進(jìn)行了分配的基礎(chǔ)上,利用被分配到請求存取一方的線程的 MVID142的總線帶寬,向外部存儲器15進(jìn)行存取。并且,存儲器IF塊14具備總線帶寬指定寄存器138。
      圖27示出了存儲器IF塊14中的總線帶寬指定寄存器138所保持的數(shù)據(jù)的一個例子。另外,在圖27中,在作為主處理的Linux、媒體處理中所包含的聲音處理(Audio)、以及媒體處理中所包含的圖像處理(Video)中分別被賦予了不同的MVID142。如圖27所示,存儲器IF塊14按照每個MVID142來分配總線帶寬。并且,按照每個MVID142來決定優(yōu)先順序,根據(jù)該優(yōu)先順序來進(jìn)行向外部存儲器15的存取。據(jù)此,在按照每個MVID142確保了所需的總線帶寬的同時,請求的存取等待時間也得到了保證。因此,處理器系統(tǒng)10能夠?qū)崿F(xiàn)多個應(yīng)用程序的性能保證以及實時性的保證。并且,通過利用MVID142來分割總線帶寬,從而即使在存儲器IF塊14與處理器塊 11僅通過一個數(shù)據(jù)總線17來連接的情況下,也能夠進(jìn)行與通過多個數(shù)據(jù)總線來連接的存儲器IF塊14和處理器塊11的情況相同的控制。即,能夠進(jìn)行與針對多個塊分割總線的情況相同的控制。并且,由于用于針對來自多個塊的存取請求,確保總線帶寬以及保證等待時間的技術(shù),其中具有代表性的例子由日本特開2004-246862號公報(專利文獻(xiàn)5)詳細(xì)公開,因此在此省略詳細(xì)說明。并且,在處理器系統(tǒng)10,能夠利用TVID140以及以往的MVP的功能,來任意地設(shè)定媒體處理和主處理的處理時間的分配。具體而言,例如,通過虛擬監(jiān)視器級的0S,針對各個 TVID140的處理時間的分配(媒體處理和主處理的處理時間的分配)被設(shè)定到VMPC102所具備的寄存器(圖中未示出)。VMPC102參考像以上這樣被設(shè)定的處理時間的分配和各個線程的TVID140,來切換執(zhí)行部101所執(zhí)行的線程,以便滿足該處理時間的分配。接著,對虛擬監(jiān)視器級的OS (監(jiān)視器程序)所進(jìn)行的資源分割處理進(jìn)行說明。圖觀是示出由監(jiān)視器程序進(jìn)行的資源分割處理的流程的流程圖。首先,監(jiān)視器程序通過設(shè)定多個上下文124的TVID140、PVID141以及MVID142,從而將多個線程分割為多個組(S121、S122、S123)。接著,監(jiān)視器程序通過將TVID140與條目150的對應(yīng)關(guān)系設(shè)定到條目指定寄存器 135,從而將TLB104所具有的多個條目150分割到與主處理相對應(yīng)的第一條目和與媒體處理相對應(yīng)的第二條目(S124)。參照被設(shè)定到該條目指定寄存器135的對應(yīng)關(guān)系和進(jìn)行存取的線程的TVID140, TLB104將條目150分配到屬于主處理的線程和屬于媒體處理的線程。并且,監(jiān)視器程序通過將TVID140 (或LP)和路168的對應(yīng)關(guān)系設(shè)定到路指定寄存器136,從而將高速緩沖存儲器109所具有的多個路168分割為與主處理相對應(yīng)的第一路和與媒體處理相對應(yīng)的第二路(S125)。參考被設(shè)定到該路指定寄存器136的對應(yīng)關(guān)系和進(jìn)行存取的線程的TVID140, TLB104將路168分配到屬于主處理的線程和屬于媒體處理的線程。并且,監(jiān)視器程序通過將TVID140與FPU107的對應(yīng)關(guān)系設(shè)定到FPU分配寄存器,從而將多個FPU107分割為與主處理相對應(yīng)的第一 FPU和與媒體處理相對應(yīng)的第二 FPU(S126)。參考被設(shè)定到該FPU分配寄存器137的對應(yīng)關(guān)系和線程的TVID140,F(xiàn)PU分配部 108將FPU107分配到屬于主處理的線程和屬于媒體處理的線程。
      并且,監(jiān)視器程序通過將MVID142與總線帶寬的對應(yīng)關(guān)系設(shè)定到總線帶寬指定寄存器138,從而將外部存儲器15與存儲器IF塊14之間的總線帶寬,分割為與主處理對應(yīng)的第一總線帶寬和與媒體處理相對應(yīng)的第二總線帶寬(S127)。參考被設(shè)定在該總線帶寬指定寄存器138的對應(yīng)關(guān)系和進(jìn)行存取的線程的 MVID142,存儲器IF塊14將總線帶寬分配給屬于主處理的線程和屬于媒體處理的線程。并且,監(jiān)視器程序制作示出物理地址和邏輯地址的對應(yīng)關(guān)系的頁表。此時,監(jiān)視器程序通過設(shè)定PVID141與物理地址的對應(yīng)關(guān)系,從而在將外部存儲器15的物理地址空間, 分割為與主處理對應(yīng)的第一物理地址范圍和與媒體處理對應(yīng)的第二物理地址范圍的同時, 將第一物理地址范圍分配給主處理的線程,將第二物理地址范圍分配給第二物理地址范圍 (S128)。并且,監(jiān)視器程序通過將PVID141與物理地址的對應(yīng)關(guān)系設(shè)定到物理存儲器保護(hù)寄存器131,從而進(jìn)行物理地址的保護(hù)。并且,監(jiān)視器程序與各個中斷因素相對應(yīng),將將要被中斷的LP等設(shè)定到中斷控制寄存器134(S129)。據(jù)此,監(jiān)視器程序能夠?qū)χ魈幚砗兔襟w處理分別進(jìn)行獨立地中斷控制。參考被設(shè)定到該中斷控制寄存器134的對應(yīng)關(guān)系和中斷因素,中斷控制部111使與該中斷因素對應(yīng)的線程中斷。并且,通過監(jiān)視器程序的各個設(shè)定的順序,并非受圖觀所示的順序所限。并且,可以不以監(jiān)視器程序來制作頁表,由被分配了 TVID140的管理程序級的OS 來決定,分別被分配的與物理地址對應(yīng)的邏輯地址,能夠分別制作頁表,不過,本發(fā)明并非受這些所限制。通過以上所述,本實施例所涉及的處理器系統(tǒng)10由于具備,共享資源并進(jìn)行主處理和媒體處理的單一的處理器塊11,因此能夠提高面積優(yōu)化。并且,處理器系統(tǒng)10在將不同的標(biāo)簽信息(TVID140、PVID141以及MVID142)給予到主處理的線程和媒體處理的線程的同時,將處理器系統(tǒng)10所具有的資源與該標(biāo)簽信息對應(yīng)起來進(jìn)行分割。據(jù)此,處理器系統(tǒng) 10能夠?qū)①Y源分別獨立地分配給主處理和媒體處理。因此,由于在主處理與媒體處理之間不會產(chǎn)生資源的競爭,所以處理器系統(tǒng)10能夠提高性能的保障以及堅固性。并且,物理地址管理部105利用PVID141,在各個線程將要存取被指定的物理地址范圍以外的情況下,發(fā)生中斷。據(jù)此,處理器系統(tǒng)10能夠提高系統(tǒng)的堅固性。以上,對本實施例所涉及的處理器系統(tǒng)10進(jìn)行了說明,不過本發(fā)明并非受這些實施例所限。例如,在以上的說明中,以處理器塊11進(jìn)行主處理和媒體處理這兩種處理為例進(jìn)行了說明,不過也可以進(jìn)行包括除此之外的處理的三種以上的處理。在這種情況下,分別與該三種以上的處理相對應(yīng)的三種以上的TVID140被賦予到多個線程。同樣,PVID141以及MVID142的種類也不受上述的數(shù)量所限,只要是多個即可。并且,在上述的說明中,作為對多個線程進(jìn)行分組的標(biāo)簽信息,在此說明了 TVID140、PVID141以及MVID142這三種,不過,處理器系統(tǒng)10也可以僅利用一個標(biāo)簽信息 (例如,TVID140)。即,處理器系統(tǒng)10也可以不利用PV皿41以及MVID142,物理地址的管理以及總線帶寬的控制也可以利用TVID140。并且,處理器系統(tǒng)10也可以利用兩種標(biāo)簽信息,也可以利用四種以上的標(biāo)簽信息。并且,在上述的說明中,雖然說明了中斷控制寄存器134、條目指定寄存器135、路指定寄存器136、FPU分配寄存器137以及頁表,是由虛擬監(jiān)視器級的OS (監(jiān)視器程序)設(shè)定以及更新的,不過也可以是,通過虛擬監(jiān)視器級的OS的指示,管理程序級的OS也可以對中斷控制寄存器134、條目指定寄存器135、路指定寄存器136、FPU分配寄存器137以及頁表進(jìn)行設(shè)定以及更新。即,也可以是,通過虛擬監(jiān)視器級的0S,管理程序級OS中被通知有被分配到該管理程序級的OS的資源,該管理程序級的OS為了利用被通知來的資源,而對中斷控制寄存器134、條目指定寄存器135、路指定寄存器136、FPU分配寄存器137以及頁表進(jìn)行設(shè)定以及更新。并且,以上實施例所涉及的處理器系統(tǒng)10中所包含的各個處理部典型地可以作為集成電路的LSI來實現(xiàn)。這些可以被單獨地制為一個芯片,也可以將其中的一部分或全部制成一個芯片。在此,雖然稱作了 LSI,不過根據(jù)集成度的不同,也可以被稱作IC、系統(tǒng)LSI、超級 LSI、以及極超級LSI。并且,集成電路化不僅限于LSI,也可以以專用電路或通用處理器來實現(xiàn)。在LSI 制造后,也可以利用可編程的FPGA(現(xiàn)場可編程門陣列)或利用能夠?qū)SI內(nèi)部的電路單元的連接以及設(shè)定重新構(gòu)建的可重裝處理器。而且,隨著半導(dǎo)體技術(shù)的進(jìn)步或派生出的其他的技術(shù),若出現(xiàn)了能夠取代LSI的集成電路化的技術(shù),當(dāng)然也可以利用這些技術(shù)來對使用了這種技術(shù)的各個處理部進(jìn)行集成化。生物技術(shù)的適用等也將成為可能。并且,本發(fā)明的實施例所涉及的處理器系統(tǒng)10的功能的一部分或全部,也可以通過執(zhí)行部101等執(zhí)行程序來實現(xiàn)。并且,本發(fā)明可以作為上述的程序,也可以作為記錄了上述程序的記錄介質(zhì)。并且,上述的程序可以通過互聯(lián)網(wǎng)等傳送介質(zhì)來流通也是不言而喻的。并且,上述實施例所涉及的處理器系統(tǒng)10以及其變形例的功能中至少一部分也可以被組合。本發(fā)明能夠適用于處理器裝置以及多線程處理器裝置,尤其能夠適用于數(shù)字電視、DVD記錄器、數(shù)字?jǐn)z像機以及便攜式電話等中所搭載的媒體處理用的處理器裝置以及多
      線程處理器裝置。
      符號說明
      10處理器系統(tǒng)
      11處理器塊
      12流1/0(輸入輸出)塊
      13AVIO 塊
      14存儲器IF塊
      15外部存儲器
      16控制總線
      17,18,19 數(shù)據(jù)總線
      101執(zhí)行部
      102VMPC
      104TLB (旁路轉(zhuǎn)換緩沖)
      105物理地址管理部
      107FPU (浮點處理單元)
      108FPU分配部
      109高速緩沖存儲器
      110BCU
      111中斷控制部
      121物理處理器
      122運算控制部
      123運算部
      124上下文
      126排程器
      127上下文存儲器
      128上下文控制部
      130地址轉(zhuǎn)換表
      131物理存儲器保護(hù)寄存器
      132保護(hù)違反寄存器
      133錯誤地址寄存器
      134中斷控制寄存器
      135條目指定寄存器
      136路(way)指定寄存器
      137FPU分配寄存器
      138總線帶寬指定寄存器
      150條目
      151TLB標(biāo)簽部
      152TLB數(shù)據(jù)部
      168路(way)
      171系統(tǒng)中斷
      172LP標(biāo)識符
      173LP中斷
      174HW事件
      210指令準(zhǔn)備部
      213,223,233 狀態(tài)寄存器部
      214寄存器部
      215,225,235 第一判斷部
      216,226,236 第二判斷部
      220指令準(zhǔn)備部
      230指令準(zhǔn)備部
      240執(zhí)行流水線部
      250控制部
      說明書
      22/23頁
      27
      251 第一轉(zhuǎn)移部251a,251b,251c 保存恢復(fù)部252 第二轉(zhuǎn)移部253 清除部260,270 硬件資源261,271 寄存器群310,320,330 存儲器311 上下文數(shù)據(jù)312 擴展上下文數(shù)據(jù)
      權(quán)利要求
      1.一種處理器裝置,包括多個處理器,對多個程序一邊進(jìn)行切換一邊執(zhí)行;一個以上的硬件資源,具有保持?jǐn)?shù)據(jù)的寄存器,輔助所述多個處理器的指令執(zhí)行; 存儲器,按照所述多個程序中的包含利用所述硬件資源的規(guī)定指令的每個程序,記憶擴展上下文數(shù)據(jù),該擴展上下文數(shù)據(jù)是所述硬件資源內(nèi)的寄存器數(shù)據(jù)的復(fù)制;控制部,在所述硬件資源與所述存儲器之間,控制擴展上下文數(shù)據(jù)的保存與恢復(fù); 第一判斷部,判斷目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在所述硬件資源內(nèi)的可能性;以及第二判斷部,判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù),是否屬于將要執(zhí)行所述規(guī)定指令的處理器;在由所述第一判斷部判斷出有所述可能性、且由所述第二判斷部判斷出所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)屬于將要執(zhí)行所述規(guī)定指令的處理器的情況下,所述控制部不進(jìn)行擴展上下文數(shù)據(jù)的保存以及恢復(fù),所述硬件資源執(zhí)行該規(guī)定指令。
      2.如權(quán)利要求1所述的處理器裝置, 所述控制部包括第一轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于同一個處理器的上下文數(shù)據(jù)恢復(fù);以及第二轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于不同的處理器的擴展上下文數(shù)據(jù)恢復(fù)。
      3.如權(quán)利要求1所述的處理器裝置,所述硬件資源是擴展運算單元,執(zhí)行所述多個處理器所不能執(zhí)行的擴展指令,所述規(guī)定指令是所述擴展指令。
      4.如權(quán)利要求1所述的處理器裝置,所述第一判斷部包括被設(shè)置在多個處理器的每一個的數(shù)據(jù)判斷部; 各個數(shù)據(jù)判斷部,在該數(shù)據(jù)判斷部所對應(yīng)的處理器將要執(zhí)行程序中的所述規(guī)定指令之時,判斷在與該數(shù)據(jù)判斷部相對應(yīng)的處理器目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù),是否有被保持在所述硬件資源內(nèi)的可能性;所述第二判斷部包括被設(shè)置在多個處理器的每一個的處理器判斷部; 各個處理器判斷部判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)是否屬于將要執(zhí)行所述規(guī)定指令的處理器。
      5.如權(quán)利要求4所述的處理器裝置, 所述多個處理器的每一個具有狀態(tài)寄存器;各個狀態(tài)寄存器的數(shù)據(jù)的復(fù)制被包含在每個程序的上下文數(shù)據(jù)中; 各個狀態(tài)寄存器保持第一狀態(tài)信息和第二狀態(tài)信息,所述第一狀態(tài)信息按照每個所述硬件資源示出,目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在該硬件資源內(nèi)的可能性,所述第二狀態(tài)信息按照每個所述硬件資源示出,被保持在該硬件資源內(nèi)的擴展上下文數(shù)據(jù)所對應(yīng)的處理器;所述各個數(shù)據(jù)判斷部包括第一判斷電路,該第一判斷電路在對應(yīng)的處理器將要執(zhí)行程序中的所述規(guī)定指令之時,判斷所述第一狀態(tài)信息是真還是假,在判斷為是假之時,產(chǎn)生第一例外中斷信號;所述各個處理器判斷部包括第二判斷電路,該第二判斷電路在對應(yīng)的所述第一判斷電路判斷為假之時,判斷對應(yīng)的處理器與所述第二狀態(tài)信息所示的處理器是否一致,在判斷為是假之時,產(chǎn)生第二例外中斷信號;所述硬件資源,在所述第二判斷電路判斷為一致之時,不等待擴展上下文數(shù)據(jù)的保存以及恢復(fù),而按照該規(guī)定指令立即工作。
      6.如權(quán)利要求5所述的處理器裝置,所述控制部包括第一轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于同一個處理器的上下文數(shù)據(jù)恢復(fù);以及第二轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于不同的處理器的擴展上下文數(shù)據(jù)恢復(fù)。
      7.如權(quán)利要求6所述的處理器裝置,所述第一轉(zhuǎn)移部包括被設(shè)置在每個處理器的保存恢復(fù)部;各個保存恢復(fù)部,在產(chǎn)生了所述第一例外中斷信號的情況下,將擴展上下文數(shù)據(jù)從所述硬件資源保存到所述存儲器,將將要執(zhí)行所述規(guī)定指令的處理器的擴展上下文數(shù)據(jù),從所述存儲器恢復(fù)到所述硬件資源;所述多個處理器包括第一處理器和第二處理器;所述第一處理器通過執(zhí)行第一操作系統(tǒng),從而以時分多路復(fù)用來執(zhí)行多個程序;所述第二處理器通過執(zhí)行與第一操作系統(tǒng)不同的第二操作系統(tǒng),從而以時分多路復(fù)用來執(zhí)行多個程序;所述第一處理器內(nèi)的所述保存恢復(fù)部,在所述第一處理器內(nèi)的所述第一判斷電路產(chǎn)生了所述第一例外中斷信號之時,由所述第一操作系統(tǒng)啟動;所述第二處理器內(nèi)的所述保存恢復(fù)部,在所述第二處理器內(nèi)的所述第一判斷電路產(chǎn)生了所述第一例外中斷信號之時,由所述第二操作系統(tǒng)啟動。
      8.如權(quán)利要求7所述的處理器裝置,所述多個處理器的至少一個執(zhí)行第三操作系統(tǒng),該第三操作系統(tǒng)管理所述第一操作系統(tǒng)和所述第二操作系統(tǒng);所述第二轉(zhuǎn)移部,在任一個所述第二判斷電路產(chǎn)生了所述第二例外中斷信號之時,由第三操作系統(tǒng)啟動。
      9.如權(quán)利要求8所述的處理器裝置,所述第三操作系統(tǒng),在任一個所述第二判斷電路產(chǎn)生了所述第二例外中斷信號之時, 在該硬件資源正在執(zhí)行其他的處理器的規(guī)定指令的情況下,等待該硬件資源的釋放,在確保了該硬件資源之后,啟動所述第二轉(zhuǎn)移部。
      10.如權(quán)利要求8所述的處理器裝置,所述第二轉(zhuǎn)移部,從所述其他的處理器所對應(yīng)的擴展上下文數(shù)據(jù)從所述硬件資源保存到所述存儲器的工作開始,直到將要執(zhí)行所述規(guī)定指令的處理器的擴展上下文數(shù)據(jù)從所述存儲器恢復(fù)到所述硬件資源的工作的改善為止,連續(xù)地進(jìn)行處理。
      11.如權(quán)利要求8所述的處理器裝置,各個處理器進(jìn)一步包括清除電路,該清除電路在該處理器遷移到停止?fàn)顟B(tài)、等待狀態(tài)、 或停頓狀態(tài)之時,清除該處理器所對應(yīng)的第二狀態(tài)信息。
      12.如權(quán)利要求11所述的處理器裝置,所述各個狀態(tài)寄存器保持第三狀態(tài)信息,該第三狀態(tài)信息示出是否鎖定第二狀態(tài)信息;所述第三操作系統(tǒng),在第三狀態(tài)信息示出鎖定第二狀態(tài)信息之時,禁止由所述清除電路清除第二狀態(tài)信息。
      13.一種多線程處理器裝置,包括多線程處理器,該多線程處理器包括,通過同時執(zhí)行多個線程來切換多個程序的多個虛擬處理器,一個以上的硬件資源,具有保持?jǐn)?shù)據(jù)的寄存器,輔助所述多個虛擬處理器的指令執(zhí)行;存儲器,按照所述多個程序中的包含利用所述硬件資源的規(guī)定指令的每個程序,記憶擴展上下文數(shù)據(jù),該擴展上下文數(shù)據(jù)是所述硬件資源內(nèi)的寄存器數(shù)據(jù)的復(fù)制;控制部,在所述硬件資源與所述存儲器之間,控制擴展上下文數(shù)據(jù)的保存與恢復(fù); 第一判斷部,判斷目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在所述硬件資源內(nèi)的可能性;以及第二判斷部,判斷所述硬件資源內(nèi)的擴展上下文數(shù)據(jù),是否屬于將要執(zhí)行所述規(guī)定指令的處理器;在由所述第一判斷部判斷出有所述可能性、且由所述第二判斷部判斷出所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)屬于將要執(zhí)行所述規(guī)定指令的處理器的情況下,所述控制部不進(jìn)行擴展上下文數(shù)據(jù)的保存以及恢復(fù),所述硬件資源執(zhí)行該規(guī)定指令。
      14.如權(quán)利要求13所述的多線程處理器裝置, 所述控制部包括第一轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于同一個處理器的上下文數(shù)據(jù)恢復(fù);以及第二轉(zhuǎn)移部,按照所述第一判斷部以及所述第二判斷部的判斷結(jié)果,將擴展上下文數(shù)據(jù)從硬件資源保存到存儲器,將與保存了的擴展上下文數(shù)據(jù)屬于不同的處理器的擴展上下文數(shù)據(jù)恢復(fù)。
      15.如權(quán)利要求14所述的多線程處理器裝置,所述多個虛擬處理器的每一個至少與一個線程相對應(yīng); 所述多線程處理器具有 多個指令準(zhǔn)備部,取線程的指令并進(jìn)行譯碼;執(zhí)行部,同時執(zhí)行與一個以上的線程相對應(yīng)的一個以上的指令,并且這些指令是由所述多個指令準(zhǔn)備部譯碼的指令;以及狀態(tài)寄存器,被設(shè)置在每個指令準(zhǔn)備部;所述控制部,通過按照每個指令準(zhǔn)備部,將目前的線程替換為其他的線程,從而對所述多個虛擬處理器中的正在執(zhí)行中的虛擬處理器與不是正在執(zhí)行中的虛擬處理器進(jìn)行替換;各個狀態(tài)寄存器的數(shù)據(jù)的復(fù)制被包含在每個虛擬處理器的上下文數(shù)據(jù)中; 各個狀態(tài)寄存器保持第一狀態(tài)信息和第二狀態(tài)信息,所述第一狀態(tài)信息,按照每個所述硬件資源示出,目前正在執(zhí)行中的虛擬處理器的擴展上下文數(shù)據(jù)是否有被保持在該硬件資源內(nèi)的可能性;所述第二狀態(tài)信息,按照每個所述硬件資源示出,與被保持在該硬件資源內(nèi)的擴展上下文數(shù)據(jù)相對應(yīng)的虛擬處理器;所述多線程處理器還包括清除電路,該清除電路在由于線程的替換而正在執(zhí)行中的虛擬處理器成為不是正在執(zhí)行中之時, 對進(jìn)行了線程的替換的指令準(zhǔn)備部內(nèi)的狀態(tài)寄存器的第二狀態(tài)信息進(jìn)行清除。
      16.如權(quán)利要求15所述的多線程處理器裝置,所述第一判斷部包括被設(shè)置在所述多個指令準(zhǔn)備部的每一個的數(shù)據(jù)判斷部; 各個所述數(shù)據(jù)判斷部,在對應(yīng)的指令準(zhǔn)備部的線程將要執(zhí)行所述規(guī)定指令之時,通過判斷所述第一狀態(tài)信息是真還是假,來判斷目前正在執(zhí)行中的程序的擴展上下文數(shù)據(jù)是否有被保持在所述硬件資源內(nèi)的可能性;所述第二判斷部包括被設(shè)置在多個指令準(zhǔn)備部的每一個的處理器判斷部; 各個所述處理器判斷部,在對應(yīng)的指令準(zhǔn)備部內(nèi)的所述數(shù)據(jù)判斷部判斷為是假之時, 判斷對應(yīng)的指令準(zhǔn)備部的虛擬處理器是否與所述第二狀態(tài)信息所示的虛擬處理器一致,在判斷為是假之時,產(chǎn)生第二例外中斷信號; 所述多線程處理器進(jìn)一步,將由來自所述處理器判斷部的第二例外中斷信號而被啟動的第二例外中斷處理,作為操作系統(tǒng)的一部分的功能來執(zhí)行;所述操作系統(tǒng)包括所述硬件資源的獲得處理和等待所述硬件資源的釋放的等待處理;所述操作系統(tǒng)進(jìn)行以下工作在屬于使所述第二例外中斷信號產(chǎn)生的虛擬處理器所屬的指令準(zhǔn)備部以外的指令準(zhǔn)備部的虛擬處理器中,在該硬件資源不是正在使用中的情況下,作為所述獲得處理,將示出為真的第一狀態(tài)信息和示出使所述第二例外中斷信號產(chǎn)生的虛擬處理器的第二狀態(tài)信息, 設(shè)定到使所述第二例外中斷信號產(chǎn)生的指令準(zhǔn)備部內(nèi)的狀態(tài)寄存器;在使所述第二例外中斷信號產(chǎn)生的虛擬處理器所屬的指令準(zhǔn)備部以外的指令準(zhǔn)備部, 在虛擬處理器中該硬件資源為正在使用中的情況下,進(jìn)行所述等待處理。
      全文摘要
      本發(fā)明的處理器裝置是在多個處理器之間共享硬件資源(260、270)的處理器裝置,包括第一判斷部(215),判斷目前正在執(zhí)行中的某一個程序的擴展上下文數(shù)據(jù),是否被保持在所述硬件資源內(nèi)的寄存器中;第二判斷部(216),判斷是否與所述硬件資源內(nèi)的擴展上下文數(shù)據(jù)等的處理器相對應(yīng);第一轉(zhuǎn)移部(251),在處理器內(nèi)的程序間進(jìn)行擴展上下文數(shù)據(jù)的保持與恢復(fù);以及第二轉(zhuǎn)移部(252),在處理器間的程序之間進(jìn)行擴展上下文數(shù)據(jù)的保持與恢復(fù)。
      文檔編號G06F9/50GK102334102SQ20098015752
      公開日2012年1月25日 申請日期2009年8月11日 優(yōu)先權(quán)日2009年2月24日
      發(fā)明者中島雅逸, 尾崎伸治, 山本崇夫, 掛田雅英 申請人:松下電器產(chǎn)業(yè)株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1