本發(fā)明涉及芯片仿真,特別是涉及一種基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng)。
背景技術(shù):
1、通常情況下,fpga芯片集群通過運(yùn)行平臺(runtime)進(jìn)行管理,運(yùn)行平臺對外提供統(tǒng)一的基于網(wǎng)絡(luò)通訊的應(yīng)用程序編程接口(api)以支持客戶端訪問,上述通過運(yùn)行平臺實現(xiàn)fpga芯片的接口封裝能夠更好的復(fù)用fpga芯片的資源,但是,通過基于網(wǎng)絡(luò)通信的api提供服務(wù)也會帶來較為嚴(yán)重的性能問題。
2、在芯片仿真驗證的場景下,協(xié)同仿真能夠利用硬件加速器協(xié)同軟件,以起到加速仿真的效果,在使用基于fpga芯片的硬件加速器的場景下,需要通過測試平臺與fpga芯片之間的函數(shù)互相調(diào)用來實現(xiàn)協(xié)同仿真,而測試平臺與fpga芯片之間的調(diào)用頻率非常高,對性能的需求也是越高越好,如果采用上述基于網(wǎng)絡(luò)通信的api提供測試平臺與fpga芯片之間的調(diào)用服務(wù),消息處理的延遲過高,難以滿足協(xié)同仿真對性能的要求。
3、因此,如何提高測試平臺和fpga芯片之間的通訊效率成為了亟待解決的問題。
技術(shù)實現(xiàn)思路
1、針對上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
2、一種基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),所述系統(tǒng)包括:測試平臺、運(yùn)行平臺和fpga芯片。
3、所述運(yùn)行平臺用于通過預(yù)設(shè)的內(nèi)存映射函數(shù)創(chuàng)建第一內(nèi)存和第二內(nèi)存,所述第一內(nèi)存包括第一子空間和第二子空間,所述第二內(nèi)存包括第三子空間和第四子空間,所述第一子空間用于存儲第一元數(shù)據(jù),所述第三子空間用于存儲第二元數(shù)據(jù)。
4、所述第二子空間定義為第一環(huán)形緩沖區(qū),所述第四子空間定義為第二環(huán)形緩沖區(qū),所述第一環(huán)形緩沖區(qū)和所述第二環(huán)形緩沖區(qū)形成消息隊列,所述第一元數(shù)據(jù)用于維護(hù)所述第一環(huán)形緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu),所述第二元數(shù)據(jù)用于維護(hù)所述第二環(huán)形緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)。
5、所述測試平臺用于將第一數(shù)據(jù)寫入所述消息隊列,以及用于從所述消息隊列中讀出第二數(shù)據(jù),所述第二數(shù)據(jù)由所述fpga芯片推送給所述運(yùn)行平臺,由所述運(yùn)行平臺寫入所述消息隊列。
6、所述運(yùn)行平臺還用于從所述消息隊列中讀出所述第一數(shù)據(jù),將所述第一數(shù)據(jù)發(fā)送給所述fpga芯片。
7、本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的有益效果,借由上述技術(shù)方案,本發(fā)明提供的一種基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng)可達(dá)到相當(dāng)?shù)募夹g(shù)進(jìn)步性及實用性,并具有產(chǎn)業(yè)上的廣泛利用價值,其至少具有以下有益效果:
8、本發(fā)明提供了一種基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),所述系統(tǒng)包括:測試平臺、運(yùn)行平臺和fpga芯片,所述運(yùn)行平臺用于通過預(yù)設(shè)的內(nèi)存映射函數(shù)創(chuàng)建第一內(nèi)存和第二內(nèi)存,所述第一內(nèi)存包括第一子空間和第二子空間,所述第二內(nèi)存包括第三子空間和第四子空間,所述第一子空間用于存儲第一元數(shù)據(jù),所述第三子空間用于存儲第二元數(shù)據(jù),所述第二子空間定義為第一環(huán)形緩沖區(qū),所述第四子空間定義為第二環(huán)形緩沖區(qū),所述第一環(huán)形緩沖區(qū)和所述第二環(huán)形緩沖區(qū)形成消息隊列,所述第一元數(shù)據(jù)用于維護(hù)所述第一環(huán)形緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu),所述第二元數(shù)據(jù)用于維護(hù)所述第二環(huán)形緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu),所述測試平臺用于將第一數(shù)據(jù)寫入所述消息隊列,以及用于從所述消息隊列中讀出第二數(shù)據(jù),所述第二數(shù)據(jù)由所述fpga芯片推送給所述運(yùn)行平臺,由所述運(yùn)行平臺寫入所述消息隊列,所述運(yùn)行平臺還用于從所述消息隊列中讀出所述第一數(shù)據(jù),將所述第一數(shù)據(jù)發(fā)送給所述fpga芯片。
9、可知,相較于通過網(wǎng)絡(luò)傳輸數(shù)據(jù),使用第一內(nèi)存和第二內(nèi)存進(jìn)行數(shù)據(jù)傳輸,能夠避免發(fā)生系統(tǒng)調(diào)用,進(jìn)而避免進(jìn)程的上下文切換,從而提高了數(shù)據(jù)傳輸?shù)男?,在協(xié)同仿真場景下,提高測試平臺和fpga芯片之間的通訊效率。
1.一種基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,所述系統(tǒng)包括:測試平臺、運(yùn)行平臺和fpga芯片;
2.根據(jù)權(quán)利要求1所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,所述第一元數(shù)據(jù)和所述第二元數(shù)據(jù)均通過原子變量定義。
3.根據(jù)權(quán)利要求2所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,所述第一元數(shù)據(jù)和所述第二元數(shù)據(jù)之間存在填充數(shù)據(jù);
4.根據(jù)權(quán)利要求1所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,所述消息隊列為單讀單寫隊列。
5.根據(jù)權(quán)利要求1所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,在對所述第一元數(shù)據(jù)執(zhí)行第一處理操作時,所述第一處理操作對應(yīng)有第一內(nèi)存順序,在對所述第二元數(shù)據(jù)執(zhí)行處理操作時,所述第二處理操作對應(yīng)有第二內(nèi)存順序;
6.根據(jù)權(quán)利要求5所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,當(dāng)從所述消息隊列中讀出所述第一目標(biāo)數(shù)據(jù)時,加載所述第二元數(shù)據(jù),所述加載所述第二元數(shù)據(jù)的第二處理操作對應(yīng)的第二內(nèi)存順序為所述第一預(yù)設(shè)順序;
7.根據(jù)權(quán)利要求6所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,所述第一預(yù)設(shè)順序為relaxed內(nèi)存順序。
8.根據(jù)權(quán)利要求7所述的基于共享內(nèi)存的協(xié)同仿真通訊系統(tǒng),其特征在于,所述第二預(yù)設(shè)順序為acquire內(nèi)存順序,所述第三預(yù)設(shè)順序為release內(nèi)存順序。