挑戰408——組成原理(10)——SRAM與DRAM

半導體隨機存儲器芯片內集成有記憶功能的存儲矩陣,譯碼驅動電路和讀/寫電路等等。
在這裏插入圖片描述
下面介紹幾個重要的概念:
讀寫電路:包括讀出放大器和寫入電路,用來完成讀/寫操作。
地址線:單向輸入,其位數與芯片的容量有關
片選線:確定哪個芯片被選中(用來選擇芯片)
數據線:雙向輸入,其位數與芯片可讀出或者寫入的位數有關,也與芯片容量有關。

存儲容量

通常我們將存儲容量表示爲:
字數 X 位數,比如 64K X8位,其含義爲,以8位構成一個字,一共有64個字。這個概念要相當熟悉,後面理解題目很有用。
下面我們來看一道例題:

一個64K x 8位的存儲器,可以由()個16k x1位的存儲芯片構成?

分析:64K x 8位,說明該存儲器是以8位構成一個字,因此,每讀出一個字,需要選中8片16k x1位的存儲芯片,而一片能表示16k,因此一共需要64/16 = 4片,根據組合的原理,一共需要4x8 = 32片。
在這裏插入圖片描述
從圖中我們可以看出,相當於把32個芯片分成了4組,每組8片(表示8位)。
於是我們得出這樣的結論:
在這裏插入圖片描述

半導體隨機存取器,習慣上多稱爲RAM,按其存儲信息原理不同,可以分爲靜態RAM(SRAM)和動態RAM(DRAM)。

SRAM

SRAM存儲原件所使用的mos管多,佔用硅片面積大,集成度低,但是採用觸發器工作原理存儲信息,因此即使信息讀出之後,它仍然保持原狀,不需要再生,但是電源掉電時,原存有的信息就會消失,因此它屬於易失性存儲器。因爲這個比較的簡單,因此就簡單介紹一下就好:
工作原理:觸發器
優點:

  1. 能長久保存信息
  2. 速度快,工作穩定
  3. 無需刷新
  4. 無需讀後再生

缺點:功耗大,集成度低,價格高。
典型應用:cache

DRAM(這個是重點)

與SDRAM相比,DRAM所用的mos管少,佔硅面積小,因而功耗小,集成度高但是因爲採用了電容存儲電荷的原理來寄存信息,會發生漏電現象,所以要保持狀態不變,需要定時刷新,因爲讀操作會使得狀態發生改變,故需要讀後再生。且速度比SRAM慢。但是由於其功耗小,集成度高,被廣泛應用於計算機中。
典型應用:主存

存儲記憶原理(瞭解)

在這裏插入圖片描述
定義:存“0”:C中沒有電荷,存“1”:C中有電荷
讀入的時候,T中的高電平使得T通導,如果此時C有電荷,那麼數據線就會產生電流,視爲讀出1.否則視爲讀出0
寫入的時候,若爲高電平,則經過T對C充電,充電後有電荷,於是存1,若爲低電平,C經過T時放電,C中沒有電荷,於是存0.

DRAM的刷新

問:爲什麼要對DRAM進行刷新?如何進行刷新?
由於動態存儲器的原理是容存儲電荷的原理,且訪問存儲單元是隨機的,有可能某些存儲單元長期得不到訪問,其存儲單元內原信息就會慢慢消失(原因)。刷新的過程實質上是將原信息讀出,再由刷新放大器形成原信息並重新寫入的再生過程,稱爲讀後再生
下面介紹一下刷新過程中要用到的名詞。

  • 刷新週期:在規定的時間內,對DRAM全部基本單元進行一次刷新(即兩次刷新之間的相隔時間),一般爲ms級別,2ms。
  • 死時間:刷新時,某段時間需要暫停讀寫操作,這段時間由於外界不能對存儲器進行操作,因此稱爲死時間。
  • 存取週期:DRAM完成一次讀寫操作所需要的最短時間
  • 死時間率
    在這裏插入圖片描述

DRAM常見的刷新方式有三種:集中刷新,分散刷新,異步刷新
刷新的過程爲:以行爲單位,讀出一行中全部單元的數據嗎,經過信號放大後,同時寫回。讀出時候一定斷開存儲器的輸出

集中刷新

做法:在刷新週期內,對全部存儲單元集中一段時間進行刷新(逐行進行),此時必須停止讀寫操作。
看看下面的例題:

設對128 x 128矩陣的存儲芯片進行刷新,若存取週期爲0.5us,刷新週期爲2ms,採用集中刷新的方式,那麼對128行集中刷新,一共需要()us?死時間率爲()%?

分析:刷新一遍的時間 = 存取週期 x行數,於是可以求得刷新時間。在刷新時間內,不能進行讀寫操作,因此死時間就是刷新的那段時間,佔用的存取週期數值上等於行數。利用計算公式算出死時間率爲32.%。所以很容易得到:
在這裏插入圖片描述
但是這種做法有個極其不好的缺點:對於經常要進行讀入讀出的程序,要陷入大量的等待時間,CPU的工作效率不高。

分散刷新

做法:對每行存儲單元的刷新分佈到每個存取週期內完成,其中吧機器的存取週期(記爲tc),分成兩個部分,前半段的tm用來記錄讀寫,後半段(tr)用來刷新,即tc = tm +tr。如圖:
在這裏插入圖片描述

若讀寫週期 tc = 0.5us ,那麼存取週期tc = (0.5+0.5)us = 1us
現在沿用上面的題目:

設對128 x 128矩陣的存儲芯片進行刷新,若存取週期爲1us,刷新週期爲2ms,採用分散刷新的方式,那麼對128行分散刷新,一共需要()us?死時間率爲()%?

分析:因爲在讀寫操作之後,立刻刷新,那麼每讀取操作一次,就會刷新一次,刷新128行就需要 1us x 128 = 128 us。由於刷新是在讀寫操作過後直接完成的,所以不存在死時間。也就是死時間率爲0.
缺點:這樣無異於加長了存取週期,會使系統運行速度降低,刷新操作也過於頻繁。

異步刷新

做法:在刷新週期內對所有行各刷新一次,即每隔(刷新週期/總行數)us,刷新一次。這種方式是前面兩種方式的結合,既能縮短死時間,又能充分利用刷新週期,提高刷新頻率。
題目同上:

設對128 x 128矩陣的存儲芯片進行刷新,若存取週期爲0.5us,刷新週期爲2ms,採用異步刷新的方式,那麼對128行異步刷新,一共需要()us?死時間率爲()%?

每隔(2ms/128) = 15.6us刷新一次,每一次刷新,死時間都是存取週期內的時間爲0.5us,對於該行來說,下一次輪到它刷新還是間隔了2ms,所以死時間率爲 1/4000.(2ms 裏面有4000個存取週期)。所以;
1/4000 << 3.2%
若將DRAM的異步刷新安排在CPU對指令的譯碼階段(此階段CPU訪問存儲器),那麼也就不存在死區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章