當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 嵌入式系統(tǒng)存儲器
存儲器概述:
存儲器(Memory)是現(xiàn)代信息技術(shù)中用于保存信息的記憶設(shè)備。其概念很廣,有很多層次,在數(shù)字系統(tǒng)中,只要能保存二進(jìn)制數(shù)據(jù)的都可以是存儲器;在集成電路中,一個(gè)沒有實(shí)物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統(tǒng)中,具有實(shí)物形式的存儲設(shè)備也叫存儲器,如內(nèi)存條、TF卡等。計(jì)算機(jī)中全部信息,包括輸入的原始數(shù)據(jù)、計(jì)算機(jī)程序、中間運(yùn)行結(jié)果和終運(yùn)行結(jié)果都保存在存儲器中。它根據(jù)控制器指定的位置存入和取出信息。有了存儲器,計(jì)算機(jī)才有記憶功能,才能保證正常工作。計(jì)算機(jī)中的存儲器按用途存儲器可分為主存儲器(內(nèi)存)和輔助存儲器(外存),也有分為外部存儲器和內(nèi)部存儲器的分類方法。外存通常是磁性介質(zhì)或光盤等,能長期保存信息。內(nèi)存指主板上的存儲部件,用來存放當(dāng)前正在執(zhí)行的數(shù)據(jù)和程序,但僅用于暫時(shí)存放程序和數(shù)據(jù),關(guān)閉電源或斷電,數(shù)據(jù)會(huì)丟失。
存儲器簡介:
存儲器的主要功能是存儲程序和各種數(shù)據(jù),并能在計(jì)算機(jī)運(yùn)行過程中高速、自動(dòng)地完成程序或數(shù)據(jù)的存取。存儲器是具有“記憶”功能的設(shè)備,它采用具有兩種穩(wěn)定狀態(tài)的物理器件來存儲信息。這些器件也稱為記憶元件。在計(jì)算機(jī)中采用只有兩個(gè)數(shù)碼“0”和“1”的二進(jìn)制來表示數(shù)據(jù)。記憶元件的兩種穩(wěn)定狀態(tài)分別表示為“0”和“1”。日常使用的十進(jìn)制數(shù)必須轉(zhuǎn)換成等值的二進(jìn)制才能存入存儲器中。計(jì)算機(jī)中處理的各種字符,例如英文字母、運(yùn)算符號等,也要轉(zhuǎn)換成二進(jìn)制碼才能存儲和操作。
存儲器:存放程序和數(shù)據(jù)的器件
存儲位:存放一個(gè)二進(jìn)制數(shù)位的存儲單元,是存儲器小的存儲單位,或稱記憶單元
存儲字:一個(gè)數(shù)(n位二進(jìn)制位)作為一個(gè)整體存入或取出時(shí),稱存儲字
存儲單元:存放一個(gè)存儲字的若干個(gè)記憶單元組成一個(gè)存儲單元
存儲體:大量存儲單元的集合組成存儲體
存儲單元地址:存儲單元的編號
字編址:對存儲單元按字編址
字節(jié)編址:對存儲單元按字節(jié)編址
尋址:由地址尋找數(shù)據(jù),從對應(yīng)地址的存儲單元中訪存數(shù)據(jù)。
以存儲體(大量存儲單元組成的陣列)為核心,加上必要的地址譯碼、讀寫控制電路,即為存儲集成電路;再加上必要的I/O接口和一些額外的電路如存取策略管理,則形成存儲芯片,比如手機(jī)中常用的存儲芯片。得益于新的IC制造或芯片封裝工藝,現(xiàn)在已經(jīng)有能力把DRAM和FLASH存儲單元集成在單芯片里。存儲芯片再與控制芯片(負(fù)責(zé)復(fù)雜的存取控制、存儲管理、加密、與其他器件的配合等)及時(shí)鐘、電源等必要的組件集成在電路板上構(gòu)成整機(jī),就是一個(gè)存儲產(chǎn)品,如U盤。從存儲單元(晶體管陣列)到存儲集成電路再到存儲設(shè)備,都是為了實(shí)現(xiàn)信息的存儲,區(qū)別是層次的不同。
存儲器構(gòu)成:
構(gòu)成存儲器的存儲介質(zhì),存儲元,它可存儲一個(gè)二進(jìn)制代碼。由若干個(gè)存儲元組成一個(gè)存儲單元,然后再由許多存儲單元組成一個(gè)存儲器。一個(gè)存儲器包含許多存儲單元,每個(gè)存儲單元可存放一個(gè)字節(jié)(按字節(jié)編址)。每個(gè)存儲單元的位置都有一個(gè)編號,即地址,一般用十六進(jìn)制表示。一個(gè)存儲器中所有地址碼存儲單元可存放數(shù)據(jù)的總和稱為它的存儲容量。假設(shè)一個(gè)存儲器的由20位二進(jìn)制數(shù)(即5位十六進(jìn)制)組成,則可表示2的20次方,即1M個(gè)存儲單元地址。每個(gè)存儲單元存放一個(gè)字節(jié),則該存儲器的存儲容量為1MB。
存儲器工作原理:
這里只介紹動(dòng)態(tài)存儲器(DRAM)的工作原理。
動(dòng)態(tài)存儲器每片只有一條輸入數(shù)據(jù)線,而地址引腳只有8條。為了形成64K地址,必須在系統(tǒng)地址總線和芯片地址引線之間專門設(shè)計(jì)一個(gè)地址形成電路。使系統(tǒng)地址總線信號能分時(shí)地加到8個(gè)地址的引腳上,借助芯片內(nèi)部的行鎖存器、列鎖存器和譯碼電路選定芯片內(nèi)的存儲單元,鎖存信號也靠著外部地址電路產(chǎn)生
當(dāng)要從DRAM芯片中讀出數(shù)據(jù)時(shí),CPU首先將行地址加在A0-A7上,而后送出RAS鎖存信號,該信號的下降沿將地址鎖存在芯片內(nèi)部。接著將列地址加到芯片的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在芯片內(nèi)部。然后保持WE=1,則在CAS有效期間數(shù)據(jù)輸出并保持,當(dāng)需要把數(shù)據(jù)寫入芯片時(shí),行列地址先后將R存儲器芯片 AS和CAS鎖存在芯片內(nèi)部,然后,WE有效,加上要寫入的數(shù)據(jù),則將該數(shù)據(jù)寫入選中的存貯單元。
由于電容不可能長期保持電荷不變,必須定時(shí)對動(dòng)態(tài)存儲電路的各存儲單元執(zhí)行重讀操作,以保持電荷穩(wěn)定,這個(gè)過程稱為動(dòng)態(tài)存儲器刷新。PC/XT機(jī)中DRAM的刷新是利用DMA實(shí)現(xiàn)的。首先應(yīng)用可編程定時(shí)器8253的計(jì)數(shù)器1,每隔1⒌12μs產(chǎn)生一次DMA請求,該請求加在DMA控制器的0通道上。當(dāng)DMA控制器0通道的請求得到響應(yīng)時(shí),DMA控制器送出到刷新地址信號,對動(dòng)態(tài)存儲器執(zhí)行讀操作,每讀一次刷新一行
存儲器的分類:
按存貯介質(zhì)
半導(dǎo)體存儲器:用半導(dǎo)體器件組成的存儲器
磁表面存儲器:用磁性材料做成的存儲器
按存儲方式
隨機(jī)存儲器:任何存儲單元的內(nèi)容都能被隨機(jī)存儲,且存取時(shí)間和存儲單元的物理位置無關(guān)。
順序存儲器:只能按照某種順序來存取,存取時(shí)間和存儲單元的物理位置有
按讀寫功能
只讀存儲器:存儲的內(nèi)容是固定不變的,只能讀出而不能寫入的半導(dǎo)體存
隨機(jī)讀寫存儲器:既能讀出又能寫入的半導(dǎo)體存儲器。
按信息保存性
非永久記憶的存儲器:斷電后信息即消失的存儲器。
永久記憶的存儲器:斷電后仍能保存信息的存儲器。
按用途
根據(jù)存儲器在計(jì)算機(jī)系統(tǒng)中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,通常采用多級存儲器體系結(jié)構(gòu),即使用高速緩沖存儲器、主存儲器和外存儲器。
存儲器用途特點(diǎn):
高速緩存器:cache高速存取指令和數(shù)據(jù),存取速度快,但存儲容量小
主存儲器:內(nèi)存存放計(jì)算機(jī)運(yùn)行期間的大量程序和數(shù)據(jù),存取速度較快,存儲容量不大。
外存儲器:外存存放系統(tǒng)程序和大型數(shù)據(jù)文件及數(shù)據(jù)庫,存儲容量大,位成本低
存儲器原理分類:
按照與CPU的接近程度,存儲器分為內(nèi)存儲器與外存儲器,簡稱內(nèi)存與外存。內(nèi)存儲器又常稱為主存儲器(簡稱主存),屬于主機(jī)的組成部分;外存儲器又常稱為輔助存儲器(簡稱輔存),屬于外部設(shè)備。CPU不能像訪問內(nèi)存那樣,直接訪問外存,外存要與CPU或I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸,必須通過內(nèi)存進(jìn)行。在80386以上的高檔微機(jī)中,還配置了高速緩沖存儲器(cache),這時(shí)內(nèi)存包括主存與高速緩存器兩部分。對于低檔微機(jī),主存即為內(nèi)存。
把存儲器分為幾個(gè)層次主要基于下述原因:
1、合理解決速度與成本的矛盾,以得到較高的性能價(jià)格比。半導(dǎo)體存儲器速度快,但價(jià)格高,容量不宜做得很大,因此僅用作與CPU頻繁交流信息的內(nèi)存儲器。磁盤存儲器價(jià)格較便宜,可以把容量做得很大,但存取速度較慢,因此用作存取次數(shù)較少,且需存放大量程序、原始數(shù)據(jù)(許多程序和數(shù)據(jù)是暫時(shí)不參加運(yùn)算的)和運(yùn)行結(jié)果的外存儲器。計(jì)算機(jī)在執(zhí)行某項(xiàng)任務(wù)時(shí),僅將與此有關(guān)的程序和原始數(shù)據(jù)從磁盤上調(diào)入容量較小的內(nèi)存,通過CPU與內(nèi)存進(jìn)行高速的數(shù)據(jù)處理,然后將終結(jié)果通過內(nèi)存再寫入磁盤。這樣的配置價(jià)格適中,綜合存取速度則較快。
為解決高速的CPU與速度相對較慢的主存的矛盾,還可使用高速緩存。它采用速度很快、價(jià)格更高的半導(dǎo)體靜態(tài)存儲器,甚至與微處理器做在一起,存放當(dāng)前使用頻繁的指令和數(shù)據(jù)。當(dāng)CPU從內(nèi)存中讀取指令與數(shù)據(jù)時(shí),將同時(shí)訪問高速緩存與主存。如果所需內(nèi)容在高速緩存中,就能立即獲取;如沒有,再從主存中讀取。高速緩存中的內(nèi)容是根據(jù)實(shí)際情況及時(shí)更換的。這樣,通過增加少量成本即可獲得很高的速度。
2 使用磁盤作為外存,不僅價(jià)格便宜,可以把存儲容量做得很大,而且在斷電時(shí)它所存放的信息也不丟失,可以長久保存,且復(fù)制、攜帶都很方便
存儲器的選用:
存儲器的類型將決定整個(gè)嵌入式系統(tǒng)的操作和性能,因此存儲器的選擇是一個(gè)非常重要的決策。無論系統(tǒng)是采用電池供電還是由市電供電,應(yīng)用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數(shù)據(jù)或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。對于較小的系統(tǒng),微控制器自帶的存儲器就有可能滿足系統(tǒng)要求,而較大的系統(tǒng)可能要求增加外部存儲器。為嵌入式系統(tǒng)選擇存儲器類型時(shí),需要考慮一些設(shè)計(jì)參數(shù),包括微控制器的選擇、電壓范圍、電池壽命、讀寫速度、存儲器尺寸、存儲器的特性、擦除/寫入的耐久性以及系統(tǒng)總成本
ARM的存儲器體系結(jié)構(gòu):
三級存儲結(jié)構(gòu):按照與CPU的接近程度分為:第一級:寄存器組、cache 第二級:主存儲器 第三級:輔助存儲器
寄存器組:是封裝在CPU內(nèi)部,用于存放運(yùn)算器運(yùn)算的操作數(shù)和結(jié)果值的存儲介質(zhì)。ARM有37個(gè)32位長的寄存器,cortex體系結(jié)構(gòu)下有40個(gè)32位長的寄存器
Cache:高速緩存器,CPU可以直接訪問,用來存放當(dāng)前正在執(zhí)行的程序中的活躍部分,以便快速地向CPU提出指令和數(shù)據(jù)。
主存儲器:可由CPU直接訪問,用來存放當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)。
輔助存儲器:設(shè)置在主機(jī)外部,CPU不能直接訪問,用來存放戰(zhàn)時(shí)不參與運(yùn)行的程序和數(shù)據(jù),需要時(shí)再傳送到主存