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