因特網(wǎng)視頻的解決方案(07-100)
并行成幀器接收10位未成幀數(shù)據(jù)字,輸出10位成幀數(shù)據(jù)。按照ASI規(guī)范,成幀器在5字節(jié)窗口中尋找2個(gè)逗號(hào)特征字符,若能檢測(cè)到第2個(gè)逗號(hào)特征字符,數(shù)據(jù)成幀并設(shè)定已成幀標(biāo)志。成幀數(shù)據(jù)送入10b/8b譯碼器。10b/8b碼是直流平衡的,有較好的電纜均衡性,并提供0或1的最短運(yùn)行長(zhǎng)度。譯碼器具有8路10位編碼輸入通道,因而最多可恢復(fù)8個(gè)ASI數(shù)據(jù)流。
本文引用地址:http://www.ex-cimer.com/article/91925.htm多流數(shù)據(jù)存儲(chǔ)/捕獲:譯碼器輸出送入stream-in(1:8)模塊。較低級(jí)stream-in模塊從單一數(shù)據(jù)流串行地接納4個(gè)順序的有效8位并行數(shù)據(jù),并將它轉(zhuǎn)換為32位并行輸出數(shù)據(jù),只有有效的(非零)字節(jié)加以存儲(chǔ)。每個(gè)輸入數(shù)據(jù)是以27MHz(37ns)裝載的,因而每個(gè)stream-in模塊輸出32位字的準(zhǔn)備就緒時(shí)間為148ns。輸出的讀出速率為100MHz,stream-in模塊總共有8塊,分別從模塊1掃描至模塊8,這樣8個(gè)數(shù)據(jù)流可在80ns內(nèi)處理完畢,小于上述的148ns。當(dāng)掃描器發(fā)現(xiàn)32位字已可使用,就將它送入512×32位塊RAM。倘若模塊輸出未有32位準(zhǔn)備就緒,則掃描下一個(gè)模塊,如此往復(fù)循環(huán)。控制邏輯為每個(gè)數(shù)據(jù)流生成讀指針和寫指針。當(dāng)每個(gè)stream-in模塊在輸出寄存器準(zhǔn)備好32位字,寫指針就加1。某個(gè)數(shù)據(jù)流讀指針是否加1則取決于512×32位塊RAM的后端要讀取該數(shù)據(jù),事實(shí)上,每個(gè)數(shù)據(jù)流的讀指針是較大地址的一個(gè)子集,也就是指示較大DDR存儲(chǔ)器的當(dāng)前數(shù)據(jù)流,下一個(gè)單元將會(huì)用到這個(gè)地址。
多流數(shù)據(jù)裝入DDR存儲(chǔ)器:塊RAM分成8節(jié),每節(jié)256個(gè)字節(jié)。每節(jié)保留來自上面每個(gè)模塊的數(shù)據(jù)。控制邏輯掃描塊RAM,看8節(jié)存儲(chǔ)器中任何一個(gè)是否是半滿的,換句話說,至少有128字節(jié)。如果是半滿的,表示數(shù)據(jù)已準(zhǔn)備就緒可以從該節(jié)讀出,并寫入DDR存儲(chǔ)器。在此之前,32位數(shù)據(jù)是以管線字和非管線字讀出的,共同組成64位字。64位字先寫入CORE Generator FIFO。控制邏輯相應(yīng)地監(jiān)視所有8節(jié)塊RAM以及送入FIFO的輸出數(shù)據(jù)。當(dāng)FIFO含有128字節(jié)數(shù)據(jù),就向仲裁器發(fā)送一個(gè)請(qǐng)求,要求輸入數(shù)據(jù)流進(jìn)入DDR內(nèi)存。一旦從DDR多端口內(nèi)存控制器接收到確認(rèn)信號(hào),F(xiàn)IFO以16個(gè)連續(xù)周期成組地輸出64位數(shù)據(jù),進(jìn)入多端口存儲(chǔ)器控制器,最后移入較大的DDR存儲(chǔ)器。寫入地址就是上節(jié)已描述的擴(kuò)展指針?biāo)甘镜牡刂贰?/p>
ASI發(fā)送器接口
發(fā)送器實(shí)現(xiàn)視頻的回放,圖2簡(jiǎn)要地列出了從存儲(chǔ)器回放ASI流所需的物理層方框,包括回放速率控制、回放地址生成器、以及多數(shù)據(jù)流并—串化。
回放速率控制:存儲(chǔ)在DDR存儲(chǔ)器中的數(shù)據(jù)是通過多端口存儲(chǔ)器控制器(MPMC2)的讀接口讀出的。速度控制邏輯掃描8個(gè)數(shù)據(jù)流,以確定哪個(gè)輸出已準(zhǔn)備就緒來送出數(shù)據(jù),回放速率控制內(nèi)置8個(gè)48位累加器(更精細(xì)的速率控制),速率是從處理器程序裝載的。每個(gè)累加器的溢出速率是由累加的值確定的。當(dāng)數(shù)據(jù)流溢出時(shí),溢出標(biāo)志記錄在一個(gè)寄存器中。掃描器監(jiān)視8個(gè)寄存器的輸出,以確定計(jì)數(shù)器是否已達(dá)到最大計(jì)數(shù)值。一旦發(fā)現(xiàn)某個(gè)數(shù)據(jù)流已變成“1”,就激活輸出流數(shù)據(jù)請(qǐng)求。
回放地址生成器和回放緩沖器:請(qǐng)求寄存器的非零值將流地址與存儲(chǔ)器請(qǐng)求控制塊中的回放流地址指針加1。該地址和讀請(qǐng)求一起送到DDR存儲(chǔ)器。仲裁器最終確定是否從DDR存儲(chǔ)器讀取數(shù)據(jù)。經(jīng)仲裁器允許后,一個(gè)讀請(qǐng)求標(biāo)志發(fā)送至MPMC2。當(dāng)接收到來自MPMC2的確認(rèn)信號(hào)后,則從DDR存儲(chǔ)器的地址處取出數(shù)據(jù),送至輸出FIFO,數(shù)據(jù)是以連續(xù)的16個(gè)64位字發(fā)送的。當(dāng)流地址與存儲(chǔ)器請(qǐng)求控制塊接收到DDR存儲(chǔ)器的確認(rèn)信號(hào),該數(shù)據(jù)流的請(qǐng)求計(jì)數(shù)器減1。然后,請(qǐng)求掃描器繼續(xù)掃描下一個(gè)數(shù)據(jù)流,如此往復(fù)循環(huán)。每個(gè)輸出流具有一個(gè)單獨(dú)的16×16 FIFO,當(dāng)數(shù)據(jù)流請(qǐng)求時(shí),由DDR存儲(chǔ)器填充。
仲裁邏輯
仲裁邏輯是一個(gè)獨(dú)立的、少位數(shù)邏輯單元。它跟蹤stream-ill邏輯與DDR存儲(chǔ)器之間的數(shù)據(jù)以及DDR存儲(chǔ)器與stream-out邏輯之間的數(shù)據(jù)。該控制塊接收來自strean-in的寫請(qǐng)求、寫數(shù)據(jù)和寫地址;也接收stream-out送來的讀請(qǐng)求、讀數(shù)據(jù)和讀地址。在未發(fā)現(xiàn)讀或?qū)懻?qǐng)求時(shí),仲裁邏輯通知MPMC2中的DDR存儲(chǔ)器,從存儲(chǔ)器讀出數(shù)據(jù)或?qū)?shù)據(jù)寫入存儲(chǔ)器。寫和讀請(qǐng)求同時(shí)發(fā)生時(shí),寫請(qǐng)求有更的優(yōu)先權(quán)。由于MPMC2是每個(gè)端口單地址結(jié)構(gòu),該控制邏輯還起到DDR存儲(chǔ)器地址的多路開關(guān)作用,共享讀出與寫入。
千兆位系統(tǒng)參改設(shè)計(jì)(GSRD)
GSRD是實(shí)現(xiàn)IP基傳輸協(xié)議(如ICP或UDP)的一個(gè)高性能設(shè)計(jì)。它的內(nèi)部設(shè)置了高性能的嵌入式三態(tài)以太網(wǎng)MAC和嵌入式處理器。該設(shè)計(jì)充分利用MPMCP功能,在PPC 405處理器指令和PLB數(shù)據(jù)接口與兩個(gè)端口之間分配存儲(chǔ)器帶寬。每個(gè)端口都內(nèi)置了雙通道動(dòng)態(tài)存儲(chǔ)器存取(DMA)引擎來重新調(diào)整數(shù)據(jù),GSRD的一個(gè)端口連接千兆位MAC或三態(tài)以太網(wǎng)MAC外設(shè),以太網(wǎng)外設(shè)和DMA引擎兩者都是由PPC 405處理器的設(shè)備控制寄存器(DCR)控制的。其余的DMA端口供參改系統(tǒng)的附加外設(shè)使用。
事實(shí)表明,GSRD可進(jìn)行高性能的UDP處理。設(shè)計(jì)特性讓處理器僅執(zhí)行協(xié)議和控制功能,但不參與有效負(fù)載數(shù)據(jù)路徑,而讓DMA引擎完成數(shù)據(jù)傳送。數(shù)據(jù)調(diào)整和校驗(yàn)及有效負(fù)載為軟件實(shí)現(xiàn)零拷貝功能提供了必要的支持,讓設(shè)計(jì)實(shí)現(xiàn)在IP基協(xié)議與用戶數(shù)據(jù)接口之間的高性能橋接。
MPMC2
MPMC2內(nèi)核是GSRD的一個(gè)重要部件(圖3)。MPMC2通過實(shí)現(xiàn)跨端口并行處理,減少了總線仲裁,提高了系統(tǒng)級(jí)業(yè)務(wù)流量。此外,與之緊密相關(guān)的DMA引擎實(shí)現(xiàn)了對(duì)存儲(chǔ)器高帶寬訪問,并降低了資源利用率。
本設(shè)計(jì)中,MPMC2允許32位DDR存儲(chǔ)器資源共亨5個(gè)以上的獨(dú)立接口(最多可達(dá)8個(gè))。3個(gè)MPMC2端口通過PLB至MPMC2接口模塊連接至PP405處理器的PLB口,完成MPMC2與高速緩存之間的數(shù)據(jù)交易,MMC處理兩者之間的交換信號(hào)和時(shí)鐘同步;一個(gè)端口連接出端口接口模塊(PIM),實(shí)現(xiàn)進(jìn)/出視頻流之間的數(shù)據(jù)傳送;另一個(gè)接口連接至通信直接存儲(chǔ)器訪問控制器(CDMAC),訪問以太網(wǎng)MAC和本地?cái)?shù)據(jù)。這樣,通過訪問同一個(gè)共享的存儲(chǔ)器資源來實(shí)現(xiàn):
數(shù)據(jù)的快速寫入與讀出;
- 多個(gè)ADI輸入流送至多個(gè)輸出流;
- 在TCP連接時(shí),多個(gè)ASI輸入送至IP目的地;
- IP上多個(gè)數(shù)據(jù)流鏈接至ASI輸出;
- 多個(gè)IP鏈接輸入流在重新映射后送至IP輸出流;
- 基于Pro-MPEG COP 7的FEC支持。
評(píng)論