一、 ROM(Read Only Memory)
ROM(Read Only Memory),只讀存儲器。用來存儲和保存數據。ROM數據不能隨意更新,但是在任何時候都可以讀取。即使是斷電,ROM也能夠保留數據。
ROM也有很多種:
PROM是可編程一次性(無法修改)的ROM;
EPROM是紫外線可擦除可編程的ROM;
EEPROM是電可擦除可編程的ROM,按字節進行刪除和重寫, 寫入時間很長,寫入很慢;現在多用作非易失的數據存儲器。特點是可以隨機訪問和修改任何一個字節,可以往每個bit中寫入0或者1。這是最傳統的一種EEPROM,掉電后數據不丟失,可以保存100年,可以擦寫100w次。具有較高的可靠性,但是電路復雜/成本也高。因此目前的EEPROM都是幾十千字節到幾百千字節的,絕少有超過512K的。
二、 RAM(Random Access Memory)
RAM(Random Access Memory), 隨機存取存儲器。是與CPU直接交換數據的內部存儲器,也叫內存。它可以隨時讀寫,而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲媒介, 當電源關閉時RAM不能保留數據。RAM 可以進一步分為靜態RAM(SRAM)和動態內存(DRAM)兩大類。
靜態RAM(Static RAM/SRAM):SRAM速度非常快,不需要刷新電路即能保存數據,是目前讀寫最快的存儲設備了,但是集成度較低,非常昂貴,多用於CPU的一級緩存,二級緩存(L1/L2 Cache)。
動態RAM(Dynamic RAM/DRAM),DRAM保留數據的時間很短(需要內存刷新電路,每隔一段時間,刷新充電一次,否則數據會消失),速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機內存就是DRAM的。
DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這里介紹其中的一種DDR RAM。
DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在於它可以在一個時鍾讀寫兩次數據,這樣就使得數據傳輸速度加倍了。這是目前電腦中用得最多的內存,而且它有着成本優勢,事實上擊敗了Intel的另外一種內存標准-Rambus DRAM。在很多高端的顯卡上,也配備了高速DDR RAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。
內存工作原理:內存是用來存放當前正在使用的(即執行中)的數據和程序,我們平常所提到的計算機的內存指的是動態內存(即DRAM),動態內存中所謂的"動態"指的是當我們將數據寫入DRAM后,經過一段時間,數據會丟失,因此需要一個額外設電路進行內存刷新操作。
具體的工作過程是這樣的:一個DRAM的存儲單元存儲的是0還是1取決於電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是數據丟失的原因;刷新操作定期對電容進行檢查,若電量大於滿電量的1/2,則認為其代表1,並把電容充滿電;若電量小於1/2,則認為其代表0,並把電容放電,藉此來保持數據的連續性。
三、 FLASH Memory
(1)FLASH閃存
FLASH閃存,它屬於內存器件的一種,是一種不揮發性( Non-Volatile )內存,結合了ROM和RAM的長處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會斷電丟失數據同時可以快速讀取數據(NVRAM的優勢),U盤和MP3里用的就是這種存儲器。在過去的20年里,嵌入式系統一直使用ROM(EPROM)作為它們的存儲設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作存儲Bootloader以及操作系統或者程序代碼或者直接當硬盤使用(U盤)。FLASH屬於廣義上的ROM,和EEPROM的最大區別是FLASH按扇區操作,相對於EEPROM的改進就是擦除時不再以字節為單位,而是以塊為單位,一次簡化了電路,數據密度更高,降低了成本。上M的ROM一般都是FLASH。而EEPROM則按字節操作。目前Flash主要有兩種NOR Flash和NADN Flash。
NOR Flash:NOR Flash的讀取和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH里面的代碼,這樣可以減少SRAM的容量從而節約了成本。一般小容量的用NOR Flash,因為其讀取速度快,多用來存儲操作系統等重要信息。NOR FLASH數據線和地址線分開,可以實現RAM一樣的隨機尋址功能,可以讀取任何一個字節,但是擦除仍要按塊來擦。
NADN Flash:沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節,采用這種技術的Flash比較廉價。用戶不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開發板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運行啟動代碼。大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統采用的DOC(Disk On Chip)和我們通常用的"閃盤",可以在線擦除。NAND FLASH同樣是按塊擦除,但是數據線和地址線復用,不能利用地址線隨機尋址。讀取只能按頁來讀取。(NAND FLASH按塊來擦除,按頁來讀,NOR FLASH沒有頁)。由於NAND FLASH引腳上復用,因此讀取速度比NOR FLASH慢一點,但是擦除和寫入速度比NOR FLASH快很多。NAND FLASH內部電路更簡單,因此數據密度大,體積小,成本也低。因此大容量的flash都是NAND FLASH型的。小容量的2~12M的flash多是NOR FLASH型的。
目前市面上的FLASH 主要來自Intel,AMD,Fujitsu和Toshiba,而生產NAND Flash的主要廠家有Samsung和Toshiba。根據不同的生產廠商和不同的應用,閃存卡大概有U盤、SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(記憶棒)、MS卡、TF卡(Micro SD卡)、PCIe閃存卡、XD-Picture Card(XD卡)和微硬盤(MICRODRIVE)這些閃存卡雖然外觀、規格不同,但是技術原理都是相同的。
FLASH工作原理:Flash Memory,屬於非易失性存儲設備(Non-volatile Memory Device),Flash的內部存儲是MOSFET,里面有個懸浮門(Floating Gate),是真正存儲數據的單元。數據在Flash內存單元中是以電荷(electrical charge) 形式存儲的。存儲電荷的多少,取決於圖中的外部門(external gate)所被施加的電壓,其控制了是向存儲單元中沖入電荷還是使其釋放電荷。而數據的表示,以所存儲的電荷的電壓是否超過一個特定的閾值Vth來表示。
對於數據的表示,單個存儲單元中內部所存儲電荷的電壓,和某個特定的閾值電壓Vth,相比,如果大於此Vth值,就是表示1,反之,小於Vth,就表示0;對於nand Flash的數據的寫入1,就是控制External Gate去充電,使得存儲的電荷夠多,超過閾值Vth,就表示1了。而對於寫入0,就是將其放電,電荷減少到小於Vth,就表示0了
(2)SSD與HDD
HDD:硬盤驅動器(Hard Disk Drive),最基本的電腦存儲器,也就是機械硬盤,靠磁場存儲信息,故也稱為磁盤。在這里不做過多介紹。
SSD:固態硬盤(Solid State Drives),簡稱固盤。由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固態硬盤的存儲介質分為兩種,一種是采用閃存(FLASH芯片)作為存儲介質,另外一種是采用DRAM作為存儲介質。
基於DRAM類:采用DRAM作為存儲介質,應用范圍較窄。它仿效傳統硬盤的設計,可被絕大部分操作系統的文件系統工具進行卷設置和管理,並提供工業標准的PCI和FC接口用於連接主機或者服務器。應用方式可分為SSD硬盤和SSD硬盤陣列兩種。它是一種高性能的存儲器,而且使用壽命很長,美中不足的是需要獨立電源來保護數據安全。DRAM固態硬盤屬於比較非主流的設備。
基於閃存類:基於閃存的固態硬盤采用FLASH芯片作為存儲介質,這也是通常所說的SSD。它的外觀可以被制成筆記本硬盤、微硬盤、存儲卡、U盤等樣式。 固態硬盤SSD內主體其實就是一塊PCB板,而這塊PCB板上最基本的配件就是控制芯片,緩存芯片(部分低端硬盤無緩存芯片)和用於存儲數據的閃存芯片。
緩存芯片:主控芯片旁邊是緩存芯片,固態硬盤和傳統硬盤一樣需要高速的緩存芯片輔助主控芯片進行數據處理。這里需要注意的是,有一些廉價固態硬盤方案為了節省成本,省去了這塊緩存芯片,這樣對於使用時的性能會有一定的影響。
閃存芯片:除了主控芯片和緩存芯片以外,PCB板上其余的大部分位置都是NAND Flash閃存芯片了。NAND Flash閃存芯片又分為SLC(單層單元)MLC(多層單元)以及TLC(三層單元)NAND閃存。
SLC、MLC、TLC NAND的區別
對於基於NAND存儲技術的設備而言,無論是U盤還是SSD,甚至是SD卡,都會涉及到一個問題成本,於是產品設計從SLC轉變到MLC,再到TLC,甚至QLC也將在后續問世,那么SLC、MLC、TLC究竟對用戶有什么影響呢?
SLC--SLC英文全稱(Single Level Cell——SLC)即單層式儲存
SLC技術特點是在浮置閘極與源極之中的氧化薄膜更薄,在寫入數據時通過對浮置閘極的電荷加電壓,然后透過源極,即可將所儲存的電荷消除,通過這樣的方式,便可儲存1個信息單元,這種技術能提供快速的程序編程與讀取,不過此技術受限於Silicon efficiency的問題,必須要由較先進的流程強化技術(Process enhancements),才能向上提升SLC制程技術。
MLC--MLC英文全稱(Multi Level Cell——MLC)即多層式儲存
英特爾(Intel)在1997年9月最先開發成功MLC,其作用是將兩個單位的信息存入一個Floating Gate(閃存存儲單元中存放電荷的部分),然后利用不同電位(Level)的電荷,通過內存儲存的電壓控制精准讀寫。MLC通過使用大量的電壓等級,每 個單元儲存兩位數據,數據密度比較大。SLC架構是0和1兩個值,而MLC架構可以一次儲存4個以上的值,因此,MLC架構可以有比較好的儲存密度。
TLC--TLC英文全稱(Trinary-Level Cell)即三層式儲存
TLC即3bit per cell,每個單元可以存放比MLC多1/2的數據,共八個充電值,所需訪問時間更長,因此傳輸速度更慢。TLC優勢價格便宜,每百萬字節生產成本是最低的,但是壽命短,只有約1000次擦寫壽命。
正如上面的介紹,從SLC到MLC再到TLC,cell對於電壓的精確控制更高,這直接導致TLC的壽命下降到只有1000次PE,而對應的SLC和MLC分別為10000和3000,相對來說TLC的耐久度顯著下降。
TLC的另外一個劣勢就是數據的讀寫效率,在SLC時代,1個cell一次只需要讀取/寫入1個bit,到MLC時代每次需要讀取/寫入2bit,而到TLC時代則上升到3bit,很顯然其性能受到電壓控制的程序復雜度會變慢,當然由於工藝和主控的不斷升級,目前TLC已經可以追平MLC產品。
不過TLC耐久的硬傷短時間內並無法得到有效解決,當然TLC的耐久可以通過存儲設備的容量加大而均衡磨損,變相延長了產品的使用壽命
(3)eMMC與USF2.0
在手機興起的這幾年中,手機的閃存規格有了很大的提高,eMMC規格的標准逐漸從eMMC 4.3時代發展到現在的eMMC 5.0存儲產品,手機的閃存性能有了十分大的提高。不過,現在一種新的閃傳規格已經出現,它就是UFS 2.0閃傳標准,有着比eMMC 5.0更快的讀取性能。
eMMC閃傳規格:eMMC的全稱為“embedded Multi Media Card”,是由MMC協會所訂立的、主要是針對手機或平板電腦等產品的內嵌式存儲器標准規格。eMMC的一個明顯優勢是在封裝中集成了一個控制器,它提供標准接口並管理閃存,eMMC利用的是它將主控制器、閃存顆粒整合到了一個小的BGA封裝內。
eMMC=NAND Flash+控制器+標准封裝接口
現在,eMMC 4.5已經問世,eMMC 4.4的讀取速度大約為104MB/s、eMMC 4.5則為200MB/s,性能在當時也是十分優秀的;而在2013年7月29日三星開始量產行業首款eMMC 5.0存儲產品,其讀取速度為400MB/s,但是因為使用的是8位並行界面,因此性能潛力已經基本到達瓶頸,以最新的eMMC 5.1規范來說,其理論帶寬為600MB/s左右,性能的大提升基本是不可能的了。
UFS 2.0:UFS 2.0的閃存規格則采用了新的標准,它使用的是串行界面,很像PATA、SATA的轉換。並且它支持全雙工運行,可同時讀寫操作,還支持指令隊列。相比之下,eMMC是半雙工,讀寫必須分開執行,指令也是打包的,在速度上就已經是略遜一籌了。而且UFS芯片不僅傳輸速度快,功耗也要比eMMC 5.0低一半,可以說是旗艦手機閃存的理想搭配。
其實,JEDEC在2013年9月就已經發布了UFS 2.0的新一代閃存存儲標准,UFS 2.0閃存讀寫速度可以高達每秒1400MB,這相當於在兩秒鍾內讀寫兩個CD光盤的數據,不僅比eMMC有更巨大的優勢,而且它甚至能夠讓電腦上使用的閃存存儲介質固態硬盤也相形見絀。
除了在速度性能方面有着巨大優勢之外,在功耗方面UFS 2.0也有更好表現。事實上,如果從功耗方面來比較,即使是新一代的UFS 2.0標准也是能夠與eMMC持平。不過eMMC和UFS 2.0在操作過程中消耗的功率約為1mW(毫瓦),而待機狀態下功耗將低於0.5mW。當UFS 2.0滿載時,所消耗的功率實際上比eMMC還要多,但它可以更快地完成操作而更早地切換到待機狀態,因此在功耗方面的表現UFS 2.0與eMMC不相上下。
在傳輸速度方面,UFS 2.0可以說遠遠超過eMMC的。即使與當前最新的eMMC 5.0標准相比,UFS 2.0的速度也高出3倍。UFS 2.0可以在UFS主機與閃存之間以全雙工模式進行交換,讀寫可以同時執行。另外,UFS 2.0附加的控制通道可以有效地確保數據的安全傳輸,不必再因為讀寫操作而做不必要的等待,這是UFS 2.0獲得更高速度的關鍵。據了解,UFS 2.0有兩個版本,均有兩個傳輸信道。HS-G2的理論帶寬就有5.8Gbps,也就是超過了740MB/s,HS-G3更是翻番到11.6Gbps,接近了1.5GB/s,速度方面UFS 2.0完勝。
總結: 雖然eMMC在傳輸速度和性能方面不及現在最新的UFS 2.0,但在日后相當長的一段時間內,還是會繼續占領移動產品閃存芯片的主流。因為eMMC有着更成熟的工藝,能夠大規模生產,成本更低更適合大眾化的移動產品閃存芯片需求;而UFS 2.0雖然很好,但是生產成本較高,在現在剛開始投入市場的初期,只能夠被放在高端產品上使用。但以現在的趨勢來看,UFS 2.0將會逐漸成為移動產品市場的主流相信是不成問題,畢竟科技是需要進步的。
四、 補充說明
什么是SDRAM?
SDRAM(Synchronous DRAM): 同步動態隨機存儲器。目前的168線64bit帶寬內存基本上都采用SDRAM芯片,工作電壓3.3V電壓,存取速度高達7.5ns,而EDO內存最快為15ns。並將RAM與CPU以相同時鍾頻率控制,使RAM與CPU外頻同步,取消等待時間。所以其傳輸速率比EDO DRAM更快。
什么是DDR SDRAM?
DDR(Double Data Rate)SDRAM。其核心建立在SDRAM的基礎上,但在速度上有了提高。SDRAM僅在時鍾信號的上升沿讀取數據,而DDR在時鍾信號的上升沿和下降沿都讀取數據,因此,它的速度是標准SDRAM的2倍。
什么是RDRAM?
RDRAM(Rambus DRAM):總線式動態隨機存儲器,是由RAMBUS公司與INTEL公司合作提出的一項專利技術,它的數據傳輸率最高可達800MHZ,而它的總線寬度卻僅為16bit,遠遠小於現在的SDRAM的64bit。
什么是SPD?
SPD(Serial Presence Detect): SPD是一顆8針的EEPROM(Electrically Erasable Programmable ROM 電可擦寫可編程只讀存儲器), 容量為256字節,里面主要保存了該內存的相關資料,如容量、芯片廠商、內存模組廠商、工作速度等。SPD的內容一般由內存模組制造商寫入。支持SPD的主板在啟動時自動檢測SPD中的資料,並以此設定內存的工作參數。
現在的單片機,RAM主要是做運行時數據存儲器,FLASH主要是程序存儲器,EEPROM主要是用以在程序運行保存一些需要掉電不丟失的數據. 另外,一些變量,都是放到RAM里的,一些初始化數據比如液晶要顯示的內容界面,都是放到FLASH區里的(也就是以前說的ROM區),EEPROM可用可不用,主要是存一些運行中的數據,掉電后且不丟失。