rom(read only memory)和ram(random access memory)指的都是半導體儲存器,rom在系統停止供電的時候仍然可以保持資料,而ram通常是在掉電之後就丟失資料,典型的ram就是計算機的記憶體。
rom有很多種,prom是可程式設計的rom,它和eprom(可擦除可程式設計rom)的區別是,prom是一次性的,也就是軟體灌入後,就無法修改了,這是早期的產品,現在已經不再使用,而eprom是通過紫外光的照射擦出原先的程式的一種通用儲存器。另外一種eeprom是通過電子擦除,**很高,寫入時間很長,寫入慢。
舉個例子,手機軟體一般放在eeprom中,我們打**,有些最後撥打的號碼,暫時存在sram中,不是馬上寫入聯絡歷史(聯絡歷史儲存在eeprom中),因為當時有很重要工作(通話)要做,如果寫入,漫長的等待使用者無法忍受。
ram有兩大類,一種稱為靜態ram(static ram/sram),sram速度非常快,是目前讀寫最快的儲存裝置了,它也非常昂貴,所以只在要求很苛刻的地方使用,譬如cpu的一級緩衝,二級緩衝。
另一種稱為動態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,並把電容放電,藉此來保持資料的連續性。
nand flash和nor flash的比較
常用的flash型別有:nor flash和nand flash兩種。nor flash由intel公司在2023年發明,以替代當時在市場上佔據主要地位的eprom和eeprom。nandflash由toshiba公司在2023年發明。兩者的主要差別如下表所示。
nornand
容量1~32mb
16~512mb
xipyes
no效能
擦除非常慢(5s)
快(3ms)寫慢
快讀快快
可靠性比較高,位反轉的比例小於nand flash 的10%
比較低:,位反轉比較常見,必需有校驗措施,比如「1-4 bit edc/ecc」;必須有壞塊管理措施
可擦除次數
10000~100000
100000~1000000
生命週期
低於nand flash的10%
是nor flash的10倍以上
介面與ram介面相同
i/o介面
訪問方法
隨機訪問
順序訪問
易用性容易
複雜主要用途
常用於儲存**和關鍵資料
用於儲存資料**高
低nor/nand flash的差別
nor flash支援xip,即**可以直接在nor flash上執行,無需拷貝到記憶體中。這是由於nor flash的介面與ram完全相同,可以隨機訪問任意位址的資料。在nor flash上進行讀操作的效率非常高,但是擦除和寫操作的效率很低;另外,nor flash的容量一般比較小。
nand flash進行擦除和寫操作的效率更高,並且容量更大。一般而言,nor flash用於儲存程式,nand flash用於儲存資料。基於nand flash的裝置通常也要搭配nor flash以儲存程式。
flash儲存器件由擦除單元(也稱為塊)組成,當要寫某個塊時,需要確保這個塊已經被擦除。nor flash的塊大小範圍為64kb~128kb;nand flash的塊大小範圍為8kb~64kb,擦/寫乙個nor flash塊需4s,而擦/寫乙個nand flash塊僅需2ms。
nor flash的塊太大,不僅增加了擦寫時間,對於給定的寫操作,nor flash也需要更多的擦除操作——特別是小檔案,比如乙個檔案只有1kb,但是為了儲存它卻需要擦除大小為64kb~128kb的nor flash塊。
nor flash的介面與ram完全相同,可以隨意訪問任意位址的資料。而nand flash的介面僅僅包含幾個i/o引腳,需要序列地訪問。nand flash一般以512位元組為單位進行讀寫。這使得nor flash適合於執行程式,而nand flash更適合於儲存資料。
容量相同的情況下,nand flash的體積更小,對於空間有嚴格要求的系統,nand flash可以節省更多空間。市場上nor flash的容量通常為1~4mb(也有32mb的nor flash),nandflash的容量為8~512mb。容量的差別也使得nor flash多用於儲存程式,nand flash多用於儲存資料。
對於flash儲存器件的可靠性需要考慮3點:位反轉、壞塊和可擦除次數。所有flash器件都遭遇位反轉的問題:由於flash固有的電器特性,在讀寫資料過程中,偶然會產生一位或幾位資料錯誤——這種概率很低,而nand flash出現的概率遠大於nor flash。當位反**生在關鍵的**、資料上時,有可能導致系統崩潰。
當僅僅是報告位反轉,重新讀取即可;如果確實發生了位反轉,則必須有相應的錯誤檢測/恢復措施。在nand flash上發生位反轉的概率更高,推薦使用edc/ecc進行錯誤檢測和恢復。
nand flash上面會有壞塊隨機分布,在使用前需要將壞塊掃瞄出來,確保不再使用它們,否則會使產品含有嚴重的故障。nand flash每塊的可擦除次數通常在100000次左右,是nor flash的10倍。另外,因為nand flash的塊大小通常是nor flash的1/8,所以nand flash的壽命遠遠超過nor flash。
linux對nor、nand flash的軟體支援都很成熟。在nor flash上常用jffs2檔案系統,而在nand flash上常用yaffs檔案系統。在更底層,有mtd驅動程式實現對它們的讀、寫、擦除操作,它也實現了edc/ecc校驗。
**百問網
非嵌入式與嵌入式的區別
非嵌入式是通過軟體控制硬體,軟硬體之間直接聯絡來實現要求。但是一旦硬體發生改變軟體也要改變,為了降低這種偶合度過高的問題,出現了嵌入式。嵌入式在軟體和硬體之間新增了作業系統,軟體通過控制作業系統進而控制硬體,硬體發生改變並不會導致軟體也發生改變,這為軟體開發人員節約了很多時間,並且嵌入式能在已有的硬...
嵌入式linux qtopia平台開發說明
linux系統中qt qtopia 平台開發說明 黃德智 compiler hdz hotmail.com v 1.0 日期 20060305 qt 版本 20060106v2 一 開發包的獲取 最新的qtopia開發包名稱為 qtopia dev20060106v2.tar.gz 當前版本為200...
嵌入式linux軟體平台 SPL
功能 spl抽取u boot的部分 進行編譯生成,spl完成cpu的初始化,ddr初始化,spi介面及nor flash的初始化等內容,然後載入u boot 到ddr,跳轉到u boot執行.流程 spl的執行流程 reset start.s lowlevel init lowlevel init....