首先苫耸,這三種技術(shù)都是屬于閃存(Flash Memory)的不同種類(lèi),區(qū)別主要在于控制器儡陨,接口標(biāo)準(zhǔn)以及更底層的 Flash 芯片標(biāo)準(zhǔn)褪子。它們?cè)陔娔X/手機(jī)等系統(tǒng)中的主要作用是作為存儲(chǔ)設(shè)備(storage)/文件系統(tǒng)。(注意它們雖然也叫memory骗村,但和運(yùn)存的 memory是完全兩回事兒)
以前電腦系統(tǒng)中的主要的存儲(chǔ)設(shè)備是機(jī)械式磁盤(pán)嫌褪,訪問(wèn)速度慢,體積龐大胚股,功耗高笼痛,而且對(duì)震動(dòng)非常敏感,因此很難用于小型化的移動(dòng)設(shè)備里琅拌。Flash Memory 出現(xiàn)后缨伊,由于沒(méi)有移動(dòng)部件,幾乎完美解決了以上機(jī)械硬盤(pán)的各種問(wèn)題财忽,因此很快在各種移動(dòng)設(shè)備中獲得廣泛應(yīng)用倘核。(當(dāng)然泣侮,F(xiàn)lash的寫(xiě)操作和壽命的問(wèn)題也比較復(fù)雜即彪,但這不是本文的討論重點(diǎn)) 而且基于Flash 的 SSD 硬盤(pán)性能普遍好于傳統(tǒng)機(jī)械硬盤(pán),因此也成為了PC/服務(wù)器的主流存儲(chǔ)設(shè)備。
那么既然 SSD楔敌,eMMC饲常,UFS 都是 Flash穆桂,它們的區(qū)別在哪呢?
想要了解它們的區(qū)別绰疤,首先要了解他們解決的問(wèn)題。
SSD 主要作用是取代 PC/服務(wù)器 上的 HDD 硬盤(pán)舞终,它需要:
超大容量(百GB~TB級(jí)別)
極高的并行性以提高性能
對(duì)功耗轻庆,體積等要求并不敏感
兼容已有接口技術(shù) (SATA,PCI等)
而 eMMC 和 UFS主要都是針對(duì)移動(dòng)設(shè)備發(fā)明的敛劝,它們需要:
適當(dāng)?shù)娜萘?/p>
適當(dāng)?shù)男阅?/p>
對(duì)功耗 余爆,體積的要求極其敏感
僅需遵循一定的接口標(biāo)準(zhǔn) (稍后解釋?zhuān)?/p>
為了直觀感受一下區(qū)別,我剛才特意找來(lái)了一個(gè) PCIe 的 SSD夸盟,如下圖蛾方,上面黑色的芯片就是Flash:
我又拆了一個(gè)手機(jī),它里面的 Flash 芯片是這樣的(中間那個(gè)最大的黑色芯片):
看到區(qū)別了嗎上陕??
一個(gè)SSD桩砰,為了達(dá)到高并行高性能的要求,有多個(gè)Flash 芯片释簿,這樣就可以在每個(gè)芯片上進(jìn)行相互獨(dú)立的讀寫(xiě)操作亚隅,以并行性來(lái)提高硬盤(pán)吞吐量,還可以增加冗余備份辕万。而手機(jī)中為了節(jié)省空間和功耗枢步,通常只有一片密度較高的 Flash 芯片。
管理一個(gè) Flash 芯片渐尿,和管理多個(gè) Flash 芯片醉途,策略肯定是不一樣的,因此它們的控制器 (controller)就完全不同了砖茸。而且 PC 上需要兼容 SATA 或 PCIe 或 m2 接口隘擎,這樣你電腦硬盤(pán)壞了的時(shí)候,可以拔下來(lái)?yè)Q上另一塊同樣接口的硬盤(pán)能照樣用凉夯。而手機(jī)上的 Flash 芯片大多是直接焊在主板上的货葬,基本上不需要考慮更換的問(wèn)題,所以只要遵從一個(gè)特定標(biāo)準(zhǔn)劲够,能和CPU正常通訊就好了震桶。因此接口的不同也是 SSD 和 eMMC,UFS 的重要區(qū)別之一征绎。
好了蹲姐,SSD 和 (eMMC, UFS)的區(qū)別說(shuō)完了,下面說(shuō)一下可能很多人會(huì)關(guān)心的 eMMC 和 UFS 的區(qū)別了柴墩。
eMMC 和 UFS 都是面向移動(dòng)端 Flash 的標(biāo)準(zhǔn)忙厌,區(qū)別在于,二者的接口技術(shù)大相徑庭江咳。
eMMC 是一個(gè)起源較早的技術(shù)逢净,全稱(chēng)叫 embedded MultiMedia Card,為什么單單e是小寫(xiě)呢歼指? 因?yàn)橄扔械腗MC啊爹土。所謂MMC,大家可能沒(méi)聽(tīng)過(guò)但可能見(jiàn)過(guò)踩身,相機(jī)中用得較多着饥,和SD卡長(zhǎng)得很像(之前的圖片就搞錯(cuò)了,感謝評(píng)論中各位的提醒)惰赋。
MMC前面加了個(gè)embedded宰掉,主要就是為了突出現(xiàn)在這個(gè)設(shè)備是embedded 在電路板上。eMMC 和 MMC一樣赁濒,沿用了 8 bit 的并行接口轨奄。在傳輸速率不高的時(shí)代,這個(gè)接口夠用了拒炎。但隨著設(shè)備對(duì)接口的帶寬要求越來(lái)越高挪拟,想把并行接口速率提高也越來(lái)越難。eMMC 的最新 5.1標(biāo)準(zhǔn)理論最高值最高可以達(dá)到400 MB/s击你,再往上提高頻率也不是不行玉组,但就未必劃算了。
好在這幾年接口串行化大潮轟轟烈烈丁侄。所謂接口串行化惯雳,簡(jiǎn)單來(lái)說(shuō)就是工程師們發(fā)現(xiàn):與其用一個(gè)比較寬的并行接口以較低的速率傳輸,用一個(gè)串行接口用非常高的速率傳輸似乎更劃算一些(帶寬鸿摇,功率石景,成本各方面綜合考慮)。所以這個(gè)時(shí)候 UFS 應(yīng)運(yùn)而生拙吉,用高速串行接口取代了并行接口潮孽,而且還是全雙工的,也就是可以讀寫(xiě)同時(shí)進(jìn)行筷黔。所以相比 eMMC往史, UFS的理論性能提高不少,甚至可以達(dá)到一些SSD的水準(zhǔn)佛舱∽道可以在下圖直觀感受一下揽乱,藍(lán)色的是UFS,紅色的是eMMC粟矿,當(dāng)然是越高越好:
(圖片引自[1] Micron 的文檔)
最后,大家可能比較關(guān)心的一個(gè)問(wèn)題:我設(shè)計(jì)好了一個(gè)使用UFS的系統(tǒng)损拢,然后悲傷地發(fā)現(xiàn)沒(méi)有UFS可以用了陌粹,那能不能直接換成eMMC呢?
答案是不行的福压,因?yàn)?UFS 和 eMMC 接口完全不兼容掏秩,控制器也不可通用。下面兩個(gè)示意圖分別是eMMC和UFS的接口(圖片引自[2][3] JEDEC標(biāo)準(zhǔn))荆姆。
即使是示意圖蒙幻,也能看出兩者的明顯差別。eMMC有兩條總線胆筒,分別傳輸指令數(shù)據(jù)輸入和輸出邮破,而且因?yàn)槭遣⑿锌偩€還要有額外的data strobe。而UFS則是有兩條差分的數(shù)據(jù)lane仆救,指令和數(shù)據(jù)都是以packet的形式發(fā)送的抒和。就更不要提二者的信號(hào)線的電氣特性也有很大差別了。這些將直接導(dǎo)致控制側(cè)(CPU那邊)SoC 的控制器和電路設(shè)計(jì)會(huì)有很大不同彤蔽。
所以一個(gè)系統(tǒng)的SoC以及電路板一定要經(jīng)過(guò)重新設(shè)計(jì)摧莽,才能把 UFS 替換成 eMMC,這不是在生產(chǎn)線上換個(gè) Flash 芯片那么簡(jiǎn)單的事兒顿痪,還得經(jīng)過(guò)比較長(zhǎng)時(shí)間的設(shè)計(jì)和測(cè)試才行镊辕。否則想要快速拿出替代方案的話,恐怕從一開(kāi)始就要設(shè)計(jì)兼容兩套方案了蚁袭,嗯征懈。
---------------------------------------------------
一款SoC可以設(shè)計(jì)為兼容兩種標(biāo)準(zhǔn)的。
相應(yīng)地揩悄,電路板也可以用一套方案兼容兩種標(biāo)準(zhǔn)受裹,或者即使用兩種不同方案,但成本都不高虏束。
兩套方案的軟件驅(qū)動(dòng)也不一樣棉饶。
----------------------------------------------------
[1]UFS is here, and it’s very fast!
[2] JEDEC-JESD84-B51
[3] JEDEC-JESD220C