国产精品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>

      信息處理系統(tǒng)和存儲器管理方法

      文檔序號:6383943閱讀:127來源:國知局
      專利名稱:信息處理系統(tǒng)和存儲器管理方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及包含多個處理器的信息處理系統(tǒng)和同一系統(tǒng)中使用的存儲器管理方法。
      背景技術(shù)
      以往,在服務(wù)器那樣的計算機系統(tǒng)中,為了謀求運算處理能力的提高而利用如多處理器、并行處理器那樣的系統(tǒng)結(jié)構(gòu)。多處理器和并行處理器都是通過利用多個處理器部件來實現(xiàn)運算處理的并行化。
      作為具有多個處理器部件的系統(tǒng),眾所周知的是具有1個高速CPU、多個低速CPU以及共享存儲器的系統(tǒng)(例如,參照專利文獻(xiàn)1)。在該系統(tǒng)中,按照線程群的并行工作度的大小和處理時間的長短來進(jìn)行處理程序的線程群對高速CPU和多個低速CPU的分配。
      但是,最近不僅計算機系統(tǒng),例如在實時處理AV(音頻和視頻)數(shù)據(jù)那樣的大容量數(shù)據(jù)的組入儀器中,也為了提高運算處理能力而要求導(dǎo)入多處理器、并行處理器那樣的系統(tǒng)結(jié)構(gòu)。
      專利文獻(xiàn)1-特開平10-143380號公報但是,現(xiàn)在的實際情況是幾乎沒有以包含個多處理器的系統(tǒng)結(jié)構(gòu)為前提的實時處理系統(tǒng)的報告。
      在實時處理系統(tǒng)中,要求在某允許時間的限制內(nèi)完成各處理。但是當(dāng)把多處理器、并行處理器那樣的系統(tǒng)結(jié)構(gòu)應(yīng)用于實時處理系統(tǒng)中時,由于對共享存儲器的訪問的沖突、存儲器總線的帶寬的制約等,產(chǎn)生無法充分利用多個處理器各自的性能的問題。另外,用于在由彼此不同的處理器執(zhí)行的線程間交換數(shù)據(jù)的通信也通過共享存儲器上的緩存器進(jìn)行,所以在頻繁進(jìn)行相互作用的線程間,有關(guān)通信的等待就成了大問題。

      發(fā)明內(nèi)容
      鑒于上述問題的存在,本發(fā)明的目的在于提供能使用多個處理器來高效地并行執(zhí)行多個線程的信息處理系統(tǒng)和存儲器管理方法。
      為了解決上述的課題,本發(fā)明的信息處理系統(tǒng)的特征在于包括具有第一局部存儲器的第一處理器;具有第二局部存儲器的第二處理器;具有第三局部存儲器的第三處理器;把與執(zhí)行進(jìn)行與所述第一線程的相互作用的第二線程的第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器映射到由所述第一處理器執(zhí)行的第一線程的有效地址空間的一部分上的部件;當(dāng)執(zhí)行所述第二線程的所述處理器從所述第二和第三處理器中一方的處理器變更為另一方的處理器時,把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為另一方的局部存儲器的部件。
      在該信息處理系統(tǒng)中,在各處理器中設(shè)置有局部存儲器,所以各線程不訪問共享存儲器,只訪問處理器內(nèi)的局部存儲器,就能執(zhí)行程序。另外,按照執(zhí)行進(jìn)行相互作用的對方線程的處理器,自動變更映射到有效地址空間上的與對方線程對應(yīng)的處理器的局部存儲器,所以各線程不用考慮分配對方線程的處理器,就能高效地進(jìn)行與對方線程的相互作用。因此,能高效地并行執(zhí)行多個線程。


      下面簡要說明附圖。
      圖1是表示構(gòu)成本發(fā)明一實施例的實時處理系統(tǒng)的計算機系統(tǒng)的例子的框圖。
      圖2是表示設(shè)置在同一實施例的實時處理中的MPU和VPU各自結(jié)構(gòu)的框圖。
      圖3是表示同一實施例的實時處理系統(tǒng)中使用的虛擬地址變換機構(gòu)的例子的圖。
      圖4是表示映射到同一實施例的實時處理系統(tǒng)中的實際地址空間中的數(shù)據(jù)的例子的圖。
      圖5是用于說明同一實施例的實時處理系統(tǒng)中的有效地址空間、虛擬地址空間、實際地址空間的圖。
      圖6是表示數(shù)字電視廣播系統(tǒng)的接收機結(jié)構(gòu)的框圖。
      圖7是表示由同一實施例的實時處理系統(tǒng)執(zhí)行的程序模塊的結(jié)構(gòu)的圖。
      圖8是表示圖7的程序模塊內(nèi)包含的構(gòu)成記述的例子的圖。
      圖9是表示與圖7的程序模塊對應(yīng)的程序之間的數(shù)據(jù)流的圖。
      圖10是表示由2個VPU并行執(zhí)行圖7的程序模塊的狀態(tài)的圖。
      圖11是表示由2個VPU以流水線形式執(zhí)行圖7的程序模塊的狀態(tài)的圖。
      圖12是表示同一實施例的實時處理系統(tǒng)的操作系統(tǒng)的實施例的例子的圖。
      圖13是表示同一實施例的實時處理系統(tǒng)的操作系統(tǒng)的實施例的其他例子的圖。
      圖14是表示同一實施例的實時處理系統(tǒng)的虛擬計算機OS和客戶OS的關(guān)系的圖。
      圖15是表示在同一實施例的實時處理系統(tǒng)中通過分時對多個客戶OS分配資源的狀態(tài)的圖。
      圖16是表示在同一實施例的實時處理系統(tǒng)中由某特定的客戶OS占有特定的資源的狀態(tài)的圖。
      圖17是表示在同一實施例的實時處理系統(tǒng)中作為調(diào)度器使用的VPU執(zhí)行環(huán)境的圖。
      圖18是表示在同一實施例的實時處理系統(tǒng)中使用的虛擬計算機OS中安裝VPU執(zhí)行環(huán)境的例子的圖。
      圖19是表示作為同一實施例的實時處理系統(tǒng)中使用的一個客戶OS,安裝VPU執(zhí)行環(huán)境的例子的圖。
      圖20是表示在同一實施例的實時處理系統(tǒng)中使用的多個客戶OS中分別安裝VPU執(zhí)行環(huán)境的例子的圖。
      圖21是表示在同一實施例的實時處理系統(tǒng)中使用的一個客戶OS中分別安裝VPU執(zhí)行環(huán)境的例子的圖。
      圖22是用于說明同一實施例的實時處理系統(tǒng)中使用的MPU一側(cè)VPU執(zhí)行環(huán)境和VPU一側(cè)VPU執(zhí)行環(huán)境的圖。
      圖23是表示由同一實施例的實時處理系統(tǒng)中使用的VPU一側(cè)VPU執(zhí)行環(huán)境執(zhí)行的處理步驟的程序框圖。
      圖24是表示由同一實施例的實時處理系統(tǒng)中使用的MPU一側(cè)VPU執(zhí)行環(huán)境執(zhí)行的處理步驟的程序框圖。
      圖25是表示在同一實施例的實時處理系統(tǒng)中,屬于密結(jié)合線程組的線程群分別由不同的處理器同時執(zhí)行的狀態(tài)的圖。
      圖26是用于說明同一實施例的實時處理系統(tǒng)中的密結(jié)合線程間的相互作用的圖。
      圖27是表示在同一實施例的實時處理系統(tǒng)中,向各密結(jié)合線程的有效地址空間映射執(zhí)行對象的線程的VPU的局部存儲器的狀態(tài)的圖。
      圖28是用于說明對屬于同一實施例的實時處理系統(tǒng)的疏結(jié)合線程組的線程群的處理器分配的圖。
      圖29是用于說明同一實施例的實時處理系統(tǒng)的疏結(jié)合線程組間的相互作用的圖。
      圖30是用于說明同一實施例的實時處理系統(tǒng)的進(jìn)程和線程的關(guān)系的圖。
      圖31是表示同一實施例的實時處理系統(tǒng)的調(diào)度處理步驟的程序框圖。
      圖32是用于說明有關(guān)同一實施例的實時處理系統(tǒng)的局部存儲器的第一問題的圖。
      圖33是表示同一實施例的實時處理系統(tǒng)的物理VPU和邏輯VPU的關(guān)系的圖。
      圖34是用于說明有關(guān)同一實施例的實時處理系統(tǒng)的局部存儲器的第二問題的圖。
      圖35是表示同一實施例的實時處理系統(tǒng)的有效地址空間共享模型的圖。
      圖36是表示同一實施例的實時處理系統(tǒng)的虛擬地址空間共享模型的圖。
      圖37是表示同一實施例的實時處理系統(tǒng)的非共享模型的圖。
      圖38是用于說明同一實施例的實時處理系統(tǒng)的局部存儲器映射變更的第一圖。
      圖39是用于說明同一實施例的實時處理系統(tǒng)的局部存儲器映射變更的第二圖。
      圖40是用于說明同一實施例的實時處理系統(tǒng)的局部存儲器映射變更的第三圖。
      圖41是用于說明同一實施例的實時處理系統(tǒng)的局部存儲器映射變更的第四圖。
      圖42是用于說明同一實施例的實時處理系統(tǒng)的局部存儲器映射變更的第五圖。
      圖43是表示在同一實施例的實時處理系統(tǒng)中為了進(jìn)行局部存儲器的映射變更而執(zhí)行的地址管理處理步驟的程序框圖。
      圖44是用于說明在同一實施例的實時處理系統(tǒng)中執(zhí)行的局部存儲器和存儲器之間的映射變更的圖。
      圖45是表示在同一實施例的實時處理系統(tǒng)中執(zhí)行的局部存儲器和存儲器之間的映射變更處理步驟的程序框圖。
      下面,簡要說明附圖符號。
      11-MPU(Master Processing Unit)、12-VPU(Slave ProcessingUnit);14-主存儲器;21-處理部件;22-存儲器管理部件;31-處理部件;32-局部存儲器;33-存儲器控制器;50-段表;60-頁表;100-程序模塊;111~116-程序;117-構(gòu)成記述;331-地址變換部件;401-VPU執(zhí)行環(huán)境。
      具體實施例方式
      下面,參照

      本發(fā)明實施例。
      圖1表示用于實現(xiàn)本發(fā)明一實施例的實時處理系統(tǒng)的計算機系統(tǒng)的構(gòu)成例。該計算機系統(tǒng)是在時間制約條件的范圍內(nèi)執(zhí)行要求實時性的各種處理的信息處理系統(tǒng),除了能作為通用計算機利用,還能作為用于執(zhí)行要求實時性的處理的各種電子儀器的嵌入系統(tǒng)利用。如圖1所示,在該計算機系統(tǒng)中,主處理部件(MPU11Master Processing Unit)11、多個通用處理部件(VPUVersatile Processing Unit)12、主存儲器14、輸入輸出控制裝置15通過連接裝置13相互連接。連接裝置13例如由縱橫開關(guān)那樣的相互結(jié)合網(wǎng)或總線構(gòu)成。也能使用環(huán)狀的總線構(gòu)造。MPU11是控制計算機系統(tǒng)的動作的主處理器。操作系統(tǒng)OS(OSOperatingSystem)主要由MPU1執(zhí)行。OS的一部分功能能由VPU12或輸入輸出控制裝置15分擔(dān)執(zhí)行。各VPU12是在MPU11的管理下執(zhí)行各種處理的處理器。MPU11進(jìn)行對多個VPU12分配處理,使之并行執(zhí)行的控制。據(jù)此,能以高速進(jìn)行高效的處理的執(zhí)行。主存儲器14是由MPU11、多個VPU12以及輸入輸出控制裝置15共享的存儲裝置(共享存儲器)。OS和應(yīng)用程序存儲在主存儲器14中。在輸入輸出控制裝置15上連接一個或多條輸入輸出總線(輸入輸出裝置)16。輸入輸出控制裝置15也稱作橋。
      連接裝置15具有保證數(shù)據(jù)傳輸速度的QoS功能。該功能通過用預(yù)約的帶寬(傳輸速度)執(zhí)行通過連接裝置15的數(shù)據(jù)傳輸而實現(xiàn)。QoS功能例如在從VPU12向存儲器14以5Mbps發(fā)送寫入數(shù)據(jù)時、或VPU12與其它VPU12之間以100Mbps傳輸數(shù)據(jù)時利用。VPU12對連接裝置13指定(預(yù)約)帶寬(傳輸速度)。連接裝置13對要求的VPU12優(yōu)先分配執(zhí)行的帶寬。如果對某VPU12的數(shù)據(jù)傳輸預(yù)約了帶寬,在基于該VPU12的數(shù)據(jù)傳輸中,即使其他VPU12、MPU11或輸入輸出控制裝置15進(jìn)行大量的數(shù)據(jù)傳輸,也能確保預(yù)約的帶寬。該功能特別是對進(jìn)行實時處理的計算機是重要的功能。
      在圖1的結(jié)構(gòu)中,MPU11是1個,VPU12為4個,存儲器14為1個,輸入輸出控制裝置為1個,但是未限制VPU12的個數(shù)。另外,也可以是不具有MPU11的結(jié)構(gòu)。此時,某一個VPU12擔(dān)當(dāng)MPU11進(jìn)行的處理。即VPU兼任虛擬的MPU11的角色。
      圖2表示MPU11和各VPU12的結(jié)構(gòu)。MPU11具有處理部件21和存儲器管理部件22。處理部件21通過存儲器管理部件22訪問存儲器14。存儲器管理部件22是進(jìn)行虛擬存儲管理、存儲器管理部件22內(nèi)的高速緩沖存儲器的管理的部件。各VPU12具有處理部件31、局部存儲器32、存儲器控制器33。各VPU12的處理部件31能直接訪問VPU內(nèi)部的局部存儲器32。存儲器控制器33具有進(jìn)行局部存儲器32和存儲器14之間的數(shù)據(jù)傳輸?shù)腄MA控制器的功能。該存儲器控制器33能利用連接裝置14的QoS功能,具有預(yù)約帶寬的功能和以預(yù)約的帶寬進(jìn)行數(shù)據(jù)的輸入輸出的功能。另外,存儲器控制器33具有與MPU11的存儲器管理部件22同樣的虛擬存儲管理功能。VPU12的處理部件31把局部存儲器32作為主存儲使用。處理部件31不直接訪問存儲器14,指示存儲器控制器33,把存儲器14的內(nèi)容向局部存儲器32傳輸,或把局部存儲器32的內(nèi)容寫入存儲器14。
      由MPU11的存儲器管理部件22和VPU12的存儲器控制器33分貝執(zhí)行的虛擬存儲管理例如能象圖3那樣實施。從MPU11的處理部件21或VPU12的存儲器控制器33觀察的地址是圖3的上方部分所示的64位地址。該64位地址中,高位的36位為段編號,中央的16位為頁編號,低位的12位為頁偏移量。使用段表50和頁表60執(zhí)行從該地址向?qū)嶋H通過連接裝置13訪問的實際地址空間的變換。段表50和頁表60分別設(shè)置在存儲器管理部件22和存儲器控制器33中。
      如圖4所示,把以下的數(shù)據(jù)映射到從MPU11和VPU12觀察的實際地址(RA)空間中。
      1.存儲器(主存儲裝置)2.MPU11的各種控制寄存器3.各VPU12的各種寄存器4.各VPU12的局部存儲器5.各種輸入輸出設(shè)備(輸入輸出裝置)的控制寄存器(也包含輸入輸出控制裝置的控制寄存器)
      MPU11和VPU12通過訪問實際地址空間的相應(yīng)的地址,能讀寫1~5的各數(shù)據(jù)。重要的是通過訪問實際地址空間,從任意MPU11或從任意VPU12、從輸入輸出控制裝置15都能訪問任意的VPU12的局部存儲器32。另外,使用段表或頁表,也能保護(hù)VPU12的局部存儲器32的內(nèi)容不被自由讀寫。
      使用圖3的虛擬存儲機制把從MPU11或VPU12觀察的地址空間映射為圖5所示那樣。從在MPU11或VPU12上執(zhí)行的程序能直接觀察到的是有效地址(EA;Effective Address)空間。EA通過段表50映射到虛擬地址(VA;Virtual Address)空間。VA通過頁表60映射到實際地址(RA;Real Address)空間。該RA具有圖4中說明的構(gòu)造。
      MPU11通過控制寄存器等硬件機構(gòu),進(jìn)行各VPU12的寄存器的讀寫、各VPU12的程序的執(zhí)行開始/停止等的VPU12的管理。另外,能通過郵箱或事件標(biāo)志等硬件機構(gòu)進(jìn)行MPU11和VPU12之間、或VPU12和其他VPU12之間的通信或同步。
      本實施例的計算機系統(tǒng)能使用軟件實現(xiàn)以往由硬件實現(xiàn)的實時性要求嚴(yán)的儀器的動作。例如,某VPU12執(zhí)行與構(gòu)成某硬件的幾個硬件組件對應(yīng)的運算處理,與此并行,其他VPU12執(zhí)行與其它幾個硬件組件對應(yīng)的運算處理。
      圖6表示數(shù)字電視廣播的接收機的簡化的硬件結(jié)構(gòu)。在圖6中,接收的廣播信號通過DEMUX(信號分離器)電路101分解為與聲音數(shù)據(jù)、圖象數(shù)據(jù)、字幕數(shù)據(jù)分別對應(yīng)的壓縮編碼的數(shù)據(jù)流。壓縮編碼的聲音數(shù)據(jù)流由A-DEC(聲音解碼器)電路102解碼。壓縮編碼的圖象數(shù)據(jù)流由V-DEC(圖象解碼器)電路103解碼。解碼的圖象數(shù)據(jù)流發(fā)送給PROG(順次變換)電路105,在那里進(jìn)行用于變換為順次圖象信號的順次變換處理。把順次變換的圖象數(shù)據(jù)流發(fā)送給BLEND(圖象合成)電路106。字幕數(shù)據(jù)流由TEXT(字幕處理)電路104變換為字幕的圖象后,發(fā)送給BLEND電路106。BLEND電路106把從PROG電路105發(fā)送來的圖象和從TEXT電路104發(fā)送來的字幕圖象合成,作為圖象流輸出。這一系列的處理根據(jù)圖象的幀頻(例如,1秒鐘30場景、32場景或60場景)重復(fù)執(zhí)行。
      為了通過軟件執(zhí)行圖6那樣的硬件的動作,在本實施例中,例如如圖7所示,準(zhǔn)備把圖6那樣的硬件的動作作為軟件而實現(xiàn)的程序模塊100。該程序模塊100是使計算機系統(tǒng)執(zhí)行由多個處理要素的組合構(gòu)成的實時處理的應(yīng)用程序,使用多線程編程記述。該程序模塊100包含記述與圖6的硬件元件群對應(yīng)的多個處理要素所對應(yīng)的步驟的多個程序111~116。即在程序模塊100中包含DEMUX程序111、A-DEC程序112、V-DEC程序113、TEXT程序114、PROG程序115、BLEND程序116。DEMUX程序111、A-DEC程序112、V-DEC程序113、TEXT程序114、PROG程序115、BLEND程序116分別是用于執(zhí)行與圖6的DEMUX電路101、A-DEC電路102、V-DEC電路103、TEXT電路104、PROG電路105、BLEND電路106對應(yīng)的處理的程序,分別作為線程執(zhí)行。即在程序模塊100的執(zhí)行時,生成與DEMUX程序111、A-DEC程序112、V-DEC程序113、TEXT程序114、PROG程序115、BLEND程序116分別對應(yīng)的線程,生成的線程分別分配給1以上的VPU12,執(zhí)行。在VPU12的局部存儲器32中加載與分配到該VPU12的線程對應(yīng)的程序,線程執(zhí)行局部存儲器32上的程序。把與構(gòu)成數(shù)字電視廣播的接收機的硬件模塊群分別對應(yīng)的程序111~116、稱作構(gòu)成記述117的數(shù)據(jù)打包,變?yōu)閷崿F(xiàn)數(shù)字電視廣播的程序模塊100。
      構(gòu)成記述117是表示應(yīng)該怎樣組合執(zhí)行程序模塊100內(nèi)的各程序(線程)的信息,表示程序111~116間的輸入輸出關(guān)系以及各程序的處理所必要的開銷(時間)。圖8表示構(gòu)成記述117的例子。
      在圖8的構(gòu)成記述117的例子中,對作為線程工作的各模塊(程序模塊100內(nèi)的各程序),記述與輸入有關(guān)的模塊、與輸出有關(guān)的模塊、模塊的執(zhí)行所需的開銷、向與輸出有關(guān)的模塊的輸出所必要的緩存器尺寸。例如編號③的V-DEC程序把編號①的DEMUX程序的輸出作為輸入,其輸出向著編號⑤的PROG程序,其輸出所必要的緩存器為1MB,編號③的V-DEC程序自身的執(zhí)行開銷為50。須指出的是,執(zhí)行所必要的開銷能以執(zhí)行所必要的時間(執(zhí)行期間)或步驟數(shù)為單位記述。另外,也能把用任意的虛擬規(guī)格的VPU執(zhí)行時的時間作為單位。有時根據(jù)計算機,VPU的規(guī)格或處理性能不同,所以這樣設(shè)置虛擬的單位,表現(xiàn)開銷是希望的形態(tài)。根據(jù)圖8所示的構(gòu)成記述117執(zhí)行時的程序間的數(shù)據(jù)流如圖9所述。
      在構(gòu)成記述117中,把表示與程序111~116分別對應(yīng)的線程間的結(jié)合屬性的結(jié)合屬性信息作為線程參數(shù)記述。須指出的是,在線程參數(shù)也能作為代碼直接記述在程序111~116中。
      下面,參照圖10、圖11說明由本實施力計算機系統(tǒng)怎樣執(zhí)行程序111~116。在此,假定在計算機系統(tǒng)中設(shè)置有VPU0和VPU1等兩個VPU12的結(jié)構(gòu)。圖10是按照時間記述以每秒30幀顯示圖象時對各VPU12的程序的分配。在此,在周期1中,輸出1幀的聲音和圖象。首先,DEMUX程序用VPU0進(jìn)行處理,把結(jié)果的聲音、圖象和字幕的數(shù)據(jù)寫入緩存器中。然后,用VPU1依次執(zhí)行A-DEC程序和TEXT程序,把各處理結(jié)果寫入緩存器中。在VPU0中,V-DEC程序進(jìn)行圖象數(shù)據(jù)的處理,把結(jié)果寫入緩存器中。在VPU0中,PROG程序接著進(jìn)行處理,把結(jié)果寫入緩存器中。此時,因為在VPU1的TEXT處理結(jié)束,所以用VPU0進(jìn)行最后的BLEND程序的執(zhí)行,生成最終的圖象數(shù)據(jù)。每周期重復(fù)執(zhí)行該處理流。
      如在此所述,把為了能不拖延地進(jìn)行所需的動作,在各VPU12上決定何時執(zhí)行哪個程序的作業(yè)稱作調(diào)度。在本實施例中,把進(jìn)行調(diào)度的模塊稱作調(diào)度器。在本實施例中,根據(jù)程序模塊100中包含的上述的構(gòu)成記述117進(jìn)行調(diào)度。
      圖11表示以每秒60幀顯示時的執(zhí)行的樣子。與圖10的不同之處在于在圖10中是每秒30幀,所以1周期(1/30秒)中完成1幀的處理,而在圖11中,需要每秒60幀的處理。即在1周期(1/60秒)中,無法結(jié)束1幀的處理,所以在圖11中,跨多個(在此是2)周期進(jìn)行軟件流水線處理。例如,對在周期1的開始輸入的信號,用VPU0進(jìn)行DEMUX處理和V-DEC處理。然后,在周期2中,用VPU1進(jìn)行A-DEC、TEXT、PROG、BLEND等各處理,輸出最終的圖象數(shù)據(jù)。在周期2中,VPU0進(jìn)行下一幀的DEMUX處理和V-DEC處理。這樣,跨2周期以流水線形式執(zhí)行基于VPU0的DEMUX、V-DEC處理基于VPU1的A-DEC、TEXT、PROG、BLEND處理。
      須指出的是,圖7所示的程序模塊100可以預(yù)先記錄在組入本實施例的計算機系統(tǒng)的儀器內(nèi)的閃存ROM或硬盤中,但是也可以通過網(wǎng)絡(luò)流通。此時,按照通過網(wǎng)絡(luò)下載的程序模塊的種類,決定由本實施例的計算機系統(tǒng)執(zhí)行的處理的內(nèi)容。因此,例如在組入本實施例的計算機系統(tǒng)的儀器內(nèi),能執(zhí)行與各種專用硬件分別對應(yīng)的實時處理。例如,通過把新的內(nèi)容的再現(xiàn)所必要的新播放器軟件或解碼器軟件或加密軟件等作為本實施例的計算機系統(tǒng)能執(zhí)行的程序模塊與內(nèi)容一起發(fā)送,如果是搭載了本實施例的計算機系統(tǒng)的儀器,則在任意的儀器中,在其能力允許的范圍中,能再現(xiàn)該內(nèi)容。
      (操作系統(tǒng))在本計算機系統(tǒng)中,在系統(tǒng)內(nèi)只安裝一個OS(操作系統(tǒng))時,如圖12所示,OS201管理全部的安裝資源(例如,MPU11、VPU12、存儲器14、輸入輸出控制裝置15、輸入輸出裝置16等)。
      而使用虛擬計算機方式,也能同時使多個OS工作。此時,如圖13所示首先安裝虛擬計算機OS301,它管理全部的實際資源(例如,MPU11、VPU12、存儲器14、輸入輸出控制裝置15、輸入輸出裝置16等)。虛擬計算機OS301也稱作主機OS。在虛擬計算機OS301上安裝一個以上的OS(也稱作客戶OS)。各客戶OS302、303如圖14所示,在由虛擬計算機OS301提供的虛擬計算機資源構(gòu)成的計算機上工作,對客戶OS302、303管理的應(yīng)用程序提供各種服務(wù)。在圖14的例子中,認(rèn)為客戶OS302在由1個MPU11、2個VPU12、存儲器14構(gòu)成的計算機上工作,認(rèn)為客戶OS303在由1個MPU11、4個VPU12、存儲器14構(gòu)成的計算機上工作。虛擬計算機OS301管理從客戶OS302觀察的VPU12、從客戶OS303觀察的VPU12實際與實際資源的哪個VPU12對應(yīng)??蛻鬙S302、303沒必要意識到該對應(yīng)。
      虛擬計算機OS301進(jìn)行客戶OS302、303的調(diào)度,以便用分時把計算機系統(tǒng)全體的資源分配給各客戶OS302、303。例如,客戶OS302為進(jìn)行實時處理的。例如,當(dāng)想在1秒鐘30次、以正確的速度進(jìn)行處理時,各客戶OS302在虛擬計算機OS301中設(shè)定該參數(shù)。虛擬計算機OS301進(jìn)行調(diào)度,按1/30秒1次,可靠地對客戶OS301分配必要的處理時間。在進(jìn)行不要求實時性的處理的客戶OS中,進(jìn)行調(diào)度,以比要求實時性的客戶OS還低的優(yōu)先級,進(jìn)行處理時間的分配。圖15表示以時間軸為橫軸,表示客戶OS302和客戶OS303一邊切換,一邊工作的樣子。當(dāng)客戶OS302工作時,MPU11和全部VPU12作為客戶OS302的資源使用,當(dāng)客戶OS303工作時,MPU11和全部VPU12作為客戶OS303的資源使用。
      圖16表示其他工作模式。根據(jù)目標(biāo)應(yīng)用程序,有時想一直占有VPU12。例如,有必要總監(jiān)視數(shù)據(jù)或事件的應(yīng)用程序相當(dāng)于此。此時,虛擬計算機301的調(diào)度器進(jìn)行調(diào)度管理,以便由特定的客戶OS占有特定的VPU12。在圖16中,是把VPU4指定為客戶OS301的專用資源時的例子。虛擬計算機OS301即使切換客戶OS302(OS1)和客戶OS303(OS2),VPU4也總在客戶OS301(OS1)的管理下繼續(xù)工作。
      為了使用多個VPU12使程序工作,在本實施例中使用包含用于調(diào)度分別分配給多個VPU12的線程的調(diào)度器的稱作VPU執(zhí)行環(huán)境的軟件模塊。當(dāng)在本計算機系統(tǒng)中只搭載一個OS時,如圖17所示,在該OS201中安裝VPU執(zhí)行環(huán)境401。此時,VPU執(zhí)行環(huán)境401也能安裝在OS201的內(nèi)核內(nèi),也能以用戶程序水平安裝,也能安裝為分割為兩者,協(xié)調(diào)工作。而當(dāng)在虛擬計算機OS上使一個或多個OS工作時,在安裝VPU執(zhí)行環(huán)境401的方式中存在以下的方式。
      1.在虛擬計算機OS301中安裝VPU執(zhí)行環(huán)境401的方式(圖18)。
      2.把VPU執(zhí)行環(huán)境401作為虛擬計算機OS301管理的一個OS安裝的方式(圖19)。在圖19中,在虛擬計算機OS301上工作的客戶OS304自身是VPU執(zhí)行環(huán)境401。
      3.在虛擬計算機OS301管理的各客戶OS中分別安裝專用的VPU執(zhí)行環(huán)境401的方式(圖20)。在圖20中,在客戶OS302、303中分別安裝VPU執(zhí)行環(huán)境401、402。VPU執(zhí)行環(huán)境401、402使用虛擬計算機OS301提供的客戶OS間的通信功能,根據(jù)需要,彼此聯(lián)合工作。
      4.在虛擬計算機OS301管理的客戶OS中的一個上安裝VPU執(zhí)行環(huán)境401,不具有VPU執(zhí)行環(huán)境的客戶OS使用虛擬計算機OS301提供的客戶OS間的通信功能,利用具有VPU執(zhí)行環(huán)境401的客戶OS的VPU執(zhí)行環(huán)境401的方式(圖21)。
      這些方式的優(yōu)點如下所述。
      方式1的優(yōu)點因為能把虛擬計算機OS具有的客戶OS(虛擬計算機OS管理的對象的OS)的調(diào)度、VPU12的調(diào)度一體化,所以能高效地進(jìn)行極細(xì)致的調(diào)度,能有效利用資源。
      因為在多個客戶OS間共享VPU執(zhí)行環(huán)境,所以當(dāng)導(dǎo)入新的客戶OS時,可以不新生成VPU執(zhí)行環(huán)境。
      方式2的優(yōu)點因為在位于虛擬計算機OS上的客戶OS間能共享VPU12的調(diào)度器,所以能高效地進(jìn)行極細(xì)致的調(diào)度,能有效利用資源。
      因為在多個客戶OS間共享VPU執(zhí)行環(huán)境,所以當(dāng)導(dǎo)入新的客戶時,可以不新生成VPU執(zhí)行環(huán)境。
      因為不依存于虛擬計算機OS或特定的客戶OS生成VPU執(zhí)行環(huán)境,所以容易標(biāo)準(zhǔn)化,交換使用。生成適合于特定的組入儀器的VPU執(zhí)行環(huán)境,進(jìn)行充分利用該儀器特性的調(diào)度,能實現(xiàn)高效的執(zhí)行。
      方式3的優(yōu)點對各客戶OS安裝最適合的VPU執(zhí)行環(huán)境,所以能高效地進(jìn)行極細(xì)致的調(diào)度,能有效利用資源。
      方式4的優(yōu)點因為沒必要全部客戶OS安裝VPU執(zhí)行環(huán)境,所以容易追加新的客戶OS。
      這樣能用任意的方式安裝VPU執(zhí)行環(huán)境。另外,也能適當(dāng)實施。
      (服務(wù)提供者)
      在本實施例的計算機系統(tǒng)中,VPU執(zhí)行環(huán)境401除了與各VPU12關(guān)聯(lián)的各種資源(各VPU的處理時間、存儲器、連接裝置的帶寬等)的管理和調(diào)度功能,還提供各種服務(wù)(使用網(wǎng)絡(luò)的通信功能、文件的輸入輸出功能、多媒體數(shù)字信號編解碼器等庫功能的調(diào)用、與用戶的界面處理、使用輸入輸出設(shè)備的輸入輸出處理、日期或時間的讀出)。這些服務(wù)由在VPU12上工作的應(yīng)用程序調(diào)用,當(dāng)為簡單的服務(wù)時,用VPU12上的服務(wù)程序處理。但是,有關(guān)通信或晚間的處理等只在VPU12中無法處理的服務(wù),通過MPU11上的服務(wù)程序處理。把提供這樣的服務(wù)的程序稱作服務(wù)提供者(SP)。
      圖22表示VPU執(zhí)行環(huán)境的一個實施例。VPU執(zhí)行環(huán)境的主要部分存在于MPU11上。它是MPU一側(cè)VPU執(zhí)行環(huán)境501。在各VPU12上存在具有執(zhí)行在VPU12內(nèi)能處理的服務(wù)的最小限度的功能的VPU一側(cè)VPU執(zhí)行環(huán)境502。MPU一側(cè)VPU執(zhí)行環(huán)境501大致分為VPU控制511、服務(wù)代理512等兩個。VPU控制512主要提供與各VPU12關(guān)聯(lián)的各種資源(VPU的處理時間、存儲器、虛擬空間、連接裝置的帶寬等)的管理機構(gòu)、同步機構(gòu)、安全的管理機構(gòu)、調(diào)度功能。有關(guān)調(diào)度結(jié)果,進(jìn)行VPU12上的程序的分配的是該VPU控制511。服務(wù)代理512接收VPU12上的應(yīng)用程序調(diào)用的服務(wù)要求,調(diào)用適當(dāng)?shù)姆?wù)程序(服務(wù)提供者),提供服務(wù)。
      VPU一側(cè)VPU執(zhí)行環(huán)境502主要接收VPU12上的應(yīng)用程序調(diào)用的服務(wù)要求,處理在VPU12內(nèi)能處理的,把不能處理的向MPU一側(cè)VPU執(zhí)行環(huán)境501的服務(wù)代理512委托處理。
      圖23表示VPU一側(cè)VPU執(zhí)行環(huán)境502處理服務(wù)要求的步驟。VPU一側(cè)VPU執(zhí)行環(huán)境502如果接收來自應(yīng)用程序的服務(wù)調(diào)用(步驟S101),就判別是否為在VPU執(zhí)行環(huán)境502內(nèi)能處理的服務(wù)(步驟S102),如果是,就執(zhí)行對應(yīng)的服務(wù),把結(jié)果返回調(diào)用源(步驟S103、S107)。而如果不是在VPU執(zhí)行環(huán)境502內(nèi)能處理的服務(wù),判斷能執(zhí)行該服務(wù)的服務(wù)程序是否登記為VPU12上的能執(zhí)行的程序(步驟S104)。如果登記了,就執(zhí)行該服務(wù)程序,把結(jié)果返回調(diào)用源(步驟S105、S107)。如果未登記,就把處理委托給服務(wù)代理512,然后把從服務(wù)代理512返回的服務(wù)的結(jié)果發(fā)送給調(diào)用源(步驟S106、S107)。
      圖24表示MPU一側(cè)VPU執(zhí)行環(huán)境501的服務(wù)代理512處理從VPU一側(cè)VPU執(zhí)行環(huán)境502要求的服務(wù)的步驟。服務(wù)代理512如果接收到來自VPU一側(cè)VPU執(zhí)行環(huán)境502的服務(wù)調(diào)用(步驟S111),就判別是否為在VPU執(zhí)行環(huán)境501內(nèi)能處理的服務(wù)(步驟S112),如果是,就執(zhí)行對應(yīng)的服務(wù),把結(jié)果發(fā)送給調(diào)用源的VPU一側(cè)VPU執(zhí)行環(huán)境502(步驟S113、S114)。而如果不是VPU執(zhí)行環(huán)境501內(nèi)能處理的服務(wù),就判斷能執(zhí)行該服務(wù)的服務(wù)程序是否登記為MPU11上的能執(zhí)行的程序(步驟S114)。如果登記了,就執(zhí)行該服務(wù)程序,把結(jié)果返回調(diào)用源的VPU一側(cè)VPU執(zhí)行環(huán)境502(步驟S116、S114)。如果未登記,就把錯誤返回調(diào)用源的VPU一側(cè)VPU執(zhí)行環(huán)境502(步驟S117)。
      須指出的是,在由VPU12執(zhí)行的程序發(fā)出的服務(wù)要求中既存在返回服務(wù)的執(zhí)行結(jié)果的應(yīng)答,也存在只發(fā)出要求,沒有應(yīng)答的。另外,應(yīng)答目標(biāo)通常為發(fā)出要求的線程,但是作為應(yīng)答目標(biāo),也能執(zhí)行其他線程、線程群、或進(jìn)程。因此,在服務(wù)要求的消息中,希望包含應(yīng)答目標(biāo)的指定。能使用廣泛應(yīng)用的對象要求代理實現(xiàn)服務(wù)代理512。
      (實時處理)本實施例的計算機系統(tǒng)作為實時處理系統(tǒng)起作用。此時,作為該實時處理系統(tǒng)的對象的處理大致能劃分為以下3種1.硬實時處理2.軟實時處理3.最佳成果處理(非實時處理)1和2是所謂的實時處理。本實施例的實時處理系統(tǒng)與很多已經(jīng)存在的OS同樣,具有線程和進(jìn)程的概念。在此,首先就本實施例的實時處理系統(tǒng)中的線程和進(jìn)程加以說明。
      在線程中存在以下3個類。
      1.硬實時類該線程類在時間要求(timing requirements)非常重要,當(dāng)不滿足該要求時變?yōu)橹卮蟮臓顩r的重要的應(yīng)用程序中使用。
      2.軟實時類該線程類在不滿足時間要求時,質(zhì)量下降的應(yīng)用程序中使用。
      3.最佳成果類該線程類在要求中不包含一切時間要求的應(yīng)用程序中使用。
      線程是在本實時處理系統(tǒng)內(nèi)執(zhí)行處理的實體。在線程中與該線程執(zhí)行的程序關(guān)聯(lián)。各線程保持有稱作線程上下文的各線程中固有的信息。在線程上下文中包含處理器的寄存器的值或堆棧等的信息。
      在本實時處理系統(tǒng)中,存在MPU線程和VPU線程等2種線程。這2個線程由執(zhí)行該線程的處理器(MPU11或VPU12)分類,作為線程的模型完全相同。在VPU線程的線程上下文中包含VPU12的局部存儲器32的內(nèi)容、存儲器控制器33具有的DMA控制器的狀態(tài)等。
      把多個線程匯集為組,把它稱作線程組。線程組具有能使對組中包含的線程付與相同的屬性的處理高效并簡單的優(yōu)點。硬實時類或軟實時類的線程組大致分為密結(jié)合線程組(tightly coupled thread group)和疏結(jié)合線程組(loosely coupled thread group)等兩種。密結(jié)合線程組(tightlycoupled thread group)和疏結(jié)合線程組(loosely coupled thread group)通過附加在線程組中的屬性信息(結(jié)合屬性信息)識別。通過應(yīng)用程序內(nèi)的代碼或上述的構(gòu)成記述,能明確指示線程組的結(jié)合屬性。
      密結(jié)合線程組是由彼此協(xié)調(diào)工作的多個線程的集合構(gòu)成的線程組。即密結(jié)合線程組表示屬于該組的線程群彼此緊密聯(lián)合工作。緊密的聯(lián)合是指頻繁地在線程間進(jìn)行通信或同步處理等相互作用(interaction),或需要等待(latenc y)(延遲)小的相互作用時。而疏結(jié)合線程組與密結(jié)合線程組相比,是不需要屬于該組的線程間的緊密的聯(lián)合的線程組,線程群通過存儲器14上的緩存器進(jìn)行用于數(shù)據(jù)收發(fā)的通信。
      (密結(jié)合線程組)如圖25所示,對屬于密結(jié)合線程組的各不同的線程群分配分別不同的VPU,同時執(zhí)行各線程。把屬于密結(jié)合線程組的線程稱作密結(jié)合線程(tightly coupled thread)。此時,對與密結(jié)合線程的個數(shù)相同的VPU分別預(yù)約屬于密結(jié)合線程組的密結(jié)合線程各自的執(zhí)行期間,同時執(zhí)行這些密結(jié)合線程。在圖25中,表示在某密結(jié)合線程組中包含線程A、B等2個作為密結(jié)合線程,這些線程A、B分別由VPU0、VPU1同時執(zhí)行的樣子。通過保證由分別不同的VPU同時執(zhí)行線程A、B,各線程能通過執(zhí)行對方線程的VPU的局部存儲器或控制寄存器直接進(jìn)行與對方線程的通信。圖26表示通過分別執(zhí)行線程A、B的VPU0、VPU1的局部存儲器,執(zhí)行線程A、B間的通信的樣子。此時,在執(zhí)行線程A的VPU0中,把與執(zhí)行通信對方線程B的VPU1的局部存儲器32對應(yīng)的RA空間映射到線程A的EA空間的一部分上。設(shè)置在VPU0的存儲器控制器33內(nèi)的地址變換部件331使用段表和頁表執(zhí)行用于該映射的地址變換。在執(zhí)行線程B的VPU1中,把與執(zhí)行通信對方線程A的VPU0的局部存儲器32對應(yīng)的RA空間映射到線程B的EA空間的一部分上。設(shè)置在VPU1的存儲器控制器33內(nèi)的地址變換部件331使用段表和頁表執(zhí)行用于該映射的地址變換。圖27表示在VPU0上執(zhí)行的線程A把執(zhí)行線程B的VPU1的局部存儲器32(LS1)映射到自身的EA空間上,在VPU1上執(zhí)行的線程B把執(zhí)行線程A的VPU0的局部存儲器32(LS0)映射到自身的EA空間上的樣子。例如,在線程A在局部存儲器LS0上準(zhǔn)備好應(yīng)該傳遞給線程B的數(shù)據(jù)的時刻,在局部存儲器LS0或執(zhí)行線程B的VPU1的存儲器控制器LS1上設(shè)置表示該事實的標(biāo)志。線程B響應(yīng)該標(biāo)志的設(shè)置,讀出局部存儲器LS0上的數(shù)據(jù)。
      這樣,根據(jù)結(jié)合屬性信息不但能確定密結(jié)合關(guān)系中存在的線程,而且能保證分別由不同的VPU執(zhí)行密結(jié)合關(guān)系中存在的線程A、B的,能更輕量并且無延遲地進(jìn)行有關(guān)線程A、B間的通信、同步的交互作用。
      (疏結(jié)合線程組)屬于疏結(jié)合線程組的線程群各自的執(zhí)行時間由這些線程群間的輸入輸出關(guān)系決定,即使是沒有執(zhí)行順序的制約的線程,也無法保證同時執(zhí)行它們。把屬于疏結(jié)合線程組的線程稱作疏結(jié)合線程(loosely coupledthread)。在圖28中,表示在某疏結(jié)合線程組中包含線程C、D等2個作為疏結(jié)合線程,這些線程C、D分別由VPU0、VPU1執(zhí)行的樣子。如圖28所示,各線程的執(zhí)行時間變?yōu)榉稚⒌?。線程C、D間的通信如圖29所示,通過主存儲器14上準(zhǔn)備的緩存器進(jìn)行。線程C通過DMA傳輸把局部存儲器LS0上準(zhǔn)備的數(shù)據(jù)寫入主存儲器14上準(zhǔn)備的緩存器中,線程D在開始時通過DMA傳輸從主存儲器14上的緩存器向局部存儲器LS1讀入數(shù)據(jù)。
      (進(jìn)程和線程)進(jìn)程如圖30所示,由一個地址空間和一個以上線程構(gòu)成。一個進(jìn)程中包含的線程數(shù)和種類可以為任意的組合。例如能構(gòu)筑只有VPU線程構(gòu)成的進(jìn)程,也可以構(gòu)筑VPU線程和MPU線程混合存在的進(jìn)程。與線程保持作為線程固有信息的線程上下文同樣,進(jìn)程也保持進(jìn)程上下文作為進(jìn)程固有信息。在該進(jìn)程上下文中包含進(jìn)程固有的地址空間、進(jìn)程包含的全部線程的線程上下文。進(jìn)程的地址空間能在屬于進(jìn)程的全部線程間共享。一個進(jìn)程能包含多個線程組。但是,一個線程組不能屬于多個進(jìn)程。因此,屬于某進(jìn)程的線程組是該進(jìn)程中固有的。在本實施例的實時處理處理系統(tǒng)中,在新生成線程的方式中存在線程第一模式和地址空間第一模式等2種。地址空間第一模式與已經(jīng)存在的OS中采用的同樣,能應(yīng)用于MPU線程,也能應(yīng)用于VPU線程。而線程第一模式是只能應(yīng)用于VPU線程的方式,是本發(fā)明的實時處理處理系統(tǒng)中特有的方式。在線程第一模式中,已經(jīng)存在的線程(想新生成線程的一側(cè)的線程。成為新生成的線程之母的線程)首先指定新線程執(zhí)行的程序,使新線程開始程序的執(zhí)行。此時,程序存儲在VPU12的局部存儲器中,從給定的執(zhí)行開始地址開始處理。在該時刻,地址空間未與該新線程關(guān)聯(lián),所以能訪問自身的局部存儲器,但是無法訪問主存儲器14。然后,新線程根據(jù)需要,自身調(diào)用VPU執(zhí)行環(huán)境的服務(wù),生成地址空間,產(chǎn)生關(guān)聯(lián),或通過MPU11一側(cè)的處理,把地址空間關(guān)聯(lián),從而能訪問存儲器14。在地址空間第一模式中,已經(jīng)存在的線程新生成地址空間,或指定已經(jīng)存在的地址空間,在該地址空間中配置新線程執(zhí)行的程序。然后,使新線程開始該程序的執(zhí)行。線程第一模式(Thread first model)的優(yōu)點在于只用局部存儲器工作,所以能減小線程的生成、分配或結(jié)束處理等開銷。
      (線程群的調(diào)度)下面,參照圖31的程序流程圖,說明由VPU執(zhí)行環(huán)境401執(zhí)行的調(diào)度處理。VPU執(zhí)行環(huán)境401內(nèi)的調(diào)度器根據(jù)以線程組單位附加在調(diào)度對象的線程群中的結(jié)合屬性信息,檢查線程間的結(jié)合屬性(步驟S121),對各線程組判別該線程組是密結(jié)合線程組合疏結(jié)合線程組中的哪一個(步驟S122)。通過參照程序代碼中的有關(guān)線程的記述或上述的構(gòu)成記述117中的線程參數(shù),進(jìn)行結(jié)合屬性的檢查。這樣,通過分別決定密結(jié)合線程組和疏結(jié)合線程組,把調(diào)度對象的線程群分離為密結(jié)合線程組和疏結(jié)合線程組。
      對屬于密結(jié)合線程組的線程群的調(diào)度按如下進(jìn)行。即VPU執(zhí)行環(huán)境401內(nèi)的調(diào)度器為了使從調(diào)度對象的線程群選擇的屬于密結(jié)合線程組的線程群同時由分別不同的VPU執(zhí)行,預(yù)約與屬于密結(jié)合線程組的線程群相同數(shù)量的VPU各自的執(zhí)行期間,同時把線程群分配給這些預(yù)約的VPU(步驟S123)。然后,調(diào)度器使用執(zhí)行各線程的VPU內(nèi)的地址變換部件331,把執(zhí)行成為進(jìn)行協(xié)調(diào)相互作用的對方的其他線程的VPU的局部存儲器所對應(yīng)的RA空間映射到各線程的EA空間的一部分上(步驟S124)。而有關(guān)從調(diào)度對象的線程群選擇的屬于疏結(jié)合線程組的疏結(jié)合線程群,調(diào)度器根據(jù)這些線程群間的輸入輸出關(guān)系,依次把這些線程群分配給1以上的VPU(步驟S125)。
      (局部存儲器的映射)在本實施例的實時處理系統(tǒng)中,當(dāng)在MPU線程和VPU線程之間或VPU線程和其他VPU線程之間一邊進(jìn)行任意的通信或同步,一邊協(xié)調(diào)進(jìn)行工作時,有必要訪問協(xié)調(diào)對方的VPU線程的局部存儲器。例如,更輕量、高速的同步機構(gòu)向局部存儲器上分配安裝同步變量。因此,其他VPU12或MPU11的線程有表直接訪問某VPU12的局部存儲器。如圖4所示的例子那樣,當(dāng)各VPU12的局部存儲器分配給實際地址空間時,如果適當(dāng)設(shè)定段表或頁表,就能直接訪問對方的VPU12的局部存儲器。但是此時,產(chǎn)生2個問題。
      第一問題是有關(guān)線程VPU線程的分配目標(biāo)VPU12的變更的問題。如圖32所示,存在VPU線程A和B,分別由VPU0和VPU1運行。而且,該線程A和B想與彼此的線程協(xié)調(diào),所以把彼此的線程的LS(局部存儲器)映射到自己的EA空間上。另外,VPU0、1、2的LS0、1、2分別如圖32所示,存在于RA空間中。此時,VPU線程A映射到自己的EA空間中的是VPU線程B工作的VPU的LS,即VPU1的LS即LS1。反之,VPU線程B映射到自己的EA空間中的是VPU線程A工作的VPU的LS,即VPU0的LS即LS0。然后,通過VPU執(zhí)行環(huán)境中的調(diào)度器分配執(zhí)行VPU線程A的VPU,VPU線程A在VPU2上運行。此時,VPU線程A已經(jīng)不在VPU0商工作,所以VPU線程B映射到自己的EA空間上的VPU0的LS變得沒有意義。此時,線程B可以不知道線程A的分配目標(biāo)VPU產(chǎn)生了變更,系統(tǒng)有必要以任意的方法把映射到LS0的EA空間的地址映射到LS2,從線程B能把VPU2的LS即LS2作為線程A的局部存儲器觀察到。
      第二問題是物理VPU和邏輯VPU的對應(yīng)關(guān)系的問題。在把VPU分配給VPU線程時,實際有兩個水平。一個是邏輯VPU向VPU線程的分配,另一個是物理VPU向邏輯VPU的分配。物理VPU是虛擬計算機OS301管理的物理VPU12。邏輯VPU是虛擬計算機OS301分配給客戶OS的邏輯上的VPU。圖14表示該關(guān)系。例如,VPU執(zhí)行環(huán)境401管理邏輯上的VPU時,在圖32的例子中,成為VPU線程的分配對象的VPU是邏輯VPU。
      圖33表示這兩個水平的分配的概念。之前說明的第一問題相當(dāng)于位于圖33上部的VPU線程向邏輯VPU的分配問題。第二問題即物理VPU向邏輯VPU的分配問題相當(dāng)于位于下部的分配。在圖33中,表示從4個物理VPU選擇3個VPU,分配給3個邏輯VPU。如果該物理VPU和邏輯VPU的對應(yīng)關(guān)系變化時,即使VPU線程對邏輯VPU的分配不變更,適當(dāng)?shù)脑O(shè)定的變更也成為必要。例如,改變與LS對應(yīng)的頁表記錄,使對變更后的邏輯VPU的LS的訪問指向正確的物理VPU的LS。
      在某一時刻,如圖34所示,物理VPU1、2、3分別分配給邏輯VPU0、1、2。然后,邏輯VPU1分配給VPU線程A,邏輯VPU2分配給VPU線程B。然后,VPU線程A和B分別彼此把對方工作的物理VPU的LS映射到自己的EA空間上。執(zhí)行VPU線程B的物理VPU3的LS3映射到VPU線程A的EA空間上,執(zhí)行VPU線程A的物理VPU2的LS2映射到VPU線程B的EA空間上。然后,在某一時刻,通過虛擬計算機OS301把邏輯VPU0、1再分配給物理VPU0、1。這樣一來,迄今為止VPU線程A工作的VPU1從物理VPU2向VPU1變化。邏輯VPU向VPU線程的分配未變化,但是物理VPU和邏輯VPU的對應(yīng)關(guān)系變化了。因此VPU線程B需要映射到EA空間上,VPU線程A工作的VPU的LS從LS2變更為LS1,以便能正確訪問。
      為了解決這兩個問題,在本實施例的實時處理系統(tǒng)中,控制虛擬存儲機構(gòu),以便把執(zhí)行對方的線程的VPU的局部存儲器映射到從線程觀察的EA空間的固定地址上,從而能觀察到。即在基于VPU調(diào)度器的邏輯VPU的分配時、基于虛擬計算機OS的物理VPU和邏輯VPU的對應(yīng)關(guān)系的切換時,通過適當(dāng)改寫頁表或段表,從VPU上工作的線程總能觀察到在相同地址中執(zhí)行對方的線程的VPU的局部存儲器。
      首先,說明2個線程的EA空間的關(guān)系,2個線程的EA空間用以下的3個中的任意模式共享或非共享。
      1.共享EA型兩個線程1、2共享段表和頁表。(圖35)2.共享VA型兩個線程1、2共享頁表,但是不共享段表,分別具有段表(圖36)。
      3.非共享型兩個線程1、2不共享段表和頁表。分別具有共享段表和頁表。(圖37)下面,以1的共享EA型為例,說明怎樣控制,怎樣映射VPU的局部存儲器。
      首先,如圖38所示,在VA空間上設(shè)置與各邏輯VPU對應(yīng)的區(qū)域,設(shè)定頁表,把與邏輯VPU關(guān)聯(lián)的物理VPU的局部存儲器映射到那里。在本例子中,表示物理VPU0、1、2分別與邏輯VPU0、1、2關(guān)聯(lián)的狀態(tài)。接著設(shè)定段表,以便能從線程A在固定地址即段a的區(qū)域中觀察到執(zhí)行線程B的VPU的局部存儲器。另外,設(shè)定段表,以便能從線程B在固定地址即段b的區(qū)域中觀察到執(zhí)行線程A的VPU的局部存儲器。在本例子中,表示以邏輯VPU2執(zhí)行線程A、以邏輯VPU1執(zhí)行線程B的狀況。在此,VPU執(zhí)行環(huán)境401的調(diào)度器把線程B分配給邏輯VPU0。此時,VPU執(zhí)行環(huán)境401自動改寫段表,以便VPU執(zhí)行環(huán)境401如圖39所示,能從線程A通過固定地址即段a觀察到現(xiàn)在執(zhí)行線程B的邏輯VPU0的局部存儲器。
      在此,因為虛擬計算機OS301進(jìn)行客戶OS的分配,所以物理VPU和邏輯VPU的對應(yīng)變化。此時,例如如圖40所示,VPU執(zhí)行環(huán)境401改寫頁表,固定在VA空間上的邏輯VPU的局部存儲器的區(qū)域指向正確的物理VPU的局部存儲器的區(qū)域。在圖40的例子中,變更為物理VPU1、2、3與邏輯VPU0、1、2對應(yīng),所以改寫頁表,變?yōu)楝F(xiàn)在的正確的映射。
      這樣,通過VPU執(zhí)行環(huán)境401的調(diào)度器的分配,執(zhí)行線程的邏輯VPU產(chǎn)生變更時,改寫進(jìn)行從EA空間到VA空間的映射的段表,解決第一問題。另外,通過虛擬計算機OS301,物理VPU和邏輯VPU的對應(yīng)產(chǎn)生變更時,改寫從VA空間到RA空間的映射,解決第二問題。
      這樣,按照執(zhí)行進(jìn)行相互作用的對方的線程的處理器,自動變更映射到有效地址空間的與對方線程對應(yīng)的處理的局部存儲器,各線程不用意識到分配了對方線程的處理器,就能高效地進(jìn)行與對方線程的相互作用。因此,能以高效地并行執(zhí)行多個線程。
      以上說明了共享EA型的例子,但是有關(guān)2的共享VA型、3的非共享型,通過改寫段表或頁表,也同樣能解決第一問題和第二問題。
      下面,描述解決所述第一和第二問題的其他方法。在此,以共享EA型為例進(jìn)行說明。如圖41所示,當(dāng)存在協(xié)調(diào)工作的多個VPU線程時,設(shè)定頁表和段表,以便把執(zhí)行這些線程的VPU的局部存儲器連續(xù)映射到段上。當(dāng)以圖41為例子時,以物理VPU2執(zhí)行線程A,以物理VPU0執(zhí)行線程B,設(shè)定頁表和段表,以便把各VPU的局部存儲器連續(xù)配置到同一段中。在此,由VPU執(zhí)行環(huán)境401的調(diào)度器分配執(zhí)行線程的邏輯VPU,或通過虛擬計算機OS301等,物理VPU和邏輯VPU的對應(yīng)產(chǎn)生變更時,改寫頁表,變更VA空間和RA空間的映射,以對線程A和線程B隱蔽各個變更。例如圖42表示執(zhí)行線程A的VPU變更為物理VPU1,執(zhí)行線程B的變更為物理VPU3時的映射。進(jìn)行該變更,通過從線程A和線程B訪問具有固定地址的段內(nèi)的給定區(qū)域,總能訪問執(zhí)行對方線程的VPU的局部存儲器。
      下面,參照圖43的程序流程圖,說明由VPU執(zhí)行環(huán)境401執(zhí)行的地址管理處理的步驟。VPU執(zhí)行環(huán)境401把與執(zhí)行對方線程的VPU的局部存儲器對應(yīng)的RA空間映射到各線程的EA空間上的固定地址中(步驟S201)。然后,VPU執(zhí)行環(huán)境401判別由于對方線程的分配目標(biāo)VPU的變更或邏輯VPU和物理VPU的對應(yīng)關(guān)系的變更,執(zhí)行對方線程的VPU是否變更(步驟S202)。如果執(zhí)行對方線程的VPU變更,則VPU執(zhí)行環(huán)境401改寫段表或頁表的內(nèi)容,配合執(zhí)行對方線程的VPU變更映射到各線程的EA空間上的固定地址中的局部存儲器(步驟S203)。
      在此前的例子中,說明象密結(jié)合線程組那樣,在彼此通過VPU正在執(zhí)行的線程間,訪問執(zhí)行對方線程的VPU的局部存儲器的方式。但是,也存在疏結(jié)合線程組等協(xié)調(diào)工作的線程并不一定同時分配給VPU而執(zhí)行的情形。此時,在EA空間上存在映射執(zhí)行對方線程的VPU12的局部存儲器的區(qū)域,所以按如下使用該區(qū)域。
      第一方法當(dāng)對方線程不是正在執(zhí)行時,如果訪問映射與該線程對應(yīng)的VPU的局部存儲器的區(qū)域,線程就等到對方線程開始執(zhí)行。
      第二方法當(dāng)對方線程不是正在執(zhí)行時,如果訪問映射與該線程對應(yīng)的VPU的局部存儲器的區(qū)域,線程就通過例外的產(chǎn)生或出錯代碼知道該意思。
      第三方法在線程的結(jié)束時,把最后執(zhí)行該線程時的局部存儲器的內(nèi)容保持在存儲器中,控制映射,以便從執(zhí)行與該線程關(guān)聯(lián)的局部存儲器的頁表或段表的記錄指向該存儲器區(qū)域。通過該方式,即使對方不是正在執(zhí)行,也如同存在與對方線程關(guān)聯(lián)的局部存儲器那樣,能繼續(xù)線程的執(zhí)行。圖44和圖45表示具體例。
      ①現(xiàn)在,分別由VPU0、1執(zhí)行線程A、B,把執(zhí)行對方線程A的VPU0的局部存儲器LS0映射到線程B的EA空間上。
      ②在線程A的結(jié)束時,線程A或VPU執(zhí)行環(huán)境401把執(zhí)行線程A的VPU0的局部存儲器LS0的內(nèi)容保存到存儲器14中(步驟S211)。
      ③VPU執(zhí)行環(huán)境401把映射到線程B的EA空間上的對方線程A的局部存儲器的地址空間從VPU0的LS0變更為保存LS0的內(nèi)容的存儲器14上的存儲器區(qū)域(步驟S212)。據(jù)此,線程B在對方線程A變?yōu)椴辉趫?zhí)行中后,也能繼續(xù)其動作。
      ④當(dāng)對線程A再次分配了VPU時,VPU執(zhí)行環(huán)境401使存儲器14上的存儲器區(qū)域回到執(zhí)行線程A的VPU的局部存儲器(步驟S213)。例如,當(dāng)再次把VPU0分配給線程A時,存儲器14上的存儲器區(qū)域的內(nèi)容返回VPU0的局部存儲器LS0。
      ⑤VPU執(zhí)行環(huán)境401把映射到線程B的EA空間上的對方目標(biāo)線程A的局部存儲器的地址空間變更為執(zhí)行線程A的VPU的局部存儲器(步驟S214)。例如,當(dāng)對線程A再次分配了VPU0時,映射到線程B的EA空間上的對方目標(biāo)線程A的局部存儲器的地址空間回到VPU0的局部存儲器LS0。
      須指出的是,當(dāng)對線程A分配VPU2時,存儲器14上的存儲器區(qū)域的內(nèi)容恢復(fù)為VPU2的局部存儲器LS2。然后,映射到線程B的EA空間上的對方目標(biāo)線程A的局部存儲器的地址空間變更為VPU2的局部存儲器LS2。
      須指出的是,設(shè)置在圖1的計算機系統(tǒng)中的MPU11和多個VPU12也能作為把它們混載在1芯片上的并行處理器實現(xiàn)。此時,由MPU11執(zhí)行的VPU執(zhí)行環(huán)境、或由特定的一個VPU等執(zhí)行的VPU執(zhí)行環(huán)境能進(jìn)行對多個VPU12的調(diào)度和地址管理。
      另外,通過把作為VPU執(zhí)行環(huán)境工作的程序或包含該VPU執(zhí)行環(huán)境的操作系統(tǒng)等的程序存儲在計算機可讀取存儲媒體中,通過該存儲媒體把該程序?qū)氚謩e具有局部處理器的多個處理器的計算機中,執(zhí)行,就能取得與本實施例同樣的效果。
      而且,本發(fā)明并不局限于所述實施例,在不脫離本發(fā)明精神的范圍內(nèi)可以有各種各樣的實施例變形,另外,根據(jù)所述實施例中描述的多個構(gòu)成要素的適當(dāng)組合,就能形成各種發(fā)明。例如,可以從實施例表示的全部構(gòu)成要求刪除幾個構(gòu)成要素。還可以適當(dāng)組合涉及不同實施例的構(gòu)成要素。
      綜上所述,根據(jù)本發(fā)明,就能使用多個處理器來高效地并行執(zhí)行多個線程。
      權(quán)利要求
      1.一種信息處理系統(tǒng),其特征在于包括具有第一局部存儲器的第一處理器;具有第二局部存儲器的第二處理器;具有第三局部存儲器的第三處理器;把所述第二和第三局部存儲器中一方的局部存儲器映射到由所述第一處理器執(zhí)行的第一線程的有效地址空間的一部分上的部件,其中所述第二和第三局部存儲器中一方的局部存儲器與執(zhí)行進(jìn)行與所述第一線程的相互作用的第二線程的所述第二和第三處理器中一方的處理器對應(yīng);和當(dāng)執(zhí)行所述第二線程的處理器從所述第二和第三處理器中一方的處理器變更為另一方的處理器時,把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為另一方的局部存儲器的部件。
      2.根據(jù)權(quán)利要求1所述的信息處理系統(tǒng),其特征在于還包括由所述第一處理器、所述第二處理器和所述第三處理器共享的共享存儲器;當(dāng)停止執(zhí)行所述第二線程時,把與執(zhí)行了所述第二線程的所述第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器的內(nèi)容保存到所述共享存儲器的存儲器區(qū)域中的部件;和把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為所述共享存儲器上的存儲器區(qū)域的部件。
      3.根據(jù)權(quán)利要求2所述的信息處理系統(tǒng),其特征在于還包括當(dāng)由所述第二和第三處理器中一方的處理器重新開始執(zhí)行所述第二線程時,把所述共享存儲器上的所述存儲器區(qū)域的內(nèi)容復(fù)原到與所述第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器中的部件;和把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述共享存儲器的所述存儲器區(qū)域變更為所述第二和第三局部存儲器中一方的局部存儲器的部件。
      4.根據(jù)權(quán)利要求2所述的信息處理系統(tǒng),其特征在于還包括當(dāng)由所述第二和第三處理器中另一方的處理器重新開始執(zhí)行所述第二線程時,把所述共享存儲器上的所述存儲器區(qū)域的內(nèi)容復(fù)原到與所述第二和第三處理器中另一方的處理器對應(yīng)的所述第二和第三局部存儲器中另一方的局部存儲器中的部件;和把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述共享存儲器上的所述存儲器區(qū)域變更為所述第二和第三局部存儲器中另一方的局部存儲器的部件。
      5.一種存儲器管理方法,在包含具有第一局部存儲器的第一處理器、具有第二局部存儲器的第二處理器和具有第三局部存儲器的第三處理器的信息處理系統(tǒng)中,對在線程之間的通信中使用的局部存儲器進(jìn)行管理,其特征在于包括把所述第二和第三局部存儲器中一方的局部存儲器映射到由所述第一處理器執(zhí)行的第一線程的有效地址空間的一部分上的步驟,其中所述第二和第三局部存儲器中一方的局部存儲器與執(zhí)行進(jìn)行與所述第一線程的相互作用的第二線程的所述第二和第三處理器中一方的處理器對應(yīng);和當(dāng)執(zhí)行所述第二線程的處理器從所述第二和第三處理器中一方的處理器變更為另一方的處理器時,把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為另一方的局部存儲器的步驟。
      6.根據(jù)權(quán)利要求5所述的存儲器管理方法,其特征在于還包括當(dāng)停止執(zhí)行所述第二線程時,把與執(zhí)行了所述第二線程的所述第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器的內(nèi)容保存到由所述第一處理器、所述第二處理器和所述第三處理器共享的共享存儲器上的存儲器區(qū)域中的步驟;和把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為所述共享存儲器上的所述存儲器區(qū)域的步驟。
      7.根據(jù)權(quán)利要求6所述的存儲器管理方法,其特征在于還包括當(dāng)由所述第二和第三處理器中一方的處理器重新開始執(zhí)行所述第二線程時,把所述共享存儲器上的所述存儲器區(qū)域的內(nèi)容復(fù)原到與所述第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器中的步驟;和把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述共享存儲器上的所述存儲器區(qū)域變更為所述第二和第三局部存儲器中一方的局部存儲器的步驟。
      8.根據(jù)權(quán)利要求6所述的存儲器管理方法,其特征在于還包括當(dāng)由所述第二和第三處理器中另一方的處理器重新開始執(zhí)行所述第二線程時,把所述共享存儲器上的所述存儲器區(qū)域的內(nèi)容復(fù)原到與所述第二和第三處理器中另一方的處理器對應(yīng)的所述第二和第三局部存儲器中另一方的局部存儲器中的步驟;和把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述共享存儲器上的所述存儲器區(qū)域變更為所述第二和第三局部存儲器中另一方的局部存儲器的步驟。
      9.一種程序,使包含具有第一局部存儲器的第一處理器、具有第二局部存儲器的第二處理器和具有第三局部存儲器的第三處理器的計算機管理在線程之間的通信中使用的局部存儲器,其特征在于包括使所述計算機執(zhí)行把所述第二和第三局部存儲器中一方的局部存儲器映射到由所述第一處理器執(zhí)行的第一線程的有效地址空間的一部分上的處理的步驟,其中所述第二和第三局部存儲器中一方的局部存儲器與執(zhí)行進(jìn)行與所述第一線程的相互作用的第二線程的所述第二和第三處理器中一方的處理器對應(yīng);和使所述計算機執(zhí)行當(dāng)執(zhí)行所述第二線程的所述處理器從所述第二和第三處理器中一方的處理器變更為另一方的處理器時,把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為另一方的局部存儲器的處理的步驟。
      10.根據(jù)權(quán)利要求9所述的程序,其特征在于還包括使所述計算機執(zhí)行當(dāng)停止執(zhí)行所述第二線程時,把與執(zhí)行了所述第二線程的所述第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器的內(nèi)容保存到由所述第一處理器、所述第二處理器和所述第三處理器共享的共享存儲器上的存儲器區(qū)域中的處理的步驟;和使所述計算機執(zhí)行把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述第二和第三局部存儲器中一方的局部存儲器變更為所述共享存儲器上的所述存儲器區(qū)域的處理的步驟。
      11.根據(jù)權(quán)利要求10所述的程序,其特征在于還包括使所述計算機執(zhí)行當(dāng)由所述第二和第三處理器中一方的處理器重新開始執(zhí)行所述第二線程時,把所述共享存儲器上的所述存儲器區(qū)域的內(nèi)容復(fù)原到與所述第二和第三處理器中一方的處理器對應(yīng)的所述第二和第三局部存儲器中一方的局部存儲器中的處理的步驟;和使所述計算機執(zhí)行把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述共享存儲器上的所述存儲器區(qū)域變更為所述第二和第三局部存儲器中一方的局部存儲器的處理的步驟。
      12.根據(jù)權(quán)利要求10所述的程序,其特征在于還包括使所述計算機執(zhí)行當(dāng)由所述第二和第三處理器中另一方的處理器重新開始執(zhí)行所述第二線程時,把所述共享存儲器上的所述存儲器區(qū)域的內(nèi)容復(fù)原到與所述第二和第三處理器中另一方的處理器對應(yīng)的所述第二和第三局部存儲器中另一方的局部存儲器中的處理的步驟;和使所述計算機執(zhí)行把映射到所述第一線程的有效地址空間的一部分上的局部存儲器從所述共享存儲器上的所述存儲器區(qū)域變更為所述第二和第三局部存儲器中另一方的局部存儲器的處理的步驟。
      全文摘要
      本發(fā)明公開了一種信息處理系統(tǒng),在多個處理器(LS0、LS1、LS2)中分別設(shè)置局部存儲器(LS0、LS1、LS2),各線程即使不訪問共享存儲器,只通過訪問處理器內(nèi)的局部存儲器就能執(zhí)行程序。另外,按照執(zhí)行進(jìn)行相互作用的對方線程的處理器,自動變更映射到有效地址EA空間上的與對方線程對應(yīng)的處理器的局部存儲器,所以各線程不用考慮分配對方線程的處理器就能高效地進(jìn)行與對方線程的相互作用。因此,能高效地并行執(zhí)行多個線程,實現(xiàn)使用多個處理器來高效地并行執(zhí)行多個線程的系統(tǒng)。
      文檔編號G06F15/173GK1577310SQ20041000730
      公開日2005年2月9日 申請日期2004年2月27日 優(yōu)先權(quán)日2003年6月27日
      發(fā)明者金井達(dá)德, 前田誠司, 吉井謙一郎 申請人:株式會社東芝
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1