浅谈 SSD,eMMC,UFS
這個時候發(fā)這篇文章難免有蹭熱點(diǎn)的嫌疑。。但作為一個計(jì)算機(jī)體系結(jié)構(gòu)的研究生,在這些名詞滿天飛的時候,我的好奇心是抑制不住的,想一探這幾樣技術(shù)的究竟。本文不對某一特定事件進(jìn)行點(diǎn)評,僅從技術(shù)角度分析對比一下這三種技術(shù)。就算是當(dāng)做自己的技術(shù)儲備+科普了。
首先,這三種技術(shù)都是屬于閃存(Flash Memory)的不同種類,區(qū)別主要在于控制器,接口標(biāo)準(zhǔn)以及更底層的 Flash 芯片標(biāo)準(zhǔn)。它們在電腦/手機(jī)等系統(tǒng)中的主要作用是作為存儲設(shè)備(storage)/文件系統(tǒng)。(注意它們雖然也叫memory,但和運(yùn)存的 memory是完全兩回事兒)
?
以前電腦系統(tǒng)中的主要的存儲設(shè)備是機(jī)械式磁盤,訪問速度慢,體積龐大,功耗高,而且對震動非常敏感,因此很難用于小型化的移動設(shè)備里。Flash Memory 出現(xiàn)后,由于沒有移動部件,幾乎完美解決了以上機(jī)械硬盤的各種問題,因此很快在各種移動設(shè)備中獲得廣泛應(yīng)用。(當(dāng)然,Flash的寫操作和壽命的問題也比較復(fù)雜,但這不是本文的討論重點(diǎn)) 而且基于Flash 的 SSD 硬盤性能普遍好于傳統(tǒng)機(jī)械硬盤,因此也成為了PC/服務(wù)器的主流存儲設(shè)備。
那么既然 SSD,eMMC,UFS 都是 Flash,它們的區(qū)別在哪呢?
想要了解它們的區(qū)別,首先要了解他們解決的問題。
SSD 主要作用是取代 PC/服務(wù)器 上的 HDD 硬盤,它需要:
- 超大容量(百GB~TB級別)
- 極高的并行性以提高性能
- 對功耗,體積等要求并不敏感
- 兼容已有接口技術(shù) (SATA,PCI等)
?
而 eMMC 和 UFS主要都是針對移動設(shè)備發(fā)明的,它們需要:
- 適當(dāng)?shù)娜萘?/li>
- 適當(dāng)?shù)男阅?/li>
- 對功耗 ,體積的要求極其敏感
- 僅需遵循一定的接口標(biāo)準(zhǔn) (稍后解釋)
為了直觀感受一下區(qū)別,我剛才特意找來了一個 PCIe 的 SSD,如下圖,上面黑色的芯片就是Flash:
我又拆了一個手機(jī),它里面的 Flash 芯片是這樣的(中間那個最大的黑色芯片):
?
看到區(qū)別了嗎? (之前寫的文章各種被人盜轉(zhuǎn),只好給圖打碼了,見諒)
一個SSD,為了達(dá)到高并行高性能的要求,有多個Flash 芯片,這樣就可以在每個芯片上進(jìn)行相互獨(dú)立的讀寫操作,以并行性來提高硬盤吞吐量,還可以增加冗余備份。而手機(jī)中為了節(jié)省空間和功耗,通常只有一片密度較高的 Flash 芯片。
管理一個 Flash 芯片,和管理多個 Flash 芯片,策略肯定是不一樣的,因此它們的控制器 (controller)就完全不同了。而且 PC 上需要兼容 SATA 或 PCIe 或 m2 接口,這樣你電腦硬盤壞了的時候,可以拔下來換上另一塊同樣接口的硬盤能照樣用。而手機(jī)上的 Flash 芯片大多是直接焊在主板上的,基本上不需要考慮更換的問題,所以只要遵從一個特定標(biāo)準(zhǔn),能和CPU正常通訊就好了。因此接口的不同也是 SSD 和 eMMC,UFS 的重要區(qū)別之一。
好了,SSD 和 (eMMC, UFS)的區(qū)別說完了,下面說一下可能很多人會關(guān)心的 eMMC 和 UFS 的區(qū)別了。
eMMC 和 UFS 都是面向移動端 Flash 的標(biāo)準(zhǔn),區(qū)別在于,二者的接口技術(shù)大相徑庭。
eMMC 是一個起源較早的技術(shù),全稱叫 embedded MultiMedia Card,為什么單單e是小寫呢? 因?yàn)橄扔械腗MC啊。所謂MMC,大家可能沒聽過但可能見過,相機(jī)中用得較多,和SD卡長得很像(之前的圖片就搞錯了,感謝評論中各位的提醒)。
MMC前面加了個embedded,主要就是為了突出現(xiàn)在這個設(shè)備是embedded 在電路板上。eMMC 和 MMC一樣,沿用了 8 bit 的并行接口。在傳輸速率不高的時代,這個接口夠用了。但隨著設(shè)備對接口的帶寬要求越來越高,想把并行接口速率提高也越來越難。eMMC 的最新 5.1標(biāo)準(zhǔn)理論最高值最高可以達(dá)到400 MB/s,再往上提高頻率也不是不行,但就未必劃算了。
好在這幾年接口串行化大潮轟轟烈烈。所謂接口串行化,簡單來說就是工程師們發(fā)現(xiàn):與其用一個比較寬的并行接口以較低的速率傳輸,用一個串行接口用非常高的速率傳輸似乎更劃算一些(帶寬,功率,成本各方面綜合考慮)。所以這個時候 UFS 應(yīng)運(yùn)而生,用高速串行接口取代了并行接口,而且還是全雙工的,也就是可以讀寫同時進(jìn)行。所以相比 eMMC, UFS的理論性能提高不少,甚至可以達(dá)到一些SSD的水準(zhǔn)。可以在下圖直觀感受一下,藍(lán)色的是UFS,紅色的是eMMC,當(dāng)然是越高越好:
?
(圖片引自[1] Micron 的文檔)
?
最后,大家可能比較關(guān)心的一個問題:我設(shè)計(jì)好了一個使用UFS的系統(tǒng),然后悲傷地發(fā)現(xiàn)沒有UFS可以用了,那能不能直接換成eMMC呢?
答案是不行的,因?yàn)?UFS 和 eMMC 接口完全不兼容,控制器也不可通用。下面兩個示意圖分別是eMMC和UFS的接口(圖片引自[2][3] JEDEC標(biāo)準(zhǔn))。
?
即使是示意圖,也能看出兩者的明顯差別。eMMC有兩條總線,分別傳輸指令數(shù)據(jù)輸入和輸出,而且因?yàn)槭遣⑿锌偩€還要有額外的data strobe。而UFS則是有兩條差分的數(shù)據(jù)lane,指令和數(shù)據(jù)都是以packet的形式發(fā)送的。就更不要提二者的信號線的電氣特性也有很大差別了。這些將直接導(dǎo)致控制側(cè)(CPU那邊)SoC 的控制器和電路設(shè)計(jì)會有很大不同。
?
所以一個系統(tǒng)的SoC以及電路板一定要經(jīng)過重新設(shè)計(jì),才能把 UFS 替換成 eMMC,這不是在生產(chǎn)線上換個 Flash 芯片那么簡單的事兒,還得經(jīng)過比較長時間的設(shè)計(jì)和測試才行。否則想要快速拿出替代方案的話,恐怕從一開始就要設(shè)計(jì)兼容兩套方案了,嗯。
---------------------------------------------------
評論中有很多業(yè)內(nèi)人士的討論,我們大概可以得到以下新的結(jié)論:
一款SoC可以設(shè)計(jì)為兼容兩種標(biāo)準(zhǔn)的。
相應(yīng)地,電路板也可以用一套方案兼容兩種標(biāo)準(zhǔn),或者即使用兩種不同方案,但成本都不高。
兩套方案的軟件驅(qū)動也不一樣。
總結(jié)
以上是生活随笔為你收集整理的浅谈 SSD,eMMC,UFS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关EMMC、Nandflash、SSD
- 下一篇: Ubuntu16.04编译RK3399: