一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法及裝置,該方法先將處理器核的讀寫模式寄存器都置為數(shù)據(jù)交換模式,然后從本地存儲(chǔ)器中讀取數(shù)據(jù)并存儲(chǔ)到發(fā)送FIFO中,再向片上互連網(wǎng)絡(luò)仲裁申請(qǐng)數(shù)據(jù)交換請(qǐng)求,若同意并分配數(shù)據(jù)通道使用權(quán),將發(fā)送FIFO中的數(shù)據(jù)輸出給第二和第一處理器核的接收數(shù)據(jù)解包單元,并解包存儲(chǔ)到接收FIFO中,再由讀控制器讀出本地存儲(chǔ)器中的數(shù)據(jù)并存儲(chǔ)到發(fā)送FIFO中,最后由寫控制器將接收FIFO中的數(shù)據(jù)寫入處理器核的本地存儲(chǔ)器中。本發(fā)明可以不開辟臨時(shí)緩沖區(qū),直接在原數(shù)據(jù)存儲(chǔ)地址內(nèi)進(jìn)行核間數(shù)據(jù)交換操作,提高了處理器的性能和存儲(chǔ)器的利用率,具有性能好、功耗低、利用率高、處理速率快的優(yōu)點(diǎn)。
【專利說明】一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多核微處理器領(lǐng)域,尤其涉及一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法及裝置。
【背景技術(shù)】
[0002]多核處理器通常包括多個(gè)相同的或者不同的處理核心、片上互聯(lián)網(wǎng)絡(luò)、外部存儲(chǔ)器以及其他芯片的接口,其中片上互連網(wǎng)絡(luò)通常使用總線、交叉開關(guān)網(wǎng)絡(luò)或者片上網(wǎng)絡(luò)對(duì)各個(gè)處理器核以及接口進(jìn)行相連和通信。每個(gè)處理器核心一般包括程序存儲(chǔ)器、取指和指令譯碼單元、執(zhí)行單元、本地?cái)?shù)據(jù)存儲(chǔ)器以及本地的核間存儲(chǔ)器訪問裝置(或者叫直接存儲(chǔ)器訪問控制器,DMA)。本地DMA與處理器的指令譯碼單元、本地的數(shù)據(jù)存儲(chǔ)器以及片上互連網(wǎng)絡(luò)相連。指令譯碼單元完成指令的譯碼,并將執(zhí)行何種指令操作(讀或者寫操作)、源數(shù)據(jù)地址、目的數(shù)據(jù)地址以及搬移數(shù)據(jù)的大小等譯碼結(jié)果通過配置總線發(fā)送到DMA裝置。DMA裝置接受譯碼單元發(fā)來的操作指令,負(fù)責(zé)本地?cái)?shù)據(jù)存儲(chǔ)器與片上其他處理器核心的數(shù)據(jù)存儲(chǔ)器,以及處理器外部存儲(chǔ)器之間數(shù)據(jù)的存取操作。每個(gè)處理器核從外部存儲(chǔ)器當(dāng)中調(diào)取一小塊數(shù)據(jù)進(jìn)行處理,處理過程中可能需要其他處理器核產(chǎn)生的數(shù)據(jù),其通過本地的DMA裝置進(jìn)行數(shù)據(jù)搬移操作。傳統(tǒng)的DMA—般有兩個(gè)通道,一個(gè)寫通道和一個(gè)讀通道。在數(shù)據(jù)的搬移過程中,上述兩個(gè)通道不能同時(shí)進(jìn)行傳輸,因此在執(zhí)行多處理器系統(tǒng)中核間數(shù)據(jù)交換時(shí),首先在處理器核A和處理器核B的本地存儲(chǔ)器當(dāng)中分別開辟一塊等大小的臨時(shí)存儲(chǔ)緩沖區(qū),當(dāng)A產(chǎn)生B所要的數(shù)據(jù)時(shí),處理器核A啟動(dòng)本地DMA裝置把相應(yīng)的數(shù)據(jù)通過片上互連網(wǎng)絡(luò)傳給處理器核B的臨時(shí)存儲(chǔ)緩沖區(qū)當(dāng)中。如果處理器核B也產(chǎn)生了處理器核A所需要的數(shù)據(jù)時(shí),處理器核B必須等待處理器核A把數(shù)據(jù)傳輸完畢之后才能開始通過其本地DMA裝置把相應(yīng)的數(shù)據(jù)通過片上互連網(wǎng)絡(luò)傳輸給處理器核A的臨時(shí)存儲(chǔ)緩沖區(qū)當(dāng)中。這種處理器核A和B數(shù)據(jù)交換串行執(zhí)行、延遲大、降低了處理器的性能,同時(shí)造成片上存儲(chǔ)器利用率降低,增加了處理器的功耗。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種性能好、功耗低、利用率高、處理速率快的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法及裝置。
[0004]為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法,包括以下步驟:
I)將第一處理器核和第二處理器核的本地讀寫模式寄存器置為數(shù)據(jù)交換模式,通過第一處理器核和第二處理器核的數(shù)據(jù)讀寫控制器從第一處理器核和第二處理器核的本地存儲(chǔ)器中讀取數(shù)據(jù),并將數(shù)據(jù)分別存儲(chǔ)到第一處理器核和第二處理器核的發(fā)送FIFO中。第一處理器核和第二處理器核的發(fā)送數(shù)據(jù)打包單元分別從所述第一處理器核和第二處理器核的發(fā)送FIFO中讀取數(shù)據(jù),并分別根據(jù)第一處理器核和第二處理器核的讀寫模式寄存器,目的地址寄存器的值向片上互連網(wǎng)絡(luò)仲裁單元申請(qǐng)第一處理器核到第二處理器核、第二處理器核到第一處理器核的數(shù)據(jù)通道;
2)所述片上互連網(wǎng)絡(luò)仲裁單元在同時(shí)接到所述第一處理器核和第二處理器核進(jìn)行數(shù)據(jù)交換模式的通道請(qǐng)求時(shí),分別分配第一處理器核到第二處理器核的數(shù)據(jù)通道給第一處理器核,分配第二處理器核到第一處理器核的數(shù)據(jù)通道給第二處理器核;
3)所述第一處理器核和第二處理器核的本地DMA裝置分別將步驟I)中所述第一處理器核和第二處理器核的發(fā)送FIFO中的數(shù)據(jù)打包之后通過數(shù)據(jù)通道輸出給第二處理器核和第一處理器核的接受數(shù)據(jù)解包單元,由所述接收數(shù)據(jù)解包單元將所述的數(shù)據(jù)包進(jìn)行解包并存儲(chǔ)到第一處理器核和第二處理器核的接收FIFO中;
4)由步驟3)中所述第一處理器核和第二處理器核的核本地DMA裝置分別對(duì)發(fā)送和接收的數(shù)據(jù)進(jìn)行讀寫控制,所述數(shù)據(jù)讀寫控制器對(duì)讀操作優(yōu)先,由讀控制器讀出本地存儲(chǔ)器的數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)到發(fā)送FIFO中;
5)所述第一處理器核和第二處理器核的本地存儲(chǔ)器中寫地址小于讀地址時(shí),寫控制器開始將步驟3)中所述的接收FIFO中的數(shù)據(jù)分別寫入所述第一處理器核和第二處理器核的的本地存儲(chǔ)器當(dāng)中,完成原址數(shù)據(jù)交換。
[0005]作為本發(fā)明的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法的進(jìn)一步改進(jìn):
所述步驟2)中,所述發(fā)送數(shù)據(jù)打包單元根據(jù)數(shù)據(jù)的目的地址和讀寫模式向片上互連網(wǎng)絡(luò)仲裁單元申請(qǐng)所述第一處理器核到第二處理器核的數(shù)據(jù)通道,如果得到通道的使用權(quán),則由所述發(fā)送數(shù)據(jù)打包單元先將讀寫模式信息、源地址信息、目的地址信息和傳輸字節(jié)數(shù)信息組成數(shù)據(jù)包頭發(fā)送給第二處理器核,緊跟著在再發(fā)送數(shù)據(jù)給所述第二處理器核。
[0006]所述步驟3)中,所述接收數(shù)據(jù)解包單元將所述數(shù)據(jù)包的讀寫模式信息、目的地址信息和接收字節(jié)數(shù)信息分別存儲(chǔ)在接收數(shù)據(jù)讀寫模式寄存器、接收數(shù)據(jù)目的地址寄存器和接收字節(jié)數(shù)寄存器當(dāng)中,然后接收并將數(shù)據(jù)解包存儲(chǔ)到所述接收FIFO當(dāng)中。
[0007]本發(fā)明技術(shù)方案還提供了一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,包括數(shù)據(jù)讀寫控制器、發(fā)送FIFO、接收FIFO、發(fā)送數(shù)據(jù)打包單元以及接收數(shù)據(jù)解包單元;
所述數(shù)據(jù)讀寫控制器包括讀寫模式寄存器、源地址寄存器、目的地址寄存器、傳輸字節(jié)數(shù)寄存器、讀控制器、寫控制器以及地址比較和選擇部件,所述數(shù)據(jù)讀寫控制器按照先入先出的順序從所述接收FIFO當(dāng)中讀取數(shù)據(jù)并將數(shù)據(jù)發(fā)送給所述本地存儲(chǔ)器;
所述發(fā)送FIFO與所述數(shù)據(jù)讀寫控制器、發(fā)送數(shù)據(jù)打包單元相連,接收從所述本地存儲(chǔ)器輸出的數(shù)據(jù);
所述接收FIFO與所述接收數(shù)據(jù)解包單元、數(shù)據(jù)讀寫控制器相連,接收從所述數(shù)據(jù)解包單兀輸出的數(shù)據(jù);
所述發(fā)送數(shù)據(jù)打包單元包括一個(gè)數(shù)據(jù)打包狀態(tài)機(jī)和一個(gè)發(fā)送數(shù)據(jù)計(jì)數(shù)器,所述發(fā)送數(shù)據(jù)打包單元與所述發(fā)送FIFO、數(shù)據(jù)讀寫控制器和片上互連網(wǎng)絡(luò)相連,所述發(fā)送數(shù)據(jù)打包單元按先入先出的順序從發(fā)送FIFO當(dāng)中讀數(shù)據(jù);
所述接收數(shù)據(jù)解包單元包括接收字節(jié)數(shù)寄存器、接收數(shù)據(jù)目的寄存器、接收數(shù)據(jù)寫模式寄存器、接收數(shù)據(jù)計(jì)數(shù)器和數(shù)據(jù)解包狀態(tài)機(jī),所述接收數(shù)據(jù)解包單元與接收FIF0,數(shù)據(jù)讀寫控制器,以及片上互連網(wǎng)絡(luò)相連,對(duì)接收到的數(shù)據(jù)包進(jìn)行解包。
[0008]作為本發(fā)明的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置的進(jìn)一步改進(jìn):
所述存儲(chǔ)器訪問裝置與本地存儲(chǔ)器之間的數(shù)據(jù)總線位寬為W至少兩倍于所述存儲(chǔ)器訪問裝置與片上互連網(wǎng)絡(luò)的數(shù)據(jù)總線位寬為W字節(jié)。
[0009]所述讀寫模式寄存器與外部輸入的配置總線、讀控制器、以及發(fā)送數(shù)據(jù)打包單元和接收數(shù)據(jù)解包單元相連,所述讀寫模式寄存器接受所述配置總線和來自接收數(shù)據(jù)解包單元的異地讀配置總線的賦值操作,并把寄存器的數(shù)據(jù)值通過信號(hào)線輸出到所述讀控制器和發(fā)送數(shù)據(jù)打包單元,同時(shí)還接受所述讀控制器的清零操作;
所述源地址寄存器與外部輸入的配置總線、讀控制器、發(fā)送數(shù)據(jù)打包單元和接收數(shù)據(jù)解包單元相連,所述源地址寄存器接受配置總線和來自接收數(shù)據(jù)解包單元的異地讀配置總線的賦值操作,并把寄存器的數(shù)據(jù)值通過信號(hào)線輸出到讀控制器和發(fā)送數(shù)據(jù)打包單元。
[0010]所述目的地址寄存器與外部輸入的配置總線、發(fā)送數(shù)據(jù)打包單元和接收數(shù)據(jù)解包單元相連,所述目的地址寄存器接受配置總線和來自接收數(shù)據(jù)解包單元的異地讀配置總線的賦值操作,并把寄存器的數(shù)據(jù)值通過信號(hào)線直接輸出到發(fā)送數(shù)據(jù)打包單元;
所述傳輸字節(jié)數(shù)寄存器與外部輸入的配置總線、讀控制器、發(fā)送數(shù)據(jù)打包單元和接收數(shù)據(jù)解包單元相連,所述傳輸字節(jié)數(shù)寄存器接受配置總線和來自接收數(shù)據(jù)解包單元的異地讀配置總線的賦值操作,并把寄存器的數(shù)據(jù)值通過信號(hào)線輸出到讀控制器和發(fā)送數(shù)據(jù)打包單元。
[0011]所述讀控制器包括讀狀態(tài)機(jī)、讀計(jì)數(shù)器以及讀地址加法器,與所述讀寫模式寄存器、源地址寄存器、傳輸字節(jié)數(shù)寄存器、地址比較和地址選擇部件以及寫控制器相連,所述讀地址加法器將所述讀計(jì)數(shù)器的值與源地址寄存器的值相加得到讀地址,并將所述讀地址輸出到地址比較和地址選擇部件,所述讀控制器根據(jù)讀寫模式寄存器的模式進(jìn)行本地存儲(chǔ)器的讀訪問操作;
所述寫控制器包括寫狀態(tài)機(jī)、寫計(jì)數(shù)器以及寫地址加法器,與讀寫模式寄存器、接收FIFO、接收數(shù)據(jù)解包單元、地址比較和地址選擇部件以及讀控制器相連,所述寫地址加法器將從所述接收數(shù)據(jù)解包單元輸入的接收數(shù)據(jù)目的地址與寫計(jì)數(shù)器的值相加得到寫地址,并將所述寫地址的值輸出到地址比較和地址選擇部件;
所述地址比較和地址選擇部件與所述讀控制器、寫控制器、接收數(shù)據(jù)解包單元和讀寫模式寄存器相連,接收所述讀控制器輸出的讀地址信號(hào)和寫控制器輸出的寫地址信號(hào),對(duì)讀地址和寫地址進(jìn)行比較,并把比較結(jié)果返回給所述寫控制器,同時(shí)根據(jù)從所述接收數(shù)據(jù)解包單元輸出的接收數(shù)據(jù)寫模式和讀寫模式寄存器的值對(duì)所述讀地址和寫地址進(jìn)行操作。
[0012]所述發(fā)送數(shù)據(jù)打包單元與片上互連網(wǎng)絡(luò)連接相連,包括一個(gè)數(shù)據(jù)打包狀態(tài)機(jī)和一個(gè)發(fā)送數(shù)據(jù)計(jì)數(shù)器,按先入先出的順序從所述發(fā)送FIFO當(dāng)中讀數(shù)據(jù),并將包括一個(gè)數(shù)據(jù)包的數(shù)據(jù)發(fā)送到片上互連網(wǎng)絡(luò),所述數(shù)據(jù)包包括讀寫模式、目的地址、源地址和傳輸字節(jié)數(shù)四種信息。
[0013]所述接收字節(jié)數(shù)寄存器、接收數(shù)據(jù)目的地址寄存器、接收數(shù)據(jù)讀寫模式寄存器的值通過信號(hào)線直接輸出到所述數(shù)據(jù)讀寫控制器。
[0014]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1、本發(fā)明直接支持雙向的核間獨(dú)立數(shù)據(jù)搬移,減少了數(shù)據(jù)通信開銷,從而提高了處理器的性能。
[0015]2、本發(fā)明在不開辟臨時(shí)緩沖區(qū)的情況下,直接在原數(shù)據(jù)存儲(chǔ)地址空間內(nèi)進(jìn)行核間數(shù)據(jù)交換操作,不但減少了多核之間數(shù)據(jù)通信開銷,而且提高了存儲(chǔ)器的利用率。[0016]3、本發(fā)明在核間數(shù)據(jù)交換操作當(dāng)中,由片上互連網(wǎng)絡(luò)仲裁單元對(duì)兩個(gè)處理器核之間的數(shù)據(jù)交換操作保持同步進(jìn)行,進(jìn)一步減少了額外的數(shù)據(jù)同步開銷。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明實(shí)施例的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法流程示意圖。
圖2是本發(fā)明實(shí)施例的存儲(chǔ)器訪問裝置在多核處理器當(dāng)中的位置和接口示意圖。
[0018]圖3是本發(fā)明實(shí)施例的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置示意圖。
[0019]圖4是本發(fā)明實(shí)施例的存儲(chǔ)器訪問裝置中的數(shù)據(jù)讀寫控制器示意圖。
[0020]圖5是本發(fā)明實(shí)施例的DMA裝置的內(nèi)部讀狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。
[0021]圖6是本發(fā)明實(shí)施例的DMA裝置的內(nèi)部寫狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。
[0022]圖7是本發(fā)明實(shí)施例的DMA裝置的發(fā)送數(shù)據(jù)打包單元的示意圖。
[0023]圖8是本發(fā)明實(shí)施例的DMA裝置的數(shù)據(jù)打包狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。
[0024]圖9是本發(fā)明實(shí)施例的DMA裝置的接收數(shù)據(jù)打包單元示意圖。
[0025]圖10是本發(fā)明實(shí)施例的DMA裝置的數(shù)據(jù)解包狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。
[0026]圖11是使用本發(fā)明實(shí)施例的DMA裝置進(jìn)行數(shù)據(jù)交換的示意圖。
[0027]圖例說明:1、數(shù)據(jù)讀寫控制器;2、發(fā)送FIFO ;3、接收FIFO ;4、發(fā)送數(shù)據(jù)打包單元;
5、接收數(shù)據(jù)解包單元;11、讀控制器;12、寫控制器;13、讀寫模式寄存器;14、源地址寄存器;15、目的地址寄存器;16、傳輸字節(jié)數(shù)寄存器;17、地址比較和地址選擇部件;41、數(shù)據(jù)打包狀態(tài)機(jī);42、發(fā)送數(shù)據(jù)計(jì)數(shù)器;51、接收字節(jié)數(shù)寄存器;52、接收數(shù)據(jù)目的地址寄存器;53、接收數(shù)據(jù)源地址寄存器;54、接收數(shù)據(jù)讀寫模式寄存器;55、數(shù)據(jù)解包狀態(tài)機(jī);56、接收數(shù)據(jù)計(jì)數(shù)器;111、讀狀態(tài)機(jī);112、讀計(jì)數(shù)器;113、讀地址加法器;121、寫狀態(tài)機(jī);122、寫計(jì)數(shù)器;123、寫地址加法器。
【具體實(shí)施方式】
[0028]以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0029]圖1示出了本發(fā)明實(shí)施例的存儲(chǔ)器中進(jìn)行原址數(shù)據(jù)交換的訪問方法步驟流程。其中第一處理器核和第二處理器核分別表示多個(gè)處理器核中的任意兩個(gè)。本實(shí)施例中,處理器核的數(shù)量為四個(gè),第一處理器核為處理器核A,第二處理器核為處理器核B。如圖1所示,本發(fā)明實(shí)施例的存儲(chǔ)器中進(jìn)行原址數(shù)據(jù)交換的訪問方法的實(shí)施步驟如下:
1)分別將處理器核A和處理器核B的讀寫模式寄存器13置為數(shù)據(jù)交換模式,通過處理器核A和處理器核B的數(shù)據(jù)讀寫控制器I從處理器核A和處理器核B的本地存儲(chǔ)器中讀取數(shù)據(jù),并將數(shù)據(jù)分別存儲(chǔ)到處理器核A和處理器核B的發(fā)送FIFO 2中,處理器核A和處理器核B的發(fā)送數(shù)據(jù)打包單元4從各自的發(fā)送FIFO 2中讀取數(shù)據(jù),并向片上互連網(wǎng)絡(luò)仲裁單元申請(qǐng)數(shù)據(jù)交換請(qǐng)求;
2)片上互連網(wǎng)絡(luò)仲裁同時(shí)接到處理器核A和處理器核B的數(shù)據(jù)交換請(qǐng)求時(shí),同意其數(shù)據(jù)交換請(qǐng)求,并向處理器核A和處理器核B同時(shí)分配數(shù)據(jù)通道使用權(quán)。
[0030]3)處理器核A和處理器核B的本地DMA裝置將步驟I)中發(fā)送FIF02中的數(shù)據(jù)通過數(shù)據(jù)通道分別輸出給處理器核B和處理器核A的接收數(shù)據(jù)解包單元5,由接收數(shù)據(jù)解包單元5接收并將數(shù)據(jù)解包分別存儲(chǔ)到處理器核B和處理器核A的接收FIF03中。[0031]4)步驟3)中處理器核A和處理器核B的本地DMA裝置對(duì)發(fā)送和接收的數(shù)據(jù)進(jìn)行讀寫控制,數(shù)據(jù)讀寫控制器I優(yōu)先處理讀操作,由讀控制器11讀出本地存儲(chǔ)器中的數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)到發(fā)送FIF02中。
[0032]5)處理器核A和處理器核B的本地存儲(chǔ)器中寫地址小于讀地址時(shí),寫控制器12開始將步驟3)中接收FIF03中的數(shù)據(jù)分別寫入處理器核A和處理器核B的本地存儲(chǔ)器中,完成原址數(shù)據(jù)交換。
[0033]本實(shí)施例中,發(fā)送數(shù)據(jù)打包單元4根據(jù)數(shù)據(jù)的目的地址和讀寫模式向片上互連網(wǎng)絡(luò)仲裁單元申請(qǐng)?zhí)幚砥骱薃到處理器核B的數(shù)據(jù)通道,如果得到通道的使用權(quán),則由發(fā)送數(shù)據(jù)打包單元4先將讀寫模式信息、源地址信息、目的地址信息和傳輸字節(jié)數(shù)信息組成數(shù)據(jù)包頭發(fā)送給處理器核B,緊跟著再發(fā)送數(shù)據(jù)給處理器核B。
[0034]本實(shí)施例中,接收數(shù)據(jù)解包單元5將數(shù)據(jù)包頭的讀寫模式信息、目的地址信息和接收字節(jié)數(shù)信息分別存儲(chǔ)在接收數(shù)據(jù)讀寫模式寄存器54、接收數(shù)據(jù)目的地址寄存器15和接收字節(jié)數(shù)寄存器51當(dāng)中,然后接收并將數(shù)據(jù)打包存儲(chǔ)到接收FIF03當(dāng)中。
[0035]圖2示出了四核處理器中本發(fā)明的存儲(chǔ)器訪問裝置實(shí)施例。由圖可知,每個(gè)處理器核通過片上互連網(wǎng)絡(luò)相連,每個(gè)處理器核包括一個(gè)程序存儲(chǔ)器、一個(gè)取指和譯碼單元、一個(gè)執(zhí)行單元、一個(gè)數(shù)據(jù)存儲(chǔ)器和一個(gè)本發(fā)明的存儲(chǔ)器訪問裝置。本實(shí)施例中,存儲(chǔ)器訪問裝置與處理器核的指令譯碼單元、本地存儲(chǔ)器以及片上互連網(wǎng)絡(luò)相連,接收指令譯碼單元發(fā)送的配置信息,完成相應(yīng)的操作之后向指令譯碼單元返回一個(gè)中斷信號(hào)。本發(fā)明中存儲(chǔ)器訪問裝置與本地存儲(chǔ)器之間的數(shù)據(jù)總線位寬為W字節(jié),與片上互連網(wǎng)絡(luò)的數(shù)據(jù)總線位寬為w字節(jié),其中W=n*w,η是大于或等于2的正整數(shù)。本地處理器通過存儲(chǔ)器訪問裝置訪問和搬移其他處理器核的本地存儲(chǔ)器數(shù)據(jù)。
[0036]如圖3所示,本發(fā)明的存儲(chǔ)器訪問裝置包括數(shù)據(jù)讀寫控制器1、發(fā)送FIF02、接收FIF03、發(fā)送數(shù)據(jù)打包單元4和接收數(shù)據(jù)解包單元5。其中數(shù)據(jù)讀寫控制器I分別與發(fā)送FIF02、接收FIF03、發(fā)送數(shù)據(jù)打包單元4和接收數(shù)據(jù)解包單元5相連,控制數(shù)據(jù)的讀和寫操作,并優(yōu)先使能讀訪問操作,只有當(dāng)讀操作沒有啟動(dòng)或者發(fā)送FIF02為滿時(shí),使能寫訪問操作;數(shù)據(jù)讀寫控制器I按照先入先出的順序從接收FIF03當(dāng)中讀取數(shù)據(jù)并將數(shù)據(jù)發(fā)送給本地存儲(chǔ)器,在控制讀和寫操作時(shí)分時(shí)地占用存儲(chǔ)器端口 ;發(fā)送FIF02與數(shù)據(jù)讀寫控制器1、發(fā)送數(shù)據(jù)打包單元4相連,其輸入輸出數(shù)據(jù)位寬為W字節(jié),接收從本地存儲(chǔ)器輸出的數(shù)據(jù);接收FIF03與接收數(shù)據(jù)解包單元5、數(shù)據(jù)讀寫控制器I相連,其輸入輸出數(shù)據(jù)位寬為W字節(jié),接收從接收數(shù)據(jù)解包單元5輸出的數(shù)據(jù);發(fā)送數(shù)據(jù)打包單元4與發(fā)送FIF02,數(shù)據(jù)讀寫控制器I以及片上互連網(wǎng)絡(luò)相連,發(fā)送數(shù)據(jù)打包單元4與片上互連網(wǎng)絡(luò)連接的數(shù)據(jù)總線位寬為w個(gè)字節(jié),發(fā)送到片上互連網(wǎng)絡(luò)的數(shù)據(jù)包包括讀寫模式、目的地址、源地址以及傳輸字節(jié)數(shù)四種信息以及其他相關(guān)信息;接收數(shù)據(jù)解包單元5與接收FIF03,數(shù)據(jù)讀寫控制器1,以及片上互連網(wǎng)絡(luò)相連,其操作與發(fā)送數(shù)據(jù)打包單元4相反,對(duì)接收到的數(shù)據(jù)包進(jìn)行解包。
[0037]如圖4所示,本發(fā)明存儲(chǔ)器訪問裝置中的數(shù)據(jù)讀寫控制器I包括讀寫模式寄存器
13、源地址寄存器14、目的地址寄存器15、傳輸字節(jié)數(shù)寄存器16、讀控制器11、寫控制器12和地址比較和地址選擇部件17。當(dāng)系統(tǒng)復(fù)位使能有效時(shí),所有的寄存器被賦予零值,讀狀態(tài)機(jī)111進(jìn)入空閑狀態(tài)。在同時(shí)有對(duì)本地存儲(chǔ)器的讀寫操作時(shí),優(yōu)先使能讀操作。
[0038]本實(shí)施例中,讀寫模式寄存器13與外部輸入的配置總線,讀控制器11,以及發(fā)送數(shù)據(jù)打包單元4和接收數(shù)據(jù)解包單元5相連,其接受配置總線和來自接收數(shù)據(jù)解包單元5的異地讀配置總線的賦值操作,將其數(shù)據(jù)值通過信號(hào)線輸出到讀控制器11和發(fā)送數(shù)據(jù)打包單元4,同時(shí)讀寫模式寄存器13也接受讀控制器11的清零操作。通過配置不同的值,讀寫模式寄存器13有三種模式:本地讀數(shù)據(jù)模式,異地讀數(shù)據(jù)模式以及數(shù)據(jù)交換模式;
本實(shí)施例中,源地址寄存器14與外部輸入的配置總線,讀控制器11,發(fā)送數(shù)據(jù)打包單元4和接收數(shù)據(jù)解包單元5相連,接受配置總線和來自接收數(shù)據(jù)解包單元5的異地讀配置總線的賦值,將其數(shù)據(jù)值通過信號(hào)線輸出到讀控制器11和發(fā)送數(shù)據(jù)打包單元4 ;
本實(shí)施例中,目的地址寄存器15與外部輸入的配置總線、發(fā)送數(shù)據(jù)打包單元4和接收數(shù)據(jù)解包單元5相連,接受配置總線和來自接收數(shù)據(jù)解包單元5的異地讀配置總線的賦值,并將其數(shù)據(jù)值通過信號(hào)線直接輸出到發(fā)送數(shù)據(jù)打包單元4 ;
本實(shí)施例中,傳輸字節(jié)數(shù)寄存器16與外部輸入的配置總線、讀控制器11、發(fā)送數(shù)據(jù)打包單元4和接收數(shù)據(jù)解包單元5相連,接受配置總線和來自接收數(shù)據(jù)解包單元5的異地讀配置總線的賦值,將其數(shù)據(jù)值通過信號(hào)線輸出到讀控制器11和發(fā)送數(shù)據(jù)打包單元4 ;如圖3所示,讀控制器11與讀寫模式寄存器13、源地址寄存器14、傳輸字節(jié)數(shù)寄存器16、地址比較和地址選擇部件17和寫控制器12相連,根據(jù)讀寫模式寄存器13的值進(jìn)行本地存儲(chǔ)器的讀訪問操作。
[0039]本實(shí)施例中,讀控制器11包括讀狀態(tài)機(jī)111,讀計(jì)數(shù)器112以及讀地址加法器113,其中讀地址加法器113將源地址寄存器14的值與讀計(jì)數(shù)器112的值進(jìn)行相加得到讀地址,并輸出讀地址到地址比較和地址選擇部件17。讀狀態(tài)機(jī)111由讀空閑狀態(tài),讀數(shù)據(jù)狀態(tài),讀完成等待狀態(tài),寫完成等待狀態(tài)四個(gè)狀態(tài)組成,其轉(zhuǎn)換過程如圖5所示。當(dāng)系統(tǒng)復(fù)位使能有效時(shí),讀狀態(tài)機(jī)111進(jìn)入讀空閑狀態(tài),讀計(jì)數(shù)器112清零,所有輸出使能信號(hào)無效。讀狀態(tài)機(jī)111處于讀空閑模式,若讀寫模式寄存器13的值為本地讀模式或者數(shù)據(jù)交換模式時(shí),讀狀態(tài)機(jī)111進(jìn)入讀數(shù)據(jù)狀態(tài),置讀狀態(tài)機(jī)111忙使能有效,輸出讀地址,讀計(jì)數(shù)器112加W。讀狀態(tài)機(jī)111處于讀數(shù)據(jù)狀態(tài),若發(fā)送FIF02非滿使能無效,則暫停讀操作,置所有輸出使能無效。當(dāng)讀計(jì)數(shù)器112的值等于傳輸字節(jié)數(shù)寄存器16的值時(shí),讀操作完成,所有輸出的使能信號(hào)無效。如果此時(shí)是本地讀模式,或者是數(shù)據(jù)交換模式,并且寫數(shù)據(jù)完成使能有效,則下一個(gè)時(shí)鐘周期進(jìn)入讀完成等待狀態(tài),讀狀態(tài)機(jī)111處于讀完成等待狀態(tài),若數(shù)據(jù)打包完成使能有效時(shí),下一個(gè)時(shí)鐘周期轉(zhuǎn)入讀空閑狀態(tài),讀計(jì)數(shù)器112清零,所有輸出使能無效;如果此時(shí)是數(shù)據(jù)交換模式,并且數(shù)據(jù)打包完成使能有效,則進(jìn)入寫完成等待狀態(tài)。讀狀態(tài)機(jī)111處于與完成等待狀態(tài),若與數(shù)據(jù)完成使能有效時(shí),讀狀態(tài)機(jī)111進(jìn)入讀空閑狀態(tài),讀計(jì)數(shù)器112清0,所有輸出使能無效;
本實(shí)施例中,寫控制器12與讀寫模式寄存器13、接收FIF03、接收數(shù)據(jù)解包單元5、地址比較和地址選擇部件17以及讀控制器11相連,根據(jù)從接收數(shù)據(jù)解包單元5輸出的接收數(shù)據(jù)寫模式信號(hào)的值進(jìn)行寫操作。寫控制器12包括寫狀態(tài)機(jī)121,寫計(jì)數(shù)器122和寫地址加法器123,其中寫地址加法器123將從接收數(shù)據(jù)解包單元5輸出的接收數(shù)據(jù)目的地址信號(hào)的值與寫計(jì)數(shù)器122的值相加得到寫地址,并將寫地址輸出到地址比較和地址選擇部件17。寫狀態(tài)機(jī)121由寫空閑狀態(tài)和寫數(shù)據(jù)狀態(tài)組成,其轉(zhuǎn)換過程如圖6所示。當(dāng)系統(tǒng)復(fù)位使能有效時(shí),寫狀態(tài)機(jī)121進(jìn)入寫空閑狀態(tài),寫計(jì)數(shù)器122清零,所有輸出使能信號(hào)無效。寫狀態(tài)機(jī)121處于寫空閑狀態(tài),若接收FIF03非空使能有效,則下一個(gè)周期進(jìn)入寫數(shù)據(jù)狀態(tài),此時(shí)如果讀狀態(tài)機(jī)111忙使能無效,則寫計(jì)數(shù)器122加W,輸出寫地址,進(jìn)行存儲(chǔ)器寫操作。寫狀態(tài)機(jī)121處于寫數(shù)據(jù)狀態(tài),如果接收FIF03非空使能無效或者讀狀態(tài)機(jī)111忙使能有效,則暫停寫操作,所有輸出使能信號(hào)無效。當(dāng)接收FIF03非空使能有效并且讀狀態(tài)機(jī)111忙使能無效時(shí),繼續(xù)寫操作。直到寫計(jì)數(shù)器122的值等于從接收數(shù)據(jù)解包單元5輸出的接收數(shù)據(jù)字節(jié)數(shù)時(shí),進(jìn)入寫空閑狀態(tài),置寫數(shù)據(jù)完成使能有效,寫計(jì)數(shù)器122清零,其他輸出使能信號(hào)無效;如圖4所示,地址比較和地址選擇部件17與讀控制器11、寫控制器12、接收數(shù)據(jù)解包單元5和讀寫模式寄存器13相連,完成對(duì)讀地址和寫地址的比較和選擇輸出操作,并把比較結(jié)果返回給寫控制器12。同時(shí)根據(jù)從接收數(shù)據(jù)解包單元5輸入的接收數(shù)據(jù)寫模式和讀寫模式寄存器13的值對(duì)讀地址和寫地址進(jìn)行操作。當(dāng)讀狀態(tài)機(jī)111忙使能無效,讀寫模式寄存器13的值和接收數(shù)據(jù)寫模式都為數(shù)據(jù)交換模式,并且寫地址小于讀地址的情況下,選擇寫地址并輸出到外部存儲(chǔ)器地址總線接口 ;當(dāng)讀狀態(tài)機(jī)111忙使能無效,并且接收數(shù)據(jù)寫模式為本地讀數(shù)據(jù)模式時(shí),選擇寫地址并輸出到外部存儲(chǔ)器地址總線接口。其余情況根據(jù)讀狀態(tài)機(jī)111忙使能信號(hào)進(jìn)行操作。如果讀狀態(tài)機(jī)111忙使能有效,選擇輸出讀地址到存儲(chǔ)器地址總線端口,否則置存儲(chǔ)器地址總線為O。
[0040]如圖7所示,本發(fā)明存儲(chǔ)器訪問裝置中的發(fā)送數(shù)據(jù)打包單元4與發(fā)送FIF02,數(shù)據(jù)讀寫控制器I以及片上互連網(wǎng)絡(luò)相連,其包括一個(gè)數(shù)據(jù)打包狀態(tài)機(jī)41和一個(gè)發(fā)送數(shù)據(jù)計(jì)數(shù)器42。發(fā)送數(shù)據(jù)打包單元4與片上互連網(wǎng)絡(luò)連接的數(shù)據(jù)總線位寬為w個(gè)字節(jié),發(fā)送到片上互連網(wǎng)絡(luò)的數(shù)據(jù)包括一個(gè)數(shù)據(jù)包頭和緊跟其后的數(shù)據(jù),其中數(shù)據(jù)包頭包括讀寫模式、目的地址、源地址以及傳輸字節(jié)數(shù)四種信息。
[0041]本實(shí)施例中,數(shù)據(jù)打包狀態(tài)機(jī)41由空閑、總線申請(qǐng),發(fā)送包頭和發(fā)送數(shù)據(jù)四個(gè)狀態(tài),其狀態(tài)轉(zhuǎn)換如圖8所示。當(dāng)系統(tǒng)復(fù)位使能有效時(shí),數(shù)據(jù)打包狀態(tài)機(jī)41進(jìn)入空閑狀態(tài),所有輸出使能無效,發(fā)送數(shù)據(jù)計(jì)數(shù)器42清零。數(shù)據(jù)打包狀態(tài)機(jī)41處于空閑狀態(tài),若數(shù)據(jù)讀寫控制器I當(dāng)中的讀寫模式寄存器13為本地讀數(shù)據(jù)、數(shù)據(jù)交換或者異地讀數(shù)據(jù)模式時(shí),數(shù)據(jù)打包狀態(tài)機(jī)41進(jìn)入總線申請(qǐng)狀態(tài),置數(shù)據(jù)包發(fā)送請(qǐng)求信號(hào)有效。數(shù)據(jù)打包狀態(tài)機(jī)41處于總線申請(qǐng)狀態(tài),若數(shù)據(jù)包發(fā)送使能信號(hào)有效,則進(jìn)入發(fā)送包頭狀態(tài),開始發(fā)送包頭信息:讀取數(shù)據(jù)讀寫控制器I中的傳輸字節(jié)數(shù)寄存器16、目的地址寄存器15、源地址寄存器14和讀寫模式寄存器13當(dāng)中的信息進(jìn)行打包,發(fā)送到發(fā)送數(shù)據(jù)包總線上,并使能發(fā)送數(shù)據(jù)包有效信號(hào)。數(shù)據(jù)打包狀態(tài)機(jī)41處于發(fā)送數(shù)據(jù)包狀態(tài),若讀寫模式寄存器13的值為異地讀數(shù)據(jù)模式,當(dāng)發(fā)送完數(shù)據(jù)包信息之后則轉(zhuǎn)入空閑狀態(tài),置數(shù)據(jù)打包完成使能有效,其他輸出使能無效;若讀寫模式寄存器13的值為本地讀數(shù)據(jù)或者數(shù)據(jù)交換模式時(shí),當(dāng)發(fā)送完數(shù)據(jù)包信息之后則轉(zhuǎn)入發(fā)送數(shù)據(jù)狀態(tài),此時(shí)如果發(fā)送FIF02為非空,那么讀取發(fā)送FIF02的數(shù)據(jù),將數(shù)據(jù)按地址從小到大的順序拆分成多個(gè)w字節(jié)的小數(shù)據(jù)并發(fā)送到數(shù)據(jù)包總線上,每發(fā)送一個(gè)w字節(jié)數(shù)據(jù),發(fā)送數(shù)據(jù)計(jì)數(shù)器42加W。直到發(fā)送數(shù)據(jù)計(jì)數(shù)器42的值等于傳輸字節(jié)數(shù)時(shí),本次數(shù)據(jù)打包完成,置數(shù)據(jù)打包完成使能有效,其他輸出使能無效,狀態(tài)機(jī)轉(zhuǎn)入空閑狀態(tài),發(fā)送數(shù)據(jù)計(jì)數(shù)器42清O。
[0042]如圖9所示,本發(fā)明存儲(chǔ)器訪問裝置中的接收數(shù)據(jù)解包單元5與接收FIF03、數(shù)據(jù)讀寫控制器I和片上互連網(wǎng)絡(luò)相連,其工作原理與發(fā)送數(shù)據(jù)打包單元4相反,從總線上接收數(shù)據(jù)包,并將數(shù)據(jù)的信息解包,數(shù)據(jù)存儲(chǔ)器在接收FIF03當(dāng)中。本實(shí)施例中,接收數(shù)據(jù)解包單元5包括接收字節(jié)數(shù)寄存器51、接收數(shù)據(jù)目的地址寄存器52、接收數(shù)據(jù)源地址寄存器53、接收數(shù)據(jù)讀寫模式寄存器54、接收數(shù)據(jù)計(jì)數(shù)器56和數(shù)據(jù)解包狀態(tài)機(jī)55。其中,接收字節(jié)數(shù)寄存器51、接收數(shù)據(jù)目的地址寄存器52、接收數(shù)據(jù)讀寫模式寄存器54的值通過信號(hào)線直接輸出到數(shù)據(jù)讀寫控制器I。
[0043]本實(shí)施例中,數(shù)據(jù)解包狀態(tài)機(jī)55包括空閑、同意數(shù)據(jù)包接收請(qǐng)求、接收包頭、接收數(shù)據(jù)和等待寫完成五個(gè)狀態(tài),其狀態(tài)轉(zhuǎn)換如圖10所示。當(dāng)系統(tǒng)復(fù)位使能有效時(shí),數(shù)據(jù)解包狀態(tài)機(jī)55進(jìn)入空閑狀態(tài),接收數(shù)據(jù)計(jì)數(shù)器56清零,所有輸出使能信號(hào)無效。數(shù)據(jù)解包狀態(tài)機(jī)55處于空閑狀態(tài),若數(shù)據(jù)包接收請(qǐng)求有效,并判斷接收請(qǐng)求的類型。如果是異地讀請(qǐng)求,檢查從數(shù)據(jù)讀寫控制器I發(fā)來的讀寫模式信號(hào)此時(shí)是空閑(即是否等于O)。如果是空閑,則進(jìn)入接收數(shù)據(jù)包頭狀態(tài),置數(shù)據(jù)包接收使能有效,否則置數(shù)據(jù)包接收使能無效,等待數(shù)據(jù)讀寫控制器I的讀操作完成;如果接收請(qǐng)求的類型是本地讀數(shù)據(jù)或者數(shù)據(jù)交換模式,置數(shù)據(jù)包接收使能有效,進(jìn)入接收數(shù)據(jù)包頭狀態(tài)。數(shù)據(jù)解包狀態(tài)機(jī)55處于接收數(shù)據(jù)包頭狀態(tài),開始接收并解碼數(shù)據(jù)包頭信息:如果是異地讀數(shù)據(jù)請(qǐng)求,則將數(shù)據(jù)包包括的源地址信息,目的地址信息,傳輸字節(jié)數(shù)信息,以及讀寫模式信息通過異地讀配置總線分別寫入數(shù)據(jù)讀寫控制器I的目的地址寄存器15、源地址寄存器14、傳輸字節(jié)數(shù)寄存器16和讀寫模式寄存器13,寫完之后,數(shù)據(jù)解包狀態(tài)機(jī)55在下個(gè)時(shí)鐘周期轉(zhuǎn)如空閑狀態(tài);如果是本地讀數(shù)據(jù)模式或者數(shù)據(jù)交換模式,則將數(shù)據(jù)包包括的目的地址信息,傳輸字節(jié)數(shù)信息,以及讀寫模式信息分別寫入接收數(shù)據(jù)目的地址寄存器52、接收字節(jié)數(shù)寄存器51和接收數(shù)據(jù)讀寫模式寄存器54,寫完之后,數(shù)據(jù)解包狀態(tài)機(jī)55進(jìn)入接收數(shù)據(jù)狀態(tài),開始接收數(shù)據(jù)。每接收一個(gè)w字節(jié)數(shù)據(jù),接收數(shù)據(jù)計(jì)數(shù)器56加W,直到接收數(shù)據(jù)計(jì)數(shù)器56的值等于接收字節(jié)數(shù)寄存器51的值,數(shù)據(jù)解包狀態(tài)機(jī)55進(jìn)入等待寫完成狀態(tài)。數(shù)據(jù)解包狀態(tài)機(jī)55處于等待寫完成狀態(tài),若寫數(shù)據(jù)完成使能有效,則數(shù)據(jù)解包狀態(tài)機(jī)55進(jìn)入空閑狀態(tài),置接收數(shù)據(jù)計(jì)算器為0,所有輸出使能無效。
[0044]圖11示出了使用本發(fā)明的存儲(chǔ)器訪問裝置進(jìn)行核間數(shù)據(jù)交換操作過程。本發(fā)明的存儲(chǔ)器訪問裝置通過處理器核A內(nèi)部的發(fā)送FIF02和處理器核B內(nèi)部的接收FIF03,處理器核A內(nèi)部的接收FIF03和處理器核B內(nèi)部的發(fā)送FIF02分別存儲(chǔ)了數(shù)據(jù)塊BI和B3—部分要搬移的數(shù)據(jù),在處理器核A和處理器核B的本地存儲(chǔ)器訪問裝置里,在原數(shù)據(jù)存儲(chǔ)地址空間上直接進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)讀寫控制器I只有在寫地址小于讀地址情況下才能把數(shù)據(jù)寫入本地存儲(chǔ)器,保證了存儲(chǔ)器當(dāng)中的每個(gè)數(shù)據(jù)先讀后寫。這樣就能實(shí)現(xiàn)交換數(shù)據(jù)雙向傳輸,既加速了數(shù)據(jù)通信速度,從而提高了處理器性能,又使得數(shù)據(jù)交換得以在原址上進(jìn)行,提高了存儲(chǔ)器利用率。
[0045]以上僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法,其特征在于,包括以下步驟: O將第一處理器核和第二處理器核的本地讀寫模式寄存器(13)置為數(shù)據(jù)交換模式,通過所述第一處理器核和第二處理器核的數(shù)據(jù)讀寫控制器(I)從第一處理器核和第二處理器核的本地存儲(chǔ)器中讀取數(shù)據(jù),并將數(shù)據(jù)分別存儲(chǔ)到第一處理器核和第二處理器核的發(fā)送FIFO (2)中,再由第一處理器核和第二處理器核的發(fā)送數(shù)據(jù)打包單元(4)分別從第一處理器核和第二處理器核的發(fā)送FIFO (2)中讀取數(shù)據(jù),并分別根據(jù)第一處理器核和第二處理器核的讀寫模式寄存器(13)、目的地址寄存器(15)的值向片上互連網(wǎng)絡(luò)仲裁單元申請(qǐng)第一處理器核到第二處理器核、第二處理器核到第一處理器核的數(shù)據(jù)通道; 2)所述片上互連網(wǎng)絡(luò)仲裁單元在同時(shí)接到所述第一處理器核和第二處理器核進(jìn)行數(shù)據(jù)交換模式的通道請(qǐng)求時(shí),分別分配第一處理器核到第二處理器核的數(shù)據(jù)通道給第一處理器核,分配第二處理器核到第一處理器核的數(shù)據(jù)通道給第二處理器核; 3)所述第一處理器核和第二處理器核的本地DMA裝置分別將步驟I)中所述第一處理器核和第二處理器核的發(fā)送FIFO (2)中的數(shù)據(jù)打包之后通過數(shù)據(jù)通道輸出給第二處理器核和第一處理器核的接收數(shù)據(jù)解包單元(5),由所述接收數(shù)據(jù)解包單元(5)將所述數(shù)據(jù)包進(jìn)行解包并存儲(chǔ)到第一處理器核和第二處理器核的接收FIFO (3)中; 4)由步驟3)中所述第一處理器核和第二處理器核的本地DMA裝置分別對(duì)發(fā)送和接收的數(shù)據(jù)進(jìn)行讀寫控制,數(shù)據(jù)讀寫控制器(I)對(duì)讀操作優(yōu)先,由讀控制器(11)讀出本地存儲(chǔ)器的數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)到發(fā)送FIFO (2)中; 5)所述第一處理器核和第二處理器核的本地存儲(chǔ)器中寫地址小于讀地址時(shí),寫控制器(12)開始將步驟3)中所述接收FIFO (3)中的數(shù)據(jù)分別寫入所述第一處理器核和第二處理器核的的本地存儲(chǔ)器當(dāng)中,完成原址數(shù)據(jù)交換。
2.根據(jù)權(quán)利要求1所述·的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法,其特征在于:所述步驟2)中,所述第一處理器核的發(fā)送數(shù)據(jù)打包單元(4)根據(jù)數(shù)據(jù)的目的地址和讀寫模式向片上互連網(wǎng)絡(luò)仲裁單元申請(qǐng)所述第一處理器核到第二處理器核的數(shù)據(jù)通道,所述片上互聯(lián)網(wǎng)絡(luò)仲裁在同時(shí)接收到第一處理器核和第二處理器核發(fā)出的數(shù)據(jù)交換請(qǐng)求時(shí),將分別分配空閑的數(shù)據(jù)通道給第一處理器核和第二處理器核,如果得到通道的使用權(quán),則由所述發(fā)送數(shù)據(jù)打包單元(4)先將讀寫模式信息、源地址信息、目的地址信息和傳輸字節(jié)數(shù)信息組成數(shù)據(jù)包頭發(fā)送給第二處理器核,緊跟著再發(fā)送其他數(shù)據(jù)給所述第二處理器核。
3.根據(jù)權(quán)利要求2所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問方法,其特征在于:所述步驟3)中,所述接收數(shù)據(jù)解包單元(5)將所述數(shù)據(jù)包頭的讀寫模式信息、目的地址信息和接收字節(jié)數(shù)信息分別存儲(chǔ)在接收數(shù)據(jù)讀寫模式寄存器(54)、接收數(shù)據(jù)目的地址寄存器(52)和接收字節(jié)數(shù)寄存器(51)當(dāng)中,然后接收并將數(shù)據(jù)解包存儲(chǔ)到所述接收FIFO (3)當(dāng)中。
4.一種支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于:包括數(shù)據(jù)讀寫控制器(I)、發(fā)送FIFO (2)、接收FIFO (3)、發(fā)送數(shù)據(jù)打包單元(4)以及接收數(shù)據(jù)解包單元(5); 所述數(shù)據(jù)讀寫控制器(I)包括讀寫模式寄存器(13)、源地址寄存器(14)、目的地址寄存器(15)、傳輸字節(jié)數(shù)寄存器(16)、讀控制器(11)、寫控制器(12)以及地址比較和地址選擇部件(17 ),所述數(shù)據(jù)讀寫控制器(I)按照先入先出的順序從所述接收FIFO (3 )當(dāng)中讀取數(shù)據(jù)并將數(shù)據(jù)發(fā)送給所述本地存儲(chǔ)器; 所述發(fā)送FIFO (2)與所述數(shù)據(jù)讀寫控制器(I)、發(fā)送數(shù)據(jù)打包單元(4)相連,接收從所述本地存儲(chǔ)器輸出的數(shù)據(jù); 所述接收FIFO (3 )與所述接收數(shù)據(jù)解包單元(5 )、數(shù)據(jù)讀寫控制器(I)相連,接收從所述接收數(shù)據(jù)解包單元(5)輸出的數(shù)據(jù); 所述發(fā)送數(shù)據(jù)打包單元(4)包括一個(gè)數(shù)據(jù)打包狀態(tài)機(jī)(41)和一個(gè)發(fā)送數(shù)據(jù)計(jì)數(shù)器(42),所述發(fā)送數(shù)據(jù)打包單元(4)與所述發(fā)送FIFO (2)、數(shù)據(jù)讀寫控制器(I)和片上互連網(wǎng)絡(luò)相連,所述發(fā)送數(shù)據(jù)打包單元(4)按先入先出的順序從發(fā)送FIFO (2)當(dāng)中讀數(shù)據(jù); 所述接收數(shù)據(jù)解包單元(5)包括接收字節(jié)數(shù)寄存器(51)、接收數(shù)據(jù)目的地址寄存器(52)、接收數(shù)據(jù)源地址寄存器(53)、接收數(shù)據(jù)讀寫模式寄存器(54)、接收數(shù)據(jù)計(jì)數(shù)器(56)和數(shù)據(jù)解包狀態(tài)機(jī)(55),所述接收數(shù)據(jù)解包單元(5)與接收FIFO (3)、數(shù)據(jù)讀寫控制器(I)和以及片上互連網(wǎng)絡(luò)相連,對(duì)接收到的數(shù)據(jù)包進(jìn)行解包。
5.根據(jù)權(quán)利要求4所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于:所述存儲(chǔ)器訪問裝置與本地存儲(chǔ)器之間的數(shù)據(jù)總線位寬為W至少兩倍于所述存儲(chǔ)器訪問裝置與片上互連網(wǎng)絡(luò)的數(shù)據(jù)總線位寬為w字節(jié)。
6.根據(jù)權(quán)利要求4所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于: 所述讀寫模式寄存器(13)與外部輸入的配置總線、讀控制器(11)、以及發(fā)送數(shù)據(jù)打包單元(4)和接收數(shù)據(jù)解包單元(5)相連,所述讀寫模式寄存器(13)接受所述配置總線和來自接收數(shù)據(jù)解包單元(5)的異地讀配置總線的賦值操作,并把所述讀寫模式寄存器(13)的數(shù)據(jù)值通過信號(hào)線輸出到所述讀控制器(11)和發(fā)送數(shù)據(jù)打包單元(4),同時(shí)還接受所述讀控制器(11)的清零操作; 所述源地址寄存器(14)與外部輸入的配置總線、讀控制器(11)、發(fā)送數(shù)據(jù)打包單元(4)和接收數(shù)據(jù)解包單元(5)相連`,所述源地址寄存器(14)接受配置總線和來自接收數(shù)據(jù)解包單元(5)的異地讀配置總線的賦值操作,并把所述源地址寄存器(14)的數(shù)據(jù)值通過信號(hào)線輸出到讀控制器(11)和發(fā)送數(shù)據(jù)打包單元(4)。
7.根據(jù)權(quán)利要求4所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于:所述目的地址寄存器(15)與外部輸入的配置總線、發(fā)送數(shù)據(jù)打包單元(4)和接收數(shù)據(jù)解包單元(5)相連,所述目的地址寄存器(15)接受配置總線和來自接收數(shù)據(jù)解包單元(5)的異地讀配置總線的賦值操作,并把所述目的地址寄存器(15)的數(shù)據(jù)值通過信號(hào)線直接輸出到發(fā)送數(shù)據(jù)打包單元(4); 所述傳輸字節(jié)數(shù)寄存器(16)與外部輸入的配置總線、讀控制器(11)、發(fā)送數(shù)據(jù)打包單元(4)和接收數(shù)據(jù)解包單元(5)相連,所述傳輸字節(jié)數(shù)寄存器(16)接受配置總線和來自接收數(shù)據(jù)解包單元(5)的異地讀配置總線的賦值操作,并把所述傳輸字節(jié)數(shù)寄存器(16)的數(shù)據(jù)值通過信號(hào)線輸出到讀控制器(11)和發(fā)送數(shù)據(jù)打包單元(4)。
8.根據(jù)權(quán)利要求4所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于:所述讀控制器(11)包括讀狀態(tài)機(jī)(111)、讀計(jì)數(shù)器(112)以及讀地址加法器(113),與所述讀寫模式寄存器(13)、源地址寄存器(14)、傳輸字節(jié)數(shù)寄存器(16)、地址比較和地址選擇部件(17)以及寫控制器(12)相連,所述讀地址加法器(113)將所述讀計(jì)數(shù)器(112)的值與源地址寄存器(14)的值相加得到讀地址,并將所述讀地址輸出到地址比較和地址選擇部件(17),所述讀控制器(11)根據(jù)讀寫模式寄存器(13)的模式進(jìn)行本地存儲(chǔ)器的讀訪問操作; 所述寫控制器(12)包括寫狀態(tài)機(jī)(121)、寫計(jì)數(shù)器(122)以及寫地址加法器(123),與讀寫模式寄存器(13)、接收FIFO (3)、接收數(shù)據(jù)解包單元(5)、地址比較和地址選擇部件(17)以及讀控制器(11)相連,所述寫地址加法器(123)將從所述接收數(shù)據(jù)解包單元(5)輸入的接收數(shù)據(jù)目的地址與寫計(jì)數(shù)器(122)的值相加得到寫地址,并將所述寫地址的值輸出到地址比較和地址選擇部件(17 ); 所述地址比較和地址選擇部件(17)與所述讀控制器(11)、寫控制器(12)、接收數(shù)據(jù)解包單元(5)和讀寫模式寄存器(13)相連,接收所述讀控制器(11)輸出的讀地址信號(hào)和寫控制器(12)輸出的寫地址信號(hào),對(duì)讀地址和寫地址進(jìn)行比較,并把比較結(jié)果返回給所述寫控制器(12),同時(shí)根據(jù)從所述接收數(shù)據(jù)解包單元(5)輸出的接收數(shù)據(jù)寫模式信息和讀寫模式寄存器(13)的值對(duì)所述讀地址和寫地址進(jìn)行操作。
9.根據(jù)權(quán)利要求4所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于:所述發(fā)送數(shù)據(jù)打包單元(4)與片上互連網(wǎng)絡(luò)連接相連,包括一個(gè)數(shù)據(jù)打包狀態(tài)機(jī)(41)和一個(gè)發(fā)送數(shù)據(jù)計(jì)數(shù)器(42),按先入先出的順序從所述發(fā)送FIFO (2)當(dāng)中讀數(shù)據(jù),并將讀出的數(shù)據(jù)打包之后發(fā)送到片上互連網(wǎng)絡(luò),所述數(shù)據(jù)包包括讀寫模式、目的地址、源地址和傳輸字節(jié)數(shù)四種信息。
10.根據(jù)權(quán)利要求4所述的支持原址數(shù)據(jù)交換的存儲(chǔ)器訪問裝置,其特征在于:所述接收字節(jié)數(shù)寄存器(51)、接收數(shù)據(jù)目的地址寄存器(52)、接收數(shù)據(jù)讀寫模式寄存器(54)的值通過信號(hào)線直接輸出到所述數(shù)據(jù)讀寫控制器(I)。
【文檔編號(hào)】G06F13/28GK103714026SQ201410015782
【公開日】2014年4月9日 申請(qǐng)日期:2014年1月14日 優(yōu)先權(quán)日:2014年1月14日
【發(fā)明者】劉衡竹, 陳艇, 張劍鋒, 張波濤, 劉冬培, 周理, 吳鐵彬 申請(qǐng)人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)