国产精品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>

      一種多微包并行處理結(jié)構(gòu)的制作方法

      文檔序號:7902213閱讀:183來源:國知局
      專利名稱:一種多微包并行處理結(jié)構(gòu)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及結(jié)點(diǎn)控制芯片中處理器接口訪問部件中微包(flit)處理結(jié)構(gòu)。
      背景技術(shù)
      在計(jì)算機(jī)結(jié)構(gòu)中,結(jié)點(diǎn)控制芯片(Node Controller,NC)即北橋芯片是僅次于處理器的核心芯片。結(jié)點(diǎn)控制芯片設(shè)計(jì)技術(shù)與處理器架構(gòu)和接口技術(shù)的演進(jìn)同步發(fā)展,以匹配處理器的能力和需求。處理器接口技術(shù)由前端總線FSB(Fr0nt Side Bus)逐步過渡到高速直連接口 技術(shù),如 AMD 的 HT (HyperTransport)接口禾口 Intel 的 QPI (Quick Path Interconnect) 接口。隨著處理器直連接口技術(shù)的發(fā)展,多處理器直連架構(gòu)已成為構(gòu)建服務(wù)器或大型機(jī)的主流結(jié)構(gòu)。記多處理器直連的規(guī)模為m(m為大于1的自然數(shù)),則m處理器直連架構(gòu)下,每個(gè)處理器芯片內(nèi)集成m-1套直連接口。每個(gè)直連接口對應(yīng)一套接收報(bào)文緩沖隊(duì)列,將存放于接收報(bào)文緩沖隊(duì)列中的報(bào)文發(fā)送給對應(yīng)的處理器。當(dāng)系統(tǒng)規(guī)模大于m時(shí),通過結(jié)點(diǎn)控制芯片對系統(tǒng)規(guī)模進(jìn)行擴(kuò)展。稱m個(gè)處理器直連構(gòu)成一個(gè)計(jì)算結(jié)點(diǎn)。一個(gè)計(jì)算結(jié)點(diǎn)內(nèi)的處理器通過結(jié)點(diǎn)控制芯片與其它計(jì)算結(jié)點(diǎn)中的處理器相連。結(jié)點(diǎn)控制芯片與處理器直連,結(jié)點(diǎn)控制芯片中的處理器接口訪問控制部件 SI (Socket Interface)負(fù)責(zé)處理器和結(jié)點(diǎn)控制芯片間的可靠數(shù)據(jù)傳輸,并基于信用機(jī)制進(jìn)行流量控制和錯(cuò)誤檢/糾錯(cuò)。SI中包含接收模塊和發(fā)送模塊,發(fā)送模塊負(fù)責(zé)向處理器發(fā)送報(bào)文,接收模塊接收來自處理器的報(bào)文。因此,報(bào)文傳輸分為發(fā)送方和接收方,接收方和發(fā)送方隸屬不同的端口 當(dāng)SI向處理器發(fā)送報(bào)文時(shí),發(fā)送方為Si,接收方為處理器;當(dāng)SI接收來自處理器的報(bào)文時(shí),發(fā)送方為處理器,接收方為Si。發(fā)送方和接收方都維持一定的信用,由接收方提供可用信用給發(fā)送方。微包是端口間信息傳輸?shù)淖钚挝?,一個(gè)數(shù)據(jù)包可能由多個(gè)微包組成。在發(fā)送數(shù)據(jù)包時(shí),發(fā)送方首先需要獲得足夠多的信用來發(fā)送整個(gè)包,當(dāng)接收方正確接收微包并從接收緩沖區(qū)中取出微包時(shí),返回給發(fā)送方一個(gè)信用。發(fā)送方在發(fā)送每個(gè)微包的同時(shí),將該微包拷貝到重傳緩沖區(qū)中。每個(gè)微包帶有8位的CRC碼,用于在接收方判斷數(shù)據(jù)是否在傳輸過程中出錯(cuò)。接收方收到每個(gè)微包的時(shí)候都要重新計(jì)算CRC來檢查收到的數(shù)據(jù)是否正確,如果正確,接收方在下一個(gè)給發(fā)送方的微包中附帶發(fā)送一個(gè)響應(yīng) (ack),發(fā)送方收到肯定響應(yīng)后把重傳緩沖區(qū)中相應(yīng)的微包清除掉;如果CRC指示有錯(cuò),接收方通過鏈路層發(fā)送重傳請求給本端口的發(fā)送部件,由本端口的發(fā)送部件將重傳請求發(fā)送至發(fā)送方,發(fā)送方收到重傳請求后會(huì)重新發(fā)送重傳緩沖區(qū)中相應(yīng)的微包,直到該微包被正確地傳送到接收方為止。目前的結(jié)點(diǎn)控制芯片中SI是單微包處理結(jié)構(gòu),即SI每個(gè)周期處理一個(gè)微包。單微包處理結(jié)構(gòu)由接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIF0(First In First Out,先進(jìn)先出隊(duì)列)、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊組成。其中,接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊和第一協(xié)議層報(bào)文FIFO構(gòu)成接收數(shù)據(jù)通路;第二協(xié)議層報(bào)文FIFO、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖
      5區(qū)和發(fā)送模塊構(gòu)成發(fā)送數(shù)據(jù)通路。鏈路狀態(tài)機(jī)對微包中的信用和響應(yīng)信息進(jìn)行交互,在數(shù)據(jù)接收出錯(cuò)時(shí),鏈路狀態(tài)機(jī)控制微包數(shù)據(jù)的重傳。接收模塊與處理器、接收緩沖區(qū)和鏈路狀態(tài)機(jī)相連。接收模塊從第一處理器接收微包,提取微包中的響應(yīng)和信用信息,并重新計(jì)算微包的CRC來檢查收到的數(shù)據(jù)是否正確。如果CRC指示微包數(shù)據(jù)正確接收,則接收模塊將微包寫入接收緩沖區(qū),并向鏈路狀態(tài)機(jī)提交微包正確接收響應(yīng)信息和信用信息;如果CRC指示微包接收出錯(cuò),接收模塊向鏈路狀態(tài)機(jī)提交重傳請求及信用信息,并記錄因校驗(yàn)錯(cuò)誤需要重傳微包的序列號。接收緩沖區(qū)與接收模塊和報(bào)文分發(fā)模塊相連。接收緩沖區(qū)的深度與體系結(jié)構(gòu)相關(guān),一般1 足夠用,寬度為單微包的數(shù)據(jù)位寬。接收緩沖區(qū)從接收模塊接收微包,對微包進(jìn)行緩存,并在報(bào)文分發(fā)模塊發(fā)出讀請求時(shí)將微包發(fā)送給報(bào)文分發(fā)模塊。報(bào)文分發(fā)模塊與接收緩沖區(qū)和第一協(xié)議層報(bào)文FIFO相連。第一協(xié)議層報(bào)文FIFO與報(bào)文分發(fā)模塊和協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連。第一協(xié)議層報(bào)文FIFO根據(jù)消息類的不同劃
      分為若干個(gè)FIFO,η種消息類對應(yīng)η個(gè)FIFO =FIFO1^FIFO2.....FIF0n,不同消息類的微包存
      放在不同的FIFO中。報(bào)文分發(fā)模塊從接收緩沖區(qū)中取出一個(gè)微包,根據(jù)微包的消息類將微包寫入第一協(xié)議層報(bào)文FIF0i(l < i < η)中。第一協(xié)議層報(bào)文FIFOi從報(bào)文分發(fā)模塊接收一個(gè)微包,提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊。鏈路狀態(tài)機(jī)與接收模塊和發(fā)送模塊相連。鏈路狀態(tài)機(jī)由三個(gè)狀態(tài)組成,“00”狀態(tài)是正常狀態(tài),表示鏈路層傳輸正常;“01”狀態(tài)是本地重傳狀態(tài),表示本地SI內(nèi)部接收模塊向發(fā)送模塊產(chǎn)生的重傳;“10”狀態(tài)是遠(yuǎn)程重傳狀態(tài),表示處理器產(chǎn)生的重傳。上電復(fù)位時(shí),鏈路狀態(tài)機(jī)處于狀態(tài)“00”,在微包數(shù)據(jù)正確接收時(shí),鏈路狀態(tài)機(jī)從接收模塊收到微包正確接收響應(yīng)信息和信用信息,將響應(yīng)和信用信息提交給SI的發(fā)送模塊,狀態(tài)維持在“00” ;如果微包接收出錯(cuò),鏈路狀態(tài)機(jī)從接收模塊收到重傳請求及信用信息,生成鏈路重傳請求,并向SI部件的發(fā)送模塊提交重傳請求,發(fā)送模塊在下一個(gè)發(fā)出的微包里攜帶該重傳請求,請求處理器重新發(fā)送出錯(cuò)微包,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“01”;如果接收模塊接收到處理器發(fā)出的重傳請求,則鏈路狀態(tài)機(jī)向SI部件的發(fā)送模塊提交重傳請求,然后發(fā)送模塊將報(bào)文從重傳緩沖區(qū)中讀出,發(fā)送至處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“10”。當(dāng)鏈路狀態(tài)機(jī)處于“01”狀態(tài)時(shí),表示SI內(nèi)部接收模塊接收報(bào)文出錯(cuò),請求處理器對出錯(cuò)報(bào)文進(jìn)行重傳,當(dāng)發(fā)送模塊將本地重傳請求發(fā)送至處理器時(shí),鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“00”。當(dāng)鏈路狀態(tài)機(jī)處于“10”狀態(tài)時(shí),表示SI的接收模塊收到的微包為遠(yuǎn)程重傳請求,處理器接收微包出錯(cuò),要求SI對出錯(cuò)報(bào)文進(jìn)行重傳,SI的發(fā)送模塊根據(jù)遠(yuǎn)程重傳請求從重傳緩沖區(qū)中讀取相應(yīng)微包,重新發(fā)送給處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“ 00 ”。第二協(xié)議層報(bào)文FIFO與報(bào)文拼裝模塊和協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連。第二協(xié)議層報(bào)文FIFO與第一協(xié)議層報(bào)文FIFO的結(jié)構(gòu)完全一樣。第二協(xié)議層報(bào)文FIFOi (1 < i < η)從協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊接收一個(gè)微包,并提交給報(bào)文拼裝模塊。報(bào)文拼裝模塊與第二協(xié)議層報(bào)文FIFO和發(fā)送緩沖區(qū)相連。報(bào)文拼裝模塊從第二協(xié)議層報(bào)文FIF0i(l ^n)中取出待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù),將待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù)組裝成微包,將組裝后的微包提交給發(fā)送緩沖區(qū)。發(fā)送緩沖區(qū)與報(bào)文拼裝模塊和發(fā)送模塊相連。發(fā)送緩沖區(qū)的深度和寬度均與接收緩沖區(qū)相同。發(fā)送緩沖區(qū)從報(bào)文拼裝模塊接收拼裝好的微包,對微包進(jìn)行緩存,接收到發(fā)送模塊的讀請求后將微包發(fā)送給發(fā)送模塊。發(fā)送模塊與鏈路狀態(tài)機(jī)、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和處理器相連。發(fā)送模塊從發(fā)送緩沖區(qū)讀取微包數(shù)據(jù),從鏈路狀態(tài)機(jī)獲取信用信息和響應(yīng)信息,將信用信息和響應(yīng)信息搭載(piggyback)到微包中。當(dāng)信用足夠發(fā)送整個(gè)微包時(shí)(即信用值大于微包數(shù)),發(fā)送模塊將搭載后的微包數(shù)據(jù)發(fā)送給處理器,同時(shí)將該微包拷貝至重傳緩沖區(qū)。重傳緩沖區(qū)與發(fā)送模塊相連。重傳緩沖區(qū)的寬度為單微包的數(shù)據(jù)位寬加上緩沖區(qū)的索引位寬(緩沖區(qū)索引用于對重傳緩沖區(qū)中的每一條記錄進(jìn)行索引),深度與接收緩沖區(qū)和發(fā)送緩沖區(qū)相同。重傳緩沖區(qū)從發(fā)送模塊接收發(fā)送微包的備份,對已發(fā)送微包進(jìn)行緩存。處理器收到微包后進(jìn)行CRC校驗(yàn),判斷數(shù)據(jù)是否在傳輸過程中出錯(cuò)。如果正確,處理器在下一個(gè)給SI的微包中附帶發(fā)送一個(gè)肯定響應(yīng)。SI在收到肯定響應(yīng)回答后把重傳緩沖區(qū)中相應(yīng)的微包清除掉。如果CRC指示有錯(cuò),處理器發(fā)送一個(gè)遠(yuǎn)程重傳請求給Si,SI的接收模塊將此重傳請求通過鏈路狀態(tài)機(jī)提交給發(fā)送模塊,發(fā)送模塊重新發(fā)送重傳緩沖中相應(yīng)的微包,直到該微包被處理器正確接收為止。單微包處理結(jié)構(gòu)中,SI每個(gè)周期處理一個(gè)微包,微包的發(fā)送和接收處理流程中只處理一個(gè)微包,數(shù)據(jù)通路為一路數(shù)據(jù)通路。因此,數(shù)據(jù)通路邏輯設(shè)計(jì)簡單、易于實(shí)現(xiàn)。但缺點(diǎn)也很明顯,記物理層的工作頻率為Fphy(Hz),鏈路層的工作頻率為Funk(Hz),每個(gè)微包的位寬為W(b),則物理層的帶寬為W*FPhy(bps),在單微包處理結(jié)構(gòu)中,SI每個(gè)周期處理一個(gè)微包,鏈路層的帶寬為W*FLink (bps),為了匹配處理器的能力和需求,實(shí)現(xiàn)帶寬匹配, 則要求Flink = Fphy,即處理器接口鏈路層必須實(shí)現(xiàn)物理層工作頻率下的數(shù)據(jù)提取、裝配和糾錯(cuò)。但隨著工藝的提高,元器件可以提供越來越高的傳輸頻率,處理器物理層的工作頻率逐步提高,若要求鏈路層達(dá)到物理層的工作頻率,對微處理器接口控制部件的邏輯功能設(shè)計(jì)以及接口電路設(shè)計(jì)都提出了很高的要求。例如,根據(jù)對ASIC芯片廠家工藝庫和RAM IPdntellectural Property,知識(shí)產(chǎn)權(quán)核)庫的評估,在90nm工藝下,寄存器等標(biāo)準(zhǔn)單元可以工作在IGHz左右,但是RAM等IP最高工作頻率為500MHz,而且隨著RAM容量的增大, 工作頻率呈下降趨勢,因此,單微包處理結(jié)構(gòu)難以實(shí)現(xiàn)物理層和鏈路層的帶寬匹配,造成數(shù)據(jù)傳輸延遲的增加,降低各直連端口間的數(shù)據(jù)傳輸速率,進(jìn)而降低了結(jié)點(diǎn)控制器芯片對各處理器間通信的處理速度。

      發(fā)明內(nèi)容
      本發(fā)明要解決的技術(shù)問題是針對結(jié)點(diǎn)控制器芯片中單微包處理結(jié)構(gòu)下的報(bào)文傳輸難以實(shí)現(xiàn)物理層和鏈路層的帶寬匹配、影響各直連端口間的數(shù)據(jù)傳輸速率、進(jìn)而降低結(jié)點(diǎn)控制器芯片對各處理器間通信的處理速度這一問題,提出一種多微包并行處理結(jié)構(gòu),各直連端口間的數(shù)據(jù)傳輸速率可以不受鏈路層約束,有效提高結(jié)點(diǎn)控制器芯片對各處理器間通信的處理速度。本發(fā)明的技術(shù)方案為本發(fā)明多微包并行處理結(jié)構(gòu)由接口轉(zhuǎn)換模塊、接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、 重傳緩沖區(qū)和發(fā)送模塊組成。接口轉(zhuǎn)換模塊工作在物理層時(shí)鐘域下,接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊工作在鏈路層時(shí)鐘域下。與單微包處理結(jié)構(gòu)相比,多微包并行處理結(jié)構(gòu)的不同之處在于1.相對單微包處理結(jié)構(gòu)增加了接口轉(zhuǎn)換模塊,在連接關(guān)系上,單微包處理結(jié)構(gòu)中接收模塊和發(fā)送模塊直接與處理器相連,從處理器收發(fā)微包,而在多微包處理結(jié)構(gòu)中,在處理器與接收模塊和發(fā)送模塊之間增加了接口轉(zhuǎn)換模塊,其它各模塊之間的連接關(guān)系沒有發(fā)生變化;2.接收模塊和發(fā)送模塊中的數(shù)據(jù)通路由針對單微包的一路數(shù)據(jù)通路拓展為針對多微包的多路并行數(shù)據(jù)通
      路,多微包并行處理結(jié)構(gòu)并行處理多個(gè)微包。記N= Fphy/F ,F(xiàn)niy為物理層的工作頻率,
      / 1 Link
      Funk為鏈路層的工作頻率,「1表示上取整,則多微包處理結(jié)構(gòu)只需并行處理N個(gè)微包(記為N微包并行處理結(jié)構(gòu)),即可在不提高鏈路層工作頻率的同時(shí)實(shí)現(xiàn)物理層和鏈路層的帶寬匹配。接口轉(zhuǎn)換模塊與第一處理器、接收模塊和發(fā)送模塊相連。接口轉(zhuǎn)換模塊由異步接收FIFO和異步發(fā)送FIFO組成。異步接收FIFO和異步發(fā)送FIFO均是常用的異步FIFO,異步FIFO是結(jié)點(diǎn)控制芯片中普遍使用的一種跨時(shí)鐘域的FIFO,異步FIFO的讀寫端口分開,數(shù)據(jù)在一個(gè)時(shí)鐘域?qū)懭?,在另一個(gè)時(shí)鐘域讀出。使用異步FIFO可以安全地將數(shù)據(jù)從一個(gè)時(shí)鐘域傳送到另一個(gè)時(shí)鐘域,本發(fā)明通過異步接收FIFO將N個(gè)單微包數(shù)據(jù)從物理層時(shí)鐘域傳送到鏈路層時(shí)鐘域,并以一個(gè)多微包的形式讀出;異步發(fā)送FIFO將一個(gè)多微包數(shù)據(jù)從鏈路層時(shí)鐘域傳送到物理層時(shí)鐘域,并以N個(gè)單微包的形式讀出。異步接收FIFO與第一處理器和接收模塊相連,每個(gè)物理層時(shí)鐘周期第一處理器向異步接收FIFO寫入一個(gè)微包,則N個(gè)物理層時(shí)鐘周期內(nèi)處理器向異步接收FIFO寫入N個(gè)微包。統(tǒng)一調(diào)整N個(gè)微包按照小頭方式排列,即N個(gè)微包數(shù)據(jù)的順序?yàn)閧Flit[N-l],F(xiàn)lit[N-2],...斤1^[1]斤1^
      },其中?1^
      是最先接收的,即Flit
      是從第一處理器接收的第一拍微包數(shù)據(jù),F(xiàn)lit [N-1]是從第一處理器接收的第N拍微包數(shù)據(jù)。異步接收FIFO每一個(gè)鏈路層時(shí)鐘周期內(nèi)向接收模塊輸出一個(gè)多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l], Flit
      }。異步發(fā)送FIFO與第二處理器和發(fā)送模塊相連。每一個(gè)鏈路層時(shí)鐘周期內(nèi)發(fā)送模塊向異步發(fā)送 FIFO 寫入一個(gè)多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },
      第二處理器按照FlitW]、Flit[l].....Flit [N-1]的順序每個(gè)物理層時(shí)鐘周期內(nèi)從異
      步發(fā)送FIFO讀取一個(gè)微包,進(jìn)而在N個(gè)物理層時(shí)鐘周期內(nèi)讀取一個(gè)多微包{Flit [N-1],F(xiàn)lit[N-2], · · ·,F(xiàn)lit[l],F(xiàn)lit
      }。接收模塊與異步接收FIFO、接收緩沖區(qū)和鏈路狀態(tài)機(jī)相連,接收模塊由并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊、并行響應(yīng)計(jì)算模塊、傳輸仲裁模塊組成。并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊均與異步接收FIFO和傳輸仲裁模塊相連。并行CRC校驗(yàn)?zāi)K由N個(gè)單微包處理結(jié)構(gòu)中的CRC校驗(yàn)?zāi)K組成,每個(gè)CRC校驗(yàn)?zāi)K結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的CRC校驗(yàn)?zāi)K相同,N個(gè)CRC校驗(yàn)?zāi)K同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行校驗(yàn),N個(gè)CRC校驗(yàn)?zāi)K均分別與異步接收FIFO和傳輸仲裁模塊連接。并行信用計(jì)算模塊由N個(gè)單微包處理結(jié)構(gòu)中的信用計(jì)算模塊組成,每個(gè)信用計(jì)算模塊結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的信用計(jì)算模塊相同,N個(gè)信用計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行信用計(jì)算,N個(gè)信用計(jì)算模塊均分別與異步接收FIFO和傳輸仲裁模塊連接。并行響應(yīng)計(jì)算模塊由N個(gè)單微包處理結(jié)構(gòu)中的響應(yīng)計(jì)算模塊組成,每個(gè)響應(yīng)計(jì)算模塊結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的響應(yīng)計(jì)算模塊相同,N個(gè)響應(yīng)計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行響應(yīng)計(jì)算,N個(gè)響應(yīng)計(jì)算模塊均分別與異步接收FIFO和傳輸仲裁模塊連接。這樣,通過并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行處理。每個(gè)鏈路層時(shí)鐘周期內(nèi),并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊從異步接收 FIFO 接收一個(gè)多微包{Flit [N-1],F(xiàn)lit [N-2],...,F(xiàn)lit [1],F(xiàn)lit
      },并行 CRC校驗(yàn)?zāi)K對多微包中N個(gè)單微包進(jìn)行CRC校驗(yàn),并將N個(gè)校驗(yàn)信息提交給傳輸仲裁模塊;并行信用計(jì)算模塊并行計(jì)算N個(gè)單微包的信用信息,然后將N個(gè)信用信息提供給傳輸仲裁模塊;并行響應(yīng)計(jì)算模塊并行計(jì)算N個(gè)微包的響應(yīng)信息,并將N個(gè)響應(yīng)信息提供給傳輸仲裁模塊;傳輸仲裁模塊與并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊、并行響應(yīng)計(jì)算模塊、鏈路狀態(tài)機(jī)和接收緩沖區(qū)相連,傳輸仲裁模塊從并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊接收多微包的CRC校驗(yàn)信息、信用信息和響應(yīng)信息,對多微包的傳輸進(jìn)行仲裁如果多微包是提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊的數(shù)據(jù)報(bào)文且CRC校驗(yàn)正確,則將多微包存入接收緩沖區(qū),并將多微包的信用信息和響應(yīng)信息提交給鏈路狀態(tài)機(jī);如果CRC校驗(yàn)信息顯示多微包出錯(cuò),則將多微包的信用信息、響應(yīng)信息和本地重傳請求提交給鏈路狀態(tài)機(jī);如果多微包是來自處理器的遠(yuǎn)程重傳請求,則將遠(yuǎn)程重傳請求提交給鏈路狀態(tài)機(jī)。接收緩沖區(qū)與接收模塊和報(bào)文分發(fā)模塊相連,其結(jié)構(gòu)與背景技術(shù)單微包處理結(jié)構(gòu)中的相同,接收緩沖區(qū)的深度為128,多微包處理結(jié)構(gòu)中的接收緩沖區(qū)寬度增大為N個(gè)單微包的數(shù)據(jù)位寬。接收緩沖區(qū)從接收模塊接收多微包,對多微包進(jìn)行緩存,并在報(bào)文分發(fā)模塊發(fā)出讀請求時(shí)將多微包發(fā)送給報(bào)文分發(fā)模塊。報(bào)文分發(fā)模塊與接收緩沖區(qū)和第一協(xié)議層報(bào)文FIFO相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同。報(bào)文分發(fā)模塊從接收緩沖區(qū)中取出多微包,多微包中的N個(gè)單微包對應(yīng)t(t < N,且t < η)種消息類,報(bào)文分發(fā)模塊根據(jù)多微包中的N個(gè)單微包消息類的不同將N個(gè)單微包分別寫入第一協(xié)議層報(bào)文FIFO中的t個(gè)FIFO中,這t個(gè)第一協(xié)議層報(bào)文FIFO中存放的微包數(shù)不盡相同。第一協(xié)議層報(bào)文FIFO與報(bào)文分發(fā)模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同。第一協(xié)議層報(bào)文FIFO中的t個(gè)FIFO從報(bào)文分發(fā)模塊接收到N個(gè)單微包,每個(gè)FIFO分別將存放于其中的單微包提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊。第一協(xié)議層報(bào)文FIFO的寬度為單微包位寬,每個(gè)第一協(xié)議層報(bào)文FIFO的深度均與接收緩沖區(qū)的深度相同,因此,可以保障第一協(xié)議層報(bào)文FIFO的容量足以容納所有到達(dá)第一協(xié)議層報(bào)文FIFO的微包。鏈路狀態(tài)機(jī)與接收模塊和發(fā)送模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同,只是處理對象由單微包變成多微包。鏈路狀態(tài)機(jī)由三個(gè)狀態(tài)組成,“00”狀態(tài)是正常狀態(tài),表示鏈路層傳輸正常;“01”狀態(tài)是本地重傳狀態(tài),表示本地SI內(nèi)部接收模塊向發(fā)送模塊產(chǎn)生的重傳;“10”狀態(tài)是遠(yuǎn)程重傳狀態(tài),表示處理器產(chǎn)生的重傳;上電復(fù)位時(shí),鏈路狀態(tài)機(jī)處于狀態(tài)“00”,在多微包數(shù)據(jù)正確接收時(shí),鏈路狀態(tài)機(jī)從接收模塊收到多微包正確接收響應(yīng)信息和信用信息,將響應(yīng)信息和信用信息提交給SI的發(fā)送模塊,狀態(tài)維持在“00” ;如果多微包接收出錯(cuò),鏈路狀態(tài)機(jī)轉(zhuǎn)入本地重傳狀態(tài),鏈路狀態(tài)機(jī)從接收模塊收到本地重傳請求及信用信息,生成本地重傳請求,并向SI的發(fā)送模塊提交本地重傳請求,發(fā)送模塊在下一個(gè)發(fā)出的微包里攜帶該本地重傳請求,請求處理器重新發(fā)送出錯(cuò)微包,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài) “01” ;如果接收模塊接收到處理器發(fā)出的重傳請求,則鏈路狀態(tài)機(jī)進(jìn)入遠(yuǎn)程重傳狀態(tài),接收模塊向SI的發(fā)送模塊提交遠(yuǎn)程重傳請求,發(fā)送模塊從重傳緩沖區(qū)中讀出出錯(cuò)微包發(fā)送至處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“ 10” ;當(dāng)鏈路狀態(tài)機(jī)處于“01”狀態(tài)時(shí),表示SI內(nèi)部接收模塊接收微包出錯(cuò),請求處理器對出錯(cuò)微包進(jìn)行重傳,當(dāng)發(fā)送模塊將本地重傳請求發(fā)送至第二處理器時(shí),鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“00”;當(dāng)鏈路狀態(tài)機(jī)處于“10”狀態(tài)時(shí),表示SI的接收模塊收到的微包為遠(yuǎn)程重傳請求,處理器接收微包出錯(cuò),要求SI對出錯(cuò)微包進(jìn)行重傳,SI的發(fā)送模塊根據(jù)遠(yuǎn)程重傳請求從重傳緩沖區(qū)中讀取相應(yīng)微包,重新發(fā)送給處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“00”。第二協(xié)議層報(bào)文FIFO與報(bào)文拼裝模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,其結(jié)構(gòu)與第一協(xié)議層報(bào)文FIFO相同。第二協(xié)議層報(bào)文FIFO從協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊接收N個(gè)單微包,協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊根據(jù)消息類的不同將N個(gè)單微包分別寫入第二協(xié)議層報(bào)文FIFO中的t 個(gè)FIFO中,這t個(gè)FIFO中存放的微包數(shù)不盡相同;然后第二協(xié)議層報(bào)文FIFO將N個(gè)單微包提交給報(bào)文拼裝模塊。報(bào)文拼裝模塊與第二協(xié)議層報(bào)文FIFO和發(fā)送緩沖區(qū)相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同。報(bào)文拼裝模塊從第二協(xié)議層報(bào)文FIFO中取出待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù),并根據(jù)單微包到達(dá)第二協(xié)議層報(bào)文FIFO的時(shí)間順序?qū)個(gè)單微包組裝成一個(gè)多微包爾1^例-1],?1^例-2],...,?1^[1],?1^
      },將組裝后的微包提交給發(fā)送緩沖區(qū)。發(fā)送緩沖區(qū)與報(bào)文拼裝模塊和發(fā)送模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同,發(fā)送緩沖區(qū)的深度和寬度均與接收緩沖區(qū)相同。發(fā)送緩沖區(qū)從報(bào)文拼裝模塊接收拼裝好的微包,對微包進(jìn)行緩存,接收到發(fā)送模塊的讀請求后將微包發(fā)送給發(fā)送模塊。重傳緩沖區(qū)與發(fā)送模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同,唯一的不同在于多微包處理結(jié)構(gòu)中的重傳緩沖區(qū)寬度增大為N個(gè)單微包的數(shù)據(jù)位寬加上緩沖區(qū)的索引位寬(緩沖區(qū)索引用于對重傳緩沖區(qū)中的每一條記錄進(jìn)行索引)。重傳緩沖區(qū)從發(fā)送模塊接收發(fā)送微包的備份,對已發(fā)送微包進(jìn)行緩存,并在微包傳輸出錯(cuò)時(shí)由發(fā)送模塊從重傳緩沖區(qū)中讀出出錯(cuò)微包進(jìn)行重傳。發(fā)送模塊與異步發(fā)送FIFO、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和鏈路狀態(tài)機(jī)相連。發(fā)送模塊由信用和響應(yīng)搭載模塊、傳輸仲裁模塊組成。信用和響應(yīng)搭載模塊與鏈路狀態(tài)機(jī)、發(fā)送緩沖區(qū)和傳輸仲裁模塊相連。信用和響應(yīng)搭載模塊從鏈路狀態(tài)機(jī)獲取信用和響應(yīng)信息,從發(fā)送緩沖區(qū)讀取一組多微包{Flit [N-1],F(xiàn)lit [N-2],...,F(xiàn)lit [1],F(xiàn)lit
      },信用和響應(yīng)搭載模塊將信用和響應(yīng)信息搭載在多微包上,形成攜帶信用和響應(yīng)信息的多微包{Flit[N-l], Flit [N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },并將此多微包提供給傳輸仲裁模塊。傳輸仲裁模塊與信用和響應(yīng)搭載模塊、鏈路狀態(tài)機(jī)、重傳緩沖區(qū)和異步發(fā)送FIFO相連。傳輸仲裁模塊根據(jù)收到的消息報(bào)文對微包的傳輸進(jìn)行仲裁。如果傳輸仲裁模塊收到來自鏈路狀態(tài)機(jī)的本地重傳請求,傳輸仲裁模塊在下一個(gè)要發(fā)出的多微包里攜帶該重傳請求,請求處理器重新發(fā)送出錯(cuò)微包;如果傳輸仲裁模塊收到來自鏈路狀態(tài)機(jī)的遠(yuǎn)程重傳響應(yīng),則向重傳緩沖區(qū)發(fā)出讀使能信號,從重傳緩沖區(qū)中讀取需要重傳的多微包{Flit[N-l],F(xiàn)lit[N-2],..., Flit[l],F(xiàn)lit
      };如果傳輸仲裁模塊收到的是來自信用和響應(yīng)搭載模塊的一組多微包{Flit [N-l],F(xiàn)lit [N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },則將此多微包寫入異步發(fā)送 FIFO,同時(shí)向重傳緩沖區(qū)發(fā)出寫使能信號,將此多微包備份至重傳緩沖區(qū)。與現(xiàn)有技術(shù)相比,采用本發(fā)明可達(dá)到以下技術(shù)效果 通過增加接口轉(zhuǎn)換部件,實(shí)現(xiàn)NC跨時(shí)鐘域的轉(zhuǎn)換,使得微包數(shù)據(jù)在一個(gè)時(shí)鐘域?qū)懭?,在另一個(gè)時(shí)鐘域讀出,讀寫端口分開。異步FIFO可以安全的將數(shù)據(jù)從一個(gè)時(shí)鐘域傳送到另一個(gè)時(shí)鐘域。每個(gè)鏈路層時(shí)鐘周期結(jié)點(diǎn)控制芯片處理N個(gè)微包,此時(shí)帶寬為N*W*FUnk(bps),則只要Funk = FPhy/N,即鏈路層的工作頻率達(dá)到物理層工作頻率的1/N就可實(shí)現(xiàn)帶寬匹配。隨著工藝的不斷提高,只需提高結(jié)點(diǎn)控制芯片每個(gè)鏈路層時(shí)鐘周期內(nèi)處理的微包數(shù)N,即可實(shí)現(xiàn)物理層/鏈路層的帶寬匹配,而對微處理器接口控制部件的邏輯功能設(shè)計(jì)以及接口電路設(shè)計(jì)沒有影響,各直連端口間的數(shù)據(jù)傳輸速率可以不受鏈路層約束,有效提高結(jié)點(diǎn)控制器芯片對各處理器間通信的處理速度。 發(fā)送模塊和接收模塊通過將數(shù)據(jù)處理通路由只處理單微包的一路數(shù)據(jù)通路增加至處理多微包的多路并行數(shù)據(jù)通路,提高了固定時(shí)間內(nèi)鏈路層可以處理的數(shù)據(jù)位寬,有效提高了鏈路層工作帶寬。


      圖1是背景技術(shù)結(jié)點(diǎn)控制芯片NC與處理器CPU直連通信示意圖。圖2是背景技術(shù)單微包處理結(jié)構(gòu)邏輯結(jié)構(gòu)圖。圖3是圖2中單微包處理結(jié)構(gòu)的鏈路狀態(tài)機(jī)示意圖。圖4是本發(fā)明多微包并行處理結(jié)構(gòu)邏輯結(jié)構(gòu)圖。圖5是圖4中接收模塊邏輯結(jié)構(gòu)圖。圖6是圖4中發(fā)送模塊邏輯結(jié)構(gòu)圖。圖7是本發(fā)明多微包并行處理結(jié)構(gòu)采取的多微包格式示意圖。
      具體實(shí)施例方式圖1是背景技術(shù)結(jié)點(diǎn)控制芯片NC與處理器CPU直連通信示意圖。結(jié)點(diǎn)控制芯片與處理器直連,結(jié)點(diǎn)控制芯片中的處理器接口訪問控制部件SI負(fù)責(zé)處理器和結(jié)點(diǎn)控制芯片間的可靠數(shù)據(jù)傳輸,并基于信用機(jī)制進(jìn)行流量控制和錯(cuò)誤檢/糾錯(cuò)。SI中包含接收模塊和發(fā)送模塊,發(fā)送模塊負(fù)責(zé)向處理器發(fā)送報(bào)文,接收模塊接收來自處理器的報(bào)文。因此,報(bào)文傳輸分為發(fā)送方和接收方,接收方和發(fā)送方隸屬不同的端口 當(dāng)SI向處理器發(fā)送報(bào)文時(shí),發(fā)送方為Si,接收方為處理器;當(dāng)SI接收來自處理器的報(bào)文時(shí),發(fā)送方為處理器,接收方為Si。發(fā)送方和接收方都維持一定的信用,由接收方提供可用信用給發(fā)送方。微包是端口間信息傳輸?shù)淖钚挝?,一個(gè)數(shù)據(jù)包可能由多個(gè)微包組成。在發(fā)送數(shù)據(jù)包時(shí),發(fā)送方首先需要獲得足夠多的信用用來發(fā)送整個(gè)包,當(dāng)接收方正確接收微包并從接收報(bào)文緩沖區(qū)中取出微包時(shí),返回給發(fā)送方一個(gè)信用。發(fā)送方在發(fā)送每個(gè)微包的同時(shí),將該微包拷貝到重傳緩沖區(qū)中。每個(gè)微包帶有8位的CRC碼,用于在接收方判斷數(shù)據(jù)是否在傳輸過程中出錯(cuò)。接收方收到每個(gè)微包的時(shí)候都要重新計(jì)算CRC來檢查收到的數(shù)據(jù)是否正確,如果正確,接收方在下一個(gè)給發(fā)送方的微包中附帶發(fā)送一個(gè)響應(yīng),發(fā)送方收到肯定響應(yīng)后把重傳緩沖區(qū)中相應(yīng)的微包清除掉;如果CRC指示有錯(cuò),接收方發(fā)送一個(gè)鏈路層的重傳請求給本端口的發(fā)送部件,由本端口的發(fā)送部件將重傳請求發(fā)送至發(fā)送方,發(fā)送方收到重傳請求后會(huì)重新發(fā)送重傳緩沖中相應(yīng)的微包,直到該微包被正確地傳送到接收方為止。圖2是背景技術(shù)單微包處理結(jié)構(gòu)邏輯結(jié)構(gòu)圖。單微包處理結(jié)構(gòu)由接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、 第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊組成。其中,接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊和第一協(xié)議層報(bào)文FIFO構(gòu)成接收數(shù)據(jù)通路;第二協(xié)議層報(bào)文FIFO、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊構(gòu)成發(fā)送數(shù)據(jù)通路。鏈路狀態(tài)機(jī)對微包中的信用和響應(yīng)信息進(jìn)行交互,在數(shù)據(jù)接收出錯(cuò)時(shí),鏈路狀態(tài)機(jī)控制微包數(shù)據(jù)的重傳。接收模塊與處理器、接收緩沖區(qū)和鏈路狀態(tài)機(jī)相連。接收模塊從處理器接收微包, 提取微包中的響應(yīng)和信用信息,并重新計(jì)算微包的CRC來檢查收到的數(shù)據(jù)是否正確。如果 CRC指示微包數(shù)據(jù)正確接收,則接收模塊將微包寫入接收緩沖區(qū),并向鏈路狀態(tài)機(jī)提交微包正確接收響應(yīng)信息和信用信息;如果CRC指示微包接收出錯(cuò),接收模塊向鏈路狀態(tài)機(jī)提交重傳請求及信用信息,并記錄因校驗(yàn)錯(cuò)誤需要重傳微包的序列號。接收緩沖區(qū)與接收模塊和報(bào)文分發(fā)模塊相連。接收緩沖區(qū)的深度與體系結(jié)構(gòu)相關(guān),一般1 足夠用,寬度為單微包的數(shù)據(jù)位寬。接收緩沖區(qū)從接收模塊接收微包,對微包進(jìn)行緩存,并在報(bào)文分發(fā)模塊發(fā)出讀請求時(shí)將微包發(fā)送給報(bào)文分發(fā)模塊。報(bào)文分發(fā)模塊與接收緩沖區(qū)和第一協(xié)議層報(bào)文FIFO相連。第一協(xié)議層報(bào)文FIFO 與報(bào)文分發(fā)模塊和協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連。第一協(xié)議層報(bào)文FIFO根據(jù)消息類的不同劃
      分為若干個(gè)FIFO,η種消息類對應(yīng)η個(gè)FIFO =FIFO1^FIFO2.....FIF0n,不同消息類的微包存
      放在不同的FIFO中。報(bào)文分發(fā)模塊從接收緩沖區(qū)中取出一個(gè)微包,根據(jù)微包的消息類將微包寫入第一協(xié)議層報(bào)文FIF0i(l < i < η)中。第一協(xié)議層報(bào)文FIFOi從報(bào)文分發(fā)模塊接收一個(gè)微包,提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊。鏈路狀態(tài)機(jī)與接收模塊和發(fā)送模塊相連。在微包數(shù)據(jù)正確接收時(shí),鏈路狀態(tài)機(jī)從接收模塊收到微包正確接收響應(yīng)信息和信用信息,將響應(yīng)和信用信息提交給SI的發(fā)送模塊;如果微包接收出錯(cuò),鏈路狀態(tài)機(jī)轉(zhuǎn)入本地重傳狀態(tài),鏈路狀態(tài)機(jī)從接收模塊收到重傳請求及信用信息,生成鏈路重傳請求,并向SI的發(fā)送模塊提交重傳請求,發(fā)送模塊在下一個(gè)發(fā)出的微包里攜帶該重傳請求,請求處理器重新發(fā)送出錯(cuò)微包。如果接收模塊接收到處理器發(fā)出的重傳請求,則鏈路狀態(tài)機(jī)進(jìn)入遠(yuǎn)程重傳狀態(tài),接收模塊向SI的發(fā)送模塊提交重傳請求,發(fā)送模塊將微包從重傳緩沖區(qū)中讀出發(fā)送至處理器。第二協(xié)議層報(bào)文FIFO與報(bào)文拼裝模塊和協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連。第二協(xié)議層報(bào)文FIFO與第一協(xié)議層報(bào)文FIFO的結(jié)構(gòu)完全一樣。第二協(xié)議層報(bào)文FIFOi (1 < i < η)從協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊接收一個(gè)微包,并提交給報(bào)文拼裝模塊。報(bào)文拼裝模塊與第二協(xié)議層報(bào)文FIFO和發(fā)送緩沖區(qū)相連。報(bào)文拼裝模塊從第二協(xié)議層報(bào)文FIF0i(l ^n)中取出待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù),將待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù)組裝成微包,將組裝后的微包提交給發(fā)送緩沖區(qū)。發(fā)送緩沖區(qū)與報(bào)文拼裝模塊和發(fā)送模塊相連。發(fā)送緩沖區(qū)的深度和寬度均與接收緩沖區(qū)相同。發(fā)送緩沖區(qū)從報(bào)文拼裝模塊接收拼裝好的微包,對微包進(jìn)行緩存,接收到發(fā)送模塊的讀請求后將微包發(fā)送給發(fā)送模塊。發(fā)送模塊與鏈路狀態(tài)機(jī)、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和處理器相連。發(fā)送模塊從發(fā)送緩沖區(qū)讀取微包數(shù)據(jù),從鏈路狀態(tài)機(jī)獲取信用信息和響應(yīng)信息,將信用信息和響應(yīng)信息搭載到微包中。當(dāng)信用足夠發(fā)送整個(gè)微包時(shí)(即信用值大于微包數(shù)),發(fā)送模塊將搭載后的微包數(shù)據(jù)發(fā)送給處理器,同時(shí)將該微包拷貝至重傳緩沖區(qū)。重傳緩沖區(qū)與發(fā)送模塊相連。重傳緩沖區(qū)的寬度為單微包的數(shù)據(jù)位寬加上緩沖區(qū)的索引位寬(緩沖區(qū)索引用于對重傳緩沖區(qū)中的每一條記錄進(jìn)行索引),深度與接收緩沖區(qū)和發(fā)送緩沖區(qū)相同。重傳緩沖區(qū)從發(fā)送模塊接收發(fā)送微包的備份,對已發(fā)送微包進(jìn)行緩存。處理器收到微包后進(jìn)行CRC校驗(yàn),判斷數(shù)據(jù)是否在傳輸過程中出錯(cuò)。如果正確,處理器在下一個(gè)給SI的微包中附帶發(fā)送一個(gè)肯定響應(yīng)。SI在收到肯定響應(yīng)回答后把重傳緩沖區(qū)中相應(yīng)的微包清除掉。如果CRC指示有錯(cuò),處理器發(fā)送一個(gè)遠(yuǎn)程重傳請求給Si,SI的接收模塊將此重傳請求通過鏈路狀態(tài)機(jī)提交給發(fā)送模塊,發(fā)送模塊重新發(fā)送重傳緩沖中相應(yīng)的微包,直到該微包被處理器正確接收為止。圖3是圖2中單微包處理結(jié)構(gòu)的鏈路狀態(tài)機(jī)示意圖。鏈路狀態(tài)機(jī)由三個(gè)狀態(tài)組成,“00”狀態(tài)是正常狀態(tài),表示鏈路層傳輸正常;“01” 狀態(tài)是本地重傳狀態(tài),表示本地SI內(nèi)部接收模塊向發(fā)送模塊產(chǎn)生的重傳;“10”狀態(tài)是遠(yuǎn)程重傳狀態(tài),表示處理器產(chǎn)生的重傳。上電復(fù)位時(shí),鏈路狀態(tài)機(jī)處于狀態(tài)“00”,在微包數(shù)據(jù)正確接收時(shí),鏈路狀態(tài)機(jī)從接收模塊收到微包正確接收響應(yīng)信息和信用信息,將響應(yīng)和信用信息提交給SI的發(fā)送模塊,狀態(tài)維持在“00” ;如果微包接收出錯(cuò),鏈路狀態(tài)機(jī)從接收模塊收到重傳請求及信用信息,生成鏈路重傳請求,并向SI部件的發(fā)送模塊提交重傳請求, 發(fā)送模塊在下一個(gè)發(fā)出的微包里攜帶該重傳請求,請求處理器重新發(fā)送出錯(cuò)微包,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“01”;如果接收模塊接收到處理器發(fā)出的重傳請求,則鏈路狀態(tài)機(jī)向SI部件的發(fā)送模塊提交重傳請求,然后發(fā)送模塊將報(bào)文從重傳緩沖區(qū)中讀出,發(fā)送至處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“10”。當(dāng)鏈路狀態(tài)機(jī)處于“01”狀態(tài)時(shí),表示SI內(nèi)部接收模塊接收報(bào)文出錯(cuò),請求處理器對出錯(cuò)報(bào)文進(jìn)行重傳,當(dāng)發(fā)送模塊將本地重傳請求發(fā)送至處理器時(shí),鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“00”。當(dāng)鏈路狀態(tài)機(jī)處于“10”狀態(tài)時(shí),表示SI的接收模塊收到的微包為遠(yuǎn)程重傳請求,處理器接收微包出錯(cuò),要求SI對出錯(cuò)報(bào)文進(jìn)行重傳,SI的發(fā)送模塊根據(jù)遠(yuǎn)程重傳請求從重傳緩沖區(qū)中讀取相應(yīng)微包,重新發(fā)送給處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“ 00 ”。圖4是本發(fā)明多微包并行處理結(jié)構(gòu)邏輯結(jié)構(gòu)圖。多微包并行處理結(jié)構(gòu)由接口轉(zhuǎn)換模塊、接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊組成。接口轉(zhuǎn)換模塊工作在物理層時(shí)鐘域下,接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊工作在鏈路層時(shí)鐘域下。接口轉(zhuǎn)換模塊與第一處理器、接收模塊和發(fā)送模塊相連。接口轉(zhuǎn)換模塊由異步接收FIFO和異步發(fā)送FIFO組成。異步接收FIFO和異步發(fā)送FIFO均是常用的異步FIFO,異步FIFO是結(jié)點(diǎn)控制芯片中普遍使用的一種跨時(shí)鐘域的FIFO,異步FIFO的讀寫端口分開,數(shù)據(jù)在一個(gè)時(shí)鐘域?qū)懭?,在另一個(gè)時(shí)鐘域讀出,。使用異步FIFO可以安全地將數(shù)據(jù)從一個(gè)時(shí)鐘域傳送到另一個(gè)時(shí)鐘域,本發(fā)明通過異步接收FIFO將N個(gè)單微包數(shù)據(jù)從物理層時(shí)鐘域傳送到鏈路層時(shí)鐘域,并以一個(gè)多微包的形式讀出;異步發(fā)送FIFO將一個(gè)多微包數(shù)據(jù)從鏈路層時(shí)鐘域傳送到物理層時(shí)鐘域,并以N個(gè)單微包的形式讀出。異步接收FIFO與第一處理器和接收模塊相連,每個(gè)物理層時(shí)鐘周期第一處理器向異步接收FIFO寫入一個(gè)微包,則N個(gè)物理層時(shí)鐘周期內(nèi)處理器向異步接收FIFO寫入N個(gè)微包。統(tǒng)一調(diào)整N個(gè)微包的順序按照小頭方式排列,即N個(gè)微包數(shù)據(jù)的順序?yàn)閧Flit[N-l], Flit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },其中 Flit
      是最先接收的,即 Flit
      是從處理器接收的第一拍微包數(shù)據(jù),F(xiàn)lit[N-l]是從處理器接收的第N拍微包數(shù)據(jù)。異步接收FIFO每一個(gè)鏈路層時(shí)鐘周期內(nèi)向接收模塊輸出一個(gè)多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l], Flit
      }。異步發(fā)送FIFO與第二處理器和發(fā)送模塊相連。每一個(gè)鏈路層時(shí)鐘周期內(nèi)發(fā)送模塊向異步發(fā)送 FIFO 寫入一個(gè)多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },
      第二處理器按照FlitW]、Flit[l].....Flit[N-l]的順序每個(gè)物理層時(shí)鐘周期內(nèi)從異
      步發(fā)送FIFO讀取一個(gè)微包,進(jìn)而在N個(gè)物理層時(shí)鐘周期內(nèi)讀取一個(gè)多微包{Flit[N-l], Flit[N-2], · · ·,F(xiàn)lit[l],F(xiàn)lit
      }。結(jié)合圖5,接收模塊與異步接收FIFO、接收緩沖區(qū)和鏈路狀態(tài)機(jī)相連,接收模塊由并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊、并行響應(yīng)計(jì)算模塊、傳輸仲裁模塊組成。并行CRC 校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊均與異步接收FIFO和傳輸仲裁模塊相連。并行CRC校驗(yàn)?zāi)K由N個(gè)單微包處理結(jié)構(gòu)中的CRC校驗(yàn)?zāi)K組成,N個(gè)CRC校驗(yàn)?zāi)K同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行校驗(yàn),N個(gè)CRC校驗(yàn)?zāi)K均與異步接收FIFO和傳輸仲裁模塊相連。并行信用計(jì)算模塊由N個(gè)單微包處理結(jié)構(gòu)中的信用計(jì)算模塊組成,N個(gè)信用計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行信用計(jì)算,N個(gè)信用計(jì)算模塊均與異步接收FIFO和傳輸仲裁模塊相連。并行響應(yīng)計(jì)算模塊由N個(gè)單微包處理結(jié)構(gòu)中的響應(yīng)計(jì)算模塊組成,N個(gè)響應(yīng)計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行響應(yīng)計(jì)算,N個(gè)響應(yīng)計(jì)算模塊均與異步接收FIFO和傳輸仲裁模塊相連。每個(gè)鏈路層時(shí)鐘周期內(nèi),并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊從異步接收FIFO接收一個(gè)多微包{Flit [N-1], Flit [N-2],· · ·,F(xiàn)lit[l],F(xiàn)lit
      },并行CRC校驗(yàn)?zāi)K對多微包中N個(gè)單微包進(jìn)行CRC校驗(yàn),并將N個(gè)校驗(yàn)信息提交給傳輸仲裁模塊;并行信用計(jì)算模塊并行計(jì)算N個(gè)單微包的信用信息,然后將N個(gè)信用信息提供給傳輸仲裁模塊;并行響應(yīng)計(jì)算模塊并行計(jì)算N個(gè)微包的響應(yīng)信息,并將N個(gè)響應(yīng)信息提供給傳輸仲裁模塊;傳輸仲裁模塊與并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊、并行響應(yīng)計(jì)算模塊、鏈路狀態(tài)機(jī)和接收緩沖區(qū)相連,傳輸仲裁模塊從并行 CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊接收多微包的CRC校驗(yàn)信息、信用信息和響應(yīng)信息,對多微包的傳輸進(jìn)行仲裁如果多微包是提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊的數(shù)據(jù)報(bào)文且CRC校驗(yàn)正確,則將多微包存入接收緩沖區(qū),并將多微包的信用信息和響應(yīng)信息提交給鏈路狀態(tài)機(jī);如果CRC校驗(yàn)信息顯示多微包出錯(cuò),則將多微包的信用信息、響應(yīng)信息和本地重傳請求提交給鏈路狀態(tài)機(jī);如果多微包是來自處理器的遠(yuǎn)程重傳請求,則將遠(yuǎn)程重傳請求提交給鏈路狀態(tài)機(jī)。接收緩沖區(qū)與接收模塊和報(bào)文分發(fā)模塊相連,其結(jié)構(gòu)與背景技術(shù)單微包處理結(jié)構(gòu)中的相同,唯一的不同在于多微包處理結(jié)構(gòu)中的接收緩沖區(qū)寬度增大為N個(gè)單微包的數(shù)據(jù)位寬。接收緩沖區(qū)從接收模塊接收多微包,對多微包進(jìn)行緩存,并在報(bào)文分發(fā)模塊發(fā)出讀請求時(shí)將多微包發(fā)送給報(bào)文分發(fā)模塊。報(bào)文分發(fā)模塊與接收緩沖區(qū)和第一協(xié)議層報(bào)文FIFO相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同。報(bào)文分發(fā)模塊從接收緩沖區(qū)中取出多微包,多微包中的N個(gè)單微包對應(yīng) t(t < N,且t < η)種消息類,報(bào)文分發(fā)模塊根據(jù)多微包中的N個(gè)單微包消息類的不同將N 個(gè)單微包分別寫入t個(gè)第一協(xié)議層報(bào)文FIFO中;第一協(xié)議層報(bào)文FIFO與報(bào)文分發(fā)模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同。第一協(xié)議層報(bào)文FIFO中的t個(gè)FIFO從報(bào)文分發(fā)模塊接收到N個(gè)單微包,每個(gè)FIFO分別將存放于其中的單微包提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊。第一協(xié)議層報(bào)文 FIFO的寬度為單微包位寬,每個(gè)第一協(xié)議層報(bào)文FIFO的深度均與接收緩沖區(qū)的深度相同, 因此,可以保障第一協(xié)議層報(bào)文FIFO的容量足以容納所有到達(dá)第一協(xié)議層報(bào)文FIFO的微包。鏈路狀態(tài)機(jī)與接收模塊和發(fā)送模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同,只是處理對象由單微包變成多微包。第二協(xié)議層報(bào)文FIFO與報(bào)文拼裝模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,其結(jié)構(gòu)與第一協(xié)議層報(bào)文FIFO相同。第二協(xié)議層報(bào)文FIFO從協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊接收N個(gè)單微包,協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊根據(jù)消息類的不同將N個(gè)單微包分別寫入第二協(xié)議層報(bào)文FIFO中的t 個(gè)FIFO中,這t個(gè)FIFO中存放的微包數(shù)不盡相同;然后第二協(xié)議層報(bào)文FIFO將N個(gè)單微包提交給報(bào)文拼裝模塊。報(bào)文拼裝模塊與第二協(xié)議層報(bào)文FIFO和發(fā)送緩沖區(qū)相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同。報(bào)文拼裝模塊從第二協(xié)議層報(bào)文FIFO中取出待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù),并根據(jù)單微包到達(dá)第二協(xié)議層報(bào)文FIFO的時(shí)間順序?qū)個(gè)單微包組裝成一個(gè)多微包爾1^例-1],?1^例-2],...,?1^[1],?1^
      },將組裝后的微包提交給發(fā)送緩沖區(qū)。發(fā)送緩沖區(qū)與報(bào)文拼裝模塊和發(fā)送模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同,發(fā)送緩沖區(qū)的深度和寬度均與接收緩沖區(qū)相同;發(fā)送緩沖區(qū)從報(bào)文拼裝模塊接收拼裝好的微包,對微包進(jìn)行緩存,接收到發(fā)送模塊的讀請求后將微包發(fā)送給發(fā)送模塊。重傳緩沖區(qū)與發(fā)送模塊相連,其結(jié)構(gòu)與單微包處理結(jié)構(gòu)中的相同,唯一的不同在于多微包處理結(jié)構(gòu)中的重傳緩沖區(qū)寬度增大為N個(gè)單微包的數(shù)據(jù)位寬加上緩沖區(qū)的索引位寬。重傳緩沖區(qū)從發(fā)送模塊接收發(fā)送微包的備份,對已發(fā)送微包進(jìn)行緩存,并在微包傳輸出錯(cuò)時(shí)由發(fā)送模塊從重傳緩沖區(qū)中讀出出錯(cuò)微包進(jìn)行重傳。結(jié)合圖6,發(fā)送模塊與異步發(fā)送FIFO、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和鏈路狀態(tài)機(jī)相連。發(fā)送模塊由信用和響應(yīng)搭載模塊、傳輸仲裁模塊組成。信用和響應(yīng)搭載模塊與鏈路狀態(tài)機(jī)、發(fā)送緩沖區(qū)和傳輸仲裁模塊相連。信用和響應(yīng)搭載模塊從鏈路狀態(tài)機(jī)獲取信用和響應(yīng)信息,從發(fā)送緩沖區(qū)讀取一組多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      }, 信用和響應(yīng)搭載模塊將信用和響應(yīng)信息搭載在多微包上,形成攜帶信用和響應(yīng)信息的多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },并將此多微包提供給傳輸仲裁模塊。傳輸仲裁模塊與信用和響應(yīng)搭載模塊、鏈路狀態(tài)機(jī)、重傳緩沖區(qū)和異步發(fā)送FIFO相連。傳輸仲裁模塊根據(jù)收到的消息報(bào)文對微包的傳輸進(jìn)行仲裁。如果傳輸仲裁模塊收到來自鏈路狀態(tài)機(jī)的本地重傳請求,傳輸仲裁模塊在下一組要發(fā)出的多微包里攜帶該重傳請求,請求處理器重新發(fā)送出錯(cuò)微包;如果傳輸仲裁模塊收到來自鏈路狀態(tài)機(jī)的遠(yuǎn)程重傳響應(yīng),則向重傳緩沖區(qū)發(fā)出讀使能信號,從重傳緩沖區(qū)中讀取需要重傳的微包{Flit[N_l], Flit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      };如果傳輸仲裁模塊收到的是來自信用和響應(yīng)搭載模塊的一組多微包{Flit [N-1],F(xiàn)lit [N-2],...,F(xiàn)lit [1],F(xiàn)lit
      },則將此多微包寫入異步發(fā)送FIFO,同時(shí)向重傳緩沖區(qū)發(fā)出寫使能信號,將此多微包備份至重傳緩沖區(qū)。傳輸仲裁模塊將多微包{Flit [N-1],F(xiàn)lit [N-2],...,F(xiàn)lit [1],F(xiàn)lit
      }寫入異步發(fā)送 FIFO。圖7是本發(fā)明多微包并行處理結(jié)構(gòu)采取的多微包格式示意圖。N個(gè)物理層時(shí)鐘周期內(nèi)處理器與SI傳輸N個(gè)微包。統(tǒng)一調(diào)整N個(gè)微包的傳輸順序按照小頭方式排列,即N個(gè)微包數(shù)據(jù)的順序?yàn)閧Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l], Flit W]},其中Flit
      是最先傳輸?shù)模碏lit
      是處理器與SI間傳輸?shù)牡谝慌奈鼣?shù)據(jù),F(xiàn)lit[N-l]是處理器與SI間傳輸?shù)牡贜拍微包數(shù)據(jù)。
      權(quán)利要求
      1. 一種多微包并行處理結(jié)構(gòu),包括接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊,接收緩沖區(qū)與接收模塊和報(bào)文分發(fā)模塊相連,報(bào)文分發(fā)模塊與接收緩沖區(qū)和第一協(xié)議層報(bào)文FIFO相連,第一協(xié)議層報(bào)文FIFO與報(bào)文分發(fā)模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,鏈路狀態(tài)機(jī)與接收模塊和發(fā)送模塊相連,第二協(xié)議層報(bào)文FIFO與報(bào)文拼裝模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,第二協(xié)議層報(bào)文FIFO與第一協(xié)議層報(bào)文FIFO的結(jié)構(gòu)完全一樣,報(bào)文拼裝模塊與第二協(xié)議層報(bào)文FIFO和發(fā)送緩沖區(qū)相連,發(fā)送緩沖區(qū)與報(bào)文拼裝模塊和發(fā)送模塊相連,重傳緩沖區(qū)與發(fā)送模塊相連;其特征在于多微包并行處理結(jié)構(gòu)還包括接口轉(zhuǎn)換模塊,接口轉(zhuǎn)換模塊工作在物理層時(shí)鐘域下,接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊工作在鏈路層時(shí)鐘域下;接口轉(zhuǎn)換模塊與第一處理器、接收模塊和發(fā)送模塊相連,接口轉(zhuǎn)換模塊由異步接收FIFO和異步發(fā)送FIFO組成;異步接收FIFO和異步發(fā)送FIFO均是常用的異步FIFO,異步接收FIFO將N個(gè)單微包數(shù)據(jù)從物理層時(shí)鐘域傳送到鏈路層時(shí)鐘域,并以一個(gè)多微包的形式讀出;異步發(fā)送FIFO將一個(gè)多微包數(shù)據(jù)從鏈路層時(shí)鐘域傳送到物理層時(shí)鐘域,并以N個(gè)單微包的形式讀出,N= Fphy/Funk,F(xiàn)niy為物理層的工作頻率,F(xiàn)unk為鏈路層的工作頻率,「ι表示上取整;異步接收FIFO與第一處理器和接收模塊相連,每個(gè)物理層時(shí)鐘周期第一處理器向異步接收FIFO寫入一個(gè)微包,N個(gè)物理層時(shí)鐘周期內(nèi)第一處理器向異步接收FIFO寫入N個(gè)微包;異步接收FI FO每一個(gè)鏈路層時(shí)鐘周期內(nèi)向接收模塊輸出一個(gè)多微包{Flit[N-l],F(xiàn)lit[N-2],· · ·,F(xiàn)lit[l],F(xiàn)lit
      };異步發(fā)送FIFO與第二處理器和發(fā)送模塊相連,每一個(gè)鏈路層時(shí)鐘周期內(nèi)發(fā)送模塊向異步發(fā)送 FIFO 寫入一個(gè)多微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },第二處理器按照FlitW]、Flit[l].....Flit[N-l]的順序每個(gè)物理層時(shí)鐘周期內(nèi)從異步發(fā)送FIFO讀取一個(gè)微包,進(jìn)而在N個(gè)物理層時(shí)鐘周期內(nèi)讀取一個(gè)多微包{Flit [N-1],F(xiàn)lit[N-2],· · ·,F(xiàn)lit[l],F(xiàn)lit
      };接收模塊與異步接收FIFO、接收緩沖區(qū)和鏈路狀態(tài)機(jī)相連,接收模塊由并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊、并行響應(yīng)計(jì)算模塊、傳輸仲裁模塊組成;并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊均與異步接收FIFO和傳輸仲裁模塊相連;并行CRC校驗(yàn)?zāi)K由N個(gè)CRC校驗(yàn)?zāi)K組成,N個(gè)CRC校驗(yàn)?zāi)K同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行校驗(yàn),N個(gè)CRC校驗(yàn)?zāi)K均分別與異步接收FIFO和傳輸仲裁模塊連接;并行信用計(jì)算模塊由N個(gè)信用計(jì)算模塊組成,N個(gè)信用計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行信用計(jì)算,N個(gè)信用計(jì)算模塊均分別與異步接收FIFO和傳輸仲裁模塊連接;并行響應(yīng)計(jì)算模塊由N個(gè)響應(yīng)計(jì)算模塊組成,N個(gè)響應(yīng)計(jì)算模塊同時(shí)對多微包中的N個(gè)單微包進(jìn)行并行響應(yīng)計(jì)算,N個(gè)響應(yīng)計(jì)算模塊均分別與異步接收FIFO和傳輸仲裁模塊連接;每個(gè)鏈路層時(shí)鐘周期內(nèi),并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊從異步接收FIFO接收一個(gè)多微包{Flit [N-1], Flit [N-2], ...,F(xiàn)lit [1],F(xiàn)lit
      },并行 CRC 校驗(yàn)?zāi)K對多微包中 N個(gè)單微包進(jìn)行CRC校驗(yàn),并將N個(gè)校驗(yàn)信息提交給傳輸仲裁模塊;并行信用計(jì)算模塊并行計(jì)算N個(gè)單微包的信用信息,然后將N個(gè)信用信息提供給傳輸仲裁模塊;并行響應(yīng)計(jì)算模塊并行計(jì)算N個(gè)微包的響應(yīng)信息,并將N個(gè)響應(yīng)信息提供給傳輸仲裁模塊;傳輸仲裁模塊與并行 CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊、并行響應(yīng)計(jì)算模塊、鏈路狀態(tài)機(jī)和接收緩沖區(qū)相連,傳輸仲裁模塊從并行CRC校驗(yàn)?zāi)K、并行信用計(jì)算模塊和并行響應(yīng)計(jì)算模塊接收多微包的CRC 校驗(yàn)信息、信用信息和響應(yīng)信息,對多微包的傳輸進(jìn)行仲裁如果多微包是提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊的數(shù)據(jù)報(bào)文且CRC校驗(yàn)正確,則將多微包存入接收緩沖區(qū),并將多微包的信用信息和響應(yīng)信息提交給鏈路狀態(tài)機(jī);如果CRC校驗(yàn)信息顯示多微包出錯(cuò),則將多微包的信用信息、響應(yīng)信息和本地重傳請求提交給鏈路狀態(tài)機(jī);如果多微包是來自處理器的遠(yuǎn)程重傳請求,則將遠(yuǎn)程重傳請求提交給鏈路狀態(tài)機(jī);接收緩沖區(qū)從接收模塊接收多微包,對多微包進(jìn)行緩存,并在報(bào)文分發(fā)模塊發(fā)出讀請求時(shí)將多微包發(fā)送給報(bào)文分發(fā)模塊;報(bào)文分發(fā)模塊從接收緩沖區(qū)中取出多微包,多微包中的N個(gè)單微包對應(yīng)t種消息類,報(bào)文分發(fā)模塊根據(jù)多微包中的N個(gè)單微包消息類的不同將N個(gè)單微包分別寫入第一協(xié)議層報(bào)文FIFO中的t個(gè)FIFO中;t彡N,且t彡η,η為消息類總數(shù);第一協(xié)議層報(bào)文FIFO與報(bào)文分發(fā)模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,第一協(xié)議層報(bào)文FIFO根據(jù)消息類的不同劃分為若干個(gè)FIFO, η種消息類對應(yīng)η個(gè)FIFO =FIFO1, FIFO2.....FIFOn,不同消息類的微包存放在不同的FIFO中;η個(gè)第一協(xié)議層報(bào)文FIFO中的t個(gè)FIFO 從報(bào)文分發(fā)模塊接收到N個(gè)單微包,每個(gè)FIFO分別將存放于其中的單微包提交給協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊;鏈路狀態(tài)機(jī)由三個(gè)狀態(tài)組成,“00”狀態(tài)是正常狀態(tài),表示鏈路層傳輸正常;“01”狀態(tài)是本地重傳狀態(tài),表示本地SI內(nèi)部接收模塊向發(fā)送模塊產(chǎn)生的重傳;“10”狀態(tài)是遠(yuǎn)程重傳狀態(tài),表示處理器產(chǎn)生的重傳;上電復(fù)位時(shí),鏈路狀態(tài)機(jī)處于狀態(tài)“00”,在多微包數(shù)據(jù)正確接收時(shí),鏈路狀態(tài)機(jī)從接收模塊收到多微包正確接收響應(yīng)信息和信用信息,將響應(yīng)信息和信用信息提交給SI的發(fā)送模塊,狀態(tài)維持在“00” ;如果多微包接收出錯(cuò),鏈路狀態(tài)機(jī)轉(zhuǎn)入本地重傳狀態(tài),鏈路狀態(tài)機(jī)從接收模塊收到本地重傳請求及信用信息,生成本地重傳請求,并向SI的發(fā)送模塊提交本地重傳請求,發(fā)送模塊在下一個(gè)發(fā)出的微包里攜帶該本地重傳請求,請求處理器重新發(fā)送出錯(cuò)微包,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“01” ;如果接收模塊接收到處理器發(fā)出的重傳請求,則鏈路狀態(tài)機(jī)進(jìn)入遠(yuǎn)程重傳狀態(tài),接收模塊向SI的發(fā)送模塊提交遠(yuǎn)程重傳請求,發(fā)送模塊從重傳緩沖區(qū)中讀出出錯(cuò)微包發(fā)送至處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài) “10”;當(dāng)鏈路狀態(tài)機(jī)處于“01”狀態(tài)時(shí),表示SI內(nèi)部接收模塊接收微包出錯(cuò),請求處理器對出錯(cuò)微包進(jìn)行重傳,當(dāng)發(fā)送模塊將本地重傳請求發(fā)送至第二處理器時(shí),鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“00”;當(dāng)鏈路狀態(tài)機(jī)處于“10”狀態(tài)時(shí),表示SI的接收模塊收到的微包為遠(yuǎn)程重傳請求, 處理器接收微包出錯(cuò),要求SI對出錯(cuò)微包進(jìn)行重傳,SI的發(fā)送模塊根據(jù)遠(yuǎn)程重傳請求從重傳緩沖區(qū)中讀取相應(yīng)微包,重新發(fā)送給處理器,鏈路狀態(tài)機(jī)轉(zhuǎn)向狀態(tài)“ 00 ” ;第二協(xié)議層報(bào)文FIFO與報(bào)文拼裝模塊、協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊相連,其結(jié)構(gòu)與第一協(xié)議層報(bào)文FIFO相同,第二協(xié)議層報(bào)文FIFO從協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊接收N個(gè)單微包,協(xié)議層報(bào)文轉(zhuǎn)發(fā)模塊根據(jù)消息類的不同將N個(gè)單微包分別寫入第二協(xié)議層報(bào)文FIFO中的t個(gè)FIFO 中,第二協(xié)議層報(bào)文FIFO將N個(gè)單微包提交給報(bào)文拼裝模塊;報(bào)文拼裝模塊從第二協(xié)議層報(bào)文FIFO中取出待傳輸?shù)膮f(xié)議層命令和數(shù)據(jù);報(bào)文拼裝模塊根據(jù)單微包到達(dá)第二協(xié)議層報(bào)文FIFO的時(shí)間順序?qū)個(gè)單微包組裝成一個(gè)多微包{Flit [N-1],F(xiàn)lit [N-2],...,F(xiàn)lit [1],F(xiàn)lit
      },將組裝后的微包提交給發(fā)送緩沖區(qū);發(fā)送緩沖區(qū)從報(bào)文拼裝模塊接收拼裝好的微包,對微包進(jìn)行緩存,接收到發(fā)送模塊的讀請求后將微包發(fā)送給發(fā)送模塊;重傳緩沖區(qū)與發(fā)送模塊相連,重傳緩沖區(qū)從發(fā)送模塊接收發(fā)送微包的備份,對已發(fā)送微包進(jìn)行緩存,并在微包傳輸出錯(cuò)時(shí)由發(fā)送模塊從重傳緩沖區(qū)中讀出出錯(cuò)微包進(jìn)行重傳;發(fā)送模塊與異步發(fā)送FIFO、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和鏈路狀態(tài)機(jī)相連,發(fā)送模塊由信用和響應(yīng)搭載模塊、傳輸仲裁模塊組成;信用和響應(yīng)搭載模塊與鏈路狀態(tài)機(jī)、發(fā)送緩沖區(qū)和傳輸仲裁模塊相連,信用和響應(yīng)搭載模塊從鏈路狀態(tài)機(jī)獲取信用和響應(yīng)信息,從發(fā)送緩沖區(qū)讀取一組多微包{Flit[N-l],F(xiàn)lit [N-2],... , Flit[l],F(xiàn)lit
      },信用和響應(yīng)搭載模塊將信用和響應(yīng)信息搭載在多微包上,形成攜帶信用和響應(yīng)信息的多微包{Flit[N-l],F(xiàn)lit [N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },并將此多微包提供給傳輸仲裁模塊;傳輸仲裁模塊與信用和響應(yīng)搭載模塊、鏈路狀態(tài)機(jī)、重傳緩沖區(qū)和異步發(fā)送FIFO相連,傳輸仲裁模塊根據(jù)收到的消息報(bào)文對微包的傳輸進(jìn)行仲裁;如果傳輸仲裁模塊收到來自鏈路狀態(tài)機(jī)的本地重傳請求,傳輸仲裁模塊在下一組要發(fā)出的多微包里攜帶該重傳請求,請求處理器重新發(fā)送出錯(cuò)微包;如果傳輸仲裁模塊收到來自鏈路狀態(tài)機(jī)的遠(yuǎn)程重傳響應(yīng),則向重傳緩沖區(qū)發(fā)出讀使能信號,從重傳緩沖區(qū)中讀取需要重傳的微包{Flit[N-l],F(xiàn)lit[N-2],...,F(xiàn)lit[l], Flit
      };如果傳輸仲裁模塊收到的是來自信用和響應(yīng)搭載模塊的一組多微包{Flit [N-1],F(xiàn)lit [N-2],...,F(xiàn)lit[l],F(xiàn)lit
      },則將此多微包寫入異步發(fā)送 FIFO,同時(shí)向重傳緩沖區(qū)發(fā)出寫使能信號,將此多微包備份至重傳緩沖區(qū)。
      2.如權(quán)利要求1所述的一種多微包并行處理結(jié)構(gòu),其特征在于N個(gè)物理層時(shí)鐘周期內(nèi)第一處理器向異步接收FIFO寫入的N個(gè)微包按照小頭方式排列,即N個(gè)微包數(shù)據(jù)的順序?yàn)閧Flit[N-l],Flit[N-2], . . .,F(xiàn)lit[l],F(xiàn)lit
      },其中 Flit
      是最先接收的,即 Flit
      是從第一處理器接收的第一拍微包數(shù)據(jù),F(xiàn)lit [N-1]是從第一處理器接收的第N拍微包數(shù)據(jù)。
      3.如權(quán)利要求1所述的一種多微包并行處理結(jié)構(gòu),其特征在于接收緩沖區(qū)的深度為.128,寬度為N個(gè)單微包的數(shù)據(jù)位寬;第一協(xié)議層報(bào)文FIFO中每個(gè)FIFO的寬度為單微包位寬,深度均與接收緩沖區(qū)的深度相同;發(fā)送緩沖區(qū)的深度和寬度均與接收緩沖區(qū)相同;重傳緩沖區(qū)寬度為N個(gè)單微包的數(shù)據(jù)位寬加上緩沖區(qū)的索引位寬,深度與接收緩沖區(qū)的深度相同。
      全文摘要
      本發(fā)明公開了一種多微包并行處理結(jié)構(gòu),目的是解決單微包處理結(jié)構(gòu)下物理層和鏈路層的帶寬不匹配,降低了結(jié)點(diǎn)控制器芯片對各處理器間通信的處理速度的問題。本發(fā)明由接口轉(zhuǎn)換模塊、接收模塊、接收緩沖區(qū)、報(bào)文分發(fā)模塊、第一協(xié)議層報(bào)文FIFO、第二協(xié)議層報(bào)文FIFO、鏈路狀態(tài)機(jī)、報(bào)文拼裝模塊、發(fā)送緩沖區(qū)、重傳緩沖區(qū)和發(fā)送模塊組成。接口轉(zhuǎn)換模塊工作在物理層時(shí)鐘域下,其它模塊工作在鏈路層時(shí)鐘域下。接口轉(zhuǎn)換模塊由異步接收FIFO和異步發(fā)送FIFO組成,接收模塊和發(fā)送模塊中的數(shù)據(jù)通路為針對多微包的多路并行數(shù)據(jù)通路,能并行處理多個(gè)微包。本發(fā)明可實(shí)現(xiàn)物理層/鏈路層的帶寬匹配,有效提高結(jié)點(diǎn)控制器芯片對各處理器間通信的處理速度。
      文檔編號H04L12/56GK102394732SQ201110262128
      公開日2012年3月28日 申請日期2011年9月6日 優(yōu)先權(quán)日2011年9月6日
      發(fā)明者夏軍, ??? 龐征斌, 張峻, 張建民, 徐煒遐, 徐金波, 王紹剛, 童元滿, 董德尊, 陸平靜, 齊星云 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1