專利名稱:支持突發(fā)讀寫操作的處理裝置的制作方法
技術(shù)領(lǐng)域:
包含可編程處理器和與該可編程處理器連接的外圍設(shè)備的數(shù)字信號(hào)處理系統(tǒng),其中,處理器被設(shè)置為相應(yīng)地使用針對(duì)單個(gè)數(shù)據(jù)元素的讀操作和寫操作與外圍設(shè)備進(jìn)行通信。
背景技術(shù):
雖然通過增大時(shí)鐘頻率而以更快的速度執(zhí)行操作,或者通過使用像超長(zhǎng)指令字處理器或超標(biāo)量處理器這樣的并行體系結(jié)構(gòu)從而與其它的操作并行地執(zhí)行,使得可編程處理器的計(jì)算能力不斷增大,但是,基于這些處理器的系統(tǒng)的總體性能通常被其外圍設(shè)備的帶寬的限制所阻礙,例如輸入/輸出(I/O)設(shè)備,物理存儲(chǔ)器或數(shù)據(jù)總線。為了減輕這些限制,可以將(多級(jí))高速緩存結(jié)合到這些系統(tǒng)中,以盡可能多地保存處理器的局部數(shù)據(jù),因此減少了用于從系統(tǒng)的更遠(yuǎn)的部分取回?cái)?shù)據(jù)所需的數(shù)據(jù)帶寬,如在US 6,574,707 B2中所公開的。此外,無論何時(shí)需要總線或者存儲(chǔ)器帶寬,例如當(dāng)高速緩存訪問失效時(shí),通過使用所謂的突發(fā)操作來有效地使用該帶寬,通過此操作,多個(gè)數(shù)據(jù)元素被包括在單獨(dú)的原子操作中,這需要較少的控制開銷。通常,可編程處理器經(jīng)由針對(duì)單個(gè)數(shù)據(jù)元素的讀操作和寫操作產(chǎn)生I/O請(qǐng)求。通過使用高速緩存,這些單個(gè)數(shù)據(jù)元素操作被自動(dòng)地轉(zhuǎn)化為突發(fā)操作,因?yàn)楦咚倬彺鏋樘幚砥魈峁┝私涌?,從而使用單個(gè)元素操作來服務(wù)處理器,而一般使用突發(fā)操作來訪問系統(tǒng)的其他部分。后者特別用于讀操作,而在高速緩存訪問失效的情況下,高速緩存將使用一或多個(gè)突發(fā)操作取回從系統(tǒng)請(qǐng)求的整個(gè)高速緩存線。依賴于所使用的高速緩存寫策略,當(dāng)存在高速緩存時(shí)的處理器寫或者導(dǎo)致突發(fā)行為或者導(dǎo)致單個(gè)元素訪問。使用“直寫式”(write-through)策略的高速緩存將把單個(gè)數(shù)據(jù)元素寫到系統(tǒng)中,使用叫做“回寫式”(write-back)寫策略的高速緩存將主要以突發(fā)模式把整個(gè)高速緩存塊寫到系統(tǒng)中。只要在高速緩存中寫命中,那么只更新在高速緩存中的數(shù)據(jù)。只有當(dāng)由于這樣的寫命中已經(jīng)改變的高速緩存塊(即,已經(jīng)變成“臟”(dirty))必須從此高速緩存中收回,以便為將存儲(chǔ)到相同高速緩存位置的新取回的塊讓出空間時(shí),所述臟塊才被寫回系統(tǒng)。在寫失效(write miss)的情況下,高速緩存或者將取來失效的數(shù)據(jù)塊并且隨后把取來的塊寫入高速緩存(“按寫分配”(write allocate)的“回寫”策略),或者繞過高速緩存并且直接把單個(gè)數(shù)據(jù)元素寫到系統(tǒng)中(“非按寫分配”的“回寫”策略)。
特別是在成本敏感和低功耗的應(yīng)用中,高速緩存的使用的主要缺點(diǎn)在于面積和功耗開銷方面。此外,對(duì)于實(shí)時(shí)系統(tǒng),高速緩存的動(dòng)態(tài)行為使得預(yù)計(jì)有保證的實(shí)時(shí)性能較為困難。對(duì)于處理數(shù)據(jù)流的信號(hào)處理應(yīng)用,傳統(tǒng)的高速緩存大多數(shù)情況下沒有性能優(yōu)點(diǎn),這是因?yàn)閿?shù)據(jù)項(xiàng)經(jīng)常被讀寫一次,并且沒有臨時(shí)的數(shù)據(jù)局部性可以應(yīng)用。因?yàn)檫@些原因,嵌入系統(tǒng)只能使用相對(duì)簡(jiǎn)單的高速緩存,或者根本不使用高速緩存。相對(duì)簡(jiǎn)單的高速緩存使用非按寫分配的直寫策略,即,一旦數(shù)據(jù)被寫在高速緩存中存在的存儲(chǔ)器地址,數(shù)據(jù)就被寫入高速緩存和存儲(chǔ)器中,然而一旦數(shù)據(jù)被寫在不存在于高速緩存中的存儲(chǔ)地址處,則該數(shù)據(jù)只被寫入存儲(chǔ)器中,而不用把他們從存儲(chǔ)器中取入高速緩存。在這種嵌入系統(tǒng)中,通常設(shè)計(jì)硬連線(hardwired)的加速器,以使得他們以突發(fā)方式執(zhí)行系統(tǒng)I/O。由于這些加速器被調(diào)整為特定的應(yīng)用,因此調(diào)整加速器以適應(yīng)于其將要被應(yīng)用到的系統(tǒng)環(huán)境是可行的,從而保證了這種行為。對(duì)更靈活的片上系統(tǒng)的需求導(dǎo)致越來越多地使用可編程加速器。這種可編程處理器通常基于加載/存儲(chǔ)體系結(jié)構(gòu),其中,這些處理器使用針對(duì)單個(gè)數(shù)據(jù)元素的讀和寫操作與系統(tǒng)通信,即,每個(gè)讀/寫操作包含單個(gè)地址,將從該地址讀出與處理器的數(shù)據(jù)通路寬度相匹配的單個(gè)數(shù)據(jù)元素(例如32位的字),或者包含一地址,將在該地址寫入單個(gè)數(shù)據(jù)元素,這都在軟件程序控制之下。雖然程序員可以映射(信號(hào)處理)以流的方式訪問系統(tǒng)數(shù)據(jù)的應(yīng)用,但是程序員通常沒有辦法控制處理器如何訪問系統(tǒng)數(shù)據(jù)。如果高速緩存不存在于系統(tǒng)中,則單個(gè)數(shù)據(jù)元素的操作將直達(dá)系統(tǒng)總線或存儲(chǔ)器,例如,由于為每個(gè)單獨(dú)的數(shù)據(jù)項(xiàng)建立新的傳輸?shù)拈_銷而導(dǎo)致可用帶寬的無效使用。這將導(dǎo)致總線/存儲(chǔ)器帶寬的低效的使用并且會(huì)嚴(yán)重的影響系統(tǒng)的總體性能。
發(fā)明內(nèi)容
發(fā)明的目的是提供一個(gè)高效的,低成本且低功耗的可編程處理系統(tǒng),其不具有高速緩存或者僅具有相對(duì)簡(jiǎn)單的高速緩存。
該目的通過所說明的類型的處理器來實(shí)現(xiàn),其特征在于,突發(fā)生成設(shè)備用于分別將多個(gè)讀操作或者多個(gè)寫操作組合到單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作中。通過將關(guān)于單個(gè)數(shù)據(jù)元素的讀和寫操作轉(zhuǎn)換為單個(gè)突發(fā)讀和寫操作,可以更有效地使用外圍設(shè)備的可用帶寬,從而增加處理系統(tǒng)的總體性能。為了生成突發(fā)操作不需要高速緩存,但是替代地使用專用電路,使得解決方案與具有高速緩存的可編程處理系統(tǒng)相比,具有較低的成本和較低的功耗。
本發(fā)明的實(shí)施例的特征在于,所述可編程處理器還用于分別使用突發(fā)讀操作或突發(fā)寫操作與所述外圍設(shè)備進(jìn)行通信,并且其中,所述突發(fā)生成設(shè)備還用于分別將所述突發(fā)讀操作與另一個(gè)突發(fā)讀操作,或者與至少一個(gè)讀操作組合到所述單個(gè)突發(fā)讀操作中,以及將所述突發(fā)寫操作與另一個(gè)突發(fā)寫操作,或者與至少一個(gè)寫操作組合到單個(gè)突發(fā)寫操作中??梢詫⒂煽删幊烫幚砥魃傻耐话l(fā)操作與一個(gè)或多個(gè)關(guān)于關(guān)于單個(gè)數(shù)據(jù)元素的操作進(jìn)行組合,或者與一個(gè)或多個(gè)其它突發(fā)操作進(jìn)行組合,以形成單個(gè)突發(fā)操作,從而使得能夠更有效地使用外圍設(shè)備的可用帶寬。
本發(fā)明的一個(gè)實(shí)施例的特征在于,如果突發(fā)讀操作或突發(fā)寫操作的尺寸大于單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作的期望尺寸,則突發(fā)生成設(shè)備還用于分別將所述突發(fā)讀操作或所述突發(fā)寫操作分割為兩個(gè)或多個(gè)突發(fā)操作。一旦突發(fā)操作的尺寸比單個(gè)突發(fā)操作的期望尺寸更大,則突發(fā)操作就被分成兩個(gè)或多個(gè)突發(fā)操作。后者的尺寸可以等于或小于單個(gè)突發(fā)操作的期望尺寸,并且在后一情況下,可以將所得到的突發(fā)操作與另一個(gè)突發(fā)操作,或者與至少一個(gè)單個(gè)數(shù)據(jù)元素操作組合到單個(gè)突發(fā)操作中。
本發(fā)明的一個(gè)實(shí)施例的特征在于,可編程處理器包括至少一個(gè)用于存儲(chǔ)所述突發(fā)生成設(shè)備的控制信息的配置寄存器。處理器內(nèi)的配置寄存器可以被編程以控制突發(fā)生成設(shè)備以不同的方式運(yùn)行。可以從處理系統(tǒng)編程這些配置寄存器,或者由可編程處理器本身來編程這些配置寄存器。
本發(fā)明的一個(gè)實(shí)施例的特征在于,配置寄存器用于分別存儲(chǔ)單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作的期望尺寸。通過選擇單個(gè)突發(fā)操作的尺寸,能夠根據(jù)應(yīng)用程序的特征以及處理系統(tǒng)的特征,在減少操作的數(shù)量和避免執(zhí)行操作過程中的長(zhǎng)時(shí)間的延遲這兩方面之間找到最優(yōu)的平衡。
本發(fā)明的一個(gè)實(shí)施例的特征在于,配置寄存器還用于存儲(chǔ)超時(shí)值,其用于控制兩個(gè)連續(xù)的單個(gè)突發(fā)操作之間的最大時(shí)間間隔。如果由突發(fā)生成設(shè)備接收的連續(xù)的關(guān)于單個(gè)數(shù)據(jù)元素的操作之間的時(shí)間間隔大于超時(shí)值,則提前釋放單個(gè)突發(fā)操作,因此可以避免在執(zhí)行操作中的長(zhǎng)時(shí)間的延遲。
本發(fā)明的一個(gè)實(shí)施例的特征在于,突發(fā)生成設(shè)備包括匯集器電路,用于從可編程處理器接收讀和寫操作,以及根據(jù)從所述讀和寫操作導(dǎo)出的信息來生成專用令牌,分別觸發(fā)單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作的釋放;用于存儲(chǔ)專用令牌的第一FIFO緩沖器;用于存儲(chǔ)分別從讀和寫操作導(dǎo)出的信息的第二FIFO緩沖器;釋放電路,用于在從第一FIFO緩沖器接收的專用令牌的控制下,啟動(dòng)從第二FIFO緩沖器分別釋放單個(gè)突發(fā)寫操作或單個(gè)突發(fā)讀操作。突發(fā)生成設(shè)備的該實(shí)施例僅需要兩個(gè)相對(duì)簡(jiǎn)單的電路和兩個(gè)FIFO緩沖器,提供了一個(gè)低成本并且低功耗的解決方案。
本發(fā)明的一個(gè)實(shí)施例的特征在于,如果單個(gè)突發(fā)操作的尺寸不等于所述單個(gè)突發(fā)操作的期望尺寸,則所述突發(fā)生成設(shè)備還用于分別觸發(fā)所述單個(gè)突發(fā)讀操作或所述單個(gè)突發(fā)寫操作的釋放。在特定條件下,為了改進(jìn)總體系統(tǒng)性能,即使不具有所期望的尺寸也釋放單個(gè)突發(fā)操作是有利的。
本發(fā)明的一個(gè)實(shí)施例的特征在于,單個(gè)突發(fā)操作的釋放依賴于所述多個(gè)讀操作或所述多個(gè)寫操作是否涉及對(duì)應(yīng)的多個(gè)存儲(chǔ)器地址,其中,所述對(duì)應(yīng)的多個(gè)存儲(chǔ)器地址按遞增順序排列,并且地址間距對(duì)應(yīng)于單個(gè)數(shù)據(jù)元素的尺寸。依賴于所使用的通信或外圍設(shè)備,可能支持不同的尋址方案,這影響了由突發(fā)生成器進(jìn)行突發(fā)釋放的規(guī)則。最簡(jiǎn)單的是由按遞增順序排列的地址支持的突發(fā)訪問,一個(gè)數(shù)據(jù)元素地址分離。替代方案是,可以允許環(huán)繞式尋址。例如,具有支持關(guān)鍵字優(yōu)先高速緩存取回的總線的情況。在這種情況下,如果使用高速緩存的處理器首先要求在地址8處的數(shù)據(jù)元素,則比起請(qǐng)求在地址0、4、8、12的數(shù)據(jù)序列更好的方案是,高速緩存可以請(qǐng)求在地址8、12、0、4的數(shù)據(jù)序列。其他的總線或存儲(chǔ)器協(xié)議可以允許多維突發(fā)訪問,而在這樣的情況下,突發(fā)可以由在存儲(chǔ)器映射中形成多維空間的地址處的數(shù)據(jù)元素組成。這種情況的一個(gè)例子是支持二維突發(fā)訪問的總線,其支持高效地讀和寫通常在圖形和視頻處理應(yīng)用中使用的二維的數(shù)據(jù)塊。
本發(fā)明的一個(gè)實(shí)施例的特征在于,單個(gè)突發(fā)操作的釋放依賴于由突發(fā)生成設(shè)備接收的下一個(gè)突發(fā)寫或讀操作是否分別具有與單個(gè)突發(fā)操作的期望尺寸相等的尺寸。一旦可編程處理器發(fā)出已經(jīng)具有期望尺寸的突發(fā)操作,則為了避免由處理器發(fā)出的所述突發(fā)操作的破碎,即使它沒有期望的尺寸,也釋放由突發(fā)生成設(shè)備在那時(shí)正在組合的單個(gè)突發(fā)操作。
本發(fā)明的一個(gè)實(shí)施例的特征在于,單個(gè)突發(fā)操作的釋放依賴于是否從所述可編程處理器接收到刷新指令。該實(shí)施例允許在可編程處理器的控制下釋放單個(gè)突發(fā)操作,例如,在處理最后,保證全部數(shù)據(jù)最終被寫入外圍設(shè)備。
本發(fā)明的一個(gè)實(shí)施例的特征在于,所述(突發(fā))讀或?qū)懖僮鞣謩e被設(shè)置為包括以下信息分別指示所述(突發(fā))讀或?qū)懖僮鞯挠行缘臉?biāo)識(shí)符;分別指示(突發(fā))讀操作或(突發(fā))寫操作的標(biāo)識(shí)符;所述(突發(fā))讀或所述(突發(fā))寫操作分別涉及的存儲(chǔ)器地址;在(突發(fā))寫操作的情況下將寫入所述存儲(chǔ)器的數(shù)據(jù);分別指示(突發(fā))讀操作或(突發(fā))寫操作的開始的標(biāo)識(shí)符;分別指示所述(突發(fā))讀操作或所述(突發(fā))寫操作的尺寸的標(biāo)識(shí)符。
使用編碼在由可編程處理器發(fā)出的(突發(fā))操作中的信息,突發(fā)生成設(shè)備識(shí)別出操作的類型,即,讀或?qū)懖僮?,以及單個(gè)元素操作或突發(fā)操作,并且使用該信息將(突發(fā))操作組合到單個(gè)突發(fā)操作中。
本發(fā)明的一個(gè)實(shí)施例的特征在于,所述(突發(fā))讀或?qū)懖僮鞣謩e還包括以下信息指示(突發(fā))操作所涉及的單個(gè)數(shù)據(jù)元素的位數(shù)(即,數(shù)據(jù)類型(例如字節(jié)、半字或字))的標(biāo)識(shí)符;在(突發(fā))寫操作的情況下,指示單個(gè)數(shù)據(jù)元素中的、數(shù)據(jù)必須被寫入的位位置的屏蔽標(biāo)識(shí)符。使用該附加信息,可以從數(shù)據(jù)元素內(nèi)的特定位位置讀數(shù)據(jù),或?qū)?shù)據(jù)寫入數(shù)據(jù)元素內(nèi)的特定位位置。
本發(fā)明的一個(gè)實(shí)施例的特征在于,外圍設(shè)備是物理存儲(chǔ)器。本發(fā)明的一個(gè)實(shí)施例的特征在于外圍設(shè)備是通信裝置。通信設(shè)備,例如系統(tǒng)總線,以及物理存儲(chǔ)器都是處理系統(tǒng)中的外圍設(shè)備,使用(突發(fā))讀和寫操作頻繁地訪問它們,本發(fā)明對(duì)于這些設(shè)備特別有利。
圖1是一個(gè)根據(jù)本發(fā)明的處理系統(tǒng)的示意圖;圖2是突發(fā)生成設(shè)備的實(shí)施例的示意圖;圖3是顯示在根據(jù)圖2的突發(fā)生成設(shè)備的操作期間的輸入信號(hào)和輸出信號(hào)的時(shí)序圖。
具體實(shí)施例方式
圖1是一個(gè)處理系統(tǒng)的示意圖,包括可編程處理器PROC,突發(fā)生成器BG,系統(tǒng)總線SB,存儲(chǔ)器MEM以及外圍設(shè)備PD。存儲(chǔ)器MEM例如是同步動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(SDRAM)。外圍設(shè)備PD例如是顯示器或網(wǎng)絡(luò)連接。存儲(chǔ)器MEM和外圍設(shè)備PD都與系統(tǒng)總線SB連接。系統(tǒng)總線SB可以包含單獨(dú)的地址總線和單獨(dú)的數(shù)據(jù)總線,或者組合的地址和數(shù)據(jù)總線。數(shù)據(jù)總線例如是32位的數(shù)據(jù)總線。處理器PROC例如是RISC處理器,其執(zhí)行RISC類型的操作,一般包括用于表明待執(zhí)行的操作的類型的操作碼,一個(gè)或兩個(gè)指定用于獲取變量數(shù)據(jù)的位置的寄存器索引,以及一個(gè)指定用于寫入結(jié)果數(shù)據(jù)的位置的寄存器索引。讀和寫操作是特定的操作,即,讀操作的變量是存儲(chǔ)器地址,而寫操作的變量是存儲(chǔ)器地址和待存儲(chǔ)的數(shù)據(jù),它們被發(fā)送到存儲(chǔ)器接口。讀操作的結(jié)果待讀取的數(shù)據(jù)?;蛘撸幚硐到y(tǒng)可以包括多于一個(gè)可編程處理器,用于以流的方式處理數(shù)據(jù),其中,由不同的處理器執(zhí)行對(duì)數(shù)據(jù)的連續(xù)操作。處理器PROC的I/O端口經(jīng)由連接101和103連接到突發(fā)生成器BG的輸入端口。突發(fā)生成器BG的輸出端口經(jīng)由連接109與系統(tǒng)總線SB相連。經(jīng)由系統(tǒng)總線SB和連接105將從存儲(chǔ)器MEM或外圍設(shè)備PD讀出的數(shù)據(jù)傳輸?shù)教幚砥鱌ROC。處理器PROC具有配置寄存器CR,其可以被編程為經(jīng)由連接107來控制突發(fā)生成器BG以按照希望的方式工作。在操作中,處理器PROC使用讀操作和寫操作與處理系統(tǒng)的其它部分進(jìn)行通信,以便經(jīng)由存儲(chǔ)器映射I/O地址讀或?qū)憜蝹€(gè)數(shù)據(jù)元素。在軟件程序的控制下,處理器PROC執(zhí)行讀操作,處理所讀取的數(shù)據(jù),并且執(zhí)行寫操作?;蛘呃?,如果存在高速緩存,則處理器PROC使用突發(fā)讀操作或突發(fā)寫操作與處理系統(tǒng)的其它部分進(jìn)行通信。
圖2是突發(fā)生成器BG的示意圖,包括匯集器COL,先進(jìn)先出緩沖器BUF1,先進(jìn)先出緩沖器BUF2以及釋放器REL。緩沖器BUF1和BUF2是阻塞型的,這意味著當(dāng)試圖把信息寫入已滿的緩沖器BUF1和BUF2中時(shí),匯集器COL將暫停,并且當(dāng)試圖從空的緩沖器BUF1和BUF2中讀信息時(shí),釋放器REL將暫停。在操作中,匯集器COL以信號(hào)的匯集的形式從處理器PROC接收讀和寫操作valid信號(hào)指示操作的有效性,并且當(dāng)?shù)扔诩?false)時(shí)指示NOP操作,否則等于真(true),寫允許信號(hào)we,當(dāng)?shù)扔谡鏁r(shí),指示操作是指寫操作,并且當(dāng)?shù)扔诩贂r(shí)指示操作是指讀操作,地址信號(hào)addr,指示操作所引用的存儲(chǔ)器映射I/O地址,寫數(shù)據(jù)信號(hào)wdata,當(dāng)寫操作時(shí)保存將被寫的數(shù)據(jù),
start信號(hào),當(dāng)為真時(shí),指示(突發(fā))讀或?qū)懖僮鞯拈_始,size信號(hào)是指(突發(fā))讀或?qū)懖僮鞯某叽鐪p1,即,參與操作的單個(gè)數(shù)據(jù)元素的數(shù)量減1。
如以下將要論述的,如果合適,匯集器COL將來自處理器PROC的(突發(fā))讀和寫操作匯集到單個(gè)突發(fā)讀或?qū)懖僮髦?。以信?hào)的匯集的形式由匯集器COL接收的信息由匯集器COL寫入緩沖器BUF2。此外,匯集器COL在緩沖器BUF1中寫入釋放令牌(token),指示(突發(fā))讀或?qū)懖僮鞅仨氃趩蝹€(gè)突發(fā)讀或?qū)懖僮髦袕木彌_器BUF2釋放。如果可編程處理器PROC只支持對(duì)單個(gè)數(shù)據(jù)元素的讀和寫操作,那么這意謂著當(dāng)發(fā)出這種操作時(shí),start信號(hào)為真并且size信號(hào)等于零,即,指示為1的突發(fā)尺寸。或者,如果處理器PROC也支持突發(fā)讀和寫操作,則size信號(hào)可以指示比1大的突發(fā)尺寸,并且start信號(hào)只在這種突發(fā)操作的開始為真。
圖3是時(shí)序圖,其顯示在圖2中顯示的突發(fā)生成器BG的工作期間的輸入信號(hào)和輸出信號(hào)。經(jīng)由配置寄存器CR,突發(fā)生成器BG被配置為構(gòu)成尺寸為四的單個(gè)突發(fā)讀和寫操作,即,包括四個(gè)單個(gè)數(shù)據(jù)元素。32位數(shù)據(jù)元被寫入存儲(chǔ)器MEM或外圍設(shè)備PD,并且存儲(chǔ)器MEM和外圍設(shè)備PD的存儲(chǔ)器地址被表示為字節(jié)地址,即地址4,8,12等等。時(shí)鐘信號(hào)clock表示由處理系統(tǒng)的時(shí)鐘生成的信號(hào),未在圖1中顯示。在圖3的上部顯示了在突發(fā)生成器BG的輸入101處的信號(hào),并且在圖3的下部顯示了在突發(fā)生成器BG的輸出109處的信號(hào)。參考圖3,因?yàn)関alid信號(hào),寫允許信號(hào)we和突發(fā)開始信號(hào)start為高,而size信號(hào)的值為“1”,即突發(fā)寫操作具有兩個(gè)數(shù)據(jù)元素的突發(fā)尺寸,所以突發(fā)生成器BG首先從處理器PROC接收突發(fā)寫操作。如addr信號(hào)所指示,數(shù)據(jù)元素必須被寫在存儲(chǔ)器映射地址“4”和“8”。接下來,如具有值“0”的突發(fā)尺寸信號(hào)size,在兩個(gè)時(shí)鐘信號(hào)期間為高的start信號(hào),以及為高的valid和we信號(hào)所指示的,突發(fā)生成器BG接收對(duì)于存儲(chǔ)器地址“12”和“16”的兩個(gè)單個(gè)數(shù)據(jù)元素寫操作。當(dāng)接收到對(duì)存儲(chǔ)器地址“16”的寫操作時(shí),匯集器COL已匯集了尺寸為四的單個(gè)突發(fā)寫操作,并且將值為“3”的令牌放入釋放令牌緩沖器BUF1。令牌是一個(gè)值,其表示在計(jì)劃釋放的單個(gè)突發(fā)寫操作中匯集器COL已經(jīng)匯集的寫操作的數(shù)量減一。在301所指的時(shí)鐘信號(hào)處,計(jì)劃要釋放的第一個(gè)單個(gè)突發(fā)寫操作。釋放器REL接收值為“3”的令牌并且使用該令牌值來初始化計(jì)數(shù)器,該計(jì)數(shù)器持續(xù)跟蹤將被釋放的寫操作的數(shù)量。隨后,如size信號(hào)“3”以及在釋放器REL的輸出端口處的addr信號(hào)所指示,釋放器REL從緩沖器BUF2取回相應(yīng)的四個(gè)寫操作,構(gòu)造包括四個(gè)寫操作的單個(gè)突發(fā)寫操作,并且經(jīng)由輸出109和系統(tǒng)總線SB將所述單個(gè)突發(fā)寫操作發(fā)送到存儲(chǔ)器映射地址“4”、“8”、“12”和“16”。在第一個(gè)單個(gè)突發(fā)寫操作的合成之后,第二個(gè)被合成。由于size信號(hào)等于“1”,addr信號(hào)“20”和“24”,并且valid,start和we信號(hào)為高,所以匯集器COL接收對(duì)存儲(chǔ)器映射地址為“20”和“24”的兩個(gè)數(shù)據(jù)元素的突發(fā)寫操作。接下來,匯集器COL接收對(duì)存儲(chǔ)器地址“32”的寫操作。雖然在接收到對(duì)存儲(chǔ)器映射地址“32”的寫操作時(shí),未達(dá)到尺寸為四的所期望的突發(fā)操作尺寸,但是仍提前釋放到此所構(gòu)成的第二個(gè)單個(gè)突發(fā)寫操作,這是因?yàn)樽詈笫盏降膶懖僮鞯拇鎯?chǔ)器映射地址與之前的寫操作的存儲(chǔ)器地址相隔的距離不恰當(dāng),即,存儲(chǔ)器映象地址“32”與存儲(chǔ)器地址“24”相隔的距離不恰當(dāng)(即,不在存儲(chǔ)器映射地址“28”),因?yàn)榈侥壳盀橹挂呀?jīng)合成的單個(gè)突發(fā)寫操作包含分別在存儲(chǔ)器映射地址“20”和“24”的寫操作。匯集器COL把值為“1”的令牌放入釋放令牌緩沖器BUF1。在由303所指的clock信號(hào)處,計(jì)劃釋放第二個(gè)突發(fā)寫操作。釋放器REL接收值為“1”的令牌并且使用該令牌值以初始化一計(jì)數(shù)器,該計(jì)數(shù)器用于持續(xù)跟蹤將被釋放的寫操作的數(shù)量。隨后,如值為“1”的size信號(hào)和在釋放器REL的輸出端口處的addr信號(hào)所指,釋放器REL從緩沖器BUF2檢索相應(yīng)的兩個(gè)寫操作,構(gòu)造這兩個(gè)寫操作的單個(gè)突發(fā)寫操作,并且經(jīng)由輸出109和系統(tǒng)總線SB將該單個(gè)突發(fā)寫操作發(fā)送到存儲(chǔ)器映射地址“20”和“24”。對(duì)存儲(chǔ)器地址“32”的寫操作形成第三個(gè)單個(gè)突發(fā)寫操作的第一個(gè)操作。第三個(gè)單個(gè)突發(fā)寫操作預(yù)計(jì)在clock信號(hào)305提前釋放,這是因?yàn)榻邮盏綄?duì)存儲(chǔ)器地址“36”的單個(gè)數(shù)據(jù)元素讀操作,并且寫和讀操作不能被組合在單個(gè)突發(fā)操作中。通過we信號(hào)為低,valid信號(hào)和start為高,size信號(hào)等于零,以及值為“36”的addr信號(hào)來指示對(duì)存儲(chǔ)器地址“36”的讀操作。匯集器COL把值為“0”的令牌放入釋放令牌緩沖器BUF 1。釋放器REL接收該令牌并且使用其作為值來初始化計(jì)數(shù)器,該計(jì)數(shù)器持續(xù)跟蹤將被釋放的寫操作的數(shù)量。隨后,由于值為“0”的size信號(hào)和在釋放器REL的輸出端口的addr信號(hào)的指示,釋放器REL從緩沖器BUF2中取回相應(yīng)的寫操作,構(gòu)造該寫操作的單個(gè)突發(fā)寫操作,并且經(jīng)由輸出109和系統(tǒng)總線SB將第三個(gè)單個(gè)突發(fā)寫操作發(fā)送到存儲(chǔ)器地址“32”。如值為“3”的size信號(hào),以及在匯集器COL的輸入端口101的addr信號(hào)“40”,“44”,“48”和“52”所指示,因?yàn)橄乱粋€(gè)由匯集器COL接收到的突發(fā)讀操作已經(jīng)具有想要的尺寸4,所以第一個(gè)單個(gè)突發(fā)讀操作計(jì)劃在clock信號(hào)307提前釋放。匯集器COL把值為“0”的令牌放入釋放令牌緩沖器BUF1。釋放器REL從緩沖器BUF1取回該令牌,并且構(gòu)造從緩沖器BUF2取回的讀操作的單個(gè)突發(fā)讀操作。如值為“0”的size信號(hào)以及在釋放器REL的輸出端口109處的值為“36”的addr信號(hào)所指示,由釋放器REL釋放單個(gè)突發(fā)讀操作。第二個(gè)單個(gè)突發(fā)讀操作由最后接收的突發(fā)讀操作組成。值為“3”的令牌被放入釋放令牌緩沖器BUF1,并且釋放器REL根據(jù)從緩沖器BUF2導(dǎo)出的信息構(gòu)造第二個(gè)單個(gè)突發(fā)讀操作。值為“3”的size信號(hào),以及在釋放器REL的輸出端口的值為“40”,“44”,“48”以及“52”的addr信號(hào)指示第二個(gè)突發(fā)讀操作的釋放。
在一可選實(shí)施例中,處理系統(tǒng)還包括一相對(duì)簡(jiǎn)單的高速緩存,其使用具有非按寫分配的直寫式的寫策略,并且位于可編程處理器PROC和突發(fā)生成器BG之間。在讀操作的情況下,高速緩存把單個(gè)數(shù)據(jù)元素讀操作轉(zhuǎn)換為突發(fā)讀操作。對(duì)于寫操作,突發(fā)生成器BG把接收自可編程處理器PROC的(突發(fā))寫操作組合成單個(gè)突發(fā)寫操作。在突發(fā)讀操作的情況下,由突發(fā)生成器BG接收的start信號(hào)只在這種突發(fā)讀操作的開始時(shí)為真,并且通常size信號(hào)保持一個(gè)等于高速緩存塊的尺寸減一的值,即,指示突發(fā)尺寸等于高速緩存塊尺寸。在單個(gè)數(shù)據(jù)元素寫操作的情況下,start信號(hào)為真并且size信號(hào)值為“0”,其指示尺寸為1的突發(fā)尺寸。
在另一個(gè)可選實(shí)施例中,設(shè)置突發(fā)生成器BG以經(jīng)由連接103從可編程處理器PROC接收刷新(flush)輸入信號(hào),參見圖1。當(dāng)刷新信號(hào)為高電平時(shí),計(jì)劃由匯集器COL釋放當(dāng)前被合成的單個(gè)突發(fā)操作,即使其沒有恰當(dāng)?shù)某叽?。在這種方法中,保證操作不會(huì)一直保留在緩沖器BUF2中,例如在處理的結(jié)尾,當(dāng)沒有足夠的、用于完成單個(gè)突發(fā)操作的元素時(shí)。
在另一個(gè)可選實(shí)施例中,匯集器包括計(jì)時(shí)器,其計(jì)算連續(xù)到來的(突發(fā))讀或?qū)懖僮髦g的時(shí)鐘周期的數(shù)量。如果計(jì)數(shù)器值超過特定的可配置的值,則安排由匯集器COL釋放當(dāng)前被合成的單個(gè)突發(fā)操作,即使其沒有適當(dāng)?shù)某叽纭Mㄟ^這種方法,保證在操作被釋放之前,不會(huì)在突發(fā)生成器中保持太長(zhǎng)時(shí)間,否則將導(dǎo)致長(zhǎng)時(shí)間的延遲,這會(huì)影響系統(tǒng)的總體性能??梢越?jīng)由配置寄存器CR來設(shè)置可配置的超時(shí)值。
在另一個(gè)可選實(shí)施例中,匯集器COL還從可編程處理器PROC接收數(shù)據(jù)尺寸信號(hào)dsize和寫屏蔽信號(hào)wrnask,其可用于指示操作涉及的數(shù)據(jù)元素的準(zhǔn)確的位數(shù)。wmask信號(hào)指示用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)元素中的特定的位位置。dsize和wrnask信號(hào)只允許寫和讀單個(gè)數(shù)據(jù)元素的一些部分,例如32位數(shù)據(jù)元素的特定字節(jié)。
在另一個(gè)可選實(shí)施例中,不同的尋址方案可以允許環(huán)繞式(wrap-around)尋址。例如在具有支持關(guān)鍵字優(yōu)先高速緩存取回的總線的情況下。在這種情況下,如果使用高速緩存的處理器首先要求在地址8處的數(shù)據(jù)元素,則比起請(qǐng)求在地址0、4、8、12的數(shù)據(jù)序列更好的方案是,高速緩存可以請(qǐng)求在地址8、12、0、4的數(shù)據(jù)序列。其他的總線或存儲(chǔ)器協(xié)議可以允許多維突發(fā)訪問,而在這樣的情況下,突發(fā)可以由在存儲(chǔ)器映射中形成多維空間的地址處的數(shù)據(jù)元素組成。這種情況的一個(gè)例子是支持二維突發(fā)訪問的總線,其支持高效地讀和寫通常在圖形和視頻處理應(yīng)用中使用的二維的數(shù)據(jù)塊。
應(yīng)該注意,上述實(shí)施例用于說明而不是限制本發(fā)明,而本領(lǐng)域技術(shù)人員能夠在不脫離所附權(quán)利要求的范圍的情況下設(shè)計(jì)許多替代實(shí)施例。在權(quán)利要求中,括號(hào)中的任何參考標(biāo)記不應(yīng)被解釋為限制該權(quán)利要求。詞“包含”不排除存在除權(quán)利要求中列出的元素或步驟以外的元素或步驟。在元素之前的詞“一個(gè)”不排除存在多個(gè)這樣的元素。在列舉了多個(gè)裝置的裝置權(quán)利要求中,這些模塊中的多個(gè)可以通過同一硬件來實(shí)現(xiàn)。在相互不同的從屬權(quán)利要求中敘述特定方案并不表示不能利用這些方案的組合。
權(quán)利要求
1.一種數(shù)字信號(hào)處理系統(tǒng),包括可編程處理器(PROC)和連接到所述可編程處理器的外圍設(shè)備(PD,MEM),其中,所述處理器被設(shè)置為分別使用關(guān)于單個(gè)數(shù)據(jù)元素的讀操作和寫操作與所述外圍設(shè)備通信,所述數(shù)字信號(hào)處理系統(tǒng)的特征在于,突發(fā)生成設(shè)備(BG)用于分別將多個(gè)讀操作或多個(gè)寫操作組合到單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作中。
2.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述可編程處理器還用于分別使用突發(fā)讀操作或突發(fā)寫操作與所述外圍設(shè)備進(jìn)行通信,并且其中,所述突發(fā)生成設(shè)備還用于分別將所述突發(fā)讀操作與另一個(gè)突發(fā)讀操作,或者與至少一個(gè)讀操作組合到所述單個(gè)突發(fā)讀操作中,以及將所述突發(fā)寫操作與另一個(gè)突發(fā)寫操作,或者與至少一個(gè)寫操作組合到單個(gè)突發(fā)寫操作中。
3.根據(jù)權(quán)利要求2所述的處理系統(tǒng),其特征在于,如果所述突發(fā)讀操作或突發(fā)寫操作的尺寸大于所述單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作的期望尺寸,則所述突發(fā)生成設(shè)備還用于分別將所述突發(fā)讀操作或所述突發(fā)寫操作分割為兩個(gè)或多個(gè)突發(fā)操作。
4.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述可編程處理器包括至少一個(gè)用于存儲(chǔ)所述突發(fā)生成設(shè)備的控制信息的配置寄存器(CR)。
5.根據(jù)權(quán)利要求4所述的處理系統(tǒng),其特征在于,所述配置寄存器用于分別存儲(chǔ)所述單個(gè)突發(fā)讀操作或所述單個(gè)突發(fā)寫操作的期望尺寸。
6.根據(jù)權(quán)利要求5所述的處理系統(tǒng),其特征在于,所述配置寄存器還用于存儲(chǔ)超時(shí)值,該超時(shí)值用于控制兩個(gè)連續(xù)的單個(gè)突發(fā)操作之間的最大時(shí)間間隔。
7.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述突發(fā)生成設(shè)備包括匯集器電路(COL),用于從所述可編程處理器接收所述讀和寫操作,以及根據(jù)從所述讀和寫操作導(dǎo)出的信息來生成專用令牌,分別觸發(fā)所述單個(gè)突發(fā)讀操作或所述單個(gè)突發(fā)寫操作的釋放;用于存儲(chǔ)所述專用令牌的第一FIFO緩沖器(BUF1);用于存儲(chǔ)分別從所述讀和寫操作導(dǎo)出的信息的第二FIFO緩沖器(BUF2);釋放電路(REL),用于在從所述第一FIFO緩沖器接收的專用令牌的控制下,啟動(dòng)從所述第二FIFO緩沖器分別釋放所述單個(gè)突發(fā)寫操作或所述單個(gè)突發(fā)讀操作。
8.根據(jù)權(quán)利要求2所述的處理系統(tǒng),其特征在于,如果所述單個(gè)突發(fā)操作的尺寸不等于所述單個(gè)突發(fā)操作的期望尺寸,則所述突發(fā)生成設(shè)備還用于分別觸發(fā)所述單個(gè)突發(fā)讀操作或所述單個(gè)突發(fā)寫操作的釋放。
9.根據(jù)權(quán)利要求8所述的處理系統(tǒng),其特征在于,所述單個(gè)突發(fā)操作的釋放依賴于所述多個(gè)讀操作或所述多個(gè)寫操作是否涉及對(duì)應(yīng)的多個(gè)存儲(chǔ)器地址,其中,所述對(duì)應(yīng)的多個(gè)存儲(chǔ)器地址按遞增順序排列,并且地址間距對(duì)應(yīng)于單個(gè)數(shù)據(jù)元素的尺寸。
10.根據(jù)權(quán)利要求8所述的處理系統(tǒng),其特征在于,所述單個(gè)突發(fā)操作的釋放依賴于由所述突發(fā)生成設(shè)備接收的下一個(gè)突發(fā)寫或讀操作是否分別具有與所述單個(gè)突發(fā)操作的期望尺寸相等的尺寸。
11.根據(jù)權(quán)利要求8所述的處理系統(tǒng),其特征在于,所述單個(gè)突發(fā)操作的釋放依賴于是否從所述可編程處理器接收到刷新指令。
12.根據(jù)權(quán)利要求2所述的處理系統(tǒng),其特征在于,所述(突發(fā))讀或?qū)懖僮鞣謩e被設(shè)置為包括以下信息分別指示所述(突發(fā))讀或?qū)懖僮鞯挠行缘臉?biāo)識(shí)符;分別指示(突發(fā))讀操作或(突發(fā))寫操作的標(biāo)識(shí)符;所述(突發(fā))讀或所述(突發(fā))寫操作分別涉及的存儲(chǔ)器地址;在(突發(fā))寫操作的情況下將寫入所述存儲(chǔ)器的數(shù)據(jù);分別指示(突發(fā))讀操作或(突發(fā))寫操作的開始的標(biāo)識(shí)符;分別指示所述(突發(fā))讀操作或所述(突發(fā))寫操作的尺寸的標(biāo)識(shí)符。
13.根據(jù)權(quán)利要求12所述的處理系統(tǒng),其特征在于,所述(突發(fā))讀或?qū)懖僮鞣謩e還包括以下信息指示所述(突發(fā))操作所涉及的單個(gè)數(shù)據(jù)元素的位數(shù)的標(biāo)識(shí)符;在(突發(fā))寫操作的情況下,指示單個(gè)數(shù)據(jù)元素中的、數(shù)據(jù)必須被寫入的位位置的屏蔽標(biāo)識(shí)符。
14.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述外圍設(shè)備是物理存儲(chǔ)器。
15.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述外圍設(shè)備是通信設(shè)備。
全文摘要
一種數(shù)字信號(hào)處理系統(tǒng),包括可編程處理器(PROC)和經(jīng)由突發(fā)生成設(shè)備(BG)連接到所述可編程處理器的外圍設(shè)備(PD,MEM)。所述處理器被設(shè)置為分別使用關(guān)于單個(gè)數(shù)據(jù)元素的讀操作和寫操作與所述外圍設(shè)備通信。所述突發(fā)生成設(shè)備(BG)分別將多個(gè)讀操作或多個(gè)寫操作組合到單個(gè)突發(fā)讀操作或單個(gè)突發(fā)寫操作中。
文檔編號(hào)G06F13/28GK101040272SQ200580035405
公開日2007年9月19日 申請(qǐng)日期2005年8月11日 優(yōu)先權(quán)日2004年8月17日
發(fā)明者葉羅恩·A.·J.·萊特恩 申請(qǐng)人:皇家飛利浦電子股份有限公司