“屏幕 RAM”的傳說

這是一種緩存機(jī)制,使得 GPU 只需要運(yùn)算 delta 值。在沒有此機(jī)制的屏幕上繪圖要求 GPU 不斷的工作,產(chǎn)生圖形
這種機(jī)制可以得到性能的提升,原因是 GPU 不需要 concentrace on 不斷的渲染相同的圖像
這種機(jī)制可以節(jié)約電量
這種機(jī)制主要應(yīng)用在高端手機(jī)上
這種機(jī)制的成本是 80 元人民幣,約合 $15
暫且拋開這種機(jī)制在一邊,我們先看一看 LCD 的顯示原理。
不管是 TTF 還是較早的 STN 屏幕,其都是由一個(gè)一個(gè)的亞像素(彩色顯示器)/柵格(灰度顯示器)組成的。給液晶分子加上一個(gè)電壓,液晶分子將改變其光透射特性,這就激發(fā)顏色的改變(對(duì)于彩色顯示器),或者透光度的改變(對(duì)于黑白顯示器)。外加電場(chǎng)消失時(shí),透光度恢復(fù)。不管是什么技術(shù),它們的基本原理大抵如此。

如果有一些嵌入式開發(fā)經(jīng)驗(yàn),可能將 LCD 看作一組寄存器的概念更能接受————實(shí)際上,我們無法對(duì) LCD 直接進(jìn)行操作,我們操作的對(duì)象是 LCD 控制器,控制器控制各個(gè)像素/柵格的狀態(tài),這也是為了節(jié)省寶貴的 IO 端口??梢詫?LCD 作為一組寄存器操作的 LCD 面板叫做 “智能 LCD 面板“。這種面板自帶的控制器中含有 FrameBuffer (幀緩存) 甚至渲染引擎。我們?cè)谇度胧介_發(fā)中常用的 1602 屏幕就自帶了顯示引擎、字庫以及幀緩存。而有一些其他的屏幕,例如 S3C2440 開發(fā)板中常用的某些 LCD 屏幕就沒有自己的幀緩存、顯示引擎,這種屏幕叫做”啞面板“。啞面板需要外置的 LCD 控制器,而智能面板不需要額外的 LCD 控制器。
幀緩存這個(gè)名詞聽起來有一點(diǎn)點(diǎn)繞口,其實(shí)它更通俗的名字叫做”顯存“。顯示引擎預(yù)先渲染一些內(nèi)容,并將其保存在顯存中,如果顯存太小,則顯示控制器將不斷的運(yùn)行,有可能導(dǎo)致的是因?yàn)檫\(yùn)算能力較差造成延遲和掉幀的現(xiàn)象。另一方面,帶有 LCD 控制器的面板可以接受高級(jí)指令,也不需要外界(這里的系統(tǒng)定義為 LCD)的額外控制就可以保持顯示內(nèi)容。顯然,這種 LCD 因?yàn)閮?nèi)置了顯示引擎而造成成本的增加。然而,啞面板雖然成本低,但需要外界不斷的刷新內(nèi)容而保持屏幕的正常顯示,這無疑將增加外界的計(jì)算壓力。
這里,我們也許會(huì)覺得,這與上面提出的機(jī)制的特點(diǎn)相當(dāng)吻合。確實(shí)如此嗎?不盡然。
現(xiàn)代計(jì)算機(jī)中的一個(gè)重要組成部分叫做顯示適配器,俗稱顯卡。手機(jī)等嵌入式設(shè)備也不例外,但是由于其空間受限制,一般更傾向于 SoC 設(shè)計(jì)(片上系統(tǒng),俗稱“手機(jī)主芯片”,主流是 ARM 體系)。內(nèi)置 LCD 控制器的智能 LCD 似乎很適合,但是我們知道,2008年之后的手機(jī)市場(chǎng)已經(jīng)開始了性能競(jìng)賽——例如我現(xiàn)在使用的 iPhone 4S 的主頻是 800MHz——作為對(duì)比,2009 年我購買的 HTC Dream 的主頻是 384MHz,2007 年我購買的 Motorola Rokr E6 則是 313MHz 的主頻。
與此同時(shí),圖形處理器,作為片內(nèi)的一部分,它的進(jìn)步也是隨著中央處理器的進(jìn)步而進(jìn)步的。LCD 控制器的內(nèi)置”顯卡“毫無疑問相比于英偉達(dá)等專業(yè)廠商的顯卡是很弱的。盡管啞面板沒有幀緩存,要求不斷的刷新屏幕,并使用了更多的總線帶寬(顯示器的帶寬總是很大的),但是——無論如何,這些工作都是需要做的,不管是液晶面板做了,還是面板外進(jìn)行的。
小米手機(jī)的 GPU,是 Adreno 220。查閱了此款 GPU 的資料,得知這是 SoC 內(nèi)置 SRAM FrameBuffer 的解決方案。當(dāng)然了,蘋果的 A5 處理器一樣是這種架構(gòu)的 SoC ,也內(nèi)置了 FrameBuffer。另一方面,根據(jù)魅族公布的資料,魅族 MX 的 GPU 也是 SoC 實(shí)現(xiàn)的 Cortex-A9 + Mali-400MP GPU。這款片上同樣集成了一定數(shù)量的內(nèi)存作為幀緩存使用,根據(jù) ARM 的介紹,其***支持的幀緩存大小為單幀 4096×4096。
即使說到這里,可能還是有一些讀者不理解他們有什么太大的差距,在這里,我再說明一下它們之間的聯(lián)系:
為了讓液晶面板現(xiàn)實(shí)出文字和圖像,必須配合一塊特殊的控制器;
控制器的位置可以放在多個(gè)地方;
對(duì)于很多智能手機(jī)而言,在 SoC 和顯示面板上都具有控制器。
由于填充 Framebuffer 的過程必須由內(nèi)置的 GPU 完成,則顯示器將顯示來自 Framebuffer 的內(nèi)容。既然兩種手機(jī)都顯示來自 Framebuffer 的內(nèi)容,那么不管他們選擇什么樣的液晶面板,都會(huì)達(dá)到一樣的效果,那就是幀緩存在液晶屏幕之外。
作為初步結(jié)論,我認(rèn)為,”屏幕 RAM”應(yīng)該是指的液晶面板內(nèi)的幀緩存。在當(dāng)前的運(yùn)行模式下,其存在的意義不大,在硬件抽象層之上,操作系統(tǒng)是不需要關(guān)心這種實(shí)現(xiàn)的。盡管啞面板有著種種缺點(diǎn),但因?yàn)槟壳暗脑O(shè)計(jì),實(shí)際上智能面板的“智能部分”已經(jīng)由更加智能的智能手機(jī)片內(nèi)的 GPU 所完成。因此,單獨(dú)提出這個(gè)概念并沒有太多技術(shù)上的說服力。”屏幕 RAM”就成為了一個(gè)營銷概念。
【編輯推薦】