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