【技術實現步驟摘要】
本專利技術涉及數據通信
,尤其涉及一種總線通信方法及系統。
技術介紹
在高帶寬數據通信中,例如在使用千兆以太網,PCIe通信協議的工況下,為了保證數據可被正確快速地接收,大多采用DMA(DirectMemoryAccess,直接內存存取)數據傳輸方式傳輸數據。DMA是一種不經過CPU而直接從內存存取數據的數據交換模式,在DMA方式下,CPU只須向DMA控制器下達指令,讓DMA控制器來處理數據的傳送,底層硬件板卡在接收到數據后,將數據直接通過DMA數據傳輸方式存儲到主機分配的DMA緩存中,數據傳送完畢再通過DMA中斷把信息反饋給CPU,CPU通過DMA中斷感知到數據已經存放到DMA緩存后,便將此數據保存到本地磁盤,之后下一輪的DMA數據傳輸才能開始,這樣可以避免CPU頻繁訪問底層硬件,在進行數據傳輸尤其是大數據量傳輸時可以很大程度上減輕CPU的資源占用率。但是,由于每一輪的DMA數據傳輸完成后均需要CPU將數據保存到本地磁盤,當每輪DMA數據傳輸之間的間隔時間較短時,便需要CPU頻繁地將數據從DMA緩存轉移到本地磁盤,從而導致CPU負載和磁盤負載過高,無法及時處理其他線程任務,降低設備性能。
技術實現思路
本專利技術提供一種總線通信方法及系統,以降低CPU負載和磁盤負載,便于及時處理其他線程任務,提高設備性能。為解決上述技術問題,本專利技術實施例提供以下技術方案:一種總線通信方法, ...
【技術保護點】
一種總線通信方法,其特征在于,包括:通過一級緩存接收總線數據;在直接內存存取DMA數據傳輸啟動時,將所述一級緩存接收的所述總線數據保存到二級緩存中,并將所述二級緩存中的所述總線數據保存到三級緩存中;所述三級緩存的容量大于所述二級緩存的容量;在將所述三級緩存存滿時,中斷所述DMA數據傳輸,向CPU發送DMA中斷請求,以使所述CPU在接收到所述DMA中斷請求后將所述三級緩存中保存的所述總線數據提取到本地磁盤中。
【技術特征摘要】
1.一種總線通信方法,其特征在于,包括:
通過一級緩存接收總線數據;
在直接內存存取DMA數據傳輸啟動時,將所述一級緩存接收的所述總線
數據保存到二級緩存中,并將所述二級緩存中的所述總線數據保存到三級緩
存中;所述三級緩存的容量大于所述二級緩存的容量;
在將所述三級緩存存滿時,中斷所述DMA數據傳輸,向CPU發送DMA
中斷請求,以使所述CPU在接收到所述DMA中斷請求后將所述三級緩存中
保存的所述總線數據提取到本地磁盤中。
2.根據權利要求1所述的方法,其特征在于,所述一級緩存中包括多個
設置有序號的一級緩存空間;
所述通過一級緩存接收總線數據,包括:
接收所述總線數據,并按照所述一級緩存空間的序號保存接收的所述總
線數據,在將一個所述一級緩存空間存滿后,再使用下一個所述一級緩存空
間繼續保存,直到將所有的所述一級緩存空間存滿后,再重新按照所述一級
緩存空間的序號保存接收的所述總線數據,覆蓋每一個所述一級緩存空間中
的原有數據。
3.根據權利要求2所述的方法,其特征在于,所述二級緩存中包括多個
設置有序號的二級緩存空間;
所述在直接內存存取DMA數據傳輸啟動時,將所述一級緩存接收的所述
總線數據保存到二級緩存中,包括:
在所述一級緩存中的任意一個所述一級緩存空間被存滿時,記錄被存滿
的所述一級緩存空間的序號;
在所述DMA數據傳輸啟動時,檢測所述二級緩存中是否存在可以保存數
據的所述二級緩存空間;
如果存在,判斷上一次保存數據的所述二級緩存空間的序號,并從可以
保存數據的所述二級緩存空間中選擇與上一次保存數據的所述二級緩存空間
不同的所述二級緩存空間,將被存滿的所述一級緩存空間中的所述總線數據
保存到所選擇的所述二級緩存空間中。
4.根據權利要求3所述的方法,其特征在于,所述三級緩存中包括多個
\t設置有序號的三級緩存空間;
所述將所述二級緩存中的所述總線數據保存到三級緩存中,包括:
檢測所述三級緩存中是否存在尚未被存滿的所述三級緩存空間;
如果存在,在將被存滿的所述一級緩存空間中的所述總線數據保存到所
選擇的所述二級緩存空間中后,將所選擇的所述二級緩存空間中的所述總線
數據保存到尚未被存滿的所述三級緩存空間中。
5.根據權利要求1所述的方法,其特征在于,在所述向CPU發送DMA
中斷請求之后,還包括:
檢測所述三級緩存中的所述總線數據是否已被保存到所述本地磁盤中;
如果是,則將所述三級緩存中的所述總線數據清空,并重新啟動所述
DMA數據傳輸。
6.一種總線通信系統,其特征在于,包括:
接收模塊,用于通過一...
【專利技術屬性】
技術研發人員:汪宇雷,
申請(專利權)人:北京經緯恒潤科技有限公司,
類型:發明
國別省市:北京;11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。