[發(fā)明專利]一種任意字節(jié)長度拼接緩存的實現(xiàn)方法和系統(tǒng)有效
| 申請?zhí)枺?/td> | 202011024544.3 | 申請日: | 2020-09-25 |
| 公開(公告)號: | CN112153054B | 公開(公告)日: | 2023-04-07 |
| 發(fā)明(設(shè)計)人: | 王培培;陳乃闊;吳之光;張明瑞;牛曉威 | 申請(專利權(quán))人: | 超越科技股份有限公司 |
| 主分類號: | H04L67/568 | 分類號: | H04L67/568;H04L67/01;H04L69/06 |
| 代理公司: | 北京連和連知識產(chǎn)權(quán)代理有限公司 11278 | 代理人: | 劉小峰;楊帆 |
| 地址: | 250104 山東省*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 任意 字節(jié) 長度 拼接 緩存 實現(xiàn) 方法 系統(tǒng) | ||
一種任意字節(jié)長度拼接緩存的實現(xiàn)方法,包括:根據(jù)拼接緩存中的讀指針和寫指針判斷拼接緩存的狀態(tài);響應(yīng)于拼接緩存的狀態(tài)為可寫,提取輸入數(shù)據(jù)中的有效數(shù)據(jù),并將該有效數(shù)據(jù)存入拼接緩存;響應(yīng)于拼接緩存的狀態(tài)為可讀,將拼接緩存中的數(shù)據(jù)讀出并輸出。本發(fā)明還公開了一種任意字節(jié)長度拼接緩存的實現(xiàn)系統(tǒng)。本發(fā)明所公開的任意字節(jié)長度拼接緩存的實現(xiàn)方法和系統(tǒng),有效解決了因傳輸協(xié)議位寬轉(zhuǎn)換以及數(shù)據(jù)較小時導(dǎo)致的無效數(shù)據(jù)占位影響數(shù)據(jù)處理性能的問題。
技術(shù)領(lǐng)域
本專利涉及FPGA的高速接口解析技術(shù)領(lǐng)域,具體是一種任意字段長度拼接緩存的實現(xiàn)方法和系統(tǒng)。
背景技術(shù)
隨著信息產(chǎn)業(yè)的飛速發(fā)展,在各個領(lǐng)域誕生了許多高速接口協(xié)議,如以太網(wǎng)協(xié)議,證券交易協(xié)議,雷達(dá)數(shù)據(jù)傳輸協(xié)議等等。這些協(xié)議目前軟件處理起來較為緩慢,而用硬件處理速度會有大幅提升,其中FPGA因其靈活性,在這些領(lǐng)域中有著廣泛的應(yīng)用。但這些協(xié)議在設(shè)計之初,并沒有考慮到用硬件進(jìn)行解析,其設(shè)計的很多字段并不是64bit或者32bit對齊的,例如萬兆網(wǎng)絡(luò)的總線位寬可以設(shè)置為64bit或32bit;40G網(wǎng)絡(luò)的總線位寬可以配置成128bit或者256bit;PCIe?Gen3?x8接口的總線位寬和單lane的速率相關(guān),如果單lane速率為2.5GT/s,總線位寬為128bit,如果單lane速率為8GT/s,總線位寬為256bit。因輸入和輸出位寬的不同,在實際數(shù)據(jù)傳輸中,有大量因數(shù)據(jù)量較小,無法有效利用完整的數(shù)據(jù)位寬,存在高位補零等占位傳輸?shù)臄?shù)據(jù)。大量的無效占位數(shù)據(jù)對于使用CPU處理數(shù)據(jù)的“軟解析”應(yīng)用程序來講,對性能的消耗是巨大的,而當(dāng)這些應(yīng)用程序的使用場景大都為數(shù)據(jù)中心服務(wù)器時,因此對整個服務(wù)器集群來說將面臨巨大的性能壓力。
因此,亟需一種可以快速處理無效數(shù)據(jù)使之拼接成連續(xù)有效數(shù)據(jù)的方法和裝置,可適配與各種常見不同數(shù)據(jù)位寬的輸入輸出協(xié)議的數(shù)據(jù)拼接。大大降低因軟件解析所占用的CPU性能壓力。提高系統(tǒng)整體性能。
發(fā)明內(nèi)容
基于以上目的,本發(fā)明提出了一種任意字節(jié)長度拼接緩存的實現(xiàn)方法,包括以下步驟:
根據(jù)讀指針和寫指針判斷拼接緩存的狀態(tài);
響應(yīng)于拼接緩存的狀態(tài)為可寫,提取輸入數(shù)據(jù)中的有效數(shù)據(jù),并將該有效數(shù)據(jù)存入拼接緩存;
響應(yīng)于拼接緩存的狀態(tài)為可讀,將拼接緩存中的數(shù)據(jù)讀出并輸出。
在一些實施方式中,所述拼接緩存最小不低于第一預(yù)定長度,且最大不超過第二預(yù)定長度。
在一些實施方式中,方法還包括:
每向拼接緩存寫入1字節(jié)數(shù)據(jù),寫指針加1;
每從拼接緩存讀取1字節(jié)數(shù)據(jù),讀指針加1;
響應(yīng)于寫指針加1,記錄拼接緩存已存入數(shù)據(jù)個數(shù)的寄存器加1;
響應(yīng)于讀指針加1,記錄拼接緩存已存入數(shù)據(jù)個數(shù)的寄存器減1。
在一些實施方式中,所述判斷拼接緩存的狀態(tài)還包括:
響應(yīng)于所述寄存器的值小于第二預(yù)定長度,拼接緩存狀態(tài)為可讀可寫;
響應(yīng)于所述寄存器的值為0,則拼接緩存狀態(tài)僅為可寫;
響應(yīng)于所述寄存器的值等于第二預(yù)定長度,則拼接緩存狀態(tài)僅為可讀。
在一些實施方式中,所述提取輸入數(shù)據(jù)的有效數(shù)據(jù)并存入拼接緩存包括:根據(jù)輸入數(shù)據(jù)的掩碼,將輸入數(shù)據(jù)與掩碼對應(yīng)位置的數(shù)據(jù)存入拼接緩存。
在一些實施方式中,還包括:每向拼接緩存中每存入1字節(jié)數(shù)據(jù),將寫指針的值加1。
在一些實施方式中,所述將拼接緩存中的數(shù)據(jù)讀出并輸出包括:
將拼接緩存中的數(shù)據(jù)以字節(jié)為單位讀出;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于超越科技股份有限公司,未經(jīng)超越科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011024544.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





