亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多異步運(yùn)行任務(wù)中也能高效率地執(zhí)行異步事件任務(wù)的處理器的制作方法

文檔序號(hào):6414129閱讀:243來源:國知局
專利名稱:多異步運(yùn)行任務(wù)中也能高效率地執(zhí)行異步事件任務(wù)的處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明是關(guān)于再現(xiàn)以MPEG數(shù)據(jù)流開頭的可變碼長多媒體數(shù)據(jù)的AV譯碼器中設(shè)置的、承擔(dān)專用AV譯碼器內(nèi)部的主處理器的外圍控制的處理器。
MPEG數(shù)據(jù)流的再現(xiàn)技術(shù)作為又一種多媒體社會(huì)的基礎(chǔ)技術(shù),近年來其需求的高漲令人瞠目。MPEG數(shù)據(jù)流的再現(xiàn)技術(shù)作為新的活躍舞臺(tái)之所以受到關(guān)注,在于可能作交互式的動(dòng)畫再現(xiàn)、聲音再現(xiàn)的民用設(shè)備領(lǐng)域,為在這方面取得成功,各生產(chǎn)廠家的技術(shù)人員正傾注心血于能高超地進(jìn)行MPEG數(shù)據(jù)流再現(xiàn)的AV譯碼器的研究開發(fā)。
MPEG數(shù)據(jù)流的再現(xiàn)技術(shù)中應(yīng)進(jìn)行的處理雖然多種多樣,但一般認(rèn)為它們大致分為核心處理和異步事件處理。
所謂核心處理是指逆量化、逆離散余弦變換、運(yùn)動(dòng)補(bǔ)償?shù)纫钥v16×橫16象素組成的宏塊作為對象的處理。由于每秒必須處理4050個(gè)宏塊(4050=30幀×30片×45宏塊),所以其運(yùn)算量很龐大。核心處理中雖然適宜于進(jìn)行流水線處理,但在不計(jì)較增大硬件規(guī)模的情況下,也可以設(shè)置多個(gè)譯碼器和運(yùn)算器來分散核心處理的負(fù)擔(dān)。
作為異步事件處理是指,在由于多種因素交錯(cuò)而成為特殊的事件期間要進(jìn)行集中的處理,或者應(yīng)以規(guī)定的周期進(jìn)行間隔生的處理,是不與核心處理同步進(jìn)行的處理的總稱。
在AV譯碼器中相當(dāng)于這樣的異步事件處理的處理中存在有,(1)關(guān)于由記錄媒體和通信媒體輸入MPEG數(shù)據(jù)流,(2)關(guān)于由AV譯碼器向圖象再生設(shè)備、聲音再生設(shè)備的輸出,和(3)關(guān)于AV譯碼器和連接到AV譯碼器外部的擴(kuò)展存貯器的輸入輸出三種。
關(guān)于由記錄媒體輸入數(shù)據(jù)流的異步事件處理(1),在由光盤等的記錄媒體和通信媒體讀入MPEG數(shù)據(jù)流中還具有提取基本數(shù)據(jù)流的提取處理(1-1)、將所提取的基本數(shù)據(jù)流寫入作為擴(kuò)展存貯器連接的SDRAM的寫入處理(1-2)。
關(guān)于再生輸出的異步事件處理(2)還包含將經(jīng)過譯碼的動(dòng)畫數(shù)據(jù)流、音頻數(shù)據(jù)流分別變換成圖象信號(hào)、聲音信號(hào)輸出到顯示器、揚(yáng)聲器的處理(2-1)和作為MPEG數(shù)據(jù)流的專用數(shù)據(jù)流描繪被輸出的副圖象,將其與動(dòng)畫數(shù)據(jù)混合成在圖象信號(hào)上組合字幕的處理(2-2)。
關(guān)于與擴(kuò)展存貯器的輸入輸出的異步事件處理(3)還具有,監(jiān)視施行逆量化、逆離散余弦變換、運(yùn)動(dòng)補(bǔ)償?shù)鹊奶幚淼臄?shù)據(jù)被存放進(jìn)內(nèi)部緩存器,在該存放量達(dá)到一定量的階段匯集進(jìn)SDRAM的寫入處理(3-1),和根據(jù)逆量化、逆離散余弦變換、運(yùn)動(dòng)補(bǔ)償?shù)倪M(jìn)展,由連接到外部的SDRAM向內(nèi)部緩存器間斷地補(bǔ)充下面應(yīng)處理的數(shù)據(jù)的補(bǔ)充處理(3-2)。
以上處理之外還將按照由操作人員的操作應(yīng)進(jìn)行的處理也分類為異步事件處理。不僅僅簡單地在MPEG數(shù)據(jù)的再生中,在設(shè)計(jì)注重與操作人員的交互作用的再生裝置應(yīng)用系統(tǒng)的情況和設(shè)計(jì)以與主計(jì)算機(jī)作同步控制作為前提的系統(tǒng)的情況中還有更多的必須使AV譯碼器作異步事件處理的處理。
上述的處理中,關(guān)于處理(2-1)的音頻的處理具有被稱作為聲音輸出任務(wù)的90μsec的間隔的周期。而處理(2-1)中關(guān)于視頻的處理,在被叫做圖形輸出任務(wù)的基于顯示器的水平同步信號(hào)的間斷的周期的50μsec中需要完成一行大小的圖象處理。
之所以這樣在圖形輸出任務(wù)、聲音輸出任務(wù)上設(shè)定執(zhí)行周期,是因?yàn)槿绮煌瓿蛇@些任務(wù)的處理,動(dòng)畫一聲音就不能沿著時(shí)間流逝平滑地再生。亦即,在50μsec、90μsec的周期內(nèi)完成圖形輸出任務(wù)、聲音輸出任務(wù)的處理成為為滿足動(dòng)畫再生、聲音再生的實(shí)時(shí)性的最大的必要條件。
在歷來的MPEG數(shù)據(jù)流再生技術(shù)中,在以上的異步事件處理由通用處理器進(jìn)行的情況下,利用插入信號(hào)向通用處理器通報(bào)異步事件的發(fā)生和規(guī)定周期的到達(dá)。接通報(bào)后,通用處理器采用轉(zhuǎn)移命令轉(zhuǎn)移到異步事件處理。
但在利用插入信號(hào)使通用處理器執(zhí)行異步事件處理的這種歷來的方法中存在有,在完成聲音輸出任務(wù)、圖形輸出任務(wù)的處理中不能單義地計(jì)算表示如何最好確定操作時(shí)鐘的操作時(shí)鐘數(shù)的最合適的下限值這一問題。
由于不能計(jì)算最適宜的下限值,不得不大致估計(jì)地確定操作時(shí)鐘數(shù),從而存在著必定將操作時(shí)鐘數(shù)設(shè)定得很高的傾向。
下面說明在歷來的方法中,是采用怎樣的計(jì)算法來計(jì)算操作時(shí)鐘的。假定作為周期不同的異步事件任務(wù)要執(zhí)行具有90μsec的執(zhí)行周期的聲音輸出任務(wù)和具有50μsec執(zhí)行周期的圖形輸出任務(wù)。這種情況中,聲音輸出任務(wù)要每隔90μsec在0μsec、90μsec、180μsec、270μsec、360μsec、450μsec完成音頻數(shù)據(jù)流的譯碼,圖形輸出任務(wù)要每50μsec在0μsec、50μsec、100μsec、150μsec、200μsec、250μsec、300μsec、350μsec完成動(dòng)畫數(shù)據(jù)流的譯碼。歷來的通用處理器以插入信號(hào)通報(bào)2個(gè)執(zhí)行周期的到達(dá),由此處理圖形輸出任務(wù)、聲音輸出任務(wù)。
在由插入信號(hào)通報(bào)執(zhí)行時(shí)期的到來之后,在要起動(dòng)聲音輸出任務(wù)、圖形輸出任務(wù)之前,將各任務(wù)要完成處理的時(shí)限確定為由作自身起動(dòng)的插入信號(hào)的產(chǎn)生定時(shí)開始直到為起動(dòng)下一任務(wù)的插入信號(hào)產(chǎn)生定時(shí)為止。
圖1為假定由插入信號(hào)將這些周期通報(bào)通用處理器執(zhí)行情況的定時(shí)圖。此圖中說明為完成聲音輸出任務(wù)一圖形輸出任務(wù)的處理所呈現(xiàn)的時(shí)限情況。
在產(chǎn)生脈沖P1的上升沿和脈沖P5的上升沿,起動(dòng)圖形輸出任務(wù)、聲音輸出任務(wù)的意向被通報(bào)到通用處理器時(shí),直至作為下一插入信號(hào)的脈沖P2的上升沿被通報(bào)為止的50μsec期間即成為完成圖形輸出任務(wù)和聲音輸出任務(wù)的處理的時(shí)限。
另一方面,在產(chǎn)生脈沖P6的上升沿,起動(dòng)聲音輸出任務(wù)的意向被通知到通用處理器時(shí),直至作為下一插入信號(hào)的脈沖P3的上升沿被通報(bào)為止的僅為10μsec的期間成為用于完成聲音輸出任務(wù)的時(shí)限。
在由時(shí)限計(jì)算操作時(shí)鐘的方法中,在10μsec這樣極短的時(shí)限、即時(shí)限的最壞情況中也要求完成聲音輸出任務(wù)、圖形輸出任務(wù)這樣的操作時(shí)鐘數(shù)。這樣作無法更高確定操作時(shí)鐘。而如果要容易地將操作時(shí)鐘作成高速,消耗電力也會(huì)顯著增加,而不適合于家用設(shè)備應(yīng)用。
本發(fā)明的目的在于提供,在存在有多個(gè)要以規(guī)定的周期完成的處理量予先確定的異步事件處理的情況中能單義地計(jì)算出表示應(yīng)該對各個(gè)異步事件任務(wù)分配何種周期數(shù)的最適宜的下限值,同時(shí)能按這些最適宜的下限值單義地計(jì)算為進(jìn)行整個(gè)任務(wù)操作的操作周期數(shù)的下限值的處理器。
上述目的由作為以幾個(gè)任務(wù)作為執(zhí)行對象任務(wù)的處理器的,設(shè)置有輸出幾個(gè)任務(wù)標(biāo)識(shí)符在被分配給該任務(wù)的數(shù)量的命令被執(zhí)行后即以規(guī)定的順序輸出下一任務(wù)標(biāo)識(shí)符的執(zhí)行任務(wù)指示手段、依次指定被所輸出的任務(wù)標(biāo)識(shí)符指定的任務(wù)中應(yīng)執(zhí)行的命令的指令手段、和執(zhí)行被指定命令的實(shí)行手段的處理器來達(dá)到。
此處理器不等待發(fā)出插入信號(hào),各按規(guī)定的命令數(shù)順序執(zhí)行包括有聲音輸出任務(wù)、圖形輸出任務(wù)的n個(gè)任務(wù)。
在這樣的順序執(zhí)行中,可按規(guī)定周期中要執(zhí)行的命令的最低消化數(shù)、執(zhí)行周期、任務(wù)總數(shù)單義地推導(dǎo)得為完成聲音輸出任務(wù)、圖形輸出任務(wù)的處理的操作時(shí)鐘數(shù)的最適宜下限值,而由這些最適宜下限值能單義地計(jì)算得為進(jìn)行全部任務(wù)操作的操作周期數(shù)的最適宜下限值。
由于操作時(shí)鐘數(shù)的最適宜的下限值得到單義地計(jì)算,所以即使不將操作時(shí)鐘信號(hào)定得更高,也能保證聲音輸出任務(wù)、圖形輸出任務(wù)的實(shí)時(shí)性,而即使在許多家用設(shè)備中裝設(shè)有低速操作時(shí)鐘的打印的情況下也能恰當(dāng)?shù)貙PEG數(shù)據(jù)流進(jìn)行譯碼。
這里執(zhí)行任務(wù)指示手段可由對所執(zhí)行命令加以計(jì)數(shù)、在計(jì)數(shù)值成為被分配到執(zhí)行中任務(wù)的命令數(shù)時(shí)產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)的任務(wù)轉(zhuǎn)換信號(hào)發(fā)生器,和按照任務(wù)轉(zhuǎn)換信號(hào)發(fā)生的次數(shù)生成下一順序的任務(wù)標(biāo)識(shí)符輸出的任務(wù)標(biāo)識(shí)符輸出單元構(gòu)成。
這里任務(wù)標(biāo)識(shí)符輸出單元可由對n個(gè)全部的任務(wù)存貯表示第n個(gè)輸出各任務(wù)識(shí)別符的輸出順序的順序存貯單元,和按照發(fā)出任務(wù)轉(zhuǎn)換信號(hào)的次數(shù)將順序存貯單元中輸出順序成為下一順序的任務(wù)標(biāo)識(shí)符輸出到命令指定手段的選擇輸出單元構(gòu)成。
這里任務(wù)標(biāo)識(shí)符輸出單元可由對n個(gè)的全部任務(wù)存貯表示第n個(gè)輸出各任務(wù)標(biāo)識(shí)符的輸出順序的順序存貯單元,和按照發(fā)送任務(wù)轉(zhuǎn)換信號(hào)的次數(shù)將順序存貯單元中輸出順序成為下一順序的任務(wù)標(biāo)識(shí)符輸出到命令指定手段的選擇輸出單元構(gòu)成。
這里有哪個(gè)的任務(wù)含有需要緊急處理的意思的緊急說明命令,前述執(zhí)行任務(wù)指示手段可由借助監(jiān)視由處理器外部輸入的規(guī)定信號(hào)來判斷該處理器外部是在緊急期間之內(nèi)還是在緊急期間之外的監(jiān)視手段,當(dāng)規(guī)定信號(hào)在緊急期間之內(nèi)的情況下保存作為應(yīng)緊急處理的任務(wù)的緊急任務(wù)的標(biāo)識(shí)符的緊急任務(wù)寄存器,和如果在緊急期間之外發(fā)出任務(wù)轉(zhuǎn)換信號(hào)即將選擇輸出單元由未輸出的任務(wù)選取輸出的任務(wù)標(biāo)識(shí)符直接輸出到執(zhí)行手段,而如果在緊急期間內(nèi)發(fā)出任務(wù)轉(zhuǎn)換信號(hào),則按對任務(wù)轉(zhuǎn)換信號(hào)的m次發(fā)送(m≥2)的一次的比率,將緊急任務(wù)寄存器保存的任務(wù)標(biāo)識(shí)符輸出給執(zhí)行手段的輸出比率控制單元構(gòu)成。
采用此結(jié)構(gòu),將有關(guān)圖象輸出的異步事件任務(wù)的標(biāo)識(shí)符保存在緊急任務(wù)寄存器中,如果輸出比率控制單元按緊急期間內(nèi)對任務(wù)轉(zhuǎn)換信號(hào)的m次發(fā)送的一次的比率輸出緊急任務(wù)寄存器保持的任務(wù)標(biāo)識(shí)符,就能在顯示中的水平消隱期間、垂直消隱期間內(nèi)執(zhí)行視頻數(shù)據(jù)流。由此能使得向圖象信號(hào)的延伸用于顯示期間。這樣與再生系統(tǒng)硬件的處理周期地成為中止期間相同步地更有效地進(jìn)行動(dòng)畫數(shù)據(jù)的處理,就能提高動(dòng)畫數(shù)據(jù)任務(wù)的實(shí)時(shí)性。
在此有哪個(gè)任務(wù)含有要將自己的執(zhí)行應(yīng)設(shè)定為休眠狀態(tài)的意思的自發(fā)休眠命令,前述執(zhí)行手段還可設(shè)置有對命令指定手段指定的作為下一應(yīng)執(zhí)行的命令進(jìn)行譯碼的譯碼手段,前述執(zhí)行任務(wù)指示手段還可設(shè)置有如由譯碼手段得到的譯碼結(jié)果為自發(fā)休眠命令時(shí)就將含該命令的任務(wù)作為需要進(jìn)行休眠處理的任務(wù)而保存此任務(wù)標(biāo)識(shí)符的休眠任務(wù)寄存器,前述選擇輸出單元?jiǎng)t可作成為在順序存貯單元所存貯的下一順序的任務(wù)標(biāo)識(shí)符為休眠任務(wù)的任務(wù)標(biāo)識(shí)符時(shí)輸出此下一順序的任務(wù)標(biāo)識(shí)符這樣的結(jié)構(gòu)。
MPEG數(shù)據(jù)流的譯碼處理中要并行執(zhí)行必須處理的周期很大不同的任務(wù)。例如為將包含宏塊的輝度塊、色差塊在緩存器間傳送的傳送控制用任務(wù)在宏塊中就要以至少6次以上的頻度起動(dòng)。與此相反,由MPEG數(shù)據(jù)流提取基本數(shù)據(jù)流的任務(wù)就可以很少的頻度起動(dòng)。
休眠任務(wù)寄存器如果在任務(wù)中含有自發(fā)休眠命令時(shí),即將含該命令的任務(wù)作為須作休眠處理的任務(wù)保存其任務(wù)標(biāo)識(shí)符,而前述選擇輸出單元在順序存貯單元存貯的下一順序的任務(wù)標(biāo)識(shí)符如果為休眠任務(wù)的任務(wù)標(biāo)識(shí)符時(shí)即輸出此下一順序的任務(wù)標(biāo)識(shí)符,所以能省略執(zhí)行頻度少的任務(wù)的執(zhí)行。由此而考慮到異步事件處理的起動(dòng)頻度的差異,給予各異步事件任務(wù)自身進(jìn)入休眠狀態(tài)的機(jī)會(huì),從而能提高任務(wù)的巡回效率。
作為以n個(gè)任務(wù)作執(zhí)行對象任務(wù)的處理器還可構(gòu)成為具有按被確定的周期數(shù)順序選擇任務(wù)的任務(wù)選擇手段,以與任務(wù)一對一的關(guān)系地具有n個(gè)命令指定信息、在經(jīng)任務(wù)選擇手段選定任務(wù)后即使與之對應(yīng)的命令指定信息成為有效、同時(shí)以此信息作為起點(diǎn)動(dòng)態(tài)地生成指定下面應(yīng)讀出的命令的信息的命令指定手段,和讀出并執(zhí)行命令指定手段所指定命令的執(zhí)行手段。
這里命令指定手段可由下列部件構(gòu)成與n個(gè)任務(wù)一對一相對應(yīng)地、將有關(guān)對應(yīng)任務(wù)的接著應(yīng)讀出的地址值作為命令指定信息保存的n個(gè)的地址寄存器,選擇對應(yīng)于任務(wù)選擇手段選擇的任務(wù)的地址寄存器、并使其地址值輸出的寄存器選擇單元,在由寄存器選擇單元選定地址寄存器后即將該地址寄存器保存的地址值作為計(jì)數(shù)初始值保存的計(jì)數(shù)值寄存器,每一周期將計(jì)數(shù)值寄存器保存的計(jì)數(shù)值增量的增量器,和將經(jīng)增量的計(jì)數(shù)值作為指定前述接著應(yīng)讀出的命令的信息的更新值保存的讀出對象地址保存單元。
這里前述命令指定手段可由下列部件構(gòu)成在與直接輸出增量器增量的計(jì)數(shù)值使之保存在讀出對象地址保持單元的同時(shí)任務(wù)選擇手段選定任務(wù)后,即選擇輸出對應(yīng)于該任務(wù)的地址寄存器的地址值并使之保存進(jìn)讀出目的地址保存單元的第一選擇器,和在轉(zhuǎn)換到下一順序的任務(wù)時(shí)利用計(jì)數(shù)值寄存器保存的計(jì)數(shù)值改寫緊接轉(zhuǎn)換前為止選擇單元所選擇的地址寄存器存貯的地址值的第一改寫單元。
異步事件處理中要對內(nèi)部緩存器與SDRAM之間的輸入輸出作多種控制,而SDRAM的狀態(tài)因外部因素會(huì)有很多變動(dòng)。因此,存貯器檢驗(yàn),和由某存貯器讀出值,利用此值進(jìn)行運(yùn)算,把將其結(jié)果寫回到同一存貯器的這種同一存貯器作為訪問對象的存貯器訪問操作,最好能在一個(gè)時(shí)隙內(nèi)進(jìn)行。相反,如將由存貯器讀出值的讀出命令和將利用此值運(yùn)算的運(yùn)算結(jié)果寫回同一存貯器的寫入命令分配到各不同的時(shí)隙,在巡回到第一時(shí)隙之后至通過第二時(shí)隙之間存貯器狀態(tài)變更,而出現(xiàn)讀出命令能完成的寫入命令不能完成的情況。
然而在上述結(jié)構(gòu)中,如將自發(fā)轉(zhuǎn)換命令配置在讀出命令、寫入命令的緊前方,則由于第二轉(zhuǎn)換單元將地址寄存器的內(nèi)容改寫成自發(fā)轉(zhuǎn)換命令包含的地址的下一地址、第一選擇器同時(shí)選擇輸出對應(yīng)于該下一任務(wù)的地址寄存器的地址值并保持到讀出對象地址保存單元,而在緊隨自發(fā)轉(zhuǎn)換命令之后能中斷本任務(wù)的命令執(zhí)行。亦即,在相同任務(wù)的任務(wù)標(biāo)識(shí)符被輸出時(shí),該任務(wù)能在同一時(shí)隙內(nèi)執(zhí)行配置在緊接自發(fā)轉(zhuǎn)換命令之后的讀出命令、寫入命令。
由此而可能由配置自發(fā)轉(zhuǎn)換命令來獨(dú)自決定由將不希望因任務(wù)轉(zhuǎn)換而中斷的4命令分配到一個(gè)任務(wù)等,那些規(guī)定數(shù)量的命令分配給一個(gè)時(shí)隙。并能依靠不等待4命令的執(zhí)行而中止對一部分任務(wù)的掌握來提前理解其他的任務(wù)。
附圖簡要說明
圖1為表示在以插入信號(hào)執(zhí)行聲音輸出任務(wù)、圖形輸出任務(wù)時(shí)要在何時(shí)前完成動(dòng)畫數(shù)據(jù)流、音頻數(shù)據(jù)流的處理的定時(shí)圖;圖2A表示AV譯碼器的內(nèi)部結(jié)構(gòu);圖2B為表示MPEG數(shù)據(jù)流的層次結(jié)構(gòu)和AV譯碼器的結(jié)構(gòu)要素間的操作定時(shí)的定時(shí)圖;圖3表示第一實(shí)施形態(tài)中的I/O處理器的內(nèi)部結(jié)構(gòu);圖4A表示第一實(shí)施形態(tài)的命令讀出電路10的內(nèi)部結(jié)構(gòu);圖4B表示圖10內(nèi)選擇器25的輸出邏輯表;圖5表示第一實(shí)施形態(tài)中的任務(wù)管理單元15的內(nèi)部結(jié)構(gòu);圖6A表示任務(wù)標(biāo)識(shí)符taskid的位結(jié)構(gòu);圖6B表示循環(huán)值的位結(jié)構(gòu);圖7A表示第一實(shí)施形態(tài)中存貯在命令存貯器100中的異步事件任務(wù)采取怎樣的構(gòu)成;圖7B表示由操作數(shù)指定寄存器的算術(shù)運(yùn)算指令的指令格式;圖7C表示由寄存器指定讀出對象地址、寫入對象地址的存貯器裝載指令/存貯器存貯指令的指令格式;圖7D表示可由8位、11位的立即值指令的比較指令/運(yùn)算指令/轉(zhuǎn)移指令的指令格式;圖8為表示第一實(shí)施例中IPC、IF1、IF2、DECPC被怎樣更新的定時(shí)圖;圖9表示由任務(wù)(0)至任務(wù)(5)怎樣分配時(shí)隙;圖10A表示第二實(shí)施形態(tài)中指令存貯器100中存貯的異步事件任務(wù)以怎樣的命令構(gòu)成;圖10B表示W(wǎng)ait-until-next-slot指令的指令格式示例;圖11為表示第二實(shí)施形態(tài)中IPC、IF1、IF2、DECPC怎樣被更新的定時(shí)圖;圖12表示第二實(shí)施形態(tài)中由任務(wù)(0)至任務(wù)(5)怎樣分配時(shí)隙;圖13表示第三實(shí)施形態(tài)中AV譯碼器的內(nèi)部結(jié)構(gòu);圖14A表示第三實(shí)施形態(tài)中的命令讀出電路10的內(nèi)部結(jié)構(gòu);圖14B表示第三實(shí)施形態(tài)中指令讀出電路10內(nèi)的選擇器25的輸出邏輯表;圖15表示第三實(shí)施形態(tài)中的時(shí)隙管理程序61的內(nèi)部結(jié)構(gòu);圖16表示任務(wù)管理寄存器13中分配作Wait狀態(tài)管理用的6位的位結(jié)構(gòu);圖17表示第三實(shí)施形態(tài)中的狀態(tài)監(jiān)視寄存器的位結(jié)構(gòu);圖18A表示第三實(shí)施形態(tài)中cmp-and-wait命令被包含在哪一任務(wù)中;圖18B表示在事件j0、j3、j4、j5不成的狀態(tài)中在圖18A中所示各任務(wù)中怎樣分配時(shí)隙;圖18C表示僅事件j0成立的幀中在圖18A所示各任務(wù)怎樣被分配時(shí)隙;圖18D表示僅事件j0成立的事件的幀以后圖18A所示各任務(wù)怎樣被分配時(shí)隙;圖18E表示cmp-and-wait指令的指令格式示例;圖19A為表示cmp-and-wait指令譯碼時(shí)IPC、IF1、IF2、DECPC如何被更新、任務(wù)管理寄存器13的位和計(jì)數(shù)器的上限值如何被設(shè)定的定時(shí)圖;圖19B為表示cam-and-wait指令等待的事件未成立時(shí)的幀中IPC、IF1、IF2、DECPC如何被更新,任務(wù)管理寄存器13的位和計(jì)數(shù)器的上限值如何被設(shè)定的定時(shí)圖;圖192為表示cmp-and-wait命令等待事件成立時(shí)的幀中IPC、IF1、IF2、DECPC被如何更新、任務(wù)管理寄存器13的位和計(jì)數(shù)器的上限值如何被設(shè)定的定時(shí)圖;圖19D為表示事件成立時(shí)以后的幀中IPC、IF1、IF2、DECPC如何被更新、任務(wù)管理寄存器13的位和計(jì)數(shù)器的上限值如何被設(shè)定的定時(shí)圖;圖20表示第三實(shí)施形態(tài)中任務(wù)管理單元15的內(nèi)部結(jié)構(gòu);圖21表示第三實(shí)施形態(tài)中的調(diào)度程序62的內(nèi)部結(jié)構(gòu);圖22表示選擇器82輸出緊急任務(wù)的標(biāo)識(shí)符的條件;圖23為Cstate存貯單元85存貯的狀態(tài)的狀態(tài)遷移圖;圖24為表示按照緊急狀態(tài)遷移許可信號(hào)、任務(wù)轉(zhuǎn)換信號(hào)chg-task-ox、Cstate的遷移輸出哪一任務(wù)標(biāo)識(shí)符的定時(shí)的定時(shí)圖;圖25A表示通常狀態(tài)中如何對各任務(wù)分配時(shí)隙;圖25B表示緊急狀態(tài)中各任務(wù)中如何分配時(shí)隙;圖26表示第四實(shí)施形態(tài)中的任務(wù)管理單元15的內(nèi)部結(jié)構(gòu);
圖27表示任務(wù)管理寄存器13中分配到Sleep狀態(tài)的位分配;圖28表示第四實(shí)施形態(tài)中的調(diào)度程序62的內(nèi)部結(jié)構(gòu);圖29A表示第四實(shí)施形態(tài)中Sleep指令和wake指令如何配置到各任務(wù);圖29B表示Sleep指令和Wake指令的指令格式示例;圖30表示第四實(shí)施形態(tài)中IPC、IF1、IF2、DECPC如何被更新;圖31A~圖31D表示第四實(shí)施形態(tài)中各任務(wù)上如何分配時(shí)隙;圖32表示第五實(shí)施形態(tài)中的任務(wù)管理單元15的內(nèi)部結(jié)構(gòu);圖33表示第五實(shí)施形態(tài)中的調(diào)度程序62的內(nèi)部結(jié)構(gòu);圖34為表示第一實(shí)施形態(tài)中的I/O處理器的全部控制的流程圖;圖35為表示第二實(shí)施形態(tài)中的I/O處理器的全部控制的流程圖;圖36為表示第三實(shí)施形態(tài)中的I/O處理器的全部控制的流程圖;圖37為表示第四實(shí)施形態(tài)中的I/O處理器的全部控制的流程圖;圖38為表示第五實(shí)施例中的I/O處理器的全部控制的流程圖;圖39表示第一實(shí)施形態(tài)中的時(shí)隙分配如何進(jìn)行;圖40表示第二實(shí)施形態(tài)中的時(shí)隙分配如何進(jìn)行;圖41表示第三實(shí)施形態(tài)中的時(shí)隙分配如何進(jìn)行;圖42表示第四實(shí)施形態(tài)中的時(shí)隙分配如何進(jìn)行;圖43表示第五實(shí)施形態(tài)中的時(shí)隙分配如何進(jìn)行;圖44為表示在以第一實(shí)施形態(tài)中的時(shí)隙分配執(zhí)行圖形輸出任務(wù)、聲音輸出任務(wù)時(shí)動(dòng)畫數(shù)據(jù)流、音頻數(shù)據(jù)流如何處理;圖45為在任務(wù)外改變周期數(shù)時(shí)的時(shí)隙管理程序的結(jié)構(gòu)圖。
(第一實(shí)施形態(tài))在開始說明I/O處理器之前,說明AV譯碼器具有怎樣的內(nèi)部結(jié)構(gòu),此結(jié)構(gòu)中涉及本發(fā)明的I/O處理器完成怎樣的分配任務(wù)。圖2A表示AV譯碼器的內(nèi)部結(jié)構(gòu)。
AV譯碼器由進(jìn)行核心處理的譯碼器核心單元和進(jìn)行多個(gè)異步事件任務(wù)的I/O單元組成。
譯碼器核心單元包含Setup單元104、VLD單元105、IQ/IDCT單元106、和運(yùn)動(dòng)補(bǔ)償單元107;I/O單元設(shè)置有數(shù)據(jù)流輸入單元101、緩沖存貯器102、位流FIF0 103、圖形輸出單元108、聲音輸出單元109、I/O處理器113、緩沖存貯器控制器110、RAM控制器111、FIF0控制器112、和主I/O單元115。作為母線的設(shè)置有緩沖存貯器母線121、SDRAM母線122、位流母線123、和IOP控制器母線124,作為擴(kuò)展存貯器連接到SDRAM300。
下面參照圖2B簡單說明MPEG數(shù)據(jù)流的譯碼處理的概要。本實(shí)施形態(tài)中,MPEG數(shù)據(jù)流由動(dòng)畫數(shù)據(jù)流、音頻數(shù)據(jù)流、和副圖象數(shù)據(jù)流組成。其中動(dòng)畫數(shù)據(jù)流為經(jīng)壓縮的動(dòng)畫圖象數(shù)據(jù),在譯碼處理中由將成為差分計(jì)算的基準(zhǔn)的圖象(以下稱為“參照圖象”)和計(jì)算出的差分被編碼的圖象相加來恢復(fù)成動(dòng)畫圖象。
圖2B中,MPEG數(shù)據(jù)流中動(dòng)畫數(shù)據(jù)流的數(shù)據(jù)結(jié)構(gòu)是分層次的。第一層為MPEG數(shù)據(jù)流層,第二層為一秒長的動(dòng)畫層。第三層為一幀的層,第四層為一位片層。第五層為宏塊層。
參照以點(diǎn)線C1所示第一層與第二層的對應(yīng)關(guān)系可看到,MPEG(動(dòng)畫圖象編碼專家組)中一秒長的動(dòng)畫以NTSC方式中的30幀圖象(PAL方式中為25幀的圖象)構(gòu)成。而各幀的圖象也可看到具有I圖形(圖中的10)、P圖形(圖中的P3)、B圖形(圖中的B1、B2)三種型式。
這里,作為I圖形的為經(jīng)壓縮的圖象數(shù)據(jù),包含一幀大小的亮度成分和色差成分。P圖形(予測圖形)或B圖形(雙向予測圖形)為被稱作為差分圖象的數(shù)據(jù)。這里作為P圖形的是由與位于過去方向上的幀的差分構(gòu)成的差分圖象,作為B圖形的是由與位于過去方向和未來方向上的幀的差分構(gòu)成的差分圖象。
B圖形和P圖形以怎樣的單位作成,如參照以點(diǎn)線表示的第二層與第三層的對應(yīng)關(guān)系可看到,在NTSC方式中這些圖象以30個(gè)所謂位片的數(shù)據(jù)構(gòu)成,而在PAL方式中以36個(gè)所謂位片的數(shù)據(jù)構(gòu)成。
如參照點(diǎn)線C3所示的第三層與第四層的對應(yīng)關(guān)系可知道,各位片以45個(gè)宏塊構(gòu)成。作為宏塊的是由橫16象素×縱16象素的亮度成分、色差成分構(gòu)成的。如參照點(diǎn)線C4所示第四層與第五層的對應(yīng)關(guān)系可了解包含有,由橫16×縱16的亮度成分構(gòu)成的亮度塊,由橫8×縱8的藍(lán)色差成分構(gòu)成的藍(lán)色差塊(cb塊),和由橫8×縱8的紅色差成分構(gòu)成的紅色差塊(Cr塊)?;A(chǔ)宏塊成為AV譯碼器中的圖象譯碼的單位。
宏塊以下作為表示AV譯碼器的構(gòu)成部件間怎樣對宏塊中所含的亮度塊、色差塊進(jìn)行處理的定時(shí)圖。
對宏塊雖然可作某種形式的譯碼,而對宏塊的譯碼將壓縮動(dòng)畫圖象數(shù)據(jù)作可變長譯碼(Variable Length code Decoding下將為VLD)就能得到6個(gè)空間頻率成分?jǐn)?shù)據(jù),標(biāo)題信息,運(yùn)動(dòng)向量。
然后對6個(gè)空間頻率成分?jǐn)?shù)據(jù)進(jìn)行逆離散余弦變換處理(DCT)分離成為位于低頻帶的空間頻率成分和位于高頻帶的空間頻率成分,去除高頻帶,而對位于低頻帶的空間頻率成分進(jìn)行量化處理。
被編碼的宏塊在作逆量化和逆離散余弦變換處理之后,由基于運(yùn)動(dòng)向量的運(yùn)動(dòng)補(bǔ)償作圖象顯示。所謂運(yùn)動(dòng)向量是指示與前后幀的圖象相比較具有最高相關(guān)性的場所的信息。也就是說,運(yùn)動(dòng)向量以塊為單位表現(xiàn)圖象內(nèi)的人物象和建筑物象在幀的前后如何動(dòng)作。
所謂運(yùn)動(dòng)補(bǔ)償是指將差分前后應(yīng)顯示的參照圖象與相關(guān)差分作步調(diào)協(xié)調(diào)(混合)能成為一個(gè)完成的顯示用圖象。
以上的MPEG標(biāo)準(zhǔn)的動(dòng)畫圖象的編碼/譯碼技術(shù)中本說明書特別引用的內(nèi)容即如上述。有關(guān)更詳細(xì)的技術(shù)內(nèi)容請參看ァスキ-公司出版的“要點(diǎn)圖解式最新MPEG教科書”等的公開文獻(xiàn)。
圖2B中的定時(shí)圖引用于該說明譯碼器核心單元中的Setup單元104、VLD單元105、IQ/IPCT單元106、和運(yùn)動(dòng)補(bǔ)償單元107進(jìn)行處理采用怎樣的定時(shí)。上面完成了對MPEG數(shù)據(jù)流的譯碼處理的概要說明,下面開始說明AV譯碼器的結(jié)構(gòu)組成。
數(shù)據(jù)流輸入單元101在由記錄媒體和通信媒體取出MPEG數(shù)據(jù)流后即將MPEG數(shù)據(jù)流取進(jìn)AV譯碼器內(nèi)部,按照I/O處理器113的控制輸出到緩沖存貯器母線121。
緩沖存貯器102根據(jù)緩沖存貯器控制器110的控制保存數(shù)據(jù)流輸入單元101取入的MPEG數(shù)據(jù)流。而在緩沖存貯器控制器110發(fā)出輸出MPEG數(shù)據(jù)流的命令后,即將至此時(shí)所存貯的MPEG數(shù)據(jù)流輸出到SDRAM母線122。
位流FIF0 103在MPEG數(shù)據(jù)流中所含的基本數(shù)據(jù)流被輸出到SDRAM母線122后即根據(jù)FIF0控制器112的控制取入所輸出的基本數(shù)據(jù)流。位流FIF0103以先入先出方式保存取入的基本數(shù)據(jù)流。根據(jù)FIF0控制器112的控制將這樣保存的基本數(shù)據(jù)流輸出到位流母線123。
Setup單元104等待由位流FIF0 103中保存的MPEG數(shù)據(jù)流中提取基本數(shù)據(jù)流,并等待該基本數(shù)據(jù)流成為動(dòng)畫數(shù)據(jù)流或音頻數(shù)據(jù)流、依靠由VLD單元105進(jìn)行譯碼將其標(biāo)題單元擴(kuò)展。標(biāo)題被擴(kuò)展后即對之進(jìn)行圖2B中所示的分析處理e1?;緮?shù)據(jù)為動(dòng)畫數(shù)據(jù)流時(shí)進(jìn)行運(yùn)動(dòng)向量提取e2。然后在進(jìn)行逆量化、逆離散余弦變換、運(yùn)動(dòng)補(bǔ)償?shù)戎g進(jìn)行聲音數(shù)據(jù)流的譯碼處理e3。
VLD單元105,在位流FIF0 103中存貯的基本數(shù)據(jù)流為動(dòng)畫數(shù)據(jù)流、構(gòu)成它的宏塊被輸出到位流母線123時(shí)即對宏塊中所包含的4個(gè)亮度塊Y0、Y1、Y2、Y3和2個(gè)色差塊Cb、Cr進(jìn)行可變碼長譯碼t21、t22、t23、t24、t25、t26。
IQ/IDCT單元106對經(jīng)過可變長譯碼的4個(gè)亮度塊和2個(gè)色差塊進(jìn)行逆量化和逆離散余弦變換。
運(yùn)動(dòng)補(bǔ)償單元107在由IQ/IDCT單元106作逆量化和逆離散余弦變換后即將對應(yīng)于經(jīng)過這些處理的亮度塊和色差塊的參照圖象(Y0,Y1)、(Y2、Y3)、(Cb,Cr)由連接在AV譯碼器外部的SDRAM300讀出,將亮度塊和色差塊與參照圖象混合。然后以對該混合結(jié)果作半周插補(bǔ)來進(jìn)行運(yùn)動(dòng)補(bǔ)償。此后由控制RAM控制器111將被輸出至SDRAM母線122的音頻數(shù)據(jù)流寫入SDRAM300。
圖象輸出單元108將由運(yùn)動(dòng)補(bǔ)償單元107進(jìn)行與參照圖象混合和半周插補(bǔ)的一幀圖象變換成視頻信號(hào)并輸出給外部連接的電視接收機(jī)等的顯示裝置。
聲音輸出單元109將經(jīng)由Setup單元104譯碼的音頻數(shù)據(jù)流變換成音頻信號(hào)并輸出給外部連接的揚(yáng)聲器裝置。
緩沖存貯器控制器(圖中的BM控制器)110由在I/O處理器113外圍的輸入單元101、圖象輸出單元108、聲音輸出單元109之間進(jìn)行訪問仲裁的緩沖存貯器接口、緩沖存貯器102、和具有數(shù)據(jù)流輸入單元101、圖象輸出單元108、聲音輸出單元109之間的DMA傳送功能的DMA控制器組成。
RAM控制器111由可能對SDRAM300作成組(猝發(fā))讀、成組寫的SDRAM接口、和具有SDRAM300-緩沖存貯器102間及運(yùn)動(dòng)補(bǔ)償單元107-緩沖存貯器102之間的DMA傳送功能的DMA控制器組成。
FIF0控制器112具有雙向端口RAM,控制該RAM的讀寫的控制器,和管理表示位流FIF0 103中的訪問地址的指針的指針管理功能。
I/O處理器113由將AV譯碼器中的6個(gè)異步事件任務(wù)分配到6個(gè)時(shí)隙來使異步事件任務(wù)以時(shí)分多路方式執(zhí)行。分配給各異步任務(wù)的時(shí)隙,在I/O處理器內(nèi)部的全部結(jié)構(gòu)部件均以為作同步控制用的時(shí)鐘信號(hào)的周期數(shù)表現(xiàn)時(shí),其長度假定為原則上4個(gè)周期。
主I/O任務(wù)為關(guān)于與主計(jì)算機(jī)的通信和對應(yīng)于與操作者的對話的二維圖形的描繪的任務(wù)。具體的說是包括通過主I/O單元115與主計(jì)算機(jī)的通信處理,和對應(yīng)于操作者的操作描繪二維圖形輸出到圖象輸出單元108的處理。
清除任務(wù)是關(guān)于輸入到緩沖存貯器102的MPEG數(shù)據(jù)流的清除處理,和由MPEG數(shù)據(jù)流進(jìn)行動(dòng)畫數(shù)據(jù)流、音頻數(shù)據(jù)流、副圖象數(shù)據(jù)流這樣的基本數(shù)據(jù)流的提取的提取處理。
清除任務(wù)執(zhí)行時(shí),I/O處理器113使由外部輸入到數(shù)據(jù)流輸入單元101的MPEG數(shù)據(jù)流被輸出到緩沖存貯器母線(圖中為BM母線)121。由對緩沖存貯器控制器110加以控制來將被輸出到緩沖存貯器母線121的MPEG數(shù)據(jù)流寫入緩沖存貯器102。此后,I/O處理器113由控制緩沖存貯器控制器110將MPEG數(shù)據(jù)流輸出到緩沖存貯器母線121,由MPEG數(shù)據(jù)流提取基本數(shù)據(jù)流。由控制緩沖存貯器控制器110將所提取的基本數(shù)據(jù)流寫入緩沖存貯器102。結(jié)果就成為在緩沖存貯器102中存貯作為基本數(shù)據(jù)流的位流、音頻數(shù)據(jù)流、副圖象數(shù)據(jù)流的狀態(tài)。
音頻數(shù)據(jù)流傳送控制任務(wù)是由關(guān)于音頻數(shù)據(jù)流的所有傳送控制組成的任務(wù)。
根據(jù)音頻數(shù)據(jù)流傳送控制任務(wù),I/O控制器113由控制緩沖存貯器控制器110將緩沖存貯器102中作為基本數(shù)據(jù)流存貯的音頻數(shù)據(jù)流輸出到SDRAM母線122。此后,由控制SDRAM控制器111被輸出到SDRAM母線122的音頻數(shù)據(jù)流寫入SDRAM300。在Setup單元104開始對位流FIF0 103中存貯的音頻數(shù)據(jù)流的譯碼后監(jiān)視該譯碼處理的進(jìn)展情況,在音頻數(shù)據(jù)流的剩余量一成為規(guī)定值以下,即控制RAM控制器111讀出SDRAM300中存貯的音頻數(shù)據(jù)流輸出到SDRAM母線122??刂艶IF0控制器112將這樣輸出的音頻數(shù)據(jù)流寫入到位流FIF0 103。
由這樣的向位流FIF0 103寫入來進(jìn)行對應(yīng)于音頻數(shù)據(jù)流譯碼的進(jìn)度的音頻數(shù)據(jù)流的補(bǔ)充。
譯碼完成時(shí),I/O處理器113即由控制FIF0控制器112將譯碼完的音頻數(shù)據(jù)流輸出到SDRAM母線122??刂凭彌_存貯器控制器110,將輸出到SDRAM母線122上的音頻數(shù)據(jù)流寫入緩沖存貯器102。
動(dòng)畫數(shù)據(jù)流傳送控制任務(wù)為由關(guān)于動(dòng)畫數(shù)據(jù)流的所有傳送控制組成的任務(wù)。
I/O處理器113由控制緩沖存貯器控制器110將緩沖存貯器102中存貯的動(dòng)畫數(shù)據(jù)流輸出到SDRAM母線122,由控制RAM控制器111將被輸出到SDRAM母線122的動(dòng)畫數(shù)據(jù)流寫入SDRAM300。VLD單元105、IQ/IDCT單元106、運(yùn)動(dòng)補(bǔ)償單元107-開始對位流FIF0 103中存貯的動(dòng)畫數(shù)據(jù)流進(jìn)行譯碼,即監(jiān)視動(dòng)畫數(shù)據(jù)流譯碼的進(jìn)展程度,在應(yīng)譯碼的剩余量成為規(guī)定值以下時(shí),控制RAM控制器111讀出SDRAM300中存貯的動(dòng)畫數(shù)據(jù),由FIF0控制器112寫入位流FIF0 103。由這樣的位流FIF0 103的寫入來進(jìn)行按照譯碼處理的進(jìn)度的動(dòng)畫數(shù)據(jù)流的補(bǔ)充。
圖象輸出任務(wù)為由關(guān)于視頻輸出的輸出控制組成的任務(wù)。
在執(zhí)行原始異步事件任務(wù)時(shí),I/O處理器113由控制RAM控制器111將VLD單元105、IQ/IDCT單元106、運(yùn)動(dòng)補(bǔ)償單元107所作處理完成時(shí)SDRAM300中存貯的動(dòng)畫數(shù)據(jù)輸出到SDRAM母線122,控制緩沖存貯器控制器110將被輸出到SDRAM母線122的動(dòng)畫數(shù)據(jù)流寫入緩沖存貯器102。控制緩沖存貯器控制器110,將寫入SDRAM 300的動(dòng)畫數(shù)據(jù)流輸出到SDRAM母線122,在圖象輸出單元108變換成視頻信號(hào)。將與此同時(shí)展開副圖象數(shù)據(jù)流得到的副圖象和二維圖形相混合輸出到圖象輸出單元108。
Setup I/O任務(wù)由Setup單元104與I/O處理器113進(jìn)行通信時(shí)應(yīng)執(zhí)行的處理組成。
由在有關(guān)指令成為用于讀寫主計(jì)算機(jī)設(shè)置的寄存器的指令時(shí)控制I/O處理器113作該讀寫的處理,和在有關(guān)指令成為VLD單元105、IQ/IDCT單元106的初始化指令時(shí)將VLD單元105、IQ/IDCT單元106加以復(fù)位的處理組成。
以上的異步事件任務(wù)各個(gè)的處理負(fù)擔(dān)均很輕,請求作間隔地起動(dòng)。特別是,圖形輸出任務(wù)請求水平消隱期間每50μsec起動(dòng)一次,聲音輸出任務(wù)請求每90μsec起動(dòng)一次。
現(xiàn)參照


I/O處理器的第一實(shí)施例。如上述那樣,I/O處理器對要執(zhí)行各自的異步事件任務(wù)的事件是否成立進(jìn)行監(jiān)視,事件成立的異步事件任務(wù)較優(yōu)先執(zhí)行。談到本實(shí)施形態(tài)中優(yōu)先執(zhí)行的過程,由于說明復(fù)雜所以要到第三實(shí)施形態(tài)中再對此優(yōu)先執(zhí)行加以說明。在第一實(shí)施形態(tài)中對I/O處理器的基本構(gòu)成、即對時(shí)分多路化地執(zhí)行AV譯碼器中的6個(gè)異步事件任務(wù)的構(gòu)成進(jìn)行說明。
圖3表示I/O處理器的內(nèi)部結(jié)構(gòu),如圖中所示,I/O處理器由指令存貯器100、指令讀出電路10、指令譯碼控制單元11、寄存器組12、運(yùn)算執(zhí)行單元14、和任務(wù)管理單元15構(gòu)成。
指令存貯器100存貯構(gòu)成上述6個(gè)原始異步事件任務(wù)的指令。圖7A表示指令存貯器100存貯指令序列的方式。圖中各指令上被加以0-0、0-1、0-2這樣的標(biāo)識(shí)符。此標(biāo)識(shí)符中上位的數(shù)表示有關(guān)指令屬于原始的異步事件任務(wù)中的哪一個(gè),下位的數(shù)表示在所屬的異步事件任務(wù)中該指令位列第n。在后面的說明中,指令存貯器100中各指令的配置地址用此識(shí)別符來表示。
指令存貯器100內(nèi)存貯的指令被規(guī)定為所有操作均可容納于一指令字長內(nèi)這樣的指令格式。此實(shí)施例中,指令字長規(guī)定為16位,圖7B~圖7D中表示該指令格式。
圖7B表示將寄存器指定為操作數(shù)的算術(shù)運(yùn)算指令的指令格式。在此指令格式中,2~4bit中可指定應(yīng)指定給第一操作數(shù)的寄存器序號(hào),5~7bit中可指定應(yīng)指定到第二操作數(shù)的寄存器序號(hào)。8~10bit中可指定應(yīng)指定給運(yùn)算結(jié)果的存貯地點(diǎn)的寄存器序號(hào),由11至15bit的5個(gè)位中被指定操作內(nèi)容。下方的表表明可能指定有關(guān)操作內(nèi)容的5個(gè)位中的上位2bit與下位3bit的組合,和以其組合表達(dá)的操作內(nèi)容。例如,上位2bit為“00”、下位3bit為“000”時(shí),其組合表明為加法運(yùn)算操作,在上位2bit為“01”、下位3bit為“000”時(shí),其組合表明為減法運(yùn)算。在上位2bit為“00”、下位3bit為“001”時(shí),其組合表明為左移運(yùn)算(圖中的<<就是指向左位移的運(yùn)算),在上位2bit為“01”、下位3bit為“001”時(shí),其組合表明為右移運(yùn)算(圖中的>>是指向右位移運(yùn)算)。
圖7C表示以寄存器指定讀出目的地地址、寫入目的地地址的存貯器裝入指令/存貯器存貯指令的指令格式。此指令格式可在2~4bit中指定應(yīng)指定給第一操作數(shù)的寄存器序號(hào),可在5~7bit中指定應(yīng)指定給讀出起源的寄存器序號(hào)或應(yīng)指定給運(yùn)算結(jié)果的存貯目的地的寄存器序號(hào)。10bit至12bit的3位中被指定操作內(nèi)容,而在13bit至15bit的3位中被指定3位長的立即值。
下部的表表示在由3個(gè)位指定的操作內(nèi)容中上位1bit與下位2bit的組合,和以其組合表達(dá)的操作內(nèi)容。
例如在上位1bit為“1”、下位2bit為“10”時(shí),指定將以讀出起源操作處src_REG所指定的寄存值存貯進(jìn)利用第一操作數(shù)Src1與3位的立即值im:3的組合(src1+im:3)所指定的存貯器中的存貯指令。
在上位1bit為“0”、下位2bit為“10”時(shí),指定借助其組合采用第一操作數(shù)src1與3位的立即值的組合(stc1+im:3)的尋址方式由存貯器讀出值,存貯進(jìn)存貯目的dst_REG中所指定的寄存器中存貯的裝載指令。
圖7D表示能指定8位、11位的立即值的比較指令/運(yùn)算指令/轉(zhuǎn)移指令的指令格式。在此指令格式中立即值為8位時(shí),5至7bit中可指定相當(dāng)于存貯第一操作數(shù)和運(yùn)算結(jié)果的寄存器,而利用8至15bit存貯立即值。在立即值為11位時(shí),利用5至15bit存貯立即值。利用2至5bit的4位如下部的表那樣指定操作內(nèi)容。
下部的表表示相關(guān)4位中,上位2bit與下面2bit的組合和以其組合表達(dá)的操作內(nèi)容。例如在上位2bit為“10”、下位2bit為“10”時(shí),其組合指定將由第一操作指定的寄存器的值與第二操作數(shù)的8位的立即值相比較的比較指令。
在上位2bit為“10”、下位2bit為“10”時(shí),其組合指定操作數(shù)與8位的立即值相乘的乘法指定。在上位2bit為“11”、下位2bit為“11”時(shí),其組合指定將11位的立即值作為轉(zhuǎn)移目的地址的絕對地址指定型的轉(zhuǎn)移指令。
在以上說明中,因?yàn)椴僮鲀?nèi)容以一指令字長的16位來表達(dá),在讀出指令存貯器內(nèi)不管怎樣的操作內(nèi)容的命令時(shí),和譯碼/執(zhí)行任何的指令時(shí),這些讀出、譯碼、執(zhí)行均能一樣地在一周期內(nèi)完成。亦即,規(guī)定為到指令的讀出、譯碼、執(zhí)行的完成為止的時(shí)間在指令之間不會(huì)產(chǎn)生偏離那樣的指令格式。特別是在圖7D中將立即值的大小作為8位和11位,此規(guī)定的意圖清楚顯現(xiàn)。亦即,如將所指定的立即值增長,指令字長有可能會(huì)擴(kuò)展到24位、32位,為防止這種擴(kuò)展,使指令字長能容納于16位之內(nèi),所以將立即數(shù)長保持為8位、11位。執(zhí)行一個(gè)指令,如以表示需要多少周期數(shù)的單位(稱之為CPI,即每一次指令的周期)來表達(dá),則此I/O處理器的CPI即純粹為“1”,而“讀出指令n次”、“指令譯碼、執(zhí)行n次”則以周期數(shù)表達(dá)。
指令讀出電路10將指令存貯器100內(nèi)的讀出目的地址輸出到指令存貯器100。
指令譯碼控制單元11(圖中為譯碼器11)對指令存貯器100輸出的指令譯碼,根據(jù)其譯碼結(jié)果控制指令讀出電路10和運(yùn)算執(zhí)行單元14。
寄存器組12具有各自均為24個(gè)的32位長的通用寄存器(GR)和16位長的通用寄存器。之所以這樣作成具有24個(gè)寄存器是為了將32位長的寄存器和16位長的寄存器各4個(gè)地分配給6個(gè)異步事件任務(wù)。這樣依靠在每個(gè)異步事件任務(wù)中分配8個(gè)寄存器,就無必要在任務(wù)轉(zhuǎn)換時(shí)疏散、恢復(fù)寄存器的值。
運(yùn)算執(zhí)行單元14設(shè)置有ALU、乘法器、滾動(dòng)移位器,根據(jù)指令譯碼控制單元11的控制利用寄存器組12中通用寄存器的存貯值進(jìn)行運(yùn)算。在由異步事件任務(wù)向另外的任務(wù)轉(zhuǎn)換時(shí),運(yùn)算執(zhí)行單元14利用與之對應(yīng)的4個(gè)32位長的通用寄存器、4個(gè)16位長的通用寄存器,對轉(zhuǎn)換后的任務(wù)中所含的指令執(zhí)行運(yùn)算。
任務(wù)管理單元15監(jiān)視指令譯碼控制單元11中的指令執(zhí)行,如經(jīng)過了分配給各任務(wù)的時(shí)隙的時(shí)間長,即將應(yīng)分配下一時(shí)隙的任務(wù)的標(biāo)識(shí)符輸出到指令讀出電路10。
下面參照圖4A說明指令讀出電路10以怎樣的內(nèi)部構(gòu)成來進(jìn)行讀出目的地址的更新。圖4A中表示指令讀出電路10的內(nèi)部結(jié)構(gòu)。
如圖4A所示,指令讀出電路10由IF1+1保存單元20、增量電路21、IF2保存單元22、DECPC保存單元23、任務(wù)各別PC存貯單元24、選擇器25和選擇器26組成,構(gòu)成為實(shí)現(xiàn)在譯碼步驟之前進(jìn)行二級的讀出步驟的流水線處理。此二級的讀出步驟中的各個(gè)讀出目的地址叫做第一讀取目的地址1F1和第二讀出目的地址IF2。
在圖4A中,IF1一般為選擇器26輸出的地址,IF2為IF2保存單元22保存的地址。圖8為表示指令讀出電路10內(nèi)進(jìn)行的流水線處理的定時(shí)圖。后面在談到有關(guān)指令讀出電路10的結(jié)構(gòu)部件時(shí),均要引用此定時(shí)圖。
IF1+1保存單元20為被用于保存計(jì)數(shù)值的計(jì)數(shù)值寄存器的部件,在由任務(wù)各別PC存貯單元24輸出某一個(gè)讀出目的地址時(shí),即將該地址作為計(jì)數(shù)初始值保存,在由增量電路21進(jìn)行該計(jì)數(shù)值增量后,即將增量后的地址作為最新計(jì)數(shù)值保存。
此時(shí),如輸出由增量電路21新近增量的地址時(shí),IF1+1保存單元20即通過信號(hào)線④將到目前所保存的地址輸出到選擇器25同時(shí)也輸出給選擇器26。
增量電路21按時(shí)鐘信號(hào)將由選擇器26輸出的IF1加以增量。經(jīng)增量的地址由IF1+1保存單元20加以保存。由選擇器26輸出的IF1因?yàn)槭堑侥壳坝蒊F1+1保存單元20所保存的值,因此依靠由增量電路21所作增量,IF1+1保存單元保存的計(jì)數(shù)值每一時(shí)鐘均被增量。
在圖8的定時(shí)圖中,作為讀出目的地址輸出的指令0-0的讀出目的地地址被增量電路21增量(參看圖中的inc1、inc2、inc3)。這樣,IF1+1保存單元20保存的讀出目的地地址被作為指令0-1的地址、指令0-2的地址、和指令0-3的地址進(jìn)行更新。
IF2保存單元22與時(shí)鐘信號(hào)同步地將前次由IF1+1保存單元20輸出的地址作為應(yīng)讀出指令的第二讀出目的地地址加以保存。由圖8的定時(shí)圖可知,作為第二讀出目的地地址而輸出指令0-0的地址、指令0-1的地址、指令0-2的地址、和指令0-3的地址??煽吹竭@些地址要比第一讀出目的地址延遲一個(gè)周期。在由IF1+1保存單元20輸出新的地址后,IF2保存單元22即將迄至目前保存的地址輸出到DECPC保存單元23,還通過信號(hào)線①輸出給選擇器25。輸出后保存由IF1+1保存單元20輸出的該新的地址。
DECPC保存單元23保存前次IF2保存單元22輸出的地址。此地址與成為指令譯碼控制單元11的譯碼控制的對象的指令地址相一致。在新的地址由IF2保存單元22輸出時(shí),即保存該新地址進(jìn)行譯碼對象的地址的更新。
DECPC保存單元23保存的地址為IF2保存單元22迄至目前保存的地址,IF2保存單元22保存的地址為IF1+1保存單元22迄至目前保持的地址,所以與IF+1保存單元20保存的地址比較,DECPC保存單元23所保存的地址遲二個(gè)指令,而與IF2保存單元22保存的地址比較,DECPC保存單元23中保存的地址遲一個(gè)指令。
任務(wù)各別PC存貯單元24為其內(nèi)部具有保存每一任務(wù)的讀出目的地址的區(qū)域的存貯器電路或每一任務(wù)中設(shè)置的地址寄存器。內(nèi)部區(qū)域或各個(gè)的地址寄存器中,在各個(gè)地存貯的讀出目的地址中被付加有作為地址的3位長的任務(wù)標(biāo)識(shí)符。并將任務(wù)(0)的讀出目的地址稱為IPC0,將任務(wù)(1)讀出目的地址稱為IPC1。對后面的任務(wù)(2)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5)也同樣。
任務(wù)各別PC存貯單元24中的這些讀出目的地址的讀寫操作在由任務(wù)管理單元15輸出要轉(zhuǎn)換任務(wù)的指示(任務(wù)轉(zhuǎn)換信號(hào)chg_task_ex的高電平值)時(shí)進(jìn)行。此任務(wù)轉(zhuǎn)換信號(hào)chg_task_ex為高電平值時(shí),由任務(wù)管理單元15輸出與任務(wù)轉(zhuǎn)換信號(hào)chg_task_ex同時(shí)執(zhí)行完畢的任務(wù)的3個(gè)位長的標(biāo)識(shí)符(寫入地址選擇信號(hào)taskid(wr_adr))和下一應(yīng)執(zhí)行任務(wù)的3個(gè)位長的標(biāo)識(shí)符(讀出地址選擇信號(hào)nxttaskid(rd_adr)),而任務(wù)各別PC存貯單元24則根據(jù)這些信號(hào)進(jìn)行內(nèi)部區(qū)域的讀寫。亦即,任務(wù)各別存貯單元24將寫入地址選擇信號(hào)taskid(wr_adr)解釋成為任務(wù)各別PC存貯單元24內(nèi)的地址,將由選擇器25輸出的讀出目的地址存貯到由其指示的內(nèi)部區(qū)域。在圖8的定時(shí)圖中任務(wù)轉(zhuǎn)換信號(hào)chg_task_ex上升定時(shí)時(shí)刻a1、b1進(jìn)行讀出目的地址的寫入a2、b2。
在進(jìn)行寫入a2的時(shí)期,IF2保存單元22保存指令0-3的地址,IF1+1保存單元20通過信號(hào)線④將此指令0-3的地址上加“1”的地址0-4輸出給選擇器25。在這樣輸出后地址0-4即被存進(jìn)任務(wù)各別DC存貯單元24。由此,如果下一時(shí)隙再次輪到任務(wù)各別PC存貯單元24內(nèi)的任務(wù)(0),任務(wù)(0)的讀出即按地址0-4進(jìn)行。
在進(jìn)行寫入b2時(shí)期,IF2保存單元22保存指令1-3的地址,IF1+1保存單元20通過信號(hào)線④將此指令1-3的地址上加“1”的地址1-4輸出給選擇器25。這樣輸出后被作增量的地址1-4即被存進(jìn)任務(wù)各別PC存貯單元24。由此,如果下一時(shí)隙再次輪到任務(wù)各別PC存貯單元24中的任務(wù)(1),任務(wù)(1)的讀出即按地址1-4進(jìn)行。
而當(dāng)讀出地址選擇信號(hào)nxttaskid(rd_adr)被任務(wù)管理單元15提供時(shí),任務(wù)各別PC存貯單元24將其標(biāo)識(shí)符解釋作為任務(wù)各別PC存貯單元24內(nèi)的地址,由被其指示的內(nèi)部區(qū)域取出異步事件任務(wù)的讀出目的地址輸出給選擇器26。
在圖8的定時(shí)圖中,作為讀出地址選擇信號(hào)nxttaskid由任務(wù)管理單元15提供標(biāo)識(shí)符(1),chgtaskex上升時(shí)(參看參照符號(hào)a3),任務(wù)各別PC存貯單元24將由其標(biāo)識(shí)符指示的任務(wù)(1)解釋作為任務(wù)各別PC存貯單元24內(nèi)的地址,取出其中存貯的讀出目的地址(1-0)輸出給選擇器26(參看參照符號(hào)a4)。
指令2-0的地址被作為讀出目的地址IF1輸出的定時(shí)時(shí)刻,作為讀出地址選擇信號(hào)nxttaskid由任務(wù)管理單元15提供標(biāo)識(shí)符(2),在chgtaskex上升時(shí)(參看參照符號(hào)a5),任務(wù)各別PC存貯單元24作為由其標(biāo)識(shí)符指示的任務(wù)(2)的讀出目的地址取出讀出目的地址(2-0)輸出到選擇器26(參看參照符號(hào)a6)。
如上所述,在讀出目的地址被輸出時(shí),任務(wù)(0)的指令僅執(zhí)行4個(gè)指令,隨其后任務(wù)(5)僅被執(zhí)行4個(gè)指令。后而,任務(wù)(2)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5)的指令序列各自每個(gè)執(zhí)行4個(gè)指令。
作為5輸入1輸出的選擇器25選擇①、②、③、④的信號(hào)線上傳送的地址中的某一個(gè)輸出到任務(wù)各別PC存貯單元24。選擇這些①~④中的哪一個(gè)如圖4B中所示的輸出邏輯表中所示那樣,根據(jù)指令譯碼控制單元11按指令的譯碼結(jié)果輸出的Selpc信號(hào)進(jìn)行。這里④的信號(hào)線為IF1+1保存單元20的輸出,在由任務(wù)管理單元15將任務(wù)轉(zhuǎn)換信號(hào)chg_tash轉(zhuǎn)換為高電平時(shí)選擇器25即優(yōu)擇它。
②、③的信號(hào)線分別連接指令譯碼控制單元11和運(yùn)算執(zhí)行單元14。②在利用指定絕對地址的轉(zhuǎn)移指令的譯碼時(shí)將轉(zhuǎn)移指令的立即值作為轉(zhuǎn)移目的地址由指令譯碼控制單元取得時(shí)加以選擇。③在利用指定間接參照的轉(zhuǎn)移指令的譯碼時(shí)將由運(yùn)算執(zhí)行單元14計(jì)算得的地址作為轉(zhuǎn)移地址應(yīng)用時(shí)加以選擇。
選擇器26為2輸入1輸出的選擇器,在任務(wù)轉(zhuǎn)換信號(hào)chg_task為低電平期間選擇經(jīng)增量電路21增量后的地址作為IF1輸出到增量電路21和IF2保存單元22。在任務(wù)轉(zhuǎn)換信號(hào)chg_task為高電平期間將任務(wù)各別PC存貯單元24中存貯的下一應(yīng)執(zhí)行的任務(wù)的地址輸出給增量電路21和IF2保存單元22。
利用如以上構(gòu)成的指令讀出電路,在任務(wù)轉(zhuǎn)換時(shí),迄至目前執(zhí)行的任務(wù)的讀出目的地址由選擇器25存入任務(wù)各別PC存貯單元24,另外,存放在任務(wù)各部PC存貯單元24中的下一任務(wù)的地址則由選擇器26作為IF1輸出。上述的讀出目的地址的轉(zhuǎn)換在一周期內(nèi)進(jìn)行,在此讀出目的地址的轉(zhuǎn)換中無需I/O進(jìn)行多余的處理。也無需象插入信號(hào)的通報(bào)時(shí)進(jìn)行的轉(zhuǎn)移那樣將先前讀出的地址無效化。從而,由指令讀出電路10作的讀出目的地址的保留、恢復(fù)的進(jìn)行不會(huì)產(chǎn)生額外開銷。
現(xiàn)在參照圖5中所示任務(wù)管理單元15的內(nèi)部構(gòu)成來說明任務(wù)管理單元15以怎樣的內(nèi)部結(jié)構(gòu)確定隨后應(yīng)執(zhí)行的異步事件任務(wù)。
圖5表示任務(wù)管理單元15的內(nèi)部結(jié)構(gòu)。如圖5所示,任務(wù)管理單元15由時(shí)隙管理器61和調(diào)度器62組成,時(shí)隙管理器61由觸發(fā)器51、計(jì)數(shù)器52、和比較器54構(gòu)成,調(diào)度器62由任務(wù)ID保存單元71、任務(wù)ID保存單元72、任務(wù)循環(huán)管理單元73、和優(yōu)先編碼器74構(gòu)成。
觸發(fā)器51保存表示下一被執(zhí)行指令為第n號(hào)的整數(shù)值(將其稱為計(jì)數(shù)值I)。
計(jì)數(shù)器52為初始值設(shè)定為“1”、上限值被設(shè)定為“4”的計(jì)數(shù)器,與時(shí)鐘信號(hào)同步地對觸發(fā)器51中保存的計(jì)數(shù)值進(jìn)行1、2、3、4、1、2、3、4這樣的計(jì)數(shù)。
比較器54將計(jì)數(shù)器52計(jì)數(shù)的值與整數(shù)值“4”進(jìn)行比較,如果計(jì)數(shù)器52的計(jì)數(shù)值與整數(shù)“4”相一致,即使任務(wù)轉(zhuǎn)換信號(hào)chg_task_ex成為高電平值輸出給選擇器26和任務(wù)各別PC存貯單元24。
這樣,依靠每當(dāng)計(jì)數(shù)器52計(jì)數(shù)到“4”時(shí)使任務(wù)轉(zhuǎn)換信號(hào)chg_task_ex成為高電平,就4周期一次地進(jìn)行由選擇器26對任務(wù)各別PC存貯單元24的選擇。此時(shí),任務(wù)各別PC存貯單元24將應(yīng)分配下一時(shí)隙的任務(wù)的讀出目的地址輸出到選擇器26,所以由任務(wù)各別PC存貯單元24的讀出目的地址的輸出,即成為每4周期執(zhí)行一次地進(jìn)行。
任務(wù)ID保存單元71保存由計(jì)數(shù)器52進(jìn)行指令執(zhí)行的計(jì)數(shù)的任務(wù)的標(biāo)識(shí)符(將其稱之為任務(wù)標(biāo)識(shí)符taskid)。圖6A中表示任務(wù)標(biāo)識(shí)符的示例。如圖6A所示,任務(wù)標(biāo)識(shí)符采用3位,指明指令存貯器100中存貯的6個(gè)任務(wù)中的哪一個(gè)。在指令執(zhí)行被進(jìn)行4次計(jì)數(shù)后,在調(diào)度器62中由優(yōu)先編碼器74輸出應(yīng)分配下一時(shí)隙的任務(wù)的任務(wù)標(biāo)識(shí)符taskid,此時(shí),任務(wù)ID保存單元71將迄至目前保存的任務(wù)標(biāo)識(shí)符taskid輸出到任務(wù)循環(huán)管理單元73,保存新輸出的任務(wù)識(shí)別符taskid。
任務(wù)循環(huán)管理單元73監(jiān)視任務(wù)ID保存單元71中任務(wù)標(biāo)識(shí)符怎樣被更新,利用6位長的寄存器管理在6個(gè)任務(wù)中進(jìn)行的時(shí)隙分配。而在計(jì)數(shù)器52在計(jì)數(shù)到4個(gè)指令的執(zhí)行時(shí),由任務(wù)ID保存單元71輸出任務(wù)標(biāo)識(shí)符taskid,任務(wù)循環(huán)管理單元73將表明分配完時(shí)隙的任務(wù)的數(shù)值(將此值稱為循環(huán)值taskn)輸出到優(yōu)先編碼器74。圖6B表示循環(huán)值的示例。在此循環(huán)值taskn中,如果第一位為“1”即表明時(shí)隙被分配到任務(wù)(1),如第一位為“0”則表明任務(wù)(1)不是這樣。任務(wù)管理寄存器13的第二位如為“1”,即表明時(shí)隙被分配到任務(wù)(2),而如第二位為“0”則表明任務(wù)(2)不是這樣。
如任務(wù)(0)、任務(wù)(1)中時(shí)隙分配完畢,任務(wù)循環(huán)管理單元73輸出“000011”到優(yōu)先編碼器74。而如任務(wù)(0)、任務(wù)(1)、任務(wù)(2)中時(shí)隙分配完畢,任務(wù)循環(huán)管理單元73則輸出“000111”到優(yōu)先編碼器74,如果任務(wù)(0)、任務(wù)(1)、任務(wù)(2)、任務(wù)(3)上時(shí)隙分配完畢,任務(wù)循環(huán)管理單元73輸出“001111”給優(yōu)先編碼器74。
而在向任務(wù)(0)~任務(wù)(5)的時(shí)隙分配輪流一回后,將“111111”輸出給優(yōu)先編碼器74之后將6位長的寄存器復(fù)位成“000000”。
優(yōu)先編碼器74接收任務(wù)循環(huán)管理單元73輸出的循環(huán)值taskn,檢測接收到的任務(wù)循環(huán)管理單元73的循環(huán)值taskn中第n位發(fā)生由“1”向“0”的翻轉(zhuǎn)。在由此檢測到發(fā)生向“0”翻轉(zhuǎn)的位時(shí),即將分配到此發(fā)生翻轉(zhuǎn)的位的任務(wù)的任務(wù)標(biāo)識(shí)符taskid輸出到任務(wù)ID保存單元71。所輸出的任務(wù)標(biāo)識(shí)符被作為地址選擇信號(hào)nxttaskid(rd_adr)輸出到任務(wù)各別PC存貯單元24。
例如當(dāng)由任務(wù)循環(huán)管理單元73作為循環(huán)值taskn輸出“000011”時(shí),優(yōu)先編碼器74檢測此循環(huán)值taskn中向由下位開始的第二位上的“0”翻轉(zhuǎn)的發(fā)生(應(yīng)注意是將最下位計(jì)數(shù)作為0位)。此第二位在圖6B中因?yàn)槭潜环峙浣o任務(wù)(2)的位,所以優(yōu)先編碼器74將任務(wù)(2)的任務(wù)標(biāo)識(shí)符taskid輸出給任務(wù)ID保存單元71。
例如在由任務(wù)循環(huán)管理單元73作為循環(huán)值taskn輸出“000111”時(shí),優(yōu)先編碼器74檢測到此循環(huán)值taskn中由下位開始的第三位上發(fā)生向“0”的翻轉(zhuǎn)。此第三位在圖6B中是被分配到任務(wù)(3)的位,所以優(yōu)先編碼器74將任務(wù)(3)的任務(wù)標(biāo)識(shí)符taskid輸出給任務(wù)ID保存單元71。因?yàn)檠h(huán)值taskn表明已完成時(shí)隙分配的任務(wù),所以此循環(huán)值taskn中翻轉(zhuǎn)為“0”的位就意味著下面應(yīng)分配時(shí)隙的哪一個(gè)任務(wù)。在將翻轉(zhuǎn)為“0”的位變換為任務(wù)標(biāo)識(shí)符taskid后即在任務(wù)ID保存單元71中存貯下一應(yīng)分配時(shí)隙的任務(wù)。
任務(wù)ID保存單元72在優(yōu)先編碼器74輸出新的任務(wù)標(biāo)識(shí)符taskid后即將緊前面所輸出的任務(wù)標(biāo)識(shí)符taskid作為寫入地址選擇信號(hào)taskid(Wr_adr)加以保存,輸出給任務(wù)各別PC存貯單元24。
由以上這樣構(gòu)成的第一實(shí)施形態(tài)的I/O處理器怎樣分配時(shí)隙如圖9中所示。圖9表示由按時(shí)間順序排列分配給任務(wù)(0)至任務(wù)(5)的任務(wù)上的時(shí)隙所形成的幀的單位。
任務(wù)(0)~任務(wù)(5)上各自分配有4個(gè)周期的時(shí)隙,從而形成為24個(gè)周期的幀。按這樣的幀,圖7中所示的指令序列均勻地被各四個(gè)指令地加以執(zhí)行。
現(xiàn)參照圖44說明第一實(shí)施形態(tài)的I/O處理器中計(jì)算操作時(shí)鐘數(shù)的情況。圖44為表示在以第一實(shí)施形態(tài)中的時(shí)隙分配執(zhí)行圖形輸出任務(wù)、聲音輸出任務(wù)時(shí)處理動(dòng)畫數(shù)據(jù)流、音頻數(shù)據(jù)流的定時(shí)圖,這里假定為保證圖形輸出任務(wù)、音頻輸出任務(wù)的實(shí)時(shí)性,為將動(dòng)畫數(shù)據(jù)流變換成視頻信號(hào)的圖形輸出任務(wù)要在基于顯示的水平同步信號(hào)周期的50μsec中處理一行內(nèi)的圖象,為將音頻數(shù)據(jù)流變換成聲音信號(hào)的聲音輸出任務(wù)要在90μsec的周期中處理規(guī)定的聲音數(shù)據(jù)流。
這時(shí),首先第一導(dǎo)出上述周期中“這種程度數(shù)量的指令最少要執(zhí)行”的最低理解數(shù)。
這里,在譯碼一行的視頻數(shù)據(jù)中,要最小了解圖形輸出任務(wù)中的448指令執(zhí)行,在譯碼一個(gè)周期的聲音數(shù)據(jù)中,要最少了解聲音輸出任務(wù)中的808個(gè)指令執(zhí)行。本實(shí)施形態(tài)中CPI=1,指令數(shù)與周期數(shù)等效,所以按最低理解數(shù)圖形輸出任務(wù)、聲音輸出任務(wù)應(yīng)分配的周期數(shù)被確定為448(=4×112)周期、808(=4×202)周期。
任務(wù)(0)~任務(wù)(5)分別以每次四個(gè)周期地執(zhí)行。這里,因?yàn)椴煌芍噶钶敵鲭娐?0內(nèi)的選擇器25、26作的程序計(jì)數(shù)器的轉(zhuǎn)換而產(chǎn)生額外開銷,所以任務(wù)(0)至任務(wù)(5)輪回一周所需時(shí)間實(shí)際上就是24個(gè)周期。
指令周期數(shù)為4,任務(wù)總數(shù)為6,所以全部任務(wù)以24個(gè)周期每次4個(gè)指令地執(zhí)行。
為止,一周期所需的時(shí)間S1、S2就要滿足下式50μsec>6×4×112×S1nsec90μsec>6×4×202×S2nsec
S1<50μsec/6×4×112=18.6nsecS2<90μsec/6×4×202=18.56nsec。
由1÷S2nsec計(jì)算確定操作時(shí)鐘數(shù)時(shí)即得到54MHZ=1÷18.56nsec。由以上計(jì)算就能單義地導(dǎo)出完成圖形輸出任務(wù)、聲音輸出任務(wù)的處理的最適當(dāng)?shù)牟僮鲿r(shí)鐘數(shù)。
如上所述按照本實(shí)施形態(tài),就能按照規(guī)定的周期中要執(zhí)行的指令的最低理解數(shù)、執(zhí)行周期、任務(wù)總數(shù)單義地導(dǎo)出操作時(shí)鐘數(shù)的最適當(dāng)?shù)南孪拗?。由于操作時(shí)鐘的最適當(dāng)下限值的求取,即使未更高地確定操作時(shí)鐘信號(hào)也能保持聲音輸出任務(wù)、圖形輸出任務(wù)的實(shí)時(shí)性,即使在操作時(shí)鐘低速的打印被搭載于家用設(shè)備上時(shí)也能恰當(dāng)?shù)貙PEG數(shù)據(jù)流進(jìn)行譯碼。
借助設(shè)置時(shí)分多路化地執(zhí)行多個(gè)異步事件任務(wù)的I/O處理器,由在插入時(shí)可以不進(jìn)行異步事件處理,所以Setup單元104、VLD單元105、IQ/IDCT單元106可能專門作逆量化、逆離散余弦變換、運(yùn)動(dòng)補(bǔ)償?shù)奶幚?。而I/O處理器在不會(huì)產(chǎn)生因用來保存、恢復(fù)程序計(jì)數(shù)值的額外開銷時(shí)高速執(zhí)行任務(wù)轉(zhuǎn)換,所以即使不將操作時(shí)鐘作成高速的也能滿足MPEG數(shù)據(jù)流的再生中所要求的實(shí)時(shí)性。
本實(shí)施例中對各任務(wù)的時(shí)隙一律作成4個(gè)周期,但也可按照各任務(wù)的處理內(nèi)容各自設(shè)定為不同的值。
在對任務(wù)各別地作成周期數(shù)可變的情況下將圖5所示的時(shí)隙管理器作成為圖45中所示。此圖中,選擇器200連接到作為任務(wù)(0)至任務(wù)(5)的固有周期數(shù)的“任務(wù)(0)的周期數(shù)”至“任務(wù)(5)的周期數(shù)”,按照調(diào)度器62輸出的nxttaskid將對應(yīng)的周期數(shù)選擇一個(gè)輸出到比較器54。在圖19A中下一應(yīng)分配時(shí)隙的任務(wù)為任務(wù)(0),選擇器200將“任務(wù)(0)的周期數(shù)”輸出給比較器54。采用這樣的構(gòu)成就能將對應(yīng)于任務(wù)(0)至任務(wù)(5)的各自的處理負(fù)荷的最適當(dāng)?shù)闹芷跀?shù)分配到各個(gè)任務(wù)。也可以將這樣的最適當(dāng)周期數(shù)存進(jìn)存貯器或寄存器,日后對之改寫。
本實(shí)施形態(tài)中雖然是將應(yīng)執(zhí)行的任務(wù)壓縮進(jìn)異步事件任務(wù)來說明的,但對其他的任務(wù)亦可。
(第二實(shí)施形態(tài))
第一實(shí)施例中雖然是將分配到各任務(wù)的時(shí)隙的指令數(shù)一律作為四個(gè)周期,而第二實(shí)施形態(tài)中則是將1時(shí)隙分配多少個(gè)周期作成為各任務(wù)能獨(dú)自地變更的。而時(shí)隙的分配由Wait_Until_Next指令完成。作為Wait_Until_Next指令是使時(shí)隙中的指令在中途中斷,以便將位于Wait_Until_Next指令的下一序號(hào)處的一連串的指令序列予先送到下一時(shí)隙的內(nèi)容的指令。而作為Wait_Until_Next指令的譯碼時(shí)的讀出目的地地址的存貯,此時(shí)圖4中所示的5輸入1輸出的選擇器25通過①的信號(hào)線選擇IF1+1保存單元20的輸出,存貯進(jìn)任務(wù)PC存貯單元24。
圖10A為將Wait_Until_Next指令(圖中的WUN指令)作為指令0-1其內(nèi)部具有的異步事件任務(wù)示例,圖11為表示圖10A的異步事件任務(wù)的執(zhí)行狀態(tài)的定時(shí)圖。在Wait_Until_Next指令如圖10A中所示作為指令0-1并作為異步事件任務(wù)的第一個(gè)指令被加以存貯時(shí),在此指令0-1被保存在DECPC保存單元23中并由指令譯碼控制單元11譯碼后,選擇器25即通過①的信號(hào)線將指令0-2的讀出目的地址存貯進(jìn)任務(wù)各別PC存貯單元24(圖11的①也同樣)。此后,指令譯碼控制單元11使指令0-2、0-3無效(圖11中的“NOP”)。
這里,指令0-2是將I/O處理器的本地存貯器內(nèi)的地址meml的值讀出到寄存器組12中的寄存器r0的指令,指令0-3是將I/O處理器的本地存貯器內(nèi)的地址buf1的值讀出到寄存器r1的指令。指令0-4是將寄存器r0的值與寄存器r1的值相乘,將其結(jié)果存入寄存器r2的指令,指令0-5是將寄存器r2的值存到I/O處理器的本地存貯器內(nèi)的地址meml的指令。
以上四個(gè)指令,根據(jù)讀出目的地址、寫入目的地址同時(shí)為I/O處理器的本地存貯器而指令0-0為Wait_Until_Next指令可理解,將I/O處理器的本地存貯器作為讀出目的地址一寫入目的地址的指令納入一個(gè)時(shí)隙。
圖10B表示W(wǎng)ait_Until_Next_Slot指令的指令格式示例。圖10B中,此指令具有圖7B中所示的寄存器指定型的算術(shù)運(yùn)算指令的指令格式。由指定此格式的11bit至13bit為“010”,使I/O處理器執(zhí)行Wait_Until_Next_Slot指令。
現(xiàn)參照圖12說明如以上構(gòu)成的第二實(shí)施形態(tài)的I/O處理器的時(shí)隙分配。
任務(wù)(1)~任務(wù)(5)中被分配四個(gè)周期的時(shí)隙。但在任務(wù)(0)中由于存在有Wait_Until_Next指令,被分配給任務(wù)(0)的時(shí)隙為到達(dá)Wait_Until_Next指令被配置的位置為止,被分配到任務(wù)(0)的時(shí)隙為2個(gè)周期。
在任務(wù)(0)~任務(wù)(5)輪流一周后形成的下一幀中,任務(wù)(1)與其他任務(wù)同樣分配四周期的時(shí)隙。
按照上述此實(shí)施形態(tài),能將以同一存貯作為訪問目的存貯器訪問指令集中在一個(gè)時(shí)隙中執(zhí)行。
(第三實(shí)施形態(tài))在第一實(shí)施形態(tài)中,由于是與應(yīng)起動(dòng)異步事件任務(wù)的事件是否成立無關(guān)地公開地對6個(gè)異步事件任務(wù)分配時(shí)隙,不必須起動(dòng)的異步事件任務(wù)與有此必要起動(dòng)的異步事件任務(wù)實(shí)際上是同時(shí)地隨意的不平等的。第三實(shí)施形態(tài)對異步事件任務(wù)進(jìn)行應(yīng)起動(dòng)異步事件任務(wù)的事件是否成立的檢驗(yàn),對應(yīng)起動(dòng)的事件來成立的任務(wù)進(jìn)行使得削減周期分配數(shù)的控制。
圖13中表示第三實(shí)施形態(tài)中的I/O處理器的內(nèi)部結(jié)構(gòu)。圖13中,在I/O處理器設(shè)置指令存貯器100、指令讀出電路10這方面與第一實(shí)施形態(tài)沒有不同。第三實(shí)施形態(tài)中新穎之處在于,指令譯碼控制單元11和運(yùn)算執(zhí)行單元14各自被替換為指令譯碼控制單元81和運(yùn)算執(zhí)行單元84。還另外加有7個(gè)狀態(tài)監(jiān)視寄存器,在任務(wù)管理單元15的內(nèi)部還設(shè)置有任務(wù)管理寄存器13。
7個(gè)狀態(tài)監(jiān)視寄存器CR1~CR7分別為5位長的寄存器,在AV譯碼器內(nèi)部與位于I/O處理器的周邊的構(gòu)成部件即圖形輸出單元108、緩沖存貯器控制器110、RAM控制器111、FIF0控制器112等的構(gòu)成部件相連接,I/O處理器的周邊部分的5個(gè)事件的成立與否被反映在各個(gè)bit上(因?yàn)榕c圖形輸出單元108、緩沖存貯器控制器110、RAM控制器111、FIF0控制器112的連接很復(fù)雜,所以其圖示省略)。
作為舉例現(xiàn)參照圖17說明狀態(tài)監(jiān)視寄存器CR1、CR2和CR3。圖17表示狀態(tài)監(jiān)視寄存器CR1、CR2和CR3的位結(jié)構(gòu)。
狀態(tài)監(jiān)視寄存器CR1的第0bot通常被設(shè)定為“0”,僅在緩沖存貯器母線121中進(jìn)行規(guī)定次數(shù)的向緩沖存貯器102傳送數(shù)據(jù)時(shí)才被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR1的第1bit通常被設(shè)定為“0”,僅在檢測到緩沖存貯器母線121中輸出的MPEG數(shù)據(jù)流的起始碼時(shí)才被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR1的第2bit通常被設(shè)定為“0”,僅在確認(rèn)緩沖存貯器母線121上輸出的MPEG數(shù)據(jù)流中存在有1字節(jié)以上的有效數(shù)據(jù)時(shí)才被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR1的第3bit通常被設(shè)定為“0”,僅在緩沖存貯器102中存在緩沖有效位3個(gè)字節(jié)以上時(shí)被設(shè)定為“1”。此bit被用于分析任務(wù)、音頻數(shù)據(jù)流傳送控制任務(wù)、動(dòng)畫數(shù)據(jù)流控制任務(wù)之間的通信。
狀態(tài)監(jiān)視寄存器CR2的第0bit通常被設(shè)定為“0”,如果緩沖存貯器102上發(fā)生要支援向SDRAM300傳送的請求即被設(shè)定為“1”。此bit用于分析任務(wù)、音頻數(shù)據(jù)流傳送控制任務(wù)、動(dòng)畫數(shù)據(jù)流傳送控制任務(wù)之間的通信。
狀態(tài)監(jiān)視寄存器CR2的第1bit通常被設(shè)定為“0”,僅在DMA轉(zhuǎn)送結(jié)束時(shí)被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR2的第2bit通常被設(shè)定為“0”,僅在出現(xiàn)對位流FIF0103的傳送請求時(shí)才被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR2的第3bit通常被設(shè)定為“0”,如果FIF0控制器112內(nèi)部的控制寄存器被更新,則設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CP3的第0bit通常被設(shè)定為“0”,如緩沖存貯器102成為DMA-READY狀態(tài)則被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR3的第1bit通常被設(shè)定為“0”,如向SDRAM300的DMA傳送結(jié)束則被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR3的第2bit通常被設(shè)定為“0”,在外部連接的顯示裝置的水平回掃線信號(hào)的下降沿被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CP3的第3bit,通常被設(shè)定為“0”,在外部連接的顯示裝置中的視頻信號(hào)到達(dá)消隱期間即被設(shè)定為“1”。
狀態(tài)監(jiān)視寄存器CR3的第bit通常被設(shè)定為“0”,僅在發(fā)生對圖形輸出任務(wù)的處理請求時(shí)才被設(shè)定為“1”。
上述這樣的3個(gè)狀態(tài)監(jiān)視寄存器表明AV譯碼器內(nèi)的各緩存器和控制器的控制狀態(tài)。其他的狀態(tài)監(jiān)視寄存器也相同,利用7個(gè)狀態(tài)監(jiān)視寄存器I/O處理器能監(jiān)視各異步事件任務(wù)作為其自身的起動(dòng)要素的各種事件是否成立。
運(yùn)算執(zhí)行單元84為具有與運(yùn)算執(zhí)行單元14同樣的功能的結(jié)構(gòu)。與運(yùn)算執(zhí)行單元14比較,第一新穎處在于,由指令譯碼控制單元81接收被加給稱為CR1~CR7的各狀態(tài)監(jiān)視寄存器的序號(hào)和立即值,進(jìn)行為將被指定的狀態(tài)監(jiān)視寄存器的保存值與接收到的立即值作比較的減法運(yùn)算。按照此減法運(yùn)算結(jié)果,使零標(biāo)記、進(jìn)位標(biāo)記成為ON/OFF來對指令譯碼控制單元81通報(bào)狀態(tài)監(jiān)視寄存器的保持值與立即值為一致、不一致、大小。
上述通報(bào)中,指令譯碼控制單元81能輸出內(nèi)容為使當(dāng)前執(zhí)行中的運(yùn)算無效的信號(hào),一旦接收到此信號(hào),運(yùn)算執(zhí)行單元84即中斷向通用寄存器存貯值。
指定譯碼控制單元81作成具有與指令譯碼控制單元11相同功能的結(jié)構(gòu),但與指令譯碼控制單元11不同的是,指令譯碼控制單元81由指令存貯器100讀出能形成事件等待循環(huán)的指令,在對之進(jìn)行譯碼時(shí)將加給稱做CR1~CR7的各狀態(tài)監(jiān)視寄存器的序號(hào)和立即值輸出到運(yùn)算執(zhí)行單元84。構(gòu)成事件等待循環(huán)的指令是下面(例1)所含的內(nèi)容。在對運(yùn)算執(zhí)行單元84輸出狀態(tài)監(jiān)視寄存器的指定和立即值之后,運(yùn)算執(zhí)行單元84利用零標(biāo)記、進(jìn)位標(biāo)記向指令譯碼控制單元81通報(bào)保存值與立即值的一致、不一致、大小,指令譯碼控制單元81即參照這些,如果被通報(bào)保存值與立即值不一致,即輸出表明事件不成立的信號(hào)給任務(wù)管理寄存器13,輸出使此下一指令的執(zhí)行結(jié)果無效的信號(hào)到運(yùn)算執(zhí)行單元84將使得不予先前進(jìn)到讀出目的地址值通知指令讀出電路10。如被通知保存值與立即值不一致,即輸出表示事件成立的信號(hào)到任務(wù)管理寄存器13。
(例1)指令判定事件ⅰ的成立的真假,如事件ⅰ成立為假,不予先進(jìn)到讀出目的地址。
此指令的助記符在(例2)中表明。
(例2)cmp_and_Wait cr_statei,立即值(例2)中第一操作數(shù)中記述了cr_statei(i=0,1,2,3…7),意味著可指示I/O處理器中的7個(gè)狀態(tài)監(jiān)視寄存器中的任一個(gè)。
將此第一操作數(shù)中指定的狀態(tài)監(jiān)視寄存器與第二操作數(shù)中指定的立即值加以組合,能確認(rèn)35個(gè)事件中任意一個(gè)是否成立。上述指令在后面的說明中稱之為Cmp_And_Wait指令。上述的事件等待循環(huán)按照在此Cmp_And_Wait指令的第一操作數(shù)、第二操作數(shù)中對指定事件的成立與否判斷為n次和否定發(fā)生,自不必說。
圖14A表示第三實(shí)施例中加以變更的指令讀出電路10的結(jié)構(gòu)。圖14A中在指令讀出電路10設(shè)置IF1+1保存單元20、增量電路21、IF2保存單元22、DECPC保存單元23、任務(wù)各別PC存貯單元24、選擇器25、選擇器26,這與第一實(shí)施例無差異。指令讀出電路10中的新穎之處是,被連接到DECPC保存單元23的輸出級的觸發(fā)器27。
觸發(fā)器27在Cmp_And_Wait指令指定的事件不成立時(shí)設(shè)定,按指令譯碼控制單元81能輸出譯碼中的指令的讀出目的地址到選擇器25以保存DFCPC保存單元23的值。如果指令譯碼控制單元11給出要返回程序計(jì)數(shù)值的指示,觸發(fā)器27通過⑤的信號(hào)線將其保存的值輸出到選擇器25,選擇器25把觸發(fā)器27的保存值存貯進(jìn)任務(wù)各別PC存貯單元24,將任務(wù)各別PC存貯單元24的輸入起源轉(zhuǎn)換到⑤的信號(hào)線。第三實(shí)施形態(tài)中的指令讀出電路的輸出邏輯表如圖14B所示。
圖19A為針對Cam_And_Wait指令譯碼時(shí)的幀中的I/O處理器的結(jié)構(gòu)部件的定時(shí)圖,說明此定時(shí)圖中的觸發(fā)器27所承擔(dān)的任務(wù)。
圖19A中,在觸發(fā)器27將作為保存值的相當(dāng)于Cam_And_Wait指令的地址的指令0-0的地址如參照符號(hào)a7所示輸出時(shí),指令0-0的地址即被作為IPC0存貯進(jìn)任務(wù)各別PC存貯單元24。由此,任務(wù)各別PC存貯單元24中即存貯有作為IPCO的Cmp_And_Wait指令的地址。
本實(shí)施形態(tài)中的任務(wù)管理單元15的內(nèi)部結(jié)構(gòu)示于圖15。
圖15所示的任務(wù)管理寄存器13是被分配為分別管理陷入事件等待循環(huán)(后面稱為Wait狀態(tài))的任務(wù)的bit的寄存器。任務(wù)管理寄存器13在由指令譯碼控制單元81通知表明事件不成立的信號(hào)時(shí),即參照任務(wù)ID保存單元72保存的任務(wù)標(biāo)識(shí)符taskid將對應(yīng)于其任務(wù)標(biāo)識(shí)符taskid的bit轉(zhuǎn)換為“1”。相反,在被通知表明事件成立的信號(hào)時(shí),則參照任務(wù)ID保存單元72保存的任務(wù)標(biāo)識(shí)符taskid,將對應(yīng)于其任務(wù)標(biāo)識(shí)符taskid的bit轉(zhuǎn)換為“0”。
圖16表示任務(wù)管理寄存器13中的wait狀態(tài)任務(wù)的管理用bit的構(gòu)成。此圖中,如第0bit為“1”,即表明任務(wù)(0)為Wait狀態(tài),如第0bit為“0”則表明任務(wù)(0)不是這樣。
此圖中,如第1bit為“1”,表明任務(wù)(1)為Wait狀態(tài),第1bit如為“0”則表明任務(wù)(1)不是這樣。任務(wù)管理寄存器13的第2bit如為“1”,表明任務(wù)(2)為Wait狀態(tài),如第2bit為“0”則表明任務(wù)(2)不是這樣。借助由任務(wù)管理寄存器13對事件等待循環(huán)的管理,就能分別管理多個(gè)任務(wù)中同時(shí)發(fā)生多個(gè)的事件等待循環(huán)。
在圖19A的定時(shí)圖中,在指令0-0被譯碼為Cmp_And_Wait指令時(shí),即認(rèn)為是判定事件不成立。此時(shí),指令譯碼控制單元81如參照符號(hào)a8中所示通知任務(wù)(0)為事件成立等待狀態(tài)的內(nèi)容。為此,任務(wù)管理寄存器13如參照符號(hào)a9所示將對應(yīng)于任務(wù)(0)的任務(wù)標(biāo)識(shí)符的bit設(shè)定為“1”。
下面參照定時(shí)圖說明“事件成立等待時(shí)”、“事件成立時(shí)”、“事件成立時(shí)以后”中如伺設(shè)定分配給任務(wù)管理寄存器13的各個(gè)bit。
圖19B表明事件成立等待時(shí)、圖19C表明事件成立時(shí)、圖19D表明事件成立以后時(shí)的定時(shí)圖。
任務(wù)(0)中的Cmp_And_Wait指令認(rèn)為等待成立的事件在圖19C中成立。此時(shí),指令譯碼控制單元81如參照符號(hào)d1所示通知事件成立的內(nèi)容。這樣,任務(wù)管理寄存器13即如參照符號(hào)d2所示將對應(yīng)于任務(wù)(0)的任務(wù)標(biāo)識(shí)符的bit設(shè)定為“0”。
參看圖15說明第三實(shí)施形態(tài)中的時(shí)隙管理器61的內(nèi)部結(jié)構(gòu)。時(shí)隙管理器61中在設(shè)置觸發(fā)器51、計(jì)數(shù)器52、比較器54這方面與第一實(shí)施例無差異。圖15中的新穎點(diǎn)在于ID變換器53和選擇器55。
ID變換器53,在任務(wù)ID保存單元72中被輸出到應(yīng)分配以下一時(shí)隙的任務(wù)的標(biāo)識(shí)符時(shí),即判定在任務(wù)管理寄存器13中被設(shè)定為Wait狀態(tài)的任務(wù)與應(yīng)分配以下一時(shí)隙的任務(wù)標(biāo)識(shí)符taskid是否一致,如果一致即輸出高電平值到選擇器55,如不一致則輸出低電平值到選擇器55。
選擇器55按照ID變換器53輸出的信號(hào)的高電平值、低電平值加以選擇將“2”或“4”的數(shù)值輸出給比較器54。圖19A中應(yīng)分配以下一時(shí)隙的任務(wù)為任務(wù)(0),由于參照符號(hào)a10中選擇器55被輸出給低電平值,所以如參照符號(hào)a12選擇器55輸出“4”到比較器54。但在圖19A的參照符號(hào)a9中有關(guān)任務(wù)(0)的bit被設(shè)定為“1”,如圖19B的參照符號(hào)g1中所示選擇器55中被輸出為高電平值時(shí),選擇器55即如參照符號(hào)g2所示輸出“2”到比較器54。
在圖19C的參照符號(hào)d2中,有關(guān)任務(wù)(0)的bit被設(shè)定為“0”,如圖19D參照符號(hào)g5所示選擇器55被輸出以高電平值時(shí),選擇器55即按參照符號(hào)g6所示輸出“4”到比較器54。
依靠選擇器55選擇輸出數(shù)值“2”或“4”到比較器54,將2周期的時(shí)隙、4周期的時(shí)隙中的某一個(gè)分配到各個(gè)任務(wù)。在選擇器55輸出“2”時(shí),由于使其第二個(gè)指令無效,結(jié)果就被分配以一個(gè)周期的時(shí)隙。
沿定時(shí)圖的時(shí)間軸,說明圖19A至圖19D的定時(shí)圖中所示的指令譯碼控制電路10的結(jié)構(gòu)要素和任務(wù)管理單元15的結(jié)構(gòu)要素的操作。
在初始狀態(tài),任務(wù)管理寄存器13的bit假定全部為零。這樣,在圖19A中開始由任務(wù)(0)讀出指令時(shí),由于有關(guān)任務(wù)(0)的bit在任務(wù)管理寄存器13中被設(shè)定為“0”,所以如參照符號(hào)a12所示選擇器55將“4”作為計(jì)數(shù)器的上限值輸出。因?yàn)橛?jì)數(shù)器的上限值被設(shè)定為“4”,所以是認(rèn)為以4個(gè)周期執(zhí)行任務(wù)(0),但由于指令0-0為Cmp_And_Wait指令,所以如參照符號(hào)a7所示在任務(wù)各別PC存貯單元24中寫入指令0-0的讀出目的地址。與此同時(shí),參照符號(hào)a8、a9所示在執(zhí)行Cmp_And_Wait指令時(shí)將任務(wù)管理寄存器13的第0bit設(shè)定為“1”。這樣的設(shè)定使任務(wù)(0)成為事件成立等待。在這樣設(shè)定bit后,任務(wù)(1)、任務(wù)(2)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5)的執(zhí)行完成時(shí)即移動(dòng)到下一幀。
在事件成立等待狀態(tài)中任務(wù)管理寄存器13的bit僅任務(wù)(0)為“1”,其他的bit均認(rèn)為是零。這樣,在圖19B中如開始由任務(wù)(0)讀出指令,有關(guān)任務(wù)(0)的bit在任務(wù)管理寄存器13中被設(shè)定為“1”,所以如參照符號(hào)82所示選擇器55輸出作為計(jì)數(shù)器的上限值的“2”。由于計(jì)數(shù)器的上限值被設(shè)定為“2”,要對任務(wù)“0”執(zhí)行2個(gè)周期,但由于指令0-0為Cmp_And_Wait指令,任務(wù)各別PC存貯單元24中寫入指令0-0的讀出目的地址。這樣寫入后,任務(wù)(1)至任務(wù)(5)的執(zhí)行完成即要轉(zhuǎn)移到下一幀。
在下一幀中認(rèn)為事件成立。如在圖19C中開始由任務(wù)(0)讀出指令,有關(guān)任務(wù)(0)的bit在任務(wù)管理寄存器13中被設(shè)定為“1”,所以如參照符號(hào)g4所示選擇器55輸出作為計(jì)數(shù)器的上限值的“2”。因計(jì)數(shù)器的上限值被設(shè)定為“2”,所以要對任務(wù)(0)執(zhí)行2個(gè)周期。
在作為指令0-0的Cmp_And_Wait指令執(zhí)行時(shí),因確認(rèn)事件成立,如參照符號(hào)d1、d2所示Cmp_And_Wait指令執(zhí)行時(shí)任務(wù)管理寄存器13的第0bit設(shè)定為“0”。由這種設(shè)定將任務(wù)(0)由事件成立等待中解放。這樣在bit設(shè)定后,任務(wù)(1)至任務(wù)(5)執(zhí)行完畢就要轉(zhuǎn)移到下一幀。
在圖19D所示的事件成立以后的幀中,有關(guān)任務(wù)(0)的bit在任務(wù)管理寄存器13中被設(shè)定為“0”,所以如參照符號(hào)g6所示選擇器55輸出作為計(jì)數(shù)器上限值的“4”。因計(jì)數(shù)器的上限值被設(shè)定為“4”,對任務(wù)(0)執(zhí)行4個(gè)周期。
下面參照圖18A~18D說明如上述構(gòu)成的第三實(shí)施形態(tài)I/0處理器進(jìn)行的時(shí)隙分配。
圖18A中任務(wù)(0)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5)任一個(gè)均為存貯器傳送控制任務(wù),假定其第一個(gè)指令為Cmb_And_Wait指令。這里在圖18B的狀態(tài)中,如假定這些Cmp_And_Wait指令排隊(duì)中的事件為未成立事件,任務(wù)(0)、任務(wù)(3)~任務(wù)(5)中分配2個(gè)周期的時(shí)隙,第二指令被無效化,則任務(wù)(1)、任務(wù)(2)中被分配4個(gè)周期的時(shí)隙。
圖18C中任務(wù)(0)~任務(wù)(5)輪流到哪一個(gè),認(rèn)為僅有任務(wù)(0)的Cmp_And_Wait指令等待的事件成立。這樣在該事件成立的幀中,任務(wù)(3)~任務(wù)(5)中仍然被分配2個(gè)周斯的時(shí)隙,第二指令被無效化,而任務(wù)(0)因事件成立故第二指令被執(zhí)行。
圖18D中在事件j0成立以后的幀中,任務(wù)(0)被分配以與任務(wù)(1)、任務(wù)(2)同樣的4個(gè)周期的時(shí)隙。
圖18E表示Cmp_And_Wait指令的指令格式示例。圖18E中,利用5bit至7bit的3個(gè)位可指定7個(gè)狀態(tài)監(jiān)視寄存器中的任何一個(gè),利用11bit至15bit可存放5位長的立即值。利用此格式的9bit和10bit可指定操作數(shù)的內(nèi)容。由將此二位為“10”,I/O處理器執(zhí)行Cmp_And_Wait指令的操作。而由指定此二位為“00”,I/O處理器執(zhí)行7個(gè)狀態(tài)監(jiān)視寄存器中的一個(gè)的值與5位的立即值的比較指令的操作。
采用上述實(shí)施例,依靠在等待可能訪問存貯器的狀態(tài)的存貯器傳送控制任務(wù)上分配較短時(shí)間長的時(shí)隙,而能提高其他任務(wù)的進(jìn)度。
(第四實(shí)施例)第四實(shí)施例是關(guān)于在顯示的水平消隱期間、垂直消隱期間對圖形輸出任務(wù)分配更多的時(shí)隙的技術(shù)。
進(jìn)行增加時(shí)隙的I/O處理器,以在第一實(shí)施形態(tài)中的任務(wù)管理單元15的構(gòu)成上加以圖2D~圖21所示的變更來實(shí)現(xiàn)。
第四實(shí)施形態(tài)中的I/O處理器設(shè)置有指令存貯器100、指令讀出電路10、指令譯碼控制單元81、運(yùn)算執(zhí)行單元84、任務(wù)管理單元15,這與第三實(shí)施形態(tài)無差異。第四實(shí)施形態(tài)中的新穎之處是在任務(wù)管理寄存器13監(jiān)視緊急狀態(tài)遷移許可信號(hào)iexecmode這一點(diǎn)上。
圖20表示第四實(shí)施形態(tài)中的任務(wù)管理單元15的內(nèi)部結(jié)構(gòu)。
圖20中的任務(wù)管理寄存器13中的3個(gè)位,利用任務(wù)管理寄存器13內(nèi)的3個(gè)位來指定須要緊急處理的任務(wù)的標(biāo)識(shí)符。該3個(gè)位中,在6個(gè)任務(wù)中的哪一個(gè)任務(wù)作緊急處理,按照上述緊急狀態(tài)遷移許可信號(hào)iexeemode為怎樣內(nèi)容的信號(hào)作適當(dāng)?shù)母淖儭1緦?shí)施例中,緊急狀態(tài)遷移許可信號(hào)iexecmode相當(dāng)于水平消隱期間、垂直消隱期間等,將圖形輸出任務(wù)的標(biāo)識(shí)符指定到任務(wù)管理寄存器13中的3個(gè)位。
將哪一任務(wù)作為需要作緊急處理的任務(wù)登記進(jìn)任務(wù)管理寄存器13,由任務(wù)管理寄存器13參照哪一任務(wù)中所含的emergecy(緊急)指令來確定。在指令譯碼控制器81對下一應(yīng)執(zhí)行指令進(jìn)行譯碼時(shí),如其譯碼結(jié)果為emergecy指令,任務(wù)管理寄存器13即將含有該指令的任務(wù)作為需要緊急處理的任務(wù)保存其標(biāo)識(shí)符。
圖21中表示第四實(shí)施形態(tài)中的調(diào)度器62的內(nèi)部結(jié)構(gòu)。圖21中調(diào)度器62設(shè)置有任務(wù)ID保存單元72,這與第一實(shí)施形態(tài)無異。圖21中的新穎處在于任務(wù)循環(huán)管理單元73和優(yōu)先編碼單元74分別為任務(wù)循環(huán)管理單元75和優(yōu)先編碼單元80所置換。還在于另外加有變換器76、緊急任務(wù)屏蔽單元77和任務(wù)ID保存單元83。
任務(wù)循環(huán)管理單元75與任務(wù)循環(huán)管理單元73不同處是任務(wù)循環(huán)管理單元73監(jiān)視任務(wù)ID保存單元71中任務(wù)標(biāo)識(shí)符被如何更新,利用6位長的寄存器來管理6個(gè)任務(wù)中的時(shí)隙分配的完成,而與之相對地,任務(wù)循環(huán)管理單元75在區(qū)分為通常期間內(nèi)的任務(wù)管理和緊急期間內(nèi)的通常任務(wù)的管理的前題下進(jìn)行對完成時(shí)隙分配的任務(wù)的管理。例如,在任務(wù)管理寄存器13中以交錯(cuò)方式執(zhí)行任務(wù)(1)時(shí),就成為6個(gè)任務(wù)中的5個(gè)任務(wù)進(jìn)行任務(wù)(0)、任務(wù)(2)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5)這樣的巡回。
如上述對5個(gè)任務(wù)進(jìn)行巡回時(shí),表明執(zhí)行完畢的任務(wù)的循環(huán)值就有必要在任務(wù)管理寄存器13中以被管理的緊急任務(wù)刪除的數(shù)值來表達(dá)。這樣,任務(wù)循環(huán)管理單元75為管理緊急任務(wù)刪除的循環(huán)值,與循環(huán)值taskn不同地將緊急任務(wù)刪除的循環(huán)值taskne輸出給緊急任務(wù)屏蔽單元77。順便說一下,taskne的“ne”是來自“Not”和“Emergency”的頭字母。
變換器76將任務(wù)管理寄存器13中被管理中的緊急任務(wù)的標(biāo)識(shí)符變換成6位的循環(huán)值emgcytask。
緊急任務(wù)屏蔽單元77設(shè)置有由變換器76變換的循環(huán)值emgcytask與任務(wù)循環(huán)管理單元75輸出的循環(huán)值taskne的6位長的邏輯和的“或”電路78。
這里,在“或”電路78中取邏輯和就是表明要計(jì)算出含有循環(huán)值taskne和表示緊急任務(wù)的循環(huán)值兩者的6位長的循環(huán)值。例如,循環(huán)值taskne是表示時(shí)隙被分配到任務(wù)(0)、任務(wù)(2)、任務(wù)(3)的“001101”,循環(huán)值emgcytask是表示緊急任務(wù)為任務(wù)(1)的“000010”時(shí),“或”電路78的輸出就成為表示時(shí)隙被分配到任務(wù)(0)、任務(wù)(1)、任務(wù)(2)、任務(wù)(3)的“001111”。
優(yōu)先編碼器80除優(yōu)先編碼器74的功能外,還接收任務(wù)循環(huán)管理單元75輸出的循環(huán)值taskne(循環(huán)值maskne),檢測所接收的任務(wù)循環(huán)管理單元73的循環(huán)值taskne(循環(huán)值maskne)中第n bit發(fā)生由“1”向“0”的翻轉(zhuǎn)。在檢測到向“0”翻轉(zhuǎn)的bit時(shí),即將分配到產(chǎn)生此翻轉(zhuǎn)的bit的任務(wù)的任務(wù)標(biāo)識(shí)符taskid分別各個(gè)地存貯進(jìn)任務(wù)保存單元83。
例如,當(dāng)作為緊急任務(wù)的循環(huán)值與循環(huán)值taskne的邏輯和的循環(huán)值maskne“000111”被由緊急任務(wù)屏蔽單元77輸出時(shí),優(yōu)先編碼器80檢測此循環(huán)值maskne中由下位開始的第3bit中的向“0”產(chǎn)生的翻轉(zhuǎn)。此第3bit為圖6B中被分配到任務(wù)(3)的bit,所以優(yōu)先編碼器80將任務(wù)(3)的任務(wù)標(biāo)識(shí)符taskid輸出給選擇器82。
cstate存貯單元85存貯表明I/O處理器為通常狀態(tài)還是緊急狀態(tài)的標(biāo)記cstate。圖23為cstate存貯單元85存貯的標(biāo)記的狀態(tài)遷移圖。此圖中,由通常狀態(tài)向緊急狀態(tài)的遷移在緊急狀態(tài)遷移許可信號(hào)iexecmode為高電平,且任務(wù)轉(zhuǎn)換信號(hào)chg_task也為高電平值時(shí)進(jìn)行。相反,由緊急狀態(tài)向通常狀態(tài)的遷移則在任務(wù)轉(zhuǎn)換信號(hào)chg_task也為高電平值時(shí)進(jìn)行。圖24為表示緊急狀態(tài)遷移許可信號(hào)iexecmode、任務(wù)轉(zhuǎn)換信號(hào)chg_task、cstate間的定時(shí)的定時(shí)圖。
在iexecmode信號(hào)上升為高電平的定時(shí)a30如參照符號(hào)a31所示任務(wù)轉(zhuǎn)換信號(hào)chg_task為高電平值。這樣,cstate即如參照符號(hào)a32所示為高電平遷移到緊急狀態(tài)。在任務(wù)轉(zhuǎn)換信號(hào)chg_task如參照符號(hào)a33所示再次為高電平時(shí),cstate即如參照符號(hào)a34所示為低電平值返回到通常狀態(tài)。這樣,由緊急狀態(tài)向通常狀態(tài)的遷移、由通常狀態(tài)向緊急狀態(tài)的遷移重復(fù)進(jìn)行。
選擇器82,在所輸入的緊急狀態(tài)遷移許可信號(hào)iexecmode為高電平、且cstate如參照符號(hào)a32所示為高電平時(shí)(cstate的逆直值cstate!如參照符號(hào)a35所示為低電平時(shí)),選擇任務(wù)管理寄存器13中所存貯的任務(wù)標(biāo)識(shí)符taskid輸出到任務(wù)ID保存單元72。在其他情況下,選擇由作為優(yōu)先編碼器80的輸出的循環(huán)值maskne變換的任務(wù)標(biāo)識(shí)符taskidne輸出給任務(wù)ID保存單元72。圖22表示選擇器82中的taskide的真值表。
這樣,選擇器82按照緊急狀態(tài)遷移許可信號(hào)iexecmode的高電平/低電平期間將由循環(huán)值maskne變換的任務(wù)標(biāo)識(shí)符taskidne與緊急任務(wù)的標(biāo)識(shí)符轉(zhuǎn)換輸出,就意味著按照緊急狀態(tài)遷移許可信號(hào)iexecmode的高電平/低電平期間,將緊急任務(wù)刪除的某一任務(wù)與緊急任務(wù)轉(zhuǎn)換地存貯進(jìn)任務(wù)ID保存單元72。
例如,如假定任務(wù)(1)為緊急任務(wù),選擇器82就作為緊急任務(wù)刪除的任務(wù)標(biāo)識(shí)符按任務(wù)(0)、任務(wù)(2)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5)輸出任務(wù)標(biāo)識(shí)符。
在通常狀態(tài)中,如圖25A中所示,因?yàn)橛蛇x擇器82輸出緊急任務(wù)刪除的某一任務(wù),所以就按任務(wù)(0)、任務(wù)(2)、任務(wù)(3)、任務(wù)(4)、任務(wù)(5),分配給任務(wù)(1)的時(shí)隙為0周期。
在緊急狀態(tài)中,如圖25B所示,因?yàn)橛蛇x擇器82選擇輸出緊急任務(wù)刪除的某一任務(wù)和緊急任務(wù),所以就象任務(wù)(0)、任務(wù)(1)、任務(wù)(2)、任務(wù)(1)、任務(wù)(3)、任務(wù)(1)、任務(wù)(4)、任務(wù)(1)、任務(wù)(5)、任務(wù)(1)這樣,任務(wù)(1)以二次中一次的比率被分配時(shí)隙。在由選擇器82輸出緊急狀態(tài)中的任務(wù)標(biāo)識(shí)符時(shí),任務(wù)執(zhí)行巡回到任務(wù)(1)為每二次中一次概率換算即為1/2。
這樣的1/2的概率為通常執(zhí)行概率的3倍所以是很高的概率,從而使緊急任務(wù)能以非常高的速度執(zhí)行。
按照上述這一實(shí)施形態(tài),能在水平消隱期間、垂直消隱期間僅優(yōu)先地執(zhí)行圖形輸出任務(wù)。
在此期間如將動(dòng)畫數(shù)據(jù)變換成視頻信號(hào),就能在顯示器的顯示期間之前恰當(dāng)?shù)靥幚泶艘曨l信號(hào)。
而且在第四實(shí)施形態(tài)的結(jié)構(gòu)中,因?yàn)閮?yōu)先執(zhí)行緊急任務(wù),雖然產(chǎn)生了緊急任務(wù)之外的任務(wù)的執(zhí)行頻率降低這樣的弊端,但也可以設(shè)置予防這一點(diǎn)的防止機(jī)構(gòu)。作為其防止機(jī)構(gòu)的是在任務(wù)管理寄存器中存貯為“必須維持最低足夠限度的執(zhí)行速度”的特權(quán)任務(wù)(稱做例外任務(wù))的標(biāo)識(shí)符,對此例外任務(wù),將除執(zhí)行回指令的任務(wù)轉(zhuǎn)換條件之外的內(nèi)容的信號(hào)每次輸出給時(shí)隙管理器61。
時(shí)隙管理器61內(nèi)的比較器54在接收到此內(nèi)容的信號(hào)時(shí)延遲規(guī)定時(shí)間輸出轉(zhuǎn)換信號(hào)。這里的規(guī)定時(shí)間的時(shí)間長度為因緊急任務(wù)優(yōu)先而造成的取回任務(wù)的滯后程度的時(shí)間長。依靠這樣的推遲規(guī)定時(shí)間的任務(wù)轉(zhuǎn)換信號(hào)的輸出,而能作超過4指令地進(jìn)行例外任務(wù)的處理、取回伴隨緊急任務(wù)插入的處理的延遲。
本實(shí)施形態(tài)雖然是對與外部輸入的特定信號(hào)同步地高速化執(zhí)行特定任務(wù)的描述,但也可以由特定指令確定高速執(zhí)行的任務(wù)。狀態(tài)監(jiān)視寄存器CR2的第3bit通常被設(shè)定為“0”,在外部連接的顯示裝置中的視頻信號(hào)為回掃期間即被設(shè)定為“1”,所以將狀態(tài)監(jiān)視寄存器CR2和立即值指定為操作數(shù),在圖形輸出任務(wù)上配置判定它們一致、不一致內(nèi)容的CMP指令,僅在對此指令的運(yùn)算的執(zhí)行結(jié)果為真時(shí)才高速執(zhí)行圖形輸出任務(wù),這樣也能達(dá)到目的。還可以用指令的操作數(shù)來指定需要作緊急處理的任務(wù)。
雖然是由緊急任務(wù)刪除的循環(huán)值taskne指定應(yīng)以通常狀態(tài)執(zhí)行的任務(wù),但也可以通常狀態(tài)執(zhí)行緊急任務(wù)。
(第五實(shí)施形態(tài))第五實(shí)施形態(tài)為利用任務(wù)相互間的結(jié)合以便能提高任務(wù)的巡回效率的實(shí)施形態(tài)。
這里任務(wù)相互的結(jié)合是指在特定時(shí)期到來之前時(shí)隙分配無用地結(jié)束的任務(wù)自行前進(jìn)到進(jìn)入休眠狀態(tài),而由其他任務(wù)解除休眠狀態(tài)。而后被委以解除工作的任務(wù)即等待應(yīng)解除其休息狀態(tài)的時(shí)期的到來,若到達(dá)即解除此特定任務(wù)的休眠狀態(tài)。
任務(wù)的休眠在多個(gè)任務(wù)中既有同時(shí)多個(gè)發(fā)生的情況,也有全都不發(fā)生的情況。要能個(gè)別地管理陷入休眠狀態(tài)的任務(wù),在第五實(shí)施例中在任務(wù)管理寄存器13中分配用于管理輸入到休眠(Sleep狀態(tài))的任務(wù)的bit。
圖26為第五實(shí)施形態(tài)中的任務(wù)管理單元15的構(gòu)成,圖27是表明任務(wù)管理寄存器13的bit結(jié)構(gòu)和這些各個(gè)bit作怎樣的標(biāo)記功能的說明圖。圖中任務(wù)管理器存器13的第0bit如為“0”,表示將任務(wù)(0)作為Sleep狀態(tài)處理,如第0bit為“1”則表示任務(wù)(0)不是這樣。
任務(wù)管理寄存器13的第1bit如為“0”表示任務(wù)(1)作為Sleep狀態(tài)處理,如第1bit為“1”,則任務(wù)(1)不這樣。任務(wù)管理寄存器13的第2bit如為“0”;表示任務(wù)(2)作為Sleep狀態(tài)處理,如第2bit為“1”則任務(wù)(2)不這樣。依靠任務(wù)對這些bit的轉(zhuǎn)換,或者使自己成為休眠狀態(tài),或者解除其他任務(wù)的休眠狀態(tài)。
任務(wù)管理寄存器13的位操作由下面的(例3)、(例4)中表示助記符的指令進(jìn)行。
(例3)Sleep_task(例4)Wake_task task(k)(例3)中“Sleep_task指令”為使自身成為Sleep狀態(tài)的指令。(例4)中“Wake_task指令”能由第1操作數(shù)指定6個(gè)任務(wù)中任一個(gè)的標(biāo)識(shí)符。依靠將這樣的二種指令配置到各任務(wù)中來交互地進(jìn)行各任務(wù)的休眠狀態(tài)的轉(zhuǎn)移和將其解除。而在Sleep_task指令中也可作成由第一操作數(shù)指定其他的任務(wù)。
圖28表示第四實(shí)施狀態(tài)中的調(diào)度器62的內(nèi)部構(gòu)成。圖28中調(diào)度器62設(shè)置有任務(wù)ID保存單元71、任務(wù)保存單元72、任務(wù)循環(huán)管理單元73、優(yōu)先編碼器74,這與第一實(shí)施形態(tài)無異。此圖中的新穎處在于由反相器94和“或”電路95組成的任務(wù)跳越管理電路93。
任務(wù)跳越管理電路93由在任務(wù)管理寄存器13中將被分配的6個(gè)位翻轉(zhuǎn)為Sleep狀態(tài)的反相器94,和取被翻轉(zhuǎn)的6個(gè)位與由任務(wù)循環(huán)管理單元73輸出的循環(huán)值Laskn的邏輯和的“或”電路95組成。這里,在任務(wù)(0)、任務(wù)(1)、任務(wù)(2)執(zhí)行完成時(shí)由任務(wù)循環(huán)管理單元73輸出“000111”的循環(huán)值Taskn,并假定任務(wù)管理寄存器13中將任務(wù)(3)設(shè)定為Sleep狀態(tài)。這時(shí),任務(wù)管理寄存器13的Sleep bit為“110111”,由反相器94輸出其翻轉(zhuǎn)值“001000”。由反相器94得到的翻轉(zhuǎn)值“001000”與循環(huán)值taskn“000111”的邏輯和為“001111”。在將此邏輯和輸出到優(yōu)先編碼器74時(shí),檢測到第4bit由“1”向“0”進(jìn)行的翻轉(zhuǎn),而將任務(wù)(4)的標(biāo)識(shí)符輸出給任務(wù)ID保存單元71和任務(wù)ID保存單元72。在任務(wù)(4)的標(biāo)識(shí)符被輸出后,即以任務(wù)(0)、任務(wù)(1)、任務(wù)(2)、任務(wù)(4)的順序來加以執(zhí)行。
圖29A為將Sleep指令作為指令1-1、2-1、3-1其內(nèi)部具有的異步事件任務(wù)示例,圖30為表明圖29A的異步事件任務(wù)怎樣執(zhí)行的定時(shí)圖。在Sleep指令如圖30中所示作為指令1-1并被作異步事件任務(wù)的第一個(gè)指令加以存貯時(shí),此指令1-1被存放在DECPC保存單元23中,當(dāng)由指令譯碼單元11譯碼時(shí),選擇器25通過①信號(hào)線將指令1-2的讀出目的地址存進(jìn)任務(wù)各別PC存貯單元。此后指令詳碼單元11將指令1-2、1-3無效化(圖11中的“NOP”)。
圖29B表示Sleep指令和Wake指令的指令格式的示例。圖29B中,此指令具有圖7B中所示寄存器指定型的算術(shù)運(yùn)算指令的指令格式。依靠將此格式的11bit至13bit指定為“010”,I/O處理器即執(zhí)行Sleep指令的操作。而由將本格式的11bit至13bit指定為“011”,I/O處理器即執(zhí)行Wake指令的操作。
現(xiàn)參照圖31A~31D說明采用如上述構(gòu)成的第五實(shí)施形態(tài)的I/O處理器進(jìn)行的時(shí)隙分配。
假定任務(wù)(1)為分析任務(wù),任務(wù)(3)為主I/O任務(wù),任務(wù)(1)、(2)、(3)的第一個(gè)指令均為Sleep指令。任務(wù)(0)、(4)、(5)上被分配以4個(gè)周期的時(shí)隙,但圖31A中的任務(wù)(1)、(2)、(3)因?yàn)樽鳛榈谝粋€(gè)指令存貯的是Sleep指令所以被分配以2個(gè)周期的時(shí)隙。
Sleep指令執(zhí)行后,在下一幀中如圖31B所示,被分配到任務(wù)(1)、(2)、(3)的時(shí)隙為0周期。
任務(wù)(0)為起動(dòng)期間傳送控制較長位流的任務(wù),在任務(wù)(0)中假定第一個(gè)是存貯針對任務(wù)(3)的Wake指令。這樣,如圖31C中所示,在下一幀中由譯碼此Wake指令而在任務(wù)(3)中分配以4個(gè)周期的時(shí)隙。
在任務(wù)(0)中假定第14個(gè)存貯的是針對任務(wù)(1)的Wake指令。這樣,如圖31D中所示,由在下一幀中譯碼此Wake指令而在任務(wù)(1)上分配以4個(gè)周期的時(shí)隙。
按照上述的此實(shí)施形態(tài),分析任務(wù)、主I/O任務(wù)等應(yīng)起動(dòng)的期間被限定的任務(wù)自行進(jìn)入休眠狀態(tài),將休眠任務(wù)的解除委托給起動(dòng)期間較長的傳送控制任務(wù),這樣就能提高任務(wù)巡回的效率。
(第六實(shí)施形態(tài))第六實(shí)施形態(tài)是有關(guān)與第三實(shí)施形態(tài)中的wait狀態(tài)、第四實(shí)施形態(tài)中的緊急任務(wù)控制、第五實(shí)施形態(tài)中的休眠任務(wù)控制共存的技術(shù)。
圖32是將wait狀態(tài)、emgcy狀態(tài)、sleep狀態(tài)的管理匯總到任務(wù)管理寄存器13的各bit上。時(shí)隙管理器61和調(diào)度器62參照這樣匯總在任務(wù)管理寄存器13上的Wait狀態(tài)、emgcy狀態(tài)、Sleep狀態(tài)來進(jìn)行下一任務(wù)的確定和任務(wù)的下一時(shí)隙上分配指令數(shù)的增減。
圖33為能使緊急任務(wù)控制和Sleep狀態(tài)控制共存而構(gòu)成的調(diào)度器62的結(jié)構(gòu)圖。圖33中,調(diào)度器62由任務(wù)ID保存單元72、任務(wù)循環(huán)管理單元75、變換器76、緊急任務(wù)屏蔽單元77、優(yōu)先編碼器80、選擇器82、任務(wù)ID保存單元83構(gòu)成,這與第四、第五實(shí)施形態(tài)無不同。此圖中,新加有取任務(wù)循環(huán)管理單元75的輸出與由反相器94翻轉(zhuǎn)循環(huán)值taskne的循環(huán)值的邏輯和的“或”電路96,將其結(jié)果輸出給優(yōu)先編碼器80。
優(yōu)先編碼器80將“或”電路96輸出的循環(huán)值變換成任務(wù)標(biāo)識(shí)符,輸出到任務(wù)ID保存單元72和任務(wù)ID保存單元83。
按照上面的實(shí)施形態(tài),依靠使得第四實(shí)施形態(tài)中的緊急任務(wù)控制和第五實(shí)施形態(tài)中的Sleep狀態(tài)任務(wù)控制共存,能實(shí)現(xiàn)富有更靈活的任務(wù)調(diào)度器。
下面參照流程表說明第一~第五實(shí)施形態(tài)中所示的I/D處理器的整個(gè)控制。
圖34為表示第一實(shí)施形態(tài)中I/O處理器的整個(gè)控制的流程圖。圖中,“變數(shù)k”為用于指示指令存貯器100中所存貯的6個(gè)異步事件任務(wù)的變數(shù),對應(yīng)于任務(wù)ID保存單元71和任務(wù)ID保存單元72保存的任務(wù)標(biāo)識(shí)符taskid?!白償?shù)ⅰ”為用于指示各自的任務(wù)中包含的指令執(zhí)行對該指令在相關(guān)時(shí)隙中第n個(gè)被執(zhí)行的變數(shù),對應(yīng)于由計(jì)數(shù)器52所計(jì)數(shù)的計(jì)數(shù)值。“變數(shù)adr”為表示任務(wù)各別PC存貯單元24中存貯的各個(gè)任務(wù)的讀出目的地址的變數(shù)。
圖39表示由圖34的流程圖確定的時(shí)隙間的遷移圖。圖39中,縱方向向下為時(shí)間軸,以包含4個(gè)長方形的粗邊線圍繞的四角形為時(shí)隙。由圖34的流程圖中的變數(shù)k個(gè)別地指明。粗邊線內(nèi)的一個(gè)各四角形表示執(zhí)行一個(gè)指令的周期,這些指令由變數(shù)ⅰ指明。步驟S1,上述任務(wù)ID保存單元71輸出零的任務(wù)標(biāo)識(shí)符taskid。由此變數(shù)k被清零,轉(zhuǎn)移到步驟S2。步驟S2,由對計(jì)數(shù)器52作初始化來將變數(shù)ⅰ初始化為1。步驟S3中,任務(wù)ID保存單元72將讀出地址選擇信號(hào)nxttaskid(rd_adr)輸出到任務(wù)各別PC存貯單元24,由此將任務(wù)(k)的讀出目的地址由任務(wù)各別PC存貯單元讀出。步驟S4中,利用任務(wù)(k)的讀出目的地址由指令存貯器100取出指令。在步驟S5中,指令譯碼控制單元11對所取出的指令進(jìn)行譯碼。
步驟S6,比較器54進(jìn)行變數(shù)ⅰ與上限4的比較。此時(shí)因ⅰ=1故轉(zhuǎn)移到步驟S7。步驟S7,在計(jì)數(shù)器52中進(jìn)行變數(shù)ⅰ增量,是使增量電路21進(jìn)行讀出目的地址增量的步驟,此增量意味著由任務(wù)k中的指令的執(zhí)行向其他指令的執(zhí)行轉(zhuǎn)換。此時(shí)因ⅰ=2,進(jìn)行由時(shí)隙中指令的執(zhí)行向第二執(zhí)令的執(zhí)行轉(zhuǎn)換。
變數(shù)ⅰ在步驟S7被增量轉(zhuǎn)移到步驟S4。因變數(shù)ⅰ增量的ⅰ=2,讀出目的地址也以一指令進(jìn)行,在步驟S4中指令讀出電路10讀出指令存貯器100中以讀出目的地址(adr+1)所指示的指令,在步驟Sr指令譯碼控制單元11對之譯碼、執(zhí)行。
重復(fù)進(jìn)行上述步驟S4~S7使變數(shù)ⅰ逐次增量,順序讀出指令存貯器100中adr+0、adr+1、adr+2、adr+3的區(qū)域中存放的指令。
重復(fù)進(jìn)行上面步驟S4、S5直至步驟S6為Yes。上述過程中在變數(shù)為1、2、3之內(nèi)反復(fù)進(jìn)行步驟S4、S5、S6、S7的過程,變數(shù)ⅰ為4開始由步驟S6向S8進(jìn)行轉(zhuǎn)移,就意味著對任務(wù)(0)的指令重復(fù)執(zhí)行4次(圖39中位于最上層的4個(gè)四角形的排列為任務(wù)(0)的第一時(shí)隙中的4次指令執(zhí)行的圖解)。附帶說一下,步驟S8~S10的過程為進(jìn)行任務(wù)到任務(wù)的轉(zhuǎn)換,所以步驟S6中的“變數(shù)ⅰ=4”的判定就意味著將指令的4次重復(fù)執(zhí)行作為任務(wù)轉(zhuǎn)換的條件。
步驟S6中進(jìn)行變數(shù)ⅰ與上限值的判定后,在步驟S8由增量電路21將變量ⅰ增量,在步驟S9將任務(wù)(k)的讀出目的地址(adr+i-1)作為讀出目的地址(adr)存放進(jìn)任務(wù)各別PC存貯單元28之后轉(zhuǎn)移到步驟S10。在步驟10中在任務(wù)循環(huán)管理單元73和優(yōu)先編碼器74中確定下一應(yīng)執(zhí)行的任務(wù)。此時(shí),由任務(wù)循環(huán)管理單元73輸出“000000”的循環(huán)值taskn,由優(yōu)先編碼器74輸出“001”的任務(wù)標(biāo)識(shí)符taskid?!?01”的任務(wù)標(biāo)識(shí)符taskid,即k=1,進(jìn)行由任務(wù)(0)向任務(wù)(1)的轉(zhuǎn)換。任務(wù)轉(zhuǎn)換后轉(zhuǎn)移到步驟S2,進(jìn)行變數(shù)ⅰ的初始化重新開始重復(fù)步驟S3~S7。
與前次相同,在步驟S4中由指令存貯器100中的相關(guān)讀出目的地址中取出任務(wù)(1)所含的一指令,在步驟S5中譯碼、執(zhí)行被取出的指令。
步驟S6再次進(jìn)行變數(shù)ⅰ與上限4的比較。此時(shí)因ⅰ=1故轉(zhuǎn)移到步驟S7。變數(shù)ⅰ在步驟S7被增量轉(zhuǎn)移到步驟S4。由于變數(shù)ⅰ增量成為ⅰ=2,在步驟S4中進(jìn)行對以讀出目的地址(adr+1)所指示的指令存貯器100內(nèi)的區(qū)域的訪問,讀出指令存貯器100中以讀出目的地址(adr+1)所指示區(qū)域中存放的指令,在步驟S5中對之進(jìn)行譯碼、執(zhí)行。
由以上重復(fù)進(jìn)行步驟S4~S7的一連串工序,使變數(shù)ⅰ逐次增量而順序地讀出指令存貯器100中adr+0、adr+1、adr+2、adr+3的區(qū)域中所存放的指令。
反復(fù)進(jìn)行上述步驟S4、S5的執(zhí)行直至在步驟S6為Yes。當(dāng)步驟S6為Yes時(shí),即進(jìn)行由步驟S6向步驟S8的轉(zhuǎn)移。在上述過程中,變數(shù)Ⅰ為1、2、3中重復(fù)步驟S4、S5、S6、S7的過程,變數(shù)ⅰ為4即開始由步驟S6向S8的轉(zhuǎn)移(由到上述為止的操作,即為圖39中進(jìn)行的任務(wù)(1)中的4個(gè)指令(針對任務(wù)(1)的4個(gè)指令)。在步驟S8中對變數(shù)k作增量,在步驟S9將任務(wù)(k)的讀出目的地址(adr+i-1)作為讀出目的地址(adr)存貯后轉(zhuǎn)移到步驟S10。在步驟S10任務(wù)循環(huán)管理單元73和優(yōu)先編碼器74中再次進(jìn)行變數(shù)k的確定,在確定變數(shù)k為k=2時(shí)進(jìn)行由任務(wù)(1)的(2)的轉(zhuǎn)換。任務(wù)轉(zhuǎn)換后轉(zhuǎn)移到步驟S2,變數(shù)ⅰ被初始化再開始由步驟S3至S7的重復(fù)。
由以上的重復(fù)操作,圖39中任務(wù)(1)、(2)、(3)、(4)、(5)各以4個(gè)執(zhí)令執(zhí)行,各任務(wù)被順序消費(fèi)。
第二實(shí)施形態(tài)中的I/O處理器的整個(gè)控制按圖35的流程圖中所示過程進(jìn)行,圖35的流程圖是以由步驟S1~S10組成的圖34的流程圖作為基礎(chǔ)作成的。這里,圖35中的新穎點(diǎn)在于將步驟S12插入到步驟S4與S5之間。
步驟S12判斷步驟S4由指令存貯器100讀出的指令是否是Wait_Until_Next指令。如是Wait_Until_Next指令,轉(zhuǎn)移到步驟S8將變數(shù)ⅰ增量,在步驟S9中將任務(wù)(k)的讀出目的地址(adr+i-1)作為讀出目的地址(adr)存貯。
這里應(yīng)注意,步驟S12中不管變數(shù)ⅰ的值如何,在Wait_Until_Next指令被執(zhí)行時(shí)刻均轉(zhuǎn)移到步驟S8存貯讀出目的地址。這樣由于步驟S8不管變數(shù)ⅰ的值如何均在步驟S12的譯碼后被執(zhí)行,所以由任務(wù)到任務(wù)的轉(zhuǎn)換均不要等待4次指令而被進(jìn)行。
圖40表示第二實(shí)施形態(tài)中的時(shí)隙間的遷移圖。
圖40中的順序與圖39相同縱方向向下為時(shí)間軸,以含有4個(gè)長方形的粗邊線圍繞的四角形構(gòu)成時(shí)隙。粗邊線中的一個(gè)各四角形表示執(zhí)行一個(gè)指令的周期。這些四角形中被寫入“o”的表示W(wǎng)at_Until_Next指令。而任務(wù)(0)在各時(shí)隙中執(zhí)行指令存貯器100中的哪一個(gè)指令由四角形右側(cè)的作為“PC”、“PC+1”、“PC+2”、“PC+3”的程度計(jì)數(shù)值和按程序計(jì)數(shù)值的相對值表述(本圖以任務(wù)(0)的第一時(shí)隙的第一指令讀出的程序計(jì)數(shù)值為基準(zhǔn))。
圖36中由進(jìn)行步驟S1~S4的過程讀出任務(wù)(0)的第一時(shí)隙的第一指令。在步驟S12進(jìn)行所讀出指令的譯碼結(jié)果的判斷,由于任務(wù)(0)的第一時(shí)隙的第一指令非Wait_Until_Next指令而轉(zhuǎn)移到步驟S5。由向步驟S5的轉(zhuǎn)移執(zhí)行任務(wù)(0)的第一時(shí)隙的第一指令而前進(jìn)一指令。
由再次進(jìn)行步驟S1~S4的過程讀出任務(wù)(0)的第一時(shí)隙的第二指令。在步驟S12進(jìn)行對所讀出指令的譯碼結(jié)果的判斷,任務(wù)(0)的第一時(shí)隙的第二指令為Wait_Until_Next指令而進(jìn)行向步驟S8的轉(zhuǎn)移。由步驟S8變數(shù)ⅰ被增1成為“3”,在步驟S9將讀出目的地址(adr+2)作為任務(wù)(0)的讀出目的地址存貯進(jìn)任務(wù)各別PC存貯單元110。
存貯后,在步驟S10變數(shù)k被增量,轉(zhuǎn)移到步驟S2。由此步驟S10中變數(shù)k的增量,任務(wù)(0)向任務(wù)(1)轉(zhuǎn)換,等待執(zhí)行第一時(shí)隙的第三、第四指令。
任務(wù)(1)的第一時(shí)隙的執(zhí)行由執(zhí)行4個(gè)指令來進(jìn)行,同樣進(jìn)行任務(wù)(2)、(3)、(4)、(5)的執(zhí)行而進(jìn)行直到任務(wù)(5)的第一時(shí)隙的第四指令。在步驟S10中確定變數(shù)k,在步驟S2中變數(shù)ⅰ被初始化為“1”,步驟S3中由任務(wù)各別PC存貯單元讀出任務(wù)(0)的讀出目的地址。這里,應(yīng)注意的是,在執(zhí)行任務(wù)(0)的第一時(shí)隙的第二指令(Wait_Until_Next指令)時(shí),PC+2(“PC”表示第一指令的程序計(jì)數(shù)值)被作為任務(wù)(0)的讀出目的地址存放在任務(wù)各別PC存貯單元110中。這樣因任務(wù)各別PC存貯單元110中存貯的是“PC+2”,所以由PC+2開始執(zhí)行任務(wù)(1)的第二時(shí)隙。
圖36為第三實(shí)施形態(tài)中I/O處理器的流程圖。本圖中,與圖34、35相同處理內(nèi)容的步驟被加以與圖34、35相同的參照符號(hào)其說明省略。圖中的“變數(shù)Total”被用于根據(jù)任務(wù)管理寄存器13的內(nèi)容表示選擇器55輸出的數(shù)值指定指令執(zhí)行數(shù)的上限。變數(shù)Tolal在其初始化狀態(tài)中被初始化為時(shí)隙中的指令總數(shù)的“4”,但也被更新為“2”。
圖41表示由第三實(shí)施形態(tài)流程圖得到的時(shí)隙間的遷移圖。在下面說明中,圖41中任務(wù)(0)的第一時(shí)隙的第一指令、第二指令執(zhí)行完畢,由此而要讀出第三指令。
步驟S93將上述變數(shù)k清零,變數(shù)Tolal設(shè)定為4。步驟S2將上述變數(shù)ⅰ清零。步驟S3中由任務(wù)各別PC存貯單元110讀出被清零的變數(shù)k的讀出目的地址、即任務(wù)(0)的讀出目的地址。在步驟S4中,在指令存貯器100中將讀出的任務(wù)的讀出目的地址作為絕對地址、以變數(shù)ⅰ作為偏移值的地址取出指令。
在步驟81中判斷所取出的指令是否為Cmp_And_Wait指令。步驟S82中,指令譯碼控制單元81、運(yùn)算執(zhí)行單元84參照Cmp_And_Wait指令的第一操作數(shù)中描述的狀態(tài)監(jiān)視寄存器j的指定和第二操作數(shù)中描述的立即值,來判斷Cmp_And_Wait指令提示的事件的成立真假。在狀態(tài)監(jiān)視寄存器j的保存值與立即值不相一致而判定為事件不成立時(shí),轉(zhuǎn)移到步驟83,將任務(wù)k設(shè)定為Wait狀態(tài)轉(zhuǎn)移到步驟S84。在步驟84中不進(jìn)行程序計(jì)數(shù)而是在觸發(fā)器27和選擇器25將讀出目的地址設(shè)定為Cmp_And_Wait指令的地址轉(zhuǎn)移到步驟S87。
步驟S87為與圖35的流程圖的步驟S6同樣進(jìn)行上限檢驗(yàn)的步驟。步驟S6中“變數(shù)ⅰ=4”的判定以4次重復(fù)執(zhí)行指令作為任務(wù)轉(zhuǎn)換的條件。與此相對地步驟S87中的“變數(shù)ⅰ=變數(shù)Tolal”的判定則以重復(fù)執(zhí)行指令的次數(shù)與變數(shù)Tolal相等作為任務(wù)轉(zhuǎn)換的條件。由于這里的變數(shù)Tolal未更新,所以“變數(shù)ⅰ=變數(shù)Tolal”實(shí)質(zhì)上就成為“變數(shù)ⅰ=4”的判定。Cmp_And_Wait指令在任務(wù)(0)的第一時(shí)隙中被包含在第三指令中,另一方面由于變數(shù)ⅰ=2,所以進(jìn)行由步驟S87向步驟S7的轉(zhuǎn)移。在步驟S7中變數(shù)ⅰ被增量,即由步驟S4中的讀出指令,將Cmp_And_Wait指令的下一順序的指令讀出到指令譯碼控制單元81。一經(jīng)讀出,步驟81即為No而在步驟S85,指令譯碼控制單元11在緊前面的指令中被判定為狀態(tài)不成立時(shí)判斷讀出目的地址是否已被設(shè)定為Cmp_And_Wait指令的地址(有未發(fā)生了PC復(fù)原)。
這里,所謂地址(adr+i)中存放的指令的緊前面的指令相當(dāng)于Cmp_And_Wait指令,在此Cmp_And_Wait指令譯碼時(shí)發(fā)生PC復(fù)原。因此步驟S85為Yes轉(zhuǎn)移到步驟S86。在步驟S86中指令譯碼控制單元11廢棄讀出的地址(adr+i)的指令,進(jìn)行使通用寄存器的存貯值無效內(nèi)容的通知,如圖40的任務(wù)序列中任務(wù)(0)的第一時(shí)隙的第四指令所示,使地址(adr+i)所存放的指令無效化轉(zhuǎn)移到步驟S87。變數(shù)ⅰ的值因?yàn)槭?所以在步驟S87中如作“變數(shù)ⅰ=變數(shù)Total”的判定即為Yes,轉(zhuǎn)移到步驟S88。
步驟S87的判定為Yes意味著一時(shí)隙的指令的執(zhí)行的完成,在步驟S88中則判斷有未發(fā)生該時(shí)隙中PC的復(fù)原。之所以進(jìn)行這樣的判斷是因?yàn)樵诎l(fā)生PC復(fù)原時(shí)任務(wù)各別PC存貯單元110中必須存貯其復(fù)原目的地。
任務(wù)(0)時(shí)第四指令被廢棄,第三指令中發(fā)生PC復(fù)原,在步驟S89中于觸發(fā)器27和選擇器25中作為讀出目的地址存放復(fù)原目的地PC值,轉(zhuǎn)移到步驟S10。在步驟S10中任務(wù)循環(huán)管理單元73和優(yōu)先編碼器74確定下一任務(wù)后將變數(shù)k增量轉(zhuǎn)移到步驟S90。
步驟S90~S92,依靠判斷由被增量的變數(shù)k所指示的任務(wù)、即下一應(yīng)執(zhí)行的任務(wù)是否為Wait狀態(tài),來保持這一要在下一時(shí)隙中轉(zhuǎn)換指令數(shù)的重要意義一致。如按順序說明,在步驟S90中,ID變換器53參照相當(dāng)于任務(wù)管理寄存器13中的任務(wù)(k)的bit,判斷任務(wù)(k)是否Wait狀態(tài)。如果是,選擇器55即在步驟S91中將變數(shù)Total設(shè)定為4,如不是則將變數(shù)Tolal設(shè)定為2。
任務(wù)(1)因?yàn)椴皇荳ait狀態(tài),在步驟S91中將變數(shù)Total設(shè)定為4轉(zhuǎn)移到步驟S2。這里任務(wù)(1)中如認(rèn)為不含有Cmp_Wait指令,即在步驟S5中的指令重復(fù)執(zhí)行四次進(jìn)行向下一任務(wù)的轉(zhuǎn)換(以上的過程因與第一實(shí)施形態(tài)中所記錄的相同不再作重復(fù)說明)。
對不含有Cmp_And_Wait指令的任務(wù)(2)、(3)、(4)也順序執(zhí)行四個(gè)指令依次作任務(wù)轉(zhuǎn)換。有關(guān)任務(wù)(5)的四指令執(zhí)行完畢轉(zhuǎn)移到步驟S10,在步驟S10對變數(shù)k清零,轉(zhuǎn)移到步驟S90。在步驟S90,在任務(wù)管理寄存器13中判斷被分配到任務(wù)k的bitk是“1”還是“0”。此判斷意味著弄清楚任務(wù)是否為Wait狀態(tài)。這里,變數(shù)k=0,任務(wù)(0)剛才被設(shè)定為Wait狀態(tài),所以在步驟S91設(shè)定變數(shù)Total為2。在此應(yīng)注意,變數(shù)Total保持與分配到時(shí)隙的指令數(shù)的意義相一致。在步驟S91將其由“4”更新為“2”,則意味著映象到時(shí)隙的指令數(shù)由“4”削減到“2”。因此,在任務(wù)(0)的第二時(shí)隙,變數(shù)ⅰ被增量僅為1、2間,亦即步驟S81~S85、步驟S5的處理僅重復(fù)2次。此時(shí),作為任務(wù)(0)的讀出目的地址被存貯在任務(wù)各別PC存貯單元110中,是Cmp_And_Wait指令的讀出目的地址。由讀出目的地址的地址讀出Cmp_And_Wait指令時(shí)即與第一時(shí)隙同樣在步驟S82中進(jìn)行事件成立與否的判定。此時(shí)如認(rèn)為事件不成立而結(jié)束時(shí),即進(jìn)行與第一時(shí)隙同樣的處理,將讀出目的地址恢復(fù)為Cmp_And_Wait指令,而結(jié)束第二時(shí)隙。對不含有Cmp_And_Wait指令的任務(wù)(1)、(2)、(3)、(4)也順序執(zhí)行四個(gè)指令依次作任務(wù)轉(zhuǎn)換,在關(guān)于任務(wù)(5)的四個(gè)指令執(zhí)行結(jié)束時(shí)開始任務(wù)(0)的第三時(shí)隙。
這里,I/O處理器中的事件發(fā)生變化,任務(wù)(0)的Cmp_And_Wait指令中所指定的事件成立。因此,任務(wù)(0)的第三時(shí)隙中,在步驟S82由指令譯碼控制單元81判定事件成立,轉(zhuǎn)移到步驟S80,解除任務(wù)管理寄存器13中任務(wù)k的Wait狀態(tài)。這樣,Wait狀態(tài)一被解除,即進(jìn)行由步驟S80向S87的轉(zhuǎn)移,在步驟S87進(jìn)行變數(shù)ⅰ與變數(shù)Total的比較,在步驟S7將變數(shù)ⅰ增量,在步驟S4由讀出目的地址(adr+1)讀出指令。步驟S81中判定所讀出的指令是否為Cmp_And_Wait,而由于不是Cmp_And_Wait指令故向步驟S85轉(zhuǎn)移。步驟S85中,判定有未發(fā)生因緊前面的指令中狀態(tài)被判斷為不成立而恢復(fù)PC。由于Cmp_And_Wait指令所指定的事件成立,步驟為S85,No,Cmp_And_Wait指令的下一順序的指令經(jīng)過等待二次的事件成立在步驟S85中執(zhí)行。在步驟S5中下一順序的指令執(zhí)行后進(jìn)行由步驟S5向S87的轉(zhuǎn)移,進(jìn)行變數(shù)ⅰ與變數(shù)Total的大小的比較。但在第二時(shí)隙中因變數(shù)Total被設(shè)定為2,任務(wù)(0)的第三時(shí)隙僅在二次執(zhí)行完即結(jié)束。在向步驟S87轉(zhuǎn)移后,在步驟S88中,判定發(fā)生PC復(fù)原的發(fā)生的真假,此時(shí)為No,在步驟S89中將任務(wù)(k)的讀出目的地址(adr+i-1)作為讀出目的地址(adr)存貯,轉(zhuǎn)移到步驟S10。這樣,在任務(wù)(0)的第三時(shí)隙完成時(shí),對不含Cmp_And_Wait指令的任務(wù)(1)、(2)、(3)、(4)也順序執(zhí)行四個(gè)指令依次轉(zhuǎn)換任務(wù)。關(guān)于任務(wù)(5)的四個(gè)指令的執(zhí)行完成時(shí)將變數(shù)k清零,轉(zhuǎn)移到步驟S90。
在步驟S90,參照相當(dāng)于任務(wù)管理寄存器13中的任務(wù)(k)的bit判定任務(wù)(k)是否為Wait狀態(tài)。此時(shí),因?yàn)槿蝿?wù)(0)的Wait狀態(tài)已被解除,在步驟S92中將變數(shù)Total設(shè)定為4,轉(zhuǎn)移到步驟S2。這樣因?yàn)樽償?shù)Total已復(fù)原為4,任務(wù)(0)以后的時(shí)隙即按照通常每四個(gè)指令地進(jìn)行。
圖37為表示第四實(shí)施形態(tài)中I/O處理器的整個(gè)控制的流程圖。圖37的流程圖中步驟S1~S9的過程與圖35的流程同樣。
圖37中的新穎處在于被加以30號(hào)范圍的參照符號(hào)的步驟S30、S31、S32。步驟S30判定緊急狀態(tài)遷移許可信號(hào)是否為低電平值,如成為高電平值即轉(zhuǎn)移到步驟S31,在步驟S31中確定緊急任務(wù)為下面應(yīng)執(zhí)行的任務(wù)。
相反,如緊急狀態(tài)遷移許可信號(hào)為低電平值,則轉(zhuǎn)移到步驟S32,根據(jù)循環(huán)值Taskne使優(yōu)先編碼器80由通常的任務(wù)中確定下面應(yīng)執(zhí)行的任務(wù)。
圖42表示第四實(shí)施例中時(shí)隙間的遷移圖。本圖在通常狀態(tài)開始,步驟S31的處理被跳越,圖41的任務(wù)(0)的第一時(shí)隙、任務(wù)(2)的第一時(shí)隙、任務(wù)(3)的第一時(shí)隙、任務(wù)(4)的第一時(shí)隙、任務(wù)(5)的第一時(shí)隙順序進(jìn)行。
Taskne的執(zhí)行輪流一次,如認(rèn)為發(fā)生緊急狀態(tài)遷移許可信號(hào)的高電平期間,即在步驟S2~S9中執(zhí)行一個(gè)任務(wù)后,進(jìn)行由步驟S30向S31的轉(zhuǎn)移。轉(zhuǎn)移后,根據(jù)Cstate存貯單元85中所示的Cstate的高、低電平值執(zhí)行緊急任務(wù)。
圖38為第五實(shí)施形態(tài)中多任務(wù)過程的流程圖。此圖與第一實(shí)施形態(tài)中的多任務(wù)過程的流程圖不同處在于,步驟S4與S6之間插入有步驟S41~S44、S46、S47。
步驟S41判定由指令存貯器100讀出的指令是否為Sleep指令。如是Sleep指令,轉(zhuǎn)移到步驟S42。在步驟S42,任務(wù)管理寄存器13將對應(yīng)于任務(wù)(k)的bit翻轉(zhuǎn)為0。然后,在步驟S43將變數(shù)ⅰ增量1,在步驟S44將任務(wù)(k)的讀出目的地址(adr+i-1)作為讀出目的地址(adr)存貯后轉(zhuǎn)移到步驟S45。轉(zhuǎn)移后在步驟S45中,反相器94和“或”電路95在管理寄存器13中生成指定Sleep狀態(tài)的bit刪除的循環(huán)值,將其輸出到優(yōu)先編碼器74,確定下一應(yīng)執(zhí)行的任務(wù)(k)。這里應(yīng)注意如早先所述,“變數(shù)k”為用于指示指令存貯器100中所存貯的6個(gè)任務(wù)的各自一個(gè)的變數(shù),該決定就意味著任務(wù)到任務(wù)的轉(zhuǎn)換。
這里,步驟S45與步驟S10的不同處在于,與步驟S10在變數(shù)ⅰ為4的時(shí)刻執(zhí)行相反,步驟S45是不管變數(shù)ⅰ值為何,而在Sleep指令被譯碼時(shí)執(zhí)行。這樣因?yàn)樵诓还茏償?shù)ⅰ的值而在Sleep指令譯碼后執(zhí)行步驟S45,任務(wù)到任務(wù)的轉(zhuǎn)換就成為不等待四次的指令而被進(jìn)行。
步驟S46中,判定由讀出目的地址(adr+1)讀出的指令是否為對于任務(wù)管理寄存器內(nèi)的某一bit的Wake指令。如果不是,在步驟S5中譯碼讀出的指令。如果是,在步驟S47中操作相關(guān)Wake指令中所指定的jbit,以此來解除任務(wù)j的Sleep狀態(tài),轉(zhuǎn)移到步驟S6。
圖43表示第五實(shí)施形態(tài)中時(shí)隙間的遷移圖。圖中任務(wù)(1)的第一時(shí)隙上加有印記的表示任務(wù)(1)的第一時(shí)隙的第二指令為Sleep_task指令。在Sleep_task指令執(zhí)行時(shí)與第二實(shí)施形態(tài)中Cmp_And_Wait指令執(zhí)行時(shí)同樣,第二指令的譯碼中執(zhí)行步驟S41~S44在任務(wù)(1)被設(shè)定為Sleep狀態(tài)后進(jìn)行任務(wù)轉(zhuǎn)換,而第三指令和第四指令實(shí)際上被廢棄。
順序地進(jìn)行第一實(shí)施形態(tài)中所述的任務(wù)之間的轉(zhuǎn)換,按任務(wù)(2)、(3)、(4)、(5)作任務(wù)的巡回,轉(zhuǎn)移到步驟S45。在步驟S45中,優(yōu)先編碼器74按照Sleep狀態(tài)中的任務(wù)的bit被屏蔽的循環(huán)值確定下次應(yīng)執(zhí)行的任務(wù)。這里,在任務(wù)管理寄存器13中,分配給任務(wù)(1)的bit在任務(wù)(1)第一時(shí)隙的第二指令中被設(shè)定為Sleep狀態(tài)。因此任務(wù)(1)的執(zhí)行被跳越,繼續(xù)執(zhí)行任務(wù)(2)的第二時(shí)隙。
順序進(jìn)行同樣的任務(wù)間的轉(zhuǎn)換,按任務(wù)(2)、(3)、(4)、(5)進(jìn)行巡回,轉(zhuǎn)移到步驟S45。
在此巡回中,任務(wù)(5)的第二時(shí)隙的第三指令為指定任務(wù)(1)的Sleep狀態(tài)解除的Wake_Task指令,看作是由指令存貯器100中讀出的。當(dāng)Wake_task指令被由指令存貯器100中讀出后,步驟S46的判定為Yes,轉(zhuǎn)移到步驟S47。在步驟S47中由使得任務(wù)管理寄存器13的分配給任務(wù)(1)的bit為OFF,來解除任務(wù)(1)的Sleep狀態(tài)。解除之后,其余指令也同樣執(zhí)行,結(jié)束第二時(shí)隙內(nèi)的處理。
任務(wù)(5)結(jié)束后,認(rèn)為被向任務(wù)(0)轉(zhuǎn)換的任務(wù)。執(zhí)行任務(wù)(0)的第三時(shí)隙轉(zhuǎn)移到步驟S45。在步驟S45中判斷任務(wù)管理寄存器13中被分配到任務(wù)(1)的bit是否為ON。任務(wù)(5)的第二時(shí)隙中,任務(wù)(1)的分配bit被設(shè)定為ON,如前所述,進(jìn)行由步驟S45向步驟S2、S3的轉(zhuǎn)移,再開始執(zhí)行任務(wù)(1)。
權(quán)利要求
1.以n個(gè)任務(wù)作為執(zhí)行對象任務(wù)的處理器,其特征是包含有執(zhí)行任務(wù)指示手段,輸出n個(gè)任務(wù)標(biāo)識(shí)符,在分配給該任務(wù)數(shù)量的指令被執(zhí)行后即以規(guī)定的順序輸出下一任務(wù)標(biāo)識(shí)符;指令指定手段,順序指定由所輸出的任務(wù)標(biāo)識(shí)符專門指定的任務(wù)中應(yīng)執(zhí)行的指令;和執(zhí)行手段,執(zhí)行被指定的指令。
2.權(quán)利要求1中所述處理器,其特征是所述執(zhí)行任務(wù)指示手段包含有任務(wù)轉(zhuǎn)換信號(hào)發(fā)生器,對已發(fā)出的指令進(jìn)行計(jì)數(shù),在計(jì)數(shù)值成為分配給執(zhí)行中任務(wù)的指令數(shù)時(shí)即產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào);和任務(wù)標(biāo)識(shí)符輸出單元,每當(dāng)產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)即生成并輸出下一順序的任務(wù)標(biāo)識(shí)符。
3.權(quán)利要求2中所述處理器,其特征是所述指令指定手段包含有n個(gè)地址寄存器,與n個(gè)任務(wù)一對一相對應(yīng)地保存關(guān)于對應(yīng)任務(wù)的下一應(yīng)讀出的最先的地址;寄存器選擇單元,在由執(zhí)行任務(wù)指示手段輸出任務(wù)標(biāo)識(shí)符后,選擇與該標(biāo)識(shí)符對應(yīng)的地址寄存器;讀出目的地址生成單元,將由選擇單元選擇的地址寄存器存貯的最先的地址作為最初的讀出目的地址,在到任務(wù)標(biāo)識(shí)符被轉(zhuǎn)換為止的期間內(nèi)順序更新所述讀出目的地址;和地址寄存器更新單元,在轉(zhuǎn)換到下一順序的任務(wù)時(shí),以由讀出地址生成單元所更新的讀出地址改寫直至轉(zhuǎn)換之前由寄存器選擇單元所選擇的地址寄存器存貯的最先的地址,所述執(zhí)行手段執(zhí)行由所述讀出目的地址生成單元生成的地址所專門指定的指令。
4.權(quán)利要求2中所述處理器,其特征是任務(wù)轉(zhuǎn)換信號(hào)發(fā)生器包含有計(jì)數(shù)器,對時(shí)鐘脈沖進(jìn)行計(jì)數(shù);和比較器,將計(jì)數(shù)器的計(jì)數(shù)值與被分配給當(dāng)前執(zhí)行中的任務(wù)的指令數(shù)進(jìn)行比較,如相一致即輸出任務(wù)轉(zhuǎn)換信號(hào)并同時(shí)進(jìn)行所述計(jì)數(shù)器的復(fù)位。
5.權(quán)利要求4中所述處理器,其特征是所述任務(wù)轉(zhuǎn)換信號(hào)發(fā)生器還包含有指令數(shù)保存單元,保存2種以上的指令數(shù);和指令數(shù)選擇單元,按執(zhí)行任務(wù)指示手段指示的任務(wù)標(biāo)識(shí)符選擇指令數(shù)保存單元保存的一種指令數(shù),在此,被選擇的指令數(shù)被作為比較輸入加到比較器。
6.權(quán)利要求5中所述處理器,其特征是所述指令數(shù)保存單元保存的指令數(shù)中具有第一常數(shù)和小于第一常數(shù)的第二常數(shù);所述指令指定手段還包括補(bǔ)償任務(wù)保存單元,保存n個(gè)任務(wù)中作為應(yīng)分配第二常數(shù)的任務(wù)的補(bǔ)償任務(wù)的標(biāo)識(shí)符;所述指令數(shù)選擇單元包含有判定單元,在執(zhí)行任務(wù)指示手段輸出任務(wù)標(biāo)識(shí)符時(shí)判斷該任務(wù)標(biāo)識(shí)符是否為補(bǔ)償任務(wù)的標(biāo)識(shí)符;和常數(shù)輸出單元,任務(wù)標(biāo)識(shí)符如被判斷是表示補(bǔ)償任務(wù),即將指令數(shù)保存單元保存的第二常數(shù)輸出給比較器。
7.權(quán)利要求6中所述處理器,其特征是事件中含有包括指定事件成立的真假條件的事件監(jiān)視指令;所述執(zhí)行手段包含譯碼手段,對由讀出目的地址生成單元生成的地址所指定的指令加以譯碼;和運(yùn)算手段,如譯碼手段得到的譯碼結(jié)果為事件監(jiān)視指令,執(zhí)行事件監(jiān)視指令中為確認(rèn)所指定事件成立的真假的運(yùn)算,和所述補(bǔ)償任務(wù)保存單元,在運(yùn)算單元所得運(yùn)算結(jié)果為表示事件不成立時(shí),將含有事件監(jiān)視指令任務(wù)的任務(wù)標(biāo)識(shí)符作為補(bǔ)償任務(wù)的標(biāo)識(shí)符加以保存。
8.權(quán)利要求7中所述處理器,其內(nèi)部設(shè)置具有緩存器和存貯器的信息處理系統(tǒng),其特征是具有多個(gè)表示內(nèi)部緩存器和存貯器中的狀態(tài)的狀態(tài)寄存器;所述事件監(jiān)視指令具有對多個(gè)狀態(tài)寄存器中某一個(gè)的指定和立即值的指定;所述運(yùn)算手段,如果由譯碼手段所得譯碼結(jié)果為事件監(jiān)視指令,利用事件監(jiān)視指令中所指定的狀態(tài)監(jiān)視寄存器的保存值和該指令中指定的立即值進(jìn)行運(yùn)算。
9.權(quán)利要求2中所述處理器,其特征是任務(wù)標(biāo)識(shí)符輸出單元包含有順序存貯單元,對所有n個(gè)任務(wù)存放表示第n個(gè)輸出各任務(wù)標(biāo)識(shí)符的輸出順序;和選擇輸出單元,每當(dāng)產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)時(shí)將順序存貯單元中輸出順序成為下一順序的任務(wù)標(biāo)識(shí)符輸出到指令指定手段。
10.權(quán)利要求9中所述處理器,其特征是包含有表明某一任務(wù)需要緊急處理的緊急宣告指令;所述執(zhí)行手段包含譯碼手段,譯碼指令指定手段指定的指令;所述執(zhí)行任務(wù)指示手段包含緊急任務(wù)寄存器,如譯碼手段所得譯碼結(jié)果為緊急宣告指令時(shí),將由該指令所指定的任務(wù)作為需要緊急處理的任務(wù)存其標(biāo)識(shí)符;和輸出比率控制單元,在緊急任務(wù)寄存器未保存緊急任務(wù)的標(biāo)識(shí)符的狀態(tài)中如產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)時(shí),直接將選擇輸出單元輸出的任務(wù)標(biāo)識(shí)符輸出給執(zhí)行手段,而在緊急任務(wù)寄存器中保存有緊急任務(wù)標(biāo)識(shí)符的狀態(tài)中如產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào),以每發(fā)送m次任務(wù)轉(zhuǎn)換信號(hào)(m≥2)一次的比率將緊急任務(wù)寄存器保存的任務(wù)標(biāo)識(shí)符輸出給執(zhí)行手段。
11.權(quán)利要求9中所述處理器,其特征是包含表明某一任務(wù)需要緊急處理的緊急宣告指令;所述執(zhí)行任務(wù)指示手段還包含監(jiān)視手段,依靠監(jiān)視由處理器外部輸入的規(guī)定信號(hào)判斷該處理器外部是在緊急期間內(nèi)還是在緊急期間外;緊急任務(wù)寄存器,在規(guī)定信號(hào)為在緊急期間內(nèi)時(shí),保存作為應(yīng)作緊急處理的任務(wù)的緊急任務(wù)標(biāo)識(shí)符;和輸出比率控制單元,如在緊急期間外產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)時(shí),選擇輸出單元直接將由未輸出任務(wù)中選取的任務(wù)識(shí)別符輸出到執(zhí)行手段,而如果在緊急期間之內(nèi)產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)時(shí),以每發(fā)送m次轉(zhuǎn)換信號(hào)(m≥)一次的比率將緊急任務(wù)寄存器保存的任務(wù)標(biāo)識(shí)符輸出給執(zhí)行手段。
12.權(quán)利要求11中所述處理器,其特征是順序存貯單元包含n位寄存器保存n位序列;n位序列的各bit各自對應(yīng)于任務(wù)標(biāo)識(shí)符,各任務(wù)標(biāo)識(shí)符的輸出順序由對應(yīng)于各自的任務(wù)標(biāo)識(shí)符的任務(wù)bit在該n位序列中位于由最上立或最下位開始的第nbit來表達(dá)。
13.權(quán)利要求12中所述處理器,其特征是n位序列中,被分配給任務(wù)標(biāo)識(shí)符輸出完畢的任務(wù)的bit被設(shè)定為“1”,分配給未輸出任務(wù)的bit被設(shè)定為“0”;所述執(zhí)行任務(wù)輸出單元包含bit設(shè)定單元,在由選擇輸出單元輸出下一順序的任務(wù)標(biāo)識(shí)符時(shí),在n位寄存器保存的n位序列中將被輸出的bit設(shè)定為“1”;bit復(fù)位單元,當(dāng)n位序列的全部bit由bit設(shè)定單元設(shè)定為1時(shí),將n位序列復(fù)位為全零。所述選擇輸出單元包含優(yōu)先編碼器,根據(jù)n位寄存器保存的n位序列中出現(xiàn)由“1”向“0”翻轉(zhuǎn)的bit位置生成下一順序應(yīng)輸出的任務(wù)標(biāo)識(shí)符,同時(shí)將該任務(wù)識(shí)別符輸出給執(zhí)行任務(wù)指示手段。
14.權(quán)利要求13中所述處理器,其特征是任務(wù)標(biāo)識(shí)符輸出單元包含屏蔽單元,如果緊急任務(wù)寄存器保存有含有緊急宣告指令的任務(wù)的任務(wù)標(biāo)識(shí)符時(shí)在n位寄存器保存的n位序列中將分配到該緊急任務(wù)的bit設(shè)定為“1”。
15.權(quán)利要求14中所述處理器,其特征是設(shè)置有對動(dòng)畫數(shù)據(jù)流進(jìn)行譯碼的AV譯碼器系統(tǒng);緊急任務(wù)為在AV譯碼器系統(tǒng)中的動(dòng)畫數(shù)據(jù)流的譯碼結(jié)束時(shí)將譯碼結(jié)果輸出給外部連接的顯示器;而監(jiān)視手段監(jiān)視的規(guī)定信號(hào)為用于顯示視頻信號(hào)的顯示器的水平回掃期間信號(hào)、垂直回掃期間信號(hào)。
16.權(quán)利要求11中所述處理器,其特征是任務(wù)轉(zhuǎn)換信號(hào)發(fā)生器包含計(jì)數(shù)器,對時(shí)鐘脈沖進(jìn)行計(jì)數(shù);和比較器,將計(jì)數(shù)器的計(jì)數(shù)值與分配給當(dāng)前執(zhí)行中任務(wù)的指令數(shù)相比較,當(dāng)相一致時(shí)輸出任務(wù)轉(zhuǎn)換信號(hào)同時(shí)進(jìn)行所述計(jì)數(shù)器的復(fù)位。
17.權(quán)利要求16中所述處理器,其特征是所述任務(wù)轉(zhuǎn)換信號(hào)發(fā)生器還包含有指令數(shù)保存單元,保存二種以上的指令數(shù);和指令數(shù)選擇單元,按執(zhí)行任務(wù)指示手段指示的任務(wù)標(biāo)識(shí)符選擇指令數(shù)保存單元保存的一個(gè)指令數(shù),這里,被選擇的指令數(shù)被作為比較輸入加給比較器。
18.權(quán)利要求17中所述處理器,其特征是指令數(shù)保存單元保存的指令數(shù)中具有第一常數(shù)和大于第一常數(shù)的第二常數(shù);所述任務(wù)識(shí)別符輸出單元包含有補(bǔ)救對象任務(wù)保存單元,在輸出下一任務(wù)標(biāo)識(shí)符時(shí)保存應(yīng)分配第二常數(shù)的補(bǔ)救對象任務(wù)標(biāo)識(shí)符;所述指令數(shù)選擇單元包含有判斷單元,在監(jiān)視手段判定由處理器外部輸入的規(guī)定信號(hào)為在緊急期間之內(nèi)時(shí),當(dāng)執(zhí)行任務(wù)指示手段輸出任務(wù)標(biāo)識(shí)時(shí)判斷該任務(wù)標(biāo)識(shí)符是否表明為補(bǔ)救對象任務(wù);和常數(shù)輸出單元,如被判定為任務(wù)標(biāo)識(shí)符表示補(bǔ)救對象任務(wù),則將指令數(shù)保存單元保存的第二常數(shù)輸出給比較器。
19.權(quán)利要求9中所述處理器,其特征是某一任務(wù)含有應(yīng)將某一任務(wù)的執(zhí)行設(shè)定為休眠狀態(tài)的內(nèi)容的自發(fā)休眠指令;所述執(zhí)行手段還包含有譯碼手段,對指令指定手段作為下一應(yīng)執(zhí)行的指令指定的指令進(jìn)行譯碼;所述執(zhí)行任務(wù)指示手段還包含有休眠任務(wù)寄存器,如由譯碼手段所得譯碼結(jié)果為自發(fā)休眠指令時(shí),將由該指令所指示的任務(wù)作為需作休眠處理的任務(wù)保存其任務(wù)標(biāo)識(shí)符;所述選擇輸出單元,在順序存貯單元存貯的下一順序的任務(wù)標(biāo)識(shí)符為休眠任務(wù)的任務(wù)標(biāo)識(shí)符時(shí),輸出該下一順序的任務(wù)標(biāo)識(shí)符。
20.權(quán)利要求19中所述處理器,其特征是某一任務(wù)含有應(yīng)解除其他任務(wù)的休眠狀態(tài)的內(nèi)容的強(qiáng)制解除指令;執(zhí)行任務(wù)指示手段包含有刪除單元,如果由譯碼手段所得的譯碼結(jié)果為強(qiáng)制解除指令,刪除休眠任務(wù)寄存器保存的任務(wù)標(biāo)識(shí)符。
21.權(quán)利要求20中所述處理器,其特征是順序存貯單元包含有n位寄存器,保存n位序列;n位序列的各bit各自對應(yīng)于任務(wù)識(shí)別符;各任務(wù)標(biāo)識(shí)符的輸出順序由對應(yīng)于各自的任務(wù)標(biāo)識(shí)符的任務(wù)bit在該n位序列中自最高位或最低位開始的第n號(hào)位置來表達(dá)。
22.權(quán)利要求21中所述處理器,其特征是,n位序列中任務(wù)標(biāo)識(shí)符輸出完畢的任務(wù)所分配的bit被設(shè)定為“1”,未輸出任務(wù)所分配的bit被設(shè)定為“0”。所述執(zhí)行任務(wù)輸出單元包含有bit設(shè)定單元,當(dāng)由選擇輸出單元輸出下一順序的任務(wù)標(biāo)識(shí)符時(shí),在n位寄存器保存的n位序列中,將所輸出的bit設(shè)定為“1”;bit復(fù)位單元,當(dāng)n位序列的所有bit均為bit設(shè)定單元設(shè)定為“1”時(shí),即將n位序列全部復(fù)位到零;所述選擇輸出單元包含有優(yōu)先編碼器,根據(jù)n位寄存器保存的n位序列中出現(xiàn)由“1”向“0”翻轉(zhuǎn)的bit位置,生成應(yīng)在下一順序輸出的任務(wù)標(biāo)識(shí)符,同時(shí)將該任務(wù)標(biāo)識(shí)符輸出到執(zhí)行任務(wù)指示手段。
23.權(quán)利要求22中所述處理器,其特征是,執(zhí)行任務(wù)指示手段包含屏蔽單元,如果緊急任務(wù)寄存器保存含有自發(fā)休眠指令的任務(wù)的任務(wù)標(biāo)識(shí)符時(shí),在n位序列中將分配給該休眠狀態(tài)任務(wù)的bit屏蔽成為“1”;去屏蔽單元,如果譯碼手段所得譯碼結(jié)果為強(qiáng)制解除指令時(shí),在n位序列中使分配到由該指令指定的任務(wù)的任務(wù)標(biāo)識(shí)符的bit成為“O”來解除屏蔽。
24.處理器,其特征是包含有周期數(shù)保存手段,保存分配給各任務(wù)的周期數(shù),這里,周期數(shù)是指執(zhí)行一任務(wù)由開始至轉(zhuǎn)換到下一任務(wù)為止的最大周期數(shù),所有任務(wù)的最大周期數(shù)的合計(jì)時(shí)間被設(shè)定為短于異步事件發(fā)生周期;計(jì)數(shù)器,對時(shí)鐘計(jì)數(shù);比較手段,在計(jì)數(shù)器的計(jì)數(shù)值與周期數(shù)保存手段的最大周期數(shù)一致時(shí)產(chǎn)生任務(wù)轉(zhuǎn)換信號(hào)和計(jì)數(shù)器復(fù)位信號(hào);選擇手段,具有予先確定的任務(wù)選擇的順序,在任務(wù)轉(zhuǎn)換信號(hào)被輸入時(shí)轉(zhuǎn)換任務(wù)的選擇;指令指定手段,在選擇手段選擇一個(gè)任務(wù)期間,順序指定該任務(wù)的指令;和執(zhí)行手段,執(zhí)行選擇手段選擇的任務(wù)的指令指定手段指定的指令。
25.權(quán)利要求24中所述處理器,其特征是,執(zhí)行對象任務(wù)的一個(gè)為關(guān)于所述異步事件的處理為分配,分配到該任務(wù)的周期數(shù)與異步事件發(fā)生周期內(nèi)重復(fù)選擇該任務(wù)的次數(shù)的乘積所得的周期數(shù)超過對異步事件所需的處理量。
26.權(quán)利要求25中所述處理器,其特征是所述處理器被設(shè)置在具有對動(dòng)畫數(shù)據(jù)流和音頻數(shù)據(jù)流進(jìn)行譯碼的譯碼器、譯碼器單元用于譯碼處理的本地緩存器、和外部存貯器的AV譯碼器系統(tǒng)中;所述任務(wù)數(shù)n為4;n個(gè)任務(wù)中的第一任務(wù)為由自AV譯碼器系統(tǒng)外部輸入的位流中提取動(dòng)畫數(shù)據(jù)流和音頻數(shù)據(jù)流,將所提取的動(dòng)畫數(shù)據(jù)流和音頻數(shù)據(jù)流寫入外部存貯器的任務(wù);第二任務(wù)為按照AV譯碼系統(tǒng)中譯碼器單元的進(jìn)展情況,將下面應(yīng)處理的動(dòng)畫數(shù)據(jù)流和音頻數(shù)據(jù)流由外部存貯器供給譯碼器單元的任務(wù),將譯碼結(jié)果存貯進(jìn)外部存貯器的任務(wù);第三任務(wù)為將譯碼器單元的譯碼結(jié)果中的動(dòng)畫數(shù)據(jù)由外部存貯器讀出,與外部連接的顯示器的同步信號(hào)同步地逐個(gè)輸出的任務(wù);第四任務(wù)為將譯碼器單元的譯碼結(jié)果中的聲音數(shù)據(jù)由外部存貯器讀出,以規(guī)定的周期輸出到外部連接的揚(yáng)聲器裝置的任務(wù);所述周期數(shù)保持手段,作為分配到第一~第四任務(wù)的周期數(shù)保存4個(gè)周期。
27.以n個(gè)任務(wù)作為執(zhí)行對象任務(wù)的處理器,其特征是包含任務(wù)選擇手段,按所確定的周期數(shù)順序選擇任務(wù);指令指定手段,具有與任務(wù)一對一的關(guān)系的n個(gè)指令指定信息,在由任務(wù)選擇手段選擇任務(wù)時(shí),使與之對應(yīng)的指令指定信息有效,同時(shí)以該信息作起點(diǎn)動(dòng)態(tài)地生成指定下一應(yīng)讀出的指令的信息;和執(zhí)行手段,讀出并執(zhí)行由指令指定手段所指定的指令。
28.權(quán)利要求27中所述處理器,其特征是,指令指定手段包含n個(gè)地址寄存器,與n個(gè)任務(wù)一對一相對應(yīng)地將有關(guān)對應(yīng)的任務(wù)的下一應(yīng)讀出的地址值作為指令指定信息加以保存;寄存器選擇單元,選擇對應(yīng)于任務(wù)選擇手段選擇的任務(wù)的地址寄存器,將其地址輸出;計(jì)數(shù)值寄存器,在由寄存器選擇單元選擇地址寄存器后,將該地址寄存器保存的地址值作為計(jì)數(shù)器初始值保存;增量器,每一周期將計(jì)數(shù)值寄存器保存的計(jì)數(shù)值增量;和讀出目的地址保存單元,將被增量的計(jì)數(shù)值作為指定所述下一應(yīng)讀出指令的信息的更新值加以保存。
29.權(quán)利要求28中所述處理器,其特征是,指令指定手段包含第一選擇器,在直接輸出增量器增量的計(jì)數(shù)值使之保存在讀出目的地址保存單元中,同時(shí)任務(wù)選擇手段選擇任務(wù)后,即選擇對應(yīng)于該任務(wù)的地址寄存器的地址值保存進(jìn)讀出目的地址保存單元;和第一改寫單元,在轉(zhuǎn)換到下一順序的任務(wù)時(shí),利用計(jì)數(shù)值寄存器保存的計(jì)數(shù)值來改寫直到轉(zhuǎn)換緊前面寄存器選擇單元所選擇的地址寄存器存貯的地址值。
30.權(quán)利要求29中所述處理器,其特征是,含有指定任務(wù)轉(zhuǎn)換的內(nèi)容的自發(fā)轉(zhuǎn)換指令;所述執(zhí)行手段包含譯碼手段,對由讀出目的地址保存單元保存的地址所指定的指令進(jìn)行譯碼;指令指定手段還包含有第二改寫單元,如果由譯碼手段所得譯碼結(jié)果為自發(fā)轉(zhuǎn)換指令,利用讀出目的地址保存單元保存的指令指定信息來改寫直到轉(zhuǎn)換緊前面選擇單元所選擇的地址寄存器存貯的地址值;和所述第一選擇器,如果譯碼手段所得譯碼結(jié)果為自發(fā)轉(zhuǎn)換指令,選擇輸出對應(yīng)于該下一任務(wù)的地址寄存器的地址值保存到讀出目的地址保存單元。
31.權(quán)利要求30中所述處理器,其特征是,任務(wù)中含有以絕對地址指定轉(zhuǎn)移的轉(zhuǎn)移指令;所述指令指定手段包含有第三改寫單元,如譯碼手段所得譯碼結(jié)果為轉(zhuǎn)移指令,利用該轉(zhuǎn)移指令中所含絕對地址來改寫直至轉(zhuǎn)換緊前面由選擇單元所選擇的地址寄存器存貯的地址值。
32.權(quán)利要求31中所述處理器,其特征是,任務(wù)中含有以間接地址指定指定轉(zhuǎn)移的轉(zhuǎn)移指令;第四改寫單元,如果譯碼器所得譯碼結(jié)果為間接地址指定型的轉(zhuǎn)移指令、而由執(zhí)行手段中的指令執(zhí)行來計(jì)算出轉(zhuǎn)移目的地址,則利用該轉(zhuǎn)移目的地址改寫直至轉(zhuǎn)換緊前面由選擇單元所選擇的地址寄存器存貯的地址值。
33.權(quán)利要求32中所述處理器,其特征是,執(zhí)行手段包含通用寄存器組,由nxm個(gè)通用寄存器構(gòu)成,各任務(wù)中分配有m個(gè)通用寄存器;和運(yùn)算執(zhí)行單元,由任務(wù)選擇手段選擇任務(wù)后,利用與其對應(yīng)的m個(gè)通用寄存器對所選擇任務(wù)中所含的指令執(zhí)行運(yùn)算。
全文摘要
計(jì)數(shù)器52為初始值設(shè)定為“1”、上限值設(shè)定為“4”的計(jì)數(shù)器,與時(shí)鐘信號(hào)同步地按1、2、3、4、1、2、3、4這樣來對觸發(fā)器51中保存的計(jì)數(shù)值進(jìn)行計(jì)數(shù)。此時(shí)鐘信號(hào)是指令譯碼控制單元11用于指令的執(zhí)行控制,所以指令譯碼控制單元11每執(zhí)行一次指令計(jì)數(shù)器52即作一次計(jì)數(shù)。比較器54將計(jì)數(shù)器52計(jì)數(shù)得到的值與整數(shù)值“4”進(jìn)行比較,如果二者相一致,即使任務(wù)轉(zhuǎn)換信號(hào)chg-task-ex值成為高電平值進(jìn)行消化下一任務(wù)的轉(zhuǎn)換。
文檔編號(hào)G06F9/48GK1211005SQ98108100
公開日1999年3月17日 申請日期1998年3月3日 優(yōu)先權(quán)日1997年3月4日
發(fā)明者田中卓敏, 前信潔, 平井誠, 吉岡康介, 清原督三 申請人:松下電器產(chǎn)業(yè)株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1