專利名稱:信息處理裝置及方法和記錄了信息處理程序的記錄介質的制作方法
技術領域:
本發明涉及一種信息處理裝置、信息處理方法和記錄了信息處理程序的計算機可讀取的記錄介質,可以同時并行地或分時(time sharing)地執行多個線程(thread),將1個線程的執行結果存儲于存儲部中,使用存儲在該存儲部中的執行結果來執行另一個線程。
背景技術:
以往,在執行圖像處理等的線程時,可以通過進行該線程的優先控制而使整體效率提高的信息處理裝置中,例如有日本專利公開公報特開2005-167555號中所記載的圖像形成裝置。
圖18是表示以往的圖像形成裝置的結構的方框圖。如圖18所示,圖像形成裝置900,作為主要的組成部分,具有前面板(front panel)904、輸入輸出接口(I/O interface)903、主存儲裝置902、中央運算裝置901、多個編碼模塊(encoding module)906、多個解碼模塊(decrypting module)907和系統總線(system bus)905。
前面板904,包含密鑰輸入部、液晶顯示部和LED顯示部等中的一個以上,受理用戶的各種指示信息的輸入,并向用戶顯示各種消息。輸入輸出接口903,是用于和裝置外部之間進行數據輸入輸出的接口。
主存儲裝置902,由RAM(隨機存取存儲器(random access memory))等構成,存儲保存各種數據。主存儲裝置902,還存儲有將由后述進程設定部912設定的進程及其進程優先度對應起來的優先度表922。
中央運算裝置901,由CPU(中央運算處理裝置)等構成,具有進程設定部912、模塊分配部914和模塊控制部916。中央運算裝置901雖然還包括其它部分,但此處省略說明。
進程設定部912,例如,基于來自前面板904的輸入操作,為每個編碼模塊906或每個解碼模塊907分別設定進行處理的進程。
此外,進程設定部912,還為各編碼模塊906或解碼模塊907分別設定對應于所設定的各進程的優先度。進而,進程設定部912,制作將如此設定的進程和其進程的優先度對應起來的優先度表922,并將其存儲到主存儲裝置902中。
模塊分配部914,一旦讀取到從輸入輸出接口903輸入的圖像數據,就抽出涉及使用了該圖像數據的圖像形成所必需的編碼/解碼處理的1個或多個進程,基于優先度表922,為該抽出的進程分配多個編碼模塊906或解碼模塊907中的1個或多個。
此外,模塊分配部914,在編碼模塊906或解碼模塊907的處理過程中產生新進程時,基于優先度表922,為包含新進程在內的1個或多個進程重新分配多個編碼模塊906或解碼模塊907中的1個或多個。
模塊控制部916,對由模塊分配部914分配的編碼模塊906或解碼模塊907,使各進程的編碼或解碼可與其它編碼模塊906或解碼模塊907并行處理。
然而,在這種以往的圖像形成裝置中,各進程(process)的優先度,是在該進程生成時被固定設定的,無法根據其負載情況進行動態的最優控制。為了彌補這一點,雖然也進行過嘗試使各進程自身的優先次序動態地變更的控制,但并未一定能夠實現充分的最優控制。
另一方面,通過管理所有的進程和內存的負載狀態,動態地變更全部進程的優先次序,也有可能實施最優控制。然而,所存在的問題是,例如,該控制必須由上述中央運算裝置901、進程設定部912、模塊分配部914和模塊控制部916等來承擔,在成為較大負載的同時,勢必伴隨有控制的額外開銷(control overhead)。
發明內容
本發明為解決上述問題,其目的在于提供一種信息處理裝置、信息處理方法和記錄了信息處理程序的計算機可讀取的記錄介質,可以控制優先度而使各線程自主分布(Autonomous Distributed)地將記錄部的信息記錄量最優化,使作為整體的處理負載得到優化而無額外開銷。
本發明所提供的信息處理裝置,包括存儲信息的存儲部,執行包含向上述存儲部寫入信息的寫入處理和從上述存儲部讀出信息的讀出處理在內的線程的線程執行部,和在由上述線程執行部執行了上述寫入處理時或上述線程執行部執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量控制上述線程的優先度的優先度控制部。
本發明還提供一種信息處理方法,包括,執行包含向存儲部寫入信息的寫入處理和從存儲部讀出信息的讀出處理在內的線程的線程執行步驟,和在上述線程執行步驟中執行了上述寫入處理時或在上述線程執行步驟中執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量控制上述線程的優先度的優先度控制步驟。
本發明還提供一種記錄了信息處理程序的計算機可讀取的記錄介質,其中所記錄的信息處理程序,使計算機作為以下各部而發揮其功能存儲信息的存儲部,執行包含向上述存儲部寫入信息的寫入處理和從上述存儲部讀出信息的讀出處理在內的線程的線程執行部,和在由上述線程執行部執行了上述寫入處理時或由上述線程執行部執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量控制上述線程的優先度的優先度控制部。
根據上述的結構或方法,在執行了寫入處理時或執行了讀出處理時的至少一種情況下,基于存儲部所存儲的信息量,線程的優先度得以控制。
因此,可以控制優先度而使各線程自主分布地將記錄部的信息記錄量最優化,并可以使作為整體的處理負載得到優化而無額外開銷。
圖1是表示本實施例的作為信息處理裝置的一個例子的圖像處理裝置的第1硬件結構例的方框圖。
圖2是表示本實施例的圖像處理裝置的第2硬件結構例的方框圖。
圖3是表示本實施例的圖像處理裝置的第3硬件結構例的方框圖。
圖4是圖1所示的圖像處理裝置的CPU結構的示意圖。
圖5是信息處理裝置中所執行的線程的具體結構的示意圖。
圖6是本實施例中所執行的第1線程結構例的示意圖。
圖7是本實施例中所執行的第2線程結構例的示意圖。
圖8是本實施例中所執行的第3線程結構例的示意圖。
圖9是向內存中寫入信息時,伴隨寫入而進行的優先度控制的處理內容的示意圖。
圖10是從內存中讀出信息時,伴隨讀出而進行的優先度控制的處理內容的示意圖。
圖11是用于說明圖1所示的圖像處理裝置在信息寫入時的優先度控制處理的流程圖。
圖12是用于說明圖1所示的圖像處理裝置在信息讀出時的優先度控制處理的流程圖。
圖13是按照圖9和圖10所示的優先度控制的處理內容而執行的第1優先度控制例的示意圖。
圖14是信息寫入時和讀出時,對輸入側的線程和輸出側的線程執行的優先度控制的處理內容的示意圖。
圖15是按照圖9和圖10所示的優先度控制的處理內容而執行的第2優先度控制例的示意圖。
圖16是信息寫入時和讀出時,對輸入側的線程和輸出側的線程執行的優先度控制的處理內容的示意圖。
圖17是第3優先度控制例所執行的進程和線程的結構例的示意圖。
圖18是表示以往的圖像形成裝置的結構的方框圖。
具體實施例方式
以下,對本發明的實施例,參照附圖來進行說明。但本實施例不過是舉出具體的例子用來說明本發明的一個事例,本發明并不限定于本實施例(就本說明書的全部說明而言也同樣)。
圖1是表示本實施例的作為信息處理裝置的一個例子的圖像處理裝置100的第1硬件結構例的方框圖。
圖像處理裝置100,具有1個信息處理部即CPU103、1個存儲部即存儲部104、輸入處理對象即圖像數據的圖像數據輸入部102、輸出處理結果即圖像數據的圖像數據輸出部105。圖像數據輸入部102,例如為掃描儀、數碼相機、攝錄機(video moive)(攝像機)、數字電視接收機、DVD播放器(重放器)或通信設備(通信部、通信裝置)等,只要是輸入圖像數據的設備,無論是什么設備都可以。此外,圖像數據的形式也可以是用各種方式編碼后的數據、壓縮編碼后的數據、加密后的數據或未經任何編碼的數據等任何形式的數據。
圖像數據輸出部105,對從圖像數據輸入部102輸入的圖像數據進行某種處理,或視情況而定不進行任何處理,輸出圖像數據。圖像數據輸出部105,是象例如等離子顯示裝置(plasma display equipment)、液晶顯示裝置及電視監視器(television monitor)等顯示圖像的設備、各種打印機等打印圖像的設備、DVD刻錄機(DVD recorder)及HDD存儲裝置等存儲圖像數據的設備、或像通信設備(通信部、通信裝置)那樣,和其它設備進行圖像數據收發的設備等,只要是輸出圖像數據的設備,無論是什么設備都可以。
如上所述,該圖像處理裝置100,具有作為1個信息處理部的CPU103和作為1個存儲部的存儲部104,通過該CPU103和存儲部104,作為下述3個處理單位的第1~3線程得以執行。第1線程包含向存儲部104寫入信息的寫入處理。第2線程包含從存儲部104中讀出信息的讀出處理。第3線程包含,在向存儲部104寫入信息時或從存儲部104讀出信息時的至少一種情況下,參照存儲部104所存儲的信息量控制第1線程或第2線程的至少其中之一的優先度的優先度控制處理。CPU103和存儲部104,執行上述的3個線程。
在具有第1硬件結構例的該圖像處理裝置100中,由于如上所述只具有1個CPU103,所以上述的這些線程不能完全同時并行地執行,而是分時執行。此外,未必一定要執行這樣的3個線程,上述3個線程中的某幾個被共用亦可,包含寫入處理的第1線程、包含讀出處理的第2線程、包含優先度控制處理的第3線程的某幾個,被多次執行亦可。此外,也可以執行上述以外的線程。關于圖像處理裝置100的第1硬件結構中的上述3個線程的結構及執行方式稍后再進行詳細說明。
圖2是表示本實施例的圖像處理裝置200的第2硬件結構例的方框圖。
圖像處理裝置200,具有作為3個信息處理部的第1~3CPU213、223、233、作為3個存儲部的第1~3存儲部214、224、234、輸入作為處理對象的圖像數據的圖像數據輸入部202、輸出作為處理結果的圖像數據的圖像數據輸出部205。圖像數據輸入部202和圖像數據輸出部205,可以與上述第1硬件結構例的圖像處理裝置100相同,也可以不同。
如上所述,圖像處理裝置200,具有作為3個信息處理部的第1~3 CPU213、223、233和作為3個存儲部的第1~3存儲部214、224、234,通過它們,作為下述3個處理單位的第1~3線程得以執行。第1線程包含向第1存儲部214、第2存儲部224或第3存儲部234寫入信息的寫入處理。第2線程包含從第1存儲部214、第2存儲部224或第3存儲部234讀出信息的讀出處理。第3線程包含在向第1存儲部214、第2存儲部224或第3存儲部234寫入信息時或從第1存儲部214、第2存儲部224或第3存儲部234讀出信息時的至少一種情況下,參照第1存儲部214、第2存儲部224或第3存儲部234所存儲的信息量控制第1線程或第2線程的至少其中之一的優先度的優先度控制處理。第1~3 CPU213、223、233和第1~3存儲部214、224、234,執行上述的3個線程。
此時,第1CPU213執行上述第1線程,第2CPU223執行上述第2線程,第3CPU233執行上述第3線程亦可,以除此以外的方法,第1CPU213、第2CPU223和第3CPU233執行上述第1線程、上述第2線程和上述第3線程亦可。
例如,第1CPU213執行上述第1線程和第2線程,第2CPU223執行上述第3線程亦可,第3CPU233執行上述第1線程,第2CPU223執行上述第2線程和第3線程亦可。或者,第1CPU213執行上述第1線程、第2線程和第3線程的全部或部分,第2CPU223也執行上述第1線程、第2線程和第3線程的全部或部分,第3CPU233也執行上述第1線程、第2線程和第3線程的全部或部分亦可。
此外,第1CPU213使用第1存儲部214,第2CPU223使用第2存儲部224,第3CPU233使用第3存儲部234亦可,以除此以外的方法,各CPU使用各存儲部亦可。例如,如圖2所示,第1CPU213使用第1存儲部214和第2存儲部224,第2CPU223使用第1存儲部214、第2存儲部224和第3存儲部234,第3CPU233使用第2存儲部224和第3存儲部234亦可。或者,不限定于圖2所示的使用方式,第1CPU213使用第3存儲部234亦可,第3CPU233使用第1存儲部214亦可。
或者,不存在第2存儲部224,第1CPU213使用第1存儲部214,第2CPU223使用第1存儲部214和第3存儲部234,第3CPU233使用第3存儲部234亦可。此時,第1存儲部214用于第1CPU213和第2CPU223之間的數據交換,第3存儲部234用于第2CPU223和第3CPU233之間的數據交換亦可,但也未必要限定于這樣的使用方法。
第2硬件構成例的圖像處理裝置200,由于如上所述具有3個CPU,所以,上述這些線程可以完全同時并行地執行,也可以分時地執行。此外,未必一定要執行這樣的3個線程,上述3個線程的某幾個被共用亦可,包含寫入處理的第1線程、包含讀出處理的第2線程和包含優先度控制處理的第3線程的某幾個,被多次執行亦可。此外,也可以執行上述以外的線程。關于第2硬件結構例的圖像處理裝置200中的上述3個線程的結構及執行方式稍后再進行詳細說明。
圖3是表示本實施例的圖像處理裝置300的第3硬件結構例的方框圖。
圖像處理裝置300,具有作為3個信息處理部的第1~3 CPU313、323、333、作為1個存儲部的存儲部304、輸入作為處理對象的圖像數據的圖像數據輸入部302、輸出作為處理結果的圖像數據的圖像數據輸出部305。圖像數據輸入部302和圖像數據輸出部305,可以與上述第1硬件結構例的圖像處理裝置100相同,也可以不同。
如上所述,圖像處理裝置300,具有作為3個信息處理部的第1~3 CPU313、323、333和作為1個存儲部的存儲部304,通過它們,下述作為3個處理單位的第1~3線程得以執行。第1線程包含向存儲部304寫入信息的寫入處理。第2線程包含從存儲部304中讀出信息的讀出處理。第3線程包含向存儲部304寫入信息時或從存儲部304讀出信息時的至少一種情況下,參照存儲部304所存儲的信息量控制第1線程或第2線程的至少其中之一的優先度的優先度控制處理。第1~3 CPU313、323、333和存儲部304,執行上述的3個線程。
此時,第1CPU313執行上述第1線程,第2CPU323執行上述第2線程,第3CPU333執行上述第3線程亦可,以除此以外的方法,第1CPU313、第2CPU323和第3CPU333執行上述第1線程、上述第2線程和上述第3線程亦可。
例如,第1CPU313執行上述第1線程和第2線程,第2CPU323執行上述第3線程亦可,第3CPU333執行上述第1線程,第2CPU323執行上述第2線程和第3線程亦可。或者,第1CPU313執行上述第1線程、第2線程和第3線程的全部或部分,第2CPU323也執行上述第1線程、第2線程和第3線程的全部或部分,第3CPU333也執行上述第1線程、第2線程和第3線程的全部或部分亦可。此外,第1CPU313、第2CPU323和第3CPU333,為執行各自的處理而共用1個存儲部304。
第3硬件構成例的圖像處理裝置300,由于如上所述具有3個CPU,所以,上述這些線程可以完全同時并行地執行,也可以分時地執行。但由于共用一個存儲部304,因而在反復訪問存儲部304時有可能需要等待。
此外,未必一定要執行這樣的3個線程,上述3個線程的某幾個被共用亦可,包含寫入處理的第1線程、包含讀出處理的第2線程和包含優先度控制處理的第3線程的某幾個被執行多個亦可。此外,也可以執行上述以外的線程。關于第3硬件結構例的圖像處理裝置300中的上述3個線程的結構及執行方式稍后再進行詳細說明。
在此,對圖1所示的圖像處理裝置100的CPU103的結構進行說明。圖4是圖1所示的圖像處理裝置100的CPU103的結構示意圖。在圖4中,CPU103包括線程執行部103a和優先度控制部103b。
線程執行部103a,執行包含向存儲部104寫入信息的寫入處理和從存儲部104讀出信息的讀出處理在內的線程。
優先度控制部103b,在由線程執行部103a執行了寫入處理時或由線程執行部103a執行讀出了處理時的至少一種情況下,基于存儲部104所存儲的信息量控制線程的優先度。
具體而言,線程執行部103a,執行包含寫入處理的第1線程,并執行包含讀出處理的第2線程。此外,優先度控制部103b,將存儲部104中存儲的信息量與規定的基準量進行比較,當信息量小于基準量時,執行提高第1線程優先度的處理和降低第2線程優先度的處理中的至少其中之一,當信息量大于基準量時,執行降低第1線程優先度的處理和提高第2線程優先度的處理中的至少其中之一,當信息量等于基準量時,執行既維持第1線程目前的優先度,又維持第2線程目前的優先度的處理。
另外,存儲部104,將用于識別線程的線程識別信息和該線程的優先度對應起來作為優先度信息加以存儲。優先度控制部103b,在變更線程的優先度時,變更存儲于存儲部104中的優先度信息。線程執行部103a,參照存儲于存儲部104中的優先度信息,按照優先度執行各線程。
此外,本實施例中,是將存儲部104中存儲的信息量與規定的基準量進行比較,但本發明并不特別限定于此,優先度控制部103b,也可以將信息量與規定的第1基準量進行比較,當信息量小于第1基準量時,執行提高第1線程優先度的處理和降低第2線程優先度的處理中的至少其中之一,當信息量在第1基準量以上時,將信息量與大于第1基準量的第2基準量進行比較,若信息量大于第2基準量,則執行降低第1線程優先度的處理和提高第2線程優先度的處理中的至少其中之一。另外,信息量在第1基準量以上第2基準量以下時,優先度控制部103b,執行既維持第1線程目前的優先度,又維持第2線程目前的優先度的處理。
此外,圖2所示的圖像處理裝置200的第1~3CPU213~233和圖3所示的圖像處理裝置300的第1~3CPU313~333的結構,也與圖4所示的CPU103的結構相同。下面,對信息處理裝置中所執行的線程的具體結構進行說明。圖5是信息處理裝置中所執行的線程的具體結構的示意圖。圖5所示的調諧器(tuner)401、多路分配器(demux)402、音頻解碼器(audio decoder)403、音頻再生器(audio renderer)404、視頻解碼器(videodecoder)405及視頻再生器(video renderer)406,表示由CPU執行的線程的一個例子,第1~5隊列(queue)411~415表示存儲部的一個例子。
調諧器401,接收播放信號并寫入第1隊列411中。多路分配器402,從第1隊列411中讀出播放信號,將其分離為音頻流和視頻流,將音頻流寫入第2隊列412,將視頻流寫入第3隊列413。音頻解碼器403,從第2隊列412中讀出音頻流,為所讀出的音頻流解碼,將解碼后的音頻流寫入第4隊列414。音頻再生器404,從第4隊列414中讀出解碼后的音頻流,進行再生。視頻解碼器405,從第3隊列413中讀出視頻流,為所讀出的視頻流解碼,將解碼后的視頻流寫入第5隊列415。視頻再生器406,從第5隊列415中讀出解碼后的視頻流,進行再生。
這樣,在本實施例中,1個線程的執行結果被寫入隊列(存儲部)中,另一線程讀出存儲于隊列中的執行結果,另一線程的執行結果再被寫入隊列中。各線程都被分配有優先度,優先度高的線程優先執行。
下面,對第1硬件結構例的圖像處理裝置100、第2硬件結構例的圖像處理裝置200和第3硬件結構例的圖像處理裝置300中,各CPU所執行的線程、以及與該線程的執行關聯而被執行的寫入處理、讀出處理和優先度控制處理,進行詳細說明。
圖6是本實施例中所執行的第1線程結構例的示意圖。第1線程結構例包含線程1、線程2、線程3、線程4、線程5、線程6和線程7七個線程。
在第1線程結構例中,輸入的圖像數據為電視播放圖像,線程1是從電視播放信號中為圖像數據選臺的選臺線程,線程2是為選臺后的圖像數據解碼的解碼線程,線程3是根據解碼后的圖像數據描畫圖像的描畫線程。另外,這樣的圖像數據、圖像處理的內容或線程,不過是舉出具體的事例用以說明的一個示例,本發明并不限定于此。此外,本實施例中,是以圖像數據和圖像處理為例進行說明,但這也不過是一個例子,也可以是音頻數據和音頻處理、多媒體數據和其各種處理、文本數據和其各種處理以及其它任何類型的數據及處理。
線程1包含讀出處理1、圖像處理1和寫入處理1,線程2包含讀出處理2、圖像處理2和寫入處理2,線程3包含讀出處理3、圖像處理3和寫入處理3。
讀出處理1是從內存1中讀出線程1的處理對象數據的處理,寫入處理1是將線程1的處理結果數據寫入內存2的處理。讀出處理2是從內存2中讀出線程2的處理對象數據的處理,寫入處理2是將線程2的處理結果數據寫入內存3的處理。讀出處理3是從內存3中讀出線程3的處理對象數據的處理,寫入處理3是將線程3的處理結果數據寫入內存4的處理。
此外,除上述的線程或處理外,還存在線程4、線程5、線程6和線程7,線程4包含控制線程1的優先度的優先度控制處理1。線程5包含控制線程1和線程2的優先度的優先度控制處理2,線程6包含控制線程2和線程3的優先度的優先度控制處理3,線程7包含控制線程3的優先度的優先度控制處理4。
優先度控制處理1,將內存1中存儲的信息量與基準量進行比較,根據比較結果,對線程1的優先度進行控制。另外,優先度控制處理1控制優先度的未必僅限于線程1,可以是讀出處理1、圖像處理1和線程1中的任一者或多者。
優先度控制處理2,將內存2中存儲的信息量與基準量進行比較,根據比較結果,對線程1和線程2的優先度進行控制。另外,優先度控制處理2控制優先度的未必僅限于線程1和線程2,可以是寫入處理1、讀出處理2、圖像處理1、圖像處理2、線程1和線程2中的任一者或多者。
優先度控制處理3,將內存3中存儲的信息量與基準量進行比較,根據比較結果,對線程2和線程3的優先度進行控制。另外,優先度控制處理3控制優先度的未必僅限于線程2和線程3,可以是寫入處理2、讀出處理3、圖像處理2、圖像處理3、線程2和線程3的任一者或多者。
優先度控制處理4,將內存4中存儲的信息量與基準量進行比較,根據比較結果,對線程3的優先度進行控制。另外,優先度控制處理4控制優先度的未必僅限于線程3,可以是寫入處理3、圖像處理3和線程3中的任一者或多者。
另外,在本實施例的優先度控制處理1~4中所使用的基準量全部是相同的,但本發明并不只限定于此,也可以將各優先度控制處理1~4中所使用的基準量設定成各不相同的量。此時,各優先度控制處理1~4中所使用的基準量,被預先設定成不會使內存產生下溢(underflow)的信息量。據此,可以用更高的精度來控制各線程的優先度。
此外,優先度控制處理1、優先度控制處理2、優先度控制處理3和優先度控制處理4未必需要全部存在,只存在其中幾個亦可,也可以是其中幾個共同使用而予以執行,或者存在上述4者以外的處理亦可。
這樣的第1線程結構例,在第1硬件結構例的圖像處理裝置100中被執行時,線程1、線程2和線程3以及各線程所包含的全部處理、線程4、線程5、線程6、線程7以及各線程所包含的優先度控制處理1、優先度控制處理2、優先度控制處理3和優先度控制處理4由CPU103執行,作為內存1、內存2、內存3、內存4使用存儲部104。
此外,這樣的第1線程結構例,在第2硬件結構例的圖像處理裝置200中被執行時,線程1和線程1所包含的全部處理由第1CPU213執行,線程2和線程2所包含的全部處理由第2CPU223執行,線程3和線程3所包含的全部處理由第3CPU233執行。但本發明并不限定于此。
內存1使用第1存儲部214,內存2使用第1存儲部214和第2存儲部224中的任一方或雙方,內存3使用第2存儲部224和第3存儲部234中的任一方或雙方,內存4使用第3存儲部234。但本發明并不限定于此。
優先度控制處理1由第1CPU213執行,優先度控制處理2由第1CPU213和第2CPU223的任一方或雙方執行,優先度控制處理3由第2CPU223和第3CPU233的任一方或雙方執行,優先度控制處理4由第3CPU233執行。但本發明并不限定于此。
此外,這樣的第1線程結構例,在第3硬件結構例的圖像處理裝置300中被執行時,線程1和線程1所包含的全部處理由第1CPU313執行,線程2和線程2所包含的全部處理由第2CPU323執行,線程3和線程3所包含的全部處理由第3CPU333執行。但本發明并不限定于此。
作為內存1、內存2、內存3和內存4,使用存儲部304。優先度控制處理1由第1CPU313執行,優先度控制處理2由第1CPU313和第2CPU323的任一方或雙方執行,優先度控制處理3由第2CPU323和第3CPU333的任一方或雙方執行,優先度控制處理4由第3CPU333執行。但本發明并不限定于此。
圖7是本實施例中所執行的第2線程結構例的示意圖。第2線程結構例包含線程1、線程2、線程3三個線程。該各線程與第1線程結構例相同。但本發明并不限定于此。
線程1包含讀出處理1、圖像處理1、寫入處理1和優先度控制處理1,線程2包含讀出處理2、圖像處理2、寫入處理2和優先度控制處理2,線程3包含讀出處理3、圖像處理3、寫入處理3和優先度控制處理3。各讀出處理、各圖像處理和各寫入處理與第1線程結構例相同。但本發明并不限定于此。
優先度控制處理1,將內存1中存儲的信息量與基準量進行比較,根據比較結果,對線程1、讀出處理1和圖像處理1中的任一者或幾者的優先度進行控制。此外,優先度控制處理1,還將內存2中存儲的信息量與基準量進行比較,根據比較結果,對線程1、寫入處理1和圖像處理1中的任一者或幾者的優先度進行控制。
優先度控制處理2,將內存2中存儲的信息量與基準量進行比較,根據比較結果,對線程2、讀出處理2和圖像處理2中的任一者或幾者的優先度進行控制。此外,優先度控制處理2,還將內存3中存儲的信息量與基準量進行比較,根據比較結果,對線程2、寫入處理2和圖像處理2中的任一者或幾者的優先度進行控制。
優先度控制處理3,將內存3中存儲的信息量與基準量進行比較,根據比較結果,對線程3、讀出處理3和圖像處理3中的任一者或幾者的優先度進行控制。此外,優先度控制處理3,還將內存4中存儲的信息量與基準量進行比較,根據比較結果,對線程3、寫入處理3和圖像處理3中的任一者或幾者的優先度進行控制。
此外,優先度控制處理1、優先度控制處理2和優先度控制處理3未必需要全部存在,只存在其中幾個亦可,也可以是其中幾個共同使用而予以執行,或者存在上述3者以外的處理亦可。
這樣的第2線程結構例,在第1硬件結構例的圖像處理裝置100中被執行時,線程1、線程2和線程3及各線程所包含的全部處理由CPU103執行,作為內存1、內存2、內存3和內存4,使用存儲部104。
此外,這樣的第2線程結構例,在第2硬件結構例的圖像處理裝置200中被執行時,線程1和線程1所包含的全部處理由第1CPU213執行,線程2和線程2所包含的全部處理由第2CPU223執行,線程3和線程3所包含的全部處理由第3CPU233執行。但本發明并不限定于此。
內存1使用第1存儲部214,內存2使用第1存儲部214和第2存儲部224中的任一方或雙方,內存3使用第2存儲部224和第3存儲部234中的任一方或雙方,內存4使用第3存儲部234。但本發明并不限定于此。
此外,這樣的第2線程結構例,在第3硬件結構例的圖像處理裝置300中被執行時,線程1和線程1所包含的全部處理由第1CPU313執行,線程2和線程2所包含的全部處理由第2CPU323執行,線程3和線程3所包含的全部處理由第3CPU333執行。作為內存1、內存2、內存3和內存4,使用存儲部304。但本發明并不限定于此。
圖8是本實施例中所執行的第3線程結構例的示意圖。第3線程結構例包含線程1、線程2、線程3、線程4四個線程。各線程與第1線程結構例相同。但本發明并不限定于此。
線程1包含讀出處理1、圖像處理1和寫入處理1,線程2包含讀出處理2、圖像處理2和寫入處理2,線程3包含讀出處理3、圖像處理3和寫入處理3。各讀出處理、各圖像處理和各寫入處理與第1線程結構例相同。但本發明并不限定于此。
此外,除線程1、線程2、線程3及這些線程所包含的處理外,還存在線程4。線程4中包含有對線程1、線程2、線程3及其中所包含的寫入處理和讀出處理的優先度進行控制的優先度控制處理。
優先度控制處理,將內存1中存儲的信息量與基準量進行比較,根據比較結果,對線程1的優先度進行控制。另外,優先度控制處理控制優先度的未必僅限于線程1,也可以是讀出處理1、圖像處理1和線程1中的任一者或多者。
此外,優先度控制處理,將內存2中存儲的信息量與基準量進行比較,根據比較結果,對線程1和線程2的優先度進行控制。另外,優先度控制處理控制優先度的未必僅限于線程1和線程2,也可以是寫入處理1、讀出處理2、圖像處理1、圖像處理2、線程1和線程2中的任一者或多者。
此外,優先度控制處理,將內存3中存儲的信息量與基準量進行比較,根據比較結果,對線程2和線程3的優先度進行控制。另外,優先度控制處理控制優先度的未必僅限于線程2和線程3,也可以是寫入處理2、讀出處理3、圖像處理2、圖像處理3、線程2和線程3中的任一者或多者。
此外,優先度控制處理,將內存4中存儲的信息量與基準量進行比較,根據比較結果,對線程3的優先度進行控制。另外,優先度控制處理控制優先度的未必僅限于線程3,也可以是寫入處理3、圖像處理3和線程3中的任一者或多者。
這樣的第3線程結構例,在第1硬件結構例的圖像處理裝置100中被執行時,線程1、線程2和線程3、各線程所包含的全部處理和優先度控制處理由CPU103執行,作為內存1、內存2、內存3和內存4,使用存儲部104。
此外,這樣的第3線程結構例,在第2硬件結構例的圖像處理裝置200中被執行時,線程1和線程1所包含的全部處理由第1CPU213執行,線程2和線程2所包含的全部處理由第2CPU223執行,線程3和線程3所包含的全部處理由第3CPU233執行。但本發明并不限定于此。
內存1使用第1存儲部214,內存2使用第1存儲部214和第2存儲部224中的任一方或雙方,內存3使用第2存儲部224和第3存儲部234中的任一方或雙方,內存4使用第3存儲部234。但本發明并不限定于此。優先度控制處理,由第1CPU213、第2CPU223和第3CPU233中的任一者或多者執行。但本發明并不限定于此。
此外,這樣的第3線程結構例,在第3硬件結構例的圖像處理裝置300中被執行時,線程1和線程1所包含的全部處理由第1CPU313執行,線程2和線程2所包含的全部處理由第2CPU323執行,線程3和線程3所包含的全部處理由第3CPU333執行。但本發明并不限定于此。
作為內存1、內存2、內存3和內存4使用存儲部304。優先度控制處理,由第1CPU313、第2CPU323和第3CPU333中的任一者或幾者執行。但本發明并不限定于此。
下面,對上述的第1硬件結構例、第2硬件結構例、第3硬件結構例、第1線程結構例、第2線程結構例和第3線程結構例中的任一者均通用的各優先度控制處理所執行的優先度的控制方法,舉出第1優先度控制、第2優先度控制和第3優先度控制的各個例子進行說明。
圖9和圖10是第1硬件結構例、第2硬件結構例、第3硬件結構例、第1線程結構例、第2線程結構例和第3線程結構例中均執行的優先度控制的一個例子的示意圖。圖9是向內存中寫入信息時,伴隨寫入而進行的優先度控制的處理內容的示意圖,圖10是從內存中讀出信息時,伴隨讀出而進行的優先度控制的處理內容的示意圖。將作為該信息寫入或讀出對象的內存暫且設為“內存n”。
在該優先度控制中,各線程或處理的優先度的級別,用H(High優先度高)級和L(Low優先度低)級兩個等級來表示。該優先度的級別(H/L),例如可用CPU103~CPU333(視硬件結構例而異)的中斷級(interrupt level)的差別來實現。但本發明并不限定于這樣的例子,優先度的級別也可以在3個等級以上,用中斷級的差別以外的方法來實現優先度的級別控制亦可。這樣,通過將優先度的級別設置在3個等級以上,可以實現更為細致的優先度控制和整體的最優化。
另外,優先度級別在3個等級(3個值)以上時,在寫入處理時和讀出處理時的至少一種情況下,控制各線程的優先度以滿足以下條件。即,當內存n的信息量少于基準量時,控制成使寫入處理側的線程優先度大于讀出處理側的線程優先度。此外,當內存n的信息量多于基準量時,控制成使寫入處理側的線程優先度小于讀出處理側的線程優先度。進而,當內存n的信息量等于基準量時,使寫入處理側的線程優先度和讀出處理側的線程優先度,維持目前的優先度。
此時,可以通過只變更寫入處理側的線程優先度和讀出處理側的線程優先度中的任何之一,減少線程優先度的設定次數。
該優先度控制中,將內存n內的信息量和基準量進行比較,根據內存n內的信息量少于基準量、或內存n內的信息量等于基準量、或內存n內的信息量多于基準量,由線程z中包含的優先度控制處理z’來控制從內存n讀出信息的讀出處理x、包含讀出處理x的線程x、向內存n寫入信息的寫入處理y或包含寫入處理y的線程y的優先度。
另外,“n”為“1”~“4”的某一值,“x”和“y”為“1”~“3”的某一值,“z”為“1”~“7”的某一值,“z’”為“1”~“4”或“空白(null)”的某一值,視上述各硬件結構例和線程結構例而異。
此外,也可以將提高各線程或處理的優先度時的基準量和降低優先度時的基準量設為不同的值。例如,將提高優先度時的基準量作為第1基準量,具體值設定為“第1基準量=4”,將降低優先度時的基準量作為第2基準量,具體值設定為“第2基準量=3”亦可。這樣,通過使優先度的切換具備所謂的滯后特性(hysteresis characteristic),一旦優先度變高(或變低),可以在一定時間內維持其優先度高(或低)的狀態,執行穩定的控制。
執行各線程的CPU和用作各內存的存儲部,也視上述各硬件結構例和線程結構例而異。此外,優先度控制未必一定要以線程為單位,用與其不同或與其結合的單位、例如以各線程中所包含的讀出處理x、寫入處理y和圖像處理w(“w”為“1”~“3”中的某一值)為單位亦可。
如圖9所示,例如,在信息寫入時進行的優先度控制中,包含向內存n的信息寫入處理的線程在控制前的優先度為L級,當內存n內的信息量少于基準量時,控制后的包含向內存n的信息寫入處理的線程的優先度變為H級。
通過這樣的優先度控制,若內存n內的信息量少于基準量,包含寫入處理的線程的優先度則設定為高,從而可以促進向內存n的數據寫入,使內存n內的信息量增加而接近基準量。
或者,包含向內存n的信息寫入處理的線程在控制前的優先度為L級,當內存n內的信息量等于基準量時,控制后的包含向內存n的信息寫入處理的線程的優先度為L級。
通過這樣的優先度控制,若內存n內的信息量等于基準量,則此時的優先度原封不動地維持,而內存n內的信息量也維持與基準量相等的狀態。
或者,包含向內存n的信息寫入處理的線程在控制前的優先度為L級,當內存n內的信息量多于基準量時,控制后的包含向內存n的信息寫入處理的線程的優先度為L級。
通過這樣的優先度控制,若內存n內的信息量多于基準量,則此時的低優先度原封不動地維持,可以減少內存n內的信息量,使其接近基準量。
或者,包含向內存n的信息寫入處理的線程在控制前的優先度為H級,當內存n內的信息量少于基準量時,控制后的包含向內存n的信息寫入處理的線程的優先度為H級。
通過這樣的優先度控制,若內存n內的信息量少于基準量,包含寫入處理的線程的優先度則原封不動地維持此時的高狀態,從而可以促進向內存n的數據寫入,使內存n內的信息量增加而接近基準量。
或者,包含向內存n的信息寫入處理的線程在控制前的優先度為H級,當內存n內的信息量等于基準量時,控制后的包含向內存n的信息寫入處理的線程的優先度為H級。
通過這樣的優先度控制,若內存n內的信息量等于基準量,則此時的優先度原封不動地維持,而內存n內的信息量也維持與基準量相等的狀態。
或者,包含向內存n的信息寫入處理的線程在控制前的優先度為H級,當內存n內的信息量多于基準量時,控制后的包含向內存n的信息寫入處理的線程的優先度變為L級。
通過這樣的優先度控制,若內存n內的信息量多于基準量,包含寫入處理的線程的優先度則設定為低,從而可以抑制向內存n的數據寫入,使內存n內的信息量減少而接近基準量。
此外,如圖10所示,例如,在信息讀出時進行的優先度控制中,包含內存n的信息讀出處理的線程在控制前的優先度為L級,當內存n內的信息量少于基準量時,控制后的包含內存n的信息讀出處理的線程的優先度為L級。
通過這樣的優先度控制,若內存n內的信息量少于基準量,包含讀出處理的線程的優先度則維持低狀態,從而可以抑制從內存n的數據讀出,使內存n內的信息量增加而接近基準量。
或者,包含內存n的信息讀出處理的線程在控制前的優先度為L級,當內存n內的信息量等于基準量時,控制后的包含內存n的信息讀出處理的線程的優先度為L級。
通過這樣的優先度控制,若內存n內的信息量等于基準量,則此時的優先度原封不動地維持,而內存n內的信息量也維持與基準量相等的狀態。
或者,包含內存n的信息讀出處理的線程在控制前的優先度為L級,當內存n內的信息量多于基準量時,控制后的包含內存n的信息讀出處理的線程的優先度變為H級。
通過這樣的優先度控制,若內存n內的信息量多于基準量,包含讀出處理的線程的優先度則設定為高,可以減少內存n內的信息量,使其接近基準量。
或者,包含內存n的信息讀出處理的線程在控制前的優先度為H級,當內存n內的信息量少于基準量時,控制后的包含該內存n的信息讀出處理的線程的優先度變為L級。
通過這樣的優先度控制,若內存n內的信息量少于基準量,包含讀出處理的線程的優先度則設定為低,從而可以抑制內存n的數據讀出,使內存n內的信息量增加而接近基準量。
或者,包含內存n的信息讀出處理的線程在控制前的優先度為H級,當內存n內的信息量等于基準量時,控制后的包含該內存n的信息讀出處理的線程的優先度為H級。
通過這樣的優先度控制,若內存n內的信息量等于基準量,此時的優先度得以維持,而內存n內的信息量也維持與基準量相等的狀態。
或者,包含內存n的信息讀出處理的線程在控制前的優先度為H級,當內存n內的信息量多于基準量時,控制后的包含該內存n的信息讀出處理的線程的優先度為H級。
通過這樣的優先度控制,若內存n內的信息量多于基準量,包含讀出處理的線程的優先度則維持高狀態,從而可以促進內存n的數據讀出,使內存n內的信息量減少而接近基準量。
在此,對本實施例的優先度控制處理進行說明。另外,本實施例中,信息寫入時的優先度控制處理與信息讀出時的優先度控制處理不同。因此,首先對信息寫入時的優先度控制處理進行說明。圖11是用于說明圖1所示的圖像處理裝置100在信息寫入時的優先度控制處理的流程圖。
首先,在步驟S1中,CPU103執行線程。此處,CPU103通過執行線程,向內存n寫入信息。另外,存儲部104包含多個內存,內存n表示該多個內存中的一個。接著,在步驟S2中,CPU103獲取內存n目前所存儲的信息量。
接著,在步驟S3中,CPU103判斷所獲取的內存n的信息量是否小于預先設定的基準量。本實施例中,基準量預先存儲于存儲部104中,不會使內存n發生下溢(underflow)的信息量被預先設定。在此,當判斷出內存n的信息量小于基準量時(在步驟S3為YES),在步驟S4中,CPU103則判斷進行寫入處理后的線程的優先度是否為L級。
當判斷出進行寫入處理后的線程的優先度為L級時(在步驟S4為YES),則在步驟S5中,CPU103將進行寫入處理后的線程的優先度從L級變更為H級。另一方面,當判斷出進行寫入處理后的線程的優先度不是L級時,即判斷出進行寫入處理后的線程的優先度為H級時(在步驟S4為NO),在步驟S7中,CPU103則將進行寫入處理后的線程的優先度維持在目前的級別。
當判斷出內存n的信息量在基準量以上時(在步驟S3為NO),在步驟S6中,CPU103判斷內存n的信息量是否等于基準量。此處,當判斷出內存n的信息量等于基準量時(在步驟S6為YES),在步驟S7中,CPU103將進行寫入處理后的線程的優先度維持在目前的級別。
另一方面,當判斷出內存n的信息量不等于基準量時,即判斷出內存n的信息量大于基準量時(在步驟S6為NO),在步驟S8中,CPU103判斷進行寫入處理后的線程的優先度是否為L級。
當判斷出進行寫入處理后的線程的優先度為L級時(在步驟S8為YES),在步驟S7中,CPU103將進行寫入處理后的線程的優先度維持在目前的級別。另一方面,當判斷出進行寫入處理后的線程的優先度判斷不是L級時,即判斷出進行寫入處理后的線程的優先度判斷為H級時(在步驟S8為NO),則在步驟S9中,CPU103將進行寫入處理后的線程的優先度從H級變更為L級。
下面,對信息讀出時的優先度控制處理進行說明。圖12是用于說明圖1所示的圖像處理裝置100在信息讀出時的優先度控制處理的流程圖。
首先,在步驟S11中,CPU103執行線程。此處,CPU103通過執行線程,從內存n中讀出信息。接著,在步驟S12中,CPU103獲取內存n目前所存儲的信息量。
接著,在步驟S13中,CPU103判斷所獲取的內存n的信息量是否小于預先設定的基準量。在此,當判斷出內存n的信息量小于基準量時(在步驟S13為YES),在步驟S14中,CPU103則判斷進行讀出處理后的線程的優先度是否為L級。
當判斷出進行讀出處理后的線程的優先度為L級時(在步驟S14為YES),在步驟S17中,CPU103將進行讀出處理后的線程的優先度維持在目前的級別。另一方面,當判斷出進行讀出處理后的線程的優先度不是L級時,即判斷出進行讀出處理后的線程的優先度為H級時(在步驟S14為NO),在步驟S15中,CPU103則將進行讀出處理后的線程的優先度從H級變更為L級。
當判斷出內存n的信息量在基準量以上時(在步驟S13為NO),在步驟S16中,CPU103判斷內存n的信息量是否等于基準量。在此,當判斷出內存n的信息量等于基準量時(在步驟S16為YES),在步驟S17中,CPU103則將進行讀出處理后的線程的優先度維持在目前的級別。
另一方面,當判斷出內存n的信息量不等于基準量時,即判斷出內存n的信息量大于基準量時(在步驟S16為NO),在步驟S18中,CPU103則判斷進行讀出處理后的線程的優先度是否為L級。
當判斷出進行讀出處理后的線程的優先度為L級時(在步驟S18為YES),在步驟S19中,CPU103將進行讀出處理后的線程的優先度從L級變更為H級。另一方面,當判斷出進行讀出處理后的線程的優先度判斷不是L級時,即判斷出進行讀出處理后的線程的優先度為H級時(在步驟S18為NO),在步驟S17中,CPU103則將進行讀出處理后的線程的優先度維持在目前的級別。
如此,在執行了寫入處理時或執行了讀出處理時的至少一種情況下,基于存儲部所存儲的信息量,線程的優先度得以控制。從而,可以控制優先度而使各線程自主分散地將記錄部的信息記錄量最優化,并可以使作為整體的處理負載得到優化而無額外開銷。
其次,用圖13示意按照圖9和圖10所示的優先度控制的處理內容而執行的第1優先度控制例。圖13是按照圖9和圖10所示的優先度控制的處理內容而執行的第1優先度控制例的示意圖。
在第1優先度控制例中,相對由優先度控制處理執行的內存內的信息量和基準量的1次比較,只執行1個優先度的變更。因此,由于用來變更優先度的系統調用(system call)只發生1次,可將伴隨系統調用而產生的額外開銷(overhead)控制在最小限度內。另一方面,內存內的信息量和基準量的1次比較,也有可能無法實現更為理想的優先度控制狀態。
例如,在圖6所示的第1線程結構例中,假定向內存2寫入信息的寫入處理1的優先度為H級,從內存2讀出信息的讀出處理2的優先度為L級,內存2內的信息量多于基準量。
在這樣的假定下,該第1優先度控制例中,執行將寫入處理1的優先度變更為L級,或將讀出處理2的優先度變更為H級的其中之一。然而,在相同的假定下,或許在將寫入處理1的優先度變更為L級的同時,將讀出處理2的優先度變更為H級,才是更為理想的控制。
然而,在第1優先度控制中不執行這樣的優先度控制,對內存內的信息量和基準量的1次比較,只執行1個優先度的變更。因而,為將寫入處理1的優先度變更為L級,讀出處理2的優先度變更為H級,必須在相同的條件下進行2次內存內的信息量和基準量的比較。
這樣的優先度控制,可以將伴隨用來變更優先度的系統調用而產生的額外開銷控制在最小限度內,并且在從圖6至圖8所示的第1線程結構例到第3線程結構例的無論哪一種線程結構例中都可以執行(后述的第2優先度控制例,只能在指定的線程結構例中執行)。
在圖13所示的例子中,不是以讀出處理、寫入處理和圖像處理等處理為單位,而是以線程為單位控制從線程1到線程3的優先度。線程1將處理結果(在該例中為圖像處理的結果,以下相同。但本發明并不限定于該例)寫入內存2中,線程2則從內存2中讀出信息進行處理。線程2將處理結果寫入內存3中,線程3則從內存3中讀出信息進行處理。
任一優先度控制處理(視第1線程結構例至第3線程結構例而異),都將內存2的信息量與基準量進行比較,來控制線程1和線程2的優先度。此外,其他的優先度控制處理或相同的優先度控制處理(視第1線程結構例至第3線程結構例而異),將內存3的信息量與基準量進行比較,來控制線程2和線程3的優先度。但本發明并不限定于該實施例。優先度為H(高)級和L(低)級的2個等級,基準量設為“1”。但本發明并不限定于該實施例。
內存2的信息量若為0,則執行將線程1的優先度設為H級或將線程2的優先度設為L級的其中之一的優先度控制。在該第1優先度控制例中,不能同時進行上述雙方的優先度控制。
內存2的信息量若為1,則線程1的優先度和線程2的優先度維持現狀。內存2的信息量若為2以上,則執行將線程1的優先度設為L級或將線程2的優先度設為H級的其中之一的優先度控制。在該第1優先度控制例中,不能同時進行上述雙方的優先度控制。
同樣,內存3的信息量若為0,則執行將線程2的優先度設為H級或將線程3的優先度設為L級的其中之一的優先度控制。在該第1優先度控制例中,不能同時進行上述雙方的優先度控制。
內存3的信息量若為1,則線程2的優先度和線程3的優先度維持現狀。內存3的信息量若為2以上,則執行將線程2的優先度設為L級或將線程3的優先度設為H級的其中之一的優先度控制。在該第1優先度控制例中,不能同時進行上述雙方的優先度控制。但本發明并不限定于該實施例。
對這樣的第1優先度控制例,用圖13進行說明。圖13所示的狀態(1),是進行優先度控制之前的初始狀態。在初始狀態下,假定線程1、線程2和線程3的優先度全部為L級,內存2和內存3的信息量都為0。
然后,在狀態(2)中,若線程1將處理結果寫入了內存2,則內存2的信息量為1,內存3的信息量仍為0。按照上述條件,由于內存3的信息量為0,線程2的優先度從L級變更為H級。
在下一狀態(3)中,若線程1繼續將處理結果寫入內存2,則內存2的信息量為2,內存3的信息量仍為0。按照上述條件,優先度不發生變更。在下一狀態(4)中,若優先度變為H級的線程2從內存2中讀出了信息,則內存2的信息量為1,內存3的信息量仍為0。按照上述條件,優先度不發生變更。在下一狀態(5)中,若優先度持續為H級的線程2繼續將處理結果寫入內存3,則內存2的信息量仍為1,而內存3的信息量為1。按照上述條件,優先度不發生變更。
在下一狀態(6)中,若優先度持續為H級的線程2繼續從內存2中讀出信息,則內存2的信息量為0,內存3的信息量仍為1。按照上述條件,由于內存2的信息量為0,則線程1的優先度從L級變更為H級。
在下一狀態(7)中,雖然線程1和線程2的優先度都為H級,但由于內存2的信息量為0,線程2無法從內存2中讀出信息。因此,在狀態(7)下,不進行任何信息的讀寫。此時,按照上述條件,由于內存2的信息量為0,線程2的優先度從H級變更為L級。該狀態(6)的優先度控制和狀態(7)的優先度控制,在該第1優先度控制例中不同時執行,而是順序執行。但上述優先度控制中的哪一者先執行并不確定。
在下一狀態(8)中,若優先度變為H級的線程1將處理結果寫入內存2,則內存2的信息量為1,內存3的信息量仍為1。按照上述條件,優先度不發生變更。在下一狀態(9)中,若優先度持續為H級的線程1繼續將處理結果寫入內存2,則內存2的信息量為2,內存3的信息量仍為1。按照上述條件,由于內存2的信息量為2,線程1的優先度從H級變更為L級。
在下一狀態(10)中,若線程2從內存2中讀出信息,則內存2的信息量為1,內存3的信息量仍為1。按照上述條件,優先度不發生變更。在下一狀態(11)中,若線程2將處理結果寫入內存3,則內存2的信息量仍為1,內存3的信息量為2。按照上述條件,由于內存3的信息量為2,線程3的優先度從L級變更為H級。
在下一狀態(12)中,若優先度變為H級的線程3從內存3中讀出信息,則內存2的信息量仍為1,內存3的信息量為1。按照上述條件,優先度不發生變更。在最后的狀態(13)中,若優先度持續為H級的線程3繼續從內存3中讀出信息,則內存2的信息量仍為1,內存3的信息量為0。按照上述條件,由于內存3的信息量為0,線程2的優先度從L級變更為H級。
在圖13所示的第1優先度控制例中,由于優先度控制被簡單化,因而不僅可以減輕額外開銷或負載,而且各優先度控制處理將自身負責的內存內的信息量與基準量進行比較,進行諸如維持或反轉向其內存中寫入信息的線程和讀出信息的線程中任何之一的優先次序這樣的負載非常輕的優先度控制,從而無需通盤考慮系統整體進行控制,就可實現系統整體負載平衡的最優化。
另外,在本實施例中,當存在多個優先度相同的線程時,通過輪轉(round robin)方式,同一優先度的線程得以執行。
此外,在本實施例中,如圖9和圖10所示,信息寫入時對包含寫入處理的線程的優先度控制和信息讀出時對包含讀出處理的線程的優先度控制是分開執行的,但本發明并不特別限定于此,亦可在信息寫入時和信息讀出時,控制信息輸入側的線程優先度和輸出側的線程優先度。
圖14是信息寫入時和讀出時,對輸入側的線程和輸出側的線程執行的優先度控制的處理內容的示意圖。如圖14所示,例如,輸入側線程的優先度為L級,輸出側線程的優先度為L級,當內存n內的信息量小于基準量時,輸入側線程的優先度變更為H級,輸出側線程的優先度維持在L級。
如此,在信息寫入時和信息讀出時,不是只對進行了寫入處理和讀出處理的線程的優先度進行控制,而是對寫入側(輸入側)和讀出側(輸出側)雙方的線程優先度進行控制。因此,可將設置于2個線程之間的內存內的信息量控制在最佳狀態,從而可以防止上溢(overflow)和下溢(underflow)。
此外,如圖14所示,由于每1次處理,只對寫入側(輸入側)和讀出側(輸出側)的某一線程的優先度進行變更,因而可將系統調用的額外開銷控制在最小限度內。但在變更雙方的線程優先度時,由于1次處理只能變更其中之一的線程優先度,因此,變更另一線程優先度的處理需要另外進行。
下面,對第2優先度控制例進行說明。圖15是按照圖9和圖10所示的優先度控制的處理內容而執行的第2優先度控制例的示意圖。第2優先度控制例也按照圖9和圖10所示的優先度控制的控制表執行優先度控制,這點與上述第1優先度控制例相同。
但在該第2優先度控制例中,相對由優先度控制處理執行的內存內的信息量和基準量的1次比較,可以按照圖9和圖10所示的控制表,同時執行2個以上線程優先度的變更。因此,用來變更優先度的系統調用可能會發生2次以上,伴隨系統調用而產生的額外開銷也可能會增加。另一方面,通過內存內的信息量和基準量的1次比較,可以實現更為理想的優先度控制狀態。
在該第2優先度控制例中,優先度也為H(高)級和L(低)級的2個等級,基準量也設為“1”。但本發明并不限定于該實施例。
內存2的信息量若為0,則進行將線程1的優先度設為H級并同時將線程2的優先度設為L級的優先度控制。在第2優先度控制例中,上述雙方的線程的優先度控制同時進行。
內存2的信息量若為1,則線程1的優先度和線程2的優先度維持現狀。內存2的信息量若為2以上,則進行將線程1的優先度設為L級并同時將線程2的優先度設為H級的優先度控制。在第2優先度控制例中,上述雙方的線程的優先度控制同時進行。
同樣,內存3的信息量若為0,則進行將線程2的優先度設為H級并同時將線程3的優先度設為L級的優先度控制。在第2優先度控制例中,上述雙方的線程的優先度控制同時進行。
內存3的信息量若為1,則線程2的優先度和線程3的優先度維持現狀。內存3的信息量若為2以上,則進行將線程2的優先度設為L級并同時將線程3的優先度設為H級的優先度控制。在第2優先度控制例中,上述雙方的線程的優先度控制同時進行。但本發明并不限定于該實施例。
此外,由于該第2優先度控制例,可通過一次優先度控制處理中一個內存內的信息量和基準量的比較,來控制2個以上線程的優先度,所以,在圖6所示的第1線程結構例和圖8所示的第3線程結構例中可以執行,但在圖7所示的第2線程結構例中不能執行。
對這樣的第2優先度控制例,用圖15進行說明。圖15所示的狀態(1),是進行優先度控制之前的初始狀態。在初始狀態下,假定線程1、線程2和線程3的優先度全部為L級,內存2和內存3的信息量都為0。
然后,在狀態(2)中,若線程1將處理結果寫入內存2,則內存2的信息量為1,內存3的信息量仍為0。按照上述條件,由于內存3的信息量為0,線程2的優先度從L級變更為H級。
在下一狀態(3)中,若線程1繼續將處理結果寫入內存2,則內存2的信息量為2,內存3的信息量仍為0。按照上述條件,優先度不發生變更。在下一狀態(4)中,若優先度變為H級的線程2從內存2中讀出信息,則內存2的信息量為1,內存3的信息量仍為0。按照上述條件,優先度不發生變更。在下一狀態(5)中,若優先度持續為H級的線程2繼續將處理結果寫入內存3,則內存2的信息量仍為1,內存3的信息量為1。按照上述條件,優先度不發生變更。
在下一狀態(6)中,若優先度持續為H級的線程2繼續從內存2中讀出信息,則內存2的信息量為0,內存3的信息量仍為1。按照上述條件,由于內存2的信息量為0,線程1的優先度從L級變更為H級,同時線程2的優先度也從H級變更為L級。這樣,由于第2優先度控制例與上述第1優先度控制例不同,通過1次優先度控制處理多個線程的優先度得以變更,故可實現更為理想的優先度狀態。
在下一狀態(7)中,線程1的優先度為H級,線程2和線程3的優先度都為L級,由于已經被控制在最佳的優先度狀態,因此不進行任何信息的讀寫。此時,各線程的優先度也不變更。
在下一狀態(8)中,若優先度變為H級的線程1將處理結果寫入內存2,則內存2的信息量為1,內存3的信息量仍為1。按照上述條件,優先度不發生變更。在下一狀態(9)中,若優先度持續為H級的線程1繼續將處理結果寫入內存2,則內存2的信息量為2,內存3的信息量仍為1。按照上述條件,由于內存2的信息量為2,線程1的優先度從H級變更為L級,同時線程2的優先度也從L級變更為H級。
在下一狀態(10)中,若優先度變為H級的線程2從內存2中讀出信息,則內存2的信息量為1,內存3的信息量仍為1。按照上述條件,優先度不發生變更。在下一狀態(11)中,若優先度持續為H級的線程2繼續將處理結果寫入內存3,則內存2的信息量仍為1,內存3的信息量為2。按照上述條件,由于內存3的信息量為2,線程2的優先度從H級變更為L級,同時線程3的優先度從L級變更為H級。
在下一狀態(12)中,若優先度變為H級的線程3從內存3中讀出信息,則內存2的信息量仍為1,內存3的信息量為1。按照上述條件,優先度不發生變更。在最后的狀態(13)中,若優先度持續為H級的線程3從內存3中讀出信息,則內存2的信息量仍為1,內存3的信息量為0。按照上述條件,由于內存3的信息量為0,線程2的優先度從L級變更為H級,同時線程3的優先度從H級變更為L級。
在圖15所示的第2優先度控制例中,各優先度控制處理將自身負責的內存內的信息量與基準量進行比較,進行諸如維持或反轉向其內存中寫入信息的線程和讀出信息的線程的優先次序這樣的負載非常輕的優先度控制,從而無需通盤考慮系統整體進行控制,就可實現系統整體負載平衡的最優化。而且通過1次優先度控制處理,就可以實現更為理想的優先度控制狀態。
此外,在本實施例中,如圖9和圖10所示,信息寫入時對包含寫入處理的線程的優先度控制和信息讀出時對包含讀出處理的線程的優先度控制是分開執行的,但本發明并不特別限定于此,亦可在信息寫入時和信息讀出時,控制信息輸入側的線程優先度和輸出側的線程優先度。
圖16是信息寫入時和讀出時,對輸入側的線程和輸出側的線程執行的優先度控制的處理內容的示意圖。如圖16所示,例如,輸入側線程的優先度為L級,輸出側線程的優先度為L級,當內存n內的信息量小于基準量時,輸入側線程的優先度變更為H級,輸出側線程的優先度維持在L級。
進而,輸入側線程的優先度為L級,輸出側線程的優先度為H級,當內存n內的信息量小于基準量時,輸入側線程的優先度變更為H級,輸出側線程的優先度變更為L級。
如此,在信息寫入時和信息讀出時,不是只對進行了寫入處理和讀出處理的線程的優先度進行控制,而是對寫入側(輸入側)和讀出側(輸出側)雙方的線程優先度進行控制。因此,可將設置于2個線程之間的內存內的信息量控制在最佳狀態,從而可以防止上溢和下溢。
此外,如圖16所示,由于每1次處理,對寫入側(輸入側)和讀出側(輸出側)雙方線程的優先度進行變更,雖然系統調用的額外開銷增大,但1次處理即可將系統整體的優先度變更至最佳狀態。
下面,對在上述第1硬件結構例、第2硬件結構例、第3硬件結構例、第1線程結構例、第2線程結構例和第3線程結構例中,各控制線程均可執行的第3優先度控制例進行說明。
圖17是第3優先度控制例所執行的進程和線程的結構例的示意圖。在第1優先度控制例和第2優先度控制例中,1個圖像數據流被輸入,對連續執行1個圖像數據流的處理的3個線程進行了考慮。
另一方面,在第3優先度控制例中,2個圖像數據流A、B被輸入,考慮并行執行分別對2個圖像數據流A、B的處理的2個進程A、B。進程A包括連續執行的線程A-1、線程A-2和線程A-3三個線程,進程B包括連續執行的線程B-1、線程B-2和線程B-3三個線程。另外,舉出這樣的例子進行說明,是為了更加容易理解地對其特征進行說明,本發明并不限定于這樣的例子。
圖17所示的第3優先度控制例,可在上述說明的第1~3硬件結構例的任一者中執行,也可在第1~3線程結構例的任一者中執行。或者,用上述以外的硬件結構或線程結構執行亦可。
在第3優先度控制例中,進行圖像數據流A的處理的進程A中所包含的線程A-1、線程A-2和線程A-3,分別具有2個等級的優先度級別值HA、LA。同樣,進行圖像數據流B的處理的進程B中所包含的線程B-1、線程B-2和線程B-3,分別具有2個等別的優先度級別值HB、LB。而且,實際的優先度級別值被設定成HA=4,LA=3,HB=2,LB=1。
線程A-1、線程A-2和線程A-3,若各線程讀出信息的內存(在圖17中省略圖示)的信息記錄量超過基準量,則設定高優先度級別值HA=4,反之,若該內存的信息記錄量小于基準量,則設定低優先度級別值LA=3。此外,若上述的各線程寫入信息的內存的信息記錄量超過基準量,則設定低優先度級別值LA=3,反之,若該內存的信息記錄量小于基準量,則設定高優先度級別值HA=4。
同樣,線程B-1、線程B-2和線程B-3,若各線程讀出信息的內存(在圖17中省略圖示)的信息記錄量超過基準量,則設定高優先度級別值HB=2,反之,若該內存的信息記錄量小于基準量,則設定低優先度級別值LB=1。此外,若上述各線程寫入信息的內存的信息記錄量超過基準量,則設定低優先度級別值LB=1,反之,若該內存的信息記錄量小于基準量,則設定高優先度級別值HB=2。
如上所述,通過設定優先度級別值HA、LA、HB、LB,使其滿足HA>LA>HB>LB的條件,可以將進程A所包含的各線程控制成,即使其優先度降低時,也總是高于進程B所包含的各線程的優先度,從而可更為優先地得以執行。因此,可以在對圖像數據流A進行處理的進程A所包含的線程A-1、線程A-2和線程A-3所使用的內存的信息量達到基準量后,可以對進行圖像數據流B的處理的進程B所包含的線程B-1、線程B-2和線程B-3所使用的內存的信息量進行控制,使其接近基準量。即,可以更優先圖像數據流A的處理而使其最優化。
這樣,對應不同的圖像數據流來改變優先度的級別值,在承擔上述不同的圖像數據流處理的部分其全部或一部分有所重復時,更為有效。例如,象第1硬件結構例那樣用1個CPU103等的硬件執行處理時,象第3硬件結構例那樣共用1個存儲部304等的硬件執行處理時,或象第3線程結構例那樣由1個控制線程執行處理時,更為有效。但本發明不一定要限定于這樣的例子。
或者,在相同的環境下,實際分配的優先度級別值,定為HA=4,LA=2,HB=3,LB=1亦可。
這樣,優先度級別值被規定為滿足HA>HB>LA>LB的條件。因此,對彼此相同的優先度級別(HA和HB或LA和LB),進程A優先于進程B而予以執行。另一方面,對彼此不同的優先度級別(HA和LB或HB和LA),高優先度級別(HA或HB)的線程優先于低優先度級別(LA或LB)的線程而予以執行。
從而,可以一邊使對圖像數據流A進行處理的進程A所包含的各線程所使用的內存的信息量接近基準量,一邊進行控制而使對圖像數據流B進行處理的進程B所包含的各線程所使用的內存的信息量也接近基準量。此外,可將使各進程包含的各線程所使用的內存的信息量接近基準量的優先度,控制為進程A高于進程B。
上述具體實施方式
中主要包含具有以下結構的發明。
本發明所提供的一種信息處理裝置,包括存儲信息的存儲部,執行包含向上述存儲部寫入信息的寫入處理和從上述存儲部讀出信息的讀出處理在內的線程的線程執行部,和在由上述線程執行部執行了上述寫入處理時或由上述線程執行部執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量控制上述線程的優先度的優先度控制部。
本發明還提供一種信息處理方法,包括,執行包含向存儲部寫入信息的寫入處理和從存儲部讀出信息的讀出處理在內的線程的線程執行步驟,和在上述線程執行步驟中執行了上述寫入處理時或在上述線程執行步驟中執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量控制上述線程的優先度的優先度控制步驟。
本發明還提供一種記錄了信息處理程序的計算機可讀取的信息記錄介質,其中所記錄的信息處理程序,使計算機作為以下各部而發揮其功能存儲信息的存儲部,執行包含向上述存儲部寫入信息的寫入處理和從上述存儲部讀出信息的讀出處理在內的線程的線程執行部,和在由上述線程執行部執行了上述寫入處理時或由上述線程執行部執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量控制上述線程的優先度的優先度控制部。
根據上述的結構或方法,在執行了寫入處理時或執行了讀出處理時的至少一種情況下,基于存儲部所存儲的信息量,線程的優先度得以控制。
因此,可以控制優先度而使各線程自主分散地將記錄部的信息記錄量最優化,并可以使作為整體的處理負載得到優化而無額外開銷。
上述的信息處理裝置較為理想的是,上述線程執行部執行連續的多個線程,上述寫入處理和上述讀出處理被包含在各不相同的線程之中,上述存儲部包含被分別設置于相鄰線程之間的多個存儲部。
根據該結構,在某一個線程將處理結果寫入存儲部,另一個線程將其處理結果從存儲部中讀出并執行下一處理的流水線系統(pipeline system)中,可使構成流水線的相鄰線程在進行信息的授受時所使用的記錄部的信息記錄量最優化,從而可以更為有效地使作為整體的處理負載得到最優化。
上述信息處理裝置較為理想的是,上述線程執行部,執行包含上述寫入處理的第1線程,并執行包含上述讀出處理的第2線程,上述優先度控制部,將上述存儲部所存儲的上述信息量與規定的基準量進行比較,當上述信息量小于上述基準量時,執行提高上述第1線程優先度的處理和降低上述第2線程優先度的處理中的至少其中之一,當上述信息量大于上述基準量時,執行降低上述第1線程優先度的處理和提高上述第2線程優先度的處理中的至少其中之一,當上述信息量等于上述基準量時,執行維持上述第1線程目前的優先度,并維持上述第2線程目前的優先度的處理。
根據該結構,當存儲部所存儲的信息量小于基準量時,即,存儲部內的信息量不足時,為增加存儲部的信息量,寫入信息的線程被優先執行。此外,當存儲部所存儲的信息量大于基準量時,即,存儲部內的信息量較多時,為減少存儲部的信息量,讀出信息的線程被優先執行。再者,當信息量等于基準量時,即,存儲部內的信息量為適當的量時,為維持存儲部內的信息量,寫入信息的線程和讀出信息的線程都被維持在目前的優先度。
因此,由于對寫入信息的線程的優先度和讀出信息的線程的優先度進行控制,使存儲部內的信息量為適當的量,故可將控制開銷抑制在必需的最小限度內,并使存儲部內的信息量為適當的量。
上述信息處理裝置較為理想的是,上述線程執行部,執行包含上述寫入處理的第1線程,并執行包含上述讀出處理的第2線程,上述優先度控制部,將上述信息量與規定的第1基準量進行比較,當上述信息量小于上述第1基準量時,執行提高上述第1線程優先度的處理和降低上述第2線程優先度的處理中的至少其中之一,將上述信息量與大于上述第1基準量的第2基準量進行比較,當上述信息量大于上述第2基準量時,執行降低上述第1線程優先度的處理和提高上述第2線程優先度的處理中的至少其中之一。
根據該結構,存儲部所存儲的信息量小于第1基準量時,寫入信息的線程被優先執行,當信息量大于第2基準量時,讀出信息的線程被優先執行。
因此,可使優先度的切換具備所謂的滯后特性,一旦優先度變高(或變低),可以在一定時間內維持其優先度高(或低)的狀態,執行穩定的控制。
上述信息處理裝置較為理想的是,上述線程執行部,執行第1進程和與上述第1進程不同的第2進程,上述第1進程和上述第2進程,分別包括包含上述寫入處理的線程和包含上述讀出處理的線程,上述優先度控制部,在上述第1進程的優先次序高于上述第2進程的優先次序時,將上述第1進程所包含的線程的優先度設定得高于上述第2進程所包含的線程的優先度。
根據該結構,第1進程的優先度次序高于第2進程的優先次序時,第1進程所包含的線程的優先度被設定得高于第2進程所包含的線程的優先度。
因此,可將第1進程的優先度設定得高于第2進程的優先度,第1進程執行的處理,可以優先于第2進程執行的處理而予以執行。
上述信息處理裝置較為理想的是,上述線程執行部,執行第1進程和與上述第1進程不同的第2進程,上述第1進程和上述第2進程,分別包括包含上述寫入處理的線程和包含上述讀出處理的線程,上述優先度,包含第1優先度級別和高于上述第1優先度級別的第2優先度級別,上述優先度控制部,在上述第1進程的優先次序高于上述第2進程的優先次序時,將上述第1進程所包含的線程的上述第1優先度級別設定得高于上述第2進程所包含的線程的上述第1優先度級別,并將上述第1進程所包含的線程的上述第2優先度級別設定得高于上述第2進程所包含的線程的上述第2優先度級別。
根據該結構,在第1進程的優先次序高于第2進程的優先次序時,將第1進程所包含的線程的第1優先度級別設定得高于第2進程所包含的線程的第1優先度級別,并將第1進程所包含的線程的第2優先度級別設定得高于第2進程所包含的線程的第2優先度級別。
因而,第1進程執行的處理,可以優先于第2進程執行的處理而予以執行,可以在將第1進程存儲部內的信息量控制為適當量的同時,將第2進程存儲部內的信息量也控制為適當量。
上述信息處理裝置較為理想的是,上述多個線程,包含執行第1圖像處理的第1線程和對上述第1圖像處理的處理結果執行第2圖像處理的第2線程。
根據該結構,在將復雜的圖像處理分解為較為簡單的圖像處理,逐步用多個線程進行流水線處理的系統中,可以根據各線程分擔的圖像處理的負載程度,細致地設定其線程的優先度。而且,由于各線程的優先度的控制自主分散地予以執行,因此可以使作為整體的處理負載得到優化而無額外開銷。
上述信息處理裝置較為理想的是,上述優先度,包含第1優先度級別和高于上述第1優先度級別的第2優先度級別。
根據該結構,由于優先度包含第1優先度級別和高于第1優先度級別的第2優先度級別兩個值,故僅通過維持或反轉向存儲部寫入信息的線程和從存儲部讀出信息的線程的其中任何之一的優先度,就可以進行優先度的控制。因此,可以減輕優先度控制的處理負載,無需一邊監視系統整體一邊進行控制,從而可實現系統整體的負載平衡的最優化。
本發明所涉及的信息處理裝置、信息處理方法和記錄了信息處理程序的計算機可讀取的記錄介質,可以控制優先度使各線程自主分散地將記錄部的信息記錄量最優化,作為同時并行地或分時地執行多個線程,將1個線程的執行結果存儲于存儲部中,使用存儲于該存儲部中的執行結果執行另一線程的信息處理裝置、信息處理方法和記錄了信息處理程序的計算機可讀取的信息記錄介質,很有實用價值。
權利要求
1.一種信息處理裝置,其特征在于包括存儲部,用于存儲信息;線程執行部,執行包含向上述存儲部寫入信息的寫入處理和從上述存儲部讀出信息的讀出處理在內的線程;和優先度控制部,在由上述線程執行部執行了上述寫入處理時或由上述線程執行部執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量,控制上述線程的優先度。
2.根據權利要求1所述的信息處理裝置,其特征在于上述線程執行部,執行連續的多個線程;上述寫入處理和上述讀出處理被分別包含在各不相同的線程之中;上述存儲部,包含被分別設置于相鄰線程之間的多個存儲部。
3.根據權利要求2所述的信息處理裝置,其特征在于上述線程執行部,執行包含上述寫入處理的第1線程,并執行包含上述讀出處理的第2線程;上述優先度控制部,將上述存儲部所存儲的上述信息量與規定的基準量進行比較,當上述信息量小于上述基準量時,執行提高上述第1線程的優先度的處理和降低上述第2線程的優先度的處理的至少其中之一;當上述信息量大于上述基準量時,執行降低上述第1線程的優先度的處理和提高上述第2線程的優先度的處理的至少其中之一;當上述信息量等于上述基準量時,執行既維持上述第1線程目前的優先度又維持上述第2線程目前的優先度的處理。
4.根據權利要求2所述的信息處理裝置,其特征在于上述線程執行部,執行包含上述寫入處理的第1線程,并執行包含上述讀出處理的第2線程;上述優先度控制部,將上述存儲部所存儲的上述信息量與規定的第1基準量進行比較,當上述信息量小于上述第1基準量時,執行提高上述第1線程的優先度的處理和降低上述第2線程的優先度的處理的至少其中之一;將上述信息量與大于上述第1基準量的第2基準量進行比較,當上述信息量大于上述第2基準量時,執行降低上述第1線程的優先度的處理和提高上述第2線程的優先度的處理的至少其中之一。
5.根據權利要求1所述的信息處理裝置,其特征在于上述線程執行部,執行第1進程和與上述第1進程不同的第2進程;上述第1進程和上述第2進程,分別包括包含上述寫入處理的線程和包含上述讀出處理的線程;上述優先度控制部,在上述第1進程的優先次序高于上述第2進程的優先次序時,將上述第1進程所包含的線程的優先度設定成高于上述第2進程所包含的線程的優先度。
6.根據權利要求1所述的信息處理裝置,其特征在于上述線程執行部,執行第1進程和與上述第1進程不同的第2進程;上述第1進程和上述第2進程,分別包括包含上述寫入處理的線程和包含上述讀出處理的線程;上述優先度,包含第1優先度級別和高于上述第1優先度級別的第2優先度級別;上述優先度控制部,在上述第1進程的優先次序高于上述第2進程的優先次序時,將上述第1進程所包含的線程的上述第1優先度級別設定成高于上述第2進程所包含的線程的上述第1優先度級別,并將上述第1進程所包含的線程的上述第2優先度級別設定成高于上述第2進程所包含的線程的上述第2優先度級別。
7.根據權利要求2所述的信息處理裝置,其特征在于上述多個線程,包含執行第1圖像處理的第1線程和對上述第1圖像處理的處理結果執行第2圖像處理的第2線程。
8.根據權利要求1所述的信息處理裝置,其特征在于上述優先度,包含第1優先度級別和高于上述第1優先度級別的第2優先度級別。
9.一種信息處理方法,其特征在于包括以下步驟執行包含向存儲部寫入信息的寫入處理和從存儲部讀出信息的讀出處理在內的線程的線程執行步驟;和在上述線程執行步驟中執行了上述寫入處理時或在上述線程執行步驟中執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量,控制上述線程的優先度的優先度控制步驟。
10.一種記錄介質,記錄有信息處理程序,可由計算機讀取,其特征在于所述記錄信息處理程序使計算機作為以下各部而發揮其功能,存儲部,用來存儲信息;線程執行部,執行包含向上述存儲部寫入信息的寫入處理和從上述存儲部讀出信息的讀出處理在內的線程;和優先度控制部,在由上述線程執行部執行了上述寫入處理時或由上述線程執行部執行了上述讀出處理時的至少一種情況下,基于上述存儲部所存儲的信息量,控制上述線程的優先度。
全文摘要
本發明公開了一種信息處理裝置、信息處理方法和記錄了信息處理程序的計算機可讀取的信息記錄介質,可以控制優先度使各線程自主分布地將記錄部的信息記錄量最優化,并使作為整體的處理負載得到優化而無額外開銷。存儲部(104)存儲信息,CPU(103)執行包含向存儲部(104)寫入信息的寫入處理和從存儲部(104)讀出信息的讀出處理在內的線程,在執行了寫入處理時或執行了讀出處理時的至少一種情況下,基于存儲部(104)所存儲的信息量控制線程的優先度。
文檔編號G06T1/20GK101082869SQ200710106429
公開日2007年12月5日 申請日期2007年5月29日 優先權日2006年5月29日
發明者川本琢二 申請人:松下電器產業株式會社