国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng)及方法與流程

      文檔序號(hào):12015616閱讀:265來(lái)源:國(guó)知局
      一種高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng)及方法與流程
      本發(fā)明屬于計(jì)算機(jī)集成電路設(shè)計(jì)技術(shù)領(lǐng)域,涉及一種高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng)及方法。

      背景技術(shù):
      目前,計(jì)算機(jī)和集成電路技術(shù)高速發(fā)展,計(jì)算機(jī)內(nèi)部芯片和芯片之間的直接互聯(lián)往往基于報(bào)文傳輸?shù)拇惺礁咚冱c(diǎn)對(duì)點(diǎn)連接協(xié)議,采用差分信號(hào)與專門的時(shí)鐘進(jìn)行傳輸,在速度、帶寬、每個(gè)針腳的帶寬、功耗等規(guī)格上具有非常高的要求。在市場(chǎng)上高端的處理器中,高速總線互聯(lián)方式使得每個(gè)串行高速通道上速率可以達(dá)到6.4Gb/s,CPU與CPU之間的高速互聯(lián)總線采用的點(diǎn)對(duì)點(diǎn)設(shè)計(jì),包括一對(duì)線路,分別負(fù)責(zé)數(shù)據(jù)發(fā)送和接收,峰值帶寬可達(dá)96GB/s。在如此高的傳輸帶寬下,即使將數(shù)據(jù)從串行方式轉(zhuǎn)換到并行方式,使其位寬增大,依舊要求芯片內(nèi)部核心邏輯在較高的時(shí)鐘頻率下工作。對(duì)于高速互聯(lián)總線帶寬高,速率高的特性,一些FPGA原型系統(tǒng)往往由于芯片資源,布局布線等方面的限制無(wú)法達(dá)到高速互聯(lián)總線所要求的時(shí)鐘頻率,出現(xiàn)總線頻率和FPGA芯片邏輯頻率不匹配的問(wèn)題。隨著設(shè)計(jì)規(guī)模的不斷擴(kuò)大,一個(gè)系統(tǒng)中往往含有數(shù)個(gè)時(shí)鐘。多時(shí)鐘帶來(lái)的一個(gè)問(wèn)題就是如何設(shè)計(jì)異步時(shí)鐘之間的接口電路。異步FIFO(FirstInFirstOut)是解決這個(gè)問(wèn)題一種簡(jiǎn)便、快捷的解決方案。使用異步FIFO可以在兩個(gè)不同時(shí)鐘系統(tǒng)之間快速而方便地傳輸實(shí)時(shí)數(shù)據(jù)。在網(wǎng)絡(luò)接口、圖像處理等方面,異步FIFO得到了廣泛的應(yīng)用。異步FIFO是一種先進(jìn)先出的電路,使用在需要產(chǎn)時(shí)數(shù)據(jù)接口的部分,用來(lái)存儲(chǔ)、緩沖在兩個(gè)異步時(shí)鐘之間的數(shù)據(jù)傳輸。在高速互聯(lián)總線中定義了一種特殊格式的報(bào)文,即空?qǐng)?bào)文,空?qǐng)?bào)文不攜帶任何數(shù)據(jù)信息,且不會(huì)引起上層邏輯的任何操作,僅僅只是作為總線空閑時(shí)的數(shù)據(jù)標(biāo)識(shí),不影響鏈路上的邏輯行為。當(dāng)且僅當(dāng)高速互聯(lián)總線上沒(méi)有協(xié)議報(bào)文或數(shù)據(jù)報(bào)文需要傳輸,亦無(wú)需進(jìn)行鏈路訓(xùn)練握手時(shí),空?qǐng)?bào)文作為數(shù)據(jù)在總線上傳輸,標(biāo)志著總線當(dāng)前正處于空閑狀態(tài)。將空?qǐng)?bào)文從總線上進(jìn)行解析和過(guò)濾,只保留攜帶有效信息的報(bào)文,能有效降低總數(shù)據(jù)流量,將過(guò)濾后的數(shù)據(jù)流做時(shí)鐘域轉(zhuǎn)換后能夠降低其時(shí)鐘頻率,從而降低芯片內(nèi)部核心邏輯時(shí)鐘頻率。

      技術(shù)實(shí)現(xiàn)要素:
      為解決上述問(wèn)題,本發(fā)明的目的在于提供一種高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng)及方法,將空?qǐng)?bào)文從總線上進(jìn)行解析和過(guò)濾,只保留攜帶有效信息的報(bào)文,從而降低芯片內(nèi)部核心邏輯時(shí)鐘頻率,降低了頻率和資源的要求,從而解決了FPGA驗(yàn)證系統(tǒng)局限性的問(wèn)題,提高了高速互聯(lián)總線的設(shè)計(jì)靈活性。為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:一種高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng),包括譯碼模塊、連接譯碼模塊的冒泡模塊、連接冒泡模塊的合并模塊、以及連接合并模塊的轉(zhuǎn)換模塊;其中,譯碼模塊按照點(diǎn)對(duì)點(diǎn)連接協(xié)議定義的報(bào)文編碼對(duì)總線上接收端的并行數(shù)據(jù)進(jìn)行譯碼,以單獨(dú)標(biāo)志標(biāo)記每個(gè)報(bào)文是否有效;冒泡模塊根據(jù)譯碼模塊輸出的位向量對(duì)總線并行數(shù)據(jù)進(jìn)行重新排序,若報(bào)文類型為空?qǐng)?bào)文,則進(jìn)行冒泡操作,使空?qǐng)?bào)文之后的有效數(shù)據(jù)報(bào)文位置前移,排除空?qǐng)?bào)文位置上的空穴;合并模塊的主要是將已經(jīng)做完冒泡的有效報(bào)文數(shù)據(jù)與等待隊(duì)列數(shù)據(jù)進(jìn)行合并;轉(zhuǎn)換模塊通過(guò)異步FIFO將FPGA芯片內(nèi)部分為完全獨(dú)立的讀時(shí)鐘域和寫時(shí)鐘域,可以同時(shí)進(jìn)行讀寫操作。進(jìn)一步地,所述譯碼模塊包括有譯碼器;所述譯碼器設(shè)有一個(gè)或多個(gè)使能控制輸入端,用來(lái)控制允許譯碼或禁止譯碼。進(jìn)一步地,所述譯碼器的譯碼邏輯采用報(bào)文操作符逐位比較的方法進(jìn)行報(bào)文譯碼,解析出總線數(shù)據(jù)中的空?qǐng)?bào)文和有效數(shù)據(jù)報(bào)文。進(jìn)一步地,冒泡模塊依次比較相鄰的兩個(gè)報(bào)文,若前面的報(bào)文是空?qǐng)?bào)文,且后面的報(bào)文是有效數(shù)據(jù)報(bào)文,則將后面的報(bào)文位置前移1,否則不操作;從并行數(shù)據(jù)總線上的第1個(gè)報(bào)文和第2個(gè)報(bào)文開(kāi)始,反復(fù)迭代,直至比較最后兩個(gè)報(bào)文,完成冒泡的整個(gè)過(guò)程。進(jìn)一步地,合并模塊將已經(jīng)做完冒泡的有效報(bào)文數(shù)據(jù)與等待隊(duì)列數(shù)據(jù)進(jìn)行合并,并根據(jù)合并后隊(duì)列的長(zhǎng)度L判斷是否達(dá)到閾值,若達(dá)到則進(jìn)行填裝操作,將合并后的數(shù)據(jù)寫入異步FIFO,否則將合并后的數(shù)據(jù)存放在等待隊(duì)列中,等待下一筆冒泡數(shù)據(jù)進(jìn)行合并。進(jìn)一步地,轉(zhuǎn)換模塊的異步FIFO包含有一個(gè)獨(dú)立的讀端口和寫端口的RAM,讀端口和寫端口各擁有一個(gè)計(jì)數(shù)器,共有兩個(gè)計(jì)數(shù)器,產(chǎn)生相互獨(dú)立的讀寫地址。本法明的另一技術(shù)方案為:一種高速互聯(lián)總線的報(bào)文過(guò)濾方法,包括如下步驟:對(duì)高速互聯(lián)總線上傳輸?shù)臄?shù)據(jù)進(jìn)行譯碼,解析譯碼總線上傳輸?shù)臄?shù)據(jù),分析并丟棄其中無(wú)效的空?qǐng)?bào)文,只保留有效數(shù)據(jù)報(bào)文;對(duì)剩余的有效數(shù)據(jù)報(bào)文進(jìn)行重新排序和合并;通過(guò)冒泡的方式排除空?qǐng)?bào)文位置上的空穴,組成全部有效的并行數(shù)據(jù);將過(guò)濾后且經(jīng)過(guò)重新排序的數(shù)據(jù)寫入異步FIFO進(jìn)行跨時(shí)鐘域轉(zhuǎn)換,從高頻轉(zhuǎn)換到低頻,與FPGA芯片內(nèi)部邏輯時(shí)鐘頻率匹配。進(jìn)一步地,通過(guò)專門的譯碼邏輯對(duì)總線上的報(bào)文進(jìn)行譯碼,每個(gè)報(bào)文以單獨(dú)標(biāo)志位標(biāo)記是否有效,全部標(biāo)志位組成數(shù)據(jù)總線的有效信息位向量。進(jìn)一步地,通過(guò)數(shù)據(jù)總線有效信息位向量識(shí)別總線上的數(shù)據(jù)空穴,將排在空穴后的有效數(shù)據(jù)報(bào)文前移,通過(guò)冒泡的方式排除空穴,重新排序后所有有效數(shù)據(jù)報(bào)文無(wú)縫相連。進(jìn)一步地,將有效數(shù)據(jù)填裝到異步FIFO中,將總線數(shù)據(jù)從傳輸總線上的高頻時(shí)鐘域轉(zhuǎn)換到芯片內(nèi)部核心邏輯使用的低頻時(shí)鐘域。相較于現(xiàn)有技術(shù),本發(fā)明高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng)及方法通過(guò)對(duì)高速互聯(lián)總線上傳輸?shù)臄?shù)據(jù)進(jìn)行譯碼,保留有效數(shù)據(jù)報(bào)文,過(guò)濾其中的無(wú)效信息,并對(duì)過(guò)濾后的數(shù)據(jù)流通過(guò)異步FIFO做時(shí)鐘域轉(zhuǎn)換,將其從高速互聯(lián)總線的高頻時(shí)鐘域轉(zhuǎn)換到FPGA芯片核心邏輯的低頻時(shí)鐘域,降低了頻率和資源的要求,從而解決了FPGA驗(yàn)證系統(tǒng)局限性的問(wèn)題,提高了高速互聯(lián)總線的設(shè)計(jì)靈活性。通過(guò)降低FPGA原型系統(tǒng)的風(fēng)險(xiǎn)和難度,縮短了產(chǎn)品的驗(yàn)證周期,提高了芯片投片成功率。附圖說(shuō)明圖1是本法明高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng)的模塊原理圖;圖2是本發(fā)明的譯碼模塊譯碼邏輯示意圖;圖3是本發(fā)明的譯碼位向量示意圖;圖4是本發(fā)明的冒泡操作示意圖;圖5是本發(fā)明的轉(zhuǎn)換模塊原理框圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所示,本發(fā)明一種高速互聯(lián)總線的報(bào)文過(guò)濾系統(tǒng),包括譯碼模塊、連接譯碼模塊的冒泡模塊、連接冒泡模塊的合并模塊、以及連接合并模塊的轉(zhuǎn)換模塊。其中,譯碼模塊按照點(diǎn)對(duì)點(diǎn)連接協(xié)議定義的報(bào)文編碼對(duì)總線上接收端的并行數(shù)據(jù)進(jìn)行譯碼,以單獨(dú)標(biāo)志標(biāo)記每個(gè)報(bào)文是否有效;冒泡模塊根據(jù)譯碼模塊輸出的位向量對(duì)總線并行數(shù)據(jù)進(jìn)行重新排序,若報(bào)文類型為空?qǐng)?bào)文,則進(jìn)行冒泡操作,使空?qǐng)?bào)文之后的有效數(shù)據(jù)報(bào)文位置前移,排除空?qǐng)?bào)文位置上的空穴;合并模塊的主要功能是將已經(jīng)做完冒泡的有效報(bào)文數(shù)據(jù)與等待隊(duì)列數(shù)據(jù)進(jìn)行合并;轉(zhuǎn)換模塊通過(guò)異步FIFO將FPGA芯片內(nèi)部分為兩個(gè)完全獨(dú)立的時(shí)鐘域,即讀時(shí)鐘域和寫時(shí)間域,可以同時(shí)進(jìn)行讀寫操作。譯碼模塊的譯碼功能由專門的譯碼器實(shí)現(xiàn),譯碼器是一種具有“翻譯”功能的邏輯電路,能將輸入二進(jìn)制代碼的各種狀態(tài),按照其原意翻譯成對(duì)應(yīng)的輸出信號(hào)。譯碼器設(shè)有一個(gè)和多個(gè)使能控制輸入端,又稱為片選端,用來(lái)控制允許譯碼或禁止譯碼。芯片在高速互聯(lián)總線的接收端口對(duì)經(jīng)過(guò)串并轉(zhuǎn)換之后的并行數(shù)據(jù)進(jìn)行處理,每筆并行數(shù)據(jù)中的每個(gè)報(bào)文的操作碼被送到譯碼器中譯碼,譯碼器根據(jù)互聯(lián)總線協(xié)議中定義的報(bào)文編碼“翻譯”出每個(gè)報(bào)文的類型。位向量產(chǎn)生邏輯根據(jù)譯碼結(jié)果產(chǎn)生有效位向量,并將并行數(shù)據(jù)以及對(duì)應(yīng)的位向量送往冒泡模塊做下一級(jí)處理。圖1所示為本發(fā)明一實(shí)施例譯碼模塊的邏輯圖,譯碼邏輯采用報(bào)文操作符(Opcode)逐位比較的方法進(jìn)行報(bào)文譯碼,解析出總線數(shù)據(jù)中的空?qǐng)?bào)文和有效數(shù)據(jù)報(bào)文。譯碼邏輯主要由異或門和與門構(gòu)成,其輸出共有32個(gè),每對(duì)輸入分別對(duì)應(yīng)一位標(biāo)準(zhǔn)報(bào)文操作碼Ii和一位總線報(bào)文操作碼Si,分別做Ii?=Si的比較操作,當(dāng)且僅當(dāng)I1-N=S1-N時(shí),譯碼成功,輸出報(bào)文類型。圖2所示為譯碼模塊的位向量,位向量每一位指示總線中報(bào)文類型,“1”表示有效數(shù)據(jù)報(bào)文,“0”表示空?qǐng)?bào)文,總線寬度W=位向量寬度n*報(bào)文長(zhǎng)度L。冒泡模塊的冒泡操作(BubbleOperation)為:依次比較相鄰的兩個(gè)報(bào)文,若前面的報(bào)文是空?qǐng)?bào)文,且后面的報(bào)文是有效數(shù)據(jù)報(bào)文,則將后面的報(bào)文位置前移1,否則不操作。從并行數(shù)據(jù)總線上的第1個(gè)報(bào)文和第2個(gè)報(bào)文開(kāi)始,反復(fù)迭代,直至比較最后兩個(gè)報(bào)文,完成冒泡的整個(gè)過(guò)程,使有效數(shù)據(jù)報(bào)文之間無(wú)空?qǐng)?bào)文,能夠無(wú)縫相連。圖3所示描述了冒泡操作中將空?qǐng)?bào)文在總線中的空穴排出,有效數(shù)據(jù)報(bào)文位置前移的過(guò)程。將總線上的數(shù)據(jù)分成若干組,依次比較相鄰的兩個(gè)報(bào)文,將有效報(bào)文放在前面,空?qǐng)?bào)文放在后面。即在第一趟:首先比較組內(nèi)第1個(gè)報(bào)文和組內(nèi)第2個(gè)報(bào)文,將有效報(bào)文放在前,空?qǐng)?bào)文放在后。然后比較組內(nèi)第2個(gè)報(bào)文和組內(nèi)第3個(gè)報(bào)文,將有效報(bào)文放在前,空?qǐng)?bào)文放在后,如此繼續(xù),直至比較組內(nèi)最后兩個(gè)報(bào)文,將有效報(bào)文放在前,空?qǐng)?bào)文放在后。至此第一趟結(jié)束,完成各組的冒泡。在第二趟:從第一對(duì)組(第1組和第2組)開(kāi)始比較,將有效報(bào)文放在前,空?qǐng)?bào)文放在后,一直比較到最后一組(第N組和第N-1組),第二趟結(jié)束,完成每?jī)尚〗M的冒泡。如此下去,重復(fù)以上過(guò)程,直至最終完成排序。合并模塊的主要功能是將已經(jīng)做完冒泡的有效報(bào)文數(shù)據(jù)與等待隊(duì)列數(shù)據(jù)進(jìn)行合并,并根據(jù)合并后隊(duì)列的長(zhǎng)度L判斷是否達(dá)到閾值,若達(dá)到則進(jìn)行填裝操作,將合并后的數(shù)據(jù)寫入異步FIFO,否則將合并后的數(shù)據(jù)存放在等待隊(duì)列中,等待下一筆冒泡數(shù)據(jù)進(jìn)行合并。轉(zhuǎn)換模塊通過(guò)異步FIFO將FPGA芯片內(nèi)部分為兩個(gè)完全獨(dú)立的時(shí)鐘域--讀時(shí)鐘域和寫時(shí)間域,異步FIFO的存儲(chǔ)介質(zhì)為一塊雙端口RAM,可以同時(shí)進(jìn)行讀寫操作。在寫時(shí)鐘域,由寫地址產(chǎn)生邏輯產(chǎn)生寫控制信號(hào)和寫地址;在讀時(shí)鐘域,讀地址產(chǎn)生邏輯產(chǎn)生讀控制信號(hào)和讀地址。在空/滿信號(hào)產(chǎn)生部分,由讀寫地址相互比較產(chǎn)生空/滿標(biāo)志。由合并模塊輸出的填裝數(shù)據(jù)作為寫數(shù)據(jù)對(duì)異步FIFO進(jìn)行寫操作,另一側(cè)實(shí)時(shí)讀出該數(shù)據(jù),數(shù)據(jù)即轉(zhuǎn)換到FPGA芯片內(nèi)部邏輯時(shí)鐘的時(shí)鐘域。圖4為轉(zhuǎn)換模塊功能原理框圖,轉(zhuǎn)換模塊的異步FIFO包含有一個(gè)獨(dú)立的讀端口和寫端口的RAM,讀寫端口擁有兩個(gè)計(jì)數(shù)器,產(chǎn)生數(shù)據(jù)寬度為log2(array_size)的相互獨(dú)立的讀寫地址。這些計(jì)數(shù)器為讀指針(ReadPointer)和寫指針(WritePointer)。寫指針指向下一個(gè)要寫入的位置,讀指針指向下一個(gè)要讀的位置。每次寫操作使指針加1,每次讀操作使指針加1。空/滿標(biāo)志產(chǎn)生邏輯的功能則是給FIFO提供“空”(empty)和“滿”(full)信號(hào)。這些信號(hào)告訴外部電路FIFO已達(dá)到臨界狀態(tài)?!皾M”信號(hào)有效表明FIFO沒(méi)有存儲(chǔ)空間來(lái)寫入更多的數(shù)據(jù)?!翱铡毙盘?hào)有效表明FIFO沒(méi)有更多的數(shù)據(jù)可以讀出。合并后的完全有效數(shù)據(jù)使用高頻總線時(shí)鐘寫入異步FIFO中,在另一側(cè)被FPGA芯片內(nèi)部低頻邏輯時(shí)鐘讀出,完成有效數(shù)據(jù)報(bào)文的跨時(shí)鐘域轉(zhuǎn)換。本發(fā)明另一實(shí)施例為一種高速互聯(lián)總線的報(bào)文過(guò)濾方法,通過(guò)對(duì)高速互聯(lián)總線上傳輸?shù)臄?shù)據(jù)進(jìn)行譯碼,解析譯碼總線上傳輸?shù)臄?shù)據(jù),分析并丟棄其中無(wú)效的空?qǐng)?bào)文,只保留有效數(shù)據(jù)報(bào)文,并對(duì)剩余的有效數(shù)據(jù)報(bào)文進(jìn)行重新排序和合并,通過(guò)冒泡的方式排除空?qǐng)?bào)文位置上的空穴,組成全部有效的并行數(shù)據(jù)。最后將過(guò)濾后且經(jīng)過(guò)重新排序的數(shù)據(jù)寫入異步FIFO進(jìn)行跨時(shí)鐘域轉(zhuǎn)換,從高頻轉(zhuǎn)換到低頻,與FPGA芯片內(nèi)部邏輯時(shí)鐘頻率匹配。其中,通過(guò)專門的譯碼邏輯對(duì)總線上的報(bào)文進(jìn)行譯碼,每個(gè)報(bào)文以單獨(dú)標(biāo)志位標(biāo)記是否有效,全部標(biāo)志位組成數(shù)據(jù)總線的有效信息位向量。通過(guò)數(shù)據(jù)總線有效信息位向量識(shí)別總線上的數(shù)據(jù)空穴,將排在空穴后的有效數(shù)據(jù)報(bào)文前移,通過(guò)冒泡的方式排除空穴,重新排序后所有有效數(shù)據(jù)報(bào)文無(wú)縫相連,具體地,將其與之前已處于等待狀態(tài)的有效數(shù)據(jù)做合并操作,該操作以專門的合并-填裝邏輯進(jìn)行實(shí)現(xiàn),合并之后根據(jù)有效報(bào)文數(shù)目是否達(dá)到閾值判斷是否進(jìn)行隊(duì)列填裝操作。將有效數(shù)據(jù)填裝到異步FIFO中,將總線數(shù)據(jù)從傳輸總線上的高頻時(shí)鐘域轉(zhuǎn)換到芯片內(nèi)部核心邏輯使用的低頻時(shí)鐘域。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1