硬體缺陷真能用軟體補?盤點軟體填過的硬體坑
硬體挖的坑真的可以通過軟體來填嗎?實際上不少硬體產品,都存在一些不盡如人意的地方,這可能是某項技術天生的短板,也有可能是設計不當帶來的問題。為了對付這些硬體方面的不足,業界最常用的填坑大法可能就是軟體了!不少廠商會通過一些特定的軟體程序,試圖修復或者緩解一些硬體方面的問題。這真的有效嗎?今天,就一起來盤點一下有什麼著名的為硬體填坑的軟體方案吧!
固態硬碟壽命短?平衡演算法來續命
SSD現在已經被廣泛使用了,如果你現在裝機不用SSD,甚至會被部分DIY玩家嘲笑說不懂電腦。不過,SSD獲得如此高的認同度,也並非是常態,起碼在早些年,就有很多人對SSD的壽命心存芥蒂。
SSD由快閃記憶體構成,而快閃記憶體是有擦寫壽命限制的,例如MLC快閃記憶體只能夠擦寫數千次,TLC快閃記憶體只能夠擦寫數百次等等。如果就這樣普通拿快閃記憶體組裝成為SSD,那麼實際的壽命表現可能非常令人失望——讀寫數據時,會集中讀寫SSD的其中一部分快閃記憶體,這部分的快閃記憶體壽命就會損耗得特別快。一旦這部分快閃記憶體掛了,那麼整塊SSD也就掛了。
這種磨損不平衡的情況,可能會導致一塊100G容量的SSD,只因有數M的快閃記憶體耗損,而整塊廢掉。而讓數M的快閃記憶體壽命走向完結,就算是MLC,可能也只需要擦寫數十G的數據。然而我們都知道,現在不存在什麼SSD會如此輕易得掛掉,這就和SSD的特殊軟體演算法有關係了。
為了彌補SSD快閃記憶體的壽命缺陷、最大程度延續SSD的壽命,業界為SSD引入了磨損平衡(Wear Leveling)演算法,令所有快閃記憶體磨損度儘可能保持一致。SSD的磨損平衡演算法大致分為動態和靜態兩種。動態的演算法就是當寫入新數據的時候,會自動往比較新的Block中去寫,老的快閃記憶體就放在一旁歇歇;而靜態的演算法就更加先進,就算沒有數據寫入,SSD監測到某些快閃記憶體Block比較老,會自動進行數據分配,讓比較老的快閃記憶體Block承擔不需要寫數據的儲存任務,同時讓較新的快閃記憶體Block騰出空間,平日的數據讀寫就在比較新的Block中進行——如此一來,各個Block的壽命損耗,就都差不多了。
有了這種軟體演算法加持,就算是TLC快閃記憶體的SSD,壽命也比較可觀了。例如256G的TLC快閃記憶體SSD,壽命是500次擦寫(P/E)的話,那麼就需要寫入125TB的數據,快閃記憶體才壽終正寢——就算你每天寫入10G數據,也需要用三十多年才能把快閃記憶體給寫掛,更何況很少人每天往SSD中寫10G數據。
不過,磨損平衡演算法需要主控晶元負責運算,現在還是有一些快閃記憶體產品不帶有這個演算法,導致壽命特別短——例如一些低端U盤。在早些年,有不良商家用不帶磨損平衡演算法的山寨U盤冒充SSD,導致這所謂的「SSD」壽命特別短。SSD不可靠的壞口碑,或許和這有很大關係。
液晶屏幕拖影多?插黑演算法來幫忙
現在液晶屏幕LCD已經成為了絕對的主流,不過在早年,液晶是一項不怎麼被看好的技術。無論和CRT和等離子相比,液晶的顯示效果都明顯處於下風,其中比較令人詬病的一項,就是拖影了。
由於硬體原理,LCD在顯示動態畫面的時候,需要不斷對液晶分子進行偏轉。液晶分子偏轉是一個持續、穩態的過程,並不是一瞬間完成的。人們可以觀察到,無論液晶分子偏轉速度有多快,LCD還是會比CRT和等離子有更明顯的拖影。當畫面顯示高速運動物體,例如飛快駛過的火車、體育比賽中的運動員之類的時候,拖影會更加明顯。
怎麼辦?為了解決液晶拖影,插黑演算法應運而生。所謂的插黑演算法,其實就是在一禎禎的畫面之間,插入黑禎,讓LCD的穩態式顯示轉變成近似CRT、等離子那樣的脈衝式顯示,讓每禎之間有時間差,這可以大大減少殘影的出現。當然,這也帶來了閃爍偏暗之類的副作用,不過LCD提升刷新率和亮度總比提升液晶分子的偏轉速度來得簡單,因此插黑演算法還是有實用價值的。
OLED會燒屏?偏移演算法來緩解
作為面向未來的顯示技術,OLED相比液晶有很多優點,例如輕薄、省電、對比度高、色域高等等,但也帶來了一個不容忽視的問題——燒屏。就算是現在大紅大火的iPhone X,使用OLED屏幕後也帶來了燒屏問題,這點是蘋果官方都予以承認的。
iPhoneX使用了OLED屏幕,在說明頁面中也提到了燒屏現象(點此查看官網說明頁面)
燒屏的確是OLED最為令人頭疼的問題之一,它和OLED的顯示原理息息相關。和傳統的LCD屏幕不同,OLED並不通過背光模組照亮液晶像素點發光,OLED的每一個像素點都可以自發光。這樣帶來了很多優點,例如避免漏光、堆高對比度等等,但存在的一個問題就是,不同的像素點發光時間不一樣,某些經常發光/不常發光的像素點會衰減得更快/更慢,亮度對比其他像素點明顯不同。我們觀察到這些亮度衰減更快/更慢的像素點,直接的觀感就是某地方暗了/亮了一塊,這就是「圖像殘留」或者說「燒屏」。
如何對付燒屏?要麼是提高OLED發光像素點的壽命,讓用戶在使用期間不出現亮度衰減——但這是很難做到的,成本太高。於是,防止燒屏的偏移演算法就誕生了。
用軟體解決OLED燒屏的一個思路,就是減少顯示固定的圖像。三星使用OLED屏經驗豐富,它就有自己的一套軟體演算法來防止OLED燒屏。在很多OLED屏的三星手機中,經常固定顯示圖像的位置例如虛擬按鈕,會定期位移,避免相同的像素點長時間發光/不發光,這樣可以一定程度上避免燒屏。
在iPhone X上,也存在類似的機制。之前有人解包過iOS11的固件,發現蘋果也針對OLED設置了防燒屏的程序。此外,iOS上並不存在安卓那樣的虛擬按鈕,iPhone X使用手勢操作,這無疑也大大降低了燒屏出現的概率。
不過,防止OLED燒屏的軟體演算法,並不能徹底保證OLED就一定不會燒屏,蘋果自己也不敢這麼說。受限於硬體,OLED屏幕燒屏仍會是難以完全避免的問題。不過通過軟體優化以及正確的使用習慣,燒屏的情況還是可以大大減輕甚至不會出現的,希望有更多使用OLED屏的廠商加入防燒屏演算法吧。
CPU設計有Bug?補丁BIOS來解決
在很多人的印象中,正常使用的話,CPU應該是電腦最不容易出現問題的部件了。但是,如果CPU本身設計不完善,那也是相當令人頭疼的。實際上,還真出現過CPU設計有Bug、但CPU依然進入了消費市場的情況,例如AMD就干過這樣的事。
AMD的第一代Phenom(羿龍)處理器被賦予了迎擊Intel酷睿處理器的重任,首次使用了三級緩存的設計,一度讓A飯們寄予厚望。然而不幸的是,率先登場的B2步進的Phenom竟然存在TLB的Bug。TLB是用來連接內存和CPU緩存的橋樑,在有Bug的Phenom處理器中,TLB會導致CPU讀取頁表出現錯誤,出現死機等情況。出了Bug就得修,CPU是難以返廠回爐的了,怎麼辦?於是AMD就用軟體來解決問題。
AMD發布了一個新BIOS,也為Win系統提供了一個補丁,無論是那種方法,其作用都是屏蔽某段頁表乃至CPU緩存。這當然可以避免Bug的出現,不過也會造成性能降低。可以說,這個軟體修復的方案只是權宜之計,其實並不完美。此後AMD推出了B3步進的Phenom處理器,從硬體上修改,才徹底解決了問題,步進改動後的CPU還從9X00改名為9X50,可見此次修補之重要。
總結
可以看到,軟體的確可以彌補很多硬體方面的缺陷,但也不是此次都能完美填坑,例如AMD的Phenom就必須靠修改硬體才徹底解決問題,OLED的偏移顯示演算法也並不能根治燒屏毛病。新技術固然會擁有獨到的優點,但某些新型硬體也會帶來新的問題,希望廠商們能夠真正為用戶體驗著想,帶來更出色的產品吧。
推薦閱讀:
※這款堪稱神器的軟體,極大的幫你提高工作效率!
※軟體當中為什麼會引入缺陷?
※破解版有什麼優點?
※zd423 - 良心軟體下載站
※知乎一鍵拉黑工具上線(非官方)