用FPGA構建PCI Express端點器件最佳平臺
鏈路效率
鏈路效率是延遲、用戶應用設計、有效載荷大小和額外開銷的函數。隨著有效載荷大小(通常稱為最大有效載荷)的增加,有效鏈路效率也會增加。這是由包的額外開銷固定不變這一事實造成的;如果有效載荷大,效率就提高。一般情況下,256字節(jié)的有效載荷可提供93%的理論效率(256有效載荷字節(jié)+12包頭字節(jié)+8幀字節(jié))。盡管PCI Express允許的包大小可達4KB,但如果有效載荷大小大于256或512字節(jié),大多數系統(tǒng)的性能都無法提高。由于鏈路協(xié)議額外開銷(ACK/NAK、包重新發(fā)送)和流程控制協(xié)議,在Virtex-5 LXT FPGA中實現(xiàn)x4或x8PCI Express的鏈路效率為88-89%。
利用FPGA實現(xiàn)可以更好地控制鏈路效率,因為它允許您選擇與端點實現(xiàn)對應的接收緩沖器尺寸。如果鏈接雙方不是采用相同的方式實現(xiàn)數據通路,則二者的內部延遲會不同。例如,如果一號鏈接方使用64位、250MHz實現(xiàn),延遲為80ns,而二號鏈接方使用128位、125MHz實現(xiàn),延遲為160ns,該鏈路的組合延遲即為240ns。現(xiàn)在,如果一號鏈接方的接收緩沖器設計成160ns的延遲(即期待其鏈接對方也是64位、250MHz實現(xiàn)),那么鏈路效率就會降低。如果采用ASIC實現(xiàn),就不可能改變接收緩沖器的尺寸,效率損失將是實實在在的,而且是永久性的。
用戶應用程序設計也會對鏈路效率有所影響。用戶應用程序必須設計成定期排空PCI Express接口的接收緩沖器,并保持發(fā)送緩沖器時刻充滿。如果用戶應用程序不立即使用接收的包(或者不立即響應發(fā)送請求),無論接口的性能如何,總鏈路效率都會受到影響。
使用某些處理器設計時,如果處理器不能執(zhí)行大于1 DWORD的突發(fā),則需要實現(xiàn)一個DMA控制器。這將造成鏈路利用不充分,效率不佳。大多數嵌入式CPU可以發(fā)送長于1 DWORD的突發(fā),所以通過良好的FIFO設計就可以有效地管理這些設計的鏈路效率。
PCI Express兼容性
兼容性是經常被遺漏和低估的重要細節(jié)。如果要構建必須與其他應用和設備一起工作的PCI Express應用,則必須確保設計的兼容性。
兼容性不只針對IP,而是針對整個解決方案,包括IP、用戶應用、半導體器件和硬件板。如果整個解決方案已經過PCI-SIG PCI Express兼容性工作組的驗證,就能很好地保證您設計的PCI Express部分會一直有效工作。
本文結論:
PCI Express已替代PCI成為事實上的系統(tǒng)互連標準,并且已從PC轉移到其他系統(tǒng)市場,包括嵌入式系統(tǒng)設計。FPGA非常適合于構建PCI Express端點器件,因為它允許您創(chuàng)建帶有用戶所需的附加定制功能的兼容性PCI Express器件。
類似Virtex-5 LXT和SXT系列的新65nm FPGA完全符合PCI Express v1.1規(guī)范,并為用戶應用提供廣泛的邏輯和器件資源。使用外部PHY的Spartan-3系列FPGA提供了低成本解決方案。這些因素,加上內在的可編程邏輯優(yōu)勢(靈活性、可再編程性和低風險)使FPGA成為PCI Express的最佳平臺。
評論