如何利用FPGA平台突破接口的总线速度瓶颈

网友投稿 300 2022-11-07

如何利用FPGA平台突破接口的总线速度瓶颈

1 系统组成

如图l所示,系统主要由4部分组成:嵌入式处理器、CPLD、FPGA及视频图像压缩输入部分。

(1)嵌入式处理器

(2)FPGA与CPLD

(3)视频图像压缩输入部分

2 系统原理与实现

为了说明本设计如何利用FPGA和CPLD来解决慢速总线Local Bus对扩充系统性能的瓶颈限制,下面将分两部分来说明。

(1)Local Bus总线速度对系统性能的影响

(2)解决LocaI Bus总线速度对系统性能的影响

在嵌入式系统中,处理器外部总线的主要目的是将外部的数据块输入到处理器内部缓存中,外部总线速度一般是不会超过处理器访问它的外存(如SDRAM)的速度,否则会引起数据内部拥塞而丢失数据。因此,在一些需要传输大量数据到处理器内存的嵌入式系统中,能否使从外部输入到内存的数据以处理器访问内存的速率在处理器外部直接放入外存呢?答案是肯定的。我们可以通过CPLD和FPGA来实现,如系统框图中所示。下面说明这样实现的方法。 首先,就处理器内部来讲,一般嵌入式处理器将它的片外物理存储空间映射到内存地址空间的高端。EM8560处理器就是这样映射的,如图2所示。

当系统启动时,引导程序将操作系统从Flash中引入SDRAM中的低2M×32位内存中, 即操作系统获得系统控制权后只在sDRAM的两个低BANK内运行。这时不访问两个高BANK。因为将两个高BANK作为输入视频数据缓冲区,只有当缓冲区满要将数据写入硬盘时才访问两个高BANK,因此,用两片SDRAM分别作为一片SDRAM的两个高BANK和两个低BANK使用。高片SDRAM用来存放输入视频数据,由FPGA直接写入;低片sDRAM运行操作系统和系统程序。这样可以把外部输入的视频数据不通过Local Bus总线直接输入到内存。在输入到内存的过程中,CPU是不参与传输数据的。值的注意的是:高片中只用了两个高BANK,低片中只用了两个低BANK。

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。当然这种划分也可以不相等,视具体情况而定。

综上所述,对于那些由于受到总线速度制约的嵌入式系统来讲,上述方案具有一定的参考价值。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux 基础命令和帮助文档的查看
下一篇:计算机基础和系统安装
相关文章

 发表评论

暂时没有评论,来抢沙发吧~