專利名稱:包含多個(gè)處理電路和存儲(chǔ)電路的數(shù)據(jù)處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及含多個(gè)如處理電路和存儲(chǔ)電路的基本電路的數(shù)據(jù)處理裝置。本發(fā)明可以應(yīng)用于,比如,視頻處理裝置,用于將視頻數(shù)據(jù)從一種顯示格式轉(zhuǎn)換為另一種顯示格式。
背景技術(shù):
按下面的方式處理數(shù)據(jù)是可能的。第一處理電路處理數(shù)據(jù)塊以便得到經(jīng)過(guò)一次處理的數(shù)據(jù)塊,經(jīng)過(guò)一次處理的數(shù)據(jù)塊被寫入存儲(chǔ)電路。隨后,第二數(shù)據(jù)處理器讀取經(jīng)過(guò)一次處理的數(shù)據(jù)塊并處理,得到經(jīng)過(guò)二次處理的數(shù)據(jù)塊,經(jīng)過(guò)二次處理的數(shù)據(jù)塊被寫入同一個(gè)或另一個(gè)存儲(chǔ)電路,等等。換句話說(shuō),有效地,數(shù)據(jù)處理電路構(gòu)成了數(shù)據(jù)處理鏈。每一處理電路執(zhí)行數(shù)據(jù)處理鏈的不同元件。存儲(chǔ)電路在兩個(gè)連續(xù)的數(shù)據(jù)處理電路之間提供緩沖存儲(chǔ)器。
向每個(gè)處理電路提供程序存儲(chǔ)器是可能的。因而程序存儲(chǔ)器將包括一套指令,使處理電路去執(zhí)行數(shù)據(jù)處理鏈涉及到的元件。歐洲專利,申請(qǐng)公開號(hào)為0 373 714(代理人文檔號(hào)PHN12762),公開了一種數(shù)據(jù)處理器,它包括多個(gè)處理器單元以及對(duì)應(yīng)每個(gè)處理器單元一個(gè)程序存儲(chǔ)器。
發(fā)明概述本發(fā)明的一個(gè)目的是能夠比較容易地進(jìn)行程序設(shè)計(jì)。
按照本發(fā)明,一種數(shù)據(jù)處理裝置,包含多個(gè)如處理電路和存儲(chǔ)電路的基本電路,包含一個(gè)控制器??刂破鞅痪幊虨轫憫?yīng)任務(wù)初始化數(shù)據(jù),連續(xù)地把控制數(shù)據(jù)用于基本電路的某個(gè)子集。這使得數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈處理數(shù)據(jù)塊。每個(gè)基本電路的子集執(zhí)行數(shù)據(jù)處理鏈的不同元件。
本發(fā)明考慮了以下幾個(gè)方面。在現(xiàn)有技術(shù)的數(shù)據(jù)處理裝置中,編程數(shù)據(jù)處理裝置需要幾套指令。每套指令被指定對(duì)應(yīng)不同的處理電路。因此,現(xiàn)有技術(shù)的數(shù)據(jù)處理裝置的軟件程序比較龐大。另外,數(shù)據(jù)處理電路的各套指令必須匹配,因?yàn)閿?shù)據(jù)處理鏈的每個(gè)元件必須與其相鄰的元件相匹配,如果有的話。因此,為了執(zhí)行特定的數(shù)據(jù)處理鏈,編寫軟件程序?qū)⑹潜容^地復(fù)雜。如果現(xiàn)有數(shù)據(jù)處理裝置由于要處理,比如不同類型的數(shù)據(jù),必須執(zhí)行不同的數(shù)據(jù)處理鏈時(shí),程序編制將更復(fù)雜。
根據(jù)本發(fā)明,任務(wù)初始化數(shù)據(jù)定義一個(gè)數(shù)據(jù)處理鏈,數(shù)據(jù)處理鏈按照處理操作由幾個(gè)元件組成??刂破黜憫?yīng)任務(wù)初始化數(shù)據(jù),編程控制基本電路的某些子集,這樣每個(gè)子集就連續(xù)地執(zhí)行數(shù)據(jù)處理鏈的不同元件。也就說(shuō),響應(yīng)任務(wù)初始化的要求,控制器被編程為適當(dāng)?shù)鼐幊炭刂茢?shù)據(jù)處理裝置的基本電路。因而,足以把任務(wù)初始化數(shù)據(jù)應(yīng)用于數(shù)據(jù)處理裝置使得數(shù)據(jù)處理裝置按期望的形式處理數(shù)據(jù)塊。所以,通過(guò)按任務(wù)初始化數(shù)據(jù)的形式定義一個(gè)或多個(gè)數(shù)據(jù)處理鏈,可以簡(jiǎn)化數(shù)據(jù)處理裝置的編程。因此本發(fā)明可以得到比較容易的程序設(shè)計(jì)。
本發(fā)明的這些特點(diǎn)及其它特點(diǎn),將在下面結(jié)合附圖更詳細(xì)地說(shuō)明。
附圖簡(jiǎn)述
圖1是一概念圖,示出了上文中描述的本發(fā)明的基本特點(diǎn);圖2是一概念圖,示出了其它特點(diǎn);圖3是一方框圖,示出了按照本發(fā)明的視頻處理裝置;圖4是一方框圖,示出了視頻處理裝置的第一過(guò)濾器模塊;圖5是一方框圖,示出了視頻處理裝置的輸出模塊;圖6是一方框圖,示出了視頻處理裝置如何處理像素模塊的示例;圖7是一方框圖,示出了視頻處理裝置的控制寄存器;圖8是一方框圖,示出了視頻處理裝置的基本操作方案;圖9是一方框圖,示出了視頻處理裝置的控制器;圖10是控制器的調(diào)度程序的部分示意圖;圖11是控制器的取數(shù)據(jù)文件的示意圖;圖12是控制器執(zhí)行的一系列步驟的示意圖;圖13是一方框圖,示出了視頻處理裝置的主總線接口。
發(fā)明的實(shí)施方案在下面的解釋中要涉及到標(biāo)號(hào)。相同的實(shí)體在所有圖中用相同的字母表示。幾個(gè)相似的實(shí)體可能出現(xiàn)在同一圖中,這時(shí),在標(biāo)號(hào)后添加數(shù)字或下標(biāo),以示區(qū)別。當(dāng)其值不重要(不關(guān)心其值)時(shí),為了方便起見,數(shù)字或下標(biāo)可以被省略或用星號(hào)代替。這些規(guī)則適用于說(shuō)明書和權(quán)利要求。
圖1示出了上文中描述的本發(fā)明的基本特點(diǎn)。一種數(shù)據(jù)處理裝置包含多個(gè)基本電路如處理電路[PRC]和存儲(chǔ)電路[MEM]。數(shù)據(jù)處理裝置還包括控制器[MCP]??刂破鱗MCP]被程序以響應(yīng)任務(wù)初始化數(shù)據(jù)[TID]而連續(xù)地把控制數(shù)據(jù)[CD]用于基本電路的子集。這使得數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈[DPC]處理數(shù)據(jù)塊[DB]。每個(gè)基本電路的子集執(zhí)行數(shù)據(jù)處理鏈[DPC]的不同項(xiàng)[E]。
以下幾個(gè)方面已經(jīng)考慮了關(guān)于圖1中示出的特點(diǎn)。一般地,在處理新數(shù)據(jù)塊前,一直等待直到一個(gè)數(shù)據(jù)塊被處理完是可能的。在這種情況下,數(shù)據(jù)處理裝置一次就只能處理一個(gè)數(shù)據(jù)塊。該方法的優(yōu)點(diǎn)是數(shù)據(jù)處理裝置的控制比較簡(jiǎn)單,但其缺點(diǎn)是單位時(shí)間內(nèi)它只能處理很少的數(shù)據(jù)塊。也就是說(shuō),數(shù)據(jù)處理比較慢。
相反,當(dāng)數(shù)據(jù)處理裝置還忙于處理一個(gè)或多個(gè)其它數(shù)據(jù)塊時(shí),它可以開始處理新的數(shù)據(jù)塊。在這種情況下,數(shù)據(jù)處理裝置就同時(shí)處理幾個(gè)數(shù)據(jù)塊。能這樣做是因?yàn)?,在特定的瞬間,基本電路的不同子集能夠分別地處理不同的數(shù)據(jù)塊。這種方法的優(yōu)點(diǎn)是在單位時(shí)間里能處理相當(dāng)多的數(shù)據(jù)塊。換言之,數(shù)據(jù)處理比較快。但是,由于基本電路的不同子集必須編程以便并行地處理不同的數(shù)據(jù)塊,所以數(shù)據(jù)處理裝置的控制相對(duì)地復(fù)雜了。
圖2示出了以下的其它特點(diǎn)??刂破鱗MCP]包括控制處理器[CPU]和控制存儲(chǔ)器[CMEM]。控制存儲(chǔ)器[CMEM]包含子程序[SR]的集合。每個(gè)子程序[SR]對(duì)應(yīng)數(shù)據(jù)處理鏈[DPC]的一個(gè)項(xiàng)[E]。它使得控制處理器[CPU]把控制數(shù)據(jù)[CD]應(yīng)用于基本電路[PRC/MEM]的子集,作為響應(yīng),基本電路[PRC/MEM]的子集將執(zhí)行數(shù)據(jù)處理鏈[DPC]涉及到的項(xiàng)[E]。每個(gè)子程序[SR],涉及到數(shù)據(jù)處理鏈[DPC]的項(xiàng)[E],接著是其它項(xiàng)[E],還使控制處理器[CPU]把指針[P]寫入任務(wù)延續(xù)文件[TCF]。指針[P]表明子程序[SR]涉及到一系列與數(shù)據(jù)處理鏈[DPC]相關(guān)的項(xiàng)[E]。
如圖2所示的控制存儲(chǔ)器[CMEM]還包括內(nèi)核[KRNL]。內(nèi)核[KRNL]分別使控制處理器[CPU]去讀取新的任務(wù)初始化數(shù)據(jù)[RD(TID)],表示子程序[SR]涉及到數(shù)據(jù)處理鏈[DPC]的第一項(xiàng)[E]。它還讓控制處理器[CPU]去讀取包含在任務(wù)延續(xù)文件中的指針[RD(P∈TCF)]。內(nèi)核還促使控制處理器[CPU]去執(zhí)行由新的任務(wù)初始化數(shù)據(jù)和已經(jīng)讀出的指針表示的子程序[EXEC(SR)]。
上文中提到的含在控制存儲(chǔ)器[CMEM]內(nèi)的信息分別促使控制處理器[CPU]去執(zhí)行一系列控制行為。一個(gè)控制行為使數(shù)據(jù)處理裝置開始處理新的數(shù)據(jù)塊。其它控制行為使數(shù)據(jù)處理裝置接著已經(jīng)開始的數(shù)據(jù)處理,連續(xù)地處理數(shù)據(jù)塊。更具體地,含在控制存儲(chǔ)器[CMEM]內(nèi)的信息自動(dòng)地使控制處理器[CPU]去程序控制基本電路的不同子集。每個(gè)子集與其它子集并行地處理不同的數(shù)據(jù)塊。如圖2所示的特點(diǎn)因此自動(dòng)地管理并行的不同數(shù)據(jù)塊的處理。也就是說(shuō),把一系列任務(wù)初始化數(shù)據(jù)應(yīng)用于數(shù)據(jù)處理裝置是完全可以的。余下的由控制器[MCP]來(lái)完成。因此,如圖2所示的特點(diǎn),允許同時(shí)處理不同的數(shù)據(jù)塊而無(wú)須要求復(fù)雜的軟件。
如圖1所示的特征可以適用于,比如,視頻處理裝置??梢赃x擇地,如圖2所示的特征也可以適用。視頻處理裝置可以用于,比如,將視頻數(shù)據(jù)從一種顯示格式更改為另一種顯示格式,如通過(guò)更改線數(shù)和每條線上的像素?cái)?shù)或二者之一。視頻處理裝置也可以用于比如,在主圖片中插入子圖片和圖形或二者之一。
圖3示出了根據(jù)本發(fā)明的視頻處理裝置。視頻處理裝置通過(guò)主總線從主存儲(chǔ)器接[HWY]收數(shù)據(jù),主存儲(chǔ)器未示出。作為響應(yīng),它提供視頻輸出流[VIDOUT],可以應(yīng)用于,比如,視頻顯示裝置或視頻記錄裝置。視頻處理裝置包括一個(gè)主總線接口[MBIF],兩個(gè)過(guò)濾器模塊第一和第二過(guò)濾器模塊[XPB1,XPB2],一個(gè)輸出模塊[XPC],一個(gè)輸出流電路[SO]和一個(gè)控制器[MCP]。兩個(gè)過(guò)濾器模塊[XPB]和輸出模塊[XPC]通過(guò)兩條內(nèi)部總線第一和第二內(nèi)部總線[XBUS1,XBUS2]連接到主總線接口[MBIF]。控制器[MCP]通過(guò)控制總線[CBUS]連接到如圖3所示的其它各個(gè)模塊。存在數(shù)據(jù)允許數(shù)據(jù)在兩個(gè)過(guò)濾器模塊[XPB]和輸出模塊[XPC]之間傳輸?shù)穆窂?。這些路徑在圖3中示出了但未命名。
圖4示出了第一過(guò)濾器模塊[XPB1]。第二過(guò)濾器模塊[XPB2]是同樣的。第一過(guò)濾器模塊[XPB1]包括兩個(gè)內(nèi)部總線接口[IBIF],各自對(duì)應(yīng)內(nèi)部總線[XBUS]和數(shù)據(jù)傳輸電路[TRNSFR]。數(shù)據(jù)傳輸電路[TRNSFR]允許數(shù)據(jù)傳輸?shù)狡渌^(guò)濾器模塊即第二過(guò)濾器模塊[XPB2]和輸出模塊[XPC]。第一過(guò)濾器模塊[XPB1]還包括一個(gè)輸入交叉開關(guān)(crossbar)[XBARI];一個(gè)輸出交叉開關(guān)[XBARO];按第一到第二十四SRAM[SRAM1-SRAM24]形式排列的24個(gè)存儲(chǔ)電路;按第一到第二水平過(guò)濾器[HFIL1,HFIL2]和第一到第二垂直過(guò)濾器[VFIL1,VFIL2]形式排列的4個(gè)處理器電路。輸入交叉開關(guān)[XBARI]可以從其它過(guò)濾器模塊即第二過(guò)濾器模塊[XPB2]或從輸出模塊[XPC]接收數(shù)據(jù)。
圖5示出了輸出模塊[XPC]。輸出模塊[XPC]包括兩個(gè)內(nèi)部總線接口[IBIF],各自對(duì)應(yīng)內(nèi)部總線[XBUS]和數(shù)據(jù)傳輸電路[TRNSFR]。輸出模塊[XPC]還包括兩個(gè)輸入交叉開關(guān)[XBARI1,XBARI2];一個(gè)輸出交叉開關(guān)[XBARO];按第一到第二十四SRAM[SRAM1-SRAM24]的形式排列的24個(gè)存儲(chǔ)電路;和按矩陣/解矩陣電路[MD]形式排列的5個(gè)處理電路;兩個(gè)抽樣[UPS];一個(gè)混和器?[BLND]和一個(gè)查找表[LUT]。第一和第二輸入交叉開關(guān)[XBARI1,XBAR2]可以從兩個(gè)過(guò)濾器[XPB]接收數(shù)據(jù)。第二輸入交叉開關(guān)[XBARI2]也可以從控制器[MCP]接收數(shù)據(jù)。輸出交叉開關(guān)[XBARO]可以把數(shù)據(jù)應(yīng)用于流輸出電路[SO]和控制器[MCP]。
如圖3所示的視頻處理裝置的基本操作如下。主總線接口[MBIF]通過(guò)主總線[HWY]從主存儲(chǔ)器取像素塊,主存儲(chǔ)器在圖4中未示出。接下來(lái),主總線接口[MBIF]通過(guò)一條內(nèi)部總線[XBUS]把像素塊傳輸?shù)皆谝粋€(gè)過(guò)濾器模塊[XPB]或輸出模塊[XPC]內(nèi)的SRAM。再往后,在過(guò)濾器模塊[XPB]或輸出模塊[XPC]內(nèi)的一個(gè)處理電路處理像素塊。由此得到了經(jīng)過(guò)一次處理的模塊。經(jīng)過(guò)一次處理的模塊被存儲(chǔ)在另一個(gè)SRAM內(nèi)。接著,同一個(gè)或另一個(gè)處理電路可以處理經(jīng)過(guò)一次處理的像素塊。這樣一步接一步連續(xù)地處理直到像素塊被完全處理,被完全處理過(guò)的像素塊被存儲(chǔ)在輸出模塊[XPC]內(nèi)的SRAM里。隨后,輸出模塊[XPC]把完全處理過(guò)的像素塊傳輸?shù)搅鬏敵鲭娐穂SO]。
上文中描述了視頻處理裝置對(duì)不同像素塊實(shí)施連續(xù)地處理。接下來(lái),流輸出電路[SO]接收連續(xù)的完全處理過(guò)的像素塊。賦予像素以適當(dāng)?shù)母袷浇邮詹⒃黾右恍┩叫盘?hào)。于是就得到了視頻輸出流[VIDOUT]。
圖6示出了處理像素塊的一個(gè)示例。它包括步驟第(ⅰ)步、第(ⅰ+1)步和第(ⅰ+2)處理步驟[PS(ⅰ)、PS(ⅰ+1)、PS(ⅰ+2)]。假設(shè)如圖3所示的主總線接口[MBIF]已經(jīng)從主存儲(chǔ)器取得了像素塊。因此像素塊在主總線接口[MBIF]內(nèi)。
在第(ⅰ)處理步驟[PS(ⅰ)],主總線接口[MBIF]通過(guò)第一內(nèi)部總線[XBUS1]把像素塊傳輸?shù)皆诘谝贿^(guò)濾器模塊[XPB1]內(nèi)的第一SRAM[SRAM1]。在第(ⅰ+1)處理步驟[PS(ⅰ+1)],第一過(guò)濾器模塊[XPB1]處理像素塊。更具體地,第一水平過(guò)濾器[HFIL1]從第一SRAM[SRAM1]一個(gè)像素一個(gè)像素地讀取像素塊,讀取像素、處理像素并將處理后的像素寫入輸出模塊[XPC]的第12SRAM[SRAM12]。這一傳輸是通過(guò)如圖4所示的第一過(guò)濾器模塊[XPB1]的輸出交叉開關(guān)[XBARO]和數(shù)據(jù)傳輸電路[TRNSFR],以及通過(guò)如圖5所示的輸出模塊[XPC]的第一輸入交叉開關(guān)[XBARI1]進(jìn)行的。因此,在第(ⅰ+1)處理步驟[PS(ⅰ+1)]結(jié)束時(shí),輸出模塊[XPC]的第12SRAM[SRAM12將具由經(jīng)過(guò)處理的像素塊。在第(ⅰ+2)處理步驟[PS(ⅰ+2)],輸出模塊[XPC]把經(jīng)過(guò)處理的像素塊傳輸?shù)搅鬏敵鲭娐穂SO]。
如圖6所示的處理符合由單一水平過(guò)濾器構(gòu)成的視頻處理鏈。圖3所示的視頻處理裝置允許由許多不同的視頻處理鏈。比方說(shuō),允許視頻處理鏈包括一系列過(guò)濾器,可以并行地處理,也可以是其它形式的處理如彎曲、向上或向下采樣。包含在兩個(gè)過(guò)濾器模塊[XPB]和輸出模塊[XPC]內(nèi)的SRAM,被用作視頻處理鏈中兩個(gè)連續(xù)的項(xiàng)之間的先入先出(FIFO)存儲(chǔ)器,一個(gè)項(xiàng)對(duì)應(yīng)一個(gè)特定的處理操作。
一般地,如圖3所示的視頻處理裝置每步都可以開始處理新的像素塊。因此,視頻處理裝置在某一處理步驟期間可以同步地處理不同的數(shù)據(jù)塊。比如,參見圖6,在第(ⅰ+1)處理步驟[PS(ⅰ+1)],主總線接口[MBIF]可以把新像素塊傳輸?shù)降谝换虻诙^(guò)濾器模塊[XPB1,XPB2]或輸出模塊[XPC]的SRAM。新的像素塊可以經(jīng)歷,比如,圖6所示的視頻處理鏈。在這種情況下,圖6所示的操作由處理新像素塊的操作替換了。
還有,圖3所示的視頻處理裝置在每一處理步驟可以開始處理兩個(gè)新像素塊。這要涉及到兩條內(nèi)部總線[XBUS]。每條內(nèi)部總線[XBUS]在單一處理步驟內(nèi),允許將像素塊從主總線接口[MBIF]傳輸?shù)降谝换虻诙^(guò)濾器模塊[XPB1,XPB2]或輸出模塊[XPC]。比如,參見圖6及圖6所示的第(ⅰ)處理步驟[PS(ⅰ)],當(dāng)主總線接口[MBIF]通過(guò)第一內(nèi)部總線[XBUS1]將相關(guān)的像素塊傳輸?shù)降谝贿^(guò)濾器模塊[XPB1]的第一SRAM[SRAM1]時(shí),主總線接口[MBIF]還可以通過(guò)第二內(nèi)部總線[XBUS2]把其它像素塊傳輸?shù)降谝贿^(guò)濾器模塊[XPB1]的其它SRAM或第二過(guò)濾器模塊[XPB2]的或輸出模塊[XPC]的一個(gè)SRAM。
圖3所示的控制器[MCP]使視頻處理裝置按照一定的視頻處理鏈處理像素塊。該處理包括前文中結(jié)合圖6所描述的一系列處理步驟[PS]。另外,在某一步驟內(nèi)的處理只包括視頻處理裝置中的電路的某一個(gè)子集。對(duì)每一處理步驟,控制器[MCP]為該步驟涉及到的電路子集相應(yīng)地編程。
比如,如圖6所示的處理中,更具體些,在第(ⅰ+1)處理步驟[PS(ⅰ+1)]中。該處理涉及到了圖4所示的第一水平過(guò)濾器[HFIL1]的如下電路第一SRAM[SRAM1]、輸入交叉開關(guān)[XBARI1]、第一水平過(guò)濾器[HFIL1]、輸出交叉開關(guān)[XBARO]和傳輸模塊[TRNSFR]。該處理還涉及到圖5中所示的輸出模塊[XPC]的如下電路第一輸入交叉開關(guān)[XBARI1]和第十二SRAM[SRAM12]。
圖3所示的控制器[MCP]程序控制上述電路,結(jié)合起來(lái)實(shí)施圖6所示的第(ⅰ+1)處理步驟[PS(ⅰ+1)]的處理。控制器[MCP]程序控制第一過(guò)濾器模塊[XPB1]的第一SRAM[SRAM1],因而提供需要過(guò)濾的像素塊。比如,通過(guò)定義適當(dāng)?shù)淖x開始地址就可以這樣進(jìn)行。控制器程序控制第一過(guò)濾器模塊[XPB1]的輸入交叉開關(guān)[XBARI1]使第一[SRAM1]與第一水平過(guò)濾器[HFIL1]結(jié)合。控制器程序控制第一水平過(guò)濾器[HFIL1]使之實(shí)施期望的類型的過(guò)濾。控制器[MCP]程序控制輸出交叉開關(guān)[XBARO]和第一過(guò)濾器模塊[XPB1]的數(shù)據(jù)傳輸電路[TRNSFR]和輸出模塊[XPC]的第一輸入交叉開關(guān)[XBARI1],使得這些電路結(jié)合第一過(guò)濾器模塊[XPB1]的第一水平過(guò)濾器[HFIL1]與輸出模塊[XPC]的第十二SRAM[SRAM12]。最后,控制器[MCP]程序控制輸出模塊[XPC]內(nèi)的第十二SRAM[SRAM12],以使經(jīng)過(guò)過(guò)濾的像素被適當(dāng)?shù)卮鎯?chǔ)。比如,通過(guò)定義適當(dāng)?shù)膶戦_始地址就可以這樣進(jìn)行。
圖4所示的兩個(gè)過(guò)濾器模塊[XPB]的電路和圖5所示的輸出模塊[XPC]具有控制寄存器。控制寄存器的內(nèi)容定義屬于該控制寄存器的電路的功能性行為。因此,如圖3所示的控制器[MCP]通過(guò)將控制數(shù)據(jù)寫入各自的控制寄存器對(duì)在過(guò)濾器模塊[XPB]和輸出模塊[XPC]內(nèi)的電路進(jìn)行編程??刂破鱗MCP]也可以通過(guò)管理已經(jīng)包含在該電路的控制寄存器內(nèi)的控制數(shù)據(jù)來(lái)實(shí)現(xiàn)程序控制電路。
圖7示出了一個(gè)控制寄存器[CREG]??刂萍拇嫫鱗CREG]包括正面寄存器[FREG]、影子寄存器[SREG]和寄存器控制器[RCNTRL]。其基本操作如下??刂萍拇嫫鱗CREG]通過(guò)控制總線[CBUS]從控制器[MCP]接收控制數(shù)據(jù),控制總線[CBUS]和控制器[MCP]均見圖3。該控制數(shù)據(jù)首先被寫入正面寄存器[FREG]。響應(yīng)來(lái)自控制器[MCP]的控制指令,寄存器控制器[RCNTRL]可以讓控制數(shù)據(jù)傳輸?shù)接白蛹拇嫫鱗SREG]。在影子寄存器[SREG]內(nèi)的控制數(shù)據(jù)定義屬于該控制寄存器的電路的功能性行為。當(dāng)包含在正面寄存器[FREG]的控制數(shù)據(jù)傳輸?shù)接白蛹拇嫫鱗SREG]時(shí),含在影子寄存器[SREG]內(nèi)控制數(shù)據(jù)可以傳回正面寄存器[FREG]。響應(yīng)來(lái)自控制器[MCP]的指令,寄存器控制器[RCNTRL]使這樣的數(shù)據(jù)交換能夠進(jìn)行。
圖8示出了如圖3中所示的視頻處理裝置的基本操作方案。水平刻度代表時(shí)鐘周期。視頻處理裝置可以選擇地實(shí)施處理步驟[PS]和配置步驟[CS]。
在處理步驟[PS]中,視頻處理裝置可以操作一個(gè)或多個(gè)像素塊。比如說(shuō),一個(gè)像素塊可以經(jīng)過(guò)處理電路或簡(jiǎn)單地從一個(gè)存儲(chǔ)電路傳輸?shù)搅硪粋€(gè)存儲(chǔ)電路。類似地,另一個(gè)像素塊可以經(jīng)過(guò)另一個(gè)處理電路或傳輸?shù)皆倭硪粋€(gè)存儲(chǔ)電路。這些像素塊的操作,是由視頻處理裝置內(nèi)的包含在各自的影子寄存器內(nèi)的控制數(shù)據(jù)定義的。
在處理步驟[PS]中,圖3所示的控制器[MCP],當(dāng)數(shù)據(jù)經(jīng)過(guò)處理后,可以把控制數(shù)據(jù)寫入不同的控制寄存器。它還指示各自寄存器控制器在隨后的配置步驟[CS]中應(yīng)該執(zhí)行什么行為。在影子寄存器中的各個(gè)控制數(shù)據(jù)不會(huì)被更改,因?yàn)檫@些控制數(shù)據(jù)定義要實(shí)施的數(shù)據(jù)操作。處理步驟中把控制數(shù)據(jù)寫入正面寄存器可以看作是一連串處理步驟的預(yù)備。也就是說(shuō),當(dāng)數(shù)據(jù)被第(n)處理步驟[PS(n)]操作時(shí),第(n+1)處理步驟[PS(n+1)]操作已經(jīng)定義了。
在配置步驟[CS]中,各個(gè)影子寄存器的內(nèi)容可以更改。比如,參見圖8所示的控制寄存器[CREG],寄存器控制器[RCNTRL]可以使影子寄存器[SREG]代替包含在正面寄存器[FREG]內(nèi)的控制數(shù)據(jù)。寄存器控制器[RCNTRL]可以讓影子寄存器[SREG]內(nèi)的控制數(shù)據(jù)不改變。這樣,如果有這樣的傳輸,配置步驟[CS]僅僅涉及到各個(gè)控制寄存器之間的控制數(shù)據(jù)的傳輸。另外,控制數(shù)據(jù)可以在各自寄存器內(nèi)同步地傳輸。因此,配置步驟只需要幾個(gè)時(shí)鐘周期。
處理步驟[PS]和配置步驟[CS]可以選擇地按下面的方式一個(gè)接一個(gè)地進(jìn)行。假設(shè)圖3所示的視頻處理電路執(zhí)行一個(gè)處理步驟。這一般是指不同的處理電路處理像素塊。已經(jīng)處理完其像素塊的處理電路發(fā)信號(hào)給圖3所示的控制器[MCP],告知它已經(jīng)完成其任務(wù)。當(dāng)控制器[MCP]收到來(lái)自每個(gè)被激活的處理電路的準(zhǔn)備信號(hào)時(shí),開始配置步驟。同樣地,控制寄存器已經(jīng)把作為指令信號(hào)的控制數(shù)據(jù)傳輸給已經(jīng)完成任務(wù)的控制器[MCP]。這意味著適當(dāng)?shù)目刂茢?shù)據(jù)已經(jīng)在影子寄存器內(nèi)了。當(dāng)控制器[MCP]已經(jīng)收到來(lái)自傳輸控制數(shù)據(jù)的每個(gè)控制寄存器的這種配置信號(hào)時(shí),就開始處理步驟[PS]。
圖9示出了視頻處理裝置的控制器[MCP]。控制器[MCP]包括控制處理器[CPU]和控制存儲(chǔ)器[CMEM]??刂拼鎯?chǔ)器[CMEM]含以下各項(xiàng)內(nèi)核[KRNL]、子程序庫(kù)[SR]、調(diào)度程序[SCHED]、取數(shù)據(jù)文件[DFF]和任務(wù)延續(xù)文件[TCF]??刂拼鎯?chǔ)器[CMEM]也可以包含數(shù)據(jù)項(xiàng),比如變量。內(nèi)核[KRNL]和子程序[SR]包含控制處理器[CPU]的指令。調(diào)度程序[SCHED]、取數(shù)據(jù)文件[DFF]和任務(wù)延續(xù)文件[TCF]包含子程序的地址。
一個(gè)子程序[SR]定義處理步驟[PS]中的某數(shù)據(jù)塊的操作。比如,如圖6所示,在第(ⅰ+1)處理步驟[PS(ⅰ+1)]中,一個(gè)像素塊從第一過(guò)濾器模塊[XPB1]的第一SRAM[SRAM1]讀出,使之通過(guò)第一過(guò)濾器模塊[XPB1]的第一水平過(guò)濾器[HFIL1]被處理,處理后的像素塊被寫入輸出模塊[XPC]的第十二SRAM[SRAM12]。該操作是借助程序[SR]定義的。根據(jù)視頻信號(hào)處理,程序[SR]涉及到視頻處理鏈的特定的項(xiàng)。
更具體地,程序[SR]使控制處理器[CPU]程序控制視頻處理裝置,這樣就可以實(shí)施要求的操作了。換句話說(shuō),程序[SR]讓控制處理器[CPU]把控制數(shù)據(jù)寫入涉及到操作的電路的控制寄存器[CREG],或轉(zhuǎn)移已經(jīng)包含在控制寄存器[CREG]內(nèi)的控制命令,或二者都做,這樣一來(lái),這些電路的影子寄存器[SREG]就有了適當(dāng)?shù)目刂茢?shù)據(jù)。
圖10示出了調(diào)度程序[SCHED]的一部分。用具有行和列的矩陣來(lái)表示調(diào)度程序[SCHED]。圖10只示出了調(diào)度程序[SCHED]的一部分第(j)行和第(j+1)行[R(j),R(j+1)],和第(k)列到第(k+7)列[C(k),…C(k+7)]。調(diào)度程序[SCHED]的一部分示出了關(guān)于圖片的一條線的周期。每各單元定義視頻處理裝置的一項(xiàng)特定任務(wù)。關(guān)于數(shù)據(jù)塊的任務(wù)包含在主存儲(chǔ)器中。任務(wù)的編號(hào),0、1、2、3或4,定義數(shù)據(jù)是什么類型的和按照數(shù)據(jù)處理和傳輸,視頻處理裝置應(yīng)該如何處理。
比如說(shuō),任務(wù)1可能是關(guān)于一張高清晰度圖片的亮度像素塊。任務(wù)2可能是關(guān)于同一張高清晰度圖片的色度像素塊。任務(wù)3可能是關(guān)于標(biāo)準(zhǔn)清晰度圖片的亮度像素塊。每個(gè)不同的像素塊必須根據(jù)不同的視頻信號(hào)處理鏈來(lái)處理。任務(wù)4可能是關(guān)于調(diào)度程序[SCHED]的新數(shù)據(jù)。它由含新數(shù)據(jù)的更新的調(diào)度程序[SCHED]構(gòu)成。任務(wù)0(零)是所謂的空任務(wù)。空任務(wù)不涉及到數(shù)據(jù)塊,因此,它不能使視頻處理裝置傳輸和處理任何數(shù)據(jù)。
更進(jìn)一步說(shuō),定義一項(xiàng)非空任務(wù)(1、2、3、4)的單元含有子程序的起始地址。這是子程序鏈的第一個(gè)子程序,促使視頻處理裝置執(zhí)行要求的任務(wù)。下文中,其起始地址被包含在調(diào)度程序[SCHED]內(nèi)的子程序?qū)⒈环Q作第一子程序。程序鏈的每個(gè)子程序執(zhí)行不同的處理步驟。
子程序鏈的構(gòu)成和管理是通過(guò)圖9中所示的包含在控制存儲(chǔ)器[CMEM]內(nèi)的各項(xiàng)來(lái)完成的內(nèi)核[KRNL]、取數(shù)據(jù)文件[DFF]和任務(wù)延續(xù)文件[TCF]。也就是說(shuō),這些項(xiàng)使控制處理器[CPU]控制視頻處理裝置,使之適當(dāng)?shù)貙?shí)施調(diào)度程序[SCHED]定義的各種任務(wù)。下面將更詳細(xì)地解釋。
參見圖3,第一子程序命令主總線接口[MBIF]從主存儲(chǔ)器取相關(guān)的數(shù)據(jù)塊。另外,第一子程序?qū)训诙映绦虻钠鹗嫉刂穼懭肴?shù)據(jù)文件[DFF],如圖9所示。第二子程序使主總線接口[MBIF]把數(shù)據(jù)塊傳輸?shù)降谝换虻诙^(guò)濾器模塊[XPB1,XPB2]的或輸出模塊[XPC]的存儲(chǔ)電路。該傳輸將通過(guò)第一或第二內(nèi)部總線[XBUS1,XBUS2]進(jìn)行,根據(jù)第一子程序的起始地址是否分別在圖10示出的調(diào)度程序[SCHED]的第(j)行或第(j+1)行[R(j),R(j+1)]。只有當(dāng)確認(rèn)了相關(guān)的數(shù)據(jù)塊出現(xiàn)在主總線接口[MBIF]時(shí),才執(zhí)行第二子程序。最后,第二子程序在一定延時(shí)后執(zhí)行。該延時(shí)是通過(guò)控制存儲(chǔ)器[CMEM]內(nèi)的取數(shù)據(jù)文件[DFF]來(lái)完成的。
圖11示出了取數(shù)據(jù)文件[DFF]。取數(shù)據(jù)文件[DFF]在功能上可以看作是以列表形式的三種寄存器的結(jié)合初級(jí)的,中級(jí)的和最終總線(highway)取寄存器[HFP0、HFP1、HFP2]。每個(gè)總線取寄存器[HFP]對(duì)應(yīng)4個(gè)連續(xù)的處理步驟。更具體地說(shuō),總線取寄存器[HFP]的每一行對(duì)應(yīng)一個(gè)處理步驟。
取數(shù)據(jù)文件[DFF]的功能如下。在第(n)步,如圖9所示的控制處理器[CPU]執(zhí)行第一子程序,第一子程序在圖10所示的調(diào)度程序[SCHED]的第(j)行和第(j+1)行[R(j),R(j+1)]以及第(k)列[C(k)]的單元內(nèi)被定義。這些第一子程序?qū)⑹箍刂铺幚砥鱗CPU]把各自的第二子程序的起始地址寫入初級(jí)總線取寄存器[HFP0]的第一行。在隨后的第(n+1)步,控制處理器[CPU]執(zhí)行第一子程序,該第一子程序在圖10所示的調(diào)度程序[SCHED]的第(j)行和第(j+1)行[R(j),R(j+1)]以及第(k+1)列[C(k+1)]的單元內(nèi)被定義。這些第一子程序?qū)⑹箍刂铺幚砥鱗CPU]把各自的第二子程序的起始地址寫入初級(jí)總線取寄存器[HFP0]的第二行。
上文中描述的步驟是一步一步連續(xù)的。因此,初級(jí)總線取寄存器[HFP0]將填滿第(n+4)步。在中級(jí)總線取寄存器[HFP1]的內(nèi)容復(fù)制到最終總線取寄存器[HFP2]后,其內(nèi)容被復(fù)制到中級(jí)總線取寄存器[HFP1]。實(shí)際上,總線取寄存器[HFP]移動(dòng)一位給余下的4個(gè)處理步驟的每個(gè)周期。在第(ⅰ+5)步,如圖9所示的控制處理器[CPU]執(zhí)行第一子程序,該第一子程序在圖10所示的調(diào)度程序[SCHED]的第(j)行和第(j+1)行[R(j),R(j+1)]以及第(k+5)列[C(k+5)]的單元內(nèi)被定義。由于初級(jí)總線取寄存器[HFP0]已經(jīng)空了,這些第一子程序?qū)⑹箍刂铺幚砥鱗CPU]把各自的第二子程序的起始地址寫入初級(jí)總線取寄存器[HFP0]的第一行。
如圖9所示的控制處理器[CPU]從最終總線取寄存器[HFP2]讀出各自的第二子程序的起始地址,以便執(zhí)行這些子程序。更具體地,當(dāng)控制處理器[CPU]已經(jīng)把第二子程序的起始地址寫入初級(jí)總線取寄存器[HFP0]的單元時(shí),它就從在同一位置的最終總線取寄存器[HFP2]的單元內(nèi)讀出第二子程序的起始地址。之后,控制處理器[CPU]將執(zhí)行后面的,其起始地址已經(jīng)從最終總線取寄存器[HFP2]的單元內(nèi)讀出了的第二子程序。這里已經(jīng)解釋了總線取寄存器[HFP]移動(dòng)一位給余下的4個(gè)處理步驟的每個(gè)周期。
因此,圖11所示的取數(shù)據(jù)文件[DFF],在來(lái)自主存儲(chǔ)器的數(shù)據(jù)請(qǐng)求任務(wù)的第一子程序與任務(wù)的第二子程序之間,帶來(lái)了8步的延時(shí),以及第二子程序是把這些數(shù)據(jù)從圖3所示的主總線接口[MBIF]傳輸?shù)綀D3所示的第一或第二過(guò)濾器模塊[XPB1,XPB2]或輸出模塊[XPC]。這一延時(shí)說(shuō)明一個(gè)反應(yīng)時(shí)間,它伴隨著通過(guò)主總線[HWY]和主總線接口[MBIF]取數(shù)據(jù)。對(duì)反應(yīng)時(shí)間以及主總線接口[MBIF],將在下面更詳細(xì)地說(shuō)明。
當(dāng)控制處理器[CPU]已經(jīng)執(zhí)行任務(wù)的第一和第二子程序時(shí),作為任務(wù)主體的數(shù)據(jù)塊將出現(xiàn)在第一或第二過(guò)濾器模塊或輸出模塊的存儲(chǔ)電路中。然后,視頻處理裝置準(zhǔn)備好處理數(shù)據(jù)塊,或僅僅傳輸它,通過(guò)第三和后面的子程序。這些子程序被執(zhí)行如下。
第二子程序使圖9所示的控制處理器[CPU]把第三子程序的起始地址寫入圖9所示的任務(wù)延續(xù)文件[TCF]。該寫入行為在執(zhí)行第二子程序的過(guò)程中完成。在接下來(lái)的處理步驟中,控制處理器[CPU]讀取第三子程序并執(zhí)行該子程序。這促使控制處理器[CPU]把第四子程序的起始地址,如果有,就寫入任務(wù)延續(xù)文件[TCF]。這樣的步驟一直進(jìn)行下去,直到任務(wù)的最后一個(gè)子程序被執(zhí)行。然后,結(jié)束任務(wù)。
參見圖9,內(nèi)核[KRNL]是這樣的程序,它使控制處理器[CPU]讀取調(diào)度程序[SCHED]內(nèi)的子程序的地址、取數(shù)據(jù)文件[DFF]和任務(wù)延續(xù)文件[TCF],并象上文中所描述的那樣執(zhí)行這些子程序。內(nèi)核[KRNL]可以被由圖3所示的流輸出電路[S0]產(chǎn)生的中斷信號(hào)激活。該中斷信號(hào)表示視頻輸出流[VIDOUT]已經(jīng)到達(dá)當(dāng)前幀內(nèi)的一點(diǎn)。流輸出電路[S0]可以把中斷信號(hào)應(yīng)用于控制處理器[CPU]從而在,比如,視頻輸出流[VIDOUT]已經(jīng)到達(dá)倒數(shù)第二消隱線時(shí),激活內(nèi)核[KRNL]。在關(guān)于一幀的最后像素塊的任務(wù)之后,內(nèi)核[KRNL]可能被停止。圖10中所示的調(diào)度程序[SCHED]最好包括一項(xiàng)特殊任務(wù)適時(shí)地停止所有處理并復(fù)位視頻處理裝置中的電路。
圖12示出了一系列步驟,內(nèi)核[KRNL]使處理器執(zhí)行每一步處理。當(dāng)然,假設(shè)內(nèi)核[KRNL]是激活的。這一系列步驟包括從第一步到第五步[S1-S5]。
在第一步[S1],控制處理器讀取圖10所示的調(diào)度程序[SCHED]內(nèi)的兩個(gè)單元[RD(SCHED)]。這兩個(gè)單元的讀取是根據(jù)當(dāng)前處理步驟和當(dāng)前線。參見圖10,每處理屬于某線的一步,控制處理器向右移一列。每處理一條新線,控制處理器向下移兩行。行可以根據(jù)處理步驟的編號(hào)來(lái)定義。比如,如圖10,一條線包括8個(gè)處理步驟。前面已經(jīng)解釋了調(diào)度程序[SCHED]的單元,以子程序鏈的第一子程序的起始地址的形式來(lái)定義任務(wù)。因此,在第一步[S1],控制處理器讀取兩個(gè)第一子程序起始地址并把這些起始地址寫入子程序執(zhí)行文件。該文件可以是,比如,寄存器的集合形式。
在第二步[S2],控制處理器讀取在最終總線取寄存器內(nèi)的一行上的兩個(gè)單元[RD(HFP2)]。這兩個(gè)單元是根據(jù)當(dāng)前處理步驟來(lái)讀取的。參見圖11,每處理一步,控制處理器就向下移一行,直到最后一行。之后,下一行就成了最終總線取寄存器[HFP2]的最上面一行。前面已經(jīng)解釋了最終總線取寄存器[HFP2]的單元包含任務(wù)中的第二子程序的起始地址。因此,在第二步[S2],控制處理器讀取兩個(gè)第二子程序起始地址并把這些起始地址寫入子程序執(zhí)行文件。
在第三步,控制處理器讀取如圖3所示的流輸出電路[S0]中的指針[RD(S0)]。指針表示緩沖器滿,已處理過(guò)的像素在以視頻輸出流[VIDOUT]的形式輸出前,暫時(shí)存儲(chǔ)在緩沖器內(nèi)。指針告知控制處理器[CPU],可以說(shuō),流輸出電路[S0]是否需要另外的已處理過(guò)的像素。
在第四步[S4],控制處理器讀取包含在圖9所示的任務(wù)延續(xù)文件[TCF]中的起始地址。這些起始地址涉及到任務(wù)中的第三和另外的子程序。也就是說(shuō),任務(wù)延續(xù)文件[TCF]包含除了任務(wù)的第一和第二子程序之外的子程序的起始地址。控制處理器將從任務(wù)延續(xù)文件[TCF]中讀出的起始地址寫入子程序執(zhí)行文件的地址。
在第五步[S5],控制處理器一個(gè)接一個(gè)的讀取包含在子程序執(zhí)行文件中起始地址。作為響應(yīng),控制處理器應(yīng)用這些起始地址,一個(gè)接一個(gè)第執(zhí)行子程序。因此,可以這樣說(shuō)對(duì)每一處理步驟,控制處理器生成一個(gè)要在第一到第四步[S1-S4]中執(zhí)行的子程序的清單,而實(shí)際上是在第五步執(zhí)行該清單中的子程序。
內(nèi)核[KRNL]的下一個(gè)方面,在圖11中未示出。一般地,圖3所示的視頻處理裝置處理連續(xù)的像素塊的速度要比流輸出電路[S0]以視頻輸出流[VIDOUT]的形式輸出像素的速度要快。因此,視頻處理裝置需要不時(shí)地中斷,以免流輸出電路[S0]溢出。借助臨時(shí)地不激活內(nèi)核[KRNL],可以使視頻處理裝置中斷其處理。
內(nèi)核[KRNL]包括這樣一些特點(diǎn)以防止圖3所示的視頻處理裝置,可以說(shuō)是太超前于視頻輸出流[VIDOUT]。4個(gè)處理步驟的每個(gè)周期,內(nèi)核[KRNL]使圖9所示的控制處理器[CPU]讀流輸出電路[S0]中的寄存器,流輸出電路表示將要被輸出的當(dāng)前像素的位置。該寄存器因而表明視頻裝置中的處理是否好象是太超前于流輸出電路[VIDOUT]。如果視頻處理裝置太超前,內(nèi)核[KRNL]就在一定的時(shí)間周期內(nèi)不被激活。
圖13示出了如圖3所示的視頻處理裝置的主總線接口[MBIF]。它包括兩個(gè)緩沖存儲(chǔ)器第一和第二緩沖存儲(chǔ)器[IRAM1,IRAM2],每個(gè)緩沖存儲(chǔ)器的大小為2kb。每個(gè)緩沖存儲(chǔ)器[IRAM]被分為8個(gè)塊第一到第八塊[B1,…B8],每塊的大小為256字節(jié)。
主總線的基本操作如下。在4個(gè)處理步驟的每個(gè)周期,緩沖存儲(chǔ)器[IRAM]可選擇地連接到主總線[HWY]和內(nèi)部總線[XBUS]。也就是說(shuō),在4個(gè)處理步驟的一個(gè)周期內(nèi),第一緩沖存儲(chǔ)器[IRAM1]連接到主總線[HWY],而第二緩沖存儲(chǔ)器[IRAM2]連接到內(nèi)部總線[XBUS],如圖13所示。在4個(gè)處理步驟的下一個(gè)周期將反過(guò)來(lái)應(yīng)用第二緩沖存儲(chǔ)器[IRAM2]連接到主總線[HWY],而第一緩沖存儲(chǔ)器[IRAM1]連接到內(nèi)部總線[XBUS]。緩沖存儲(chǔ)器[IRAM1/IRAM2],在4個(gè)處理步驟的給定周期里,連接到主總線[HWY],用于從外部主存儲(chǔ)器接收數(shù)據(jù)。同時(shí),另一個(gè)緩沖存儲(chǔ)器[IRAM2/IRAM1],連接到內(nèi)部總線[XBUS],用于把已經(jīng)從主存儲(chǔ)器接收到的數(shù)據(jù)傳輸?shù)降谝换虻诙^(guò)濾器模塊或輸出模塊。因此,4個(gè)連續(xù)處理步驟的每個(gè)周期內(nèi),緩沖存儲(chǔ)器改變器角色。
從主存儲(chǔ)器到第一或第二過(guò)濾器模塊或輸出模塊的數(shù)據(jù)傳輸需要4個(gè)連續(xù)處理步驟的3個(gè)周期。在第一周期,控制器要求主總線接口[MBIF]從主存儲(chǔ)器取數(shù)據(jù)。在第二周期,將數(shù)據(jù)從主存儲(chǔ)器傳輸?shù)揭呀?jīng)連接到主總線[HWY]的緩沖存儲(chǔ)器[IRAM1/IRAM2]。在第三周期,同一個(gè)緩沖存儲(chǔ)器[IRAM1/IRAM2]連接到內(nèi)部總線[XBUS]并把數(shù)據(jù)從緩沖存儲(chǔ)器[IRAM1/IRAM2]傳輸?shù)降谝换虻诙^(guò)濾器模塊或輸出模塊。應(yīng)當(dāng)注意到這里有相應(yīng)的取數(shù)據(jù)文件,上文中描述的第一、第二和第三周期分別地對(duì)應(yīng)初始取數(shù)據(jù)寄存器[HPF0],中級(jí)數(shù)據(jù)寄存器[HPF1]和最終數(shù)據(jù)寄存器[HPF2],如圖11所示。
主總線接口[MBIF]按下面的方式存儲(chǔ)數(shù)據(jù)。緩沖存儲(chǔ)器[IRAM]對(duì)應(yīng)4個(gè)處理步驟的一個(gè)周期。主總線接口[MBIF]把將要在該周期的第一處理步驟從緩沖存儲(chǔ)器[IRAM]傳輸?shù)降谝换虻诙^(guò)濾器模塊或輸出模塊的數(shù)據(jù)存儲(chǔ)到第一或第二模塊[B1,B2]。更具體地,把將要通過(guò)第一內(nèi)部總線[XBUS1]傳輸?shù)臄?shù)據(jù)存儲(chǔ)到第一模塊[B1],把將要通過(guò)第二內(nèi)部總線[XBUS2]傳輸?shù)臄?shù)據(jù)存儲(chǔ)到第二模塊[B2]。在該周期的第二處理步驟將要通過(guò)第一和第二內(nèi)部總線[XBUS1,XBUS2]傳輸?shù)臄?shù)據(jù)被分別存儲(chǔ)在第三和第四模塊[B3,B4],等等。
總之,第一和第二模塊[B1,B2]、第三和第四模塊[B3,B4]、第五和第六模塊[B5,B6]、以及第七和第八模塊[B7,B8]分別對(duì)應(yīng)一個(gè)周期的4個(gè)步驟,第一、第二、第三和第四處理步驟。奇數(shù)號(hào)模塊包括將要通過(guò)第一內(nèi)部總線[XBUS1]傳輸?shù)臄?shù)據(jù)。偶數(shù)號(hào)模塊包含將要通過(guò)第二內(nèi)部總線[XBUS2]傳輸?shù)臄?shù)據(jù)。因此,如圖10所示的調(diào)度程序[SCHED]的每個(gè)單元與緩沖存儲(chǔ)器[IRAM]中指定的模塊[B]相關(guān)聯(lián)。由于調(diào)度程序[SCHED]的每個(gè)單元定義需要由視頻處理電路處理的特定的數(shù)據(jù)塊,數(shù)據(jù)塊將要存儲(chǔ)在主總線接口[MBIF]的哪個(gè)位置被預(yù)定義了。
如圖9所示的調(diào)度程序[SCHED]可以按如下的方式寫入控制器[MCP]的控制存儲(chǔ)器[CMEM]。圖10所示的調(diào)度程序[SCHED]可以包括一個(gè)或多個(gè)定義更新調(diào)度程序[SCHED]的任務(wù)的單元。已經(jīng)提到過(guò),圖10所示的4號(hào)任務(wù)可能涉及到調(diào)度程序[SCHED]的新數(shù)據(jù)。第4號(hào)任務(wù)將使視頻處理裝置從主存儲(chǔ)器讀取定義調(diào)度程序[SCHED]新的部分的數(shù)據(jù)塊,并把該數(shù)據(jù)塊從主存儲(chǔ)器傳輸?shù)娇刂拼鎯?chǔ)器[CMEM]。
主存儲(chǔ)器可以包含壓縮過(guò)的調(diào)度程序。一般地,任何數(shù)據(jù)壓縮技術(shù)都可以用來(lái)壓縮包含在調(diào)度程序內(nèi)的數(shù)據(jù)。比如,圖10所示的調(diào)度程序[SCHED]的一部分包括一系列連續(xù)的含有任務(wù)1的單元。因此,調(diào)度程序[SCHED]可以借助表示含有任務(wù)1的一系列單元來(lái)壓縮,分別替代對(duì)每個(gè)單元定義任務(wù)1。如圖9所示的控制處理器[CPU]可以按程序解壓以壓縮形式的調(diào)度程序的新的部分的數(shù)據(jù)塊。因此,圖10所示的任務(wù)4不僅僅是使定義調(diào)度程序的新的部分的數(shù)據(jù)塊從主存儲(chǔ)器中讀出,還要解壓縮數(shù)據(jù)塊并依次添加到調(diào)度程序。
圖3所示的視頻處理裝置可以物理地實(shí)現(xiàn),并連續(xù)地按下面的方式操作。第一步,視頻處理裝置被制造,比如按含有圖3所示的各種模塊的集成電路的形式被制造。
第二步,把各種軟件項(xiàng)目裝入控制存儲(chǔ)器[CMEM],如圖9所示。內(nèi)核[KRNL]和子程序[SR]就是這些軟件的示例。另外的軟件可以是,比如,使調(diào)度程序[SCHED]的第一部分裝入控制存儲(chǔ)器[CMEM]的安裝程序。安裝程序還建立取數(shù)據(jù)文件[DFF]和任務(wù)延續(xù)文件[TCF]的概要,比如,通過(guò)為這些項(xiàng)目定義合適的存儲(chǔ)范圍。被裝入控制存儲(chǔ)器[CMEM]的控制軟件項(xiàng)目,可以包含在數(shù)據(jù)載體上,如磁盤或非易失性存儲(chǔ)器??刂栖浖?xiàng)目可以通過(guò)通信網(wǎng)絡(luò)如因特網(wǎng),從這些載體上檢索到。
第三步,一個(gè)或多個(gè)調(diào)度程序[SCHED]被裝入通過(guò)主總線[HWY]連接到圖3所示的視頻處理裝置的存儲(chǔ)器。調(diào)度程序[SCHED]是一套編程軟件項(xiàng)目。已經(jīng)裝入控制存儲(chǔ)器[CMEM]的控制軟件使控制器[MCP]能夠執(zhí)行包含在調(diào)度程序[SCHED]內(nèi)的程序軟件。控制器[MCP]讀調(diào)度程序[SCHED]并執(zhí)行在其中的程序項(xiàng)目。當(dāng)執(zhí)行一個(gè)程序軟件時(shí),使得視頻處理裝置取出一個(gè)數(shù)據(jù)塊并處理它。因此,視頻處理裝置將連續(xù)地處理數(shù)據(jù)塊。這些數(shù)據(jù)塊可能在同一個(gè)存儲(chǔ)器如調(diào)度程序[SCHED]或在單獨(dú)的存儲(chǔ)器內(nèi)。裝入連接到主總線[HWY]的存儲(chǔ)器調(diào)度程序[SCHED],可以包含在數(shù)據(jù)載體如,磁盤或非易失性存儲(chǔ)器上調(diào)度程序[SCHED]可以通過(guò)通信網(wǎng)絡(luò)如因特網(wǎng),從這些載體上檢索到。
如圖3所示的以及結(jié)合圖4到圖13進(jìn)一步描述的視頻處理裝置,是實(shí)施圖1所示的基本特點(diǎn)的一個(gè)示例?;倦娐分T如圖1所示的處理電路[PRC]和存儲(chǔ)電路[MEM],表現(xiàn)為包括在分別如圖4和圖5所示的過(guò)濾器模塊[XPB]和輸出模塊[XPC]內(nèi)各種電路形式。圖1所示的任務(wù)初始化數(shù)據(jù)[TID],表現(xiàn)為包含在如圖10所示的調(diào)度程序[SCHED]內(nèi)的數(shù)據(jù)形式。相應(yīng)包含在調(diào)度程序[SCHED]內(nèi)的數(shù)據(jù),圖9所示的控制器[MCP]把數(shù)據(jù)應(yīng)用于各種處理和包含在過(guò)濾器模塊[XPB]和輸出模塊[XPC]中存儲(chǔ)電路。這使得視頻處理裝置象,比如圖6所示的那樣處理數(shù)據(jù)塊。
上文中的附圖及其描述,解釋了本發(fā)明,卻不是對(duì)本發(fā)明的限制。很顯然,在后面的權(quán)利要求的范圍內(nèi)有許多變化。因此,我們需要如下的詳細(xì)備注。
可以借助軟件或硬件,或軟件和硬件,用多種方法完成本發(fā)明的功能。所以,附圖完全是示意性的,每個(gè)圖僅僅代表本發(fā)明的可能的實(shí)施方案。因此,盡管附圖中圖示不同的功能當(dāng)作不同的模塊,這并不意味著排除一個(gè)單一的軟件或硬件執(zhí)行幾項(xiàng)功能。也不排除軟件或硬件的組合,或軟件和硬件的組合執(zhí)行一項(xiàng)功能。
權(quán)利要求中的任何引用符號(hào)都不能看作是權(quán)利要求的限制。“包括”一詞并不排除還有權(quán)利要求中未列出的元件或步驟。在元件和步驟前面的“一個(gè)”并不排除這樣的元件或步驟出現(xiàn)多個(gè)。
權(quán)利要求
1.一種包括如處理電路[PRC]和存儲(chǔ)電路[MEM]的多個(gè)基本電路的數(shù)據(jù)處理裝置,其特征在于數(shù)據(jù)處理裝置包括控制器[MCP],響應(yīng)任務(wù)初始化數(shù)據(jù)[TID],被編程為連續(xù)地將控制數(shù)據(jù)[CD]應(yīng)用于基本電路的不同子集,以便使數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈[DPC]處理數(shù)據(jù)塊[DB],從而使基本電路的每個(gè)子集執(zhí)行數(shù)據(jù)處理鏈[DPC]的一個(gè)不同的項(xiàng)[E]。
2.如權(quán)利要求1的數(shù)據(jù)處理裝置,其特征是控制器[MCP]包括控制處理器[CPU]和控制存儲(chǔ)器[CMEM],控制存儲(chǔ)器[CMEM]含有一個(gè)子程序[SR]的集合,每個(gè)子程序[SR]對(duì)應(yīng)數(shù)據(jù)處理鏈[DPC]的一個(gè)項(xiàng)[E],并使得控制處理器[CPU]把控制數(shù)據(jù)[CD]應(yīng)用于基本電路[PRC/MEM]的子集,作為響應(yīng),將執(zhí)行數(shù)據(jù)處理鏈[DPC]涉及到的項(xiàng)[E],每個(gè)子程序[SR]涉及到數(shù)據(jù)處理鏈[DPC]的一個(gè)項(xiàng)[E],該元件后還跟著另一個(gè)項(xiàng)[E],還使控制處理器[CPU]把指針[P]寫入任務(wù)延續(xù)文件[TCF],指針[P]表示涉及到數(shù)據(jù)處理鏈[DPC]的后面的項(xiàng)[E]的子程序;和基本控制程序[KRNL]分別使控制處理器[CPU]讀取新的任務(wù)連續(xù)數(shù)據(jù)[RD(TID)],新的任務(wù)連續(xù)數(shù)據(jù)[TID]表示涉及到數(shù)據(jù)處理鏈[DPC]的第一項(xiàng)的子程序[SR],讀取包含在任務(wù)延續(xù)文件中的指針[RD(P:TCF)],并執(zhí)行由該新的任務(wù)延續(xù)文件[TCF]和該指針[P]表示的子程序。
3.一種數(shù)據(jù)處理裝置的配置方法,包括一個(gè)控制器[MCP]和如處理電路[PRC]和存儲(chǔ)電路[MEM]的多個(gè)基本電路,該方法包括步驟對(duì)控制器[MCP]編程,以便控制器響應(yīng)任務(wù)初始化數(shù)據(jù)[TID],連續(xù)地把控制數(shù)據(jù)[CD]應(yīng)用于基本電路的不同子集,這使得數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈[DPC]處理數(shù)據(jù)塊[DB],從而使本電路的每個(gè)子集執(zhí)行數(shù)據(jù)處理鏈[DPC]的一個(gè)不同的項(xiàng)[E]。
4.一種用于數(shù)據(jù)處理裝置的計(jì)算機(jī)程序產(chǎn)品,數(shù)據(jù)處理裝置包括一個(gè)控制器[MCP]和如處理電路[PRC]和存儲(chǔ)電路[MEM]的多個(gè)基本電路,該計(jì)算機(jī)程序產(chǎn)品包括一套指令,當(dāng)指令被裝入數(shù)據(jù)處理裝置的控制器[MCP]時(shí),使控制器[MCP]響應(yīng)任務(wù)初始化數(shù)據(jù)[TID]連續(xù)地把控制數(shù)據(jù)應(yīng)用于基本電路的不同子集,使數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈[DPC]處理數(shù)據(jù)塊,從而使基本電路的每個(gè)子集執(zhí)行數(shù)據(jù)處理鏈[DPC]的一個(gè)不同的項(xiàng)[E]。
5.一種用于數(shù)據(jù)處理裝置的計(jì)算機(jī)程序產(chǎn)品,數(shù)據(jù)處理裝置包括一個(gè)控制器[MCP]和如處理電路[PRC]和存儲(chǔ)電路[MEM]的多個(gè)基本電路,該計(jì)算機(jī)程序產(chǎn)品包括任務(wù)初始化數(shù)據(jù)[TID],當(dāng)執(zhí)行任務(wù)初始化數(shù)據(jù)[TID]時(shí),使控制器[MCP]連續(xù)地把控制數(shù)據(jù)[CD]應(yīng)用于基本電路的某一子集,從而使得數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈[DPC]處理數(shù)據(jù)塊,基本電路的每個(gè)子集執(zhí)行數(shù)據(jù)處理鏈[DPC]的一個(gè)不同的項(xiàng)[E]。
全文摘要
一種數(shù)據(jù)處理裝置包括多個(gè)基本電路,如處理電路[PRC]和存儲(chǔ)電路[MEM]。數(shù)據(jù)處理裝置還包括控制器[MCP]。控制器[MCP]被程序控制,以便響應(yīng)任務(wù)初始換數(shù)據(jù)[TID],連續(xù)地把控制數(shù)據(jù)[CD]應(yīng)用于基本電路的不同子集。這使得數(shù)據(jù)處理裝置按照一定的數(shù)據(jù)處理鏈[DPC]處理數(shù)據(jù)塊[DB]?;倦娐返拿總€(gè)子集執(zhí)行數(shù)據(jù)處理鏈[DPC]的一個(gè)不同的項(xiàng)[E]。
文檔編號(hào)G06F9/30GK1320237SQ00801696
公開日2001年10月31日 申請(qǐng)日期2000年6月13日 優(yōu)先權(quán)日1999年6月15日
發(fā)明者B·布魯, M·杜蘭頓 申請(qǐng)人:皇家菲利浦電子有限公司