“ 屏幕 RAM” 的传说

产品

2011-12-20 14:00

最近,我从推特上看到了小米提出的新概念——屏幕 RAM。对此概念有些疑惑。于是,根据各种论坛的线索,我大致归纳了 “屏幕 RAM” 的几个特点:

  • 这是一种缓存机制,使得 GPU 只需要运算 delta 值。在没有此机制的屏幕上绘图要求 GPU 不断的工作,产生图形
  • 这种机制可以得到性能的提升,原因是 GPU 不需要为了不断的渲染相同的图像而浪费处理时间
  • 这种机制可以节约电量
  • 这种机制主要应用在高端手机上
  • 这种机制的成本是 80 元人民币,约合 $15

暂且抛开这种机制在一边,我们先看一看 LCD 的显示原理。

不管是 TTF 还是较早的 STN 屏幕,其都是由一个一个的亚像素(彩色显示器)/栅格(灰度显示器)组成的。给液晶分子加上一个电压,液晶分子将改变其光透射特性,这就激发颜色的改变(对于彩色显示器),或者透光度的改变(对于黑白显示器)。外加电场消失时,透光度恢复。不管是什么技术,它们的基本原理大抵如此。

如果有一些嵌入式开发经验,可能将 LCD 看作一组寄存器的概念更能接受————实际上,我们无法对 LCD 直接进行操作,我们操作的对象是 LCD 控制器,控制器控制各个像素/栅格的状态,这也是为了节省宝贵的 IO 端口。可以将 LCD 作为一组寄存器操作的 LCD 面板叫做 “智能 LCD 面板 “。这种面板自带的控制器中含有 FrameBuffer (帧缓存) 甚至渲染引擎。我们在嵌入式开发中常用的 1602 屏幕就自带了显示引擎、字库以及帧缓存。而有一些其他的屏幕,例如 S3C2440 开发板中常用的某些 LCD 屏幕就没有自己的帧缓存、显示引擎,这种屏幕叫做” 哑面板 “。哑面板需要外置的 LCD 控制器,而智能面板不需要额外的 LCD 控制器。

帧缓存这个名词听起来有一点点绕口,其实它更通俗的名字叫做” 显存 “。显示引擎预先渲染一些内容,并将其保存在显存中,如果显存太小,则显示控制器将不断的运行,有可能导致的是因为运算能力较差造成延迟和掉帧的现象。另一方面,带有 LCD 控制器的面板可以接受高级指令,也不需要外界(这里的系统定义为 LCD)的额外控制就可以保持显示内容。显然,这种 LCD 因为内置了显示引擎而造成成本的增加。然而,哑面板虽然成本低,但需要外界不断的刷新内容而保持屏幕的正常显示,这无疑将增加外界的计算压力。

这里,我们也许会觉得,这与上面提出的机制的特点相当吻合。确实如此吗?不尽然。

现代计算机中的一个重要组成部分叫做显示适配器,俗称显卡。手机等嵌入式设备也不例外,但是由于其空间受限制,一般更倾向于 SoC 设计(片上系统,俗称 “手机主芯片”,主流是 ARM 体系)。内置 LCD 控制器的智能 LCD 似乎很适合,但是我们知道,2008 年之后的手机市场已经开始了性能竞赛——例如我现在使用的 iPhone 4S 的主频是 800MHz——作为对比,2009 年我购买的 HTC Dream 的主频是 384MHz,2007 年我购买的 Motorola Rokr E6 则是 313MHz 的主频。

与此同时,图形处理器,作为片内的一部分,它的进步也是随着中央处理器的进步而进步的。LCD 控制器的内置” 显卡 “毫无疑问相比于英伟达等专业厂商的显卡是很弱的。尽管哑面板没有帧缓存,要求不断的刷新屏幕,并使用了更多的总线带宽(显示器的带宽总是很大的),但是——无论如何,这些工作都是需要做的,不管是液晶面板做了,还是面板外进行的。

小米手机的 GPU,是 Adreno 220。查阅了此款 GPU 的资料,得知这是 SoC 内置 SRAM FrameBuffer 的解决方案。当然了,苹果的 A5 处理器一样是这种架构的 SoC ,也内置了 FrameBuffer。另一方面,根据魅族公布的资料,魅族 MX 的 GPU 也是 SoC 实现的 Cortex-A9 + Mali-400MP GPU。这款片上同样集成了一定数量的内存作为帧缓存使用,根据 ARM 的介绍,其最大支持的帧缓存大小为单帧 4096×4096。

即使说到这里,可能还是有一些读者不理解他们有什么太大的差距,在这里,我再说明一下它们之间的联系:

  • 为了让液晶面板现实出文字和图像,必须配合一块特殊的控制器;
  • 控制器的位置可以放在多个地方;
  • 对于很多智能手机而言,在 SoC 和显示面板上都具有控制器。

由于填充 Framebuffer 的过程必须由内置的 GPU 完成,则显示器将显示来自 Framebuffer 的内容。既然两种手机都显示来自 Framebuffer 的内容,那么不管他们选择什么样的液晶面板,都会达到一样的效果,那就是帧缓存在液晶屏幕之外。

作为初步结论,我认为,” 屏幕 RAM” 应该是指的液晶面板内的帧缓存。在当前的运行模式下,其存在的意义不大,在硬件抽象层之上,操作系统是不需要关心这种实现的。尽管哑面板有着种种缺点,但因为目前的设计,实际上智能面板的 “智能部分” 已经由更加智能的智能手机片内的 GPU 所完成。因此,单独提出这个概念并没有太多技术上的说服力。” 屏幕 RAM” 就成为了一个营销概念。

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中