常用存儲器介紹

圖一
注意:"易失/非易失"是指存儲器斷電后,它存儲的數據內容是否會丟失的特性。

(一)RAM和ROM

1.1 RAM

RAM即隨機存儲器,它是指存儲器中的數據被讀入或者寫入與信息所在位置無關,時間都是相同的

1.1.1 DRAM

DRAM即動態隨機存儲器,它以電容的電荷表示數據,由于電容的充放電效應,所以存儲數據需要定時刷新才能保證數據的正確性。它的優點是集成密度遠高于SRAM,功耗低,價格也低;缺點是因需要舒心而使外圍電路復雜,速度較SRAM慢,但是比任何ROM都快。盡管如此,由于DRAM[1]存儲單元的結構簡單,所用元件少,集成度高,功耗低,所以目前已成為大容量RAM的主流產品。
圖二
根據DRAM的通信方式又可以分為同步和異步,這兩種方式根據是否需要時鐘信號來區分,由于同步的通信更快,所以同步的DRAM使用更廣泛,同步的DRAM又被稱為SDRAM
為了進一步提高SDRAM的通信速度,又設計了DDR SDRAM,雙倍速率SDRAM,它是在SDRAM上的一種改進,至于DDRII和DDRIII他們的通信方式并沒有區別,主要是通信的同步時鐘的頻率提高了。
小知識:當前計算機的內存條是DDRIII SDRAM

特性DRAMSRAM
存取速度較慢較快
集成度較高較低
生產成本較低較高
是否需要刷新
1.1.2 SRAM

SRAM靜態隨機存儲器,這種存儲器是以鎖存器的形式存儲數據,由于不需要定時刷新充電,所以稱為靜態的。它的優點是速度快、使用簡單、不需要刷新、靜態功耗極低,常用作緩存;缺點就是元件較多、集成密度低、運行功耗大,價格高

PSRAM:

基本原理:PSRAM就是偽SRAM,內部的內存顆粒跟SDRAM的顆粒相似,但外部的接口跟SRAM相似,不需要SDRAM那樣復雜的控制器和刷新機制,PSRAM的接口跟SRAM的接口是一樣的。PSRAM主要應用于手機,電子詞典,掌上電腦,PDA,PMP.MP3/4,GPS接收器等消費電子產品與SRAM(采用6T的技術)相比,PSRAM采用的是1T+1C的技術,所以在體積上更小,同時,PSRAM的I/O接口與SRAM相同.在容量上,目前有4MB,8MB,16MB,32MB,64MB和128MB。比較于SDRAM,PSRAM的功耗要低很多。所以對于要求有一定緩存容量的很多便攜式產品是一個理想的選擇。

1.2 ROM

ROM即只讀存儲器,一般用于指現代非易失性存儲半導體

  1. MASK ROM
    MASK(掩膜) ROM就是正宗的"Read Only Memory",存儲在它內部的數據是在出廠時使用特殊工藝固化的,生產后就不可修改,其主要優勢是大批量生產時成本低。當前在生產量大,數據不需要修改的場合,還有應用。
  2. OTPROM
    OTPROM(One Time Programable ROM)是一次可編程存儲器。這種存儲器出廠時內部并沒有資料,用戶可以使用專用的編程器將自己的資料寫入,但只能寫入一次,被寫入過后,它的內容也不可再修改。在NXP公司生產的控制器芯片中常使用OTPROM來存儲密鑰;STM32F429系列的芯片內部也包含有一部分的OTPROM空間。
  3. EPROM
    EPROM(Erasable Programmable ROM)是可重復擦寫的存儲器,它解決了PROM芯片只能寫入一次的問題。這種存儲器使用紫外線照射芯片內部擦除數據,擦除和寫入都要專用的設備。現在這種存儲器基本淘汰,被EEPROM取代。
  4. EEPROM
    EEPROM(Electrically Erasable Programmable ROM)是電可擦除存儲器。EEPROM可以重復擦寫,它的擦除和寫入都是直接使用電路控制,不需要再使用外部設備來擦寫。而且可以按字節為單位修改數據,無需整個芯片擦除。現在主要使用的ROM芯片都是EEPROM。

(二)NOR FLASH 和NAND FLASH的區別

FLASH 又稱為閃存,也有人稱為FLASH ROM,它們的容量一般較大,在擦除時一般以多字節為單位。 相同點:

  • Nor flash 和nand flash都是在寫入之前進行擦除的

區別:
主要在于Nor flash 的地址線和數據線分開,它可以按字節讀取數據,符合CPU的指令譯碼執行要求, 所以NOR FLASH 可以運行代碼,即CPU給NOR FLASH 一個地址,NOR FLASH 就能向CPU返回一個數據讓CPU執行,不需要額外的操作,NOR的特點是應用簡單、無需專門的接口電路、傳輸效率高。
而NAND FLASH 數據線和地址線共用,只能按塊讀寫數據,即使存儲了代碼指令,它也無法返回某數據的地址,所以不能運行程序,NAND FLASH結構能提供極高的單元密度,可以達到高存儲密度,應用NAND的困難在于flash的管理和需要特殊的系統接口。
由于兩種FLASH存儲器特性的差異,NOR FLASH一般應用在代碼存儲的場合,如嵌入式控制器內部的程序存儲空間。而NAND FLASH一般應用在大數據量存儲的場合,包括SD卡、U盤以及固態硬盤等,都是NAND FLASH類型的。

特性NOR FLASHNAND FLASH
同容量存儲器成本較貴較便宜
集成度較低較高
介質類型隨機存儲連續存儲
地址線和數據線獨立分開公用
擦除單元以扇區為單位以塊為單位
讀寫單元可以基于字節讀寫必須以塊為單位讀寫
讀取速度較高較低
寫入速度較低較高
壞塊較少較多
是否支持XIP支持不支持

(三)emmc

eMMC (Embedded Multi Media Card)是MMC協會訂立、主要針對手機或平板電腦等產品的內嵌式存儲器標準規格。eMMC在封裝中集成了一個控制器,提供標準接口并管理閃存,使得手機廠商就能專注于產品開發的其它部分,并縮短向市場推出產品的時間。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531439.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531439.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TortoiseGit與github實現項目的上傳

1. 下載并安裝相關軟件 這里主要涉及的軟件包括msysgit和TortoiseGit。 msysgit的下載地址:http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe TortoiseGit的下載地址:http://code.google.com/p/tortoisegit/downloads/list&#xff0…

Uboot啟動

(一)uboot 配置編譯分析 u-boot源碼是通過gcc和Makefile組織編譯的,頂層目錄下的Makefile可通過boards.cfg來設置開發板的定義 然后遞歸調用各級子目錄下的Makefile,把編譯過的程序連接成u-boot boards.cfg文件: 開發…

行列式計算的兩種方法

#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define N 100 using namespace std; int a[N][N]; double aa[N][N]; int n;/**********************************************************/ //求行列式的值&#xff1…

uboot啟動流程分析

Uboot的啟動流程分為兩個階段&#xff0c;第一階段主要是匯編語言編寫&#xff0c;第二階段是C語言編寫&#xff0c;每個階段所做的工作不同&#xff0c;這篇文章分析的是uboot 2010版&#xff0c;以tiny4412的uboot為例。 啟動過程涉及的主要文件&#xff1a; arch/arm/cpu/a…

(一)uboot的移植與制作

目錄&#xff08;一&#xff09;環境&#xff08;二&#xff09;流程分析&#xff08;三&#xff09;具體步驟在裸機啟動流程里涉及到BL1&#xff0c;BL2為系統的加載啟動項&#xff0c;全稱為BootLoader。 Boot Loader 是在操作系統內核運行之前運行的一段小程序。通過這段小程…

jquery ajax(實現單獨提交某個form)

function submitTaskScore(formid) {//formid表示的是表單的id$.ajax({type:"post",url:"companyAndDistributeAction!scoreTask",//后臺處理程序data:$(formid).serialize(),success:function(){document.getElementById("hjzggContent").inner…

(二)linux內核鏡像制作

&#xff08;一&#xff09;目的 在進行嵌入式開發的時候&#xff0c;我們往往會先在電腦上安裝交叉編譯器&#xff0c;然后編譯目標板上的代碼&#xff0c;最后把代碼下載到電路板中&#xff0c;嵌入式系統組成包括&#xff1a;BootLoaderkernelfilesystemapplication&#x…

js+css實現骰子的隨機轉動

網上找的例子&#xff0c;然后增添了新的東西&#xff0c;在這里展示一下...... 效果圖預覽&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html x…

linux安裝交叉編譯環境

&#xff08;一&#xff09;交叉編譯器的簡介 &#xff08;1&#xff09;本地編譯 在了解交叉編譯之前我們首先介紹一下另一個概念&#xff1a;本地編譯 之前所做的C開發屬于本地編譯&#xff0c;即在當前PC下&#xff08;x86的CPU下&#xff09;&#xff0c;直接編譯出可以運…

jsp實現郵件的發送

如果程序出現 454 Authentication failed, please open smtp flag first! 錯誤&#xff0c;那么一般是郵箱沒有開通POP3/SMTP服務&#xff0c;登錄郵箱&#xff0c;在設置中開啟該服務即可 &#xff01; 另外需要的jar包如下: imap.jar, mail.jar, smtp.jar, 可以自己在網上下…

linux的mount和umount指令使用

mount即掛在操作&#xff0c;磁盤或分區創建好文件系統后需要掛載到一個目錄&#xff08;一般mount在/mnt下&#xff09;才能使 用&#xff0c;和winsdows不同的是在linux下需要手動掛載。 用法&#xff1a;mount [-t文件系統] [選項] 設備目錄注意&#xff1a;[ ]為可選項…

斐波那契的四種求法

首先看一下斐波那契的矩陣表示&#xff1a; 數列的遞推公式為&#xff1a;f(1)1&#xff0c;f(2)2&#xff0c;f(n)f(n-1)f(n-2)(n>3) 用矩陣表示為&#xff1a; 進一步&#xff0c;可以得出直接推導公式&#xff1a; #include<iostream> #include<cstring> #i…

利用STM32制作紅外測溫儀之軟件設計(MLX90614)

目錄&#xff08;一&#xff09;工程目錄如圖&#xff1a;&#xff08;二&#xff09;main函數實現&#xff1a;&#xff08;三&#xff09;MLX90614測溫代碼實現前面介紹了使用 STM32制作紅外測溫儀硬件設計,今天來說一下軟件的實現&#xff0c;具體的程序&#xff0c;完整的k…

Windows下使用Dev-C++開發基于pthread.h的多線程程序

一、下載Windows版本的pthread 目前最新版本是&#xff1a;pthreads-w32-2-9-1-release.zip。 二、解壓pthread到指定目錄 我選擇的目錄是&#xff1a;E:\DEV-CPP\Pthread完成后&#xff0c;該目錄會多出三個文件夾&#xff1a;Pre-built.2&#xff0c;pthreads.2&#xff0c;Q…

(三)linux之根文件系統的制作

&#xff08;一&#xff09;準備工作 Ubuntu 16.04系統linux-3.5內核:linux-3.5-20190929交叉編譯工具arm-linux-gcc-4.5.1-v6-vfp-20120301.rarbusybox源碼包&#xff1a;busybox-1.21.1.rar &#xff08;二&#xff09;工具介紹 &#xff08;1&#xff09;交叉編譯器 這個…

c/c++多線程模擬系統資源分配(并通過銀行家算法避免死鎖產生)

銀行家算法數據結構 &#xff08;1&#xff09;可利用資源向量Available 是個含有m個元素的數組&#xff0c;其中的每一個元素代表一類可利用的資源數目。如果Available[j]K&#xff0c;則表示系統中現有Rj類資源K個。 &#xff08;2&#xff09;最大需求矩陣Max 這是一個nm的…

(四)Linux內核模塊化編程

目錄&#xff08;一&#xff09;模塊化編程簡介&#xff08;二&#xff09;安裝卸載模塊命令.&#xff08;三&#xff09;將自定義功能添加到內核三種方法&#xff08;1&#xff09;修改Kconfig和Makefile&#xff08;2&#xff09;直接修改功能對應目錄下的Makefile文件&#…

基于X86平臺的PC機通過網絡發送一個int(32位)整數的字節順序

1.字節順序  字節順序是指占內存多于一個字節類型的數據在內存中的存放順序&#xff0c;通常有小端、大端兩種字節順序。小端字節序指低字節數據存放在內存低地址處&#xff0c;高字節數據存放在內存高地址處&#xff1b;大端字節序是高字節數據存放在低地址處&#xff0c;低字…

Linux內核空間和用戶空間

在Linux系統中存在進程的概念&#xff1a; 進程的分類&#xff1a; 用戶進程&#xff1a;運行在用戶空間的進程被稱為用戶進程 內核進程:運行在內核空間的進程被稱為內核進程 進程的空間&#xff1a; 系統會為每一個進程分0-4G的虛擬尋址空間&#xff0c;在4G的空間中 0-3G&…

codeforces Round #320 (Div. 2) C. A Problem about Polyline(數學) D. Or Game(暴力,數學)

解題思路&#xff1a;就是求數 n 對應的二進制數中有多少個 1 #include <iostream> #include<cstdio> using namespace std; int main(){int n;cin>>n;int ans 0; // while(n){//這也是一種好的方法 // n n&(n-1); // ans; // }while(n…