專利名稱:數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包括存儲模塊和多個數(shù)據(jù)處理模塊的數(shù)據(jù)處理系統(tǒng),所述多個數(shù)據(jù)處理模塊用于訪問所述存儲模塊。
背景技術(shù):
這種系統(tǒng)通常叫做多處理器系統(tǒng),其中,數(shù)據(jù)處理模塊在一定程度上彼此獨立地運行,并且執(zhí)行特定的處理。所述多個數(shù)據(jù)處理模塊可以訪問存儲模塊,從而由多個數(shù)據(jù)處理模塊共享所述存儲模塊。通常,在這種數(shù)據(jù)處理系統(tǒng)中僅僅提供一個單獨的公共存儲模塊,并且多個數(shù)據(jù)處理模塊位于一個公共芯片上,而存儲模塊位于這種芯片的外部作為片外存儲器(off-chip memory)。由于所述處理模塊的內(nèi)部細(xì)節(jié)不屬于本發(fā)明的范圍,因此它們將被簡稱為知識產(chǎn)權(quán)(intellectualproperty,IP)模塊。
圖1顯示了一種基本形式的數(shù)字視頻平臺(DVP)系統(tǒng),作為這種共享存儲數(shù)據(jù)處理系統(tǒng)的例子。它包括多個經(jīng)由片外存儲器SDRAM進(jìn)行通信的數(shù)據(jù)處理單元IP。數(shù)據(jù)處理單元可以是可編程設(shè)備,例如CPU、專用硬件塊、具有復(fù)雜內(nèi)部結(jié)構(gòu)的子系統(tǒng)等等。在圖1的系統(tǒng)中還有設(shè)備交互層(DTL)接口DTL,經(jīng)由DTL每個數(shù)據(jù)處理單元IP被連接到中央主存儲器接口MMI,MMI仲裁對片外存儲器SDRAM的訪問。所有IP到IP的通信都是經(jīng)由映射在SDRAM中的邏輯緩沖區(qū)(未示出)進(jìn)行的。通常,數(shù)據(jù)處理單元IP之一是CPU(中央處理單元),其通過經(jīng)由存儲器映射結(jié)構(gòu)寄存器的網(wǎng)絡(luò)(未示出)編程數(shù)據(jù)處理單元來管理工作圖(task graph)的結(jié)構(gòu)。同樣以集中式的方式由該CPU處理數(shù)據(jù)處理單元IP之間的同步,該CPU經(jīng)由存儲器映射輸入/輸出網(wǎng)絡(luò)通知數(shù)據(jù)處理單元IP緩沖區(qū)是滿的還是空的。數(shù)據(jù)處理單元IP經(jīng)由中斷線(未示出)通知CPU這些緩沖區(qū)是空的還是已滿。
用于同步的機制要求片外存儲器SDRAM中的緩沖區(qū)必須足夠大以便將CPU的中斷率保持得較低。例如,盡管從功能的角度來看,視頻處理單元能夠以細(xì)粒度(例如,一行)進(jìn)行同步,但是,它們通常以粗粒度(例如,一幀)進(jìn)行同步。
由于這種數(shù)據(jù)處理系統(tǒng)包括共享存儲器結(jié)構(gòu),所以存在所有數(shù)據(jù)處理模塊都可以訪問的單一的地址空間。這簡化了編程模型。此外,公共存儲模塊有助于提供成本合算的系統(tǒng)解決方案。
然而,這種基本形式的數(shù)據(jù)處理系統(tǒng)具有許多缺陷,隨著技術(shù)的進(jìn)步,這些缺陷將變得更加明顯。即,隨著數(shù)據(jù)處理模塊數(shù)量的增長,到存儲器接口的連接的數(shù)量也將增長,這導(dǎo)致更復(fù)雜的存儲器接口。特別地,不同數(shù)據(jù)處理模塊之間的仲裁變得更加復(fù)雜。此外,對于離存儲器接口較遠(yuǎn)的數(shù)據(jù)處理模塊,線長會成為問題,因此,許多長線會引起線路擁塞和時間延遲,以及功耗問題。更嚴(yán)重的缺陷是,當(dāng)帶寬需求進(jìn)一步增長時,會有潛在的瓶頸;到片外存儲模塊的帶寬受到某些方面的限制,例如,信號發(fā)送速度和片外互連的針數(shù)。
GB2233480A公開了一種多處理器數(shù)據(jù)處理系統(tǒng),其中,每個處理器都具有本地存儲器。本地存儲器共同形成系統(tǒng)的主存儲器,并且不管存儲器是處理器的本地儲存器還是遠(yuǎn)程存儲器,任何處理器都可以訪問任何存儲器。每個處理器具有一個接口電路,其確定存儲器訪問請求是涉及本地存儲器還是涉及遠(yuǎn)程存儲器,并且將請求路由到適當(dāng)?shù)拇鎯ζ?,其中,通過總線路由遠(yuǎn)程請求。無論何時對本地存儲器進(jìn)行寫訪問,都將一個虛擬寫請求通過總線路由到所有其它處理器。每個處理器監(jiān)控總線上的所有寫請求,如果在本地緩沖存儲器中保存請求中指定的位置的副本時,則使該副本無效,以便保證緩存的一致性。
US5261067公開了一種設(shè)備和一種方法,用于保證多個并行處理器當(dāng)中的數(shù)據(jù)緩存內(nèi)容的完整性。每個處理器具有存儲中間計算結(jié)果的數(shù)據(jù)高速緩存器。通過使用同步間隔(interval)使每個處理器的數(shù)據(jù)緩存彼此同步。在進(jìn)入同步間隔時,將包含在個體緩存中的修改過的數(shù)據(jù)變量寫回共享存儲器。包含在數(shù)據(jù)緩存中的未修改過的數(shù)據(jù)被從存儲器中清除(flush)。在離開同步間隔時,同樣將自從進(jìn)入同步間隔時未改變過的數(shù)據(jù)變量清除。通過將修改過的數(shù)據(jù)緩存值保留在計算修改值的個體處理器中,可以避免對共享存儲器的不必要的訪問。
US6253290B1描述了一種具有多個處理器單元的多處理器系統(tǒng),每個單元包括CPU和連接到CPU的本地緩沖存儲器。CPU具有連接到全局共享總線的共享總線終端,本地緩沖存儲器具有連接到全局非共享總線的總線終端。全局共享總線被連接到用于存儲由多個CPU共同使用的共享信息的外部共享存儲器,全局非共享總線被連接到用于存儲由多個CPU使用的非共享信息的外部非共享存儲器。
US6282708B1公開了一種用于構(gòu)造包含多個基本塊的多指令計算機程序的方法,每一塊由組織在內(nèi)部有向非循環(huán)圖中的內(nèi)部指令和外部指令組成。其特征在于,在共同源于一個分別相關(guān)的單一前趨指令的后繼指令上執(zhí)行保護(hù)。然后,匯聚到單一連接/目標(biāo)指令的被連接指令的子集被無條件連接。這是通過下述方式實現(xiàn)的,即,通過使連接指令的子集中的各個相應(yīng)的指令在相互無關(guān)的條件下執(zhí)行,關(guān)于某一跳轉(zhuǎn)指令指定所有操作,指定所有先前必須被執(zhí)行的操作,并且在一個有向非循環(huán)圖中鏈接各種包括后繼指令的子集的基本塊,該圖允許并行執(zhí)行其中包含的任何另外的指令子集。
發(fā)明內(nèi)容
本發(fā)明的一個目的是克服上述缺陷并改進(jìn)數(shù)據(jù)處理系統(tǒng),以便即使當(dāng)帶寬需求進(jìn)一步增大時,也能避免數(shù)據(jù)處理模塊和存儲模塊之間的通信瓶頸,以及減少到存儲器接口的連接數(shù),并減少線長。
為了實現(xiàn)上述以及進(jìn)一步的目的,根據(jù)本發(fā)明,提供了一種包括存儲模塊和多個數(shù)據(jù)處理模塊的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理模塊用于訪問所述存儲模塊,其特征是連接在所述存儲模塊和所述多個數(shù)據(jù)處理模塊之間的通信接口模塊,所述通信接口模塊包括節(jié)點網(wǎng)絡(luò),每個節(jié)點包括至少一個從端口(slave port)和至少一個主端口(masterport),所述從端口用于從數(shù)據(jù)處理模塊或上一個節(jié)點接收存儲器訪問請求,所述主端口用于根據(jù)在所述從端口接收的存儲器訪問請求,向下一個節(jié)點或所述存儲器模塊發(fā)出存儲器訪問請求,其中,所述至少一個從端口被連接到上一個節(jié)點的主端口或所述數(shù)據(jù)處理模塊之一,并且所述至少一個主端口被連接到下一個節(jié)點的從端口或所述存儲模塊。
由于根據(jù)本發(fā)明的結(jié)構(gòu),減少了到存儲模塊的連接數(shù)。這是通過提供邏輯上共享的存儲器結(jié)構(gòu)的特定物理組織來實現(xiàn)的,其中,通信接口模塊包括多個節(jié)點的網(wǎng)絡(luò),所述節(jié)點具有用于從數(shù)據(jù)處理模塊接收存儲器訪問請求的從端口,所述節(jié)點還具有至少一個用于向存儲模塊發(fā)出特定存儲器訪問請求的主端口。通常,節(jié)點的主端口的數(shù)量要少于該節(jié)點的從端口的數(shù)量。因此,由于減少了連接到存儲器接口的客戶,所以減小了存儲器接口的復(fù)雜性。此外,由于通信接口模塊的互連,從而減小了單條線的長度,并且因此減小了線的總長度,從而有助于避免線路擁塞。
通信接口模塊包括由多個節(jié)點模塊構(gòu)成的網(wǎng)絡(luò),其中,每個節(jié)點模塊包括至少一個從端口和至少一個主端口,所述從端口用于接收存儲器訪問請求,所述主端口用于根據(jù)在所述從端口接收的存儲器訪問請求發(fā)出存儲器訪問請求,其中,所述從端口的數(shù)量可以高于所述主端口的數(shù)量。因此,根據(jù)本發(fā)明的通信接口模塊包括用于連接數(shù)據(jù)處理模塊和存儲模塊的節(jié)點結(jié)構(gòu),其中,可以經(jīng)由節(jié)點模塊的從端口將多個數(shù)據(jù)處理模塊連接到該節(jié)點模塊,而每個節(jié)點模塊僅具有一個或幾個主端口。由于節(jié)點模塊的從端口提供相同的服務(wù),因而是一致的,所以從端口是連接數(shù)據(jù)處理模塊還是連接另一個節(jié)點模塊對于節(jié)點模塊來講是透明的。由數(shù)據(jù)處理模塊發(fā)出的存儲器訪問請求被傳遞到它所連接的多個節(jié)點模塊之一。本發(fā)明的思想的優(yōu)點是它可以被以逐步的方式引入。即,采用本發(fā)明思想的最初的芯片能夠使用僅僅用于少數(shù)幾個數(shù)據(jù)處理模塊的節(jié)點模塊;在后來的芯片中,節(jié)點模塊的數(shù)量可以逐漸增長,本發(fā)明的通信接口模塊的設(shè)備可以被用于越來越多的數(shù)據(jù)處理模塊之間的通信。如果節(jié)點模塊具有多個主端口,則例如,根據(jù)地址范圍的區(qū)別,選擇一個主端口用于轉(zhuǎn)發(fā)。
在本發(fā)明的第一實施例中,所述節(jié)點模塊的每一個從端口都被連接到所述多個數(shù)據(jù)處理模塊之一,并且所述節(jié)點模塊的主端口被連接到所述存儲模塊。因此,所有節(jié)點模塊位于同一層中,并且數(shù)據(jù)處理模塊經(jīng)由這種單層的節(jié)點模塊連接到存儲模塊。數(shù)據(jù)處理模塊能夠?qū)⒋鎯ζ髟L問請求發(fā)送到相關(guān)聯(lián)的節(jié)點模塊,該節(jié)點模塊將請求轉(zhuǎn)發(fā)到存儲模塊。
在可選的第二實施例中,節(jié)點模塊的網(wǎng)絡(luò)被分層地構(gòu)造,使數(shù)據(jù)處理模塊作為葉節(jié)點,使節(jié)點模塊作為節(jié)點。
所述多個節(jié)點模塊被排列在有向非循環(huán)圖結(jié)構(gòu)中。有向非循環(huán)圖結(jié)構(gòu)的每條邊對應(yīng)于一條發(fā)送存儲器訪問請求的互連路徑。邊是有向的,并且每條邊將一個節(jié)點模塊的主端口連接到另一個節(jié)點模塊的從端口。如果存儲模塊包括多個存儲器部分,則非循環(huán)圖結(jié)構(gòu)會產(chǎn)生一組主端口,每個主端口都提供到不同存儲器部分的連接,以這種方式,每個數(shù)據(jù)處理模塊都能與一個或多個存儲器部分通信,從而使得多個數(shù)據(jù)處理模塊能夠并發(fā)地訪問不同的存儲器部分,從而減小了帶寬瓶頸。此外,非循環(huán)圖結(jié)構(gòu)可以提供多個不同的穿過圖的、從一個數(shù)據(jù)處理模塊通向一個存儲器部分的路徑??梢杂欣乩眠@些不同的路徑以進(jìn)一步減少通信瓶頸或者避免使用有問題的連接。
此外,在優(yōu)選的以上實施例的改進(jìn)中,所述多個節(jié)點模塊可以被排列在樹結(jié)構(gòu)中,從而使得一個或多個數(shù)據(jù)處理模塊和/或上一個節(jié)點被經(jīng)由節(jié)點模塊的從端口連接到一個節(jié)點模塊,但是每個節(jié)點模塊僅具有一個主端口。這簡化了節(jié)點模塊中的轉(zhuǎn)發(fā)過程,并提供了到位于節(jié)點樹的根的、能夠被所有數(shù)據(jù)處理模塊訪問的單一存儲器部分的連接。
在這個可選的第二變形中,最好所述多個節(jié)點模塊包括n(n≥2)組節(jié)點模塊,其中,第一組的節(jié)點模塊的從端口中的每一個都被連接到所述多個數(shù)據(jù)處理模塊(IP)中的一個,第n組的節(jié)點模塊的主端口(m)被連接到所述存儲模塊,第n組的節(jié)點模塊的從端口中的每一個都被連接到第(n-1)組的節(jié)點模塊的主端口。因此,所述多個節(jié)點模塊被分成n組,其中,每個組都定義了結(jié)構(gòu)中的不同層。如果節(jié)點模塊在它的一個從端口接收到存儲器訪問請求,則將請求轉(zhuǎn)發(fā)到更高層的組中的節(jié)點模塊,如果節(jié)點模塊處于最高層(即,第n層)的組,則將請求轉(zhuǎn)發(fā)到存儲模塊。對于其,應(yīng)該注意,節(jié)點結(jié)構(gòu)不必具有一致的深度。由于一些數(shù)據(jù)處理模塊與存儲模塊僅隔一個或兩個節(jié)點,所以它們靠近存儲模塊,而與此同時,由于另一些數(shù)據(jù)處理模塊發(fā)出的存儲器訪問請求必須經(jīng)由許多節(jié)點到達(dá)存儲模塊,所以它們遠(yuǎn)離于存儲模塊。
上述的節(jié)點模塊的分層結(jié)構(gòu)對于數(shù)據(jù)處理模塊是完全透明的,因此不需要改變數(shù)據(jù)處理模塊。
最好節(jié)點模塊是集線器。
在本發(fā)明的另一個優(yōu)選實施例中,至少一個本地存儲單元被連接到通信接口,使得能夠通過存儲器訪問請求有選擇地訪問這種本地存儲單元。因此,單一的地址空間分布在全局存儲器以及這種本地存儲單元上。該實施例的優(yōu)點是,數(shù)據(jù)處理模塊可以僅僅經(jīng)由本地存儲單元彼此交換數(shù)據(jù),而不必使用全局存儲器,這導(dǎo)致通過減少存儲器訪問延遲、減少功耗、以及減少使用外部存儲器帶寬,從而進(jìn)一步減少了通信中潛在的瓶頸。
最好,至少一個節(jié)點模塊還包括至少一個存儲器端口,本地存儲單元連接到該端口。因此,節(jié)點模塊通過將存儲器訪問請求的地址與連接到該節(jié)點模塊的本地存儲單元的關(guān)聯(lián)地址范圍進(jìn)行比較,來檢查所述存儲器訪問請求是否指向連接到這種節(jié)點模塊的本地存儲單元。如果請求指向本地存儲單元,則在所選擇的本地存儲單元上執(zhí)行存儲器訪問。否則,節(jié)點模塊將存儲器訪問請求通過它的主端口轉(zhuǎn)發(fā)到下一個節(jié)點模塊或存儲模塊,對于轉(zhuǎn)發(fā)到下一個節(jié)點模塊的情況,如果有本地存儲單元也連接到該下一個節(jié)點模塊,則重復(fù)進(jìn)行檢查并進(jìn)行訪問或轉(zhuǎn)發(fā)。
在上面所述的實施例的變形中,通信接口模塊包括高速緩存控制器模塊,用于控制作為高速緩沖存儲器的本地存儲單元。在該情況中,至少一部分本地存儲單元被用于在本地存儲存在于其它經(jīng)由主端口之一可達(dá)的存儲器中的數(shù)據(jù)的拷貝。因此,可以在本地處理對更廣的能夠高速緩存的地址范圍的訪問請求。
此外,通信接口模塊可以包括至少一個用于對數(shù)據(jù)處理模塊之間的通信進(jìn)行流化(streaming)的同步模塊。特別地,至少一個節(jié)點模塊包括用于對直接或間接連接到所述節(jié)點模塊的數(shù)據(jù)處理模塊之間的通信進(jìn)行流化的所述同步模塊。
如果本地存儲單元被連接到節(jié)點模塊,則本地存儲單元應(yīng)具有先入/先出(FIFO)功能,并且同步模塊包括FIFO管理模塊來控制所述本地存儲單元。當(dāng)FIFO管理被存儲在本地時,可以在本地處理同步服務(wù),因此,多個數(shù)據(jù)處理模塊可以經(jīng)由連接到該節(jié)點模塊的本地存儲單元來傳送數(shù)據(jù);否則,同步請求被轉(zhuǎn)發(fā)到相應(yīng)節(jié)點模塊的主端口之一。
在另一個優(yōu)選實施例中,在單個芯片上提供通信接口模塊。此外,至少一部分所述多個數(shù)據(jù)處理模塊可以被額外地提供到所述單個芯片上。
通過下列描述和附圖,將能更好地理解本發(fā)明的上述目的和其它方面。
附圖簡述參照附圖來描述本發(fā)明的優(yōu)選實施例,其中圖1顯示了根據(jù)現(xiàn)有技術(shù)的基本形式的DVP系統(tǒng)的示意性基本框圖;圖2顯示了根據(jù)本發(fā)明第一優(yōu)選實施例的包含集線器(hub)結(jié)構(gòu)的DVP系統(tǒng)的示意性基本框圖;圖3顯示了根據(jù)本發(fā)明第二優(yōu)選實施例的、具有集線器結(jié)構(gòu)并且還包括片上本地存儲器的DVP系統(tǒng)的示意性基本框圖;以及圖4顯示了根據(jù)本發(fā)明第三優(yōu)選實施例的包含集線器結(jié)構(gòu)的DVP系統(tǒng)的示意性基本框圖。
具體實施例方式
圖2顯示了具有根據(jù)本發(fā)明第一優(yōu)選實施例的集線器結(jié)構(gòu)的數(shù)字視頻平臺(DVP)系統(tǒng)。類似于圖1中顯示的系統(tǒng),圖2中的系統(tǒng)包括多個數(shù)據(jù)處理單元IP和一個存儲器SDRAM,所述數(shù)據(jù)處理單元IP也可以被稱作知識產(chǎn)權(quán)(IP)單元。數(shù)據(jù)處理單元IP可以是可編程設(shè)備(CPU)、專用硬件塊、具有復(fù)雜內(nèi)部結(jié)構(gòu)的子系統(tǒng)等等。所有數(shù)據(jù)處理單元包括設(shè)備交互層(DTL)接口。此外,還存在多個集線器H11、H12、H2,其中每個集線器包括多個從端口s和一個主端口m。在圖2的系統(tǒng)中,多個集線器構(gòu)成集線器的網(wǎng)絡(luò),其中包括由H11和H12構(gòu)成的第一組集線器以及僅包含一個集線器H2的第二組集線器。第一組集線器H11和H12構(gòu)成臨近數(shù)據(jù)處理單元IP的第一層,因此,第一組集線器H11和H12直接經(jīng)由各自的從端口s連接到數(shù)據(jù)處理單元IP。在圖2的實施例中,每個集線器僅具有一個用于連接到下一個集線器或存儲器接口MMI的主端口m。第一組中的集線器H11經(jīng)由其主端口m連接到第二組的集線器H2的從端口s,H2經(jīng)由其主端口m連接到存儲器接口MMI,而第一組的集線器H12直接經(jīng)由其主端口m連接到存儲器接口MMI。存儲器接口MMI連接到存儲器SDRAM。
在圖2的實施例中,集線器的網(wǎng)絡(luò)被組織為有向非循環(huán)圖(DAG)結(jié)構(gòu),其中,由集線器H11、H12、H2構(gòu)成DAG結(jié)構(gòu)的節(jié)點,并且DAG結(jié)構(gòu)的每條邊對應(yīng)于傳送存儲器訪問請求的互連路徑。該邊是有向的。圖2中顯示的DAG結(jié)構(gòu)被限制為具有樹結(jié)構(gòu),其中,每個集線器H12、H11和H2都只具有一個主端口。因為集線器不必為每個存儲器請求選擇主端口,例如通過區(qū)別請求地址的范圍來選擇,所以簡化了集線器內(nèi)的轉(zhuǎn)發(fā)過程。
在集線器的從端口s接收由主端口m轉(zhuǎn)發(fā)的存儲器訪問請求。由于集線器的從端口s提供相同的服務(wù),所以它們是一致的。因此,對于集線器來講,從端口s是連接到數(shù)據(jù)處理單元IP還是另一個集線器是透明的。
應(yīng)注意,基于圖2的實施例可能有許多結(jié)構(gòu)上的變形,圖2只是給出了一個例子。因此,集線器的網(wǎng)絡(luò)可以包括多于兩層。此外,集線器H12可以連接到結(jié)構(gòu)中更高層的下一個集線器。此外,一個集線器可以具有多個主端口,其中,例如根據(jù)地址范圍區(qū)別,選擇單個主端口用于轉(zhuǎn)發(fā)。
另外如圖2所示,數(shù)據(jù)處理單元、設(shè)備交互層DTL、集線器H11、H12、H2以及存儲器接口MMI在單獨的芯片C上,而存儲器SDRAM則在芯片C之外。
由于圖2中顯示的集線器結(jié)構(gòu),減少了存儲器接口MMI的客戶的數(shù)量。此外,單條連線的長度也減少了,并且因此減少了連線的總長度,由此避免了線路擁塞。
分層的集線器結(jié)構(gòu)對于數(shù)據(jù)處理單元IP是完全透明的,并且不需要改變數(shù)據(jù)處理單元IP。同樣,其不影響進(jìn)行同步的方式;仍然可以以集中式的方式通過利用存儲器映射輸入/輸出(未顯示)以及經(jīng)由包含CPU的數(shù)據(jù)處理單元的中斷來處理。
圖3顯示了本發(fā)明的第二優(yōu)選實施例,該第二優(yōu)選實施例與圖2的第一優(yōu)選實施例的不同在于,一個嵌入式本地存儲器MEM被連接到每個集線器上。然而,對于其應(yīng)該注意,在一個可選的實施例中,僅為一些集線器提供本地存儲器。本地存儲器MEM被分配了地址空間中的專用地址段;其中,提供了單一的地址空間,該地址空間分布于片外存儲器SDRAM和多個本地存儲器MEM上。數(shù)據(jù)處理單元IP以通常的基于地址的方式執(zhí)行存儲器訪問請求,其中,地址可以指向片外存儲器SDRAM或指向片上本地存儲器MEM。所有數(shù)據(jù)數(shù)量單元IP都能夠訪問片外存儲器SDRAM和另外的連接到存儲器接口MMI的片上本地存儲器MEM,但并不是所有的數(shù)據(jù)處理單元IP都能訪問連接到H11、H12、H2上的所有的片上本地存儲器MEM。即,數(shù)據(jù)處理單元IP僅能訪問連接在通向存儲器接口MMI的路徑上的集線器上的本地存儲器MEM。
由于數(shù)據(jù)處理單元IP共享公用集線器,所以可以經(jīng)由連接到該集線器的本地存儲器MEM執(zhí)行緩沖通信。用于數(shù)據(jù)處理單元之間的通信的先入/先出(FIFO)緩沖區(qū)被映射到連接到公用集線器上的本地存儲器MEM的存儲段,最好是被映射到連接到作為最臨近的公用集線器的第一組的集線器H11或H12的本地存儲器MEM的存儲段。數(shù)據(jù)處理單元IP只是被命令經(jīng)由它們的DTL接口來訪問這種已被分配為緩沖區(qū)的地址范圍中的數(shù)據(jù),但卻不知道物理位置;這對于數(shù)據(jù)處理單元IP是透明的。集線器檢查由數(shù)據(jù)處理單元IP執(zhí)行的存儲器訪問請求的地址,并且當(dāng)?shù)刂吩谥付ǖ姆秶袝r,執(zhí)行對本地存儲器MEM的訪問,或者將請求轉(zhuǎn)發(fā)到上一層??梢愿鶕?jù)配置將用于IP到IP通信的緩沖區(qū)分配到本地存儲器MEM,其中,緩沖區(qū)的地址范圍被編寫入本地存儲器MEM所連接的集線器。
被映射到經(jīng)由片上本地存儲器MEM的通信的IP到IP的通信不消耗昂貴的到片外存儲器SDRAM的帶寬。應(yīng)該選擇集線器結(jié)構(gòu)從而使得需要頻繁通信的數(shù)據(jù)處理單元IP具有公用的集線器,該公用的集線器用于經(jīng)由連接到這種公用集線器的本地存儲器的通信。例如,視頻數(shù)據(jù)處理單元IP應(yīng)該在集線器結(jié)構(gòu)的相同的子樹中。此外,極大地增長了總的可用存儲器帶寬。與由一些數(shù)據(jù)處理單元IP執(zhí)行的對片外存儲器SDRAM的訪問相并行,可以由位于其它(分離)子樹中數(shù)據(jù)處理單元IP執(zhí)行到片上本地存儲器的訪問。此外,經(jīng)由片上本地存儲器MEM的訪問更節(jié)省功率,并且能夠更容易地支持更高的帶寬(更寬的互連以及存儲器端口,更高的時鐘頻率)。
如上所說明的,不管數(shù)據(jù)是位于片上(本地存儲器MEM)還是片外(存儲器SDRAM),數(shù)據(jù)處理單元IP都能簡單地經(jīng)由它們的DTL接口來訪問該數(shù)據(jù)。因而,片上通信對于數(shù)據(jù)處理單元IP是透明的。這使得在提出的配置中重用數(shù)據(jù)處理單元IP更加便利。
特別要注意數(shù)據(jù)處理單元IP之間的同步。如同已在上面所述的,在DVP系統(tǒng)中,由包含CPU的數(shù)據(jù)處理單元進(jìn)行同步,這要求粗?jǐn)?shù)據(jù)粒度上的低速率的同步。這導(dǎo)致更大的緩沖區(qū)大小,其能夠輕易地容納在片外SDRAM中。然而,對于片上通信,應(yīng)該使用更小的緩沖區(qū),其要求更細(xì)的數(shù)據(jù)粒度上的同步。對于由許多數(shù)據(jù)處理單元執(zhí)行的功能,在更細(xì)的粒度(例如,行或宏塊(macro block))上同步僅僅是邏輯上的。然而,將基于中斷的方案用于更細(xì)粒度的同步將導(dǎo)致對CPU的更高的中斷率。
解決方案可以是為同步提供更多的CPU功率或者甚至為同步任務(wù)提供專用的(輕量級)CPU。
另一個好的解決方案是為集線器增加同步支持。在這種情況下,每個集線器能夠執(zhí)行同步任務(wù),該同步任務(wù)與經(jīng)由連接到這種集線器的本地存儲器MEM的(基于FIFO的)IP到IP的通信相關(guān),即,對于每個先入/先出操作,管理數(shù)據(jù)和空間(room)的可用性并將其發(fā)信號通知給數(shù)據(jù)處理單元IP。因此,至少就涉及經(jīng)由本地存儲器的通信而言,這支持在沒有CPU軟件干預(yù)的情況下的數(shù)據(jù)處理單元的連續(xù)的(自治的)操作。
數(shù)據(jù)處理單元IP可以在它們的端口發(fā)出抽象的同步調(diào)用(call)?;跀?shù)據(jù)處理單元IP是如何集成在片上系統(tǒng)中的,基礎(chǔ)設(shè)施決定如何解析(resolve)這些同步調(diào)用。在可重用的數(shù)據(jù)處理單元中這不能是硬連線的。例如,如果這種端口映射到經(jīng)由本地存儲器的本地通信,則對應(yīng)的集線器在本地解析同步調(diào)用,或者將其轉(zhuǎn)發(fā)到下一個更高層的集線器。如果通信是經(jīng)由片外存儲器SDRAM進(jìn)行的,則可以產(chǎn)生中斷。對于數(shù)據(jù)處理單元IP,這被“抽象”接口(未示出)隱藏了,配置該“抽象”接口從而使得它能夠向數(shù)據(jù)處理單元IP提供功能以向通信接口發(fā)出高層請求,但是對于數(shù)據(jù)處理單元隱藏了如何實現(xiàn)這種請求。因此,當(dāng)在連接到集線器上的本地存儲器MEM中提供緩沖區(qū)時,在配置時,將用于同步的端口地址連同緩沖區(qū)的地址范圍編寫入集線器。
應(yīng)注意在上述方案中,本地存儲器MEM被用于緩沖的IP到IP的通信,其中,根本不需要將數(shù)據(jù)傳送到片外SDRAM。這不同于將片上本地存儲器用作高速緩存器,所述高速緩存器用于將數(shù)據(jù)從片外SDRAM拷貝到片上本地存儲器MEM中以便重復(fù)使用。
然而,圖3的結(jié)構(gòu)也能夠被用于支持高速緩存,其中,有兩種不同的高速緩存方法透明高速緩存和IP控制高速緩存。
對于透明高速緩存,除了能感覺到訪問數(shù)據(jù)中的不同延遲外,數(shù)據(jù)處理單元IP不真正了解數(shù)據(jù)被拷貝到了本地存儲MEM。通過高速緩存器控制功能,數(shù)據(jù)被從片外存儲器SDRAM拷貝到片上本地存儲器,或者被從片上本地存儲器拷貝到片外存儲器SDRAM。在集線器中實現(xiàn)這種高速緩存器控制。必須通過實現(xiàn)硬件高速緩存器一致性方案或通過采用對編程模型進(jìn)行限制來解決高速緩存器一致性。
對于IP控制緩存,數(shù)據(jù)處理單元IP自身將數(shù)據(jù)從片外存儲器SDRAM拷貝到片上本地存儲器以重復(fù)(細(xì)粒度)使用。在片上本地存儲器MEM中的拷貝與片外存儲器SDRAM中的相應(yīng)數(shù)據(jù)在不同的地址范圍。對于IP控制緩存,由數(shù)據(jù)處理單元IP來負(fù)責(zé)一致性。作為IP控制緩存的一個例子,可以考慮三維圖形渲染,其將結(jié)構(gòu)紋理數(shù)據(jù)高速緩存到片上本地存儲器MEM中以對該數(shù)據(jù)進(jìn)行細(xì)粒度的訪問。這是通過將結(jié)構(gòu)紋理數(shù)據(jù)拷貝到連接到集線器上的本地存儲器MEM的地址范圍,并且當(dāng)執(zhí)行細(xì)粒度訪問時引用該地址范圍中的地址來進(jìn)行的。在這種情況中,由數(shù)據(jù)處理單元IP自身進(jìn)行高速緩存器控制,并且這種使用方式與用于IP到IP通信的片上本地存儲器的透明使用方式是不同的。然而,圖3的結(jié)構(gòu)支持這種使用。
圖4顯示了第三優(yōu)選實施例,其與圖2的第一實施例的不同在于,除了第一片外存儲器SDRAM 1和連接到其的相關(guān)聯(lián)的第一存儲器接口MMI 1以外,還提供了第二片外存儲器SDRAM 2和連接到其的相關(guān)聯(lián)的第二存儲器接口MMI 2。此外,提供了多個集線器H11、H12、H21和H22,其中,集線器H11和H12每一個都包含多個從端口s以及兩個主端口m,并且集線器H21和H22每一個都包含兩個從端口s以及一個主端口m。所以,在圖4的系統(tǒng)中,多個集線器構(gòu)成了集線器網(wǎng)絡(luò),該網(wǎng)絡(luò)包括由H11和H12構(gòu)成的第一組集線器以及由H21和H22構(gòu)成的第二組集線器。第一組集線器H11和H12構(gòu)成了接近數(shù)據(jù)處理單元IP的第一層,因此,第一組集線器中的H11和H12直接經(jīng)由它們的從端口s連接到數(shù)據(jù)處理單元IP。第二組集線器H21和H22構(gòu)成了接近存儲器接口MMI 1和MMI 2的第二層,其中,集線器H21和H22每一個都經(jīng)由各自的從端口連接到集線器H11的主端口m中的一個,并且進(jìn)一步經(jīng)由各自的另一個從端口連接到集線器H12的主端口m中的一個。此外,集線器H21經(jīng)由它的主端口m連接到第一存儲器接口MMI 1,并且集線器H22經(jīng)由它的主端口m連接到第二存儲器接口MMI 2。
因此,在圖4的第三實施例中,集線器的網(wǎng)絡(luò)被組織為分別類似與圖2和圖3中的第一和第二實施例的DAG結(jié)構(gòu),但是數(shù)據(jù)處理單元IP可以選擇訪問片外存儲器SDRAM 1或SDRAM 2,然而在圖2和3的第一和第二實施例中,僅存在單一片外存儲器SDRAM和數(shù)據(jù)處理單元IP之間的通信。除了有兩個片外存儲器SDRAM 1和SDRAM 2連接到集線器的網(wǎng)絡(luò)以外,圖4的第三實施例的操作與圖2的第一實施例的操作相同,因此可以參考圖2的說明。此外,在圖4的第三實施例中,也可以有選擇地提供例如結(jié)合圖3描述的本地存儲器和同步。
如上所述,圖4的第三實施例包括兩個片外存儲器SDRAM 1和SDRAM 2。然而,也可以提供多于兩個的片外存儲器。
在上述說明中,已經(jīng)提出了類似DVP平臺的多處理數(shù)據(jù)系統(tǒng)的下一步的發(fā)展,使得能夠使用片上本地存儲器MEM來避免到片外存儲器SDRAM的通信瓶頸。使用用于IP到IP通信的本地存儲器MEM基本上對數(shù)據(jù)處理單元IP是透明的。
上述根據(jù)本發(fā)明的體系結(jié)構(gòu)的另外的優(yōu)點是,它能夠以逐步的方式被引入。采用所述解決方案的最初的芯片能夠使用僅僅用于幾個數(shù)據(jù)處理單元IP的片上本地存儲器MEM和新的集線器(例如H12),所述幾個數(shù)據(jù)處理單元IP將通過這種本地存儲器MEM進(jìn)行通信。在以后的芯片中,具有本地存儲器的集線器的數(shù)量可以逐漸增長,并且片上通信設(shè)備可以被用于越來越多的IP到IP的通信。
以上雖然參照附圖所示的例子描述了本發(fā)明,但是顯然,本發(fā)明并不局限于此,在附加的權(quán)利要求公開的范圍內(nèi),本發(fā)明可以有多種變形。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括存儲模塊(SDRAM)和多個數(shù)據(jù)處理模塊(IP),所述數(shù)據(jù)處理模塊用于訪問所述存儲模塊(SDRAM),其特征在于連接在所述存儲模塊(SDRAM)和所述多個數(shù)據(jù)處理模塊(IP)之間的通信接口模塊,所述通信接口模塊包括節(jié)點(H11,H12,H2)的網(wǎng)絡(luò),每個節(jié)點包括至少一個從端口(s)和至少一個主端口(m),所述從端口(s)用于從數(shù)據(jù)處理模塊(IP)或上一個節(jié)點接收存儲器訪問請求,所述主端口(m)用于根據(jù)在所述從端口(s)接收的所述存儲器訪問請求,向下一個節(jié)點或所述存儲模塊(SDRAM)發(fā)出存儲器訪問請求,其中,所述至少一個從端口(s)被連接到上一個節(jié)點的主端口(m)或所述多個數(shù)據(jù)處理模塊(IP)之一,并且所述至少一個主端口(m)被連接到下一個節(jié)點的從端口(s)或所述存儲模塊(SDRAM)。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其特征在于,在每個節(jié)點模塊,所述從端口(s)的數(shù)量要大于所述主端口(m)的數(shù)量。
3.如權(quán)利要求1或2所述的數(shù)據(jù)處理系統(tǒng),其特征在于,分層構(gòu)造所述節(jié)點模塊(H11,H12,H2)的網(wǎng)絡(luò)。
4.如權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述多個節(jié)點模塊(H11,H12,H2)被排列在有向非循環(huán)圖結(jié)構(gòu)中。
5.如權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述多個節(jié)點模塊(H11,H12,H2)被排列在樹結(jié)構(gòu)中。
6.如上述權(quán)利要求中的至少任何一項所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述多個節(jié)點模塊(H11,H12,H2)包括n(n≥2)組節(jié)點模塊,其中,第一組的節(jié)點模塊(H11)的從端口(s)中的每一個都被連接到所述多個數(shù)據(jù)處理模塊(IP)中的一個,第n組的節(jié)點模塊(H2)的主端口(m)被連接到所述存儲模塊(SDRAM),第n組的節(jié)點模塊(H2)的從端口(s)中的每一個都被連接到第(n-1)組的節(jié)點模塊(H11)的主端口(m)。
7.如上述權(quán)利要求中的至少任何一項所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述節(jié)點模塊(H11,H12,H2)是集線器。
8.如上述權(quán)利要求中的至少任何一項所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述通信接口模塊還包括至少一個本地存儲單元(MEM),該本地存儲單元(MEM)用于通過存儲器訪問請求進(jìn)行選擇性的訪問。
9.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其特征在于,至少一個節(jié)點模塊(H11,H12,H2)還包括至少一個存儲器端口(mp),本地存儲單元(MEM)被連接到該存儲器端口(mp)。
10.如權(quán)利要求8或9所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述通信接口模塊包括高速緩存控制器模塊,該高速緩存控制器模塊用于控制至少一部分作為高速緩存存儲器的本地存儲單元(MEM)。
11.如上述權(quán)利要求中的至少任何一項所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述通信接口模塊還包括至少一個用于對數(shù)據(jù)處理模塊(IP)之間的通信進(jìn)行流化的同步模塊。
12.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其特征在于,至少一個節(jié)點模塊(H11,H12,H2)包括用于對直接或間接地連接到所述節(jié)點模塊的數(shù)據(jù)處理模塊(IP)之間的通信進(jìn)行流化的所述同步模塊。
13.如權(quán)利要求8結(jié)合權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),或者如權(quán)利要求8結(jié)合權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述本地存儲單元(MEM)用于提供用于先入/先出功能的存儲模塊,并且所述同步模塊包括用于控制所述本地存儲單元(MEM)的先入/先出管理模塊。
14.如上述權(quán)利要求中的至少任何一項所述的數(shù)據(jù)處理系統(tǒng),其特征在于,在單獨的芯片(C)上提供所述通信接口模塊。
15.如權(quán)利要求14所述的數(shù)據(jù)處理系統(tǒng),其特征在于,在所述單獨的芯片(C)上額外提供至少一部分所述多個數(shù)據(jù)處理模塊(IP)。
全文摘要
所公開的數(shù)據(jù)處理系統(tǒng)包括存儲模塊(SDRAM)、多個數(shù)據(jù)處理模塊(IP)、以及連接在所述存儲模塊(SDRAM)和所述多個數(shù)據(jù)處理模塊(IP)之間的通信接口模塊,所述數(shù)據(jù)處理模塊用于訪問所述存儲模塊(SDRAM),所述通信接口模塊包括節(jié)點(H
文檔編號G06F12/08GK1902611SQ200480025282
公開日2007年1月24日 申請日期2004年8月19日 優(yōu)先權(quán)日2003年9月4日
發(fā)明者彼得·范德沃爾夫, 約瑟夫斯·T·J·范埃及恩德霍恩, 約翰尼斯·布恩斯特拉 申請人:皇家飛利浦電子股份有限公司