專利名稱:處理器及信息處理方法
技術領域:
本發(fā)明是涉及將多個任務(task)或線程(thread)進行并列處理的處理器及其信息處理方法。
背景技術:
近年,在嵌入設備中,不斷利用著可將多個任務或多個線程進行并列處理的被稱為多任務處理器(multitask processor)或多線程處理器(multithread processor)的處理器(以下,對此進行總稱且稱為多處理器(multi-processor))。
在現(xiàn)有的轉移設備中,雖然執(zhí)行著根據(jù)單處理器的處理,但是伴隨著轉移設備的高功能化其處理變?yōu)閺碗s,則根據(jù)單處理器的處理變得困難。
即,在通過單處理器要實現(xiàn)高功能的情況下,需要在高時鐘頻率下使其動作伴隨于此消耗電能也增加。再有,例如在移動電話中當再生動畫時有電話接收的情況的處理等時,其對有必要實時(real time)響應的情況的對應變得困難。
另一方面,通過利用多處理器,則可將裝置低時鐘脈沖化,并由此實現(xiàn)低消耗電能化。進一步,由于能將多個任務等進行并列處理,則從實時響應的觀點來看也是有效的。
此外,在將多任務(multitask)進行并列處理的裝置中,其用于實現(xiàn)實時響應的技術被記錄在專利文獻1中。
專利文獻1特開平10-228385號公報但是,在包括專利文獻1所述的技術的現(xiàn)有技術中,其現(xiàn)狀是沒有構筑著適當控制多處理器的操作系統(tǒng);特別是,沒有構筑著適當對應于所謂密結合型多處理器的操作系統(tǒng),該密結合型多處理器是在1個芯片上搭載多個處理器核心(processor core)而使其作為1個多處理器運行。
因此,在執(zhí)行通常處理時,當發(fā)生中斷處理等必須高優(yōu)先度地實時響應的處理時,如果構成多處理器的每一個處理器不是處于空狀態(tài),則可發(fā)生對于高優(yōu)先度處理而響應性降低的事情。這樣的情況下,存在著實現(xiàn)實時響應變得困難的問題。
再有,為了執(zhí)行已發(fā)生的高優(yōu)先度處理,由于可頻繁發(fā)生任務切換,并增大輔助操作(overhead),則可引起降低處理效率。
發(fā)明內容
本發(fā)明的課題是在多處理器中對優(yōu)先度高的處理進行有效且高響應地處理。
為解決以上的問題,本發(fā)明是具備多個任務或線程的處理器部(例如,圖2的單位處理器P0~P3)的處理器,其特征在于,包括專用處理器部(例如,圖2的單位處理器P0),其對優(yōu)先度高的規(guī)定處理(例如,中斷處理)進行專門處理;和常用處理器部(例如,圖2的單位處理器P1~P3),其執(zhí)行所述優(yōu)先度高的規(guī)定處理以外的處理(例如,操作處理);和高優(yōu)先度處理器控制部(例如,圖2的中斷控制部11),其使所述優(yōu)先度高的規(guī)定處理被所述專用處理器部處理。
通過這樣的構成,在有必要對中斷處理等優(yōu)先度高的處理進行實施的情況下,能直接通過專用處理器部開始執(zhí)行處理。
由此,因為并非執(zhí)行任務等的切換,能迅速地開始高優(yōu)先度處理,所以能將優(yōu)先度高的處理在有效且高響應性下進行。
再有,本發(fā)明的特征在于所述專用處理器部,在所述優(yōu)先度高的規(guī)定處理發(fā)生的情況下將有可能進行處理中的程序的廢棄的處理,作為所述優(yōu)先度高的規(guī)定處理的后臺處理執(zhí)行。
通過這樣的構成,因為能使專用處理器部的運轉率提高,所以可進行更有效的處理。
再有,其特征在于,在執(zhí)行所述后臺處理的模式和不執(zhí)行該后臺處理的模式之間可切換。
通過這樣的構成,根據(jù)處理器的處理負荷等,能適當切換將優(yōu)先度低的處理等作為后臺處理的情況、和作為通常處理的情況,則可進行更有效的處理。
再有,其特征在于,所述優(yōu)先度高的規(guī)定處理是中斷處理。
通過這樣的構成,即使在頻繁發(fā)生中斷處理的情況下,能將中斷處理在有效且高響應性下進行。
再有,本發(fā)明提供一種具備多個對任務或線程進行處理的處理器部的處理器中的信息處理方法,其特征在于,使優(yōu)先度高的規(guī)定處理在規(guī)定處理器部被專門處理,使該優(yōu)先度高的規(guī)定處理以外的處理在所述規(guī)定處理器部以外的處理器部中進行。
再有,其特征在于在所述規(guī)定處理器部中,在所述優(yōu)先度高的規(guī)定處理發(fā)生的情況下將有可能進行處理中的程序的廢棄的處理,作為所述優(yōu)先度高的規(guī)定處理的后臺處理執(zhí)行。
再有,其特征在于在執(zhí)行所述后臺處理的模式和不執(zhí)行該后臺處理的模式之間可切換。
再有,其特征在于,所述優(yōu)先度高的規(guī)定處理是中斷處理。
這樣,根據(jù)本發(fā)明,在多處理器中,可以將優(yōu)先度高的處理在有效且高響應性下進行。
圖1是表示本發(fā)明涉及的移動電話1的功能構成的框圖。
圖2是表示CPU10的內部構成的框圖。
圖3是表示接通移動電話1的電源時的動作圖。
圖4是表示后臺處理模式中的動作的流程圖。
圖5是對比較本發(fā)明和現(xiàn)有的技術中的中斷處理時的動作進行說明的圖。
圖6是表示成為本發(fā)明的適用對象的多處理器的構成例的圖。
圖中1-移動電話,10-CPU,11-中斷控制部,12-存儲控制部,20-快速ROM,30-存儲器,40-緩沖器,50-無線部,60-IrDA部,70-Audio部,80-計時器,90-USBI/F部,100-鍵操作部,110-LCD,120-照相機部,P0~P3-單位處理器,101-獲取部,102-解碼部,103-ALU,104-寄存器,105-程序控制部。
具體實施例方式
以下,參照附圖對本發(fā)明涉及的處理器的實施方式進行說明。
本發(fā)明涉及的處理器,是將任務或線程等的程序在其執(zhí)行單位下并列地進行處理的處理器;在本發(fā)明涉及的處理器內,具有實質上多個具備著執(zhí)行任務等的處理器(以下,稱為〖單位處理器〗)的硬件(hardware)構成。
因此,通過在多個單位處理器當中,對執(zhí)行高優(yōu)先度處理(中斷處理等)的單位處理器進行固定確定,可確保對于高優(yōu)先度處理的高響應性。
再有,在執(zhí)行高優(yōu)先度處理的單位處理器中,在沒有執(zhí)行高優(yōu)先度處理的情況下,在其執(zhí)行中即使發(fā)生高優(yōu)先度處理也能對處理中的程序(即,通過該程序處理中的數(shù)據(jù))可廢棄的優(yōu)先度低的處理進行后臺處理。
由此,可防止執(zhí)行高優(yōu)先度處理的單位處理器的運轉率降低。
這樣,本發(fā)明涉及的處理器,可將優(yōu)先度高的處理在有效且高響應性下進行。
首先,說明其構成。
在此,舉出將本發(fā)明涉及的處理器嵌入到移動電話時的例子,對假定作為高優(yōu)先度處理的中斷處理的情況進行說明。此外,在以下的說明中,將線程等程序的執(zhí)行單位總稱為〖任務〗。
圖1,是表示本發(fā)明涉及的移動電話1的功能構成的框圖。
在圖1中,其構成為,包括移動電話1、和CPU(Central ProcessingUnit)10、和快速ROM20、和存儲器30、和緩沖器40、和無線部50、和IrDA(Infrared Data Association)部60、和Audio部70、和計時器(timer)80、和USB(Universal Serial Bus)接口部90、和鍵(Key)操作部100、和LCD(Liquid Crystal Display)110、和照相機部120;而且,CPU10、快速ROM20、存儲器30及緩沖器40,被數(shù)據(jù)傳輸總線(bus)連接。再有,無線部50、IrDA部60、Audio部70、計時器(timer)80、USBI/F部90、鍵(Key)操作部100、LCD110、和照相機部120,和CPU10直接連接。
CPU10,由于是一邊將多個任務并列處理又一邊控制移動電話1整體,因此根據(jù)由鍵操作部100輸入的各種指示信號,執(zhí)行對存儲在快速ROM30中的操作系統(tǒng)(Operating SystemOS)程序或各種應用程序進行讀出,或是根據(jù)由無線部50、Audio部70或照相機部120等的周邊芯片輸入的中斷信號,執(zhí)行中斷處理。
例如,CPU10,對由OS所生成的任務、和由操作所生成的任務執(zhí)行并列處理;進一步,在由周邊芯片輸入有中斷信號時、通過執(zhí)行中斷處理程序,起動與中斷信號相對應的操作。此外,根據(jù)操作的處理,因為被執(zhí)行作為由OS的任務調度程序(scheduler)所管理的任務,所以能讀出OS的服務調用(service call);另一方面,中斷處理,因為是不由任務調度程序(scheduler)所管理的處理,所以不能讀出OS的服務調用。
再有,CPU10,將各種處理結果收容在快速ROM20和存儲器30中。
在此,對CPU10的內部構成進行說明。
圖2,是表示CPU10的內部構成的框圖。
在圖2中,CPU10,其構成為,包括多個單位處理器P0~P3、和中斷控制部11、和存儲控制部12。
單位處理器P0~P3分別是并列且可處理任務的處理器;在單位處理器P0~P3之中、本實施方式下、使單位處理器P0稱為執(zhí)行中斷處理的專用處理器。因此,在周邊芯片中發(fā)生了中斷信號時,中斷信號被輸入到單位處理器P0中。
再有,因為作為單位處理器P0~P3的內部構成采用其為一樣,所以作為代表,對單位處理器P0的內部構成進行說明。
單位處理器P0,其構成為,進一步包括獲取部101、解碼部102、ALU(Arithmetic and Logical Unit)103、寄存器104、程序控制部105。
獲取部101,由后述的程序控制部105的程序計數(shù)器(Program Counter)顯示的存儲地址(Memory Address)讀出命令編碼,并輸出到解碼部102。
解碼部102,對由獲取部所輸入的命令編碼進行解碼,并將解碼結果(命令內容及源寄存器(source register)、目的寄存器(destination register)的地址等)輸出到ALU103。
ALU103,根據(jù)解碼部102所輸入的解碼結果,進行規(guī)定的運算,并將運算結果寫入到寄存器104;或是將分支命令等的運算結果的分支(branch)處的地址輸出到程序控制部105。
寄存器104,是對通過載入命令從存儲器30所讀出的數(shù)據(jù)、或ALU103的運算結果的數(shù)據(jù)進行存儲的寄存器群。
程序控制部105,對單位處理器P0整體進行控制;其構成為,包括狀態(tài)寄存器(status registerPSR),其存儲單位處理器P0的狀態(tài)(status)(例如,可否中斷的狀態(tài),表示被執(zhí)行的處理可否進行后臺處理的狀態(tài),單位處理器P0中的發(fā)生溢出的狀態(tài)等);和程序計數(shù)器(program counter),其存儲單位處理器P0下一個必須執(zhí)行的命令被收容的存儲地址。因此,程序控制部105,在單位處理器P0執(zhí)行中斷處理之間,將狀態(tài)寄存器(statusregister)的值變更為表示禁止中斷處理的值,或是在執(zhí)行分支命令時,將程序計數(shù)器(program counter)的值變更為分支處的地址。
中斷控制部11,在由無線部50等的周邊芯片輸入有中斷信號時,在將中斷信號進行調停之后,還將規(guī)定的中斷信號輸出到單位處理器P0。
存儲控制部12,裝備在CPU10和存儲器30之間,在執(zhí)行從CPU10相對于存儲器30的數(shù)據(jù)(data)的讀出及寫入的情況下,控制存儲器30并執(zhí)行數(shù)據(jù)的輸入輸出。
再有,在本實施方式中,如所述那樣,中斷處理被單位處理器P0處理;其他的單位處理器,主要是處理操作所生成的任務。
具體而言,單位處理器P0執(zhí)行移動電話1在電源接通時的BOOT處理、OS的初始化處理、和服務調用(service call)相對應的OS的處理、基于中斷處理程序(handler)的處理、相對于中斷處理的后臺處理(例如,對快速ROM20的寫入處理或不要求實時性的處理(存儲器的無用單元收集(garbage collection)、電池殘留量顯示、硬件的監(jiān)控處理等))。其中,BOOT處理及OS的初始化處理僅在起動時執(zhí)行,并非和中斷處理同時發(fā)生;后臺處理,是在中斷處理已發(fā)生的情況下可容許對處理中的數(shù)據(jù)被廢棄程度的優(yōu)先度低的處理。再有,和服務調用相對應的OS的處理,是在后臺處理中,對應于被適當讀出的服務調用而被執(zhí)行的。另外,如所述那樣,在中斷處理(非任務處理)中,不能讀出OS的服務調用。
再有,單位處理器P1~P3,對操作所生成的任務、依照由OS的任務調度程序(scheduler)所決定的順序來執(zhí)行;在該處理中,適當讀出OS的服務調用。
返回到圖1,快速ROM20存儲在移動電話中執(zhí)行的操作系統(tǒng)程序、及各種應用程序。
存儲器30,由所謂的DRAM(Dynamic Random Access Memory)、SRAM(Satic Random Access Memory)或SDRAM(Synchronous DRAM)半導體存儲器構成,在CPU10執(zhí)行處理時形成工作區(qū)域的同時,存儲該處理結果。
緩沖器40,是對來自外部的輸入到移動電話1中的數(shù)據(jù)或在移動電話1中所發(fā)生的數(shù)據(jù)一時地進行保持的緩沖器。
無線部50,是執(zhí)行移動電話和移動電話系統(tǒng)的基地局之間的無線通信的部分。例如,無線部50,在接收到來自基地局表示對移動電話1的接收信號的信號時,對CPU10輸出中斷信號、并通知接收信號的接收。再有,無線部50,在輸入有來自CPU10的指示發(fā)射的信號時,對基地局傳送表示發(fā)射要求的信號。
IrDA部60,是執(zhí)行基于IrDA的通信的接口;在接收到來自外部基于IrDA的無線信號時,對CPU10輸出中斷信號、并通知接收IrDA信號。
Audio部70,是對在移動電話中所輸入輸出的聲音信號進行處理的部分;執(zhí)行所謂的通話中利用擴音器和揚聲器的聲音的輸入輸出、或音樂等的再生。
計時器80,將移動電話1的時鐘脈沖信號作為基準而計量時間,例如,每1ms等、每一個規(guī)定時間上對CPU10輸出中斷信號。
USBI/F部90,是用于執(zhí)行根據(jù)USB的通信的接口;在連接著USB電纜時或接收到來自USB電纜信號時,對CPU10輸出中斷信號。
鍵操作部100,具備用于對移動電話1執(zhí)行輸入指示的各種鍵;在按下該鍵時,對CPU10輸出中斷信號。
LCD110,是遵循被CPU10輸入的文字或圖像等的描繪命令,顯示規(guī)定圖面的顯示裝置。
照相機部120,具備CCD(Charge Coupled Device)或CMOS(Complementary Metal Oxide Semiconductor)傳感器等的攝像元件;在已攝像圖像時,對CPU10輸出中斷信號。
接著,對其動作進行說明。
圖3,是表示移動電話1接通電源時的動作圖。
在圖3中,如果接通移動電話1的電源,則在單位處理器P0中,執(zhí)行著BOOT處理(各硬件的初始化、程序的載入及起動、OS的初始化處理)(步驟1)。此外,圖中的實線部分表示各單位處理器位于執(zhí)行處理狀態(tài)、而點線部分表示未執(zhí)行處理的狀態(tài)。
因此,單位處理器P0,將單位處理器P1~P3起動,并執(zhí)行指示著執(zhí)行操作(例如動畫圖像的再生處理等)的任務(步驟2)。
此后,單位處理器P0成為理想狀態(tài),單位處理器P1~P3成為執(zhí)行操作任務的狀態(tài)。
在此,在移動電話1中發(fā)生中斷(例如電話接收接收信號等)(步驟S3)。
若這樣,CPU10的中斷控制部11將中斷信號輸入到單位處理器P0(步驟S4)。再有,這時在從多個周邊芯片輸入有中斷信號時,中斷控制部11在將它們調停之后,還將最優(yōu)先度高的高中斷信號輸出到單位處理器P0。
接收到中斷信號的單位處理器P0,直接執(zhí)行中斷處理程序,并開始中斷處理(步驟S5)。
由此,并非執(zhí)行任務切換,而能將中斷處理在有效的高響應性下進行。
再有,在發(fā)生中斷處理時還執(zhí)行后臺處理的情況下,單位處理器P0,暫時向HALT狀態(tài)轉移,然后僅執(zhí)行中斷處理。
這時,廢棄與后臺處理相關的處理中的數(shù)據(jù)。
接著,對后臺處理相關的動作進行說明。
后臺處理,可通過CPU10轉移到后臺處理模式來執(zhí)行;作為后臺處理模式相關的服務調用(service call),預備有開始后臺處理的“bak_sta()”、停止后臺處理的“bak_stp()”、相對于后臺處理、通知命令的“bak_cmd()”。
后臺處理,通過單位處理器P1~P3讀出服務調用“bak_sta()”而開始執(zhí)行。
再有,在讀出“bak_sta()”之后,在單位處理器P0中OS的計時器中斷的起動時刻(每1ms等)下后臺處理模式的開始指示被認出;其后,將最初發(fā)生的中斷處理作為觸發(fā),實際上轉移到后臺處理模式。
圖4,是表示后臺處理模式中的動作的流程圖。
如果轉移到后臺處理模式,則單位處理器P0,通過由定時詢問(polling)、獲取由“bak_cmd()”所通知的命令,執(zhí)行需后臺處理的事件的監(jiān)視(步驟S101),并且判斷是否有需后臺處理的事件(步驟S102)。
在步驟S102中,在已經判斷具有需后臺處理的事件時,單位處理器P0,獲取由“bak_cmd()”所通知的命令(步驟S103)。由此,執(zhí)行后臺處理。
因此,單位處理器P0,再次轉移到“bak_sta()”的調用處的指針(pointer)上(步驟S104),返回步驟S101。
再有,在步驟S102中,在已經判斷沒有需后臺處理的事件時,單位處理器P0,轉移到步驟S104。
因此,從讀出了“bak_sta()”的單位處理器P1~P3中,如果讀出有“bak_stp()”,則單位處理器P0,在暫時向HALT狀態(tài)轉移后,結束后臺處理。然后,單位處理器P0,不執(zhí)行后臺處理,成為僅執(zhí)行中斷處理的狀態(tài)。
這樣,通過在程序中讀出“bak_sta()”及“bak_stp()”,可適當切換對后臺處理執(zhí)行的模式和不執(zhí)行的模式。
如所述,在本實施方式涉及的移動電話1中,在其CPU10中,執(zhí)行中斷處理的單位處理器被固定設置為單位處理器P0。
因此,在發(fā)生中斷處理時,能直接通過單位處理器P0開始執(zhí)行中斷處理。
由此,因為不執(zhí)行任務切換,而能迅速地開始執(zhí)行中斷處理所以能將中斷處理在有效且高響應性下執(zhí)行。
例如,如圖5(a)所示,在現(xiàn)有的技術中,采用其進程為在任務的處理中發(fā)生有中斷時,在避開任務處理的上下文以后執(zhí)行中斷處理;并在結束中斷處理之后,使任務處理的上下文恢復而且繼續(xù)任務處理。
另一方面,在本發(fā)明中,如圖5(b)所示,在發(fā)生中斷處理后,能直接轉移到執(zhí)行中斷處理,不需執(zhí)行上下文的回避·恢復等,可在有效、高響應性下進行處理。
再有,本發(fā)明雖然可適用于所謂的多線程處理器(multithreadprocessor)或多任務處理器(multitask processor)的各種安裝方式的處理器,但則特別有效于例如在一個芯片上安裝著多個處理器核心(core)、并將處理器的構成要素的至少一部分設置在這些多個處理器核心共用的方式的多處理器上(所謂密結合型的多任務(multitask)處理器)。
圖6是表示成為本發(fā)明的適用對象的多處理器的構成例的圖。
圖6所述的多處理器,是在存儲控制部及ALU上共用多個處理器核心的方式,在每一個處理器核心上具備有程序計數(shù)器及狀態(tài)寄存器等的控制用寄存器的同時,還另外具備有用于控制多處理器整體的程序控制部及控制用寄存器。再有,如圖6所示,也可以具備由各處理器核心共用的上下文高速緩沖存儲器(context cache)等。
在這樣構成多處理器的情況下,各處理器核心實現(xiàn)本實施方式中的單位處理器的功能。
權利要求
1.一種處理器,具備多個對任務或線程進行處理的處理器部,其特征在于,包括專用處理器部,其對優(yōu)先度高的規(guī)定處理進行專門處理;通用處理器部,其執(zhí)行所述優(yōu)先度高的規(guī)定處理以外的處理;以及高優(yōu)先度處理控制部,其使所述優(yōu)先度高的規(guī)定處理在所述專用處理器部中被處理。
2.根據(jù)權利要求1所述的處理器,其特征在于,所述專用處理器部,在所述優(yōu)先度高的規(guī)定處理發(fā)生的情況下將有可能進行處理中的程序的廢棄的處理,作為所述優(yōu)先度高的規(guī)定處理的后臺處理執(zhí)行。
3.根據(jù)權利要求2所述的處理器,其特征在于,在執(zhí)行所述后臺處理的模式和不執(zhí)行該后臺處理的模式之間可切換。
4.根據(jù)權利要求1~3中任一項所述的處理器,其特征在于,所述優(yōu)先度高的規(guī)定處理是中斷處理。
5.一種具備多個對任務或線程進行處理的處理器部的處理器中的信息處理方法,其特征在于,使優(yōu)先度高的規(guī)定處理在規(guī)定處理器部被專門處理,使該優(yōu)先度高的規(guī)定處理以外的處理在所述規(guī)定處理器部以外的處理器部中進行。
6.根據(jù)權利要求5所述的信息處理方法,其特征在于,在所述規(guī)定處理器部中,在所述優(yōu)先度高的規(guī)定處理發(fā)生的情況下將有可能進行處理中的程序的廢棄的處理,作為所述優(yōu)先度高的規(guī)定處理的后臺處理執(zhí)行。
7.根據(jù)權利要求6所述的信息處理方法,其特征在于,在執(zhí)行所述后臺處理的模式和不執(zhí)行該后臺處理的模式之間可切換。
8.根據(jù)權利要求5~7中任一項所述的信息處理方法,其特征在于,所述優(yōu)先度高的規(guī)定處理是中斷處理。
全文摘要
在移動電話(1)中,執(zhí)行中斷處理的單位處理器被固定設置為單位處理器(P0)。因此,在發(fā)生中斷處理時,能直接通過單位處理器(P0),開始執(zhí)行中斷處理。由此,不執(zhí)行任務切換就能迅速地開始執(zhí)行中斷處理,所以能將中斷處理在有效且高響應性下進行。進而,在多處理器中,將優(yōu)先度高的處理在有效且高響應性下進行處理。
文檔編號H04Q7/32GK1811718SQ20061000699
公開日2006年8月2日 申請日期2006年1月25日 優(yōu)先權日2005年1月28日
發(fā)明者田村明彥, 田中克哉 申請人:精工愛普生株式會社