一種多核處理器的dma控制器的制造方法
【專利摘要】本發(fā)明涉及一種多核處理器的DMA控制器,該DMA控制器包括訪問請求產(chǎn)生模塊和訪問應(yīng)答處理模塊,其中訪問請求產(chǎn)生模塊將地址發(fā)生器輸出的針對存儲系統(tǒng)的訪問地址,首先依據(jù)訪問地址的目的存儲器位置分類,再按照訪問地址產(chǎn)生順序發(fā)送訪問請求信息;訪問應(yīng)答處理模塊接收不同位置存儲器返回的訪問應(yīng)答數(shù)據(jù),從中解析出正確讀取順序的數(shù)據(jù),通過采用分類緩存的方法,實現(xiàn)對多塊存儲單元的快速連續(xù)訪問,而不必局限于針對同一存儲單元的所有訪問完成后再開始訪問另外的存儲單元,通過DMA控制器內(nèi)部多組先入先緩存器,實現(xiàn)數(shù)據(jù)在處理器內(nèi)部的快速分配,大大提高訪問效率,利于發(fā)揮多核并行處理的優(yōu)勢。
【專利說明】—種多核處理器的DMA控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種多核處理器的DMA控制器,特別是針對二維網(wǎng)格(mesh)架構(gòu)的多核處理器中,能夠連續(xù)訪問分布式存儲系統(tǒng)的DMA控制器,屬于微處理器【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]微處理器是現(xiàn)代數(shù)字信號系統(tǒng)的關(guān)鍵部件,在一些領(lǐng)域,如高精度測試、高速圖象處理、高速網(wǎng)絡(luò)、通信等,需要數(shù)據(jù)高速輸入輸出。如果依靠微處理器通過指令實現(xiàn)數(shù)據(jù)的輸入和輸出,將無法滿足這些領(lǐng)域?qū)Ω咄掏侣蕯?shù)據(jù)的要求。因此,許多微處理器都設(shè)計了DMA (Direct Memory Access)控制器接口。DMA是一種不需要執(zhí)行微處理器指令的數(shù)據(jù)傳輸機(jī)制,片內(nèi)DMA控制器使它的微處理器從大量數(shù)據(jù)傳輸?shù)呢?fù)擔(dān)中解放出來,它允許處理器指定數(shù)據(jù)傳輸方式,當(dāng)DMA控制器在后臺執(zhí)行數(shù)據(jù)傳輸任務(wù)時,微處理器可以返回到正常的程序處理流程繼續(xù)執(zhí)行。
[0003]現(xiàn)在,隨著微電子技術(shù)的發(fā)展,多核處理器已成為提高處理器性能的最佳途徑。目前具有代表性的有picochip公司的pcl02、tiler公司的tile64和BAEsystem公司的RADSPEED。
[0004]上面三種多核處理器,性能都很高。在由多核處理器構(gòu)成的復(fù)雜數(shù)據(jù)處理系統(tǒng)中,這些芯片的DMA傳遞特點如下:
[0005]V PC102沒有專用的DMA通道,對存儲器的訪問只能在預(yù)先分配的時間片內(nèi)才能實現(xiàn)。每個時間片占用2個clk,也就是,最快只能是2個elk實現(xiàn)一次對存儲器的訪問。由于受到片內(nèi)總線帶寬的限制,不允許在一定時間段內(nèi)所有的時間片全部用于DMA傳輸。
[0006]V Tile64中的處理單元排列成8*8的二維陣列,處理單元內(nèi)部有兩級cache。芯片可外接DDR2存儲器,能夠在外部存儲器與處理單元內(nèi)部二級cache間建立DMA通道。但每次DMA傳遞,處理單元只能與一塊存儲器實現(xiàn)數(shù)據(jù)的傳遞。
[0007]V RADSPEED片內(nèi)只有2個共享存儲器塊,190個處理單元,每個處理單元內(nèi)部有自己私有的存儲器。處理單元內(nèi)部存儲器支持與共享存儲器塊和處理單元間建立DMA通道。只有在相鄰處理單元間才能建立DMA傳遞。處理單元每次只能與一塊共享存儲器進(jìn)行DMA數(shù)據(jù)傳輸。
[0008]從上述分析可知,目前的微處理器,還不支持以DMA方式與多塊存儲器之間不斷跳躍的快速訪問模式,只能針對一塊存儲器進(jìn)行數(shù)據(jù)傳輸。這對于單核處理器中,由于存儲單元的規(guī)模比較大(如TS201的每塊存儲單元為8Mb)或者是共享總線結(jié)構(gòu)(如TMS320C6713),影響不大。但對于分布式多核處理器,由于存儲器位于芯片的不同位置,使得訪問這些存儲器的延遲是不同的。如果存儲器訪問地址跳躍幅度比較大,從不同位置存儲器返回得到的數(shù)據(jù)順序可能與訪問順序不一致,導(dǎo)致數(shù)據(jù)訪問混亂。如果不能實現(xiàn)以DMA方式與多塊存儲器之間不斷切換的快速訪問,將限制多核處理器并行性能的發(fā)揮。
[0009]發(fā)明目的
[0010]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的上述不足,提供一種多核處理器的DMA控制器,該多核處理器的DMA控制器可以快速讀寫分布式的共享存儲系統(tǒng),提高訪問效率,實現(xiàn)數(shù)據(jù)在處理器內(nèi)部的快速分配,利于發(fā)揮多核并行處理的優(yōu)勢,同時避免出現(xiàn)訪問返回得到的數(shù)據(jù)順序與訪問順序不一致情況的發(fā)生。
[0011]本發(fā)明的上述目的主要是通過如下技術(shù)方案予以實現(xiàn)的:
[0012]一種多核處理器的DMA控制器,包括訪問請求產(chǎn)生模塊和訪問應(yīng)答處理模塊,其中訪問請求產(chǎn)生模塊包括32位地址發(fā)生器101、第一先入先出緩存器102、第一寄存器組103、第一組合數(shù)據(jù)線106、第二組合數(shù)據(jù)線107、第三組合數(shù)據(jù)線108、第二先入先出緩存器105、第一邏輯單元104、第一位或運算單元117、第一計數(shù)器118、第二邏輯單元111、第二位或運算單元119、第二計數(shù)器115和第三邏輯單元116,其中:
[0013]32位地址發(fā)生器101:將內(nèi)部初始值加上或者減去一個數(shù)值,并將運算結(jié)果輸出給第一先入先出緩存器102 ;
[0014]第一先入先出緩存器102:接收32位地址發(fā)生器101輸出的位寬為32位的數(shù)據(jù)進(jìn)行緩存;
[0015]第一寄存器組103:為查詢表結(jié)構(gòu),接收第一先入先出緩存器102輸出的32位數(shù)據(jù)中的位19到位16四位二進(jìn)制數(shù),進(jìn)行邏輯判斷后輸出對應(yīng)訪問目的地址坐標(biāo)的6位二進(jìn)制數(shù);
[0016]第一組合數(shù)據(jù)線106:傳輸?shù)谝幌热胂瘸鼍彺嫫?02輸出的32位地址數(shù)據(jù)、第一計數(shù)器118輸出的8位二進(jìn)制數(shù)和第一寄存器組103輸出6位二進(jìn)制數(shù);
[0017]第二組合數(shù)據(jù)線107:傳輸?shù)诙热胂瘸鼍彺嫫?05輸出數(shù)據(jù)的位5至位O和第二先入先出緩存器105的空狀態(tài)標(biāo)志和滿狀態(tài)標(biāo)志;
[0018]第三組合數(shù)據(jù)線108:傳輸?shù)诙热胂瘸鼍彺嫫?05輸出的46位數(shù)據(jù)和第二先入先出緩存器105的空狀態(tài)標(biāo)志;
[0019]第二先入先出緩存器105:接收第一組合數(shù)據(jù)線106輸出的數(shù)據(jù)并進(jìn)行緩存;
[0020]第一邏輯單元104:接收第一寄存器組103與第二組合數(shù)據(jù)線107輸出的數(shù)據(jù),采用第一組合邏輯,實現(xiàn)對四個第二先入先出緩存器105的寫使能信號的控制,使得四個第二先入先出緩存器105中僅有一個寫使能信號有效,其中第一組合邏輯的判斷依據(jù)為:將第一寄存器組103輸出的數(shù)據(jù)與第二組合數(shù)據(jù)線107輸出數(shù)據(jù)的位7到位2進(jìn)行比較,若兩個數(shù)據(jù)相等,則再次判斷第二先入先出緩存器105的滿標(biāo)志是否置位,如果未置位,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的寫信號設(shè)置為I ;若兩個數(shù)據(jù)不相等,則再次判斷第二先入先出緩存器105的空標(biāo)志是否置位,如果置位,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的寫信號設(shè)置為I ;
[0021]第一位或運算單元117:接收第一邏輯單元104輸出的數(shù)據(jù),進(jìn)行位或運算,將運算結(jié)果分別輸出給第一計數(shù)器118和第一先入先出緩存器102的讀使能端;
[0022]第一計數(shù)器118:接收第一位或運算單元117輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果通過第一組合數(shù)據(jù)線106進(jìn)行傳輸;
[0023]第二邏輯單元111:接收第二計數(shù)器115和第三組合數(shù)據(jù)線108輸出的數(shù)據(jù),采用第二組合邏輯,實現(xiàn)對四個第二先入先出緩存器105的讀使能信號的控制,使得四個第二先入先出緩存器105中僅有一個讀使能信號有效,輸出為兩路數(shù)據(jù),一路數(shù)據(jù)為第二先入先出緩存器105的讀使能信號112,另外一路通過數(shù)據(jù)線114進(jìn)行傳輸,其中第二組合邏輯的判斷依據(jù)為:判斷第二先入先出緩存器105的空標(biāo)志是否為O ;若為0,則依次判斷第二計數(shù)器115輸出的數(shù)據(jù)是否與四個輸入第三組合數(shù)據(jù)線108中位13至位6相等,如果至少一個相等,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的讀信號設(shè)置為1,同時通過數(shù)據(jù)線114輸出第三組合數(shù)據(jù)線108的位45至位O數(shù)據(jù),如果全不相等,則輸出4位二進(jìn)制數(shù)據(jù)為O ;若不為0,則輸出4位二進(jìn)制數(shù)據(jù)為0,數(shù)據(jù)線114輸出為O ;
[0024]第二位或運算單元119:接收第二邏輯單元111輸出的讀使能信號112,進(jìn)行位或運算,將運算結(jié)果分別輸出給第二計數(shù)器115和第三邏輯單元116 ;
[0025]第二計數(shù)器115:接收第二位或運算單元119輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果輸出給第二邏輯單元111 ;
[0026]第三邏輯單元116:為第一時序邏輯電路,接收數(shù)據(jù)線114輸出的數(shù)據(jù)和第二位或運算單元119的輸出的數(shù)據(jù),產(chǎn)生訪問數(shù)據(jù)包;
[0027]所述訪問應(yīng)答處理模塊包括第三先入先出緩存器202、第四邏輯單元203、第四先入先出緩存器207、第六組合數(shù)據(jù)線208、第七組合數(shù)據(jù)線209、第五邏輯單元206、第三位或運算單元211、第三計數(shù)器212、第六邏輯單元210和第五先入先出緩存器213,其中:
[0028]第三先入先出緩存器202:緩存訪問應(yīng)答數(shù)據(jù),并輸出給第四邏輯單元203 ;
[0029]第四邏輯單元203:為第二時序邏輯電路,接收第三先入先出緩存器202輸出的數(shù)據(jù),將串行接收的數(shù)據(jù)并行化處理,并將并行化處理后的數(shù)據(jù)通過第四組合數(shù)據(jù)線204和第五組合數(shù)據(jù)線205傳輸,其中第二時序邏輯電路產(chǎn)生規(guī)則為:第四組合數(shù)據(jù)線204,位寬為46位,按從高位到低位的順序,當(dāng)接收第三先入先出緩存器202輸出的數(shù)據(jù)位33至位32為二進(jìn)制數(shù)10時,第四組合數(shù)據(jù)線204的位45至位14為第三先入先出緩存器202輸出數(shù)據(jù)中位31至位O的二進(jìn)制數(shù);當(dāng)接收第三先入先出緩存器202輸出的數(shù)據(jù)位33至位32為二進(jìn)制數(shù)11時,第四組合數(shù)據(jù)線204的位13至位O為第三先入先出緩存器202輸出數(shù)據(jù)中位13至位O的二進(jìn)制數(shù);第五組合數(shù)據(jù)線205位寬為6位,為接收第三先入先出緩存器202輸出數(shù)據(jù)中位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202中位5至位O的二進(jìn)制數(shù);
[0030]第四先入先出緩存器207:接收第四邏輯單元203輸出的數(shù)據(jù)并進(jìn)行緩存;
[0031]第六組合數(shù)據(jù)線208:傳輸?shù)谒南热胂瘸鼍彺嫫?07輸出的位5至位O和第四先入先出緩存器207的空狀態(tài)標(biāo)志和滿狀態(tài)標(biāo)志;
[0032]第七組合數(shù)據(jù)線209:傳輸?shù)谒慕M合數(shù)據(jù)線204數(shù)據(jù)和第四先入先出緩存器207的空狀態(tài)標(biāo)志;
[0033]第五邏輯單元206:接收第六組合數(shù)據(jù)線208和第五組合數(shù)據(jù)線205輸入的數(shù)據(jù),采用第三組合邏輯,實現(xiàn)對四個第四先入先出緩存器207的寫使能信號的控制,使得四個第四先入先出緩存器207中僅有一個寫使能信號有效,其中第三組合邏輯的判斷依據(jù)為:將第五組合數(shù)據(jù)線205的6位數(shù)據(jù)分別與第六組合數(shù)據(jù)線208中位7至位2表示的數(shù)據(jù)相比較,若兩個數(shù)據(jù)相等則再次判斷第六組合數(shù)據(jù)線208中位O表示的滿標(biāo)志是否置位,如果未置位,將輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的寫信號設(shè)置為1,如果置位,將輸出4位二進(jìn)制數(shù)據(jù)設(shè)置為O ;若兩個數(shù)據(jù)不相等,則再次判斷第六組合數(shù)據(jù)線208中位I表示的空標(biāo)志是否置位,如果置位,將輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的寫信號設(shè)置為I,如果未置位,將輸出4位二進(jìn)制數(shù)據(jù)設(shè)置為O ;[0034]第三位或運算單元211:接收第六邏輯單元210輸出的讀使能信號211,進(jìn)行位或運算后將運算結(jié)果輸出給第三計數(shù)器212 ;
[0035]第三計數(shù)器212:接收第三位或運算單元211輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果輸出給第六邏輯單元210 ;
[0036]第六邏輯單元210:接收第七組合數(shù)據(jù)線209和第三計數(shù)器212的輸出數(shù)據(jù),采用第四組合邏輯,實現(xiàn)對四個第四先入先出緩存器207的讀使能信號的控制,使得四個第四先入先出緩存器207中僅有一個讀使能信號有效,輸出為兩路數(shù)據(jù),一路數(shù)據(jù)為第四先入先出緩存器207的讀使能信號211,另外一路通過組合數(shù)據(jù)線214進(jìn)行傳輸,其中第四組合邏輯的判斷依據(jù)為:判斷四個輸入的第七組合數(shù)據(jù)線209中位46是否全部為1,如果不全部為1,則依次判斷第三計數(shù)器212輸出的8位二進(jìn)制數(shù)據(jù)是否與四個輸入第七組合數(shù)據(jù)線209中位13至位6相等;如果至少一個相等,輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的讀信號設(shè)置為1,同時通過組合數(shù)據(jù)線214輸出數(shù)據(jù);如果全部不相等,輸出4位讀使能信號211各位為0,組合數(shù)據(jù)線214輸出33位數(shù)據(jù)全部為O ;如果全部為1,輸出4位讀使能信號211各位為0,組合數(shù)據(jù)線214輸出33位數(shù)據(jù)全部為O。
[0037]第五先入先出緩存器213:接收組合數(shù)據(jù)線214輸入的數(shù)據(jù)并進(jìn)行緩存。
[0038]在上述多核處理器的DMA控制器中,第一組合數(shù)據(jù)線106的數(shù)據(jù)格式為:位寬為46位,按從高位到低位的順序,位45至位14為第一先入先出緩存器102輸出的32位數(shù)據(jù),位13至位6為第一計數(shù)器118輸出的8位數(shù)據(jù),位5至位O為第一寄存器組103輸出的6位數(shù)據(jù)。
[0039]在上述多核處理器的DMA控制器中,第二組合數(shù)據(jù)線107的數(shù)據(jù)格式為:位寬為8位,按從高位到低位的順序,位7至位2為第二先入先出緩存器105輸出的位5至位O數(shù)據(jù),位I為第二先入先出緩存器105的空狀態(tài)標(biāo)志,位O為第二先入先出緩存器105的滿狀態(tài)標(biāo)志。
[0040]在上述多核處理器的DMA控制器中,第三組合數(shù)據(jù)線108的數(shù)據(jù)格式為:位寬為47位,按從高位到低位的順序,位45至位O為第二先入先出緩存器105輸出的46位數(shù)據(jù),位46為第二先入先出緩存器105的空狀態(tài)標(biāo)志。
[0041]在上述多核處理器的DMA控制器中,第三邏輯單元116中數(shù)據(jù)包的格式為:在第一個時鐘周期內(nèi),輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)11,位13至位O為第二邏輯單元111輸出數(shù)據(jù)線114的位13至位O數(shù)據(jù),其余位為O ;在第二個時鐘周期內(nèi),輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)10,位31至位O為第二邏輯單元111輸出數(shù)據(jù)線114的位45至位14數(shù)據(jù)。
[0042]在上述多核處理器的DMA控制器中,第三先入先出緩存器202的數(shù)據(jù)格式為:位寬為34位,按從高位到低位順序,位33為數(shù)據(jù)有效位,位32為數(shù)據(jù)傳遞起始位,輸入應(yīng)答數(shù)據(jù)包由2個34位數(shù)據(jù)字組成,第一個傳輸字的位33至位32為二進(jìn)制數(shù)11,位13至位6為應(yīng)答數(shù)據(jù)包的幀號,位5至位O為表示數(shù)據(jù)發(fā)送端位置的6位二進(jìn)制數(shù),其余位為O ;第二個傳輸字的33至位32為二進(jìn)制數(shù)10,位31至位O為32位數(shù)據(jù)。
[0043]在上述多核處理器的DMA控制器中,第四邏輯單元203中并行處理方法為:第四組合數(shù)據(jù)線204位寬為46位,按從高位到低位的順序,第四組合數(shù)據(jù)線204的位45至位14為在第三先入先出緩存器202輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)10時,第三先入先出緩存器202輸出數(shù)據(jù)的位31至位O的二進(jìn)制數(shù);位13至位O為第三先入先出緩存器202輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202輸出數(shù)據(jù)的位13至位O的二進(jìn)制數(shù);第五組合數(shù)據(jù)線205位寬為6位,為第三先入先出緩存器202輸出的34位數(shù)據(jù)中當(dāng)位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202中位5至位O的二進(jìn)制數(shù)。
[0044]在上述多核處理器的DMA控制器中,第六組合數(shù)據(jù)線208中數(shù)據(jù)格式按從高位到低位的順序為--位7至位2為第四先入先出緩存器207輸出的位5至位O數(shù)據(jù),位I為第四先入先出緩存器207的空狀態(tài)標(biāo)志,位O為第四先入先出緩存器207的滿狀態(tài)標(biāo)志。
[0045]在上述多核處理器的DMA控制器中,第七組合數(shù)據(jù)線209中數(shù)據(jù)格式按從高位到低位的順序為--位45至位O為第四先入先出緩存器207輸出的46位數(shù)據(jù),位46為第四先入先出緩存器207的空狀態(tài)標(biāo)志。
[0046]在上述多核處理器的DMA控制器中,組合數(shù)據(jù)線214中數(shù)據(jù)格式按從高位到低位的順序為--位32為第七組合數(shù)據(jù)線209中位46 二進(jìn)制數(shù)的相反數(shù),位31至位O為第七組合數(shù)據(jù)線209中位45至位14。
[0047]本發(fā)明與現(xiàn)有技術(shù)相比具有如下有益效果:
[0048](I)、本發(fā)明對多核處理器的DMA控制器結(jié)構(gòu)進(jìn)行創(chuàng)新設(shè)計,DMA控制器包括訪問請求產(chǎn)生模塊和訪問應(yīng)答處理模塊,其中訪問請求產(chǎn)生模塊將地址發(fā)生器輸出的針對存儲系統(tǒng)的訪問地址,首先依據(jù)訪問地址的目的存儲器位置分類,再按照訪問地址產(chǎn)生順序發(fā)送訪問請求信息;訪問應(yīng)答處理模塊接收不同位置存儲器返回的訪問應(yīng)答數(shù)據(jù),從中解析出正確讀取順序的數(shù)據(jù),通過采用分類緩存的方法,實現(xiàn)對多塊存儲單元的快速連續(xù)訪問,而不必局限于針對同一存儲單元的所有訪問完成后再開始訪問另外的存儲單元,通過DMA控制器內(nèi)部多組先入先緩存器·,實現(xiàn)數(shù)據(jù)在處理器內(nèi)部的快速分配,大大提高訪問效率,利于發(fā)揮多核并行處理的優(yōu)勢。
[0049](2)、本發(fā)明設(shè)計的DMA控制器,支持針對4處不同坐標(biāo)的存儲單元的快速訪問,將針對不同存儲單元的訪問各自劃分為一類,并進(jìn)行緩存,按幀號從O到Oxff的順序進(jìn)行發(fā)送和接收,如果希望增加快速訪問存儲單元的數(shù)目,僅需要增加緩存的數(shù)量即可,實現(xiàn)方式靈活,可擴(kuò)展性強(qiáng)。
[0050](3)、本發(fā)明設(shè)計的DMA控制器,不但適用于網(wǎng)格架構(gòu)的多核處理器,還可應(yīng)用于所有涉及以連續(xù)方式訪問多塊存儲單元的電路,具有較廣應(yīng)用范圍和較強(qiáng)的實用性。
【專利附圖】
【附圖說明】
[0051]圖1為本發(fā)明多核處理器的DMA控制器中訪問請求產(chǎn)生模塊結(jié)構(gòu)示意圖;
[0052]圖2為本發(fā)明多核處理器的DMA控制器中訪問應(yīng)答處理模塊結(jié)構(gòu)示意圖;
[0053]其中:32位地址發(fā)生器101、第一先入先出緩存器102、第一寄存器組103、第一組合數(shù)據(jù)線106、第二組合數(shù)據(jù)線107、第三組合數(shù)據(jù)線108、第二先入先出緩存器105、第一邏輯單元104、第一位或運算單元117、第一計數(shù)器118、第二邏輯單元111、第二位或運算單元119、第二計數(shù)器115、第三邏輯單元116、第三先入先出緩存器202、第四邏輯單元203、第四先入先出緩存器207、第六組合數(shù)據(jù)線208、第七組合數(shù)據(jù)線209、第五邏輯單元206、第三位或運算單元211、第三計數(shù)器212、第六邏輯單元210、第五先入先出緩存器213?!揪唧w實施方式】
[0054]下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步詳細(xì)的描述:
[0055]基于二維網(wǎng)格架構(gòu)的多核處理器,內(nèi)部總線網(wǎng)絡(luò)包括水平數(shù)據(jù)線和垂直數(shù)據(jù)線,在水平數(shù)據(jù)線和垂直數(shù)據(jù)線的交叉點處連接微處理器IP、存儲器單元。以水平方向為X軸,垂直方向為Y軸,左上角交叉點為原點,建立二維坐標(biāo)平面。則交叉點處連接的微處理器核、存儲器單元的位置可以通過坐標(biāo)表示,坐標(biāo)以(X,y)方式表示,X軸正方向向右,y軸正方向向下。數(shù)據(jù)信息在內(nèi)部總線中按照X-Y蟲蠕維序模式傳遞,根據(jù)數(shù)據(jù)信息的起始坐標(biāo)和目的坐標(biāo),先沿X軸傳遞,每次只能前進(jìn)一個坐標(biāo)距離,當(dāng)?shù)竭_(dá)的交叉點地X坐標(biāo)與目的坐標(biāo)X軸一致時,再沿Y軸傳遞,每次前進(jìn)一個坐標(biāo)距離,直到到達(dá)目的坐標(biāo)。
[0056]本發(fā)明多核處理器片內(nèi)存儲系統(tǒng),由多個不同坐標(biāo)位置的存儲單元構(gòu)成,每個存儲單元的存儲空間為64KB,其中DMA控制器由訪問請求產(chǎn)生模塊和訪問應(yīng)答處理模塊兩部分組成:
[0057]訪問請求產(chǎn)生模塊,將地址發(fā)生器輸出的針對存儲系統(tǒng)的訪問地址,首先依據(jù)訪問地址的目的存儲器位置分類,再按照訪問地址產(chǎn)生順序發(fā)送訪問請求信息。
[0058]訪問應(yīng)答處理模塊,接收不同位置存儲器返回的訪問應(yīng)答數(shù)據(jù),從中解析出正確讀取順序的數(shù)據(jù)。
[0059]如圖1所示本發(fā)明多核處理器的DMA控制器中訪問請求產(chǎn)生模塊結(jié)構(gòu)示意圖,由圖可知訪問請求產(chǎn)生模塊包括32位地址發(fā)生器101、第一先入先出緩存器102、第一寄存器組103、第一組合數(shù)據(jù)線106、第二組合數(shù)據(jù)線107、第三組合數(shù)據(jù)線108、第二先入先出緩存器105、第一邏輯單元104、第一位或運算單元117、第一計數(shù)器118、第二邏輯單元111、第二位或運算單元119、第二計數(shù)器115和第三邏輯單元116,其中:
[0060]32位地址發(fā)生器101:功能是按照遞增或者遞減的規(guī)則,將內(nèi)部初始值加上或者減去一個數(shù)值,并將運算結(jié)果輸出給第一先入先出緩存器102,作為訪問片內(nèi)分布式共享存儲器的地址。輸出與第一先入先出緩存器102的數(shù)據(jù)輸入端連接。此輸出數(shù)據(jù)是位寬為32的二進(jìn)制數(shù),按從高位到低位的順序,最高位為位31,最低位為位O。
[0061]第一先入先出緩存器(FIFO) 102:位寬為32位,作用是緩存地址發(fā)生器101輸出的數(shù)據(jù)。
[0062]第一寄存器組103:查詢表結(jié)構(gòu)。輸入為4位二進(jìn)制數(shù),對應(yīng)第一先入先出緩存器102輸出32位數(shù)據(jù)中的位19到位16,輸出為對應(yīng)分布式存儲器位置的6位二進(jìn)制數(shù)。此輸入與輸出對應(yīng)表在設(shè)計分布式存儲系統(tǒng)結(jié)構(gòu)存儲空間分配時已經(jīng)確定,直接固化在寄存器組內(nèi)。第一寄存器組103輸出與第一邏輯單元104連接。
[0063]第一組合數(shù)據(jù)線106:位寬為46位,由第一先入先出緩存器102輸出的32位地址數(shù)據(jù)、第一計數(shù)器118輸出的8位二進(jìn)制數(shù)和第一寄存器組103輸出的6位二進(jìn)制數(shù)組合形成。按從高位到低位的順序,位45至位14為第一先入先出緩存器102輸出的32位數(shù)據(jù),位13至位6為第一計數(shù)器118輸出的8位數(shù)據(jù),位5至位O為第一寄存器組103輸出的6位數(shù)據(jù)。
[0064]第二組合數(shù)據(jù)線107:位寬為8位,由第二先入先出緩存器105輸出的位5至位O和第二先入先出緩存器105的空狀態(tài)標(biāo)志和滿狀態(tài)標(biāo)志組合形成。按從高位到低位的順序,位7至位2為第二先入先出緩存器105輸出的位5至位O數(shù)據(jù),位I為第二先入先出緩存器105的空狀態(tài)標(biāo)志,位O為第二先入先出緩存器105的滿狀態(tài)標(biāo)志。第二組合數(shù)據(jù)線與第一邏輯單元104相連接。
[0065]第三組合數(shù)據(jù)線108:位寬為47位。由第二先入先出緩存器105輸出的46位數(shù)據(jù)和第二先入先出緩存器105的空狀態(tài)標(biāo)志組合形成。按從高位到低位的順序,位45至位O為第二先入先出緩存器105輸出的46位數(shù)據(jù),位46為第二先入先出緩存器105的空狀態(tài)標(biāo)志。第三組合數(shù)據(jù)線108與第二邏輯單元111連接。
[0066]第二先入先出緩存器105:位寬為46位,接收第一組合數(shù)據(jù)線106輸出的數(shù)據(jù)并進(jìn)行緩存。如圖1,有4個第二先入先出緩存器105,第一組合數(shù)據(jù)線106與第二先入先出緩存器105數(shù)據(jù)輸入端相連接。每個第二先入先出緩存器105都有對應(yīng)的第二組合數(shù)據(jù)線107和第三組合數(shù)據(jù)線108。
[0067]第一邏輯單元104:接收第一寄存器組103與第二組合數(shù)據(jù)線107輸出的數(shù)據(jù),采用第一組合邏輯,實現(xiàn)對四個第二先入先出緩存器105的寫使能信號的控制,使得四個第二先入先出緩存器105中僅有一個寫使能信號有效。
[0068]第一組合邏輯的判斷依據(jù)為:將第一寄存器組103輸出的數(shù)據(jù)與第二組合數(shù)據(jù)線107輸出數(shù)據(jù)的位7到位2進(jìn)行比較,若兩個數(shù)據(jù)相等則再次判斷第二先入先出緩存器105的滿標(biāo)志是否置位,如果未置位,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的寫信號設(shè)置為‘I’ ;若兩個數(shù)據(jù)不相等,則再次判斷第二先入先出緩存器105的空標(biāo)志是否置位,如果置位,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的寫信號設(shè)置為‘I’。
[0069]第一位或運算單117元:接收第一邏輯單元104輸出的數(shù)據(jù),進(jìn)行位或運算,將運算結(jié)果分別輸出給第一計數(shù)器118和第一先入先出緩存器102的讀使能端。
[0070]第一計數(shù)器118:是8位計數(shù)器,初始值為0,針對輸入脈沖信號計數(shù)。接收第一位或運算單元117輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果通過第一組合數(shù)據(jù)線106進(jìn)行傳輸.[0071 ] 第二邏輯單元111:接收第二計數(shù)器115和第三組合數(shù)據(jù)線108輸出的數(shù)據(jù),采用第二組合邏輯,實現(xiàn)對四個第二先入先出緩存器105的讀使能信號的控制,使得四個第二先入先出緩存器105中僅有一個讀使能信號有效,輸出為兩路數(shù)據(jù),一路數(shù)據(jù)為第二先入先出緩存器105的讀使能信號112,另外一路通過數(shù)據(jù)線114進(jìn)行傳輸。
[0072]第二組合邏輯的判斷依據(jù)為:判斷第二先入先出緩存器105的空標(biāo)志是否為O ;若為0,則依次判斷第二計數(shù)器115輸出的數(shù)據(jù)是否與四個輸入第三組合數(shù)據(jù)線108中位13至位6是否相等,如果全部相等或至少一個相等,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的讀信號設(shè)置為1,同時通過數(shù)據(jù)線114輸出數(shù)據(jù);如果全不相等,則輸出4位二進(jìn)制數(shù)據(jù)為O ;若不為0,則輸出4位二進(jìn)制數(shù)據(jù)為O。
[0073]第二位或運算單元119:接收第二邏輯單元111輸出的讀使能信號112,進(jìn)行位或運算,將運算結(jié)果分別輸出給第二計數(shù)器115和第三邏輯單元116。
[0074]第二計數(shù)器115:是8位計數(shù)器,初始值為0,針對輸入脈沖信號計數(shù)。接收第二位或運算單元119輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果輸出給第二邏輯單元111。
[0075]第三邏輯單元116:為第一時序邏輯電路,接收第二邏輯單元111輸出的位寬為47位的數(shù)據(jù)114和第二位或運算單元119的輸出的數(shù)據(jù),產(chǎn)生訪問數(shù)據(jù)包。數(shù)據(jù)包的格式為:在第一個時鐘周期內(nèi),輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)‘11’,位13至位O為第二邏輯單元111輸出數(shù)據(jù)114的位13至位O數(shù)據(jù),其余位為O ;在第二個時鐘周期內(nèi),輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)10,位31至位O為第二邏輯單元111輸出數(shù)據(jù)114的位45至位14數(shù)據(jù);
[0076]如圖2所示為本發(fā)明多核處理器的DMA控制器中訪問應(yīng)答處理模塊結(jié)構(gòu)示意圖,由圖可知,訪問應(yīng)答處理模塊包括第三先入先出緩存器202、第四邏輯單元203、第四先入先出緩存器207、第六組合數(shù)據(jù)線208、第七組合數(shù)據(jù)線209、第五邏輯單元206、第三位或運算單元211、第三計數(shù)器212、第六邏輯單元210和第五先入先出緩存器213,其中:
[0077]第三先入先出緩存器202:緩存訪問應(yīng)答數(shù)據(jù),并輸出給第四邏輯單元203。第三先入先出緩存器202的數(shù)據(jù)格式為:位寬為34位,按從高位到低位順序,位33為數(shù)據(jù)有效位,位32為數(shù)據(jù)傳遞起始位。輸入應(yīng)答數(shù)據(jù)包由2個34位數(shù)據(jù)字組成,第一個傳輸字的位33至位32為二進(jìn)制數(shù)‘11’,位13至位6為應(yīng)答數(shù)據(jù)包的幀號,位5至位O為表示數(shù)據(jù)發(fā)送端位置的6位二進(jìn)制數(shù),其余位為‘0’ ;第二個傳輸字的33至位32為二進(jìn)制數(shù)‘10’,位31至位O為32位數(shù)據(jù)。
[0078]第四邏輯單元203:是第二時序邏輯電路,接收第三先入先出緩存器202輸出的34位數(shù)據(jù),將34位數(shù)據(jù)進(jìn)行并行化處理,并將并行化處理后的數(shù)據(jù)通過第四組合數(shù)據(jù)線204和第五組合數(shù)據(jù)線205傳輸。第四邏輯單元203中進(jìn)行并行處理方法為:第四組合數(shù)據(jù)線204位寬為46位,按從高位到低位的順序,位45至位14為第三先入先出緩存器202輸出的34位數(shù)據(jù)中,當(dāng)位33至位32為二進(jìn)制數(shù)10時的位31至位O的二進(jìn)制數(shù);位13至位O為第三先入先出緩存器202輸出的34位數(shù)據(jù)中,當(dāng)位33至位32為二進(jìn)制數(shù)11時位13至位O的二進(jìn)制數(shù)。第五組合數(shù)據(jù)線205位寬為6位,為第三先入先出緩存器202輸出的34位數(shù)據(jù)中當(dāng)位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202中位5至位O的二進(jìn)制數(shù)。第四組合數(shù)據(jù)線204與第四先入先出緩存器207的數(shù)據(jù)輸入端連接,第五組合數(shù)據(jù)線205輸入第五邏輯單兀206。
[0079]第四先入先出緩存器207:接收第四邏輯單元203輸出的數(shù)據(jù)并進(jìn)行緩存。位寬為46位。
[0080]第六組合數(shù)據(jù)線208:位寬為8位,傳輸?shù)谒南热胂瘸鼍彺嫫?07輸出的位5至位O和第四先入先出緩存器207的空狀態(tài)標(biāo)志和滿狀態(tài)標(biāo)志。第六組合數(shù)據(jù)線208中數(shù)據(jù)格式按從高位到低位的順序為--位7至位2為第四先入先出緩存器207輸出的位5至位O數(shù)據(jù),位I為第四先入先出緩存器207的空狀態(tài)標(biāo)志,位O為第四先入先出緩存器207的滿狀態(tài)標(biāo)志。第六組合數(shù)據(jù)線208與第五邏輯單元206相連接。
[0081]第七組合數(shù)據(jù)線209:位寬為47位。傳輸?shù)谒南热胂瘸鼍彺嫫?07輸出的46位數(shù)據(jù)和第四先入先出緩存器207的空狀態(tài)標(biāo)志。第七組合數(shù)據(jù)線209中數(shù)據(jù)格式按從高位到低位的順序為--位45至位O為第四先入先出緩存器207輸出的46位數(shù)據(jù),位46為第四先入先出緩存器207的空狀態(tài)標(biāo)志。第七組合數(shù)據(jù)線209與第六邏輯單元210連接。
[0082]在圖2中,有四個結(jié)構(gòu)相同的第四先入先出緩存器207,每個第四先入先出緩存器207都存在對應(yīng)的第六組合數(shù)據(jù)線208、第七組合數(shù)據(jù)線209。
[0083]第五邏輯單元206:接收第六組合數(shù)據(jù)線208和第五組合數(shù)據(jù)線205輸入的數(shù)據(jù),采用第三組合邏輯,實現(xiàn)對四個第四先入先出緩存器207的寫使能信號的控制,使得四個第四先入先出緩存器207中僅有一個寫使能信號有效。
[0084]第三組合邏輯的判斷依據(jù)為:將第五組合數(shù)據(jù)線205的6位數(shù)據(jù)分別與第六組合數(shù)據(jù)線208中位7至位2表示的數(shù)據(jù)相比較,若兩個數(shù)據(jù)相等則再次判斷第六組合數(shù)據(jù)線208中位O表示的滿標(biāo)志是否置位,如果未置位,將輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的寫信號設(shè)置為‘I’,若兩個數(shù)據(jù)不相等,則再次判斷第六組合數(shù)據(jù)線208中位I表示的空標(biāo)志是否置位,如果置位,將輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的寫信號設(shè)置為‘I’。
[0085]第三位或運算單元211:接收第六邏輯單元210輸出的讀使能信號211,進(jìn)行位或運算后將運算結(jié)果輸出給第三計數(shù)器212。
[0086]第三計數(shù)器212:是8位計數(shù)器,初始值為0,針對輸入脈沖信號計數(shù)。接收第三位或運算單元211輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果輸出給第六邏輯單元210。
[0087]第六邏輯單元210:接收分別為4個第四先入先出緩存器207對應(yīng)的第七組合數(shù)據(jù)線209和第三計數(shù)器212的輸出數(shù)據(jù),采用第四組合邏輯,實現(xiàn)對四個第四先入先出緩存器207的讀使能信號的控制,使得四個第四先入先出緩存器207中僅有一個讀使能信號有效,輸出為兩路數(shù)據(jù),針對第四先入先出緩存器207的讀使能信號211,和位寬為33位的組合數(shù)據(jù)線214。讀使能信號211位寬為4,分別與第四先入先出緩存器207的讀使能端連接。組合數(shù)據(jù)線214與第五先入先出緩存器213相連接。
[0088]第四組合邏輯的判斷依據(jù)為:判斷四個輸入的第七組合數(shù)據(jù)線209中位46是否全部為1,如果不全部為1,則依次判斷第三計數(shù)器212輸出的8位二進(jìn)制數(shù)據(jù)是否與四個輸入第七組合數(shù)據(jù)線209中位13至位6相等;如果全部相等或者至少一個相等,輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的讀信號設(shè)置為‘1’,同時通過組合數(shù)據(jù)線214輸出數(shù)據(jù);如果全部不相等,輸出4位讀使能信號211各位為‘0’,組合數(shù)據(jù)線214輸出33位數(shù)據(jù)全部為‘0’。如果全部為1,輸出4位讀使能信號211各位為‘0’,組合數(shù)據(jù)線214輸出33位數(shù)據(jù)全部為‘O’。
[0089]第五先入先出緩存器213:接收組合數(shù)據(jù)線214輸入的數(shù)據(jù)并進(jìn)行緩存,位寬為33位。
[0090]在采用分布式存儲系統(tǒng),DMA控制器訪問不同存儲單元的延遲是不同的。本發(fā)明能夠保證避免出現(xiàn)訪問返回得到的數(shù)據(jù)順序與訪問順序不一致情況的發(fā)生。
[0091]本發(fā)明二維網(wǎng)格架構(gòu)的高性能多核處理器芯片中DMA控制器模塊具有如下特點:
[0092]一、實現(xiàn)針對分布式存儲系統(tǒng)中位于不同位置的存儲單元的連續(xù)訪問,連續(xù)讀取處理器內(nèi)部分布式存儲系統(tǒng)中數(shù)據(jù)或者將數(shù)據(jù)連續(xù)寫入分布式存儲系統(tǒng)。
[0093]二、支持以地址大范圍跳躍的方式訪問分布式存儲系統(tǒng)中位于多個不同位置的存儲單元。不會出現(xiàn)在訪問不同存儲單元時,必須等待針對前一個存儲單元的訪問結(jié)束后,再開始針對另一存儲單元訪問的情況。
[0094]三、能夠按照訪問分布式存儲系統(tǒng)的先后順序自動整理返回的數(shù)據(jù),得到正確順序的數(shù)據(jù)。在訪問位于不同坐標(biāo)處存儲單元時,訪問數(shù)據(jù)所經(jīng)過的路徑長度是不一致的,導(dǎo)致的訪問延遲不同,從而使得返回的數(shù)據(jù)無法確保對應(yīng)訪問請求的先后順序。此設(shè)計單元能夠?qū)Ψ祷氐臄?shù)據(jù)進(jìn)行自動調(diào)整,得到正確的順序數(shù)據(jù)。[0095]以上所述,僅為本發(fā)明最佳的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
[0096]本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種多核處理器的DMA控制器,其特征在于:包括訪問請求產(chǎn)生模塊和訪問應(yīng)答處理模塊,其中訪問請求產(chǎn)生模塊包括32位地址發(fā)生器101、第一先入先出緩存器102、第一寄存器組103、第一組合數(shù)據(jù)線106、第二組合數(shù)據(jù)線107、第三組合數(shù)據(jù)線108、第二先入先出緩存器105、第一邏輯單元104、第一位或運算單元117、第一計數(shù)器118、第二邏輯單元.111、第二位或運算單元119、第二計數(shù)器115和第三邏輯單元116,其中: 32位地址發(fā)生器101:將內(nèi)部初始值加上或者減去一個數(shù)值,并將運算結(jié)果輸出給第一先入先出緩存器102 ; 第一先入先出緩存器102:接收32位地址發(fā)生器101輸出的位寬為32位的數(shù)據(jù)進(jìn)行緩存; 第一寄存器組103:為查詢表結(jié)構(gòu),接收第一先入先出緩存器102輸出的32位數(shù)據(jù)中的位19到位16四位二進(jìn)制數(shù),進(jìn)行邏輯判斷后輸出對應(yīng)訪問目的地址坐標(biāo)的6位二進(jìn)制數(shù); 第一組合數(shù)據(jù)線106:傳輸?shù)谝幌热胂瘸鼍彺嫫?02輸出的32位地址數(shù)據(jù)、第一計數(shù)器118輸出的8位二進(jìn)制數(shù)和第一寄存器組103輸出6位二進(jìn)制數(shù); 第二組合數(shù)據(jù)線107:傳輸?shù)诙热胂瘸鼍彺嫫?05輸出數(shù)據(jù)的位5至位O和第二先入先出緩存器105的空狀態(tài)標(biāo)志和滿狀態(tài)標(biāo)志; 第三組合數(shù)據(jù)線108:傳輸?shù)诙热胂瘸鼍彺嫫?05輸出的46位數(shù)據(jù)和第二先入先出緩存器105的空狀態(tài)標(biāo)志; 第二先入先出緩存器105:接收第一組合數(shù)據(jù)線106輸出的數(shù)據(jù)并進(jìn)行緩存; 第一邏輯單元104:接收第一寄存器組103與第二組合數(shù)據(jù)線107輸出的數(shù)據(jù),采用第一組合邏輯,實現(xiàn)對四個第二先入先出緩存器105的寫使能信號的控制,使得四個第二先入先出緩存器105中僅有一個寫使能信號有效,其中第一組合邏輯的判斷依據(jù)為:將第一寄存器組103輸出的數(shù)據(jù)與第二組合數(shù)據(jù)線107輸出數(shù)據(jù)的位7到位2進(jìn)行比較,若兩個數(shù)據(jù)相等,則再次判斷第二先入先出緩存器105的滿標(biāo)志是否置位,如果未置位,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的寫信號設(shè)置為I ;若兩個數(shù)據(jù)不相等,則再次判斷第二先入先出緩存器105的空標(biāo)志是否置位,如果置位,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的寫信號設(shè)置為I ; 第一位或運算單元117:接收第一邏輯單元104輸出的數(shù)據(jù),進(jìn)行位或運算,將運算結(jié)果分別輸出給第一計數(shù)器118和第一先入先出緩存器102的讀使能端; 第一計數(shù)器118:接收第一位或運算單元117輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果通過第一組合數(shù)據(jù)線106進(jìn)行傳輸; 第二邏輯單元111:接收第二計數(shù)器115和第三組合數(shù)據(jù)線108輸出的數(shù)據(jù),采用第二組合邏輯,實現(xiàn)對四個第二先入先出緩存器105的讀使能信號的控制,使得四個第二先入先出緩存器105中僅有一個讀使能信號有效,輸出為兩路數(shù)據(jù),一路數(shù)據(jù)為第二先入先出緩存器105的讀使能信號112,另外一路通過數(shù)據(jù)線114進(jìn)行傳輸,其中第二組合邏輯的判斷依據(jù)為:判斷第二先入先出緩存器105的空標(biāo)志是否為O ;若為0,則依次判斷第二計數(shù)器115輸出的數(shù)據(jù)是否與四個輸入第三組合數(shù)據(jù)線108中位13至位6相等,如果至少一個相等,將輸出的4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第二先入先出緩存器105的讀信號設(shè)置為1,同時通過數(shù)據(jù)線114輸出第三組合數(shù)據(jù)線108的位45至位O數(shù)據(jù),如果全不相等,則輸出4位二進(jìn)制數(shù)據(jù)為O ;若不為O,則輸出4位二進(jìn)制數(shù)據(jù)為O,數(shù)據(jù)線114輸出為O ; 第二位或運算單元119:接收第二邏輯單元111輸出的讀使能信號112,進(jìn)行位或運算,將運算結(jié)果分別輸出給第二計數(shù)器115和第三邏輯單元116 ; 第二計數(shù)器115:接收第二位或運算單元119輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果輸出給第二邏輯單元111 ; 第三邏輯單元116:為第一時序邏輯電路,接收數(shù)據(jù)線114輸出的數(shù)據(jù)和第二位或運算單元119的輸出的數(shù)據(jù),產(chǎn)生訪問數(shù)據(jù)包; 所述訪問應(yīng)答處理模塊包括第三先入先出緩存器202、第四邏輯單元203、第四先入先出緩存器207、第六組合數(shù)據(jù)線208、第七組合數(shù)據(jù)線209、第五邏輯單元206、第三位或運算單元211、第三計數(shù)器212、第六邏輯單元210和第五先入先出緩存器213,其中: 第三先入先出緩存器202:緩存訪問應(yīng)答數(shù)據(jù),并輸出給第四邏輯單元203 ; 第四邏輯單元203:為第二時序邏輯電路,接收第三先入先出緩存器202輸出的數(shù)據(jù),將串行接收的數(shù)據(jù)并行化處理,并將并行化處理后的數(shù)據(jù)通過第四組合數(shù)據(jù)線204和第五組合數(shù)據(jù)線205傳輸,其中第二時序邏輯電路產(chǎn)生規(guī)則為:第四組合數(shù)據(jù)線204,位寬為46位,按從高位到低位的順序,當(dāng)接收第三先入先出緩存器202輸出的數(shù)據(jù)位33至位32為二進(jìn)制數(shù)10時,第四組合數(shù)據(jù)線204的位45至位14為第三先入先出緩存器202輸出數(shù)據(jù)中位31至位O的二進(jìn)制數(shù);當(dāng)接收第三先入先出緩存器202輸出的數(shù)據(jù)位33至位32為二進(jìn)制數(shù)11時,第四組合數(shù)據(jù)線204的位13至位O為第三先入先出緩存器202輸出數(shù)據(jù)中位13至位O的二進(jìn)制數(shù);第五組合數(shù)據(jù)線205位寬為6位,為接收第三先入先出緩存器202輸出數(shù)據(jù)中位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202中位5至位O的二進(jìn)制數(shù); 第四先入先出緩存器207:接收第四邏輯單元203輸出的數(shù)據(jù)并進(jìn)行緩存; 第六組合數(shù)據(jù)線208:傳輸?shù)谒南热胂瘸鼍彺嫫?07輸出的位5至位O和第四先入先出緩存器207的空狀態(tài)標(biāo)志和滿狀態(tài)標(biāo)志; 第七組合數(shù)據(jù)線209:傳輸?shù)谒慕M合數(shù)據(jù)線204數(shù)據(jù)和第四先入先出緩存器207的空狀態(tài)標(biāo)志; 第五邏輯單元206:接收第六組合數(shù)據(jù)線208和第五組合數(shù)據(jù)線205輸入的數(shù)據(jù),采用第三組合邏輯,實現(xiàn)對四個第四先入先出緩存器207的寫使能信號的控制,使得四個第四先入先出緩存器207中僅有一個寫使能信號有效,其中第三組合邏輯的判斷依據(jù)為:將第五組合數(shù)據(jù)線205的6位數(shù)據(jù)分別與第六組合數(shù)據(jù)線208中位7至位2表示的數(shù)據(jù)相比較,若兩個數(shù)據(jù)相等則再次判斷第六組合數(shù)據(jù)線208中位O表示的滿標(biāo)志是否置位,如果未置位,將輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的寫信號設(shè)置為1,如果置位,將輸出4位二進(jìn)制數(shù)據(jù)設(shè)置為O ;若兩個數(shù)據(jù)不相等,則再次判斷第六組合數(shù)據(jù)線208中位I表示的空標(biāo)志是否置位,如果置位,將輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器207的寫信號設(shè)置為I,如果未置位,將輸出4位二進(jìn)制數(shù)據(jù)設(shè)置為O ; 第三位或運算單元211:接收第六邏輯單元210輸出的讀使能信號211,進(jìn)行位或運算后將運算結(jié)果輸出給第三計數(shù)器212 ; 第三計數(shù)器212:接收第三位或運算單元211輸出的脈沖信號,進(jìn)行計數(shù),并將計數(shù)結(jié)果輸出給第六邏輯單元210;第六邏輯單元210:接收第七組合數(shù)據(jù)線209和第三計數(shù)器212的輸出數(shù)據(jù),采用第四組合邏輯,實現(xiàn)對四個第四先入先出緩存器207的讀使能信號的控制,使得四個第四先入先出緩存器207中僅有一個讀使能信號有效,輸出為兩路數(shù)據(jù),一路數(shù)據(jù)為第四先入先出緩存器207的讀使能信號211,另外一路通過組合數(shù)據(jù)線214進(jìn)行傳輸,其中第四組合邏輯的判斷依據(jù)為:判斷四個輸入的第七組合數(shù)據(jù)線209中位46是否全部為1,如果不全部為.1,則依次判斷第三計數(shù)器212輸出的8位二進(jìn)制數(shù)據(jù)是否與四個輸入第七組合數(shù)據(jù)線209中位13至位6相等;如果至少一個相等,輸出4位二進(jìn)制數(shù)據(jù)中,對應(yīng)第四先入先出緩存器.207的讀信號設(shè)置為1,同時通過組合數(shù)據(jù)線214輸出數(shù)據(jù);如果全部不相等,輸出4位讀使能信號211各位為0,組合數(shù)據(jù)線214輸出33位數(shù)據(jù)全部為O ;如果全部為1,輸出4位讀使能信號211各位為0,組合數(shù)據(jù)線214輸出33位數(shù)據(jù)全部為O。 第五先入先出緩存器213:接收組合數(shù)據(jù)線214輸入的數(shù)據(jù)并進(jìn)行緩存。
2.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第一組合數(shù)據(jù)線106的數(shù)據(jù)格式為:位寬為46位,按從高位到低位的順序,位45至位14為第一先入先出緩存器102輸出的32位數(shù)據(jù),位13至位6為第一計數(shù)器118輸出的8位數(shù)據(jù),位5至位O為第一寄存器組103輸出的6位數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第二組合數(shù)據(jù)線107的數(shù)據(jù)格式為:位寬為8位,按從高位到低位的順序,位7至位2為第二先入先出緩存器105輸出的位5至位O數(shù)據(jù),位I為第二先入先出緩存器105的空狀態(tài)標(biāo)志,位O為第二先入先出緩存器105的滿狀態(tài)標(biāo)志。
4.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第三組合數(shù)據(jù)線108的數(shù)據(jù)格式為:位寬為47位,按從高位到低位的順序,位45至位O為第二先入先出緩存器105輸出的46位數(shù)據(jù),位46為第二先入先出緩存器105的空狀態(tài)標(biāo)志。
5.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第三邏輯單元116中數(shù)據(jù)包的格式為:在第一個時鐘周期內(nèi),輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù).11,位13至位O為第二邏輯單元111輸出數(shù)據(jù)線114的位13至位O數(shù)據(jù),其余位為O ;在第二個時鐘周期內(nèi),輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)10,位31至位O為第二邏輯單元111輸出數(shù)據(jù)線114的位45至位14數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第三先入先出緩存器202的數(shù)據(jù)格式為:位寬為34位,按從高位到低位順序,位33為數(shù)據(jù)有效位,位.32為數(shù)據(jù)傳遞起始位,輸入應(yīng)答數(shù)據(jù)包由2個34位數(shù)據(jù)字組成,第一個傳輸字的位33至位.32為二進(jìn)制數(shù)11,位13至位6為應(yīng)答數(shù)據(jù)包的幀號,位5至位O為表示數(shù)據(jù)發(fā)送端位置的.6位二進(jìn)制數(shù),其余位為O ;第二個傳輸字的33至位32為二進(jìn)制數(shù)10,位31至位O為32位數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第四邏輯單元203中并行處理方法為:第四組合數(shù)據(jù)線204位寬為46位,按從高位到低位的順序,第四組合數(shù)據(jù)線204的位45至位14為在第三先入先出緩存器202輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)10時,第三先入先出緩存器202輸出數(shù)據(jù)的位31至位O的二進(jìn)制數(shù);位13至位O為第三先入先出緩存器202輸出數(shù)據(jù)的位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202輸出數(shù)據(jù)的位13至位O的二進(jìn)制數(shù);第五組合數(shù)據(jù)線205位寬為6位,為第三先入先出緩存器202輸出的34位數(shù)據(jù)中當(dāng)位33至位32為二進(jìn)制數(shù)11時,第三先入先出緩存器202中位5至位O的二進(jìn)制數(shù)。
8.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第六組合數(shù)據(jù)線208中數(shù)據(jù)格式按從高位到低位的順序為--位7至位2為第四先入先出緩存器207輸出的位5至位O數(shù)據(jù),位I為第四先入先出緩存器207的空狀態(tài)標(biāo)志,位O為第四先入先出緩存器207的滿狀態(tài)標(biāo)志。
9.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述第七組合數(shù)據(jù)線209中數(shù)據(jù)格式按從高位到低位的順序為--位45至位O為第四先入先出緩存器207輸出的46位數(shù)據(jù),位46為第四先入先出緩存器207的空狀態(tài)標(biāo)志。
10.根據(jù)權(quán)利要求1所述的一種多核處理器的DMA控制器,其特征在于:所述組合數(shù)據(jù)線214中數(shù)據(jù)格式按從高位到低位的順序為--位32為第七組合數(shù)據(jù)線209中位46 二進(jìn)制數(shù)的相反數(shù),位31至位O為第七組合數(shù)據(jù)線209中位45至位14。
【文檔編號】G06F13/28GK103678202SQ201310618950
【公開日】2014年3月26日 申請日期:2013年11月26日 優(yōu)先權(quán)日:2013年11月26日
【發(fā)明者】宋立國, 亓洪亮, 蓋晨寧, 于立新 申請人:北京時代民芯科技有限公司, 北京微電子技術(shù)研究所