2022-01-27 10:02:53|已瀏覽:4836次
嵌入式系統開發中常見的存儲器及其特點:
第一節 嵌入式存儲結構層次的劃分
首先看一下嵌入式存儲體系的劃分,此處按照存儲速度進行劃分。
●寄存器
●高速緩存Cache
●RAM(例如SRAM、DRAM、DDRAM)
●主存儲器(例如Flash、PROM、EPROM、EEPROM)
●外部存儲器(例如磁盤、光盤、CF卡、SD卡)
●遠程二級存儲(例如分布式文件系統、Web服務器)
那么問題來了,為什么會存在嵌入式存儲體系,都用寄存器或者磁盤存數據不就好了?
其實計算機采用分級存儲體系的主要目的是解決存儲容量、成本和速度之間的矛盾問題。
速度越快的存儲器,通常價格也越高。所有數據都采用寄存器存儲也是可以的,但是做出來的產品價格將會特別昂貴!用磁盤存所有的數據也行,但是嵌入式設備的運行速度將會特別慢!所以兩者在商業上并不可行。因此我們的寄存器一般用特別小的容量,Cache容量比寄存器大,主存儲器容量又比RAM大,如此遞推,可以獲得最佳的性價比。
第二節 寄存器
通常是嵌入式開發中最高速的存儲器,由邊沿觸發方式的的觸發器、門電路組成,價格極為昂貴。
主要作用是用來暫時存放數碼或指令
一個觸發器可以存儲1位二進制代碼,故存放n位二進制代碼的寄存器,需用n個觸發器來構成。
第三節 高速緩存Cache
大家在嵌入式開發中,可能比較少聽說過Cache這個詞,但Cache的作用是至關重要的。你可以把Cache理解為一個承上啟下的存儲器,它傳遞數據給CPU,又向主存獲取數據。那么為什么不直接從主存直接獲取內容傳給CPU?原因是存儲速度和儲存的局部性原理。為了緩解CPU和主存中速度差異,引入Cache這種比CPU速度慢但是又比主存速度快的中間介質會有效解決速度差異帶來的矛盾。再者存儲是有局部性的,在CPU運行時,所訪問的數據會趨向于一個較小的局部空間地址內(例如循環操作,循環體反復被執行)。
所以高速緩存Cache用來存儲當前最為活躍的程序和數據,直接與CPU交互。
Cache由半導體材料(通常是SRAM)構成,其功能對于程序員來說是透明的存在,所以大部分程序員都沒有留意到它。這里值得注意的是Cache的存儲內容是當前最為活躍的程序和數據。
因此Cache有一個命中率的概念,即當CPU所訪問的數據在Cache中命中時,直接從Cache中讀取數據。若CPU訪問的數據不在Cache中,則還是需從主存中讀取。
第四節 RAM
RAM是隨機存取存儲器(Random Access Memory)的簡稱,其存儲的內容可以隨意取出或者存入,且存取速度與存儲單元的位置無關,存儲速度快,
通常作為操作系統或其他正在運行中的程序的臨時數據存儲介質。
這種存儲器在斷電時將會丟失其存儲內容,故用于存儲短時間使用的程序和數據。嵌入式開發常見的RAM有:SRAM、DRAM、DDRAM(雙倍速率隨機存儲器)。
①SRAM是靜態的,因此只要供電它就會保持一個值,不用對它進行周期性刷新。其由觸發器構成基本單元,每個存儲單元由六個晶體管組成,因此其成本較高,但它具有較高的速率,可以用來做Cache。
②DRAM是動態的,需要有規律地定時進行刷新,但是價格比SRAM低。DRAM中的每個存儲單元由一個晶體管和一個電容器組成,因為組成包括電容器,而電容器會漏電,所以才要定期刷新,刷新周期一般為1ms。
③SDRAM(SynchronousDRAM,同步動態隨機存儲器),即數據的讀寫需要時鐘來同步。其存儲單元不是按線性排列的,是分頁的。DRAM和SDRAM由于實現工藝問題,容量較SRAM大。但是讀寫速度都不如SRAM。
④DDRAM(displaydataRAM)是顯示數據隨機存儲器的簡稱,為了解決SDRAM中讀寫速度慢的一種RAM。其基于SDRAM技術,引入一種叫做雙倍預取的技術(即在內存芯片內部的數據寬度是外部接口數據寬度的兩倍),使峰值的讀寫速度達到輸入時鐘速率的兩倍。
第五節 主存儲器
主存儲器常見的有ROM和Flash兩種,一般被用來保存較大容量的數據,現在的人習慣把Flash也叫做ROM。其實ROM指的是只讀存儲器(Read Only Memory,一般是指MaskROM)和Flash(閃速存儲器)有一定區別。但是Flash又是從ROM和RAM的發展而來,Flash不僅具備電子可擦除可編程(EEPROM)的性能,還可以快速讀取數據(RAM的優勢),就常被電商劃分為ROM了。
主存儲器的種類:
① MaskROM(掩模ROM):一次性由廠家寫入數據的ROM,用戶無法修改。
② PROM(可編程ROM):由用戶來編程一次性寫入數據,只能寫入數據一次。
③ EPROM(電可擦寫ROM):可以重復擦除與寫入,但是要通過紫外光才能擦除。
④ EEPROM(電可擦除可編程ROM,也就是E2PROM):解決了EPROM的擦除問題,可以通過加電擦除原數據,擦除更加方便。
⑤ Flash Memory(閃速存儲器):綜合了EEPROM的優點,而且極大提高了讀寫速度。常見的有NOR Flash、NAND Flash。NOR Flash允許程序直接在上面運行,但是價格比較貴。NAND Flash解決了NOR Flash成本較貴的問題,但是NAND Flash的困難在于需要特殊的系統接口。
⑥ EMMC (Embedded Multi Media Card):將NAND Flash芯片和控制芯片設計成1顆MCP芯片,客戶只需要采購EMMC芯片,放進設備中,不需處理其它繁復的NAND Flash兼容性和管理問題,最大優點是縮短新產品的上市周期和研發成本,加速產品的推陳出新速度。
第六節 外部存儲器
常見的外部存儲器分為磁盤存儲器、光盤存儲器、CF卡、SD卡。一般被用來保存大容量的數據,其特點如下:
① 磁盤儲存器:分為硬盤和軟盤,容量大、使用壽命長但價格昂貴,主要在個人PC中應用多,較少出現在嵌入式領域中。
② 光盤存儲器:用光學方式讀取/寫入信息的圓盤,一般用于多媒體數字信息的載體,較少出現在嵌入式領域中。
③ CF卡:最早推出的存儲卡,體積比磁盤儲存器和光盤存儲器小,抗磁性好、儲存性能穩定。
④ SD卡:可以看做CF卡的升級版,體積比CF卡小,安全性也更高。支持SD模式和SPI模式,外圍只需簡單電路就可以用于嵌入式開發。嵌入式領域最常見的外部存儲器。
第七節 存儲管理和頁面置換算法
通過前面幾節的學習,我們對嵌入式存儲體系有了一定的了解,那么在這個體系下,會出現一個問題—當進程運行所需的內存大于系統內存時,就無法將整個進程一起調入系統內存,因此無法運行。為了解決上面這個矛盾,我們采用頁式存儲或者段式存儲將進程空間劃分。
此時總的進程空間就會變成多個小段的進程空間,然后通過頁面置換算法進行淘汰,使分出的小段進程空間有序調入內存中運行。
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-18483.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注嵌入式開發頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050