【【每天漲姿勢】常用存儲器介紹】http://toutiao.com/group/6358914238753046786/?iid=15906422033&app=explore_article×tamp=1516552714&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share 1 存儲器種類 存儲器是計算機結構的重要組成部分。存儲器是用來存儲程序代碼和數據的部件,有了存儲器計算機才具有記憶功能。 圖1 基本的存儲器種類 存儲器按其存儲介質特性主要分為“易失性存儲器”和“非易失性存儲器”兩大類。其中的“易失/非易失”是指存儲器斷電后,它存儲的數據內容是否會丟失的特性。由于一般易失性存儲器存取速度快,而非易失性存儲器可長期保存數據,它們都在計算機中占據著重要角色。在計算機中易失性存儲器最典型的代表是內存,非易失性存儲器的代表則是硬盤。 2 RAM 存儲器 RAM 是“ Random Access Memory”的縮寫,被譯為隨機存儲器。 所謂“隨機存取”,指的是當存儲器中的消息被讀取或寫入時,所需要的時間與這段信息所在的位置無關。這個詞的由來是因為早期計算機曾使用磁鼓作為存儲器,磁鼓是順序讀寫設備,而 RAM 可隨讀取其內部任意地址的數據,時間都是相同的,因此得名。實際上現在 RAM 已經專門用于指代作為計算機內存的易失性半導體存儲器。根據 RAM 的存儲機制,又分為動態隨機存儲器 DRAM(Dynamic RAM)以及靜態隨機存儲器 SRAM(Static RAM)兩種。 2.1 DRAM 動態隨機存儲器 DRAM 的存儲單元以電容的電荷來表示數據,有電荷代表 1,無電荷代表 0,見圖 2。但時間一長,代表 1 的電容會放電,代表 0 的電容會吸收電荷,因此它需要定期刷新操作,這就是“動態(Dynamic)”一詞所形容的特性。刷新操作會對電容進行檢查,若電量大于滿電量的 1/2,則認為其代表 1,并把電容充滿電; 若電量小于 1/2,則認為其代表 0,并把電容放電,藉此來保證數據的正確性。 圖2 DRAM 存儲單元 1) SDRAM 根據 DRAM 的通訊方式,又分為同步和異步兩種,這兩種方式根據通訊時是否需要使用時鐘信號來區分。 圖 3 是一種利用時鐘進行同步的通訊時序,它在時鐘的上升沿表示有效數據。 圖3 同步通訊時序圖 由于使用時鐘同步的通訊速度更快,所以同步 DRAM 使用更為廣泛,這種 DRAM 被稱為 SDRAM(Synchronous DRAM)。 2) DDR SDRAM 為了進一步提高 SDRAM 的通訊速度,人們設計了 DDR SDRAM 存儲器(Double DataRate SDRAM)。它的存儲特性與 SDRAM 沒有區別,但 SDRAM 只在上升沿表示有效數據,在 1 個時鐘周期內,只能表示 1 個有數據;而 DDR SDRAM 在時鐘的上升沿及下降沿各表示一個數據,也就是說在 1 個時鐘周期內可以表示 2 位數據,在時鐘頻率同樣的情況下,提高了一倍的速度。至于 DDRII 和 DDRIII,它們的通訊方式并沒有區別,主要是通訊同步時鐘的頻率提高了。當前個人計算機常用的內存條是 DDRIII SDRAM 存儲器,在一個內存條上包含多個DDRIII SDRAM 芯片。 2.2 SRAM 靜態隨機存儲器 SRAM 的存儲單元以鎖存器來存儲數據,見圖 23-4。這種電路結構不需要定時刷新充電,就能保持狀態(當然,如果斷電了,數據還是會丟失的),所以這種存儲器被稱為“靜態(Static)” RAM。 圖4 SRAM 存儲單元 同樣地, SRAM 根據其通訊方式也分為同步(SSRAM)和異步 SRAM,相對來說,異步SRAM 用得比較廣泛。 2.3 DRAM 與 SRAM 的應用場合 對比 DRAM 與 SRAM 的結構,可知 DRAM 的結構簡單得多,所以生產相同容量的存儲器, DRAM 的成本要更低,且集成度更高。而 DRAM 中的電容結構則決定了它的存取速度不如 SRAM,特性對比見表1。 表1 DRAM 與 SRAM 對比特性 DRAM SRAM 所以在實際應用場合中, SRAM 一般只用于 CPU 內部的高速緩存(Cache),而外部擴展的內存一般使用 DRAM。在 STM32 系統的控制器中,只有 STM32F429 型號或更高級的芯片才支持擴展 SDRAM,其它型號如 STM32F1、 STM32F2 及 STM32F407 等型號只能擴展 SRAM。 3 非易失性存儲器 非易失性存儲器種類非常多,半導體類的有 ROM 和 FLASH,而其它的則包括光盤、軟盤及機械硬盤。 3.1 ROM 存儲器 ROM 是“ Read Only Memory”的縮寫,意為只能讀的存儲器。由于技術的發展,后來設計出了可以方便寫入數據的 ROM,而這個“ Read Only Memory”的名稱被沿用下來了,現在一般用于指代非易失性半導體存儲器,包括后面介紹的 FLASH 存儲器,有些人也把它歸到 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。 3.2 FLASH 存儲器 FLASH 存儲器又稱為閃存,它也是可重復擦寫的儲器,部分書籍會把 FLASH 存儲器稱為 FLASH ROM,但它的容量一般比 EEPROM 大得多,且在擦除時,一般以多個字節為單位。如有的 FLASH 存儲器以 4096 個字節為扇區,最小的擦除單位為一個扇區。根據存儲單元電路的不同, FLASH 存儲器又分為 NOR FLASH 和 NAND FLASH,見表2。 表2 NOR FLASH 與 NAND FLASH 特性對比特性 NOR FLASH NAND FLASH NOR 與 NAND 的共性是在數據寫入前都需要有擦除操作,而擦除操作一般是以“扇區/塊”為單位的。而 NOR 與 NAND 特性的差別,主要是由于其內部“地址/數據線”是否分開導致的。由于 NOR 的地址線和數據線分開,它可以按“字節”讀寫數據,符合 CPU 的指令譯碼執行要求,所以假如 NOR 上存儲了代碼指令, CPU 給 NOR 一個地址, NOR 就能向CPU 返回一個數據讓 CPU 執行,中間不需要額外的處理操作。而由于 NAND 的數據和地址線共用,只能按“塊”來讀寫數據,假如 NAND 上存儲了代碼指令, CPU 給 NAND 地址后,它無法直接返回該地址的數據,所以不符合指令譯碼要求。 表2 中的最后一項“是否支持 XIP”描述的就是這種立即執行的特性(eXecute InPlace)。若代碼存儲在 NAND 上,可以把它先加載到 RAM 存儲器上,再由 CPU 執行。所以在功能上可以認為 NOR 是一種斷電后數據不丟失的 RAM,但它的擦除單位與 RAM 有區別,且讀寫速度比 RAM 要慢得多。另外, FLASH 的擦除次數都是有限的(現在普遍是 10 萬次左右),當它的使用接近壽命的時候,可能會出現寫操作失敗。由于 NAND 通是整塊擦寫,塊內有一位失效整個塊就會失效,這被稱為壞塊,而且由于擦寫過程復雜,從整體來說 NOR 塊塊更少,壽命更長。由于可能存在壞塊,所以 FLASH 存儲器需要“探測/錯誤更正(EDC/ECC)”算法來確保數據的正確性。由于兩種 FLASH 存儲器特性的差異, NOR FLASH 一般應用在代碼存儲的場合,如嵌入式控制器內部的程序存儲空間。而 NAND FLASH 一般應用在大數據量存儲的場合,包括 SD 卡、 U 盤以及固態硬盤等,都是 NAND FLASH 類型的。 |
|
來自: 山峰云繞 > 《CAN計算機總線IO片選寄存器觸發器》