服務(wù)熱線: 0755-83261303
郵箱:ht@htsemi.com
地址:深圳市龍華區(qū)大浪街道浪口社區(qū)華昌路315號華昌工業(yè)園
MCU中有多少種存儲器
MCU 中內(nèi)部存儲器的數(shù)量取決于存儲器的分類方式。主要有兩種存儲器:隨機(jī)存取存儲器(RAM)和只讀存儲器(ROM)。但是,根據(jù)內(nèi)存性能不同,RAM 和 ROM 有不同的類型。這些不同類型的存儲器可用于各種功能,例如高速緩存、主存儲器、程序存儲器等。另一方面,存在內(nèi)存的虛擬與物理定義的問題。
RAM 的兩種主要類型是靜態(tài)隨機(jī)存取存儲器 (SRAM) 和動態(tài)隨機(jī)存取存儲器 (DRAM)。兩者都需要施加電壓來保存它們的信息。DRAM 很簡單,基本實(shí)現(xiàn)只需要一個晶體管和一個電容器。DRAM是所有內(nèi)存技術(shù)中使用最廣泛的一種。當(dāng)集成到 MCU 中時(shí),它被稱為嵌入式 DRAM (eDRAM)。與用作外部存儲器的等效獨(dú)立 DRAM 芯片相比,eDRAM 的每比特成本更高。盡管如此,將 eDRAM 放置在與處理器相同的芯片上的性能優(yōu)勢仍超過了高性能應(yīng)用中的成本劣勢。
SRAM 比 eDRAM 更復(fù)雜,通常由六個晶體管實(shí)現(xiàn)。 SRAM 比 DRAM 更快,因此非常適合集成到 MCU 中。它是最常用的內(nèi)部 MCU 內(nèi)存技術(shù)之一。 SRAM 通常用作高速緩存和處理器寄存器。
MCU 中的非易失性存儲器包括閃存和電可擦可編程 ROM (EEPROM)。閃存是 EEPROM 的一種形式。它們之間的主要區(qū)別在于它們的管理方式; Flash 在塊級別進(jìn)行管理(寫入或擦除),而 EEPROM 可以在字節(jié)級別進(jìn)行管理。閃存可用于 NAND 和 NOR 架構(gòu)。 NAND 閃存以塊為單位處理數(shù)據(jù),讀取速度快于寫入速度。它可以快速傳輸多頁數(shù)據(jù)。它提供比 NOR 更高的單位面積容量,用于高密度存儲。NOR Flash支持更細(xì)粒度的操作,并提供高速隨機(jī)訪問。NOR Flash可以讀寫特定的數(shù)據(jù)。
Fujio Masuoka 在 1980 年代在東芝工作時(shí)發(fā)明了閃存。他的同事 Shoji Ariizumi 使用 Flash 一詞來描述新技術(shù),因?yàn)椴脸袛?shù)據(jù)讓他想起了相機(jī)的 Flash。易失性和非易失性存儲器技術(shù)可以根據(jù)幾個性能標(biāo)準(zhǔn)進(jìn)行比較:
速度:易失性內(nèi)存通常更快
成本:易失性內(nèi)存成本更低
壽命:易失性存儲器的壽命更長。非易失性存儲器由于其重寫能力而具有有限的壽命。
能耗:DRAM等易失性存儲器需要重復(fù)數(shù)據(jù)刷新,這會消耗額外的功率。非易失性存儲器通常消耗較少的功率。
表 1:多種類型的 RAM 和 ROM 存儲器提供特定的性能權(quán)衡。(來源:東芝)
內(nèi)存層次結(jié)構(gòu)
高速緩存是 MCU 中的關(guān)鍵系統(tǒng)。有兩種方法可以對高速緩存進(jìn)行分類:層次結(jié)構(gòu)或功能。當(dāng)按照層次結(jié)構(gòu)進(jìn)行描述時(shí),最多可以有 4 級高速緩存。高速緩存由快速存儲器組成,例如 SRAM 和 eDRAM,以補(bǔ)償主 Flash 存儲器較慢的訪問時(shí)間。 1 級高速緩存是一小塊內(nèi)存,可以與 CPU 一樣快地運(yùn)行以支持最大處理速度。 2 級和 3 級緩存支持 1 級緩存。它們比 1 級緩存更大、但是慢一些,不過依然比主內(nèi)存快(圖 1)。
圖 1:處理器和主存儲器之間的高速緩存集,以提供支持高效處理器操作所需的更快訪問時(shí)間。
在性能和大小方面,eDRAM 位于內(nèi)存總線上的 3 級緩存和傳統(tǒng) DRAM 之間,用作 4 級緩存。與 SRAM 相比,更高密度的 eDRAM 可以支持更寬的總線和更高的運(yùn)行速度。與 SRAM 相比,更大量的 eDRAM 可以集成到更小的區(qū)域中。制造 eDRAM 比 SRAM 更復(fù)雜,但是當(dāng)需要大量內(nèi)存時(shí),eDRAM 節(jié)省的 3 倍面積可以抵消制造成本。
對于任何給定級別的高速緩存,所有塊都具有相同的大小和關(guān)聯(lián)性。像 1 級緩存這樣的較低級別具有更少且更快的塊。隨著級別增加到 2 和 3,緩存內(nèi)存的塊數(shù)越來越多,塊大小越來越大,而且一組中的塊也越來越多。但是每一級高速緩存都比主存快得多。除了主緩存外,特殊類型用于特定功能。示例包括:
管道緩存。例如,在 RISC MCU 中,流水線 CPU 從流水線中的多個點(diǎn)訪問內(nèi)存,包括數(shù)據(jù)提取、指令提取和虛擬到物理地址轉(zhuǎn)換。管道使用三個專用緩存:數(shù)據(jù)、指令和轉(zhuǎn)換緩沖區(qū) (TLB)。
犧牲緩存。已從 CPU 緩存中替換和刪除的數(shù)據(jù)塊保存在犧牲緩存中。犧牲緩存設(shè)置在主緩存和重新填充路徑之間。它是完全關(guān)聯(lián)的,旨在減少可以從高度關(guān)聯(lián)映射中受益程序的沖突未命中次數(shù)。在一些實(shí)現(xiàn)中,4 級緩存可以用作犧牲緩存。
微操作緩存。該高速緩存存儲從指令高速緩存或指令解碼器接收到的已解碼指令的微操作。它可以加快處理速度。當(dāng)指令需要解碼以查看其解碼形式是否已經(jīng)可用時(shí),檢查微操作緩存。如果它在微操作緩存中不可用,則該指令將被解碼并緩存以供將來使用。
內(nèi)存組織和 MCU 架構(gòu)
不同的 MCU 類型,例如 AVR 和 ARM 架構(gòu),使用不同的方式來組織內(nèi)存。基于哈佛的 AVR 架構(gòu)將內(nèi)存拆分成閃存、內(nèi)部和外部 DRAM 以及 EEPROM(圖 2)。因此,使用這些 MCU 的系統(tǒng)將內(nèi)存組織成特定的部分,包括:
文本部分包含加載到閃存中的指令;數(shù)據(jù)部分包含已初始化的變量,BSS 包含未初始化的數(shù)據(jù),堆棧包含函數(shù)和中斷的數(shù)據(jù),堆包含運(yùn)行時(shí)創(chuàng)建的變量。
圖 2:在基于哈佛的 AVR 微控制器中,存儲器分為閃存(左)、內(nèi)部和外部 DRAM(中)和 EEPROM(右)。
在 ARM MCU 中,內(nèi)存映射與 32 位、36 位和 40 位的不同地址配置一起使用,具體取決于系統(tǒng)地址空間和額外 DRAM 的要求。內(nèi)存管理單元 (MMU) 控制內(nèi)存訪問指令,這些指令可用于高級代碼以管理中斷模塊和集成外設(shè)。
MMU 的主要目的是使處理器能夠在虛擬內(nèi)存空間中獨(dú)立運(yùn)行多個任務(wù)。 MMU 使用轉(zhuǎn)換表來橋接虛擬和物理內(nèi)存地址。虛擬地址通過帶有內(nèi)存指令的軟件進(jìn)行管理。物理地址根據(jù)虛擬地址給出的轉(zhuǎn)換表輸入進(jìn)行控制(圖 3)。
圖 3:在混合 ARM 處理器中,轉(zhuǎn)換表在虛擬內(nèi)存和物理內(nèi)存之間進(jìn)行映射。 (圖片:阿杜諾)
MMU 是一個專門的內(nèi)存單元,包括從內(nèi)存中讀取翻譯表的單元和緩存最近使用的翻譯的 TLB。 CPU 軟件中的所有內(nèi)存地址都是虛擬的。 MMU 檢查 TLB 是否有最近緩存的翻譯。如果不存在,table walk 單元從內(nèi)存中讀取適當(dāng)?shù)谋項(xiàng)l目。
總結(jié)
MCU 包括各種形式的 RAM 和 ROM,以支持特定的性能要求。 MCU 中最常見的存儲器形式包括 eDRAM 和 SRAM 易失性存儲器以及閃存和 EEPROM 非易失性存儲器。 Flash 和 EEPROM 一般用于主存儲器,而 eDRAM 和 SRAM 用于各種高速緩存功能。此外,MCU 存儲器基于虛擬和物理地址和功能進(jìn)行組織,并通過 MMU 進(jìn)行管理。
編輯:冀凱 引用地址:http://news.eeworld.com.cn/mcu/ic624851.html