Linux從用戶層到內核層系列 - TCP/IP協議棧部分系列9: 基礎知識之 - 操作系統中常用存儲介質詳解

題記:本系列文章的目的是拋開書本從源代碼和使用的角度分析Linux內核和相關源代碼,byhankswang和你一起玩轉linux開發


輕鬆搞定TCP/IP協議棧,原創文章歡迎交流, [email protected]微笑

歡迎加入到CHLK - Linux開發交流羣 QQ:327084515 討論Linux開發相關問題


操作系統中常用存儲介質詳解

說明:本文介紹了包括ROM、RAM和FLASH的各種變體

ROM和RAM指的都是半導體存儲器,ROM是ReadOnly Memory的縮寫,RAM是Random Access Memory的縮寫。ROM在系統停止供電的時候仍然可以保持數據,而RAM通常都是在掉電之後就丟失數據,典型的RAM就是計算機的內存。


1.RAM

RAM有兩大類,一種稱爲靜態RAM(Static RAM/SRAM),它是一種具有靜止存取功能的內存,不需要刷新電路即能保存它內部存儲的數據。 SRAM速度非常快,是目前讀寫最快的存儲設備了,但是它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩衝,二級緩衝。

另一種稱爲動態RAM(Dynamic RAM/DRAM),動態RAM(Dynamic RAM/DRAM)保留數據的時間很短,需要刷新電路,每隔一段時間,固定要對DRAM刷新充電一次,否則內部的數據即會消失。具體的工作過程是這樣的:一個DRAM的存儲單元存儲的是0還是1取決於電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是數據丟失的原因;刷新操作定期對電容進行檢查,若電量大於滿電量的1/2,則認爲其代表1,並把電容充滿電;若電量小於1/2,則認爲其代表0,並把電容放電,藉此來保持數據的連續性。DRAM保留數據的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很多,計算機內存就是DRAM的。

DRAM分爲很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDRRAM、RDRAM、SGRAM以及WRAM等,這裏介紹其中的一種DDR RAM。

SDRAM->
SDRAM(Synchronous Dynamic Random Access Memory)同步動態隨機存取存儲器,同步是指Memory工作需要步時鐘,內部的命令的發送與數據的傳輸都以它爲基準;動態是指存儲陣列需要不斷的刷新來保證數據不丟失;隨機是指數據不是線性依次存儲,而是由指定地址進行數據讀寫。

SDRAM從發展到現在已經經歷了四代,分別是:

第一代SDR SDRAM(普通的SDRAM)

第二代DDR SDRAM

第三代DDR2 SDRAM

第四代DDR3 SDRAM

 

DDRRAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在於它可以在一個時鐘讀寫兩次數據,這樣就使得數據傳輸速度加倍了。這是目前電腦中用得最多的內存,而且它有着成本優勢,事實上擊敗了Intel的另外一種內存標準-Rambus DRAM。在很多高端的顯卡上,也配備了高速DDRRAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。

內存工作原理:

內存是用來存放當前正在使用的(即執行中)的數據和程序,我們平常所提到的計算機的內存指的是動態內存(即DRAM),動態內存中所謂的"動態",指的是當我們將數據寫入DRAM後,經過一段時間,數據會丟失,因此需要一個額外設電路進行內存刷新操作。

具體的工作過程是這樣的:一個DRAM的存儲單元存儲的是0還是1取決於電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是數據丟失的原因;刷新操作定期對電容進行檢查,若電量大於滿電量的1/2,則認爲其代表1,並把電容充滿電;若電量小於1/2,則認爲其代表0,並把電容放電,藉此來保持數據的連續性。

ROM也有很多種,PROM是可編程的ROM,PROM和EPROM(可擦除可編程ROM)兩者區別是,PROM是一次性的,也就是軟件灌入後,就無法修改了,這種是早期的產品,現在已經不可能使用了,而EPROM是通過紫外光的照射擦出原先的程序,是一種通用的存儲器。另外一種EEPROM是通過電子擦出,價格很高,寫入時間很長,寫入很慢。

舉個例子,手機軟件一般放在EEPROM中,我們打電話,有些最後撥打的號碼,暫時是存在SRAM中的,不是馬上寫入通過記錄(通話記錄保存在EEPROM中),因爲當時有很重要工作(通話)要做,如果寫入,漫長的等待是讓用戶忍無可忍的。

2.FLASH

FLASH存儲器又稱閃存,它結合了ROM和RAM的長處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會斷電丟失數據同時可以快速讀取數據(NVRAM的優勢),U盤和MP3裏用的就是這種存儲器。在過去的20年裏,嵌入式系統一直使用ROM(EPROM)作爲它們的存儲設備,然而近年來Flash全面代替了ROM(EPROM)在嵌入式系統中的地位,用作存儲Bootloader以及操作系統或者程序代碼或者直接當硬盤使用(U盤)。

目前Flash主要有兩種NOR Flash(或非門Flash)和NADNFlash(與非門Flash)。

NORFlash的讀取和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH裏面的代碼,這樣可以減少SRAM的容量從而節約了成本。

NANDFlash沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節,採用這種技術的Flash比較廉價。用戶不能直接運行NAND Flash上的代碼,因此好多使用NANDFlash的開發板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運行啓動代碼。

一般小容量的用NOR Flash,因爲其讀取速度快,多用來存儲操作系統等重要信息,而大容量的用NAND FLASH,最常見的NANDFLASH應用是嵌入式系統採用的DOC(Disk On Chip)和我們通常用的"閃盤",可以在線擦除。目前市面上的FLASH主要來自Intel,AMD,Fujitsu和Mxic,而生產NANDFlash的主要廠家有Samsung和Toshiba及Hynix。


3.存儲器的選擇

RAM主要是做運行時數據存儲器, ,一些變量,都是放到RAM裏的。SRAM、SDRAM都用於程序工作時保存臨時數據和程序,因爲在系統掉電後,保存在其中的數據都會丟失。

由於SRAM接口電路簡單,在小系統中常用, DRAM的接口相對複雜,需要相應的控制器支持,但由於容量大、價格便宜、訪問速度快,所以常用在對內存容量和處理速度要求高的應用場合,在這種場合中,相應的處理器(CPU)都自帶有DRAM控制器。

DRAM是動態存儲器(Dynamic RAM)的縮寫

SDRAM是英文SynchronousDRAM的縮寫,譯成中文就是同步動態存儲器的意思。從技術角度上講,同步動態存儲器(SDRAM)是在現有的標準動態存儲器中加入同步控制邏輯(一個狀態機),利用一個單一的系統時鐘同步所有的地址數據和控制信號。使用SDRAM不但能提高系統表現,還能簡化設計、提供高速的數據傳輸。在功能上,它類似常規的DRAM,且也需時鐘進行刷新。可以說,SDRAM是一種改善了結構的增強型DRAM。

FLASH主要是程序存儲器一些初始化數據比如液晶要顯示的內容界面,都是放到FLASH區裏的(也就是以前說的ROM區),FLASH用於系統中保存長期的數據,如:配置信息,程序等。

EEPROM主要是用以在程序運行保存一些需要掉電不丟失的數據,EEPROM可用可不用,主要是存一些運行中的數據,掉電後且不丟失。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章