專利名稱:空間塊協(xié)處理器通信的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于從協(xié)處理器寫入數(shù)據(jù)單元到FIFO的設(shè)備和方法,一種用于從FIFO存儲器讀取數(shù)據(jù)單元到協(xié)處理器中以及多重處理計算機系統(tǒng)的設(shè)備和方法。
像高清晰度電視(HDTV)、廣播衛(wèi)星服務(wù)、電視會議、交互式存儲媒體等等的新的應(yīng)用和服務(wù),在視頻域以及音頻域中需要大量的數(shù)據(jù)處理。因此,在那些應(yīng)用中被涉及的數(shù)據(jù)率使得計算十分消耗時間。
當(dāng)應(yīng)付在信號處理中的計算需求時,設(shè)計者通常采用兩種結(jié)構(gòu)方法,即專用和可編程的方法。專用結(jié)構(gòu)旨在充分利用算法的計算特點。專用結(jié)構(gòu)的VLSI實現(xiàn)按照范圍、功率和性能被最佳化。專用結(jié)構(gòu)的優(yōu)點是它們提供了一種好性能,然而它們對于進(jìn)一步擴展一種算法集合缺乏靈活性。另一方面,因為僅僅通過應(yīng)用必要的軟件修改,算法能夠被進(jìn)一步擴展,所以所述可編程的方法能夠滿足對更大的靈活性的需要。由于多個應(yīng)用可以在硬件上運行這樣一個事實,因此,每個應(yīng)用硬件的成本被降低??删幊探Y(jié)構(gòu)的缺點是,該結(jié)構(gòu)以及應(yīng)用模塊必須更快,因為算法的計算性質(zhì)未被充分利用。這個問題可以通過實現(xiàn)多重處理策略被解決。因此,提供一種具有足夠的并行性的應(yīng)用模塊以便充分利用多處理器結(jié)構(gòu)的計算資源是必需的。為信號處理應(yīng)用提供并行性的一個這樣的應(yīng)用模型是康氏(Kahn)處理網(wǎng)絡(luò)模型。所述應(yīng)用在多處理器結(jié)構(gòu)中一被執(zhí)行,就能夠顯著提高處理速度。
一個典型的康氏處理網(wǎng)絡(luò)包括多個處理網(wǎng)絡(luò)、進(jìn)程和FIFO存儲器(先入先出)。在這樣一個處理網(wǎng)絡(luò)中,通過一個處理器或一個協(xié)處理器,一個進(jìn)程被實現(xiàn),并且一個FIFO代表一個通信信道,即所述處理器通過FIFO緩沖器彼此通信。所述FIFO具有單獨的閱讀器和單獨的記錄器。一個進(jìn)程通常定義所述應(yīng)用的功能性。它通過輸入和輸出端口和它的環(huán)境交互作用。一個進(jìn)程可以處于三種狀態(tài)之一,即運行、阻塞或準(zhǔn)備狀態(tài)。例如,如果一個進(jìn)程設(shè)法從一個空FIFO讀出或者設(shè)法寫到一個滿FIFO中,則所述進(jìn)程將被阻塞。
在康氏處理網(wǎng)絡(luò)中,所述進(jìn)程以流水線方式彼此通信,即,在所述流水線中最慢的進(jìn)程定義它的吞吐量。如果所述計算在進(jìn)程中完全平衡,則它將減少在所述應(yīng)用模塊內(nèi)的有效的并行性。
通常,進(jìn)程通過FIFO彼此通信。現(xiàn)在,當(dāng)這些進(jìn)程像軟件進(jìn)程一樣被實現(xiàn)時,一種FIFO的實現(xiàn)包括一個用于存儲數(shù)據(jù)的緩沖器、一個讀出指針、一個寫入指針以及用于在所述緩沖器中同步數(shù)據(jù)和空位的空位和數(shù)據(jù)信號量。因此,寫入到FIFO中首先通過在所述FIFO中等待自由空位,即空間而被實現(xiàn)。當(dāng)在所述FIFO中有一個可用空位時,數(shù)據(jù)被輸入到FIFO中并且寫入指針被遞增。最后,顯示有效數(shù)據(jù)已經(jīng)被增加到FIFO中。從FIFO讀出與寫入對稱,即,空位和數(shù)據(jù)以及記錄器和閱讀器指針的角色已經(jīng)改變。
在一個多重處理環(huán)境中,像總線等等的可用的通信資源通常有沖突。通信費用隨著在所述結(jié)構(gòu)中處理器數(shù)量的增加而增加。因此,按照減少的通信最佳化應(yīng)用模型會帶來改進(jìn)的速度。通過仔細(xì)地選擇權(quán)標(biāo)結(jié)構(gòu)并且控制在通信信道上被傳送的權(quán)標(biāo)數(shù)量,減少的通信是能實現(xiàn)的。
因此,本發(fā)明的一個目的是改進(jìn)在多重處理環(huán)境中協(xié)處理器和控制器之間的通信。
通過一種根據(jù)權(quán)利要求1用于從協(xié)處理器寫數(shù)據(jù)單元到FIFO存儲器中的設(shè)備、一種根據(jù)權(quán)利要求7用于從協(xié)處理器寫數(shù)據(jù)單元到FIFO存儲器中的方法、一種根據(jù)權(quán)利要求12用于從FIFO存儲器讀出數(shù)據(jù)單元到協(xié)處理器中的設(shè)備、一種根據(jù)權(quán)利要求18用于從FIFO存儲器讀出數(shù)據(jù)單元到協(xié)處理器中的方法、以及一種根據(jù)權(quán)利要求23的多重處理計算機系統(tǒng),所述目的被達(dá)到。
本發(fā)明基于一種思想,即,保持兩個計數(shù)器用于FIFO的輸入或輸出端口。
根據(jù)本發(fā)明,提供了一種用于從協(xié)處理器寫數(shù)據(jù)單元到FIFO存儲器中的設(shè)備。所述設(shè)備被嵌入在一個包括至少一個協(xié)處理器、一個FIFO存儲器和一個控制器的多重處理環(huán)境中。所述設(shè)備包括一個用于計數(shù)在所述FIFO存儲器中的可用空位的第一計數(shù)器,以及一個用于計數(shù)被寫入到所述FIFO存儲器中的數(shù)據(jù)單元數(shù)量的第二計數(shù)器。所述設(shè)備還包括一個控制裝置,用于對所述第一計數(shù)器進(jìn)行所述FIFO存儲器中可用的空位的檢驗,并且用于對所述第二計數(shù)器進(jìn)行是否預(yù)定數(shù)量的N個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器的檢驗。在一個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器之后,所述控制裝置遞減所述第一計數(shù)器的計數(shù)并且遞增所述第二計數(shù)器的計數(shù)。最后,所述設(shè)備包括一個用于輸出數(shù)據(jù)單元到所述FIFO存儲器的輸出裝置。當(dāng)所述第二計數(shù)器的計數(shù)已經(jīng)達(dá)到所述預(yù)定的數(shù)量N時,所述控制裝置發(fā)布第一消息,并且發(fā)布對于在所述FIFO存儲器中可用空位的第一個呼叫到所述控制器。所述輸出裝置轉(zhuǎn)發(fā)所述第一消息和/或所述第一個呼叫到所述控制器。
根據(jù)本發(fā)明的寫入設(shè)備的優(yōu)點是,通過使用所述第一和第二計數(shù)器用于寫入數(shù)據(jù)到所述FIFO存儲器中,當(dāng)寫入到所述FIFO時,對于一個執(zhí)行寫入操作的協(xié)處理器,不必請求控制器兩個信號量操作(P和V操作),從而,減少在協(xié)處理器和控制器之間的通信業(yè)務(wù)量。
根據(jù)本發(fā)明的一個實施方案,所述第一消息指示足夠的數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器中。因為所述消息只在N個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO中之后被傳送,所以,有利地,在協(xié)處理器和控制器之間的通信業(yè)務(wù)量被進(jìn)一步減少,。
根據(jù)本發(fā)明的另一個實施方案,當(dāng)數(shù)據(jù)單元被輸出到所述FIFO存儲器時,所述控制裝置遞增一個寫入指針。
仍根據(jù)本發(fā)明的另一個實施方案,所述控制裝置在所述寫入指針被遞增之后執(zhí)行繞回測試。
根據(jù)本發(fā)明的一個實施方案,所述控制裝置在發(fā)布所述第一消息之后重置所述第二計數(shù)器,即,所述計數(shù)器在它的計數(shù)已經(jīng)達(dá)到N并且所述消息已經(jīng)被發(fā)布之后被重置,以便計數(shù)能夠再次開始。
根據(jù)本發(fā)明的另一個實施方案,在所述第一計數(shù)器的所述計數(shù)變成零之前,所述控制裝置發(fā)布對于在所述FIFO存儲器中可用空位的所述第一個呼叫到所述控制器。因為這樣一個呼叫的等待時間被隱藏,所以這是有利的。
本發(fā)明還涉及一種用于從協(xié)處理器寫數(shù)據(jù)單元到FIFO的方法。所述方法對應(yīng)于上述用于寫數(shù)據(jù)單元的設(shè)備。
此外,本發(fā)明還提供了一種用于從FIFO讀出數(shù)據(jù)單元到協(xié)處理器中的設(shè)備和方法。所述設(shè)備和方法與寫入設(shè)備和寫入方法是互補的。這里,數(shù)據(jù)被從FIFO傳送到協(xié)處理器。代替所述第一消息和第一個呼叫,發(fā)布指示足夠的數(shù)據(jù)單元已經(jīng)被從所述FIFO讀出,即,該空位是可用的第二消息,以及在所述FIFO中請求可用的數(shù)據(jù)單元的第二個呼叫。
根據(jù)本發(fā)明,根據(jù)權(quán)利要求23的一種的多重處理計算機系統(tǒng)也被提供。而且,根據(jù)權(quán)利要求24,本發(fā)明還提供了一種計算機程序用于實現(xiàn)所述方法。
現(xiàn)在,將參考附圖更詳細(xì)地解釋本發(fā)明,其中
圖1表示根據(jù)本發(fā)明的一個實施方案的一個多重處理計算機系統(tǒng)的框圖,圖2表示一個與圖1中的協(xié)處理器有關(guān)的寫入設(shè)備的框圖,以及圖3表示一個與圖1中的協(xié)處理器有關(guān)的讀出設(shè)備的框圖。
圖1表示根據(jù)本發(fā)明的一個實施方案的一個多重處理計算機系統(tǒng)的框圖。所述計算機系統(tǒng)包括優(yōu)選地以FIFO存儲器形式的存儲體1、三個CPU3、三個協(xié)處理器2、一個控制器4以及一個像總線的,用于把所述FIFO存儲器與CPU3、協(xié)處理器2和控制器4連接起來的互連。優(yōu)選地,所述控制器4實現(xiàn)為按照協(xié)處理器2的請求來執(zhí)行信號量操作的可編程的處理器,并且通過專用環(huán)狀網(wǎng)優(yōu)選地與協(xié)處理器2通信。一部分進(jìn)程在軟件中被實現(xiàn)并且在可編程的處理器,即,CPU3上運行,然而,另一部分進(jìn)程在專用硬件中被實現(xiàn)并且在協(xié)處理器2上運行。存儲器1在處理器3和協(xié)處理器2之間被共享并且通常是一個隨機存儲器。
關(guān)于所謂的CAKE結(jié)構(gòu)的細(xì)節(jié),請參考2001年四月,哥本哈根,CODES 2001會刊中第92-97頁,貝森特(Basant)等人撰寫的“Exploring Design Space of Parallel RealizationsMPEG-2Decoder Case Study(探究并行實現(xiàn)的設(shè)計空間MPEG-2解碼器實例研究)”。
圖2顯示一個與圖1中的協(xié)處理器2有關(guān)的寫入設(shè)備的框圖。所述寫入設(shè)備包括第一計數(shù)器10和第二計數(shù)器20、控制裝置30和輸出裝置40,其中所述控制裝置30分別被連接到所述第一和第二計數(shù)器10、20以及所述輸出裝置40。所述控制裝置30具有一個端子31,協(xié)處理器2能夠被連接到該端子31。所述輸出裝置40具有一個可連接到所述FIFO1的第一端子41和可連接到控制器4的第二端子42,其中所述連接通過專用環(huán)狀網(wǎng)被優(yōu)選地實現(xiàn)。
所述第一計數(shù)器10被用于計數(shù)在所述FIFO 1中可用的空位,即,所述第一計數(shù)器10的計數(shù)是可用的空位(room_available)。它包括在所述FIFO 1中自由空間的數(shù)量,在對于自由空間或空位的呼叫需要被發(fā)布之前,數(shù)據(jù)能夠被寫入到其中。所述第二計數(shù)器20被用于計數(shù)在所述FIFO 1中可用的數(shù)據(jù),即,所述第二計數(shù)器20的計數(shù)是被制造的數(shù)據(jù)(data_produced)。它包括已經(jīng)被寫入到FIFO1中,但是還沒有被報告給控制器4的數(shù)據(jù)的數(shù)量。
首先,控制裝置30檢驗第一計數(shù)器10,即,可用空位計數(shù)器10的計數(shù)。如果第一計數(shù)器10的計數(shù)是零,則控制裝置30發(fā)布第一個呼叫C1,即,獲得空位(get_room)呼叫到控制器4以便在FIFO1中請求空位。如果控制器4返回一個當(dāng)前在FIFO中沒有可用的空位的消息,則控制裝置30重復(fù)發(fā)布獲得空位呼叫,直到控制器4返回在FIFO1中有可用的空位。當(dāng)在所述FIFO中有可用的空間時,輸出裝置40輸出數(shù)據(jù)到FIFO1,該數(shù)據(jù)被存儲在那里。下一步,控制裝置30遞增一個寫入指針并且執(zhí)行指針繞回測試。
通過把寫入/讀出指針與緩沖器結(jié)束地址比較,所述繞回測試被執(zhí)行,并且如果它們彼此相等,則所述寫入/讀出指針被調(diào)整到緩沖器開始地址。優(yōu)選地,緩沖器開始以及緩沖器結(jié)束地址被存儲在所述協(xié)處理器中。
此后,控制裝置30遞減第一計數(shù)器10,即,可用空位計數(shù)器的計數(shù),并且遞增第二計數(shù)器20,即,被制造的數(shù)據(jù)(data_produced)計數(shù)器的計數(shù)??刂蒲b置30確定第二計數(shù)器20的計數(shù)是否已經(jīng)達(dá)到預(yù)定的數(shù)量N,指示N個數(shù)據(jù)單元已經(jīng)被寫入到FIFO中,并且因此可用來被從所述FIFO1讀出。第二計數(shù)器20的計數(shù)一達(dá)到預(yù)定的數(shù)量N,控制裝置30就發(fā)布第一消息M1,即放置數(shù)據(jù)(put_data),到控制器4。可替代地,所述放置數(shù)據(jù)消息可以具有一個指示多少數(shù)據(jù)已經(jīng)被制造的變元。
圖3顯示一個與圖1中的協(xié)處理器2有關(guān)的讀出設(shè)備的框圖。所述讀出設(shè)備包括第三計數(shù)器50和第四計數(shù)器60,控制裝置70和輸入裝置80,其中所述控制裝置70分別被連接到所述第三和第四計數(shù)器50、60以及所述輸入裝置80。所述控制裝置70具有一個端子71,協(xié)處理器2可以被連接到該端子71。所述輸入裝置80具有一個可連接到所述FIFO1的第一端子81和可連接到控制器4的第二端子82,其中所述連接通過專用環(huán)狀網(wǎng)被優(yōu)選地實現(xiàn)。
所述第三計數(shù)器50被用于計數(shù)在所述FIFO 1中可用的數(shù)據(jù),即,所述第一計數(shù)器10的計數(shù)是可用的數(shù)據(jù)(data_available)。它包括在所述FIFO 1中自由數(shù)據(jù)單元的數(shù)量,在對于數(shù)據(jù)的呼叫需要被發(fā)布之前,它可以被讀出。所述第四計數(shù)器60被用于計數(shù)在所述FIFO 1中可用的自由空間或空位,即,所述第二計數(shù)器20的計數(shù)是被制造的空位(room_produced)。它包括已經(jīng)被從FIFO緩沖器1讀出,但是還沒有被報告給控制器4的數(shù)據(jù)的數(shù)量。
首先,控制裝置70檢驗第三計數(shù)器50,即,可用數(shù)據(jù)計數(shù)器的計數(shù)。如果第三計數(shù)器50的計數(shù)是零,則控制裝置70發(fā)布第二個呼叫C2,即,獲得數(shù)據(jù)呼叫到控制器4以便在FIFO 1中請求數(shù)據(jù)。如果控制器4返回一個當(dāng)前在FIFO 1中沒有可用的數(shù)據(jù)的消息,則控制裝置70重復(fù)發(fā)布獲得數(shù)據(jù)呼叫,直到控制器4返回一個在FIFO1中有可用的數(shù)據(jù)。當(dāng)在所述FIFO 1中有可用的數(shù)據(jù)時,輸入裝置80從FIFO 1輸入或者讀出數(shù)據(jù)。下一步,控制裝置70遞增一個讀出指針并且執(zhí)行指針繞回測試。
此后,控制裝置70遞減第三計數(shù)器50,即,可用數(shù)據(jù)計數(shù)器的計數(shù),并且遞增第四計數(shù)器60,即,被制造的空位計數(shù)器的計數(shù)??刂蒲b置70確定第四計數(shù)器60的計數(shù)是否已經(jīng)達(dá)到預(yù)定的數(shù)量N,指示N個數(shù)據(jù)單元已經(jīng)被從FIFO 1讀出,并且因此有數(shù)據(jù)可以被寫入到其中的可用的空間。第四計數(shù)器60的計數(shù)一達(dá)到預(yù)定的數(shù)量N,控制裝置70就發(fā)布第二消息M2,即放置空位(put_room),到控制器4。可替代地,所述放置空位消息可具有一個指示多少數(shù)據(jù)已經(jīng)被制造的變元。
因此,作為一個可編程處理器而被實現(xiàn)的控制器4必須能夠從寫入設(shè)備的控制裝置30接受一個獲得空位呼叫和一個放置數(shù)據(jù)消息,以及從讀出設(shè)備的控制裝置70接受獲得數(shù)據(jù)呼叫和放置空位消息。當(dāng)控制器4接收一個獲得空位呼叫時,它把相應(yīng)的空位信號量的值重置到零并且返回以前的空位信號量值。這個值隨后被返回到協(xié)處理器2或者它的相關(guān)的發(fā)布獲得空位呼叫的寫入設(shè)備。當(dāng)控制器4從與協(xié)處理器2有關(guān)的寫入設(shè)備接收放置數(shù)據(jù)消息時,它增加數(shù)據(jù)信號量一個特定的值。這個值可以是預(yù)定的值N或者可替代地是放置數(shù)據(jù)消息的變元。
控制器4對獲得數(shù)據(jù)呼叫和放置空位消息的反應(yīng)的實現(xiàn)類似于獲得空位呼叫和放置數(shù)據(jù)消息的實現(xiàn)。當(dāng)控制器4接收一個獲得數(shù)據(jù)呼叫時,它把相應(yīng)的數(shù)據(jù)信號量的值重置到零并且返回以前的數(shù)據(jù)信號量值。這個值隨后被返回到協(xié)處理器2或者它的相關(guān)的發(fā)布獲得數(shù)據(jù)呼叫的讀出設(shè)備。當(dāng)控制器4從與協(xié)處理器2有關(guān)的讀出設(shè)備接收放置空位消息時,它增加空位信號量一個特定的值。這個值可以是預(yù)定的值N或者可替代地是放置空位消息的變元。
通過在第一計數(shù)器10,即可用數(shù)據(jù)計數(shù)器或者第三計數(shù)器50,即可用空位計數(shù)器變成零之前發(fā)布在FIFO 1中請求數(shù)據(jù)或空位的獲得數(shù)據(jù)或獲得空位呼叫,上面被描述的通信方案可以被改進(jìn)。這種改進(jìn)將隱藏獲得數(shù)據(jù)/獲得空位呼叫的等待時間。
一種低端MIPS PR 1910處理器可以被用作控制器4。
如上所述,進(jìn)程可以在一個可編程的處理器上或者在一個專用協(xié)處理器上被實現(xiàn)。在兩者之間的選擇是經(jīng)典的硬件/軟件共同設(shè)計問題。優(yōu)選地,在FIFO通信協(xié)議緩沖接入中,指針遞增和指針繞回測試在硬件,即專用協(xié)處理器中被實現(xiàn),然而,信號量操作在軟件中被實現(xiàn)。因為,例如叫醒睡眠進(jìn)程這樣的進(jìn)程的復(fù)雜性,所以希望在軟件中執(zhí)行信號量操作,即所述進(jìn)程在可編程的處理器上被執(zhí)行。
權(quán)利要求
1.在一個包括至少一個協(xié)處理器、一個FIFO存儲器和一個控制器的多重處理環(huán)境中,用于將數(shù)據(jù)單元從協(xié)處理器寫入到FIFO存儲器中的設(shè)備,所述設(shè)備包括用于計數(shù)在所述FIFO存儲器中可用的空位的第一計數(shù)器;用于計數(shù)被寫入到所述FIFO存儲器中的數(shù)據(jù)單元數(shù)量的第二計數(shù)器;控制裝置,用于對所述第一計數(shù)器進(jìn)行所述FIFO存儲器中的可用空位的檢驗、用于對所述第二計數(shù)器進(jìn)行是否預(yù)定數(shù)量N個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器的檢驗、用于在一個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器之后,遞減所述第一計數(shù)器的計數(shù)并且用于遞增所述第二計數(shù)器的計數(shù);以及用于輸出數(shù)據(jù)單元到所述FIFO存儲器的輸出裝置;其中所述控制裝置被用于在所述第二計數(shù)器的計數(shù)已經(jīng)達(dá)到所述預(yù)定數(shù)量N時發(fā)布第一消息;其中所述控制裝置被用于發(fā)布對所述FIFO存儲器中可用空位的第一個呼叫到所述控制器;并且其中所述輸出裝置被用于轉(zhuǎn)發(fā)所述第一消息和/或所述第一個呼叫到所述控制器。
2.根據(jù)權(quán)利要求1中所述的設(shè)備,其中,所述第一消息指示足夠的數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器中。
3.根據(jù)權(quán)利要求2中所述的設(shè)備,其中,所述控制裝置還被用于當(dāng)數(shù)據(jù)單元被輸出到所述FIFO存儲器時,遞增一個寫入指針。
4.根據(jù)權(quán)利要求3中所述的設(shè)備,其中,所述控制裝置還被用于在所述寫入指針被遞增之后執(zhí)行一個繞回測試。
5.根據(jù)權(quán)利要求2中所述的設(shè)備,其中所述控制裝置被用于在發(fā)布所述第一消息之后重置所述第二計數(shù)器。
6.根據(jù)權(quán)利要求1或2中所述的設(shè)備,其中,所述控制裝置被用于在所述第一計數(shù)器的所述計數(shù)變成零之前,發(fā)布對所述FIFO存儲器中可用空位的所述第一個呼叫到所述控制器。
7.在一個包括至少一個協(xié)處理器、一個FIFO存儲器和一個控制器的多重處理環(huán)境中,用于將數(shù)據(jù)單元從協(xié)處理器寫入到FIFO存儲器中的方法,所述方法包括步驟檢驗第一計數(shù)器,指示在所述FIFO存儲器中可用的空位,以便確定在所述FIFO存儲器中是否有空位可用;發(fā)布對所述FIFO存儲器中可用空位的第一個呼叫到所述控制器,直到在所述FIFO存儲器中有空位;輸出數(shù)據(jù)單元到所述FIFO存儲器;在一個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器之后,遞減所述第一計數(shù)器的計數(shù);在一個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器之后,遞增一個用于計數(shù)被寫入到所述FIFO存儲器中的數(shù)據(jù)單元數(shù)量的第二計數(shù)器;檢驗所述第二計數(shù)器以便確定是否預(yù)定數(shù)量N個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器;以及當(dāng)所述第二計數(shù)器的計數(shù)已經(jīng)達(dá)到所述預(yù)定數(shù)量N時,發(fā)布足夠的數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器中的第一消息。
8.根據(jù)權(quán)利要求7中所述的方法,還包括步驟當(dāng)數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器時,遞增一個寫入指針。
9.根據(jù)權(quán)利要求8中所述的方法,還包括步驟在所述寫入指針被遞增之后,執(zhí)行一個繞回測試。
10.根據(jù)權(quán)利要求7中所述的方法,還包括步驟在發(fā)布所述第一消息之后,重置所述第二計數(shù)器。
11.根據(jù)權(quán)利要求7中所述的方法,還包括步驟在所述第一計數(shù)器的計數(shù)變成零之前,發(fā)布對所述FIFO存儲器中可用空位的所述第一個呼叫到所述控制器。
12.在一個包括至少一個協(xié)處理器、一個FIFO存儲器和一個控制器的多重處理環(huán)境中,用于從FIFO存儲器讀出數(shù)據(jù)單元到協(xié)處理器中的設(shè)備,所述設(shè)備包括用于計數(shù)在所述FIFO存儲器中可用的數(shù)據(jù)單元的第三計數(shù)器;用于計數(shù)被從所述FIFO存儲器讀出的數(shù)據(jù)單元數(shù)量的第四計數(shù)器;控制裝置,用于對所述第三計數(shù)器進(jìn)行所述FIFO存儲器中可用的數(shù)據(jù)單元的檢驗、用于檢驗所述第四計數(shù)器以便確定是否預(yù)定數(shù)量N個數(shù)據(jù)單元已經(jīng)被從所述FIFO存儲器讀出、用于在一個數(shù)據(jù)單元已經(jīng)被從所述FIFO存儲器讀出之后,遞減所述第三計數(shù)器的計數(shù)并且用于遞增所述第四計數(shù)器的計數(shù);以及用于從所述FIFO存儲器輸入數(shù)據(jù)單元的輸入裝置;其中所述控制裝置被用于在所述第四計數(shù)器的計數(shù)已經(jīng)達(dá)到所述預(yù)定數(shù)量N時發(fā)布第二消息;其中所述控制裝置被用于發(fā)布對所述FIFO存儲器中可用的數(shù)據(jù)單元的第二個呼叫到所述控制器;并且其中所述輸出裝置被用于轉(zhuǎn)發(fā)所述第二消息和/或所述第二個呼叫到所述控制器。
13.根據(jù)權(quán)利要求12中所述的設(shè)備,其中,所述第二消息指示足夠的數(shù)據(jù)單元已經(jīng)從所述FIFO存儲器讀出。
14根據(jù)權(quán)利要求13中所述的設(shè)備,其中,當(dāng)數(shù)據(jù)單元被從所述FIFO存儲器輸入時,所述控制裝置還被用于遞增一個讀出指針。
15.根據(jù)權(quán)利要求14中所述的設(shè)備,其中,所述控制裝置還被用于在所述讀出指針被遞增之后執(zhí)行一個繞回測試。
16.根據(jù)權(quán)利要求13中所述的設(shè)備,其中所述控制裝置被用于在發(fā)布所述第二消息之后重置所述第四計數(shù)器。
17.根據(jù)權(quán)利要求13中所述的設(shè)備,其中,所述控制裝置被用于在所述第三計數(shù)器的所述計數(shù)變成零之前,發(fā)布對所述FIFO存儲器中可用的數(shù)據(jù)單元的所述第二個呼叫到所述控制器。
18.在一個包括至少一個協(xié)處理器、一個FIFO存儲器和一個控制器的多重處理環(huán)境中,用于從FIFO存儲器讀出數(shù)據(jù)單元到協(xié)處理器中的方法,所述方法包括步驟檢驗第三計數(shù)器,指示在所述FIFO存儲器中可用的數(shù)據(jù)單元,以便確定在所述FIFO存儲器中是否有數(shù)據(jù)單元可用;發(fā)布對所述FIFO存儲器中可用數(shù)據(jù)單元的第二個呼叫到所述控制器,直到在所述FIFO存儲器中有數(shù)據(jù)單元;從所述FIFO存儲器輸入數(shù)據(jù)單元;在一個數(shù)據(jù)單元已經(jīng)被從所述FIFO存儲器讀出之后,遞減所述第三計數(shù)器的計數(shù);在一個數(shù)據(jù)單元已經(jīng)被從所述FIFO存儲器讀出之后,遞增一個用于計數(shù)被從所述FIFO存儲器讀出的數(shù)據(jù)單元數(shù)量的第四計數(shù)器;檢驗所述第四計數(shù)器以便確定是否預(yù)定數(shù)量N個數(shù)據(jù)單元已經(jīng)被從所述FIFO存儲器讀出;以及當(dāng)所述第四計數(shù)器的計數(shù)已經(jīng)達(dá)到所述預(yù)定數(shù)量N時,發(fā)布足夠的數(shù)據(jù)單元已經(jīng)被從所述FIFO存儲器讀出的第二消息。
19.根據(jù)權(quán)利要求18中所述的方法,還包括步驟當(dāng)數(shù)據(jù)單元被從所述FIFO存儲器讀出時,遞增一個讀出指針。
20.根據(jù)權(quán)利要求19中所述的方法,還包括步驟在所述讀出指針被遞增之后,執(zhí)行繞回測試。
21.根據(jù)權(quán)利要求18中所述的方法,還包括步驟在發(fā)布所述第二消息之后,重置所述第四計數(shù)器。
22.根據(jù)權(quán)利要求18中所述的方法,還包括步驟在所述第三計數(shù)器的計數(shù)變成零之前,發(fā)布對在所述FIFO存儲器中可用數(shù)據(jù)單元的所述第二呼叫到所述控制器。
23.多重處理計算機系統(tǒng),包括一個FIFO存儲器;至少一個協(xié)處理器;一個控制器,一個根據(jù)權(quán)利要求1到6用于寫入的設(shè)備和/或一個根據(jù)權(quán)利要求12到17用于讀出的設(shè)備。
24.一種計算機程序,包括計算機程序代碼裝置,用于當(dāng)所述計算機程序在一臺計算機上被運行時,導(dǎo)致計算機執(zhí)行如權(quán)利要求7到11中所述的方法以及如權(quán)利要求18到22中所述的方法的步驟。
全文摘要
本發(fā)明基于為FIFO的輸入或輸出端口保持兩個計數(shù)器的思想。提供了一種用于從協(xié)處理器將數(shù)據(jù)單元寫入到FIFO存儲器中的設(shè)備。所述設(shè)備被嵌入在包括至少一個協(xié)處理器、一個FIFO存儲器和一個控制器的多重處理環(huán)境中。所述設(shè)備包括用于計數(shù)在所述FIFO存儲器中可用的空位的第一計數(shù)器,和用于計數(shù)被寫入到所述FIFO存儲器中的數(shù)據(jù)單元的數(shù)量的第二計數(shù)器。所述設(shè)備還包括一個控制裝置,用于對所述第一計數(shù)器進(jìn)行所述FIFO存儲器中可用的空位的檢驗,并且用于對所述第二計數(shù)器進(jìn)行是否預(yù)定數(shù)量N個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器的檢驗。在一個數(shù)據(jù)單元已經(jīng)被寫入到所述FIFO存儲器中之后,所述控制裝置遞減所述第一計數(shù)器的計數(shù)并且遞增所述第二計數(shù)器的計數(shù)。最后,所述設(shè)備包括一個用于輸出數(shù)據(jù)單元到所述FIFO存儲器的輸出裝置。當(dāng)所述第二計數(shù)器的計數(shù)已經(jīng)達(dá)到所述預(yù)定數(shù)量N時,所述控制裝置發(fā)布第一消息并且發(fā)布對在所述FIFO存儲器中可用的空位的第一個呼叫到所述控制器。所述輸出裝置轉(zhuǎn)發(fā)所述第一消息和/或所述第一個呼叫到所述控制器。
文檔編號G06F15/167GK1659508SQ03813109
公開日2005年8月24日 申請日期2003年5月21日 優(yōu)先權(quán)日2002年6月7日
發(fā)明者J·胡格布魯格, P·斯特拉維斯 申請人:皇家飛利浦電子股份有限公司