“屏幕 RAM”的傳說
最近,我從推特上看到了小米提出的新概念——屏幕 RAM。對此概念有些疑惑。于是,根據各種論壇的線索,我大致歸納了“屏幕 RAM”的幾個特點:
- 這是一種緩存機制,使得 GPU 只需要運算 delta 值。在沒有此機制的屏幕上繪圖要求 GPU 不斷的工作,產生圖形
- 這種機制可以得到性能的提升,原因是 GPU 不需要 concentrace on 不斷的渲染相同的圖像
- 這種機制可以節約電量
- 這種機制主要應用在高端手機上
- 這種機制的成本是 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”就成為了一個營銷概念。