數據小妞遭蹂躪?顯卡工作的那點事兒
泡泡網顯卡頻道3月27日 作為一名經常和各種硬件打交道,長期活躍在硬件領域的“非專人士”,經常會聽到周圍的人談論那些高深莫測專業術語。一來二去時間久了,給人感覺那些圖形數據、顯存和GPU,都變成了高不可測的玩意兒?其實不然,我很喜歡開玩笑,于是我和朋友談了起來——
DX進化歷史
一條“凹凸有致”的數據在顯卡內部游蕩,GPU看到這個數據兩眼放光、口水直流,在荷爾蒙的作用下一把扯了過來。(數據高叫著:“放開我!放開我。”GPU冷笑道:“叫吧,你叫破喉嚨也沒有人會來救你的!”),GPU會進行算法法則上的篩選,就是那些底層的DirectX、OPENGL判斷指令,它們對該數據的篩選,以判斷數據的用途。
OPENGL判斷指令
哇呼~,這家伙是做大面積3D渲染的“根數據”,這得需要強壯的運算支持!好,我把這個數據扯到高速RAM里XXO。這些高速RAM,就是分布在GPU核心周圍,那些黑呼呼的大塊頭,本行業的術語叫——“顯存”。
DIYer一直為之瘋狂,什么三星比現代好,奇夢達比三星好……扯吧~!因為高速RAM的速度非常快,非常有利于GPU對采集到的數據進行蹂躪,GPU扯掉了數據的外衣(剝離頭數據)然后就開始了……(省略幾百字)
一個路過的“肥妞兒”看到有人被蹂躪覺得很HAPPY,GPU看到她這副“落井下石”的樣子,一把扯了過來!(數據高叫著:“別這樣!別這樣!”GPU冷笑道:“別掙扎了,你所做的都是無謂的反抗!”),GPU再次進行算法法則上的篩選,還是那些底層的DirectX、OPENGL判斷指令,它們對該數據的篩選,以判斷數據的用途——
噢~,原來這肥妞兒是做2D填補and記錄信息用的,這家伙的塊頭還真夠大的!好,看我怎么降服你!GPU把這個肥妞兒(數據)暴打一頓,然后在它的頭部做一個標記——專業術語叫做“指針”,這個指針很小,只有幾個字節。
GPU把這個占用空間巨大的肥妞兒(數據),扯到了一個開闊的地帶。我們把這個地方叫做DDR3(內存)的地盤。內存的速度雖然也很快,但畢竟比顯存慢了N多倍,這樣一來就只能被“指針”牽著走了。這個被扯到內存的數據叫做“顯存共享內存”,在本行業的專業術語:NVIDIA叫做TC即Turbo Cache;AMD則叫做HM即Hyper Memory。
Turbo Cache示意圖
這時有人跳出來指著GPU的腦袋說——在硬件系統里你充其量就是個“老二”,你怎么不把老大(CPU)放在眼里呢?在整個主機系統里,最罩的還是CPU,有誰敢不給它老人家面子啊?你怎么能夠光天化日、朗朗乾坤做出……這種事呢?
GPU露出了一個詼諧的淫笑,從衣兜里掏出了一張圣旨。圣旨上面寫著Direct Memory Access(直接訪問內存),有了這張圣旨在手GPU就可以“先斬后奏”了。這樣數據往返于內存間就來去自如了,就算你是老大也得一邊先晾著去!
GPU云雨過“肥妞兒”之后正要往回走,這時他又看見了一個三維豐滿的小妞兒(3D游戲),于是又一把扯了過來!(數據高叫著:“不要、停!不要、停!不要、停!”GPU冷笑道:“好吧!不要停?就是開動嘍,嘿嘿!我來啦!”)同樣,GPU會進行算法法則上的篩選,以判斷數據的用途——
不過這個身才豐滿的小妞兒(3D游戲)太耗費精力了!可憐的高速顯存不夠用了,內存地盤里的“共享顯存”也不夠用了,這可怎么辦?沒辦法了,沒地方去啦,還要把數據扯過來蹂躪?那就只剩下硬盤了!GPU對于硬盤的控制也只能說是間接的了。見上,其道理很簡單——指針、指針、指針 again!
有人可能會說,機械硬盤那速度,絕對是蝸牛級!不過聰明的GPU還是有辦法的,他請來了一個幫手,這個幫手就是“虛擬內存”(說白了就是搶硬盤地盤的)于是GPU在虛擬內存的指引下,將這個“腦滿肥臀”3D游戲數據拖進了硬盤的勢力范圍……然后(省略幾百字)
文章寫到這里,我們可以發現——當GPU工作的時候,會先調用顯存處理數據,當顯存容量不足的時候,就會調用內存來“共享顯存”,當內存容量不足的時候,這時候硬盤就上場了。(在虛擬內存的幫助下)雖然GPU在顯存容量不足的情況下也能辦事,但是我們要看到的是——內存/硬盤永遠都是“外來人”(對于GPU來說)。它們的速度同顯存相比有著較大的差距,當顯存容量嚴重不足的時候還會拖慢顯卡工作效率。GPU當然不愿意長期與這樣的“狐朋狗友”為伍。
其實我們換個思路,拿吃飯來做比喻就是:硬盤是桌子——裝的東西最多,占的地方也大,我們得一樣一樣的擺上去,然后在一樣一樣的撤下來(過程繁瑣);內存是鍋,盛著湯呢(好餓,晚上吃什么呢?),裝的不多,但可以解渴;顯存是碗,想吃東西總得端著吧,這個碗還不能太小,太小了裝不下、吃不飽;那么指針是什么呢?答案就是筷子了!下面這道工序就是吃了,怎么吃?我們可以把“緩存”看做口腔,嚼啊嚼,就咽下去了。……緩存(Cache Memory)是離GPU最近的地方。

神馬!你不知道緩存干什么用的?緩存一般同顯存控制器綁定在一起的,丫的作用就是縮短GPU到顯存的響應時間。放眼GPU的發展無非就是主頻率高啊高啊高啊,外頻長啊長啊長啊,緩存從L1加到L2(貌似這樣),也是增啊增在增啊……扯遠了~
又一個數據被輸入的指令通過GPU扯了進來,數據高叫著:“好爽啊!好爽啊!”GPU悶聲道:“不行了,不行了,哥受不鳥了,趕緊給我打120!”。GPU力不從心的進醫院了,經過外科手術和短暫的修養,GPU又恢復了滿面紅光。(為什么?)
一群摸不著頭腦的數據,都在問這是怎么回事?原來外科醫生給GPU裝上了海量顯存!自從有了這海量顯存之后,GPU再也不用跟內存搶地盤了,也不用求爺爺告奶奶找硬盤硬盤幫忙了。GPU在那里洋洋得意,大顯存夠NB,蹂躪數據沒問題!悠嘻,花姑娘(數據)的干活!
我靠!你怎么出來了?不是說好了叫你名字才準出來的么?
我看你在“歪歪”大顯存牛叉,我就一個沒忍住(尿了)跑了出來。
央視都取消插播廣告了?你還指望我在“技術文章”里插播廣告么?
其實我這不是插播,我這是片尾廣告……(受不鳥你,只許插后面哦!)
大家好,偶的名字叫做雙敏(圓臉小妞兒),我就是大顯存顯卡的花魁,我們家的顯卡有2GB、3GB,還有4GB的,保證都是真材實料絕不虛標!在價格方面,不論您是熟客還是生客,我們都一視同仁——便宜!
那個啥,關于大顯存的好處,我就不在這里和大家貧了。現如今仍有些“憤青”對于2GB顯存顯卡存在較多的爭議,但是本人相信隨著游戲和圖形應用對顯卡要求的提高,顯卡所要處理的數據的不斷的增加,大容量顯存的顯卡定會成為大家首選。
雙敏做為大顯存顯卡的代表,敢于站出來接受“千夫所指”,可見內芯強悍的人——敢想他人所不敢想,敢為他人所不敢為,敢言他人所不敢言!(哥會挺你的,Say goodbye吧!)■<
關注我們


