專利名稱:流數(shù)據(jù)處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對流數(shù)據(jù)進行多步處理的流數(shù)據(jù)處理裝置。更特別地,本發(fā)明涉及一種在多個處理部分之間發(fā)送或接收數(shù)據(jù)并且在它們之間實現(xiàn)同步化的流數(shù)據(jù)處理裝置。
發(fā)明技術(shù)背景眾所周知,流數(shù)據(jù)處理裝置適用于對諸如音頻數(shù)據(jù)或視頻數(shù)據(jù)進行多步處理。一種典型的流數(shù)據(jù)處理裝置包括輸入部分、處理部分和輸出部分,使得處理部分可對輸入的流數(shù)據(jù)進行預(yù)定的處理,并輸出由此獲得的處理結(jié)果。在很多情況下,流數(shù)據(jù)處理裝置對輸入的流數(shù)據(jù)進行包據(jù)多個步驟的處理。至此,流數(shù)據(jù)處理裝置包括多個用于執(zhí)行相應(yīng)處理步驟的處理部分,并且在這樣的處理部分之間發(fā)送或接收數(shù)據(jù)。因此,流數(shù)據(jù)處理裝置以流水線方式對輸入的流數(shù)據(jù)執(zhí)行多步處理。有時會向流數(shù)據(jù)處理裝置發(fā)出指令,如中斷處理或定位(即,從給定的處理數(shù)據(jù)流中的一個不同的位置開始處理)。為了確保當(dāng)接收到這樣的指令時的正確操作,流數(shù)據(jù)處理裝置進行數(shù)據(jù)交換并且在多個處理部分之間實現(xiàn)同步化。
日本專利No.3095290揭示了一種方法,在流數(shù)據(jù)處理裝置中進行數(shù)據(jù)交換并且在多個處理部分之間實現(xiàn)同步化。根據(jù)該方法,每個處理部分都可以通過通信獲取另一與之交換數(shù)據(jù)的處理部分的狀態(tài),并且根據(jù)那一處理部分的狀態(tài)切換它自己的操作。例如,當(dāng)向流數(shù)據(jù)處理裝置發(fā)出一個定位指令,在數(shù)據(jù)接收端的處理部分必須推遲數(shù)據(jù)的接收,直到在數(shù)據(jù)發(fā)送端的處理部分開始發(fā)送對應(yīng)于新位置的數(shù)據(jù)的處理結(jié)果。為了實現(xiàn)這樣的功能,每個處理部分根據(jù)接收到數(shù)據(jù)的內(nèi)容、處理的進程以及另一處理部分的狀態(tài)來控制它自己的操作防止讀取任何不正確的數(shù)據(jù)。因此,通過在多個處理部分之間正確交換數(shù)據(jù)并且在它們之間實現(xiàn)同步化,流數(shù)據(jù)處理裝置能夠以良好的整體完整性運行。
然而,使用上述方法在多個處理部分之間實現(xiàn)同步化會存在下列問題。由于每個處理部分都需要根據(jù)接收到的數(shù)據(jù)的內(nèi)容、處理的進程以及另一處理部分的狀態(tài)來控制它自己的操作,所述每個處理部分的結(jié)構(gòu)就變得復(fù)雜。當(dāng)用軟件實現(xiàn)各個處理部分時,構(gòu)成每個處理部分的軟件組件的結(jié)構(gòu)變得特別復(fù)雜。再者,由于沒有在上述方法中的相應(yīng)的處理部分中使用統(tǒng)一的接口,因此就很難將構(gòu)成每個處理部分的軟件組件移植到另一個系統(tǒng)。
發(fā)明內(nèi)容
因此,本發(fā)明的一個目標(biāo)是提供一種在多個處理部分之間發(fā)送或接收數(shù)據(jù)并且在它們之間實現(xiàn)同步化的流數(shù)據(jù)處理裝置,使得每個處理部分能夠進行數(shù)據(jù)交換而不用考慮數(shù)據(jù)的內(nèi)容、處理的進程以及另一處理部分的狀態(tài)。本發(fā)明的另一個目標(biāo)是統(tǒng)一流數(shù)據(jù)處理裝置所包含的處理部分之間的接口,從而簡化每個處理部分的結(jié)構(gòu)并提高每個處理部分的再利用率。
根據(jù)本發(fā)明的流數(shù)據(jù)處理裝置包括發(fā)送端處理部分、接收端處理部分、控制部分、數(shù)據(jù)臨時存儲部分、空數(shù)據(jù)存儲部分和連接管理部分,并且對流數(shù)據(jù)進行多步處理。發(fā)送端處理部分進行多步處理中的一個處理。接收端處理部分進行多步處理中的另一個處理。連接管理部分使用數(shù)據(jù)臨時存儲部分作為允許從發(fā)送端處理部分發(fā)送和由接收端處理部分接收的數(shù)據(jù)緩沖器。如果由于定位或流數(shù)據(jù)的改變需要改變處理的內(nèi)容,每個處理部分響應(yīng)來自控制部分的指令向連接管理部分輸出一個清除請求。連接管理部分根據(jù)它是否處于正常操作狀態(tài),來切換寫的目的地和讀的源,該操作狀態(tài)可包括在接收到發(fā)送端清除請求之后和直到接收到接收端清除請求時存在的接收端清除等待狀態(tài),或者在接收到發(fā)送端清除請求之后和直到接收到接收端清除請求時存在的發(fā)送端清除等待狀態(tài)。當(dāng)空數(shù)據(jù)存儲部分作為這類切換的目的地時,就響應(yīng)數(shù)據(jù)寫操作刪除任何寫入空數(shù)據(jù)存儲部分的數(shù)據(jù)并響應(yīng)數(shù)據(jù)讀操作返回空數(shù)據(jù)。
作為切換方法的第一個例子,連接管理部分可以在接收端清除等待狀態(tài)下選擇空數(shù)據(jù)存儲部分作為讀的源,并且在發(fā)送端清除等待狀態(tài)下選擇空數(shù)據(jù)存儲部分作為寫的目的地。當(dāng)采用這種切換方法時,如果在正常操作狀態(tài)下收到任何一個清除請求,連接管理部分就刪除存儲在數(shù)據(jù)臨時存儲部分中的數(shù)據(jù)。
作為切換方法的第二個例子,連接管理部分可以在發(fā)送端清除等待狀態(tài)選擇空數(shù)據(jù)存儲部分作為寫的目的地,并且在接收端清除等待狀態(tài)下,將在已經(jīng)接收到發(fā)送端清除請求時存儲在數(shù)據(jù)臨時存儲部分中的任何數(shù)據(jù)都當(dāng)作舊數(shù)據(jù),選擇數(shù)據(jù)臨時存儲部分中沒有存儲舊數(shù)據(jù)的一個區(qū)域作為寫的目的地,并且選擇在數(shù)據(jù)臨時存儲部分中存儲舊數(shù)據(jù)而且存在舊數(shù)據(jù)(并且當(dāng)舊數(shù)據(jù)不再存在時選擇空數(shù)據(jù)存儲部分作為讀的源)的一個區(qū)域作為讀的源。當(dāng)采用這種切換方法時,如果在正常存在狀態(tài)下接收到接收端清除請求,連接管理部分就刪除存儲在數(shù)據(jù)臨時存儲部分中的數(shù)據(jù),并且如果在接收端清除等待狀態(tài)下接收到接收端清除請求,連接管理部分就刪除舊數(shù)據(jù)。
發(fā)送端處理部分和接收端處理部分可以輸出發(fā)送端清除請求和接收端清除請求并通過使用具有對連接管理部分的訪問功能的數(shù)據(jù)發(fā)送/接收部分來進行數(shù)據(jù)的發(fā)送和接收。
連接管理部分可以構(gòu)建成在發(fā)送端處理部分發(fā)送的數(shù)據(jù)不能被寫入到數(shù)據(jù)臨時存儲部分時,能夠選擇是進行立即向發(fā)送端處理部分通知錯誤的處理,還是等待直到有可能將數(shù)據(jù)與入到數(shù)據(jù)臨時存儲部分并通知發(fā)送端處理部分數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分的結(jié)果。另一種選擇是,連接管理部分可以構(gòu)建成在不能從數(shù)據(jù)臨時存儲部分讀取由接收端處理部分接收的數(shù)據(jù)時,能夠選擇是立即向接收端處理部分通知錯誤的處理,還是等待直到有可能從數(shù)據(jù)臨時存儲部分讀取數(shù)據(jù)并通知接收端處理部分從數(shù)據(jù)臨時存儲部分讀取數(shù)據(jù)的結(jié)果。
流數(shù)據(jù)處理裝置可以進一步包括用來輸入流數(shù)據(jù)的數(shù)據(jù)輸入部分和/或用來輸出對流數(shù)據(jù)進行多步處理的結(jié)果的數(shù)據(jù)輸出部分。數(shù)據(jù)輸入部分可以從可移動記錄媒介輸入流數(shù)據(jù)。數(shù)據(jù)輸出部分可以將進行多步處理的結(jié)果輸出到可移動記錄媒介。
本發(fā)明的這些和其它的目標(biāo)、特性、方面和優(yōu)點將通過本發(fā)明下面的詳細說明及附圖來闡明。
圖1是說明根據(jù)本發(fā)明的第一和第二實施例的流數(shù)據(jù)處理裝置的結(jié)構(gòu)的方框圖;圖2是說明根據(jù)本發(fā)明的第一個和第二實施例的流數(shù)據(jù)處理裝置在處理停止?fàn)顟B(tài)下指示開始處理時的操作的流程圖;圖3是說明根據(jù)本發(fā)明的第一和第二實施例的流數(shù)據(jù)處理裝置在正常操作狀態(tài)下指示改變處理項目時的操作流程圖。
圖4是說明根據(jù)本發(fā)明的第一實施例的流數(shù)據(jù)處理裝置的連接管理部分的操作的流程圖;
圖5是說明根據(jù)本發(fā)明的第一和第二實施例的流數(shù)據(jù)處理裝置在正常操作狀態(tài)下發(fā)送或接收數(shù)據(jù)方式的示意圖;圖6是說明根據(jù)本發(fā)明的第一實施例的流數(shù)據(jù)處理裝置接收端清除等待狀態(tài)下發(fā)送或接收數(shù)據(jù)方式的示意圖;圖7是說明根據(jù)本發(fā)明的第一和第二實施例的流數(shù)據(jù)處理裝置在發(fā)送端清除等待狀態(tài)下發(fā)送或接收數(shù)據(jù)方式的示意圖;圖8是說明根據(jù)本發(fā)明的第一實施例的流數(shù)據(jù)處理裝置的連接管理部分的操作;圖9是說明根據(jù)本發(fā)明的第二實施例的流數(shù)據(jù)處理裝置的連接管理部分的操作的流程圖;圖10是說明根據(jù)本發(fā)明的第二實施例的流數(shù)據(jù)處理裝置在接收端清除等待狀態(tài)下存在舊數(shù)據(jù)時發(fā)送或接收數(shù)據(jù)方式的示意圖;圖11是說明根據(jù)本發(fā)明的第二實施例的流數(shù)據(jù)處理裝置在接收端清除等待狀態(tài)下不再存在舊數(shù)據(jù)時發(fā)送或接收數(shù)據(jù)方式的示意圖;圖12是說明根據(jù)本發(fā)明的第二實施例的流數(shù)據(jù)處理裝置的連接管理部分的操作的表格;及圖13是說明根據(jù)本發(fā)明的一個變體的流數(shù)據(jù)處理裝置的結(jié)構(gòu)。
首選實施例說明(第一個實施例)圖1為方框圖,用于說明根據(jù)本發(fā)明的第一實施例的流數(shù)據(jù)處理裝置的結(jié)構(gòu)。圖1所示的流數(shù)據(jù)處理裝置10包括控制部分11、數(shù)據(jù)輸入部分12、第一個處理部分13、第二個處理部分14、數(shù)據(jù)輸出部分15、連接管理部分21、數(shù)據(jù)臨時存儲部分22、空數(shù)據(jù)存儲部分23、數(shù)據(jù)發(fā)送部分24及數(shù)據(jù)接收部分25。流數(shù)據(jù)處理裝置10對輸入的流數(shù)據(jù)進行兩個步驟的處理。在此,“流數(shù)據(jù)”指以時間順序輸入/輸出或處理的數(shù)據(jù),例如,音頻數(shù)據(jù)或視頻數(shù)據(jù)。
控制部分11是用于控制流數(shù)據(jù)處理裝置10的操作的部件。例如,當(dāng)用戶輸入一個命令或當(dāng)在裝置中發(fā)生異常時,控制部分11分別將控制信號31和32輸出到第一個處理部分13和第二個處理部分14。
數(shù)據(jù)輸入部分12是輸入流數(shù)據(jù)的部件。例如,數(shù)據(jù)輸入部分12可以為如硬盤驅(qū)動器或存儲器這樣的存儲設(shè)備。數(shù)據(jù)輸入部分12,當(dāng)由這樣的存儲設(shè)備構(gòu)成時,以預(yù)定的格式存儲流數(shù)據(jù),并以時間順序輸出包含在流數(shù)據(jù)中的數(shù)據(jù)。另一種選擇,數(shù)據(jù)輸入部分12可以是諸如與一個通過網(wǎng)絡(luò)與數(shù)據(jù)輸入部分12耦聯(lián)的服務(wù)器(未標(biāo)出)通信的通信控制設(shè)備。數(shù)據(jù)輸入部分12,當(dāng)由這樣的通信控制設(shè)備構(gòu)成時,通過通信以時間順序接收包含在流數(shù)據(jù)中的數(shù)據(jù),并且以所接收這些數(shù)據(jù)的順序輸出它們。
第一個和第二個處理部分13和14對輸入的數(shù)據(jù)進行兩個步驟的處理。更具體地是,第一個處理部分13對以時間順序通過數(shù)據(jù)輸入部分12輸入的數(shù)據(jù)進行第一個步驟的處理,并且發(fā)送處理過的數(shù)據(jù)到第二個處理部分14。第二個處理部分14接收從第一個處理部分13發(fā)送的數(shù)據(jù),并對接收到的數(shù)據(jù)進行第二個步驟的處理。在圖1所示的結(jié)構(gòu)中,第一個處理部分13具有發(fā)送端處理部分的功能,以及第二個處理部分14具有作接收端處理部分的功能。
由第一個處理部分13和第二個處理部分14所進行的處理的內(nèi)容可以是任意的。第一個處理部分13和第二個處理部分14的例子可以為MPEG(運動圖像專家組)編碼器、MPEG解碼器、用來將數(shù)字音頻數(shù)據(jù)轉(zhuǎn)換為模擬音頻數(shù)據(jù)的D/A轉(zhuǎn)換器、用來從存儲器或類似設(shè)備獲取數(shù)據(jù)而使用的源濾波器,或用來調(diào)整視頻信號輸出時間的呈現(xiàn)濾波器。
數(shù)據(jù)輸出部分15是輸出通過對輸入的流數(shù)據(jù)進行兩個步驟的處理而獲得的處理結(jié)果的輸出部件。數(shù)據(jù)輸出部分15為輸出設(shè)備,如顯示設(shè)備或揚聲器。另一種選擇,數(shù)據(jù)輸出部分15可以為如硬盤驅(qū)動器或存儲器這樣的存儲設(shè)備。數(shù)據(jù)輸出部分15,當(dāng)由這樣的存儲設(shè)備構(gòu)成時,以預(yù)定的格式存儲以時間順序輸出的處理結(jié)果。作為另一種選擇,數(shù)據(jù)輸出部分15可以為如與一個通過網(wǎng)絡(luò)與數(shù)據(jù)輸出部分15耦聯(lián)的服務(wù)器(未標(biāo)出)通信的通信控制設(shè)備。數(shù)據(jù)輸出部分15,當(dāng)由這樣的通信控制設(shè)備構(gòu)成時,通過通信以輸出上述處理結(jié)果的順序發(fā)送它們。
連接管理部分21利用數(shù)據(jù)臨時存儲部分22來允許從第一個處理部分13發(fā)送的數(shù)據(jù)由第二個處理部分14接收。更具體地說,響應(yīng)來自第一個處理部分13的發(fā)送請求,連接管理部分21將從第一個處理部分13發(fā)送的數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22。響應(yīng)來自第二個處理部分14的接收請求,連接管理部分21允許第二個處理部分14接收從數(shù)據(jù)臨時存儲部分22讀取的數(shù)據(jù)。數(shù)據(jù)臨時存儲部分22臨時地存儲從第一個處理部分13發(fā)送的數(shù)據(jù)。數(shù)據(jù)臨時存儲部分22可以由如硬盤驅(qū)動器或存儲器這樣的存儲設(shè)備構(gòu)成。為了確保數(shù)據(jù)的有效管理和存儲,可以對數(shù)據(jù)臨時存儲部分22采用緩沖器結(jié)構(gòu),例如,隊列,雙緩沖,或環(huán)形緩沖。
如果不能將從第一個處理部分13發(fā)送的數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22(例如,如果數(shù)據(jù)臨時存儲部分22已滿),連接管理部分21等待直到有可能將數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22,并向第一個處理部分13通知數(shù)據(jù)寫入到臨時存儲部分22的結(jié)果。如果不能從數(shù)據(jù)臨時存儲部分22讀取任何將由第二個處理部分14接收的數(shù)據(jù)(例如,如果數(shù)據(jù)臨時存儲部分22為空),則連接管理部分21等待直到有可能從數(shù)據(jù)臨時存儲部分22讀取數(shù)據(jù),并且向第二個處理部分14通知從臨時存儲部分22讀取數(shù)據(jù)的結(jié)果。在包括以這種方式操作的連接管理部分21的流數(shù)據(jù)處理裝置10中,取決于數(shù)據(jù)臨時存儲部分22的狀態(tài),由第一個處理部分13進行的處理可以被中斷直到完成數(shù)據(jù)發(fā)送,或由第二個處理部分14進行的處理可以被中斷直到完成數(shù)據(jù)接收。在這樣的情況下,流數(shù)據(jù)處理裝置10被稱為以“塊模式”工作。
在流數(shù)據(jù)處理裝置10中,當(dāng)訪問連接管理部分21時,數(shù)據(jù)發(fā)送部分24和數(shù)據(jù)接收部分25都被用到。數(shù)據(jù)發(fā)送部分24提供通過連接管理部分21實現(xiàn)的數(shù)據(jù)發(fā)送功能。數(shù)據(jù)接收部分25提供通過連接管理部分21實現(xiàn)的數(shù)據(jù)接收功能。由數(shù)據(jù)發(fā)送部分24提供的數(shù)據(jù)發(fā)送功能及由數(shù)據(jù)接收部分25提供的數(shù)據(jù)接收功能都是通過統(tǒng)一的接口來實現(xiàn)的。在流數(shù)據(jù)處理裝置10中,第一個處理部分13在通過連接管理部分21發(fā)送數(shù)據(jù)到第二個處理部分14時使用數(shù)據(jù)發(fā)送部分24。第二個處理部分14在通過連接管理部分21接收來自第一個處理部分13的數(shù)據(jù)時使用數(shù)據(jù)接收部分25。
下面對數(shù)據(jù)發(fā)送部分24和數(shù)據(jù)接收部分25的具體例子進行說明。例如,在一種情況下流,數(shù)據(jù)處理裝置10是作為運行在特定操作系統(tǒng)(下面簡稱為“OS”)中的多線程系統(tǒng)來實現(xiàn)的。在這種情況下,可將流數(shù)據(jù)處理裝置10設(shè)計成可使用由OS支持的線程間通信功能來設(shè)計。注意,通過向流數(shù)據(jù)處理裝置10的設(shè)計者提供可利用OS功能的系統(tǒng)庫,流數(shù)據(jù)處理裝置10的設(shè)計者可以通過簡單地使用所提供的系統(tǒng)庫,而無需了解該OS操作原則的細節(jié)設(shè)計完成線程間通信的線程。根據(jù)圖1,連接管理部分21可對應(yīng)于OS中支持線程間通信功能的一部分,并且數(shù)據(jù)發(fā)送部分24和數(shù)據(jù)接收部分25對應(yīng)于系統(tǒng)庫中和使用線程間通信功能相關(guān)的一部分。因此,通過利用數(shù)據(jù)發(fā)送部分24和數(shù)據(jù)接收部分25,流數(shù)據(jù)處理裝置10的設(shè)計者能夠設(shè)計第一個處理部分13和第二個處理部分14使之能夠通過連接管理部分21進行數(shù)據(jù)交換,而無需了解連接管理部分21的操作細節(jié)。
在正常操作狀態(tài)下,流數(shù)據(jù)處理裝置的組成部分以上述方式工作。因此流數(shù)據(jù)處理裝置10對所輸入的流數(shù)據(jù)進行兩個步驟的流水線處理。例如,假設(shè)數(shù)據(jù)輸入部分12為存儲MPEG視頻流的存儲設(shè)備;第一個處理部分13為MPEG視頻解碼器;第二個處理設(shè)備14為呈現(xiàn)濾波器;并且數(shù)據(jù)輸出部分15為顯示設(shè)備,流數(shù)據(jù)處理裝置10可通過兩個步驟進行解碼和顯示MPEG視頻流的處理。
在流數(shù)據(jù)處理裝置10中,有時需要改變處理的內(nèi)容,例如,當(dāng)用戶輸入一個命令,或裝置中出現(xiàn)異常時。例如,正如本文所使用的 “改變處理的內(nèi)容”稱之為定位(即,從給定的被處理的數(shù)據(jù)流中的一個不同的位置開始處理),或流數(shù)據(jù)的改變(即,開始處理不同于正在處理的給定數(shù)據(jù)流的另一數(shù)據(jù)流)。
當(dāng)需要改變處理的內(nèi)容時,控制部分11將指示改變處理內(nèi)容的控制信號31輸出到第一個處理部分13,并且與此同時或稍早或稍晚將同樣指示的控制信號32輸入到第二個處理部分14。如果從控制部分11接收到控制信號31,第一個處理部分13通過使用數(shù)據(jù)發(fā)送部分24向連接管理部分21輸出發(fā)送端清除請求41,以刪除存儲在數(shù)據(jù)臨時存儲部分22中的數(shù)據(jù)。類似地,如果從控制部分11接收到控制信號32,第二個處理部分14通過使用數(shù)據(jù)接收部分25向連接管理部分21輸出接收端清除請求42。
基于發(fā)送端清除請求41或接收端清除請求42,連接管理部分21以下列方式工作。連接管理部分21處于正常操作狀態(tài)直到接收到發(fā)送端清除請求41或接收端清除請求42。在正常操作狀態(tài),從第一個處理部分13發(fā)送的數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22,并且從數(shù)據(jù)臨時存儲部分22中讀取將由第二個處理部分14接收的數(shù)據(jù)。如果在正常操作狀態(tài)中接收到發(fā)送端清除請求41,連接管理部分21轉(zhuǎn)換到接收端清除等待狀態(tài),其中,從空數(shù)據(jù)存儲部分23中讀取將由第二個處理部分14接收的數(shù)據(jù)。如果在正常操作狀態(tài)接收到接收端清除請求42,連接管理部分21轉(zhuǎn)換到發(fā)送端清除等待狀態(tài),其中,從第一個處理部分13發(fā)送的數(shù)據(jù)寫入到空數(shù)據(jù)存儲部分23。如果在接收端清除等待狀態(tài)接收到接收端清除請求42或在發(fā)送端清除等待狀態(tài)接收到發(fā)送端清除請求41,連接管理部分21轉(zhuǎn)換到正常操作狀態(tài)。連接管理部分21操作的細節(jié)將在后面說明(參考圖4)。
空數(shù)據(jù)存儲部分23是緩沖器,它可刪除任何寫到上面的數(shù)據(jù),并返回空數(shù)據(jù)給任何嘗試從其中讀取數(shù)據(jù)的設(shè)備。換句話說,任何被寫到空數(shù)據(jù)存儲部分23的數(shù)據(jù)都不會存儲在空數(shù)據(jù)存儲部分23中。即使嘗試從空數(shù)據(jù)存儲部分23中讀取數(shù)據(jù),也只能從空數(shù)據(jù)存儲部分23中讀到空數(shù)據(jù)(即0字節(jié))??諗?shù)據(jù)存儲部分23的一個具體例子是由某些OS支持的零設(shè)備。
在此參考圖2到圖4對流數(shù)據(jù)處理裝置10的操作細節(jié)進行說明。圖2為流程圖,用于說明流數(shù)據(jù)處理裝置在處理停止?fàn)顟B(tài)下指示開始處理時的操作。圖3為流程圖,用于說明流數(shù)據(jù)處理裝置在正常操作狀態(tài)下指示改變處理內(nèi)容時的操作。圖4為流程圖,用于說明連接管理部分的操作。
如果在處理停止?fàn)顟B(tài)下指示開始處理,流數(shù)據(jù)處理裝置10進行圖2所示處理。圖2所示處理在用戶向流數(shù)據(jù)處理裝置10輸入開始處理命令時開始。如果用戶輸入開始處理命令,則控制部分11就接收所輸入的開始處理命令(步驟S101)。然后,控制部分11向第一個處理部分13輸出指示開始處理的控制信號31,并與此同時或稍早或稍晚將同樣指示的控制信號32輸出到第二個處理部分14(步驟S102)。
在執(zhí)行步驟S102后,第一個處理部分13執(zhí)行步驟S111到S114,并且第二個處理部分14執(zhí)行步驟S131到S134。同時,連接管理部分21獨立于第一個處理部分13和第二個處理部分14進行圖4所示在下面說明的處理(步驟S121)。換句話說,在執(zhí)行步驟S102后,第一個處理部分13進行的處理、第二個處理部分14進行的處理及連接管理部分21進行的處理在流數(shù)據(jù)處理裝置10中是并行或并發(fā)的。
第一個處理部分13按如下所述反復(fù)執(zhí)行步驟S111到S114直到它完成對流數(shù)據(jù)的處理。第一個處理部分13從數(shù)據(jù)輸入部分12接收包含在流數(shù)據(jù)中將被處理的數(shù)據(jù)作為輸入(步驟S111)。然后,第一個處理部分13對輸入的數(shù)據(jù)進行特定于第一個處理部分13的處理(步驟S112)。然后,通過使用數(shù)據(jù)發(fā)送部分24,第一個處理部分13發(fā)送處理過的數(shù)據(jù)到連接管理部分21(步驟S113)。然后,第一個處理部分13確定它對流數(shù)據(jù)的處理是否已完成(步驟S114)。如果它確定該處理已完成,第一個處理部分13停止處理。另一方面,如果它確定該處理還未完成,第一個處理部分13繼續(xù)步驟S111。
第二個處理部分14按如下所述反復(fù)執(zhí)行步驟S131到S134直到完成它對流數(shù)據(jù)的處理。通過使用數(shù)據(jù)接收部分25,第二個處理部分14從連接管理部分21接收從第一個處理部分13發(fā)送的數(shù)據(jù)(步驟S131)。然后,第二個處理部分14對接收到的數(shù)據(jù)進行特定于第二個處理部分14的處理(步驟S132)。然后,第二個處理部分14輸出處理過的數(shù)據(jù)到數(shù)據(jù)輸出部分15(步驟S134)。然后,第二個處理部分14確定它對流數(shù)據(jù)的處理是否已完成(步驟S134)。如果它確定該處理已完成,第二個處理部分14停止處理。另一方面,如果它確定該處理還未完成,第二個處理部分14繼續(xù)步驟S131。
如果在正常操作狀態(tài)指示改變處理內(nèi)容,流數(shù)據(jù)處理裝置10進行圖3所示的處理。圖3所示處理在用戶輸入定位命令、流數(shù)據(jù)改變命令,或類似命令時開始。如果用戶輸入定位命令、流數(shù)據(jù)改變命令,或類似命令,則控制部分11就接收輸入的命令(步驟S141)。然后,控制部分11輸出指示開始處理的控制信號31到第一個處理部分13,并與此同時或稍早或稍晚輸出同樣指示的控制信號32到第二個處理部分14(步驟S142)。
在執(zhí)行步驟S142后,第一個處理部分13通過使用數(shù)據(jù)發(fā)送部分24向連接管理部分21輸出發(fā)送端清除請求41(步驟S110),并且第二個處理部分14通過使用數(shù)據(jù)接收部分25向連接管理部分21輸出接收端清除請求42(步驟S130)。此時,發(fā)送端清除請求41和接收端清除請求42之中的哪一個先輸出取決于流數(shù)據(jù)處理裝置10的結(jié)構(gòu)或操作狀態(tài)。
如在圖2中所示的情況,在執(zhí)行步驟S110后,第一個處理部分13重復(fù)執(zhí)行步驟S111到S114。同樣,如在圖2中所示的情況,在執(zhí)行步驟S130后,第二個處理部分14重復(fù)執(zhí)行步驟S131到S134。自此之后,如在圖2中所示的情況,在流數(shù)據(jù)處理裝置10中,第一個處理部分13進行的處理、第二個處理部分14進行的處理及連接管理部分21進行的處理在流數(shù)據(jù)處理裝置10中是并行或并發(fā)的。
如圖4所示,連接管理部分21在正常操作狀態(tài)執(zhí)行步驟S201和S202,在接收端清除等待狀態(tài)(即,接收到發(fā)送端清除請求41后并且直到接收到接收端清除請求42時的存在狀態(tài))執(zhí)行步驟S211到S213,并且在發(fā)送端清除等待狀態(tài)(即,接收到接收端清除請求42后并且直到接收到接收端清除請求41時的存在狀態(tài))執(zhí)行步驟S221到S223。在下面的說明中,從第一個處理部分13發(fā)送的數(shù)據(jù)被稱為“發(fā)送數(shù)據(jù)”,以及由第二個處理部分接收的數(shù)據(jù)被稱為“將被接收的數(shù)據(jù)”。
在正常操作狀態(tài),連接管理部分21選擇數(shù)據(jù)臨時存儲部分22既作為寫發(fā)送數(shù)據(jù)的目的地(以下稱為“發(fā)送數(shù)據(jù)的寫目的地”)又作為讀取將被接收的數(shù)據(jù)的源(以下稱為“將被接收的數(shù)據(jù)的讀取源”)。因此,在正常操作狀態(tài),連接管理部分21將發(fā)送數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22,并且從數(shù)據(jù)臨時存儲部分22讀取將被接收的數(shù)據(jù)(步驟S201)。然后,連接管理部分21確定是否從第一個處理部分13或第二個處理部分14接收到清除請求(步驟S202)。如果已經(jīng)接收到發(fā)送端清除請求41,連接管理部分21繼續(xù)步驟S211;如果已經(jīng)接收到接收端清除請求42,連接管理部分21繼續(xù)步驟S221;如果未接收到任何清除請求,連接管理部分21繼續(xù)步驟S201。
圖5為示意圖,說明了在步驟201發(fā)送或接收數(shù)據(jù)的方式。在圖5中,發(fā)送數(shù)據(jù)的寫入目的地和將被接收的數(shù)據(jù)的讀取源都被設(shè)為數(shù)據(jù)臨時存儲部分22。所說明的數(shù)據(jù)臨時存儲部分22存儲著已從第一個處理部分13發(fā)送出但尚未由第二個處理部分14接收到的三塊數(shù)據(jù)。
參考圖4,如果步驟S202發(fā)現(xiàn)已經(jīng)接收到了發(fā)送端清除請求41,連接管理部分21就刪除存儲在數(shù)據(jù)臨時存儲部分22的數(shù)據(jù)(步驟S211)。然后,連接管理部分21選擇空數(shù)據(jù)存儲部分23作為將被接收的數(shù)據(jù)的讀取源,而且仍然選擇數(shù)據(jù)臨時存儲部分22作為發(fā)送數(shù)據(jù)的寫目的地。因此,在接收端清除等待狀態(tài),連接管理部分21將發(fā)送數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22,并且從空數(shù)據(jù)存儲部分23讀取將被接收的數(shù)據(jù)(步驟S212)。然后,連接管理部分21確定是否已經(jīng)接收到來自第二個處理部分14的接收端清除請求42(步驟S213)。如果,接收到接收端清除請求42,連接管理部分21繼續(xù)步驟S201;否則,控制轉(zhuǎn)到步驟S212。
圖6為示意圖,說明了在步驟212發(fā)送或接收數(shù)據(jù)的方式。在圖6中,發(fā)送數(shù)據(jù)的寫目的地被設(shè)為數(shù)據(jù)臨時存儲部分22,而將被接收的數(shù)據(jù)的讀取源被設(shè)為空數(shù)據(jù)存儲部分23。存儲在數(shù)據(jù)臨時存儲部分22中的任何數(shù)據(jù)都在步驟S221被刪除。在圖6中,所說明的數(shù)據(jù)臨時存儲部分22存儲著已在刪除后但尚未由第二個處理部分14接收到從第一個處理部分13發(fā)送出的三塊數(shù)據(jù)。
當(dāng)連接管理部分21在接收端清除等待狀態(tài),第二個處理部分14將請求連接管理部分21接收第二個處理部分14正在處理的數(shù)據(jù)的其余部分,而不管第一個處理部分13已經(jīng)改變了它的處理的內(nèi)容。然而,當(dāng)連接管理部分21在正常操作狀態(tài)時存儲在數(shù)據(jù)臨時存儲部分22中的“其余的”數(shù)據(jù)已經(jīng)由于連接管理部分21執(zhí)行了步驟S211而被刪除。此外,當(dāng)連接管理部分21為接收端清除等待狀態(tài),第一個處理部分13請求連接管理部分21發(fā)送在改變處理的內(nèi)容之后產(chǎn)生的新數(shù)據(jù),并且因此連接管理部分21將這樣的發(fā)送數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22。因此,若不解決這個問題,第二個處理部分14會錯誤地接收在改變處理的內(nèi)容之后產(chǎn)生的從第一個處理部分13發(fā)送的新數(shù)據(jù),并將這樣的數(shù)據(jù)作為第二個處理部分14正在處理的數(shù)據(jù)的其余部分來處理。作為這個問題的解決方法,如上所述,連接管理部分21在接收端清除等待狀態(tài)設(shè)置將被接收的數(shù)據(jù)的讀取源為空數(shù)據(jù)存儲部分23。作為結(jié)果,當(dāng)連接管理部分21為接收端清除等待狀態(tài)時,第二個處理部分14避免接收任何東西只能接收到空數(shù)據(jù)。因此,上述問題得到解決從而流數(shù)據(jù)處理裝置10不會因此出錯。
參考圖4,如果步驟S202發(fā)現(xiàn)已經(jīng)接收到接收端清除請求42,連接管理部分21刪除存儲在數(shù)據(jù)臨時存儲部分22的數(shù)據(jù)(步驟S221)。然后,連接管理部分21選擇空數(shù)據(jù)存儲部分23作為發(fā)送數(shù)據(jù)的寫入目的地,而且仍然選擇數(shù)據(jù)臨時存儲部分22作為將被接收的數(shù)據(jù)的讀取源。因此,在發(fā)送端清除等待狀態(tài),連接管理部分21將發(fā)送數(shù)據(jù)寫入到空數(shù)據(jù)存儲部分23,并且從數(shù)據(jù)臨時存儲部分22讀取將被接收的數(shù)據(jù)(步驟S222)。然后,連接管理部分21確定是否從第一個處理部分13接收到發(fā)送端清除請求41(步驟S223)。如果,已經(jīng)接收到發(fā)送端清除請求41,連接管理部分21繼續(xù)步驟S201;否則,控制轉(zhuǎn)到步驟S222。
圖7為示意圖,說明了在步驟222發(fā)送或接收數(shù)據(jù)的方式。在圖7中,發(fā)送數(shù)據(jù)的寫入目的地被設(shè)為空數(shù)據(jù)存儲部分23,而將接收的數(shù)據(jù)的讀取源被設(shè)為數(shù)據(jù)臨時存儲部分22。在步驟S221,存儲在數(shù)據(jù)臨時存儲部分22中的任何數(shù)據(jù)都被刪除,并且在數(shù)據(jù)刪除之后從第一個處理部分13發(fā)送的任何數(shù)據(jù)都被寫到空數(shù)據(jù)存儲部分23。作為結(jié)果,在圖7中,數(shù)據(jù)臨時存儲部分22未存儲任何數(shù)據(jù)。
當(dāng)連接管理部分21在發(fā)送端清除等待狀態(tài),第一個處理部分13將請求連接管理部分21發(fā)送第一個處理部分13正在處理的數(shù)據(jù)的其余部分,而不管第二個處理部分14已經(jīng)改變了它的處理的內(nèi)容。然而,第二個處理部分14請求連接管理部分21接收在改變處理的內(nèi)容之后產(chǎn)生的新數(shù)據(jù)。因此,若不解決這個問題,第二個處理部分14會錯誤地接收在第一個處理部分13正在處理的數(shù)據(jù)的其余部分,并將這些數(shù)據(jù)當(dāng)作在改變處理的內(nèi)容之后產(chǎn)生的新數(shù)據(jù)來處理。作為這個問題的解決方法,如上所述,連接管理部分21在發(fā)送端清除等待狀態(tài)設(shè)置發(fā)送數(shù)據(jù)的寫入目的地為空數(shù)據(jù)存儲部分23。作為結(jié)果,當(dāng)連接管理部分21為發(fā)送端清除等待狀態(tài),第二個處理部分14避免接收任何東西只能接收到空數(shù)據(jù)。因此,上述問題得到解決從而流數(shù)據(jù)處理裝置10不會因此出錯。
圖8為表格,說明了連接管理部分2 1的上述操作(圖4)。在表8中,在左上列和右下列中說明的處理為正常操作狀態(tài)進行的處理(步驟S201);在左下列中說明的處理為接收端清除等待狀態(tài)進行的處理(步驟S212);而在右上列中說明的處理為發(fā)送端清除等待狀態(tài)進行的處理(步驟S222)。
如上所述,根據(jù)本實施例中的流數(shù)據(jù)處理裝置,在正常操作狀態(tài),連接管理部分利用數(shù)據(jù)臨時存儲部分作為允許從第一個處理部分(作為發(fā)送端處理部分)發(fā)送的數(shù)據(jù)由第二個處理部分(作為接收端處理部分)接收的緩沖器。如果由于定位或流數(shù)據(jù)的改變需要改變處理的內(nèi)容,第一個處理部分和第二個處理部分各自輸出一個發(fā)送端清除請求和一個接收端清除請求,以響應(yīng)來自控制部分的指令。當(dāng)接收到任一種清除請求時,若在正常操作狀態(tài),連接管理部分刪除存儲在數(shù)據(jù)臨時存儲部分上的任何數(shù)據(jù),若在接收端清除等待狀態(tài)則設(shè)置將被接收的數(shù)據(jù)的讀取源為空數(shù)據(jù)存儲部分,若在發(fā)送端清除等待狀態(tài)則設(shè)置發(fā)送數(shù)據(jù)的寫目的地為空數(shù)據(jù)存儲部分。
因此,當(dāng)改變處理的內(nèi)容時,第二個處理部分不會錯誤地接收到任何在改變處理的內(nèi)容后產(chǎn)生的新數(shù)據(jù)并且將這樣的數(shù)據(jù)作為第二個處理部分14正在處理的數(shù)據(jù)的其余部分來處理,接收到第一個處理部分過去處理的數(shù)據(jù)并且將這樣的數(shù)據(jù)作為在改變處理的內(nèi)容之后產(chǎn)生的新數(shù)據(jù)來處理。因此,通過正確地在多個處理部分之間交換數(shù)據(jù)而且在它們之間實現(xiàn)同步化,流數(shù)據(jù)處理裝置能夠以良好的整體完整性運行。
此外,每個處理部分不僅需要通過輸出清除請求來響應(yīng)來自控制部分的改變處理的內(nèi)容的指令;而且處理部分還可以通過請求數(shù)據(jù)發(fā)送/接收繼續(xù)正確地交換數(shù)據(jù)。因此,每個處理部分能夠正確地進行數(shù)據(jù)交換而不用關(guān)心數(shù)據(jù)的內(nèi)容或與之交換數(shù)據(jù)的另一處理部分的狀態(tài)。作為結(jié)果,每個處理部分的結(jié)構(gòu)得到簡化。更特別地,當(dāng)每個處理部分是以軟件實現(xiàn)時,每個處理部分的軟件結(jié)構(gòu)可以被簡化,從而有利于實現(xiàn)處理部分的軟件組件的設(shè)計。更簡單的軟件結(jié)構(gòu)提供的優(yōu)點是降低程序代碼的數(shù)量,從而提高軟件質(zhì)量。
此外,每個處理部分通過使用統(tǒng)一的接口的方法來實現(xiàn)由數(shù)據(jù)發(fā)送部分的數(shù)據(jù)發(fā)送和由數(shù)據(jù)接收部分提供的數(shù)據(jù)接收功能的交換數(shù)據(jù)。其結(jié)果,每個處理部分的結(jié)構(gòu)進一步得到簡化。當(dāng)每個處理部分是以軟件實現(xiàn)時,每個處理部分的軟件結(jié)構(gòu)可以被進一步簡化,并且每個處理部分的再利用率得到提高。因此,當(dāng)每個處理部分是以軟件實現(xiàn)時,這使得將構(gòu)成每個處理部分的軟件組件移植到另一個系統(tǒng)更加容易。
(第二個實施例)根據(jù)本發(fā)明第一個實施例的流數(shù)據(jù)處理裝置是通過在正常操作狀態(tài)下當(dāng)輸出了發(fā)送端清除請求或接收端清除請求時刪除存儲在數(shù)據(jù)臨時存儲部分的任何數(shù)據(jù)來說明的。另一方面,根據(jù)本發(fā)明第二實施例的流數(shù)據(jù)處理裝置的的特征是如果在正常操作狀態(tài)先輸出了發(fā)送端清除請求,則存儲在數(shù)據(jù)臨時存儲部分中的任何數(shù)據(jù)都不被刪除,并且在接收端清除等待狀態(tài),新數(shù)據(jù)和舊數(shù)據(jù)都存儲在數(shù)據(jù)臨時存儲部分,采用新數(shù)據(jù)和舊數(shù)據(jù)區(qū)分開存儲的方式。
本實施例中的流數(shù)據(jù)處理裝置和第一個實施例中的流數(shù)據(jù)處理裝置有相同的結(jié)構(gòu)(如圖1所示),并且在處理停止?fàn)顟B(tài)指示開始處理(圖2)或在正常操作狀態(tài)指示改變處理內(nèi)容(圖3)時進行與第一個實施例中的流數(shù)據(jù)處理裝置相同的處理。因此,這些方面的任何說明都在本實施例中略去。本實施例中的流數(shù)據(jù)處理裝置與第一個實施例中的流數(shù)據(jù)處理裝置不同之處在于連接管理部分21在接收端清除等待狀態(tài)下的操作。
圖9為流程圖,說明了根據(jù)本發(fā)明第二個實施例的流數(shù)據(jù)處理裝置的連接管理部分的操作。如圖9所示,連接管理部分21在正常操作狀態(tài)執(zhí)行步驟S201和S202;在接收端清除等待狀態(tài)執(zhí)行步驟S231到S233;并且在發(fā)送端清除等待狀態(tài)執(zhí)行步驟S221到S223。由于在正常操作狀態(tài)和發(fā)送端清除等待狀態(tài)進行的處理與第一個實施例中的流數(shù)據(jù)處理裝置進行的處理相同,這部分說明在此略去(見圖4)。在下面的說明中,在已經(jīng)輸出發(fā)送端清除清除41時任何存儲在數(shù)據(jù)臨時存儲部分22中的數(shù)據(jù)將被稱為“舊數(shù)據(jù)”,而從第一個處理部分13發(fā)送的任何數(shù)據(jù)在連接管理部分21處于接收端清除等待狀態(tài)時將被稱為“新數(shù)據(jù)”。在數(shù)據(jù)臨時存儲部分22中存儲舊數(shù)據(jù)的區(qū)域?qū)⒈环Q為“舊數(shù)據(jù)區(qū)域”,而在數(shù)據(jù)臨時存儲部分22中未存儲舊數(shù)據(jù)的區(qū)域?qū)⒈环Q為“新數(shù)據(jù)區(qū)域”。
如圖9所示,當(dāng)步驟S202發(fā)現(xiàn)已經(jīng)接收到發(fā)送端清除請求41時,連接管理部分21繼續(xù)步驟S231而不刪除舊數(shù)據(jù)。在這種情況下,連接管理部分21選擇新數(shù)據(jù)區(qū)域作為發(fā)送數(shù)據(jù)的寫入目的地,并且選擇舊數(shù)據(jù)區(qū)域作為將被接收的數(shù)據(jù)的讀取源。然而,值得注意的是,僅當(dāng)存在任何未讀取的舊數(shù)據(jù)時,舊數(shù)據(jù)區(qū)域才被選擇作為將被接收數(shù)據(jù)的讀取源。一旦不再存在舊數(shù)據(jù),空數(shù)據(jù)存儲部分23就被選擇作為將被接收數(shù)據(jù)的讀取源。因此,在接收端清除等待狀態(tài),連接管理部分21在新數(shù)據(jù)區(qū)域中寫入發(fā)送數(shù)據(jù),并且從舊數(shù)據(jù)區(qū)域讀取將被接收的數(shù)據(jù)(或當(dāng)不存在舊數(shù)據(jù)時,從空數(shù)據(jù)存儲部分23中讀取)(步驟S231)。
接下來,連接管理部分21確定是否接收到來自第二個處理部分14的接收端清除請求42(步驟S232)。如果已經(jīng)接收到接收端清除請求42,連接管理部分21繼續(xù)步驟S233;否則,控制轉(zhuǎn)移到步驟S231。在步驟233,連接管理部分21刪除任何存在的舊數(shù)據(jù)(步驟S233),然后繼續(xù)步驟S201。
圖10和11為示意圖,說明了在步驟S231中發(fā)送或接收數(shù)據(jù)的方式。圖10說明了舊數(shù)據(jù)存在的情況。在圖10中,數(shù)據(jù)臨時存儲部分22存儲兩塊舊數(shù)據(jù)(OLD_DATA5和OLD_DATA6)及一塊新數(shù)據(jù)(NEW_DATA1),這兩種數(shù)據(jù)以它們能夠相互區(qū)分開的方式存儲。如果第一個處理部分13在如圖10所示的狀態(tài)下請求發(fā)送下一塊新數(shù)據(jù),連接管理部分21將該數(shù)據(jù)寫入數(shù)據(jù)臨時存儲部分22中的新數(shù)據(jù)區(qū)域(例如,在新數(shù)據(jù)NEW_DATA1的下一個空檔)。如果第二個處理部分14在如圖10所示的狀態(tài)下請求接收下一塊舊數(shù)據(jù)(OLD_DATA5),連接管理部分21將從數(shù)據(jù)臨時存儲部分22中的舊數(shù)據(jù)區(qū)域中讀取該數(shù)據(jù)并將該數(shù)據(jù)發(fā)送到第二個處理部分14。
圖11說明了舊數(shù)據(jù)不存在的情況。如果在如圖10所示的狀態(tài)下第二個處理部分14請求接收兩塊舊數(shù)據(jù)同時第一個處理部分13請求發(fā)送一塊新的數(shù)據(jù),結(jié)果會出現(xiàn)圖11所示的狀態(tài)。在圖11中,數(shù)據(jù)臨時存儲部分22存儲兩塊新數(shù)據(jù)(NEW_DATA1和NEW_DATA2)。如果第一個處理部分13在如圖11所示的狀態(tài)下請求發(fā)送下一塊新數(shù)據(jù),連接管理部分21將該數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22中的新數(shù)據(jù)區(qū)域(例如,在新數(shù)據(jù)NEW_DATA2的下一個空檔)。如果第二個處理部分14在如圖11所示的狀態(tài)下請求接收下一塊舊數(shù)據(jù),連接管理部分21將從空數(shù)據(jù)存儲部分23中讀取空數(shù)據(jù)。由于流數(shù)據(jù)處理裝置10以塊模式工作,由第二個處理部分14進行的處理將中斷直到數(shù)據(jù)接收完成。
如在第一個實施例中,當(dāng)連接管理部分21在接收端清除等待狀態(tài),第二個處理部分14將請求接收舊數(shù)據(jù),而不管第一個處理部分13已經(jīng)改變了它處理的內(nèi)容。記得在第一個實施例中,連接管理部分21執(zhí)行步驟S211,使得舊數(shù)據(jù)將被刪除。然而在本實施例中,在這一點上舊數(shù)據(jù)不會被刪除。再者,在接收端清除等待狀態(tài),連接管理部分21把發(fā)送數(shù)據(jù)作為新數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分22,并且從數(shù)據(jù)臨時存儲部分22中讀取舊數(shù)據(jù)作為將被接收的數(shù)據(jù)。作為結(jié)果,當(dāng)連接管理部分21在接收端清除等待狀態(tài),第二個處理部分14可以接收任何存在的舊數(shù)據(jù),但在舊數(shù)據(jù)不再存在時只能接收到空數(shù)據(jù)。因此,第二個處理部分14可以正確地接收存儲在數(shù)據(jù)臨時存儲部分22中的舊數(shù)據(jù)并將這些數(shù)據(jù)作為第二個處理部分14正在處理的數(shù)據(jù)的其余部分來處理。
圖12為表格,說明了連接管理部分21的上述操作(圖9)。在表12中,在左上列和右下列中說明的處理為正常操作狀態(tài)所進行的處理(步驟S201);在左下列中說明的處理為接收端清除等待狀態(tài)所進行的處理(步驟S231);而右上列中說明的處理為發(fā)送端清除等待狀態(tài)所進行的處理(步驟S222)。
如上所述,根據(jù)本實施例中的流數(shù)據(jù)處理裝置,在正常操作狀態(tài)或發(fā)送端清除等待狀態(tài),連接管理部分進行與第一個實施例中的流數(shù)據(jù)處理裝置相同的操作。另一方面,在接收端清除等待狀態(tài),當(dāng)已經(jīng)接收到發(fā)送端清除請求時,連接管理部分保留存儲在數(shù)據(jù)臨時存儲部分中的任何數(shù)據(jù),并設(shè)置發(fā)送數(shù)據(jù)的寫入目的地為數(shù)據(jù)臨時存儲部分中的新數(shù)據(jù)區(qū)域,以及設(shè)置將被接收的數(shù)據(jù)的讀取源為數(shù)據(jù)臨時存儲部分中的舊數(shù)據(jù)區(qū)域(或當(dāng)舊數(shù)據(jù)不再存在時為空數(shù)據(jù)存儲部分)。
因此,除了第一個實施例的流數(shù)據(jù)處理裝置提供的優(yōu)點之外,本實施例的流數(shù)據(jù)處理裝置提供的一個優(yōu)點是第二個處理部分可以在輸出發(fā)送端清除請求之后直到輸出接收端清除請求期間對存儲在數(shù)據(jù)臨時存儲部分中舊數(shù)據(jù)進行正確的處理。
如下所述,根據(jù)本發(fā)明的每個實施例的流數(shù)據(jù)處理裝置可能有不同的變體。
上述每個實施例的流數(shù)據(jù)處理裝置是用包含對輸入的流數(shù)據(jù)進行兩個步驟的處理的兩個處理部分來說明的。作為其一種選擇,流數(shù)據(jù)處理裝置可以包括三個或更多的處理部分對輸入的流數(shù)據(jù)進行三個或多個步驟的處理。在這種情況下,流數(shù)據(jù)處理裝置可以通過連接管理部分在任何以及所有的處理部分之間實現(xiàn)數(shù)據(jù)交換。
圖13說明了流數(shù)據(jù)處理裝置的一個變體,對輸入的流數(shù)據(jù)進行三個步驟的處理。圖13所示的流數(shù)據(jù)處理裝置50包括第一個處理部分53、第二個處理部分54及第三個處理部分55,用來對通過數(shù)據(jù)輸入部分52輸入的流數(shù)據(jù)進行三個步驟的處理,并且從數(shù)據(jù)輸出部分56輸出處理結(jié)果。當(dāng)用戶輸入定位命令或類似的命令,控制部分51分別輸出控制信號61、62和63到第一個處理部分53、第二個處理部分54及第三個處理部分55。第一個處理部分53使用數(shù)據(jù)發(fā)送部分24a來發(fā)送數(shù)據(jù)到第二個處理部分54。第二個處理部分54使用數(shù)據(jù)接收部分25a從第一個處理部分53接收數(shù)據(jù)。基于發(fā)送端清除請求41a和接收端清除請求42a,連接管理部分21a對數(shù)據(jù)臨時存儲部分22a和空數(shù)據(jù)存儲部分23a進行數(shù)據(jù)寫和數(shù)據(jù)讀,從而允許從第一個處理部分53發(fā)送的數(shù)據(jù)由第二個處理部分54接收。第二個處理部分54和第三個處理部分55之間的數(shù)據(jù)交換以類似的方式進行。
包含三個或多個處理部分的流數(shù)據(jù)處理裝置并不一定需要通過連接管理部分來實現(xiàn)在任意和所有的處理部分之間的數(shù)據(jù)交換。相反,通過連接管理部分的數(shù)據(jù)交換可以僅在部分處理部分之間實現(xiàn)。例如,在圖13所示的流數(shù)據(jù)處理裝置50中,可以在第一個處理部分53和第二個處理部分54之間通過連接管理部分進行數(shù)據(jù)交換,可以在第二個處理部分54和第三個處理部分55之間進行不涉及連接管理部分的數(shù)據(jù)交換。
雖然上述每個實施例的流數(shù)據(jù)處理裝置都是以工作在塊模式來說明的,流數(shù)據(jù)處理裝置也可以工作在非塊模式,如下所述。進一步作為另一種選擇,流數(shù)據(jù)處理裝置可以構(gòu)建成能夠選擇塊操作模式和非塊操作模式。在那種情況下,可任意地控制由每個處理部分基于該裝置的操作狀態(tài)或類似狀態(tài),使得由每個處理部分所進行的處理可在數(shù)據(jù)接收/發(fā)送等待狀態(tài)中斷或不中斷。
在以非塊模式工作的流數(shù)據(jù)處理裝置中,如果發(fā)送數(shù)據(jù)不能寫入到數(shù)據(jù)臨時存儲部分,或者不能從數(shù)據(jù)臨時存儲部分讀取將要被接收的數(shù)據(jù),連接管理部分馬上向產(chǎn)生發(fā)送數(shù)據(jù)或等待接收數(shù)據(jù)的處理部分發(fā)出出錯的提示。在這種情況下,在通過連接管理部分請求數(shù)據(jù)發(fā)送或接收之后,每個處理部分通過執(zhí)行諸如輪詢或選擇的數(shù)據(jù)處理一直等待直到完成數(shù)據(jù)發(fā)送或接收。因此,即使在等待的過程中,有其它事件發(fā)生,處理部分仍能立即進行和該事件相關(guān)的處理。例如,如果用戶在等待的過程中向控制部分指示中斷處理,處理部分可以立即停止處理以響應(yīng)從控制部分輸出的處理中斷指令。因此,每個處理部分即使處于數(shù)據(jù)發(fā)送/接收等待狀態(tài)仍可以進行和另一個事件相關(guān)的處理。其結(jié)果,當(dāng)用戶輸入了一個指令,流數(shù)據(jù)處理裝置可以立即響應(yīng)該用戶的指令,而無需新激活一個進程來響應(yīng)該指令。
在上述的實施例中,提到數(shù)據(jù)輸入部分12和/或數(shù)據(jù)輸出部分15可以為硬盤或存儲器這樣的存儲設(shè)備。更具體的是,可以構(gòu)建數(shù)據(jù)輸入部分12和/或數(shù)據(jù)輸出部分15來對可移動記錄媒介如存儲器卡寫數(shù)據(jù)或讀數(shù)據(jù)。對包含這樣的數(shù)據(jù)輸入部分12和這樣的數(shù)據(jù)輸出部分15的流數(shù)據(jù)處理裝置,可以將第一個裝置獲得的處理結(jié)果存儲到可移動記錄媒介,從第一個裝置移至該記錄媒介,并加載該記錄媒介到第二個裝置。采用這種方式,第二個裝置能夠繼續(xù)第一個裝置的處理來進行重現(xiàn)流數(shù)據(jù)、進行定位,或類似的處理。
根據(jù)本發(fā)明的流數(shù)據(jù)處理裝置,能夠采用一個處理部分不需關(guān)心其它處理部分的狀態(tài)的方式,在處理部分之間的數(shù)據(jù)發(fā)送或接收。因此,根據(jù)本發(fā)明的流數(shù)據(jù)處理裝置可以作為一種處理流數(shù)據(jù)的設(shè)備使用,例如,音頻數(shù)據(jù)或視頻數(shù)據(jù)的回放設(shè)備。
雖然在此對本發(fā)明進行了詳細的說明,但上面的說明僅為示意性的而非限制性的。應(yīng)理解在不偏離本發(fā)明范圍的前提下可以設(shè)計出大量的其它更改和變體。
權(quán)利要求
1.一種用于對流數(shù)據(jù)進行多步處理的流數(shù)據(jù)處理裝置,所述裝置包括發(fā)送端處理部分(13),用來對流數(shù)據(jù)中獲得的數(shù)據(jù)進行的多步處理中的一步處理,并發(fā)送處理過的數(shù)據(jù);接收端處理部分(14),用來接收從發(fā)送端處理部分發(fā)送的數(shù)據(jù),并對接收到的數(shù)據(jù)進行多步處理中的下一步處理;控制部分(11),用來向發(fā)送端處理部分和接收端處理部分指示處理內(nèi)容的改變;數(shù)據(jù)臨時存儲部分(22),用來臨時存儲從發(fā)送端處理部分發(fā)送的數(shù)據(jù);空數(shù)據(jù)存儲部分(23),用來刪除任何寫到其上的數(shù)據(jù),以響應(yīng)數(shù)據(jù)寫入操作,并且返回空數(shù)據(jù),以響應(yīng)數(shù)據(jù)讀取操作;及連接管理部分(21),用來通過對數(shù)據(jù)臨時存儲部分和空數(shù)據(jù)存儲部分進行數(shù)據(jù)寫入和數(shù)據(jù)讀取從而允許從發(fā)送端處理部分發(fā)送的數(shù)據(jù)被接收端處理部分接收;其特征在于,如果控制部分指示改變處理的內(nèi)容,發(fā)送端處理部分(13)和接收端處理部分(14)分別向連接管理部分輸出發(fā)送端清除請求(41)和接收端清除請求(41);及連接管理部分(21)根據(jù)連接管理部分是否處于正常操作狀態(tài)、在接收到發(fā)送端清除請求并直到接收到接收端清除請求期間的接收端清除等待狀態(tài),或在接收到接收端清除請求并直到接收到發(fā)送端清除請求期間的發(fā)送端清除等待狀態(tài),來切換從發(fā)送端處理部分發(fā)送的數(shù)據(jù)的寫入目的地和由接收端處理部分接收的數(shù)據(jù)的讀取源。
2.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,所述連接管理部分(21)的操作包括選擇數(shù)據(jù)臨時存儲部分作為在正常操作狀態(tài)下寫入操作的目的地和讀取操作的源(201);如果在正常操作狀態(tài)下接收到發(fā)送端清除請求或接收端清除請求,則刪除存儲在數(shù)據(jù)臨時存儲部分中的數(shù)據(jù)(S211,S221);選擇空數(shù)據(jù)存儲部分作為在接收端清除等待狀態(tài)下讀取操作的源(S212);及選擇空數(shù)據(jù)存儲部分作為在發(fā)送端清除等待狀態(tài)下寫入操作的目的地(S222)。
3.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,所述連接管理部分(21)的操作包括選擇數(shù)據(jù)臨時存儲部分作為在正常操作狀態(tài)下寫入操作的目的地和讀取操作的源(S201);如果在正常操作狀態(tài)下接收到接收端清除請求,則刪除存儲在數(shù)據(jù)臨時存儲部分中的數(shù)據(jù)(S221);選擇空數(shù)據(jù)存儲部分作為在發(fā)送端清除等待狀態(tài)下寫入操作的目的地(S222);在接收端清除等待狀態(tài)下,將存儲在數(shù)據(jù)臨時存儲部分中的任何數(shù)據(jù)作為舊數(shù)據(jù),當(dāng)接收到發(fā)送端清除請求時,選擇數(shù)據(jù)臨時存儲部分中未存儲舊數(shù)據(jù)的一個區(qū)域作為寫入操作的目的地,并且選擇數(shù)據(jù)臨時存儲部分中存儲舊數(shù)據(jù)且其中有舊數(shù)據(jù)的一個區(qū)域作為讀取操作的源,并且一旦舊數(shù)據(jù)不再存在時選擇空數(shù)據(jù)存儲部分作為讀取操作的源(S231);及如果在接收端清除等待狀態(tài)下接收到接收端清除請求,則刪除舊數(shù)據(jù)(S233)。
4.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,所述發(fā)送端處理部分(13)和接收端處理部分(14)輸出發(fā)送端清除請求和接收端清除請求并通過使用具有對連接管理部分訪問功能的數(shù)據(jù)發(fā)送/接收部分(24,25)來進行數(shù)據(jù)發(fā)送和接收。
5.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,所述連接管理部分(21)包括如果從發(fā)送端處理部分發(fā)送的數(shù)據(jù)不能寫入數(shù)據(jù)臨時存儲部分,能夠選擇是否立即進行向發(fā)送端處理部分通知錯誤的處理,或進行等待直到有可能將數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分并通知發(fā)送端處理部分將數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分的結(jié)果的處理。
6.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,所述連接管理部分(21)包括如果不能從數(shù)據(jù)臨時存儲部分中讀取將由接收端處理部分接收的數(shù)據(jù),能夠選擇立即進行向接收端處理部分通知錯誤的處理,或進行等待直到有可能從數(shù)據(jù)臨時存儲部分中讀取數(shù)據(jù)并通知接收端處理部分從數(shù)據(jù)臨時存儲部分中讀取數(shù)據(jù)的結(jié)果的處理。
7.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,進一步包括通過其輸入流數(shù)據(jù)的數(shù)據(jù)輸入部分(12)。
8.如權(quán)利要求7所述的流數(shù)據(jù)處理裝置(10),其特征在于,所述數(shù)據(jù)輸入部分(12)從可移動記錄媒介輸入流數(shù)據(jù)。
9.如權(quán)利要求1所述的流數(shù)據(jù)處理裝置(10),其特征在于,進一步包括用來輸出對流數(shù)據(jù)進行多步處理的結(jié)果的數(shù)據(jù)輸出部分(15)。
10.如權(quán)利要求9所述的流數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)輸出部分(15)輸出對流數(shù)據(jù)進行多步處理的結(jié)果到可移動記錄媒介。
全文摘要
在正常操作狀態(tài)下,連接管理部分(21)將第一個處理部分(13)發(fā)送來的數(shù)據(jù)寫入到數(shù)據(jù)臨時存儲部分(22),并從數(shù)據(jù)臨時存儲部分(22)讀取將由第二個處理部分(14)接收的數(shù)據(jù)。一旦接收到指示改變處理內(nèi)容的控制信號(31)和(32)時,第一個處理部分(13)和第二個處理部分(14)分別輸出一個發(fā)送端清除請求(41)和一個接收端清除請求(42)。在接收到發(fā)送端清除請求(41)之后及直到接收到接收端清除請求(42)時,連接管理部分(21)從空數(shù)據(jù)存儲部分(23)讀數(shù)據(jù);在接收到接收端清除請求(42)之后并且直到接收到發(fā)送端清除請求(41)時,連接管理部分(21)將數(shù)據(jù)寫入到空數(shù)據(jù)存儲部分(23)。
文檔編號H04N5/00GK1489071SQ0315777
公開日2004年4月14日 申請日期2003年8月28日 優(yōu)先權(quán)日2002年8月30日
發(fā)明者稻見聰, 前田茂則, 宮崎秋弘, 小野正, 關(guān)根福太郎, J·弗格勒, G·普法伊弗, 高木利匡, ㄒ糧, 則, 匡, 太郎, 弘, 窶 申請人:松下電器產(chǎn)業(yè)株式會社