本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種多端口訪問的存儲器及其工作方法。
背景技術(shù):
多端口訪問存儲器是通信網(wǎng)關(guān)設(shè)備中處理器內(nèi)部各個(gè)模塊緩存和交換數(shù)據(jù)的主要方式,不同端口對存儲器的訪問效率決定著整個(gè)通信網(wǎng)絡(luò)的處理性能。隨著通信網(wǎng)絡(luò)的不斷發(fā)展演進(jìn),網(wǎng)絡(luò)帶寬不斷提高,對通信網(wǎng)關(guān)設(shè)備中處理器的存儲器端口訪問效率要求也越來越高。
多端口訪問存儲器的核心是多端口訪問的請求調(diào)度方式,傳統(tǒng)的多端口訪問存儲器是各個(gè)端口分配獨(dú)立的數(shù)據(jù)、地址總線,通過邏輯驅(qū)動,在同一時(shí)鐘的驅(qū)動下,并發(fā)的訪問共享存儲模塊。當(dāng)各端口讀寫請求沖突時(shí),通過通過硬件端口優(yōu)先級和硬件讀寫優(yōu)先級設(shè)置優(yōu)先級處置訪問沖突。但是存在各個(gè)端口無緩存能力,總線協(xié)議復(fù)雜,仲裁效率較低等問題。
改進(jìn)的雙通道存儲器,將共享存儲器的讀寫工作信號頻率設(shè)置為外部所連邏輯模塊讀寫工作信號頻率的兩倍,并將共享存儲器的切換控制信號頻率設(shè)置為外部所連邏輯模塊切換控制信號的頻率,從而把單端口的存儲器等效成雙端口的存儲器,使不同的外部邏輯模塊得到獨(dú)立的存儲器訪問接口,但是不同端口的優(yōu)先級設(shè)置會導(dǎo)致高優(yōu)先級的端口長時(shí)間占用存儲器接口,使得其他端口讀寫延遲過大。無法滿足通信網(wǎng)關(guān)設(shè)備處理器內(nèi)部各個(gè)端口高效訪問存儲器的問題。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述的分析,本發(fā)明旨在提供一種多端口訪問存儲器的實(shí)現(xiàn)方法,用以解決處理器中多模塊訪問存儲器時(shí),端口協(xié)議復(fù)雜、仲裁效率低下、端口無緩存能力等多種問題。
本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的:
在基于本發(fā)明實(shí)施例的一個(gè)方面,提供了一種多端口訪問的存儲器,包括兩個(gè)或兩個(gè)以上端口、有限狀態(tài)機(jī)、時(shí)間片輪轉(zhuǎn)調(diào)度核、存儲器模塊;其中,
各端口一端耦接到讀寫存儲器模塊中數(shù)據(jù)的模塊,另一端通過雙向數(shù)據(jù)線連接到有限狀態(tài)機(jī);有限狀態(tài)機(jī)通過雙向數(shù)據(jù)線連接到存儲器模塊;
另外各端口還通過信號線連接到時(shí)間片輪轉(zhuǎn)調(diào)度核,時(shí)間片輪轉(zhuǎn)調(diào)度核通過雙向信號線連接到有限狀態(tài)機(jī),有限狀態(tài)機(jī)通過信號線連接到存儲器模塊。
在基于本發(fā)明多端口訪問的存儲器的另一個(gè)實(shí)施例中,端口使用了fifo接口。
在基于本發(fā)明實(shí)施例的另一個(gè)方面,提供了一種多端口訪問的存儲器的工作方法,包括步驟:
s1、讀寫請求進(jìn)入端口緩存中等待響應(yīng);
s2、端口緩存非空標(biāo)識置1;
s3、時(shí)間片輪轉(zhuǎn)調(diào)度核獲取端口緩存非空標(biāo)識信息后,由空閑態(tài)進(jìn)入該端口的響應(yīng)態(tài),并向有限狀態(tài)機(jī)發(fā)送通知;
s4、有限狀態(tài)機(jī)接收到時(shí)間片輪轉(zhuǎn)調(diào)度核發(fā)出的通知,從該端口緩存中取出讀/寫請求,進(jìn)行相應(yīng)的讀/寫操作;
s5、讀/寫操作完成,有限狀態(tài)機(jī)將完成標(biāo)志發(fā)送給時(shí)間片輪轉(zhuǎn)調(diào)度核中,使時(shí)間片輪轉(zhuǎn)調(diào)度核退出該端口的響應(yīng)態(tài);
s6、時(shí)間片輪轉(zhuǎn)調(diào)度核判斷是否有未響應(yīng)的端口緩存非空標(biāo)識,有,則進(jìn)入該端口的響應(yīng)態(tài),執(zhí)行步驟s4;否,時(shí)間片輪轉(zhuǎn)調(diào)度核回到空閑態(tài)。
在基于本發(fā)明方法的另一個(gè)實(shí)施例中,步驟s3中,當(dāng)時(shí)間片輪轉(zhuǎn)調(diào)度核同時(shí)獲取到多個(gè)端口緩存非空標(biāo)識信息時(shí),時(shí)間片輪轉(zhuǎn)調(diào)度核隨機(jī)選擇一個(gè)端口進(jìn)入該端口的響應(yīng)態(tài)。
在基于本發(fā)明方法的另一個(gè)實(shí)施例中,步驟s6中,當(dāng)未響應(yīng)的端口緩存非空標(biāo)識有多個(gè)時(shí),時(shí)間片輪轉(zhuǎn)調(diào)度核隨機(jī)選擇一個(gè)進(jìn)入該端口的響應(yīng)態(tài)。
在基于本發(fā)明方法的另一個(gè)實(shí)施例中,步驟s1中,當(dāng)操作為讀請求時(shí),fifo中需要寫入地址位和讀請求位;當(dāng)操作為寫請求時(shí),fifo中需要寫入數(shù)據(jù)位、地址位和寫請求位。
在基于本發(fā)明方法的另一個(gè)實(shí)施例中,時(shí)間片輪轉(zhuǎn)調(diào)度核進(jìn)入某端口的響應(yīng)態(tài)后,鎖定該狀態(tài),并屏蔽其他端口緩存的非空標(biāo)識。
本發(fā)明有益效果如下:
本發(fā)明采用簡單的端口數(shù)據(jù)傳輸協(xié)議,為每個(gè)端口提供一定的緩存空間,并對仲裁邏輯進(jìn)行優(yōu)化,大幅提高多端口請求的仲裁效率,在通信網(wǎng)關(guān)設(shè)備的處理器各個(gè)模塊訪問存儲器時(shí),各個(gè)端口的等效讀寫帶寬高,延遲小,具有一定的緩存能力,以實(shí)現(xiàn)通信網(wǎng)關(guān)處理器各個(gè)模塊對高速數(shù)據(jù)流的快速處理,提升通信網(wǎng)關(guān)設(shè)備的整體效率,滿足高速通信網(wǎng)絡(luò)對于網(wǎng)關(guān)設(shè)備的性能要求。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分的從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
附圖僅用于示出具體實(shí)施例的目的,而并不認(rèn)為是對本發(fā)明的限制,在整個(gè)附圖中,相同的參考符號表示相同的部件。
圖1為多端口訪問存儲器實(shí)現(xiàn)方法框圖;
圖2為時(shí)間片輪轉(zhuǎn)調(diào)度核起始狀態(tài)跳轉(zhuǎn)圖;
圖3為時(shí)間片輪轉(zhuǎn)調(diào)度核工作狀態(tài)跳轉(zhuǎn)圖。
具體實(shí)施方式
下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)選實(shí)施例,其中,附圖構(gòu)成本申請一部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,公開了一種多端口存儲器,如圖1所示,包括:兩個(gè)或兩個(gè)以上端口、有限狀態(tài)機(jī)、時(shí)間片輪轉(zhuǎn)調(diào)度核、存儲器模塊;其中,
各端口一端耦接到要存取存儲器模塊中數(shù)據(jù)的模塊,這里的模塊是指業(yè)務(wù)處理模塊,在典型的系統(tǒng)設(shè)計(jì)中,會有不同的業(yè)務(wù)模塊來完成不同的業(yè)務(wù)功能,例如中央處理器以及圖形處理器等;
各端口另一端通過雙向數(shù)據(jù)線連接到有限狀態(tài)機(jī);有限狀態(tài)機(jī)通過雙向數(shù)據(jù)線連接到存儲器模塊,實(shí)現(xiàn)數(shù)據(jù)雙向流通;
另外各端口還通過信號線連接到時(shí)間片輪轉(zhuǎn)調(diào)度核,時(shí)間片輪轉(zhuǎn)調(diào)度核通過雙向信號線連接到有限狀態(tài)機(jī),有限狀態(tài)機(jī)還通過信號線連接到存儲器模塊;時(shí)間片輪轉(zhuǎn)調(diào)度核獲得端口緩存非空標(biāo)識信息,通過向有限狀態(tài)機(jī)發(fā)送控制指令調(diào)度各端口的讀寫請求,有限狀態(tài)機(jī)將控制信號發(fā)送到存儲器模塊控制存儲器讀寫數(shù)據(jù);
端口使用了標(biāo)準(zhǔn)的先入先出隊(duì)列(fifo)接口并設(shè)置緩存容量,具體地,緩存為雙向緩存,緩存容量一般為512bit。
使用fifo接口降低了讀寫訪問時(shí)的操作復(fù)雜度;設(shè)置緩存容量使得各個(gè)端口擁有一定的緩存能力,有效的解決了突發(fā)數(shù)據(jù)導(dǎo)致系統(tǒng)阻塞的問題;使用時(shí)間片輪轉(zhuǎn)調(diào)度方法和有限狀態(tài)機(jī)完成各端口讀寫數(shù)據(jù)的搬移和存儲器的訪問,有效提高了各端口的仲裁效率和等效帶寬。
其工作方法包括以下步驟:
s1、讀寫請求進(jìn)入端口緩存中等待響應(yīng);
端口接收到的讀寫請求來自于與端口相連的模塊,讀請求和寫請求分開執(zhí)行。當(dāng)操作為讀請求時(shí),端口fifo中需要寫入地址位(address)和讀請求位(r);當(dāng)操作為寫請求時(shí),端口fifo中需要寫入數(shù)據(jù)位(data)、地址位(address)和寫請求位(w)。
這里的模塊是指業(yè)務(wù)處理模塊,在典型的系統(tǒng)設(shè)計(jì)中,會有不同的業(yè)務(wù)模塊來完成不同的業(yè)務(wù)功能。
s2、端口緩存非空標(biāo)識置1;
非空標(biāo)識置1表明端口緩存中有數(shù)據(jù)讀寫請求。
端口緩存用于接收外部的讀寫請求,端口緩存本身帶有1bit信號線,用于指示緩存中是否有數(shù)據(jù),當(dāng)端口緩存中無數(shù)據(jù)時(shí),該信號線為“0”;當(dāng)端口緩存中有數(shù)據(jù)(讀寫請求)時(shí),該信號線為“1”。
因此,該信號線又稱為端口緩存非空標(biāo)志,用于指示緩存中是否有讀寫請求。
s3、時(shí)間片輪轉(zhuǎn)調(diào)度核獲取端口緩存非空標(biāo)識信息后,由空閑態(tài)進(jìn)入該端口的響應(yīng)態(tài),并向有限狀態(tài)機(jī)發(fā)出通知;
時(shí)間片輪轉(zhuǎn)調(diào)度核的輸入是各個(gè)端口緩存非空標(biāo)識,當(dāng)各個(gè)端口均無請求時(shí),時(shí)間片輪轉(zhuǎn)調(diào)度核處于空閑狀態(tài)。
進(jìn)一步地,時(shí)間片輪轉(zhuǎn)調(diào)度核同時(shí)獲取到多個(gè)端口緩存非空標(biāo)識信息時(shí),時(shí)間片輪轉(zhuǎn)調(diào)度核隨機(jī)選擇一個(gè)端口進(jìn)入該端口的響應(yīng)態(tài),鎖定該狀態(tài),并屏蔽其他端口緩存的非空標(biāo)識信息,等待該端口請求響應(yīng)完成標(biāo)志信息;
s4、有限狀態(tài)機(jī)接收到時(shí)間片輪轉(zhuǎn)調(diào)度核發(fā)出的通知,從對應(yīng)的端口緩存中取出讀/寫請求,進(jìn)行相應(yīng)的讀/寫操作;
有限狀態(tài)機(jī)在未收到時(shí)間片輪轉(zhuǎn)調(diào)度核的通知時(shí)處于空閑狀態(tài),接到通知后進(jìn)入工作狀態(tài),當(dāng)所有端口請求處理完成后,有限狀態(tài)機(jī)進(jìn)入空閑狀態(tài),等待新的端口讀寫請求。
等待新的端口讀寫請求具體地,對于端口的讀請求,有限狀態(tài)機(jī)從端口緩存中取出地址位,根據(jù)存儲器的讀時(shí)序,讀取對應(yīng)地址的數(shù)據(jù),并將該數(shù)據(jù)返回送入對應(yīng)端口的緩存中,等待發(fā)出讀請求的模塊將該數(shù)據(jù)讀出。對于端口的寫請求,有限狀態(tài)機(jī)從端口緩存中取出數(shù)據(jù)位和地址位,根據(jù)存儲器的寫時(shí)序,將該數(shù)據(jù)寫入對應(yīng)的地址中,完成寫操作。
s5、讀寫操作完成,有限狀態(tài)機(jī)將完成標(biāo)志傳遞給時(shí)間片輪轉(zhuǎn)調(diào)度核中,使時(shí)間片輪轉(zhuǎn)調(diào)度核退出該端口的響應(yīng)態(tài);
s6、時(shí)間片輪轉(zhuǎn)調(diào)度核判斷是否有未響應(yīng)的端口緩存非空標(biāo)識,有,則進(jìn)入該端口的響應(yīng)態(tài),鎖定該狀態(tài),并屏蔽其他端口緩存的非空標(biāo)識,執(zhí)行步驟s4,等待該端口請求響應(yīng)完成標(biāo)志;否,時(shí)間片輪轉(zhuǎn)調(diào)度核回到空閑態(tài),有限狀態(tài)機(jī)同時(shí)進(jìn)入空閑狀態(tài),等待新的端口讀寫請求;
進(jìn)一步地,當(dāng)未響應(yīng)的端口緩存非空標(biāo)識有多個(gè)時(shí),時(shí)間片輪轉(zhuǎn)調(diào)度核隨機(jī)選擇一個(gè)進(jìn)入該端口的響應(yīng)態(tài)。
當(dāng)所有端口的讀寫請求處理完畢后,時(shí)間片輪轉(zhuǎn)調(diào)度核回到空閑狀態(tài)。
本發(fā)明有益效果包括:
本發(fā)明采用簡單的端口數(shù)據(jù)傳輸協(xié)議,為每個(gè)端口提供一定的緩存空間,并對仲裁邏輯進(jìn)行優(yōu)化,大幅提高多端口請求的仲裁效率,在通信網(wǎng)關(guān)設(shè)備的處理器各個(gè)模塊訪問存儲器時(shí),各個(gè)端口的等效讀寫帶寬高,延遲小,具有一定的緩存能力,以實(shí)現(xiàn)通信網(wǎng)關(guān)處理器各個(gè)模塊對高速數(shù)據(jù)流的快速處理,提升通信網(wǎng)關(guān)設(shè)備的整體效率,滿足高速通信網(wǎng)絡(luò)對于網(wǎng)關(guān)設(shè)備的性能要求。
本領(lǐng)域技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法的全部或部分流程,可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于計(jì)算機(jī)可讀存儲介質(zhì)中。其中,所述計(jì)算機(jī)可讀存儲介質(zhì)為磁盤、光盤、只讀存儲記憶體或隨機(jī)存儲記憶體等。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。