專利名稱:具有不同資源訪問方案的系統(tǒng)集成代理程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種系統(tǒng),該系統(tǒng)能夠容納具有不同的、用來管理公共資源訪問的方案的代理程序。通常,通過應(yīng)用本發(fā)明,單系統(tǒng)可以采用具有不同管理公共存儲器訪問技術(shù)的數(shù)據(jù)處理器。這種系統(tǒng)的一個非限制性例子是MPEG編解碼器(執(zhí)行由運動圖象專家組(MotionPicture Expert Group)所制定的標(biāo)準(zhǔn)的編碼器和解碼器)。
目前,存在著許多這樣的系統(tǒng),其中多個代理程序需要共享公共資源,而且在某個特定時刻只允許一個代理程序訪問共享資源。比如,多個處理器共享一個公共存儲器的數(shù)據(jù)處理裝置就是這樣的一個系統(tǒng)。在本文獻中,術(shù)語“代理程序”既用來指一個程序模塊,又可以指一個通過程序模塊執(zhí)行的進程(理解為一個給定的程序模塊可以執(zhí)行多個的進程)。
各代理程序采用不同的方案來管理共享資源的訪問。某些系統(tǒng)采用時隙(time-slotted)訪問方案,在該方案中,每個代理程序在預(yù)定的時刻、預(yù)定的時間段內(nèi)訪問共享資源,并且以預(yù)定的次序重復(fù)地執(zhí)行上述共享資源的訪問。其他系統(tǒng)采用如下方案即該方案中,代理程序可以在需要訪問的時候發(fā)出訪問請求,而如果同一時刻出現(xiàn)多個請求的話,可以通過仲裁器(arbitor)來決定某個訪問請求是否通過。仲裁器通過執(zhí)行仲裁方案來管理不同的訪問請求,仲裁方案經(jīng)制定能夠確保每個代理程序都可以在其所需的足夠時間段訪問共享資源。通常,這就是指每個代理程序所需的“帶寬”。
WO98/12645闡述了一種用于如下系統(tǒng)的總線仲裁方法和設(shè)備,該系統(tǒng)中,集成在微處理芯片上的多個裝置(中央處理器(CPU),數(shù)據(jù)和指令緩存器,圖形處理器等)通過共享總線訪問芯片外的公共存儲器(同步DRAM)。在該系統(tǒng)中,對需要總線訪問的不同代理程序進行帶寬的權(quán)重分配,仲裁器執(zhí)行可保證每個裝置都能接收到所需要的帶寬分配的仲裁方案。
圖1顯示了一個模塊的典型運行環(huán)境,該模塊采用了時隙訪問方案;在該例子中,模塊是一個處理器PROC,而共享資源是存儲器MEM。模塊PROC可以通過接口INT訪問存儲器MEM。圖1中僅僅顯示了一個模塊PROC,但是應(yīng)該理解為通??梢栽趩蝹€芯片IC1中集成多個這樣的模塊。而且,如圖所示,盡管存儲器接口是在芯片上的,應(yīng)該這樣理解本發(fā)明也適用于存儲器接口放在芯片外的情況。接口INT允許模塊PROC依照存儲器訪問方案訪問存儲器MEM,根據(jù)該訪問方案,為模塊PROC預(yù)留了預(yù)定的時間段以向存儲器MEM傳送或者從存儲器MEM接收數(shù)據(jù)。
接口INT是可配置的,也就是說,模塊的特定時間段的分配是可以改變的??刂破鰿ONT向接口INT提供控制數(shù)據(jù),為芯片上的各個模塊指定訪問存儲器MEM的時隙??刂破鰿ONT也向模塊PROC提供控制數(shù)據(jù),以便向其傳達(dá)應(yīng)該從存儲器MEM中讀取或向存儲器寫入數(shù)據(jù)的預(yù)定時間段(經(jīng)由接口INT內(nèi)部的緩沖器)。由于處理模塊的訪問時間段的分配,相對來說很少發(fā)生變化,因而只有在需要改變配置的時候,才把這些控制數(shù)據(jù)發(fā)送給接口和處理模塊。
通常,芯片中的每個處理模塊不斷重復(fù)執(zhí)行相同的處理功能,只不過處理的都是新的數(shù)據(jù)而已。比如,在圖1中的IC1是MPEG解碼器的核心的情況下,通過一組處理模塊,在組成一幀圖像信號的連續(xù)宏模塊中重復(fù)執(zhí)行某些預(yù)設(shè)功能。IC1內(nèi)部的控制器CONT向處理模塊和接口輸出同步信號(在該例子中,信號指楨啟動信號和宏模塊啟動信號),作為決定何時出現(xiàn)不同的預(yù)定時間段的參考??刂破饕蚕蚪涌谳敵龅刂窋?shù)據(jù),該地址數(shù)據(jù)標(biāo)志了有關(guān)宏模塊或在特定的時間段由給定的模塊處理的像素線數(shù)據(jù)存放在存儲器MEM中的位置。這些地址數(shù)據(jù),通常以首地址和一系列連續(xù)加以訪問的地址加以定義。在某些情況下,由模塊發(fā)出的給定請求是否能夠訪問地址數(shù)據(jù),取決于另一個模塊(可以是相同物理裝置的另一個進程)的某些計算結(jié)果。在這種情況下,控制器從執(zhí)行計算的模塊中接收與結(jié)果相關(guān)的數(shù)據(jù),隨后產(chǎn)生地址數(shù)據(jù)。
如果接口INT讀/寫數(shù)據(jù)的速度和模塊PROC的速度不一致,那么可以在接口INT和模塊PROC之間接入一個模塊PROC專用的緩沖器BUF,用以存貯從存儲器MEM中讀取的、將交給這一模塊處理的數(shù)據(jù)。在該情況中,令模塊PROC在預(yù)定的時間區(qū)間從緩沖器讀取或?qū)懭霐?shù)據(jù)。這種情況中,在讀取操作過程中,如果模塊PROC沒有從緩沖器中接收到標(biāo)志數(shù)據(jù)存在于當(dāng)前緩沖器的應(yīng)答信號,那么該模塊的操作就被延遲,直到隨后的詢問被應(yīng)答為止。
在圖1的時隙存儲器訪問方案中,把模塊PROC設(shè)計成可通過向存儲器接口發(fā)出請求(或者,某些情況下,向緩沖器發(fā)出請求),在所設(shè)期間的預(yù)定的時間段內(nèi)接收或輸出數(shù)據(jù)。
圖2顯示了一個典型的系統(tǒng),該系統(tǒng)包括一個可對多個代理程序的不同請求進行仲裁的仲裁器。在該例子中,代理程序再次為共享公共存儲器MEM的處理模塊PROC,圖2中僅僅顯示了芯片IC2中的一個代理程序。在該情況中,接口INT與仲裁器ARB相結(jié)合,把一種仲裁方案用于決定在特定的瞬間,多個有效訪問請求中哪個請求獲得通過。仲裁方案可以是一個循環(huán)方案(round-robin),也可以是根據(jù)分配給不同模塊的優(yōu)先級(可能是可變的優(yōu)先級)的方案或可為任何其他已知的仲裁方案。將獲得通過的訪問請求傳送給存儲器接口MIF,存儲器接口處理對存儲器MEM的物理訪問,并且處理MEM和PROC之間數(shù)據(jù)路由。
在該系統(tǒng)中,從給定模塊發(fā)出請求到仲裁器響應(yīng)這一請求后授予訪問權(quán)的這段時間間隔的長短,預(yù)先是未知的。因此,在每個模塊和接口之間,為該模塊提供一個緩沖器BUF。這些中間緩沖器可以采用單一的靜態(tài)存儲器(SRAM),靜態(tài)存儲器具有專屬于不同模塊的單獨部分。
在圖2的仲裁存儲器訪問方案中,模塊在不同的時間和不同的周期發(fā)出訪問請求,模塊可以在不同周期的、不規(guī)則的間隔點,接收與/或輸出數(shù)據(jù)。
在某些情況下,人們也希望可以在單系統(tǒng)中采用適用于不同資源訪問方案的模塊。比如,在MPEG編解碼器環(huán)境中,可以出現(xiàn)編碼器和解碼器芯片(集成電路)分別獨立設(shè)計的情況,解碼芯片可以采用仲裁器對解碼器中不同進程發(fā)出的請求進行選擇,而編碼器則采用時隙訪問管理方案來確保其進程獲取對主存儲器的請求訪問。盡管允許編碼器芯片和解碼器芯片采用獨立的存儲器,但是,顯然這將增加編解碼器的成本和復(fù)雜性。較佳的做法是為這兩種芯片提供一個公共存儲器,因而必須使用單一方案來管理這一公共存儲器的訪問。
為了減低成本,更傾向于盡可能使不同的集成電路保持不變的結(jié)構(gòu)。先期經(jīng)驗反對使用時隙存儲器訪問方案,因為,在適用于請求仲裁方案的模塊的訪問請求發(fā)出的時刻和周期內(nèi),數(shù)據(jù)來不及準(zhǔn)備。
請求仲裁存儲器訪問方案具有如下優(yōu)點即它在不同的、需要訪問存儲器的模塊之間提供了足夠的帶寬分配。然而,對于依照時隙方案設(shè)計的模塊,在采用請求仲裁方案時存在一個問題,這是因為它很難保證在周期性的模塊PROC的編程時間間隔,數(shù)據(jù)為可讀。
更具體地說,在模塊PROC等待從公共存儲器讀取或向公共的存寫入數(shù)據(jù)的期間,需要提供較高的訪問帶寬。在某些情況下,存儲器可能根據(jù)不允許如此高的帶寬訪問(總線性能不適當(dāng))。然而,即便在允許高帶寬訪問的情況中,如果當(dāng)模塊PROC提出請求的時刻,另一個模塊正在訪問存儲器,那么也不可以中斷這一訪問。解決該問題的一個辦法是改變仲裁方案的設(shè)計,以向來自PROC的請求授予較高的優(yōu)先級。然而,該辦法不能完全避免模塊PROC在讀取訪問中數(shù)據(jù)下溢的危險。
本發(fā)明的一個目標(biāo)是允許依照時隙資源訪問方案設(shè)計的代理程序應(yīng)用在采用仲裁器的系統(tǒng)中,仲裁器對不同代理程序發(fā)出的訪問公共(共享)資源的請求之間進行仲裁。
本發(fā)明的另外一個目標(biāo)是減低采用仲裁器的系統(tǒng)的成本,通過采用仲裁器對不同代理程序發(fā)出的訪問公共資源的請求之間進行仲裁,并且至少一個代理程序是按照時隙資源訪問方案設(shè)計的。
本發(fā)明考慮了如下幾個方面。把一個先行請求發(fā)生器,與針對時隙資源訪問方案所設(shè)計的一個代理程序關(guān)聯(lián)在一起。在它們提交代理程序經(jīng)編程以從公共資源接收數(shù)據(jù)的時間段之前,先行請求發(fā)生器產(chǎn)生訪問請求,并且將它們提交給管理公共資源訪問的接口。根據(jù)接口所執(zhí)行的仲裁方案,在代理程序需要獲取數(shù)據(jù)的時間段之前,先行請求就可以提出對公共資源的訪問。在代理程序和接口之間設(shè)置一個緩沖器,緩沖器可以暫時保存因先行請求所獲取的數(shù)據(jù)。在對代理程序進行編程以取數(shù)據(jù)的時間段內(nèi),代理程序?qū)木彌_器中取數(shù)據(jù)。代理程序在預(yù)編程時刻發(fā)出的寫-訪問請求,可以簡單地轉(zhuǎn)發(fā)給仲裁器(可選擇經(jīng)由緩沖器)。
適用于時隙資源訪問方案的代理程序,被集成在基于借助先行請求發(fā)生器和緩沖器的請求仲裁的系統(tǒng)中,在這一代理程序是一系列代理程序之一,且所有代理程序都適用于時隙訪問方案以及所有這些代理程序均提供于一個集成電路上的情況中,IC的結(jié)構(gòu)將需最小程度的變化。如果接口是提供在芯片上的話,可能僅僅需要修改與代理程序相關(guān)的先前存在的接口即可。
先行請求發(fā)生器最好在控制器所提供的控制數(shù)據(jù)和同步信號的基礎(chǔ)上產(chǎn)生請求,該控制器用來設(shè)置和/或控制時隙資源訪問方案??刂茢?shù)據(jù)至少包括標(biāo)志時隙和請求訪問公共資源的代理程序之間的關(guān)系的數(shù)據(jù)。一個單一的集成電路(IC)可以包括一個內(nèi)核,該內(nèi)核由一組具有這種內(nèi)核控制器的模塊組成。
在某些情況下,適用于時隙訪問方案的代理程序的某些訪問請求,可能是不可預(yù)測的。換句話說,只有在對代理程序進行編程以請求訪問的時間段之前的極短的時間,才能確定請求訪問的屬性(通常,按照所要讀取的地址)。在這種情況下,對先行請求發(fā)生器進行編程以便為幾乎所有的可預(yù)測的訪問請求產(chǎn)生先行請求,以及采用仲裁方案對不可預(yù)測的訪問請求進行優(yōu)先級排序,是十分有利的。
本發(fā)明尤其適用于處理模塊請求訪問公共存儲器的系統(tǒng)中。在這種情況中,與適用于時隙存儲器訪問方案的模塊相關(guān)的控制器,通常適合提供與各個模塊的讀寫操作對應(yīng)的地址數(shù)據(jù)。先行請求發(fā)生器能夠利用從控制器中接收的地址數(shù)據(jù),生成先行請求。在其他情況下,處理模塊本身可以產(chǎn)生地址數(shù)據(jù)。在這些情況中,當(dāng)?shù)刂窋?shù)據(jù)(可預(yù)測的請求)產(chǎn)生的足夠早時,先行請求發(fā)生器從處理模塊中收集必要的地址數(shù)據(jù)。總之,內(nèi)核控制器或處理模塊產(chǎn)生有關(guān)邏輯數(shù)據(jù)而非外部存儲器的物理地址。因此,把內(nèi)核控制器或模塊中與一個能將邏輯地址和物理地址互相轉(zhuǎn)換的相關(guān)元件相結(jié)合。
依照本發(fā)明的系統(tǒng)或方法中,為了保證所有代理程序的訪問請求都能完全得到滿足,最好采用如下仲裁方案,在該仲裁方案中,不同代理程序的訪問請求具有不同的訪問優(yōu)先級。最好通過采用一種包含多個優(yōu)先級的分級仲裁方案來實現(xiàn)以上功能,其中,時間約束(timeconstrained)的和周期性的訪問請求被分配這一級結(jié)構(gòu)中較高的優(yōu)先級。這種分級方案可以采用一組級聯(lián)的狀態(tài)機來實現(xiàn),這一分級結(jié)構(gòu)中較低一級狀態(tài)機的輸出作為分級結(jié)構(gòu)的次高一級狀態(tài)機的輸入。在這一級方案的每個優(yōu)先級中,訪問請求之間互相競爭,獲勝的請求作為狀態(tài)機的輸出。狀態(tài)機的最高優(yōu)先級的輸出對應(yīng)在仲裁中獲得了訪問許可代理程序的訪問請求。之后就將對該訪問請求進行處理(或者放入經(jīng)許可的請求的等待處理隊列中)。這種仲裁方案可以在WO98/12645所描述的分級仲裁方案中找到示例。
在本發(fā)明的實施方案中,仲裁器采用狀態(tài)機來執(zhí)行分級方案,對于狀態(tài)機中的大多數(shù)狀態(tài)來說,最好為不同的訪問請求分配固定的優(yōu)先級。然而,保證分級結(jié)構(gòu)中對應(yīng)高級別的狀態(tài)機具有自由狀態(tài),是比較可取的,在自由狀態(tài)下該級別中互相競爭的請求沒有預(yù)分配的優(yōu)先級。
通過以下結(jié)合附圖所進行的說明,本發(fā)明以及可選地用于實現(xiàn)本發(fā)明的優(yōu)點的更多的功能將是顯而易見的。
圖1是一個示意圖,顯示了系統(tǒng)的基本元件,該系統(tǒng)中處理模塊依照時隙存儲器訪問方案訪問公共存儲器;圖2是一個示意圖,顯示了系統(tǒng)的基本元件,該系統(tǒng)中,依照仲裁方案管理處理模塊對公共存儲器的訪問請求。
圖3是一個示意圖,顯示了MPEG編解碼器集成電路中的不同進程所發(fā)出的存儲器訪問請求的時間,把MPEG編解碼器集成電路設(shè)計為,以時隙方式處理對存儲器的訪問,其中圖3a顯示了各請求開始的周期數(shù),而圖3b顯示了對應(yīng)每個請求的地址數(shù)據(jù)第一次可得的時刻;圖4是一個結(jié)構(gòu)圖,顯示了集成有編碼器集成電路的MPEG編解碼器的主要元件,編碼器集成電路以時隙方式處理存儲器訪問,而解碼器集成電路通過請求仲裁處理存儲器訪問;圖5是一個結(jié)構(gòu)圖,顯示了包含在圖4的編解碼器中進程仲裁器的一般結(jié)構(gòu)。
圖6是一個狀態(tài)圖,顯示了由圖5的進程仲裁器中的主狀態(tài)機遍歷(traversed)的狀態(tài)次序,其中圖6a顯示了由主狀態(tài)機器循環(huán)遍歷的狀態(tài)次序,而圖6b顯示了由兩個狀態(tài)機遍歷的狀態(tài)次序,這兩個狀態(tài)機與圖6a中用星號標(biāo)注的狀態(tài)所標(biāo)志的進程序組有關(guān)。
首先,將對參考符號的使用加以說明。所有附圖中類似的元件用相同的字母代碼標(biāo)注。不同的類似單元可以顯示在單一的附圖中。在這種情況中,字母代碼中附加一個數(shù)字以便能夠互相區(qū)分類似的單元。如果類似單元的數(shù)字是一個運行參數(shù),那么該數(shù)字用括號括起。在說明和權(quán)利要求中,參考符號中的任何數(shù)字,如果不引起歧義,都是可以省略的。
下文中將就MPEG編解碼器對本發(fā)明進行說明,MPEG編解碼器由采用時隙存儲器訪問方案的編碼器和采用對存儲器訪問請求進行仲裁的仲裁器的解碼器組成。然而,應(yīng)當(dāng)理解為本發(fā)明可以應(yīng)用在較大范圍的其他的環(huán)境中。編碼器相應(yīng)于圖1中普通類型的集成電路,而解碼器相應(yīng)于圖2中所說明的一個普通類型的集成電路。此處假設(shè)編碼器和解碼器集成電路的起初設(shè)計目的并不是把它們用于公共系統(tǒng)。如果要把這些集成電路集成到公共系統(tǒng)中,那么必須對元件集成電路的結(jié)構(gòu)做某些改動,但是,本發(fā)明中,集成電路結(jié)構(gòu)所需改變的程度降到了最低限度。
在對編解碼器的結(jié)構(gòu)和操作展開說明之前,有必要對編碼器和解碼器集成電路的初始設(shè)計和配置的特點進行解釋。
在本發(fā)明的示例中,解碼器集成電路的初始設(shè)計包括多個進程,這些進程發(fā)出請求以便通過存儲器接口訪問SDRAM,而請求發(fā)出的時間以及持續(xù)的時間,事先是不知道的。這些進程包括顯示(DISPLAY)、屏幕顯示(On Screen Display)、畫中畫(Picture in Picture)、INTERP,運動補償(Motion Compensation)、視頻先入先出寫(VideoFIFO Wrire)、視頻先入先出讀(Video FIFO Read)、音頻先入先出寫(Audio FIFO Write)、音頻先入先出讀(Audio FIFO Read)、音頻重復(fù)寫(Audio Write Back Write)以及音頻重復(fù)讀(Audio WriteBack Read)。
顯示(DISPLAY)進程涉及解碼圖像的顯示。屏幕顯示(OSD)進程涉及疊放在所顯示的解碼圖像上的圖形數(shù)據(jù)的顯示。畫中畫(PIP)進程涉及作為背景的靜態(tài)圖像的顯示,或顯示經(jīng)解碼和處理的圖像。INTERP進程涉及MPEG解碼的最后一部分,提供載入SDRAM的解碼圖像以便顯示或當(dāng)作參考圖像使用它們,或兩者兼之。運動補償(MC)進程涉及運動補償,是MPEG視頻解碼中的一步。視頻先入先出寫(VFW)、視頻先入先出讀(VFR)、音頻先入先出寫(AFW)、音頻先入先出讀(AFR)進程涉及經(jīng)編碼的視頻和音頻數(shù)據(jù)的寫和讀,這些視頻和音頻數(shù)據(jù)由解密電路/譯碼電路從MPEG數(shù)據(jù)流中提取。音頻重復(fù)寫(AWRBW)和音頻重復(fù)讀(AWRBR)進程涉及來自音頻處理器的中間結(jié)果的寫和讀。這些進程在本申請人的較早的歐洲專利第00203007中有說明。這些進程的細(xì)節(jié)在運動圖象專家組所定義的不同標(biāo)準(zhǔn)中有詳細(xì)說明,本文中不再作進一步的說明,因為所有這些細(xì)節(jié)對于理解本發(fā)明來說并非必不可少。
解碼器集成電路的存儲器接口包括一個請求包裝器(wrapper),其功能是將解碼器的進程請求以與MMI相兼容的方式發(fā)送給MMI。存儲器接口也包括一個充當(dāng)內(nèi)部緩沖器BUF的SRAM,該SRAM用來保存屬于經(jīng)由MMI處于主存儲器和解碼器進程之間的請求的數(shù)據(jù),直到該請求在仲裁中獲得通過為止。動態(tài)存儲器分成幾個緩沖器(先入先出),這些緩沖器從外部SDRAM中接收各自進程的數(shù)據(jù)。解碼器DMA接口中還提供一個元件(未在圖中加以顯示),該元件把每個請求與相對應(yīng)的數(shù)據(jù)關(guān)聯(lián)起來,從而確保數(shù)據(jù)與中間緩沖器中的FIFO之間正確的路由選擇。該元件管理SRAM中的每個進程的FIFO的指針和數(shù)據(jù)流。
編碼器集成電路中包括一個可配置的、以時隙方式運行的存儲器訪問接口。CPU充當(dāng)集成電路的控制器,并且向存儲器接口下載一個含有編碼器中不同進程之間的存儲器帶寬分配的表。這些進程包括由宏模塊處理器(MBPcurrent)處理的當(dāng)前宏模塊,基本音頻流輸入(AESin),基本視頻流輸入(VESin),基本音頻流輸出(AESout),基本視頻流輸出(VESout),多路轉(zhuǎn)換指令輸入(Munxcom_in),多路轉(zhuǎn)換指令輸出(Munxcom_out),宏模塊處理器候選(MBPcand,具體地說為MBPcand1-MBPcand5),宏模塊處理器優(yōu)勝者色彩(MBPwincolor),宏模塊處理器寫回(MBP WR BK),以及視頻前端(VFE)。再次說明,本文中不對這些進程的細(xì)節(jié)做詳細(xì)說明,因為對于理解本發(fā)明來說,這些細(xì)節(jié)并非不可少。
下載的表與編碼器中的不同進程所發(fā)出的各種請求的起始時間相對應(yīng)。以下的表1中給出了上述表的一個例子。應(yīng)當(dāng)理解的是,表1中列出的各種進程并非一定要涉及相同的宏模塊(換句話說,MBPcand數(shù)據(jù)涉及當(dāng)前正在被處理的宏模塊,此處指MBK+1,MBP_Wincolor數(shù)據(jù)涉及四個宏模塊前面的宏模塊(也就是MBK-3))。而且,通常情況下,1ES_in,VES_out,AES_in,AES_out,Mux_Com_in,Mux_Com_out和VFE進程,并不處理有關(guān)宏模塊的數(shù)據(jù),而是處理有關(guān)其他元件的數(shù)據(jù),比如像素線。
表1
表1中的進程的起始時間,以圖標(biāo)的方式標(biāo)在圖3a)中,參照各個請求開始的周期號,圖3a)中采用不同高度的柱體來更好地區(qū)分不同進程產(chǎn)生的請求。此外,圖3a)中采用了實線和虛線柱體來區(qū)別相同類型的輸入和輸出信息。
主編碼器和解碼器進程,列在下面的表2中,表中還列出了編碼器和解碼器集成電路單獨操作時(也就是說,未把它們關(guān)聯(lián)于編解碼器中),所使用的帶寬的指標(biāo)。
表2
當(dāng)編碼器和解碼器集成電路集成在一個公共系統(tǒng)中,而且該系統(tǒng)中存儲器的訪問由請求仲裁來處理,則具有高優(yōu)先級的編碼器訪問請求,不會被延遲,即確保在給定時刻必須為給定進程提供數(shù)據(jù)。然而,仍然有必要為解碼器進程保證所必須的帶寬。
圖4顯示了依照本發(fā)明的一個優(yōu)選實施方案的編解碼器的主要元件。該實施方案中集成有上文中已說明的編碼器和解碼器集成電路。除了編碼器和解碼器芯片外,編解碼器還包括一個SDRAM類型的存儲器,一個系統(tǒng)CPU和總線控制器(BCU),相關(guān)的外設(shè)接口總線(PI_bus)用來控制整個系統(tǒng),主存儲器接口(MMI)包括一個仲裁器P_ARB,仲裁器可以對編碼器、解碼器進程和系統(tǒng)CPU發(fā)出的請求進行仲裁。MMI接口也包括一個SDRAM控制器,用來處理對SDRAM的物理訪問。系統(tǒng)CPU、BCU以及相關(guān)總線構(gòu)成了所謂的“系統(tǒng)域”(信號域)。
系統(tǒng)CPU用來驅(qū)動編碼器和解碼器,以及運行應(yīng)用程序。系統(tǒng)CPU周期性地訪問動態(tài)存儲器,動態(tài)存儲器的頻率基于系統(tǒng)的時鐘頻率,并取決于所采用的動態(tài)存儲器的類型。來自系統(tǒng)域的CPU的存儲器訪問請求,其延遲較短(也就是說,在發(fā)出請求和請求獲得通過之間只允許很短的延遲)。從而,系統(tǒng)CPU的請求必須分配最高優(yōu)先級,更具體地說,它應(yīng)該優(yōu)先于所有信號域(signal domain)請求。在本發(fā)明的優(yōu)選實施方案中,信號域進程仲裁器P_ARB可以中斷代表信號域中的進程所發(fā)出的對動態(tài)存儲器的訪問,轉(zhuǎn)而支持來自系統(tǒng)域CPU的訪問請求。當(dāng)系統(tǒng)CPU的請求得到應(yīng)答以后,再轉(zhuǎn)向信號域中的進程請求,允許其從中斷點繼續(xù)訪問。
編碼器和解碼器芯片的直接存儲器訪問(DMA)接口,與信號域仲裁器P_ARB相連。DMA接口和信號域接口(MMI)之間的數(shù)據(jù)交換,采用16個存儲器字串(在該例子中,每個存儲器字為32比特)。相比之下,不同編碼器讀寫進程和編碼器DMA接口之間的數(shù)據(jù)交換每個請求涉及8個存儲器字串。
例如,訪問請求涉及編碼或解碼DMA接口和信號域仲裁器P_ARB之間以及編碼器或解碼器DMA接口和發(fā)出請求的編碼器/解碼器進程之間的請求和應(yīng)答信號的交換。更具體地說,編碼器DMA接口的先行請求發(fā)生器把先行讀請求(ant-read-req)發(fā)送給P_ARB并回收應(yīng)答信息(ant-read-ack)。編碼器DMA中的寫請求緩沖器把寫請求(wr-req)發(fā)送給P_ARB并從P_ARB中回收應(yīng)答信息。解碼器DMA接口把讀和寫的類型請求(req)發(fā)送給P_ARB,并回收應(yīng)答信息(ack)。也可以采用任何便利的請求/應(yīng)答協(xié)議,信號域中的不同元件對兒可以采用不同的協(xié)議。
信號域仲裁器P_ARB,在仲裁算法的選擇上非常靈活,這是因為它包含多個狀態(tài)機,可以把這些狀態(tài)機配置成不同的優(yōu)先級。如上文所說,最高優(yōu)先級分配給系統(tǒng)域CPU所發(fā)出的請求。對每個狀態(tài)機進行配置以執(zhí)行固定的優(yōu)先級方案。對這一方案這樣地加以設(shè)計各個狀態(tài)機能夠以特定的次序通過狀態(tài),對每個狀態(tài)中具有最高優(yōu)先級請求的進程加以設(shè)置,以保證為每個進程分配足夠的帶寬。
參見圖4會發(fā)現(xiàn),由于解碼器是集成在編解碼器中的,解碼器集成電路的結(jié)構(gòu)并沒有發(fā)生變化。然而,解碼器進程發(fā)出的請求,交給了位于MMI中的仲裁器(P_ARB)來處理,而不是由放置在圖2中的芯片內(nèi)的接口中的仲裁器來處理。
對于編碼器集成電路,內(nèi)核結(jié)構(gòu)(控制器CPU和處理器)幾乎不發(fā)生任何變化,但是需要對DMA接口的結(jié)構(gòu)進行修改,從而使該集成電路能夠集成到采用基于請求仲裁存儲器訪問方案的系統(tǒng)中。更具體地說,編碼器DMA接口中具有一個先行請求發(fā)生器ARG,該先行請求發(fā)生器可以在解碼器模塊需要獲取相關(guān)數(shù)據(jù)的時刻之前產(chǎn)生讀取請求,并發(fā)送給進程仲裁器P_ARB,從而可以從動態(tài)存儲器中讀取所需要的數(shù)據(jù),并將其存放在內(nèi)部緩沖器BUF中,同時也向編碼器DMA接口提供數(shù)據(jù)。
為了能夠產(chǎn)生先行請求,先行請求發(fā)生器必須獲取有關(guān)不同編碼器進程發(fā)出讀請求的時間信息以及有關(guān)待讀取數(shù)據(jù)在動態(tài)存儲器中的地址信息。在宏模塊處理操作開始之前,編碼器內(nèi)核控制器將上述其配置表(如表1中所給的例子)下載到ARG中,從而通知ARG有關(guān)不同編碼器內(nèi)核進程的讀請求發(fā)出的時間。該配置表是可編程的并且包括有關(guān)每個進程的請求數(shù)目的數(shù)據(jù)、每個請求從動態(tài)存儲器中的讀取數(shù)據(jù)的字串?dāng)?shù)以及每個請求的起始周期數(shù),如表1所示。
然而,不同的讀請求對應(yīng)的地址數(shù)據(jù)成為可讀的時刻是不同的。某些編碼器讀請求所需的地址數(shù)據(jù)成為可讀的時間非常晚,以至幾乎不能對其作出預(yù)測。然而,不同宏模塊處理器操作發(fā)出的讀請求,是可以預(yù)測的。
圖3b針對圖1中所給出的例子顯示了有關(guān)宏模塊處理的不同類型的編碼器讀請求的可預(yù)測時間可以發(fā)現(xiàn),對于有關(guān)宏模塊MBPk的MBP候選4和5有關(guān)的讀請求(讀取)所需要的地址數(shù)據(jù),只有在涉及先前的宏模塊MBPk-1的計算完成之后,才成為可讀,這一步產(chǎn)生于MBP_can4和MBP_can5發(fā)出讀取請求(1個MAD時間相當(dāng)于18個編碼器系統(tǒng)時鐘周期)之前3個平均間隔時間(3 mean Average Distance3_MAD)。對于MBP候選1,2和3的讀取,相應(yīng)的間隔分別為3,4和5_MAD時間,而對于與MBP_wincol,AES/VES_out和VFE_out相關(guān)的讀請求,相應(yīng)的間隔分別為1,9和9個MAD時間。某些偶然情況下,并非所有編碼器進程讀請求都是可預(yù)測的。
在本發(fā)明的這一實施方案中,內(nèi)核控制器產(chǎn)生多個同步信號,包括Framerdy信號,MBP啟動信號和Mem啟動信號。Framerdy信號是同步脈沖,發(fā)送給ARG和編碼器里的模塊,該信號通知每幀圖像信號處理的起始點。MBPStart是同步脈沖,發(fā)送給ARG和編碼器集成電路里的宏模塊處理模塊,該信號通知楨范圍內(nèi)的宏模塊處理的起始點。Memstart是同步脈沖,在MBPStart脈沖之前3_MAD時間發(fā)生,并發(fā)送給ARG,以便引發(fā)ARG產(chǎn)生先行請求。ARG在相關(guān)進程發(fā)出相應(yīng)的讀請求的相同的相對時間段產(chǎn)生先行請求,但是在進程發(fā)出其請求時刻之前3_MAD時間產(chǎn)生。由信號域仲裁器,P_ARB所實現(xiàn)的仲裁方案可以保證在相關(guān)進程需要讀取數(shù)據(jù)的之前,這一提前量足以確保把數(shù)據(jù)放入中間緩沖器中。
在本實施方案中,ARG根據(jù)從編碼器集成電路的內(nèi)核控制器中下載的配置表產(chǎn)生預(yù)先訪問請求,這與內(nèi)核控制器采用時隙訪問為某一環(huán)境(environment)產(chǎn)生先行請求是相同的。然而,本發(fā)明并不局限于這種情況。發(fā)送給ARG、并作為產(chǎn)生預(yù)先訪問請求的依據(jù)的查尋表可以是不同的。比如,對于不同的進程,由于各自的地址數(shù)據(jù)對于這些不同的訪問成為可讀的時間周期各不相同,預(yù)先訪問請求和對相同進程的相應(yīng)請求的發(fā)出之間的間隔,是可以不同的。而且,由于地址數(shù)據(jù)可以遠(yuǎn)遠(yuǎn)提前成為可讀狀態(tài),所以ARG甚至可以在查尋表的0周期時刻提出預(yù)先訪問請求。
編碼器內(nèi)核控制器也為ARG和編碼器模塊的不同請求提供邏輯地址數(shù)據(jù)。這一邏輯地址數(shù)據(jù)標(biāo)志了圖像中宏模塊(或模塊)所在的位置。這些邏輯地址數(shù)據(jù)通過ARG內(nèi)部的轉(zhuǎn)換電路轉(zhuǎn)換成物理地址數(shù)據(jù),ARG根據(jù)存儲在同樣位于ARG內(nèi)部的寄存器中的參數(shù)、通過計算,產(chǎn)生物理地址數(shù)據(jù),ARG所產(chǎn)生的物理地址指出開始地址、訪問類型和存儲器中待讀取的數(shù)據(jù)的字串?dāng)?shù)(假如待讀取的數(shù)據(jù)在動態(tài)存儲器中是不連續(xù)的話,比如,在如下情況下當(dāng)動態(tài)存儲器以像素線的形式組織時,通常這些數(shù)據(jù)可能以x和y坐標(biāo)的形式表示)。ARG能夠從邏輯地址和進程類型中產(chǎn)生所需要的物理地址數(shù)據(jù)??梢愿鶕?jù)從內(nèi)核控制器接收的邏輯地址信號的時間先天地獲知進程類型。包含在配置表(比如表1)中的信息用來減少有關(guān)待讀取的字串?dāng)?shù)的數(shù)據(jù)。
上述論述中,假設(shè)編碼器和解碼器DMA接口都能產(chǎn)生一個單一的請求和一個單一的相關(guān)地址,以便訪問動態(tài)存儲器中的兩個字串?dāng)?shù)據(jù)(這兩個字串通常對應(yīng)于連續(xù)字串?dāng)?shù)據(jù))。然而,事實上,依賴用于把動態(tài)存儲器中的數(shù)據(jù)與不同編碼器和解碼器進程關(guān)聯(lián)起來的存儲器映射是不可能的。比如,有關(guān)解碼器數(shù)據(jù)的存儲器映射可能是這樣的把一對將經(jīng)由一個單一請求加以訪問的字串保存在動態(tài)存儲器的相同的行地址但不同的存儲體中。在這種情況下,每個請求用一個單一地址就足可以引發(fā)對動態(tài)存儲器中兩個字串的寫入或讀取。然而,有關(guān)編碼器數(shù)據(jù)的存儲器映射可能不允許兩個保存在不同存儲體中的連續(xù)的字串使用相同的行地址。
上述問題可以采取以下方法加以解決●可以改變動態(tài)存儲器中的編碼器數(shù)據(jù)的存儲器映射(然而,如果已經(jīng)針對編碼器進程對存儲器映射進行了優(yōu)化,那么這一步是不可取的),●可以在發(fā)送給動態(tài)存儲器接口的地址中包含一個偏移量。然后首地址可以判定放置在第一存儲體中的數(shù)據(jù)的位置,偏移量將被添加到首地址中以標(biāo)志放置在第二存儲體中數(shù)據(jù)的位置,或●為了能用一個具有兩個相關(guān)地址的單一請求表示一對請求,可以在兩個連續(xù)的編碼器請求和它們各自的地址之間作一個關(guān)聯(lián)。這種方法需要采用由進程仲裁器中的主狀態(tài)機實現(xiàn)的仲裁方案,以便把分配給編碼器進程的每個狀態(tài)換成兩個連續(xù)的狀態(tài),每個字串請求各一個。
對于編碼器的寫操作,把由進程在預(yù)定時間段產(chǎn)生的每個寫請求輸入到編碼器DMA接口中的寫請求緩沖器中,并在編碼器DMA接口的數(shù)據(jù)緩沖器中載入有關(guān)數(shù)據(jù)。發(fā)出這一寫請求的進程無需進一步的操作。然后編碼器DMA接口向P_ARB輸送一個寫請求。當(dāng)寫處理獲得由P_ARB執(zhí)行的仲裁的許可之后,便向編碼器DMA接口發(fā)送一個應(yīng)答信號(wr_ack),并把數(shù)據(jù)緩沖器中的數(shù)據(jù)通過MMI接口傳輸?shù)絼討B(tài)存儲器中。
如上文所述,ARG產(chǎn)生的先行請求引發(fā)對動態(tài)存儲器中數(shù)據(jù)的讀取,并其載入編碼器MDA接口的中間緩沖器中。通常,把中間緩沖器動態(tài)存儲器組織成一系列FIFO,每個進程具有一個讀FIFO和一個寫FIFO。在ARG把一個先行請求(或者寫請求緩沖器發(fā)送一個寫請求)發(fā)送給進程仲裁器時,向相應(yīng)于有關(guān)進程和訪問類型的FIFO發(fā)送一個信號,通知其準(zhǔn)備接收數(shù)據(jù)。根據(jù)表1中所給出的時間,當(dāng)?shù)竭_(dá)編碼器進程向中間緩沖器發(fā)送一個讀請求的時刻時,這一發(fā)送將采用原先在時隙系統(tǒng)中實現(xiàn)編碼器所采用的供存儲器接口使用的地址。該地址不供用在編碼器DMA接口中的中間緩沖器使用。因此,該緩沖器包括一個地址解碼器,地址解碼器可以把舊編碼器集成電路接口的地址和用在正處于處理的進程的中間緩沖器中的實際地址相互轉(zhuǎn)換。所需要的地址轉(zhuǎn)換比較簡單,這里假定所涉及的進程可以從請求時間中獲知。然后就可以清空適當(dāng)?shù)腇IFO。
編碼器DMA接口中的中間讀/寫數(shù)據(jù)緩沖器的FIFO是多維的,從而確保不會發(fā)生數(shù)據(jù)溢出。先行請求的產(chǎn)生時刻以及仲裁方案的設(shè)計,可以確保數(shù)據(jù)不發(fā)生溢出。
下面將結(jié)合圖5和6對P_ARB執(zhí)行的仲裁算法進行說明。從圖5中可以發(fā)現(xiàn),進程仲裁器包括多個分級排列的狀態(tài)機。為每個狀態(tài)機定義一系列狀態(tài),為每個狀態(tài)設(shè)定一個具有最高優(yōu)先級的單一的請求??梢园阎鳡顟B(tài)機中的某些狀態(tài)視為“自由狀態(tài)”,因為在狀態(tài)機處于“自由”狀態(tài)時刻,不存在最高優(yōu)先級類型的請求。在這種情況下,狀態(tài)機的輸出中顯示沒有任何請求已獲得通過。不同的請求在各自的狀態(tài)機中互相競爭,然后,較低等級的狀態(tài)機中獲勝的請求再與分級結(jié)構(gòu)中與其相鄰的最高等級的狀態(tài)機中的請求進行競爭。
更具體地說,進程仲裁器包括一個第一優(yōu)先級主狀態(tài)機(圖5中標(biāo)為“main state machine”),以及一個在主狀態(tài)機中的獲勝請求和其他的不同請求之間進行固定優(yōu)先級選擇的單元。從圖5中可以發(fā)現(xiàn),進程仲裁器中獲勝的請求并不能保證得以通過;在動態(tài)存儲器接口中執(zhí)行的仲裁方案中,它必須與來自系統(tǒng)CPU的請求作進一步的競爭。在動態(tài)存儲器接口中執(zhí)行的仲裁方案將最高優(yōu)先級分配給系統(tǒng)CPU的請求。
早先的仿真促進了有關(guān)包含信號域進程仲裁器P_ARB的狀態(tài)機的某些規(guī)則的發(fā)展。特別是,從第一優(yōu)先級狀態(tài)機去掉所有非周期性和和時間限制性進程(比如,VES_out,AES_out)認(rèn)為是可取的。這使得第一優(yōu)先級狀態(tài)機中的周期性進程多個自由狀態(tài)可以更好地共享帶寬。然后,這些自由狀態(tài)可供那些在較低優(yōu)先級的狀態(tài)機中獲勝的請求使用。另外,還決定從第一優(yōu)先級狀態(tài)機中去掉一個時間限制性進程(MBP_Wincolor)。仿真表明當(dāng)MBP_Wincolor在第一優(yōu)先級狀態(tài)機中競爭時,該請求類型的共享時間的效率不夠高。當(dāng)該請求類型用作第二優(yōu)先級狀態(tài)機的輸入,并且利用第一優(yōu)先級狀態(tài)機中的自由狀態(tài)時,會獲得較好結(jié)果。
從而,主狀態(tài)機處理最高優(yōu)先級和周期性的編碼器和解碼器進程,以及大多數(shù)其時間特性必須加以控制的進程。在本例子中,主狀態(tài)機處理的請求類型是涉及宏模塊處理(即MBP_current,MBP_Cand1-5,MBP_WR_BK)、編碼器視頻前端進程、以及解碼器中的以下周期性進程的編碼器請求DISPLAY、OSD、PIP、VFW、VFR、AFWO、AFW1、AFR和AWRW。
圖6a顯示了54個狀態(tài)的次序,這些狀態(tài)由圖5中的主狀態(tài)機重復(fù)遍歷。這一主狀態(tài)機完全遍歷一組狀態(tài)所花的時間大約為3MAD,取決于存儲器的頻率(本例子中是133MHz)。在108MHz下,為了處理一個宏模塊主狀態(tài)機必須轉(zhuǎn)大約三圈(周期),顯了處理一個圖像像素線需要花大概9各周期。圖6a中帶有標(biāo)有星號的狀態(tài)相應(yīng)于這樣的一些狀態(tài)其中根據(jù)由圖6b中的相關(guān)的狀態(tài)機所定義地次序,一組請求中的一個請求周期性地具有最高優(yōu)先級。換句話說,圖5中的主狀態(tài)機采用三個互聯(lián)的狀態(tài)機來實現(xiàn)。
在設(shè)計圖5中的主狀態(tài)機執(zhí)行的狀態(tài)的次序的時候,必須考慮下幾個方面●對于周期性(解碼器)進程,狀態(tài)機必須是循環(huán)的,●在特定的時刻,編碼器進程必須能夠及時獲取編碼器數(shù)據(jù),以及●不同編碼器和解碼器進程所需要的帶寬必須得到保證。
更具體地說,在決定為一個具體的進程分配多少個狀態(tài)時,需要進行以下計算(參照下文中的表3)1.對于主進程來說,該進程所需要的帶寬與全部進程所需要的帶寬之間的比例經(jīng)過計算(見表3的第4列)表明需要對編碼器進程提供81%的時間段,而該進程解碼器進程則只需要提供18%的時間段;2.MBP候選的編碼器讀取占了大概一半的時間段,因此一半的狀態(tài)(此處是27個)分配給了候選讀取;3.分配給其它進程的狀態(tài)的理論個數(shù)可以從帶寬比率中計算出來,得到轉(zhuǎn)換率53.39%→27狀態(tài)數(shù)(見表3的第5列);以及4.實際分配給每個進程的主狀態(tài)機狀態(tài)的實際數(shù)目可以通過兜圈來計算,以確保滿足編碼器進程所需的每個宏模塊的時間段數(shù)和解碼器進程的帶寬。(見表3中的最后一列)。
表3
對于一個給定的狀態(tài),向哪個請求分配最高優(yōu)先級,影響不同解碼器進程所需要的帶寬的獲取。例如,規(guī)則分布的狀態(tài)對于DISPLAY進程和解碼視頻前端處理,在通過主狀態(tài)機周期中,這些請求類型被分配最高等級的優(yōu)先級。這使得周期性訪問成為可能,并減少了緩沖器的容量。不同編碼器進程所需要的數(shù)據(jù),通過分配給這些進程的主狀態(tài)機的狀態(tài)數(shù)量來保證。例如,由于主狀態(tài)機的一半狀態(tài)分配給了MBP候選讀取,在任何時刻執(zhí)行請求,所需要的候選數(shù)據(jù)可在主狀態(tài)機周期的末端得到保證。
早期的仿真還表明對于要求較低帶寬的進程,最好使用單一狀態(tài)的狀態(tài)機,也就是說,考慮從單一進程類型發(fā)出請求的狀態(tài)機,并且,如果這些請求是在給定的時刻發(fā)出的話,就自動“獲勝”。這些單一狀態(tài)的狀態(tài)機的“獲勝”進程,根據(jù)時間限制地分配給一個分級結(jié)構(gòu)。這可以更有效地使用第一優(yōu)先級狀態(tài)機中的自由狀態(tài)。如圖5中所示,采用這樣的單一狀態(tài)的狀態(tài)機來處理來自編碼器的MBP_Wincolor,VES_in,AES_in,VES_out,AES_out,MUXcom_out和MUXcom_in請求以及來自解碼器的MC和INTERP請求。在某些偶發(fā)情況下,向MC和INTERP進程分配不同的優(yōu)先級,這是因為它們不在同一流水線階段上。而且,VES_out,AES_out MUXcom_out分配的優(yōu)先級要比VES_in,AES_in和MUXcom_in的優(yōu)先級要低,這是因為后三個進程對應(yīng)的是讀取編碼器中的多路函數(shù)在某個特定時刻所需要的數(shù)據(jù)。
為了評估本發(fā)明采用的方法的可行性,采用圖4中所示的編解碼器結(jié)構(gòu)進行仿真,而SDRAM工作在133MHz的頻率之下,并以32位字串傳輸數(shù)據(jù)。另外還假設(shè)系統(tǒng)CPU每50個周期(133MHz下)進行一次訪問。系統(tǒng)CPU的每次訪問涉及一個4存儲字節(jié)的字串。這就為CPU供了42.56MB/s的帶寬。(某些情況下,該帶寬為本例子所支持的CPU的極限帶寬。對CPU按每40周期作一次訪問進行測試表明視頻前端緩沖器所容納的數(shù)據(jù)量增加到每100周期6個32位字,該數(shù)據(jù)被視為非常大的)。
讀或連接一個統(tǒng)計模塊,以監(jiān)控圖4中圈在X里面的信號。統(tǒng)計模塊對讀或?qū)懻埱蟮陌l(fā)出與相應(yīng)的應(yīng)答信號得以接收時之間的時間間隔(等待時間)進行監(jiān)控。同時,對編碼器DMA接口所需要的數(shù)據(jù)緩沖器的容量進行估算。這些估算考慮以下幾個方面●對于讀進程從SDRAM接口到編碼器DMA接口的輸入字串以及編碼器DMA接口和相關(guān)編碼器讀進程之間的輸出字串,而●對于寫進程從相關(guān)的編碼器寫進程到編碼器DMA接口的輸入字串以及從編碼器DMA接口到SDRAM接口的輸出字串。
每個進程產(chǎn)生兩個文件1.第一個文件,含有先行請求及其應(yīng)答之間的每個宏模塊的所測的最大等待時間,以及每個宏模塊計算的最大緩沖器容量,和2.第二個文件,含有每個宏模塊的最大緩沖器容量以及每個宏模塊處理結(jié)束時的緩沖器容量。
通過對兩個文件的數(shù)據(jù)進行繪圖,可以給出有關(guān)每個緩沖器存滿和清空速度的圖表。下面的表4給出了有關(guān)編碼器DMA緩沖器所需要的最大容量以及不同進程發(fā)出的雙字串請求的數(shù)目的結(jié)果。
表4
解碼器中的緩沖器的容量可以很小(一個或兩個字串寬度),這是因為解碼器不基于時隙特性,僅僅在需要的時候請求數(shù)據(jù)。
仿真顯示編碼器和解碼器進程所需要的帶寬如下面的表5中所示。依照本發(fā)明的優(yōu)選實施方案的上述的仲裁算法保證了對于各個進程的這一帶寬。
表5
上述說明忽略了某些額外進程的存儲器訪問請求,例如可以在解碼器中執(zhí)行的數(shù)字視頻(DV,用在錄像機中)、萬能數(shù)據(jù)流管理(versatile streams management(VSM))外設(shè)、第二CPU進程等等。然而,仿真結(jié)果顯示本發(fā)明的技術(shù)能夠使適用于時隙存儲器訪問的模塊集成到一個涉及請求仲裁的系統(tǒng)中。如果整個系統(tǒng)的帶寬需求是實質(zhì)性的(如在包括額外解碼器進程的情況下),那么本發(fā)明仍然能夠通過采用編碼器內(nèi)核實現(xiàn)可中斷字串(減少了編碼器進程所占用的帶寬)來保證這些帶寬需求。上述功能的實現(xiàn)要求改變與不同編碼器請求有關(guān)的物理編址參數(shù)(第一字的地址,讀取的字?jǐn)?shù),等等)。
上文中的附圖及其描述說明了本發(fā)明,而非限制本發(fā)明。顯然,存在許多落入本發(fā)明所附的權(quán)利要求范圍內(nèi)的可選方案。尤其是,盡管就包含針對不同存儲器訪問方案設(shè)計的編碼器和解碼器集成電路的數(shù)編解碼器對本發(fā)明進行了描述,但本發(fā)明通??梢詰?yīng)用在集成有可用于公共資源訪問的時隙和請求仲裁方案的模塊的系統(tǒng)中。
權(quán)利要求中的任何參考符號都不應(yīng)當(dāng)視為對權(quán)利要求的限制。
權(quán)利要求
1.包含多個數(shù)據(jù)處理代理程序的數(shù)據(jù)處理裝置,適合與在某一時刻允許由一個代理程序訪問的外部資源相互合作,該裝置包括一個適合于管理對上述資源的訪問的接口,該接口包括仲裁裝置,仲裁裝置可以對多個數(shù)據(jù)處理代理程序發(fā)出的訪問公共資源的請求進行仲裁,并憑此選出獲得許可的請求;其特征在于在預(yù)定的時間,至少有一個數(shù)據(jù)處理代理程序可以進行訪問,并持續(xù)已知相應(yīng)的一段時間;與上述至少一個數(shù)據(jù)處理代理程序關(guān)聯(lián)的一個控制器,該控制器適合生成能夠指示預(yù)確定時間的控制數(shù)據(jù),在這一預(yù)確定的時間里,該或每一相應(yīng)的至少一個每個數(shù)據(jù)處理代理程序輸出訪問共享資源的請求;與該或每一個上述至少一個數(shù)據(jù)處理代理程序關(guān)聯(lián)一個相應(yīng)的緩沖器;提供一個先行請求發(fā)生器,以接收來自上述控制器的控制數(shù)據(jù),并且可以在上述預(yù)定時間之前代表上述至少一個數(shù)據(jù)處理代理程序產(chǎn)生先行訪問請求,并將其發(fā)送給上述接口;可使用接口把從上述資源中獲取的數(shù)據(jù)寫入與上述的一個數(shù)據(jù)處理代理相關(guān)聯(lián)的緩沖器中,而這些數(shù)據(jù)是由代表上述的至少一個數(shù)據(jù)處理代理程序之一的先行請求發(fā)生器所產(chǎn)生的先行訪問請求的結(jié)果數(shù)據(jù);和配置該或每一相應(yīng)的至少一個數(shù)據(jù)處理代理程序,以在上述預(yù)定的時間訪問相關(guān)的緩沖器。
2.權(quán)利要求1中的數(shù)據(jù)處理裝置,其中使用先行請求發(fā)生器根據(jù)控制器輸出的地址數(shù)據(jù)產(chǎn)生先行訪問請求。
3.權(quán)利要求1或2中的數(shù)據(jù)處理裝置,其中仲裁裝置執(zhí)行仲裁方案,其中不同的訪問請求具有不同的優(yōu)先級,為時限性或周期性訪問請求分配一個較高的優(yōu)先級。
4.權(quán)利要求3中的數(shù)據(jù)處理裝置,其中上述至少一個數(shù)據(jù)處理代理程序的某一個所請求訪問的特性是不可預(yù)測的,先行請求發(fā)生器幾乎可以為除了上述某些數(shù)據(jù)處理代理程序外的所有上述至少一個數(shù)據(jù)處理代理程序產(chǎn)生先行訪問請求,而仲裁裝置執(zhí)行的仲裁方案向上述某些數(shù)據(jù)處理代理程序的訪問請求賦予高優(yōu)先級。
5.權(quán)利要求3或4的數(shù)據(jù)處理裝置,其中仲裁裝置包含一個或多個具有多個狀態(tài)的狀態(tài)機,其中為不同的訪問請求分配固定的優(yōu)先級,并且,至少一個狀態(tài)機包含自由狀態(tài),在這些自由狀態(tài)中未預(yù)定哪個訪問請求具有最高優(yōu)先級。
6.依照權(quán)利要求1到5中任何一個的數(shù)據(jù)處理裝置,其中上述資源是一個存儲器。
7.依照權(quán)利要求1到6中任何一個的數(shù)據(jù)處理裝置,是作為集成電路的形式實現(xiàn)的。
8.一個數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包含權(quán)利要求1到7中任何一個的數(shù)據(jù)處理裝置和上述的資源。
9.依照權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中上述資源是一個存儲器,而上述系統(tǒng)構(gòu)成一個MPEG編解碼器。
10.一種管理由多個數(shù)據(jù)處理代理程序共享的資源的方法,某一時刻只允許一個代理程序訪問這一資源,提供了一個接口用來管理對上述資源的訪問,該接口包括仲裁裝置,該仲裁裝置可以對多個數(shù)據(jù)處理代理程序發(fā)出的訪問公共資源的請求進行仲裁,并由此選出獲得許可的請求,并且,至少一個數(shù)據(jù)處理代理程序可以在已知期間的相應(yīng)的時間段的預(yù)定時間進行訪問,該方法包括以下步驟提供一個與上述至少一個數(shù)據(jù)處理代理程序相關(guān)的控制器,控制器可以產(chǎn)生指示預(yù)確定時間的控制數(shù)據(jù),在這一預(yù)確定的時間該或每一相應(yīng)的至少一個數(shù)據(jù)處理代理程序輸出訪問共享資源的請求;為該或上述每至少一個數(shù)據(jù)處理代理程序提供一個相應(yīng)的緩沖器;提供一個先行請求發(fā)生器,其被配置以從上述控制器接收控制數(shù)據(jù),并且可以在上述預(yù)定時間之前代表上述至少一個數(shù)據(jù)處理代理程序產(chǎn)生有關(guān)先行訪問請求,并提供給上述接口;使用該接口把從上述資源中獲取的數(shù)據(jù)寫入與上述的一個數(shù)據(jù)處理代理程序相關(guān)聯(lián)的緩沖器中,而這些數(shù)據(jù)是由代表上述的至少一個數(shù)據(jù)處理代理程序之一的先行請求發(fā)生器所產(chǎn)生的先行訪問請求的結(jié)果數(shù)據(jù),以及配置該或每一個相應(yīng)的至少一個數(shù)據(jù)處理代理程序,以在上述預(yù)定的時間訪問相關(guān)的緩沖器。
全文摘要
在集成有用于時隙資源訪問方案的模塊(PROC)和用于訪問基于請求仲裁的公共資源的模塊(PROC)的系統(tǒng)中,請求仲裁方案用來管理對公共資源的訪問。為時隙資源訪問方案設(shè)計的模塊(PROC)與先行請求發(fā)生器(ARG)相關(guān)聯(lián),先行請求發(fā)生器可以在相關(guān)模塊發(fā)出請求之前產(chǎn)生先行請求并轉(zhuǎn)發(fā)給仲裁器(P_ARB)。另外,還把一個數(shù)據(jù)緩沖用于時隙資源訪問方案的模塊相關(guān)聯(lián),以便保存作為先行請求的結(jié)果所獲取的數(shù)據(jù),直到模塊產(chǎn)生與該數(shù)據(jù)相關(guān)的請求為止。
文檔編號G06F12/00GK1426560SQ01808652
公開日2003年6月25日 申請日期2001年12月12日 優(yōu)先權(quán)日2000年12月28日
發(fā)明者R·迪迪爾, C·米洛索羅拉 申請人:皇家菲利浦電子有限公司