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