在ARM体系结构中,GPU是不带自身的显存,而往往是在系统的RAM中预留一块留给GPU做为显存。这样的结果就是GPU对于显存操作时,要走AHB总线,LCD周期性从Frame
buffer中刷新也要走AHB总线。这样就会造成AHB总线的繁忙,从而造成性能的瓶颈。
以AHB总线频率为133Mhz,采用SDRAM内存,屏幕分辨率为800*600,32位色。
先说明一点,LCD从SDRAM中获取屏幕数据,是通过DMA的方式,其存储效率很高。
先来计算SDRAM的内存吞吐率,SDRAM的频率和AHB总线频率保持一致为133Mhz,按照数据总线宽度为32位,那么SDRAM的理论吞吐率为133*4=512MB/s。
LCD一帧的数据量:800*600*4=1,920,000。
那么LCD通过AHB总线传输一帧所花费的时间为1.92M/512M=3.75ms。
如果按照LCD刷新频率为60hz,那么AHB总线在一秒内光花在LCD刷新屏幕的时间就为3.75*60=225ms,可以说1/5的时间就没了。
在PC体系架构中:
在PC架构上,GPU自身是带显存的,这是和ARM架构中最重要的区别。这样LCD在刷新屏幕内容时,可以直接和GPU相连,而不必内部总线。这样LCD的刷新频率对于内部总线没有影响。
针对ARM平台下,LCD刷新频率的优化。
1、 减少每一帧的数据量:减小屏幕的分辨率、降低每像素的位数。
2、 减小LCD的刷新频率,对于LCD来讲没有必要做到60hz。
3、
如果LCD支持异步局部刷新的话,这样其能够只是刷新变化的内容,会减少总线数据传输量。
4、采用更加高速的内存,比如说DDR,或者提高AHB总线的频率。
没有评论:
发表评论