嵌入式开发——常见的存储器分类和特性介绍
1、存儲器的組成
存儲器大體上由“存儲顆粒 + 控制電路”組成,存儲顆粒負責存儲數據,控制電路負責管理存儲顆粒和對外交換數據。如果從存儲顆粒上進行分類,就是以是否掉電丟失、是否隨機尋址、是可讀還是可寫、是否需要初始化等標準進行分類;如果從控制電路進行分類,就是用不同的協議來區分存儲器,比如:eMMC、SD卡、iNand等在存儲顆粒上都是NandFlash,但是接口電路不同,通信的協議就不同。按存儲顆??梢苑譃閮纱箢?#xff1a;RAM和ROM。 RAM指的是只讀存儲器,主要特征是掉電丟失數據,可隨機尋址,能通過地址線直接與CPU相連進行數據交互。ROM指的是只讀存儲器,主要特征是掉電不丟失數據。通常來說,保存程序的是ROM,運行程序的是RAM,除了特殊的NorFlash,NorFlash需要ROM但是可以運行程序。
2、RAM分類
2.1.1、SRAM介紹
SRAM(Static Random Access Memory)就是靜態隨機存儲器,由觸發器構成,靜態是相對于DRAM而言的,不用刷新。SRAM的單位存儲容量價格高,讀取速度快,可以直接與CPU相連并且不用初始化就可以使用。
2.1.2、使用SRAM的地方
一般來說SRAM的容量都不會很大,用在某些需要高速性能的地方,比如Cache等;或者用在啟動階段,因為SRAM不需要初始化就可以使用,某些Soc在芯片內部就自帶了一塊iRAM(也就是SRAM),用來運行最初的啟動代碼。
2.2.1、DRAM介紹
DRAM(Dynamic Random Access Memory )是動態隨機存儲器,動態的意思就是需要去不停的刷新,因為DRAM是電容原理做的,電容會不停的流失電荷,所以DRAM在刷新時間之內必須去重新刷新一遍。DRAM相對于SRAM而言,DRAM需要先初始化才能使用,讀取的速度沒有SRAM快,但是單位存儲容量的價格更低。
2.2.2、DRAM的分類
(1)SDRAM(synchronous dynamic random-access memory)同步動態隨機存儲器,相比于DRAM是異步的,SDRAM和系統總線保持同步,通信速率更快;
(2)DDR(Double Data Rate SDRAM )雙倍速率同步動態隨機存儲器,相對于SDRAM而言,DDR在上升沿和下降沿都可以傳輸數據,所以傳輸速率是SDRAM的雙倍。
(3)DDR2、DDR3、DDR4就是DDR的升級版,具體差異我也不是很清楚,對嵌入式開發工程師來說,最大的差異就是最高能達到的速率不同,越往后速率越高。
(4)在各版本的DDR中,會看到有的名字加上前綴LP,比如LPDDR4,就是低功耗的DDR4。低功耗的DDR主要是用在嵌入式設備里。
2.2.3、 總結
(1)需要初始化才能使用,需要刷新,容量比較大的一般都是DRAM;
(2)上電可以直接使用,不需要刷新,容量小,一般都是SRAM;
3、ROM分類
3.1、ROM介紹
ROM(Read Only Memory)最主要的特點就是掉電不丟失數據,一般都是用于保存數據的。常見的有磁盤(HDD),用磁原理進行存儲;硬盤(SSD)用電原理進行存儲;光盤(DVD),按光原理進行存儲;這里主要介紹電原理進行存儲的Flash,因為現在嵌入式設備的外存基本都是Flash;其中flash分為NorFlash和NandFlash。
3.2.1、NorFlash介紹
NorFlash具有不需要初始化,掉電不丟失數據,具有片內執行能力(XIP, eXecute In Place),可以用地址直接訪問,單位容量價格高等特點。一般來說NorFlash的容量不會太大,都是用來存一些特殊的代碼,比如啟動代碼。
3.2.2、使用NorFlash的地方
(1)單片中,單片機本身需要的存儲空間就不大,并且NorFlash具有片內執行能力,還省去一顆內存;
(2)用作Soc中的iROM,用來保存啟動代碼,因為NorFlash不需要初始化就可以使用,所以當芯片上電后就可以直接去讀取NorFlash里的代碼,進行啟動。
(3)一般spi flash都是NorFlash,spi是接口類型;
3.3.1、NandFlash介紹
NandFlash具有單位容量價格低,存在壞塊,不能片內執行,需要初始化,掉電不丟失數據等特點。NandFlash分為SLC和MLC:SLC更穩定,但是容量小價格高;MLC容易出錯,但是容量大價格低?,F在最新的還有TLC和QLC,這個不太清除,用到的時候再查吧。一般大容量的flash都是MLC的,勝在便宜,只是要加上壞塊管理機制。
3.3.2、使用NandFlash的地方
基本上以G和T為單位的flash,都是NandFlash中的MLC,常見的MMC、SSD、eMMC、iNand等,在本質上都是NandFlash,只是在控制電路上不同,表現出來就是接口協議,還有封裝工藝不同,各有各的用處。
4、補充
(1)現在的ROM已經不是嚴格意義上的ROM了,ROM最初指的是只讀存儲器,但是現在我們用的磁盤和flash都是可讀可寫的,只是寫的速度比讀要慢。
(2)現在已經很少用單純的存儲顆粒,都是加了控制電路的,對于工程師來說就是用什么接口的存儲器。同樣在soc上也有相對的存儲器控制接口,因為接口的同一,我們更換同接口的存儲器是不需要更改什么東西的。至于存儲器復雜的通信時序,都是由接口電路負責,使用時去操作寄存器即可。
總結
以上是生活随笔為你收集整理的嵌入式开发——常见的存储器分类和特性介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “约见”面试官系列之常见面试题之第五十篇
- 下一篇: 分别用精密星历和广播星历计算卫星坐标 -