① 存儲器的原理是什麼
存儲器講述工作原理及作用
介紹
存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。
2.按存取方式分類
(1)隨機存儲器(RAM):如果存儲器中任何存儲單元的內容都能被隨機存取,且存取時間與存儲單元的物理位置無關,則這種存儲器稱為隨機存儲器(RAM)。RAM主要用來存放各種輸入/輸出的程序、數據、中間運算結果以及存放與外界交換的信息和做堆棧用。隨機存儲器主要充當高速緩沖存儲器和主存儲器。
(2)串列訪問存儲器(SAS):如果存儲器只能按某種順序來存取,也就是說,存取時間與存儲單元的物理位置有關,則這種存儲器稱為串列訪問存儲器。串列存儲器又可分為順序存取存儲器(SAM)和直接存取存儲器(DAM)。順序存取存儲器是完全的串列訪問存儲器,如磁帶,信息以順序的方式從存儲介質的始端開始寫入(或讀出);直接存取存儲器是部分串列訪問存儲器,如磁碟存儲器,它介於順序存取和隨機存取之間。
(3)只讀存儲器(ROM):只讀存儲器是一種對其內容只能讀不能寫入的存儲器,即預先一次寫入的存儲器。通常用來存放固定不變的信息。如經常用作微程序控制存儲器。目前已有可重寫的只讀存儲器。常見的有掩模ROM(MROM),可擦除可編程ROM(EPROM),電可擦除可編程ROM(EEPROM).ROM的電路比RAM的簡單、集成度高,成本低,且是一種非易失性存儲器,計算機常把一些管理、監控程序、成熟的用戶程序放在ROM中。
3.按信息的可保存性分類
非永久記憶的存儲器:斷電後信息就消失的存儲器,如半導體讀/寫存儲器RAM。
永久性記憶的存儲器:斷電後仍能保存信息的存儲器,如磁性材料做成的存儲器以及半導體ROM。
4.按在計算機系統中的作用分
根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常採用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。
能力影響
從寫命令轉換到讀命令,在某個時間訪問某個地址,以及刷新數據等操作都要求數據匯流排在一定時間內保持休止狀態,這樣就不能充分利用存儲器通道。此外,寬並行匯流排和DRAM內核預取都經常導致不必要的大數據量存取。在指定的時間段內,存儲器控制器能存取的有用數據稱為有效數據速率,這很大程度上取決於系統的特定應用。有效數據速率隨著時間而變化,常低於峰值數據速率。在某些系統中,有效數據速率可下降到峰值速率的10%以下。
通常,這些系統受益於那些能產生更高有效數據速率的存儲器技術的變化。在CPU方面存在類似的現象,最近幾年諸如AMD和 TRANSMETA等公司已經指出,在測量基於CPU的系統的性能時,時鍾頻率不是唯一的要素。存儲器技術已經很成熟,峰值速率和有效數據速率或許並不比以前匹配的更好。盡管峰值速率依然是存儲器技術最重要的參數之一,但其他結構參數也可以極大地影響存儲器系統的性能。
影響有效數據速率的參數
有幾類影響有效數據速率的參數,其一是導致數據匯流排進入若干周期的停止狀態。在這類參數中,匯流排轉換、行周期時間、CAS延時以及RAS到CAS的延時(tRCD)引發系統結構中的大部分延遲問題。
匯流排轉換本身會在數據通道上產生非常長的停止時間。以GDDR3系統為例,該系統對存儲器的開放頁不斷寫入數據。在這期間,存儲器系統的有效數據速率與其峰值速率相當。不過,假設100個時鍾周期中,存儲器控制器從讀轉換到寫。由於這個轉換需要6個時鍾周期,有效的數據速率下降到峰值速率的 94%。在這100個時鍾周期中,如果存儲器控制器將匯流排從寫轉換到讀的話,將會丟失更多的時鍾周期。這種存儲器技術在從寫轉換到讀時需要15個空閑周期,這會將有效數據速率進一步降低到峰值速率的79%。表1顯示出針幾種高性能存儲器技術類似的計算結果。
顯然,所有的存儲器技術並不相同。需要很多匯流排轉換的系統設計師可以選用諸如XDR、RDRAM或者DDR2這些更高效的技術來提升性能。另一方面,如果系統能將處理事務分組成非常長的讀寫序列,那麼匯流排轉換對有效帶寬的影響最小。不過,其他的增加延遲現象,例如庫(bank)沖突會降低有效帶寬,對性能產生負面影響。
DRAM技術要求庫的頁或行在存取之前開放。一旦開放,在一個最小周期時間,即行周期時間(tRC)結束之前,同一個庫中的不同頁不能開放。對存儲器開放庫的不同頁存取被稱為分頁遺漏,這會導致與任何tRC間隔未滿足部分相關的延遲。對於還沒有開放足夠周期以滿足tRC間隙的庫而言,分頁遺漏被稱為庫沖突。而tRC決定了庫沖突延遲時間的長短,在給定的DRAM上可用的庫數量直接影響庫沖突產生的頻率。
大多數存儲器技術有4個或者8個庫,在數十個時鍾周期具有tRC值。在隨機負載情況下,那些具有8個庫的內核比具有4個庫的內核所發生的庫沖突更少。盡管tRC與庫數量之間的相互影響很復雜,但是其累計影響可用多種方法量化。
存儲器讀事務處理
考慮三種簡單的存儲器讀事務處理情況。第一種情況,存儲器控制器發出每個事務處理,該事務處理與前一個事務處理產生一個庫沖突。控制器必須在打開一個頁和打開後續頁之間等待一個tRC時間,這樣增加了與頁循環相關的最大延遲時間。在這種情況下的有效數據速率很大程度上決定於I/O,並主要受限於DRAM內核電路。最大的庫沖突頻率將有效帶寬削減到當前最高端存儲器技術峰值的20%到30%。
在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決於很多因素,包括tRC和存儲器內核中庫數量之間的相互作用。tRC值越小,開放頁循環地越快,導致庫沖突的損失越小。此外,存儲器技術具有的庫越多,隨機地址存取庫沖突的機率就越小。
第三種情況,每個事務處理就是一次頁命中,在開放頁中定址不同的列地址。控制器不必訪問關閉頁,允許完全利用匯流排,這樣就得到一種理想的情況,即有效數據速率等於峰值速率。
第一種和第三種情況都涉及到簡單的計算,隨機情況受其他的特性影響,這些特性沒有包括在DRAM或者存儲器介面中。存儲器控制器仲裁和排隊會極大地改善庫沖突頻率,因為更有可能出現不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。
然而,增加存儲器隊列深度未必增加不同存儲器技術之間的相對有效數據速率。例如,即使增加存儲器控制隊列深度,XDR的有效數據速率也比 GDDR3高20%。存在這種增量主要是因為XDR具有更高的庫數量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數量以及更大的控制器隊列能產生更高的有效帶寬。
實際上,很多效率限制現象是與行存取粒度相關的問題。tRC約束本質上要求存儲器控制器從新開放的行中存取一定量的數據,以確保數據管線保持充滿。事實上,為保持數據匯流排無中斷地運行,在開放一個行之後,只須讀取很少量的數據,即使不需要額外的數據。
另外一種減少存儲器系統有效帶寬的主要特性被歸類到列存取粒度范疇,它規定了每次讀寫操作必須傳輸的數據量。與之相反,行存取粒度規定每個行激活(一般指每個RAS的CAS操作)需要多少單獨的讀寫操作。列存取粒度對有效數據速率具有不易於量化的巨大影響。因為它規定一個讀或寫操作中需要傳輸的最小數據量,列存取粒度給那些一次只需要很少數據量的系統帶來了問題。例如,一個需要來自兩列各8位元組的16位元組存取粒度系統,必須讀取總共32位元組以存取兩個位置。因為只需要32個位元組中的16個位元組,系統的有效數據速率降低到峰值速率的50%。匯流排帶寬和脈沖時間長度這兩個結構參數規定了存儲器系統的存取粒度。
匯流排帶寬是指連接存儲器控制器和存儲器件之間的數據線數量。它設定最小的存取粒度,因為對於一個指定的存儲器事務處理,每條數據線必須至少傳遞一個數據位。而脈沖時間長度則規定對於指定的事務處理,每條數據線必須傳遞的位數量。每個事務處理中的每條數據線只傳一個數據位的存儲技術,其脈沖時間長度為1。總的列存取粒度很簡單:列存取粒度=匯流排寬度×脈沖時間長度。
很多系統架構僅僅通過增加DRAM器件和存儲匯流排帶寬就能增加存儲系統的可用帶寬。畢竟,如果4個400MHz數據速率的連接可實現 1.6GHz的總峰值帶寬,那麼8個連接將得到3.2GHz。增加一個DRAM器件,電路板上的連線以及ASIC的管腳就會增多,總峰值帶寬相應地倍增。
首要的是,架構師希望完全利用峰值帶寬,這已經達到他們通過物理設計存儲器匯流排所能達到的最大值。具有256位甚或512位存儲匯流排的圖形控制器已並不鮮見,這種控制器需要1,000個,甚至更多的管腳。封裝設計師、ASIC底層規劃工程師以及電路板設計工程師不能找到採用便宜的、商業上可行的方法來對這么多信號進行布線的矽片區域。僅僅增加匯流排寬度來獲得更高的峰值數據速率,會導致因為列存取粒度限制而降低有效帶寬。
假設某個特定存儲技術的脈沖時間長度等於1,對於一個存儲器處理,512位寬系統的存取粒度為512位(或者64位元組)。如果控制器只需要一小段數據,那麼剩下的數據就被浪費掉,這就降低了系統的有效數據速率。例如,只需要存儲系統32位元組數據的控制器將浪費剩餘的32位元組,進而導致有效的數據速率等於50%的峰值速率。這些計算都假定脈沖時間長度為1。隨著存儲器介面數據速率增加的趨勢,大多數新技術的最低脈沖時間長度都大於1。
選擇技巧
存儲器的類型將決定整個嵌入式系統的操作和性能,因此存儲器的選擇是一個非常重要的決策。無論系統是採用電池供電還是由市電供電,應用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數據或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。對於較小的系統,微控制器自帶的存儲器就有可能滿足系統要求,而較大的系統可能要求增加外部存儲器。為嵌入式系統選擇存儲器類型時,需要考慮一些設計參數,包括微控制器的選擇、電壓范圍、電池壽命、讀寫速度、存儲器尺寸、存儲器的特性、擦除/寫入的耐久性以及系統總成本。
選擇存儲器時應遵循的基本原則
1、內部存儲器與外部存儲器
一般情況下,當確定了存儲程序代碼和數據所需要的存儲空間之後,設計工程師將決定是採用內部存儲器還是外部存儲器。通常情況下,內部存儲器的性價比最高但靈活性最低,因此設計工程師必須確定對存儲的需求將來是否會增長,以及是否有某種途徑可以升級到代碼空間更大的微控制器。基於成本考慮,人們通常選擇能滿足應用要求的存儲器容量最小的微控制器,因此在預測代碼規模的時候要必須特別小心,因為代碼規模增大可能要求更換微控制器。目前市場上存在各種規模的外部存儲器器件,我們很容易通過增加存儲器來適應代碼規模的增加。有時這意味著以封裝尺寸相同但容量更大的存儲器替代現有的存儲器,或者在匯流排上增加存儲器。即使微控制器帶有內部存儲器,也可以通過增加外部串列EEPROM或快閃記憶體來滿足系統對非易失性存儲器的需求。
2、引導存儲器
在較大的微控制器系統或基於處理器的系統中,設計工程師可以利用引導代碼進行初始化。應用本身通常決定了是否需要引導代碼,以及是否需要專門的引導存儲器。例如,如果沒有外部的定址匯流排或串列引導介面,通常使用內部存儲器,而不需要專門的引導器件。但在一些沒有內部程序存儲器的系統中,初始化是操作代碼的一部分,因此所有代碼都將駐留在同一個外部程序存儲器中。某些微控制器既有內部存儲器也有外部定址匯流排,在這種情況下,引導代碼將駐留在內部存儲器中,而操作代碼在外部存儲器中。這很可能是最安全的方法,因為改變操作代碼時不會出現意外地修改引導代碼。在所有情況下,引導存儲器都必須是非易失性存儲器。
可以使用任何類型的存儲器來滿足嵌入式系統的要求,但終端應用和總成本要求通常是影響我們做出決策的主要因素。有時,把幾個類型的存儲器結合起來使用能更好地滿足應用系統的要求。例如,一些PDA設計同時使用易失性存儲器和非易失性存儲器作為程序存儲器和數據存儲器。把永久的程序保存在非易失性ROM中,而把由用戶下載的程序和數據存儲在有電池支持的易失性DRAM中。不管選擇哪種存儲器類型,在確定將被用於最終應用系統的存儲器之前,設計工程師必須仔細折中考慮各種設計因素。
② 存儲器中的RAM和ROM的特點
1、RAM的特點
具有隨機存取性,當存儲器中的數據被讀取或寫入時,所需要的時間與這段信息所在的位置或所寫入的位置無關;易失性,當電源關閉時,RAM不能保留數據;對靜電敏感,靜電會干擾存儲器內電容器的電荷,引致數據流失;是所有訪問設備中寫入和讀取速度最快的。
2、ROM的特點
存儲的數據固定不變,其中的數據只能讀出,不能寫入;即使斷電也能夠保留數據,要想在只讀存儲器中存入或改變數據,必須具備特定的條件;集成度高,工藝簡單;體積小、讀取速度快;相對來說,ROM的成本較低。
(2)存儲器被選定後擴展閱讀:
RAM由存儲矩陣、地址解碼器、讀/寫控制器、輸入/輸出、片選控制等幾部分組成。
1、存儲矩陣。RAM的核心部分是一個寄存器矩陣,用來存儲信息。
2、地址解碼器。地址解碼器的作用是將寄存器地址所對應的二進制數譯成有效的行選信號和列選信號,從而選中該存儲單元。
3、讀/寫控制器。訪問RAM時,對被選中的寄存器進行讀操作還是進行寫操作,是通過讀寫信號來進行控制的。讀操作時,被選中單元的數據經數據線、輸入/輸出線傳送給CPU(中央處理單元);寫操作時,CPU將數據經輸入/輸岀線、數據線存入被選中單元。
4、輸入/輸出。RAM通過輸入/輸岀端與計算機的CPU交換數據,讀出時它是輸岀端,寫入時它是輸入端,一線兩用。由讀/寫控制線控制。輸入/輸出端數據線的條數,與一個地址中所對應的寄存器位數相同,也有的RAM晶元的輸入/輸出端是分開的。
5、片選控制。由於受RAM的集成度限制。一台計算機的存儲器系統往往由許多RAM組合而成。CPU訪問存儲器時,一次只能訪問RAM中的某一片。
③ 如何選擇最適用的SRAM存儲器
SRAM具有眾多的架構,各針對一種特定的應用。本文旨在對目前市面上現有的SRAM做全面評述,並簡要說明就某些特定用途而言,哪類SRAM是其最佳選擇。 SRAM從高層次上可以劃分為兩個大類:即同步型和非同步型。同步型SRAM採用一個輸入時鍾來啟動至存儲器的所有事務處理(讀、寫、取消選定等)。而非同步型SRAM則並不具備時鍾輸入,且必須監視輸入以獲取來自控制器的命令。一旦識別出某條命令,這些器件將立即加以執行。 同步SRAM家族分類 與某一特定應用相適應的最佳SRAM的選擇取決於多個因素,其中包括功率限制、帶寬要求、密度以及讀/寫操作模式等。可滿足不同系統要求的同步型和非同步型SRAM多種多樣,本文將逐一加以說明。 各種同步型SRAM比較 同步型SRAM於上個世紀80年代後期首度面市,最初是面向具有極高性能的工作站和伺服器中的第二級(L2)高速緩沖存儲器應用。進入上個世紀90年代中期之後,它又在較為主流的應用(包括個人電腦中的第二級高速緩沖存儲器)中尋覓到了自己的用武之地。自那以後,在包括高性能網路在內的眾多應用的設計中,同步型SRAM大行其道(在這些應用中,它們通常被用於數據緩沖器、高速暫存器、隊列管理功能和統計緩沖器)。 同步型SRAM又可以採用多種不同的架構。下文將對某些「主流」的器件做簡要說明。 1:標准同步型SRAM 標准同步型SRAM是被「主流應用」所接納的第一種同步型SRAM。這些器件雖然主要面向PC L2高速緩沖存儲器應用,但也滲透到了非PC應用領域中,比如網路、電信、數字信號處理(DSP)以及醫療和測試設備。其中,標准同步型SRAM具有兩種基本格式:流水線型和直通型。兩者之間的差異是:直通型SRAM僅在輸入端上具有寄存器,當地址和控制輸入被捕獲且一個讀存取操作被啟動時,數據將被允許「直接流」至輸出端。當用戶對初始延遲的重要性考慮超過對持續帶寬的考究時,人們往往優先採用直通型架構。「流水線型」同步SRAM同時擁有一個輸入寄存器和一個輸出寄存器。流水線型SRAM所提供的工作頻率和帶寬通常高於直通型SRAM。因此,在需求較高寬頻,而對初始延遲不是很敏感時,人們常常優先採用流水線型SRAM。 2:NoBLTM(無匯流排延遲)型SRAM 有些應用不允許「等待狀態」。比如網路應用中「等待狀態」有可能對性能產生嚴重的影響。為解決該問題,賽普拉斯公司推出了無匯流排延遲(NoBL)型SRAM。NoBL型SRAM與標准同步型SRAM很相似,但是擁有附加的片上邏輯電路,旨在完全消除標准同步型SRAM系列所需的「等待狀態」。通過消除這些「等待狀態」,此類SRAM能夠實現100[%]的匯流排利用率(絲毫不受讀/寫模式的影響)。該功能極大地改善了存儲器性能,尤其是當存在頻繁的讀/寫操作變換時。 NoBL型SRAM也存在兩種版本:直通型和流水線型。直通型NoBL SRAM始終具有一個單周期偏移,而NoBL流水線型SRAM則保持了一個雙周期偏移。 3:四倍數據速率(QDRTM)型SRAM 盡管推出了NoBL型架構並使性能較之標准同步型SRAM有所改善,但某些系統對性能有著更高的要求。於是,賽普拉斯、Renesas、IDT、NEC和三星等幾家公司聯合開發出了QDR型SRAM。QDR架構旨在滿足那些要求低延遲且所需帶寬明顯高於NoBL型架構提供能力的「高帶寬需求型」系統的需要。 QDR型SRAM與NoBL型SRAM最為顯著的差異之一是前者的讀埠和寫埠是分開的。這些埠可獨立工作,並支持並行的讀和寫事務處理。QDR型 SRAM能夠以DDR傳輸速率(2倍)來支持兩項同時出現的事務處理,四倍數據速率(QDR)的名稱便是由此得來的。 QDR型SRAM具有兩種基本類型:即2字脈沖串和4字脈沖串。這兩種類型之間的差異在於每項事務處理過程中所支持的脈沖串長度。 4:QDR-II型SRAM QDR- II型SRAM與QDR型SRAM相似,但在性能方面進一步提升。與相同頻率的QDR型器件相比,QDR-II型SRAM所產生的總數據有效窗口面積大了 35[%]左右。另外,QDR-II型SRAM產品還比QDR型器件多了一個半延遲周期。這增加的半個時鍾周期可在對初始延遲影響極小的情況下提供高得多的頻率和帶寬。 5:DDR型SRAM 如果QDR型SRAM面向的是具有平衡讀/寫模式的應用,DDR型SRAM架構則主要針對那些需要進行數據流式傳輸(例如,後隨多項寫操作的多項讀操作)、且所需帶寬遠遠高於標准同步型器件或NoBL型器件的應用。DDR型SRAM具有出眾的整體匯流排利用率以及高得多的總帶寬,性能也因此得到了最大限度的提升。 和QDR型SRAM一樣,DDR型SRAM也有兩種格式:即2字脈沖串和4字脈沖串。究竟選擇哪一種取決於所需的數據顆粒度以及存儲器的數據匯流排寬度。 各種非同步型SRAM比較 第二大類SRAM為非同步型SRAM。那些不具備時鍾輸入的SRAM便是非同步型的。在這些器件中,讀操作和寫操作將在器件接收到指令之後立即被啟動。 採用非同步型SRAM最大的優點之一是它們擁有長達幾十年的使用歷史並已為人們所充分了解。由於非同步型SRAM已經面市很久了,因此許多標准處理器都包含了業已配備非同步型SRAM介面的存儲控制器,從而最大限度地減少了所需的設計工作量。非同步型SRAM的典型存取時間為8ns(或更長)。因此,它們一般應用於時鍾頻率為100MHz(或更低)的系統中。非同步型SRAM可被進一步劃分為兩種主要類別:即快速非同步型SRAM和低功耗非同步型 SRAM(MoBLTM)。 1:快速非同步型SRAM 存取時間為35ns(或更短)的非同步型SRAM可被歸類為「快速」非同步型SRAM。這些存儲器通常應用於老式系統中,且功耗較高(1/2W或更高是司空見慣的)。其典型應用包括老式PC L2高速緩沖存儲器、高速暫存器以及工業應用中的緩沖存儲器。 2:MoBLTM低功耗非同步型SRAM 有些應用(例如行動電話)對功耗的關注程度要超過對性能的關注程度。因此,製造商(比如賽普拉斯公司)推出了功耗極低的SRAM系列。賽普拉斯的 MoBL(意指「更長的電池使用壽命」)低功耗非同步型SRAM產品庫匯集了多款典型存取時間約為40ns(或更長)並專為實現低功耗而優化的器件。典型待機功耗可低至10μW(或更低),而運行功耗則可低至30mW(或更低)。這些器件的存儲密度各異,從64Kb到16Mb一應俱全。 偽SRAM(亦即PSRAM) 如果需要16Mb以上的存儲密度,則PSRAM(或稱偽PSRAM)是一種可行的解決方案。所謂偽SRAM是指一種具有一個DRAM存儲器內核和一個「SRAM型」介面的存儲器件。由於PSRAM使用了一個DRAM內核,因而也需要進行周期性的刷新,以便保存數據。但不同的是,標准DRAM的刷新控制是在器件外部進行的,而PSRAM則具有一個「隱式」刷新電路,這使得它們能夠被容易地用作其他非同步型SRAM的存儲密度升級型器件。 結論 在選擇SRAM時,您會面對眾多的選擇方案。在某些場合,選擇是有限的。許多已經確立了自己穩固地位的處理器都包含了支持特殊SRAM架構的存儲控制器。新型處理器的設計則更靈活。為了決定最佳的可選方案,至關重要的是確定存儲器子系統(即兆比特每秒、初始延遲、運行功耗、待機功耗、成本等等)的優先順序以及系統的工作特性(讀/寫操作模式、工作頻率等等)。 網路應用往往具有接近50/50的讀/寫模式,它適合於採用QDR系列的解決方案。其他應用(甚至是同一個系統內的功能電路)則往往具有不平衡的讀/寫模式,這就適合於採用公共I/O架構,包括標准同步型、NoBL型和DDR型。
④ 存儲器的工作原理是什麼
動態讀寫存貯器(DRAM),以其速度快、集成度高、功耗小、價格低在微型計算機中得到極其廣泛地使用。但動態存儲器同靜態存儲器有不同的工作原理。它是靠內部寄生電容充放電來記憶信息,電容充有電荷為邏輯1,不充電為邏輯0。欲深入了解動態RAM的基本原理請點擊。 動態存儲器有多種系列,如61系列、37系列、41系列、21系列等。圖示為2164晶元的引腳圖。將滑鼠指向相應引腳可看到其對引腳功能。它是一個64K 1bit的DRAM晶元,將8片並接起來,可以構成64KB的動態存儲器。
每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU 首先將行地址加在A0-A7上,而後送出RAS 鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。PC/XT機中DRAM的刷新是利用DMA實現的。首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制 器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。
只讀存貯器(ROM)有多種類型。由於EPROM和EEPROM存貯容量大,可多次擦除後重新對它進行編程而寫入新的內容,使用十分方便。尤其是廠家為用戶提供了單獨地擦除器、編程器或插在各種微型機上的編程卡,大大方便了用戶。因此,這種類型的只讀存貯器得到了極其廣泛的應用。7. RAM的工作時序
為保證存儲器准確無誤地工作,加到存儲器上的地址、數據和控制信號必須遵守幾個時間邊界條件。
圖7.1—3示出了RAM讀出過程的定時關系。讀出操作過程如下:
欲讀出單元的地址加到存儲器的地址輸入端;
加入有效的選片信號CS;
在 線上加高電平,經過一段延時後,所選擇單元的內容出現在I/O端;
讓選片信號CS無效,I/O端呈高阻態,本次讀出過程結束。
由於地址緩沖器、解碼器及輸入/輸出電路存在延時,在地址信號加到存儲器上之後,必須等待一段時間tAA,數據才能穩定地傳輸到數據輸出端,這段時間稱為地址存取時間。如果在RAM的地址輸入端已經有穩定地址的條件下,加入選片信號,從選片信號有效到數據穩定輸出,這段時間間隔記為tACS。顯然在進行存儲器讀操作時,只有在地址和選片信號加入,且分別等待tAA和tACS以後,被讀單元的內容才能穩定地出現在數據輸出端,這兩個條件必須同時滿足。圖中tRC為讀周期,他表示該晶元連續進行兩次讀操作必須的時間間隔。
寫操作的定時波形如圖7.1—4所示。寫操作過程如下:
將欲寫入單元的地址加到存儲器的地址輸入端;
在選片信號CS端加上有效電平,使RAM選通;
將待寫入的數據加到數據輸入端;
在 線上加入低電平,進入寫工作狀態;
使選片信號無效,數據輸入線回到高阻狀態。
由於地址改變時,新地址的穩定需要經過一段時間,如果在這段時間內加入寫控制信號(即 變低),就可能將數據錯誤地寫入其他單元。為防止這種情況出現,在寫控制信號有效前,地址必須穩定一段時間tAS,這段時間稱為地址建立時間。同時在寫信號失效後,地址信號至少還要維持一段寫恢復時間tWR。為了保證速度最慢的存儲器晶元的寫入,寫信號有效的時間不得小於寫脈沖寬度tWP。此外,對於寫入的數據,應在寫信號tDW時間內保持穩定,且在寫信號失效後繼續保持tDH時間。在時序圖中還給出了寫周期tWC,它反應了連續進行兩次寫操作所需要的最小時間間隔。對大多數靜態半導體存儲器來說,讀周期和寫周期是相等的,一般為十幾到幾十ns。
ddr一個時鍾周期內穿2次數據
ddr2一個時鍾周期傳4次
所以相同頻率下ddr2的帶寬是ddr的2倍
⑤ 存儲器的分類及其各自的特點
存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。
存儲器的分類特點及其應用
在嵌入式系統中最常用的存儲器類型分為三類:
1.隨機存取的RAM;
2.只讀的ROM;
3.介於兩者之間的混合存儲器
1.隨機存儲器(Random Access Memory,RAM)
RAM能夠隨時在任一地址讀出或寫入內容。 RAM的優點是讀/寫方便、使用靈活;
RAM的缺點是不能長期保存信息,一旦停電,所存信息就會丟失。 RAM用於二進制信息的臨時存儲或緩沖存儲
2.只讀存儲器(Read-Only Memory,ROM)
ROM中存儲的數據可以被任意讀取,斷電後,ROM中的數據仍保持不變,但不可以寫入數據。
ROM在嵌入式系統中非常有用,常常用來存放系統軟體(如ROM BIOS)、應用程序等不隨時間改變的代碼或數據。
ROM存儲器按發展順序可分為:掩膜ROM、可編程ROM(PROM)和可擦寫可編程ROM(EPROM)。
3. 混合存儲器
混合存儲器既可以隨意讀寫,又可以在斷電後保持設備中的數據不變。混合存儲設備可分為三種:
EEPROM NVRAM FLASH
(1)EEPROM
EEPROM是電可擦寫可編程存儲設備,與EPROM不同的是EEPROM是用電來實現數據的清除,而不是通過紫外線照射實現的。
EEPROM允許用戶以位元組為單位多次用電擦除和改寫內容,而且可以直接在機內進行,不需要專用設備,方便靈活,常用作對數據、參數等經常修改又有掉電保護要求的數據存儲器。
(2) NVRAM
NVRAM通常就是帶有後備電池的SRAM。當電源接通的時候,NVRAM就像任何其他SRAM一樣,但是當電源切斷的時候,NVRAM從電池中獲取足夠的電力以保持其中現存的內容。
NVRAM在嵌入式系統中使用十分普遍,它最大的缺點是價格昂貴,因此,它的應用被限制於存儲僅僅幾百位元組的系統關鍵信息。
(3)Flash
Flash(閃速存儲器,簡稱快閃記憶體)是不需要Vpp電壓信號的EEPROM,一個扇區的位元組可以在瞬間(與單時鍾周期比較是一個非常短的時間)擦除。
Flash比EEPROM優越的方面是,可以同時擦除許多位元組,節省了每次寫數據前擦除的時間,但一旦一個扇區被擦除,必須逐個位元組地寫進去,其寫入時間很長。
存儲器工作原理
這里只介紹動態存儲器(DRAM)的工作原理。
工作原理
動態存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。
存儲器晶元
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。PC/XT機中DRAM的刷新是利用DMA實現的。首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。
⑥ 什麼是存儲器工作原理是什麼
存儲器是現代信息技術中用於保存信息的記憶設備,那麼你對存儲器了解多少呢?以下是由我整理關於什麼是存儲器,希望大家喜歡!
存儲器的簡介
存儲器的主要功能是存儲程序和各種數據,並能在計算機運行過程中高速、自動地完成程序或數據的存取。存儲器是具有“記憶”功能的設備,它採用具有兩種穩定狀態的物理器件來存儲信息。這些器件也稱為記憶元件。在計算機中採用只有兩個數碼“0”和“1”的二進制來表示數據。記憶元件的兩種穩定狀態分別表示為“0”和“1”。日常使用的十進制數必須轉換成等值的二進制數才能存入存儲器中。計算機中處理的各種字元,例如英文字母、運算符號等,也要轉換成二進制代碼才能存儲和操作。
存儲器:存放程序和數據的器件
存儲位:存放一個二進制數位的存儲單元,是存儲器最小的存儲單位,或稱記憶單元
存儲字:一個數(n位二進制位)作為一個整體存入或取出時,稱存儲字
存儲單元:存放一個存儲字的若干個記憶單元組成一個存儲單元
存儲體:大量存儲單元的集合組成存儲體
存儲單元地址:存儲單元的編號
字編址:對存儲單元按字編址
位元組編址:對存儲單元按位元組編址
定址:由地址尋找數據,從對應地址的存儲單元中訪存數據。
以存儲體(大量存儲單元組成的陣列)為核心,加上必要的地址解碼、讀寫控制電路,即為存儲集成電路;再加上必要的I/O介面和一些額外的電路如存取策略管理,則形成存儲晶元,比如手機中常用的存儲晶元。得益於新的IC製造或晶元封裝工藝,現在已經有能力把DRAM和FLASH存儲單元集成在單晶元里。存儲晶元再與控制晶元(負責復雜的存取控制、存儲管理、加密、與其他器件的配合等)及時鍾、電源等必要的組件集成在電路板上構成整機,就是一個存儲產品,如U盤。從存儲單元(晶體管陣列)到存儲集成電路再到存儲設備,都是為了實現信息的存儲,區別是層次的不同。
存儲器的構成
構成存儲器的存儲介質,存儲元,它可存儲一個二進制代碼。由若干個存儲元組成一個存儲單元,然後再由許多存儲單元組成一個存儲器。一個存儲器包含許多存儲單元,每個存儲單元可存放一個位元組(按位元組編址)。每個存儲單元的位置都有一個編號,即地址,一般用十六進製表示。一個存儲器中所有存儲單元可存放數據的總和稱為它的存儲容量。假設一個存儲器的地址碼由20位二進制數(即5位十六進制數)組成,則可表示2的20次方,即1M個存儲單元地址。每個存儲單元存放一個位元組,則該存儲器的存儲容量為1MB。
存儲器的工作原理
這里只介紹動態存儲器(DRAM)的工作原理。
動態存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。PC/XT機中DRAM的刷新是利用DMA實現的。首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。
存儲器的分類
按存儲介質
半導體存儲器:用半導體器件組成的存儲器。
磁表面存儲器:用磁性材料做成的存儲器。
按存儲方式
隨機存儲器:任何存儲單元的內容都能被隨機存取,且存取時間和存儲單元的物理位置無關。
順序存儲器:只能按某種順序來存取,存取時間和存儲單元的物理位置有關。
按讀寫功能
只讀存儲器(ROM):存儲的內容是固定不變的,只能讀出而不能寫入的半導體存儲器。
隨機讀寫存儲器(RAM):既能讀出又能寫入的半導體存儲器。
按信息保存性
非永久記憶的存儲器:斷電後信息即消失的存儲器。
永久記憶性存儲器:斷電後仍能保存信息的存儲器。
按用途
根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。
為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,通常採用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。
用途特點
高速緩沖存儲器Cache 高速存取指令和數據存取速度快,但存儲容量小
主存儲器內存存放計算機運行期間的大量程序和數據存取速度較快,存儲容量不大
外存儲器外存存放系統程序和大型數據文件及資料庫存儲容量大,位成本低
⑦ 簡述SRAM,DRAM型存儲器的工作原理
個人電腦的主要結構:
顯示器
主機板
CPU
(微處理器)
主要儲存器
(記憶體)
擴充卡
電源供應器
光碟機
次要儲存器
(硬碟)
鍵盤
滑鼠
盡管計算機技術自20世紀40年代第一台電子通用計算機誕生以來以來有了令人目眩的飛速發展,但是今天計算機仍然基本上採用的是存儲程序結構,即馮·諾伊曼結構。這個結構實現了實用化的通用計算機。
存儲程序結構間將一台計算機描述成四個主要部分:算術邏輯單元(ALU),控制電路,存儲器,以及輸入輸出設備(I/O)。這些部件通過一組一組的排線連接(特別地,當一組線被用於多種不同意圖的數據傳輸時又被稱為匯流排),並且由一個時鍾來驅動(當然某些其他事件也可能驅動控制電路)。
概念上講,一部計算機的存儲器可以被視為一組「細胞」單元。每一個「細胞」都有一個編號,稱為地址;又都可以存儲一個較小的定長信息。這個信息既可以是指令(告訴計算機去做什麼),也可以是數據(指令的處理對象)。原則上,每一個「細胞」都是可以存儲二者之任一的。
算術邏輯單元(ALU)可以被稱作計算機的大腦。它可以做兩類運算:第一類是算術運算,比如對兩個數字進行加減法。算術運算部件的功能在ALU中是十分有限的,事實上,一些ALU根本不支持電路級的乘法和除法運算(由是使用者只能通過編程進行乘除法運算)。第二類是比較運算,即給定兩個數,ALU對其進行比較以確定哪個更大一些。
輸入輸出系統是計算機從外部世界接收信息和向外部世界反饋運算結果的手段。對於一台標準的個人電腦,輸入設備主要有鍵盤和滑鼠,輸出設備則是顯示器,列印機以及其他許多後文將要討論的可連接到計算機上的I/O設備。
控制系統將以上計算機各部分聯系起來。它的功能是從存儲器和輸入輸出設備中讀取指令和數據,對指令進行解碼,並向ALU交付符合指令要求的正確輸入,告知ALU對這些數據做那些運算並將結果數據返回到何處。控制系統中一個重要組件就是一個用來保持跟蹤當前指令所在地址的計數器。通常這個計數器隨著指令的執行而累加,但有時如果指令指示進行跳轉則不依此規則。
20世紀80年代以來ALU和控制單元(二者合成中央處理器,CPU)逐漸被整合到一塊集成電路上,稱作微處理器。這類計算機的工作模式十分直觀:在一個時鍾周期內,計算機先從存儲器中獲取指令和數據,然後執行指令,存儲數據,再獲取下一條指令。這個過程被反復執行,直至得到一個終止指令。
由控制器解釋,運算器執行的指令集是一個精心定義的數目十分有限的簡單指令集合。一般可以分為四類:1)、數據移動(如:將一個數值從存儲單元A拷貝到存儲單元B)2)、數邏運算(如:計算存儲單元A與存儲單元B之和,結果返回存儲單元C)3)、條件驗證(如:如果存儲單元A內數值為100,則下一條指令地址為存儲單元F)4)、指令序列改易(如:下一條指令地址為存儲單元F)
指令如同數據一樣在計算機內部是以二進制來表示的。比如說,10110000就是一條Intel
x86系列微處理器的拷貝指令代碼。某一個計算機所支持的指令集就是該計算機的機器語言。因此,使用流行的機器語言將會使既成軟體在一台新計算機上運行得更加容易。所以對於那些機型商業化軟體開發的人來說,它們通常只會關注一種或幾種不同的機器語言。
更加強大的小型計算機,大型計算機和伺服器可能會與上述計算機有所不同。它們通常將任務分擔給不同的CPU來執行。今天,微處理器和多核個人電腦也在朝這個方向發展。
超級計算機通常有著與基本的存儲程序計算機顯著區別的體系結構。它們通常由者數以千計的CPU,不過這些設計似乎只對特定任務有用。在各種計算機中,還有一些微控制器採用令程序和數據分離的哈佛架構(Harvard
architecture)。
⑧ 計算機組成原理(三)存儲系統
輔存中的數據要調入主存後才能被CPU訪問
按存儲介質,存儲器可分為磁表面存儲器(磁碟、磁帶)、磁心存儲器半導體存儲器(MOS型存儲器、雙極型存儲器)和光存儲器(光碟)。
隨機存取存儲器(RAM):讀寫任何一個存儲單元所需時間都相同,與存儲單元所在的物理位置無關,如內存條等
順序存取存儲器(SAM):讀寫一個存儲單元所需時間取決於存儲單元所在的物理位置,如磁碟等
直接存取存儲器(DAM):既有隨機存取特性,也有順序存取特性。先直接選取信息所在區域,然後按順序方式存取。如硬碟等
相聯存儲器,即可以按內容訪問的存儲器(CAM)可以按照內容檢索到存儲位置進行讀寫,「快表」就是一種相聯存儲器
讀寫存儲器—即可讀、也可寫(如:磁碟、內存、Cache)
只讀存儲器—只能讀,不能寫(如:實體音樂專輯通常採用CD-ROM,實體電影採用藍光光碟,BIOS通常寫在ROM中)
斷電後,存儲信息消失的存儲器——易失性存儲器(主存、Cache)
斷電後,存儲信息依然保持的存儲器——非易失性存儲器(磁碟、光碟)
信息讀出後,原存儲信息被破壞——破壞性讀出(如DRAM晶元,讀出數據後要進行重寫)
信息讀出後,原存儲信息不被破壞——非破壞性讀出(如SRAM晶元、磁碟、光碟)
存儲器晶元的基本電路如下
封裝後如下圖所示
圖中的每條線都會對應一個金屬引腳,另外還有供電引腳、接地引腳,故可以由此求引腳數目
n位地址對應2 n 個存儲單元
假如有8k×8位的存儲晶元,即
現代計算機通常按位元組編址,即每個位元組對應一個地址
但也支持按位元組定址、按字定址、按半字定址、按雙字定址
(Dynamic Random Access Memory,DRAM)即動態RAM,使用柵極電容存儲信息
(Static Random Access Memory,SRAM)即靜態RAM,使用雙穩態觸發器存儲信息
DRAM用於主存、SRAM用於Cache,兩者都屬於易失性存儲器
簡單模型下需要有 根選通線,而行列地址下僅需 根選通線
ROM晶元具有非易失性,斷電後數據不會丟失
主板上的BIOS晶元(ROM),存儲了「自舉裝入程序」,負責引導裝入操作系統(開機)。邏輯上,主存由 輔存RAM+ROM組成,且二者常統一編址
位擴展的連接方式是將多個存儲晶元的地址端、片選端和讀寫控制端相應並聯,數據端分別引出。
字擴展是指增加存儲器中字的數量,而位數不變。字擴展將晶元的地址線、數據線、讀寫控制線相應並聯,而由片選信號來區分各晶元的地址范圍。
實際上,存儲器往往需要同時擴充字和位。字位同時擴展是指既增加存儲字的數量,又增加存儲字長。
兩個埠對同一主存操作有以下4種情況:
當出現(3)(4)時,置「忙」信號為0,由判斷邏輯決定暫時關閉一個埠(即被延時),未被關閉的埠正常訪問,被關閉的埠延長一個很短的時間段後再訪問。
多體並行存儲器由多體模塊組成。每個模塊都有相同的容量和存取速度,各模塊都有獨立的讀寫控制電路、地址寄存器和數據寄存器。它們既能並行工作,又能交義工作。多體並行存儲器分為高位交叉編址(順序方式)和低位交叉編址(交叉方式)兩種.
①高位交叉編址
②低位交叉編址
採用「流水線」的方式並行存取(宏觀上並行,微觀上串列),連續取n個存儲字耗時可縮短為
宏觀上,一個存儲周期內,m體交叉存儲器可以提供的數據量為單個模塊的m倍。存取周期為T,存取時間/匯流排傳輸周期為r,為了使流水線不間斷,應保證模塊數
單體多字系統的特點是存儲器中只有一個存儲體,每個存儲單元存儲m個字,匯流排寬度也為m個字。一次並行讀出m個字,地址必須順序排列並處於同一存儲單元。
缺點:每次只能同時取m個字,不能單獨取其中某個字;指令和數據在主存內必須是連續存放的
為便於Cache 和主存之間交換信息,Cache 和主存都被劃分為相等的塊,Cache 塊又稱Cache 行,每塊由若干位元組組成。塊的長度稱為塊長(Cache 行長)。由於Cache 的容量遠小於主存的容盤,所以Cache中的塊數要遠少於主存中的塊數,它僅保存主存中最活躍的若干塊的副本。因此 Cache 按照某種策略,預測CPU在未來一段時間內欲訪存的數據,將其裝入Cache.
將某些主存塊復制到Cache中,緩和CPU與主存之間的速度矛盾
CPU欲訪問的信息已在Cache中的比率稱為命中率H。先訪問Cache,若Cache未命中再訪問主存,系統的平均訪問時間t 為
同時訪問Cache和主存,若Cache命中則立即停止訪問主存系統的平均訪問時間t 為
空間局部性:在最近的未來要用到的信息(指令和數據),很可能與現在正在使用的信息在存儲空間上是鄰近的
時間局部性:在最近的未來要用到的信息,很可能是現在正在使用的信息
基於局部性原理,不難想到,可以把CPU目前訪問的地址「周圍」的部分數據放到Cache中
直接映射方式不需要考慮替換演算法,僅全相聯映射和組相聯映射需要考慮
①隨機演算法(RAND):若Cache已滿,則隨機選擇一塊替換。實現簡單,但完全沒考慮局部性原理,命中率低,實際效果很不穩定
②先進先出演算法(FIFO):若Cache已滿,則替換最先被調入Cache的塊。實現簡單,依然沒考慮局部性原理
③近期最少使用演算法(LRU):為每一個Cache塊設置一個「計數器」,用於記錄每個Cache塊已經有多久沒被訪問了。當Cache滿後替換「計數器」最大的.基於「局部性原理」,LRU演算法的實際運行效果優秀,Cache命中率高。
④最不經常使用演算法(LFU):為每一個Cache塊設置一個「計數器」,用於記錄每個Cache塊被訪問過幾次。當Cache滿後替換「計數器」最小的.並沒有很好地遵循局部性原理,因此實際運行效果不如LRU
現代計算機常採用多級Cache,各級Cache之間常採用「全寫法+非寫分配法」;Cache-主存之間常採用「寫回法+寫分配法」
寫回法(write-back):當CPU對Cache寫命中時,只修改Cache的內容,而不立即寫入主存,只有當此塊被換出時才寫回主存。減少了訪存次數,但存在數據不一致的隱患。
全寫法(寫直通法,write-through):當CPU對Cache寫命中時,必須把數據同時寫入Cache和主存,一般使用寫緩沖(write buffer)。使用寫緩沖,CPU寫的速度很快,若寫操作不頻繁,則效果很好。若寫操作很頻繁,可能會因為寫緩沖飽和而發生阻塞訪存次數增加,速度變慢,但更能保證數據一致性
寫分配法(write-allocate):當CPU對Cache寫不命中時,把主存中的塊調入Cache,在Cache中修改。通常搭配寫回法使用。
非寫分配法(not-write-allocate):當CPU對Cache寫不命中時只寫入主存,不調入Cache。搭配全寫法使用。
頁式存儲系統:一個程序(進程)在邏輯上被分為若干個大小相等的「頁面」, 「頁面」大小與「塊」的大小相同 。每個頁面可以離散地放入不同的主存塊中。CPU執行的機器指令中,使用的是「邏輯地址」,因此需要通「頁表」將邏輯地址轉為物理地址。頁表的作用:記錄了每個邏輯頁面存放在哪個主存塊中
邏輯地址(虛地址):程序員視角看到的地址
物理地址(實地址):實際在主存中的地址
快表是一種「相聯存儲器」,可以按內容尋訪,表中存儲的是頁表項的副本;Cache中存儲的是主存塊的副本
地址映射表中每一行都有對應的標記項
主存-輔存:實現虛擬存儲系統,解決了主存容量不夠的問題
Cache-主存:解決了主存與CPU速度不匹配的問題
⑨ 程序數據的關系
程序(program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。為實現預期目的而進行操作的一系列語句和指令。一般分為系統程序和應用程序兩大類。 計算機中的程序在港澳台地區稱為程式。程序就是為使電子計算機執行一個或多個操作,或執行某一任務,按序設計的計算機指令的集合
數據:科學實驗、檢驗、統計等所獲得的和用於科學研究、技術設計、查證、決策等的數值。
在計算機系統中,各種字母、數字元號的組合、語音、圖形、圖像等統稱為數據,數據經過加工後就成為信息。
⑩ 存儲器可分為哪三類
存儲器不僅可以分為三類。因為按照不同的劃分方法,存儲器可分為不同種類。常見的分類方法如下。
一、按存儲介質劃分
1. 半導體存儲器:用半導體器件組成的存儲器。
2. 磁表面存儲器:用磁性材料做成的存儲器。
二、按存儲方式劃分
1. 隨機存儲器:任何存儲單元的內容都能被隨機存取,且存取時間和存儲單元的物理位置無關。
2. 順序存儲器:只能按某種順序來存取,存取時間和存儲單元的物理位置有關。
三、按讀寫功能劃分
1. 只讀存儲器(ROM):存儲的內容是固定不變的,只能讀出而不能寫入的半導體存儲器。
2. 隨機讀寫存儲器(RAM):既能讀出又能寫入的存儲器。
二、選用各種存儲器,一般遵循的選擇如下:
1、內部存儲器與外部存儲器
一般而言,內部存儲器的性價比最高但靈活性最低,因此用戶必須確定對存儲的需求將來是否會增長,以及是否有某種途徑可以升級到代碼空間更大的微控制器。基於成本考慮,用戶通常選擇能滿足應用要求的存儲器容量最小的微控制器。
2、引導存儲器
在較大的微控制器系統或基於處理器的系統中,用戶可以利用引導代碼進行初始化。應用本身通常決定了是否需要引導代碼,以及是否需要專門的引導存儲器。
3、配置存儲器
對於現場可編程門陣列(FPGA)或片上系統(SoC),可以使用存儲器來存儲配置信息。這種存儲器必須是非易失性EPROM、EEPROM或快閃記憶體。大多數情況下,FPGA採用SPI介面,但一些較老的器件仍採用FPGA串列介面。
4、程序存儲器
所有帶處理器的系統都採用程序存儲器,但是用戶必須決定這個存儲器是位於處理器內部還是外部。在做出了這個決策之後,用戶才能進一步確定存儲器的容量和類型。
5、數據存儲器
與程序存儲器類似,數據存儲器可以位於微控制器內部,或者是外部器件,但這兩種情況存在一些差別。有時微控制器內部包含SRAM(易失性)和EEPROM(非易失)兩種數據存儲器,但有時不包含內部EEPROM,在這種情況下,當需要存儲大量數據時,用戶可以選擇外部的串列EEPROM或串列快閃記憶體器件。
6、易失性和非易失性存儲器
存儲器可分成易失性存儲器或者非易失性存儲器,前者在斷電後將丟失數據,而後者在斷電後仍可保持數據。用戶有時將易失性存儲器與後備電池一起使用,使其表現猶如非易失性器件,但這可能比簡單地使用非易失性存儲器更加昂貴。
7、串列存儲器和並行存儲器
對於較大的應用系統,微控制器通常沒有足夠大的內部存儲器。這時必須使用外部存儲器,因為外部定址匯流排通常是並行的,外部的程序存儲器和數據存儲器也將是並行的。
8、EEPROM與快閃記憶體
存儲器技術的成熟使得RAM和ROM之間的界限變得很模糊,如今有一些類型的存儲器(比如EEPROM和快閃記憶體)組合了兩者的特性。這些器件像RAM一樣進行讀寫,並像ROM一樣在斷電時保持數據,它們都可電擦除且可編程,但各自有它們優缺點。
參考資料來源:網路——存儲器