一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法及系統(tǒng)的制作方法
【專利摘要】本申請公開了一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法及系統(tǒng),該方法包括:步驟S11:將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);步驟S12:查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果是,則進入步驟S13,如果否,則進入步驟S14;步驟S13:通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理;步驟S14:查詢是否有PCIE DMA任務(wù)請求,如果是,則通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理。本申請能夠避免單純依賴輪詢機制所帶來的帶寬利用率低的缺點,充分利用了DDR SDRAM的帶寬。
【專利說明】
一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及視頻圖像技術(shù)領(lǐng)域,特別涉及一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法及系統(tǒng)。【背景技術(shù)】
[0002]當(dāng)前,為了適應(yīng)視頻圖像技術(shù)的發(fā)展,市面上出現(xiàn)了多路視頻采播系統(tǒng),這種系統(tǒng)對圖像數(shù)據(jù)實時采集后的傳輸和處理性能提出了很高的要求。尤其是高分辨率、高頻幀相機的廣泛使用,使得高帶寬需求越加迫切。在對這些海量圖像數(shù)據(jù)進行實時采集的過程中, 緩存是必不可少的組成部分,例如現(xiàn)在比較常用的DDR SDRAM(即雙倍速率同步動態(tài)隨機存儲器)?,F(xiàn)有多路視頻采播系統(tǒng)中的DDR SDRAM通常采用輪詢機制作為緩存機制,這樣使得帶寬利用率比較低。
[0003]綜上所述可以看出,如何提高DDR SDRAM緩存過程中的帶寬利用率是目前亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的在于提供一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法及系統(tǒng),提高了DDR SDRAM緩存過程中的帶寬利用率。其具體方案如下:
[0005]—種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,包括:
[0006]步驟S11:將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);
[0007]步驟S12:查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果是,則進入步驟 S13,如果否,則進入步驟S14;
[0008]步驟S13:將所述請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀態(tài),并通知 FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟S11;
[0009]步驟S14:查詢是否有PCIE DMA任務(wù)請求,如果否,則進入步驟S12,如果是,則將所述請求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀態(tài),并通知PCIE DMA端接口控制狀態(tài)機, 對PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟S11。
[0010]優(yōu)選的,所述空閑狀態(tài)為ARBITRATER_IDLE狀態(tài),所述第一請求服務(wù)狀態(tài)為 VIDAUD_SERVE狀態(tài),所述第二請求服務(wù)狀態(tài)為PCIE_SERVE狀態(tài)。[〇〇11 ]優(yōu)選的,所述通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理的過程,包括:
[0012]發(fā)出 vidaud_serve_request 命令,以通知所述 FrameStore_Channel 端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理。[〇〇13] 優(yōu)選的,所述通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理的過程,包括:
[0014] 發(fā)出pcie_serve_request命令,以通知所述PCIE DMA端接口控制狀態(tài)機,對PCIEDMA任務(wù)請求進行處理。[〇〇15] 優(yōu)選的,所述FrameStore_Channel端接口控制狀態(tài)機對FrameStore視音頻任務(wù)請求進行處理的過程,包括:[〇〇16] 步驟S21:獲取FrameStore視音頻任務(wù)請求,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)由初始的VID_IDLE狀態(tài)更改為VID_GET_ADDR狀態(tài);[〇〇17]步驟S22:在VID_GET_ADDR狀態(tài)中,輸出當(dāng)前需要處理的通道,然后將所述 FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_SERVE_START狀態(tài),在該狀態(tài)中, 判斷當(dāng)前通道的服務(wù)類型,若當(dāng)前通道的服務(wù)類型為寫,則將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_WFIF0_SE狀態(tài),并進入步驟S23;若當(dāng)前通道的服務(wù)類型為讀,則將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_RFIF0_SE狀態(tài), 并進入步驟S24;[〇〇18] 步驟S23:完成相應(yīng)的寫操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài),然后進入步驟S25;[0〇19] 步驟S24:完成相應(yīng)的讀操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài),然后進入步驟S25;
[0020] 步驟S25:在VID_UPDATE_ADDR狀態(tài)中,輸出地址更新信號,更新當(dāng)前通道的基地址,然后將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_IDLE狀態(tài)。[0〇21 ]優(yōu)選的,所述完成相應(yīng)的寫操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)的過程,包括:[〇〇22] 在VID_WFIF0_SE狀態(tài)中,當(dāng)確定wrfifo中存在足夠空間后,將所述FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_WFIFO_WRITE狀態(tài),然后將相應(yīng)的數(shù)據(jù)寫入 wrfifo,寫入完成后將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_ CMDWF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDWF_WRITE狀態(tài),寫入空間存儲命令后,將所述 FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài);[0〇23]所述完成相應(yīng)的讀操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)的過程,包括:
[0024] 在VID_RFIF0_SE狀態(tài)中,當(dāng)確定“^€〇中存在足夠空間后,將所述?抑11163如代_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDRF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDRF_ WRITE狀態(tài),寫入空間存儲命令后,將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_RFIF0_READ狀態(tài),然后將相應(yīng)的數(shù)據(jù)從rdfifo中讀取出來,讀取完成后將所述 FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)。[〇〇25] 優(yōu)選的,所述PCIE DMA端接口控制狀態(tài)機對PCIE DMA任務(wù)請求進行處理的過程, 包括:
[0026]步驟S31:獲取PCIE DMA任務(wù)請求,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)由初始的 PCIE_SERVE_IDLE 狀態(tài)更改為 PCIE_SERVE_START 狀態(tài);
[0027]步驟S32:在PCIE_SERVE_START狀態(tài)中,判斷PCIE DMA任務(wù)請求的類型;若PCIE DMA任務(wù)請求為寫請求,則將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為WFIF0_SE狀態(tài),并進入步驟S33;若PCIE DMA任務(wù)請求為讀請求,則將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為RFIFO_SE狀態(tài),并進入步驟S34;
[0028]步驟S33:完成相應(yīng)的寫操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE 狀態(tài);
[0029]步驟S34:完成相應(yīng)的讀操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE 狀態(tài)。
[0030]優(yōu)選的,所述完成相應(yīng)的寫操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài)的過程,包括:[〇〇31] 在WFIF0_SE狀態(tài)中,當(dāng)確定wrfifo中存在足夠空間后,則將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為WFIF0_WRITE狀態(tài),然后將相應(yīng)的數(shù)據(jù)寫入wrfifo,寫入完成后將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDWF_SE狀態(tài),并在確定CMDfif〇中存在空間存儲命令后,將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDWF_WRITE狀態(tài),寫入空間存儲命令后,將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài); [〇〇32]所述完成相應(yīng)的讀操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE狀態(tài)的過程,包括:[〇〇33] 在RFIF0_SE狀態(tài)中,當(dāng)確定rdfifo中存在足夠空間后,將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDRF_SE狀態(tài),并在確定CMDf ifo中存在空間存儲命令后,將所述 PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDRF_WRITE狀態(tài),寫入空間存儲命令后,將所述 PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為RFIF0_READ狀態(tài),然后將相應(yīng)的數(shù)據(jù)從rdf if 〇中讀取出來,讀取完成后將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE 狀態(tài)。
[0034]本發(fā)明還公開了一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁系統(tǒng),包括狀態(tài)設(shè)置模塊、第一請求查詢模塊、第一請求處理模塊、第二請求查詢模塊和第二請求處理模塊;其中,
[0035]所述狀態(tài)設(shè)置模塊,用于將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);[0〇36]所述第一請求查詢模塊,用于查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求, 如果是,則通知所述第一請求處理模塊啟動工作;如果否,則通知所述第二請求查詢模塊啟動工作;[〇〇37]所述第一請求處理模塊,用于將所述請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀態(tài),并通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理,并當(dāng)本次處理完成后,通知所述狀態(tài)設(shè)置模塊啟動工作;
[0038] 所述第二請求查詢模塊,用于查詢是否有PCIE DMA任務(wù)請求,如果否,則通知所述第一請求查詢模塊啟動工作,如果是,則通知所述第二請求處理模塊啟動工作;[〇〇39]所述第二請求處理模塊,用于將所述請求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀態(tài),并通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成后,通知所述狀態(tài)設(shè)置模塊啟動工作。
[0040]本發(fā)明進一步公開了一種基于PCIe接口的多路視頻采播系統(tǒng),包括前述的緩存仲裁系統(tǒng)。[0041 ]本發(fā)明中,緩存仲裁方法包括:步驟SI 1:將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài); 步驟S12:查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果是,則進入步驟S13,如果否,則進入步驟S14;步驟S13:將請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀態(tài),并通知 FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟SI 1;步驟S14:查詢是否有PCIE DMA任務(wù)請求,如果否,則進入步驟 S12,如果是,則將請求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀態(tài),并通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟SI 1??梢姡?本發(fā)明根據(jù)請求類型的不同,相應(yīng)地選擇不同的狀態(tài)機進行請求響應(yīng),也即,當(dāng)請求為 FrameStore視音頻任務(wù)請求時,則利用FrameStore_Channel端接口控制狀態(tài)機對該請求進行處理,當(dāng)請求為PCIE DMA任務(wù)請求時,則利用PCIE DMA端接口控制狀態(tài)機對該請求進行處理。由此可見,本發(fā)明通過將FrameStore_Channe 1端接口控制狀態(tài)機中關(guān)于數(shù)據(jù)通道間的輪詢仲裁機制和PCIE DMA端接口控制狀態(tài)機中關(guān)于PCIE DMA的優(yōu)先級仲裁機制進行結(jié)合,能夠避免單純依賴輪詢機制所帶來的帶寬利用率低的缺點,充分利用了DDR SDRAM的帶寬,提高了系統(tǒng)的吞吐量,同時也有利于提高系統(tǒng)的擴展性?!靖綀D說明】
[0042]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0043]圖1為本發(fā)明實施例公開的一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法流程圖;[〇〇44]圖2為本發(fā)明實施例公開的一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁系統(tǒng)結(jié)構(gòu)示意圖。【具體實施方式】[〇〇45]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0046]本發(fā)明實施例公開了一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,參見圖1所示,該方法包括:
[0047]步驟S11:將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);[〇〇48] 步驟S12:查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果是,則進入步驟 S13,如果否,則進入步驟S14;
[0049]步驟S13:將請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀態(tài),并通知 FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟S11;
[0050]步驟S14:查詢是否有PCIE DMA任務(wù)請求,如果否,則進入步驟S12,如果是,則將請求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀態(tài),并通知PCIE DMA端接口控制狀態(tài)機,對 PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟S11。[0051 ] 可以理解的是,上述FrameStore視音頻任務(wù)請求和PCIE DMA任務(wù)請求是通過請求仲裁狀態(tài)機進行接收的。
[0052] 需要說明的是,上述FrameStore_Channel端接口控制狀態(tài)機具體是指 FrameStore_Serve_StateMachine狀態(tài)機,上述PCIE DMA端接口控制狀態(tài)機具體是指Pcie_ DMA_Serve_StateMachine 狀態(tài)機。[〇〇53] 另外,上述空閑狀態(tài)為ARBITRATER_IDLE狀態(tài),第一請求服務(wù)狀態(tài)為VIDAUD_SERVE 狀態(tài),第二請求服務(wù)狀態(tài)為PCIE_SERVE狀態(tài)。
[0054]可見,本發(fā)明實施例根據(jù)請求類型的不同,相應(yīng)地選擇不同的狀態(tài)機進行請求響應(yīng),也即,當(dāng)請求為FrameStore視音頻任務(wù)請求時,貝lj利用FrameStore_Channel端接口控制狀態(tài)機對該請求進行處理,當(dāng)請求為PCIE DMA任務(wù)請求時,則利用PCIE DMA端接口控制狀態(tài)機對該請求進行處理。由此可見,本發(fā)明實施例通過將FrameStore_Channel端接口控制狀態(tài)機中關(guān)于數(shù)據(jù)通道間的輪詢仲裁機制和PCIE DMA端接口控制狀態(tài)機中關(guān)于PCIE DMA 的優(yōu)先級仲裁機制進行結(jié)合,能夠避免單純依賴輪詢機制所帶來的帶寬利用率低的缺點, 充分利用了DDR SDRAM的帶寬,提高了系統(tǒng)的吞吐量,同時也有利于提高系統(tǒng)的擴展性。
[0055]本發(fā)明實施例公開了一種具體的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,相對于上一實施例,本實施例對技術(shù)方案作了進一步的說明和優(yōu)化。具體的:[〇〇56] 上一實施例步驟S13中,通知FrameStore_Channel端接口控制狀態(tài)機,對 FrameStore視音頻任務(wù)請求進行處理的過程,包括:發(fā)出vidaud_serve_request命令,以通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理。
[0057] 其中,上述FrameStore_Channel端接口控制狀態(tài)機對FrameStore視音頻任務(wù)請求進行處理的過程,包括如下步驟S21?S25,具體為:[〇〇58] 步驟S21:獲取FrameStore視音頻任務(wù)請求,并將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)由初始的VID_IDLE狀態(tài)更改為VID_GET_ADDR狀態(tài);[〇〇59] 步驟S22:在VID_GET_ADDR狀態(tài)中,輸出當(dāng)前需要處理的通道,然后將FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_SERVE_START狀態(tài),在該狀態(tài)中,判斷當(dāng)前通道的服務(wù)類型,若當(dāng)前通道的服務(wù)類型為寫,則將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_WFIF0_SE狀態(tài),并進入步驟S23;若當(dāng)前通道的服務(wù)類型為讀,則將 FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_RFIF0_SE狀態(tài),并進入步驟S24;
[0060] 步驟S23:完成相應(yīng)的寫操作,并將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài),然后進入步驟S25;[〇〇61 ] 步驟S24:完成相應(yīng)的讀操作,并將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài),然后進入步驟S25;[〇〇62] 步驟S25:在VID_UPDATE_ADDR狀態(tài)中,輸出地址更新信號,更新當(dāng)前通道的基地址,然后將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_IDLE狀態(tài)。
[0063] 具體的,上述步驟S23中,完成相應(yīng)的寫操作,并將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)的過程,具體包括:
[0064]在VID_WFIF0_SE狀態(tài)中,當(dāng)確定wrf if〇中存在足夠空間后,將FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_WFIF0_WRITE狀態(tài),然后將相應(yīng)的數(shù)據(jù)寫入 wrfif 〇,寫入完成后將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDWF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDWF_WRITE狀態(tài),寫入空間存儲命令后,將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)。
[0065]進一步,上述步驟S24中,完成相應(yīng)的讀操作,并將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)的過程,具體包括:
[0066]在VID_RFIF0_SE狀態(tài)中,當(dāng)確定rdfifo中存在足夠空間后,將FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDRF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDRF_WRITE狀態(tài),寫入空間存儲命令后,將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_ RFIF0_READ狀態(tài),然后將相應(yīng)的數(shù)據(jù)從“^化中讀取出來,讀取完成后將?以11165如代_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)。[〇〇67]另外,上一實施例步驟S14中,通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理的過程,包括:發(fā)出pcie_serve_request命令,以通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理。[〇〇68] 其中,PCIE DMA端接口控制狀態(tài)機對PCIE DMA任務(wù)請求進行處理的過程,包括如下步驟S31?S34,具體為:
[0069]步驟S31:獲取PCIE DMA任務(wù)請求,并將PCIE DMA端接口控制狀態(tài)機的狀態(tài)由初始的 PCIE_SERVE_IDLE 狀態(tài)更改為 PCIE_SERVE_START 狀態(tài);
[0070]步驟S32:在PCIE_SERVE_START狀態(tài)中,判斷PCIE DMA任務(wù)請求的類型;若PCIE DMA任務(wù)請求為寫請求,則將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為WFIF0_SE狀態(tài),并進入步驟S33;若PCIE DMA任務(wù)請求為讀請求,則將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 RFIF0_SE狀態(tài),并進入步驟S34;
[0071]步驟S33:完成相應(yīng)的寫操作,并將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE 狀態(tài);[〇〇72]步驟S34:完成相應(yīng)的讀操作,并將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE 狀態(tài)。
[0073]具體的,上述步驟S33中,完成相應(yīng)的寫操作,并將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài)的過程,包括:[〇〇74]在WFI F0_SE狀態(tài)中,當(dāng)確定wr f i f 〇中存在足夠空間后,則將PC IE DMA端接口控制狀態(tài)機的狀態(tài)更改為WFIF0_WRITE狀態(tài),然后將相應(yīng)的數(shù)據(jù)寫入wrfifo,寫入完成后將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDWF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDWF_WRITE狀態(tài),寫入空間存儲命令后, 將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài)。[〇〇75]進一步的,上述步驟S34中,完成相應(yīng)的讀操作,并將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài)的過程,包括:[〇〇76]在RFIF0_SE狀態(tài)中,當(dāng)確定rdfifo中存在足夠空間后,將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDRF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDRF_WRITE狀態(tài),寫入空間存儲命令后,將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為RFIF0_READ狀態(tài),然后將相應(yīng)的數(shù)據(jù)從rdfifo中讀取出來,讀取完成后將PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài)。
[0077]相應(yīng)的,本發(fā)明實施例公開了一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁系統(tǒng),參見圖2所示,該系統(tǒng)包括狀態(tài)設(shè)置模塊21、第一請求查詢模塊22、第一請求處理模塊23、第二請求查詢模塊24和第二請求處理模塊25;其中,[〇〇78]狀態(tài)設(shè)置模塊21,用于將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);[0〇79]第一請求查詢模塊22,用于查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果是,則通知第一請求處理模塊23啟動工作;如果否,則通知第二請求查詢模塊24啟動工作;
[0080]第一請求處理模塊23,用于將請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀態(tài), 并通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理, 并當(dāng)本次處理完成后,通知狀態(tài)設(shè)置模塊21啟動工作;[〇〇811 第二請求查詢模塊24,用于查詢是否有PCIE DMA任務(wù)請求,如果否,則通知第一請求查詢模塊22啟動工作,如果是,則通知第二請求處理模塊25啟動工作;[〇〇82]第二請求處理模塊25,用于將請求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀態(tài), 并通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成后, 通知狀態(tài)設(shè)置模塊21啟動工作。
[0083]可見,本發(fā)明實施例根據(jù)請求類型的不同,相應(yīng)地選擇不同的狀態(tài)機進行請求響應(yīng),也即,當(dāng)請求為FrameStore視音頻任務(wù)請求時,貝lj利用FrameStore_Channel端接口控制狀態(tài)機對該請求進行處理,當(dāng)請求為PCIE DMA任務(wù)請求時,則利用PCIE DMA端接口控制狀態(tài)機對該請求進行處理。由此可見,本發(fā)明實施例通過將FrameStore_Channel端接口控制狀態(tài)機中關(guān)于數(shù)據(jù)通道間的輪詢仲裁機制和PCIE DMA端接口控制狀態(tài)機中關(guān)于PCIE DMA 的優(yōu)先級仲裁機制進行結(jié)合,能夠避免單純依賴輪詢機制所帶來的帶寬利用率低的缺點, 充分利用了DDR SDRAM的帶寬,提高了系統(tǒng)的吞吐量,同時也有利于提高系統(tǒng)的擴展性。
[0084]進一步的,本發(fā)明實施例還公開了一種基于PCIe接口的多路視頻采播系統(tǒng),包括前述公開的緩存仲裁系統(tǒng)。[〇〇85]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0086]以上對本發(fā)明所提供的一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【主權(quán)項】
1.一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,包括:步驟S11:將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);步驟S12:查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果是,則進入步驟S13, 如果否,則進入步驟S14;步驟S1 3:將所述請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀態(tài),并通知 FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理,并當(dāng)本 次處理完成后,進入步驟S11;步驟S14:查詢是否有PCIE DMA任務(wù)請求,如果否,則進入步驟S12,如果是,則將所述請 求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀態(tài),并通知PCIE DMA端接口控制狀態(tài)機,對 PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成后,進入步驟S11。2.根據(jù)權(quán)利要求1所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述 空閑狀態(tài)為ARBITRATER_IDLE狀態(tài),所述第一請求服務(wù)狀態(tài)為VIDAUD_SERVE狀態(tài),所述第二 請求服務(wù)狀態(tài)為PCIE_SERVE狀態(tài)。3.根據(jù)權(quán)利要求2所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述 通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處理的過 程,包括:發(fā)出vidaud_serve_request命令,以通知所述FrameStore_Channel端接口控制狀態(tài) 機,對FrameStore視音頻任務(wù)請求進行處理。4.根據(jù)權(quán)利要求2所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述 通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理的過程,包括:發(fā)出pcie_serve_request命令,以通知所述PCIE DMA端接口控制狀態(tài)機,對PCIE DMA 任務(wù)請求進行處理。5.根據(jù)權(quán)利要求3所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述 FrameStore_Channel端接口控制狀態(tài)機對FrameStore視音頻任務(wù)請求進行處理的過程,包 括:步驟S21:獲取FrameStore視音頻任務(wù)請求,并將所述FrameStore_Channel端接口控制 狀態(tài)機的狀態(tài)由初始的VID_IDLE狀態(tài)更改為VID_GET_ADDR狀態(tài);步驟S22:在VID_GET_ADDR狀態(tài)中,輸出當(dāng)前需要處理的通道,然后將所述FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_SERVE_START狀態(tài),在該狀態(tài)中,判斷當(dāng)前通 道的服務(wù)類型,若當(dāng)前通道的服務(wù)類型為寫,則將所述FrameStore_Channel端接口控制狀 態(tài)機的狀態(tài)變更為VID_WFIFO_SE狀態(tài),并進入步驟S23;若當(dāng)前通道的服務(wù)類型為讀,則將 所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_RFIFO_SE狀態(tài),并進入步驟 S24;步驟S23:完成相應(yīng)的寫操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài) 變更為VID_UPDATE_ADDR狀態(tài),然后進入步驟S25;步驟S24:完成相應(yīng)的讀操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài) 變更為VID_UPDATE_ADDR狀態(tài),然后進入步驟S25;步驟S25:在VID_UPDATE_ADDR狀態(tài)中,輸出地址更新信號,更新當(dāng)前通道的基地址,然 后將FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_IDLE狀態(tài)。6.根據(jù)權(quán)利要求5所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述完成相應(yīng)的寫操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更 為VID_UPDATE_ADDR狀態(tài)的過程,包括:在VID_WFIFO_SE狀態(tài)中,當(dāng)確定wrf if〇中存在足夠空間后,將所述FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_WFIFO_WRITE狀態(tài),然后將相應(yīng)的數(shù)據(jù)寫入 wrfifo,寫入完成后將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_ CMDWF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將所述FrameStore_Channel端接 口控制狀態(tài)機的狀態(tài)變更為VID_CMDWF_WRITE狀態(tài),寫入空間存儲命令后,將所述 FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài);所述完成相應(yīng)的讀操作,并將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更 為VID_UPDATE_ADDR狀態(tài)的過程,包括:在VID_RFIFO_SE狀態(tài)中,當(dāng)確定rdfifo中存在足夠空間后,將所述FrameStore_ Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDRF_SE狀態(tài),并在確定CMDfifo中存在空間 存儲命令后,將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_CMDRF_ WRITE狀態(tài),寫入空間存儲命令后,將所述FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變 更為VID_RFIFO_READ狀態(tài),然后將相應(yīng)的數(shù)據(jù)從rdfifo中讀取出來,讀取完成后將所述 FrameStore_Channel端接口控制狀態(tài)機的狀態(tài)變更為VID_UPDATE_ADDR狀態(tài)。7.根據(jù)權(quán)利要求4所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述 PCIE DMA端接口控制狀態(tài)機對PCIE DMA任務(wù)請求進行處理的過程,包括:步驟S31:獲取PCIE DMA任務(wù)請求,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)由初始 的 PCIE_SERVE_IDLE 狀態(tài)更改為 PCIE_SERVE_START 狀態(tài);步驟S32:在PCIE_SERVE_START狀態(tài)中,判斷PCIE DMA任務(wù)請求的類型;若PCIE DMA任 務(wù)請求為寫請求,則將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為WFIF0_SE狀態(tài),并進 入步驟S33;若PCIE DMA任務(wù)請求為讀請求,則將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更 改為RFIF0_SE狀態(tài),并進入步驟S34;步驟S33:完成相應(yīng)的寫操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE 狀態(tài);步驟S34:完成相應(yīng)的讀操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為 PCIE_SERVE_IDLE 狀態(tài)。8.根據(jù)權(quán)利要求7所述的應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁方法,其特征在于,所述完成相應(yīng)的寫操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_ SERVE_IDLE狀態(tài)的過程,包括:在WFIF0_SE狀態(tài)中,當(dāng)確定wrfifo中存在足夠空間后,則將所述PCIEDMA端接口控制狀 態(tài)機的狀態(tài)更改為WFIFO_WRITE狀態(tài),然后將相應(yīng)的數(shù)據(jù)寫入wrfifo,寫入完成后將所述 PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDWF_SE狀態(tài),并在確定CMDfifo中存在空間存 儲命令后,將所述PCIEDMA端接口控制狀態(tài)機的狀態(tài)更改為CMDWF_WRITE狀態(tài),寫入空間存 儲命令后,將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài);所述完成相應(yīng)的讀操作,并將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_ SERVE_IDLE狀態(tài)的過程,包括:在RFIFO_SE狀態(tài)中,當(dāng)確定rdf if 〇中存在足夠空間后,將所述PCIE DMA端接口控制狀 態(tài)機的狀態(tài)更改為CMDRF_SE狀態(tài),并在確定CMDfifo中存在空間存儲命令后,將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為CMDRF_WRITE狀態(tài),寫入空間存儲命令后,將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為RFIFO_READ狀態(tài),然后將相應(yīng)的數(shù)據(jù)從rdf if 〇中讀取 出來,讀取完成后將所述PCIE DMA端接口控制狀態(tài)機的狀態(tài)更改為PCIE_SERVE_IDLE狀態(tài)。9.一種應(yīng)用于多路視頻采播系統(tǒng)的緩存仲裁系統(tǒng),其特征在于,包括狀態(tài)設(shè)置模塊、第 一請求查詢模塊、第一請求處理模塊、第二請求查詢模塊和第二請求處理模塊;其中,所述狀態(tài)設(shè)置模塊,用于將請求仲裁狀態(tài)機的狀態(tài)設(shè)為空閑狀態(tài);所述第一請求查詢模塊,用于查詢當(dāng)前周期是否有FrameStore視音頻任務(wù)請求,如果 是,則通知所述第一請求處理模塊啟動工作;如果否,則通知所述第二請求查詢模塊啟動工 作;所述第一請求處理模塊,用于將所述請求仲裁狀態(tài)機的狀態(tài)更改為第一請求服務(wù)狀 態(tài),并通知FrameStore_Channel端接口控制狀態(tài)機,對FrameStore視音頻任務(wù)請求進行處 理,并當(dāng)本次處理完成后,通知所述狀態(tài)設(shè)置模塊啟動工作;所述第二請求查詢模塊,用于查詢是否有PCIE DMA任務(wù)請求,如果否,則通知所述第一 請求查詢模塊啟動工作,如果是,則通知所述第二請求處理模塊啟動工作;所述第二請求處理模塊,用于將所述請求仲裁狀態(tài)機的狀態(tài)更改為第二請求服務(wù)狀 態(tài),并通知PCIE DMA端接口控制狀態(tài)機,對PCIE DMA任務(wù)請求進行處理,并當(dāng)本次處理完成 后,通知所述狀態(tài)設(shè)置模塊啟動工作。10.—種基于PCIe接口的多路視頻采播系統(tǒng),其特征在于,包括如權(quán)利要求9所述的緩 存仲裁系統(tǒng)。
【文檔編號】H04N7/18GK105959622SQ201610274368
【公開日】2016年9月21日
【申請日】2016年4月28日
【發(fā)明人】董培強
【申請人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司