Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3149978
  • 博文数量: 117
  • 博客积分: 10003
  • 博客等级: 上将
  • 技术积分: 5405
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 09:34
文章分类

全部博文(117)

文章存档

2011年(1)

2010年(10)

2009年(69)

2008年(37)

分类: LINUX

2009-05-26 17:54:01

 

ARM体系结构中:

ARM体系结构中,GPU是不带自身的显存,而往往是在系统的RAM中预留一块留给GPU做为显存。这样的结果就是GPU对于显存操作时,要走AHB总线,LCD周期性从Frame buffer中刷新也要走AHB总线。这样就会造成AHB总线的繁忙,从而造成性能的瓶颈。

AHB总线频率为133Mhz,采用SDRAM内存,屏幕分辨率为800*60032位色。

先说明一点,LCDSDRAM中获取屏幕数据,是通过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总线的频率。
阅读(2835) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~