利用FPGA平台解决接口的总线速度瓶颈
时间:09-02
来源:互联网
点击:
3 改进的系统性能分析
首先,对于CPU所要访问的外部设备,通过加入FPGA的缓存,等价于增大了外部设备输出数据缓冲区的空间,并且该空间的大小可以通过改变FPGA的缓存来任意改变,大大减小了频繁地向CPU发中断的次数。例如,一片IME6400的1KB输出数据缓冲区满,就要发出中断信号,要求主机在400 us内读空缓冲区中的数据。如果中断信号发往CPU,则IME6400满1KB就中断CPU一次;如果将中断信号发往FPGA,则FPGA会将这1KB数据先放到自己的缓存中,等到积累到一定大小,比如16KB、32KB时,再由FPGA向CPU发中断,进行高速数据拷贝,大大减小了系统中断次数。其次,由于数据的输入由Local Bus总线改为由FPGA缓存以后再高速输入,这就大大增加了输入视频数据的通道数,即能挂更多的IME6400。原来用Local Bus从IME6400中读lKB数据需要100 u s左右时间,现在通过FPGA读只用不到25 u s的时间,相当于原来所用时间的1/5。这就允许在400 us内增加更多的通道数,由原来最大的两路可以扩充到四路、八路、十路等等,大大改善了系统性能。
值得注意的是:以上系统性能的改进是牺牲了两片SDRAM部分空间换得的。在低片sDRAM中只用了两个低BANK,在高片SDRAM中只用了两个高BANK。当然这种划分也可以不相等,视具体情况而定。
首先,对于CPU所要访问的外部设备,通过加入FPGA的缓存,等价于增大了外部设备输出数据缓冲区的空间,并且该空间的大小可以通过改变FPGA的缓存来任意改变,大大减小了频繁地向CPU发中断的次数。例如,一片IME6400的1KB输出数据缓冲区满,就要发出中断信号,要求主机在400 us内读空缓冲区中的数据。如果中断信号发往CPU,则IME6400满1KB就中断CPU一次;如果将中断信号发往FPGA,则FPGA会将这1KB数据先放到自己的缓存中,等到积累到一定大小,比如16KB、32KB时,再由FPGA向CPU发中断,进行高速数据拷贝,大大减小了系统中断次数。其次,由于数据的输入由Local Bus总线改为由FPGA缓存以后再高速输入,这就大大增加了输入视频数据的通道数,即能挂更多的IME6400。原来用Local Bus从IME6400中读lKB数据需要100 u s左右时间,现在通过FPGA读只用不到25 u s的时间,相当于原来所用时间的1/5。这就允许在400 us内增加更多的通道数,由原来最大的两路可以扩充到四路、八路、十路等等,大大改善了系统性能。
值得注意的是:以上系统性能的改进是牺牲了两片SDRAM部分空间换得的。在低片sDRAM中只用了两个低BANK,在高片SDRAM中只用了两个高BANK。当然这种划分也可以不相等,视具体情况而定。
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)