當前位置:
首頁 > 最新 > SRAM理解的三種境界

SRAM理解的三種境界

有過面試別人的機會,看到簡歷上寫著,有過AMD實習經歷,熟悉CPU和內存。於是我問,那你畫一下SRAM和DRAM的基本cell出來吧,然後簡要說一下工作原理及特點,但是沒能說出來。我想這兩個基本單元畫不出來,不能算熟悉CPU和內存吧,畢竟它們的基本單元就用到了SRAM 和DRAM。

大家都知道,CPU是負責運算和處理的,而存儲器則是負責交換數據的。有人是這麼比喻的(場景是工程師的工作),說CPU就是工程師本人,內存就像是工作台,需要及時處理的東西需要先拿到工作台上才方便處理。那麼硬碟是什麼呢?硬碟就像柜子,存放電子器件儀器用的倉庫,存東西。

存儲器有兩個基本的構成單元,SRAM 和 DRAM,充分理解這兩個概念以及電路原理,對於學習應用CPU構架以及DDR非常有用。DRAM就是動態(Dynamic)隨機存儲器,SRAM是靜態(Static)隨機存儲器。這一動一靜的本質是什麼呢?

先說靜態隨機存儲器,它是利用如D觸發器的結構來完成數據的讀取與寫入的,資料的寫入不需要刷新動作,這樣不需要刷新動作的就成為靜態。同時,這樣使得控制器設計很簡單,存取的速度比DRAM快很多。適合於高速存儲的應用場景比如CPU的cache緩存。

理解了靜態隨機存儲器之後,動態隨機存儲器就好理解了。動態就是指利用電容的充放電來實現資料的寫入與讀取動作,因為電容會慢慢放電,如果放電到閾值以下,數據可能就會丟失了,因此需要每隔一段時間來做刷新的動作,以保持資料的完整性。最常見的就是手機和電腦的內存了。

第一層認識:一個D觸發器構成最簡單 SRAM

首先,可以從最基礎數字電路開始。有一個很基本但是深刻且直接的認識:SRAM cell最簡單的構成單元就是一個D觸發器,如下圖所示,D觸發器是數字電路系統裡面的一個基本單元。

1 bit的SRAM單元的核心電路就是一個D觸發器。當有power存在的時候,因為D觸發器的特性,數據可以保存,不需要刷新。觸發器是具有記憶功能的,具有兩個穩定的信息存儲狀態。D觸發器的特性方程是:Q(n+1)=D;也就是記憶前一個狀態,可以從RS觸發器出發,寫一下真值表,推算就很好理解了。波形圖如下所示:

第二層認識:4個單管構成的SRAM

然後,可以用基本晶體管層面來搭建一個簡單的SRAM單元,僅僅由4個NMOS管和兩個電阻構成的。

【電路詳細分析】

SRAM的整個單元具有對稱性。其中除了Q1和Q2的部分,是用來鎖存1位數字信號。Q1,Q2是傳輸管,它們在對存儲器進行讀/寫操作時完成將存儲單元與外圍電路進行連接或斷開的作用。

對單元的存取通過字線WL(Word Line)使能,字線WL為高電平時傳輸管導通,使存儲單元的內容傳遞到位線BL(Bit Line),單元信息的反信號傳遞到位線BL#,外圍電路通過BL和BL#讀取信息。

寫操作時,SRAM單元陣列的外圍電路將電壓傳遞到BL和BL#上作為輸入,字線WL使能後,信息寫入存儲單元。

第三層認識:6管單管構成的SRAM

最後,可以從IC的製造層面來看。其實,大部分與第二層差不多,只是M2與M4用PMOS代替。SRAM中的每一bit存儲在由四個場效應管(M1, M2, M3, M4)構成兩個交叉耦合的反相器中。另外兩個場效應管(M5,M6)是存儲基本單元到用於讀寫位線(Bit Line)的控制開關。

一個SRAM基本單元有0和1兩個電平穩定狀態。SRAM 基本單元由兩個CMOS反相器組成。兩個反相器的輸入、輸出交叉連接,即第一個反相器的輸出連接第二個反相器的輸入,第二個反相器的輸出連接第一個反相器的輸入。這就能實現兩個反相器的輸出狀態的鎖定、保存,即存儲了一個位元的狀態。分析簡圖:

【詳細的電路分析】

SRAM的基本單元存在三種狀態:standby(空閑),read(讀)和write(寫)。

第一種狀態:standby

如果WL沒有選為高電平,那麼M5和M6兩個作為控制用的晶體管處於斷路狀態,也就是基本單元與位線BL隔離。而M1-M4組成的兩個反相器繼續保持其狀態。

第二種狀態:read

首先,假設存儲的內容為1,也就是Q處為高電平。讀周期初始,兩根位線BL, BL#預充值為高電平,因為讀寫狀態時,WL也會為高電平,使得讓作為控制開關的兩個晶體管M5, M6導通。

然後,讓Q的值傳遞給位線BL只到預充的電位,同時泄放掉BL#預充的電。具體來說,利用M1和M5的通路直接連到低電平使其值為低電平,即BL#為低;另一方面,在BL一側,M4和M6導通,把BL直接拉高。

第三種狀態:write

寫周期開始,首先把要寫入的狀態載入到位線BL,假設要寫入0,那麼就設置BL為0且BL#為1。然後,WL設置為高電平,如此,位線的狀態就被載入SRAM的基本單元了。具體分析過程,可以自己畫一下。

來源:麵包板博客——啟芯博主

快來加入新的麵包板博客平台寫博文吧!從點滴做起,菜鳥也能變大神,打造您的電子人脈社交圈!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 麵包板社區 的精彩文章:

都是IO弱上拉惹的禍
從筆記本主板經典電路說MOS管應用

TAG:麵包板社區 |

您可能感興趣

理解MySQL架構
深入理解HTTPS原理、過程
理解下HTTPS的原理及流程了
深入理解 ES Modules
JSONP淺顯理解
深入理解JVM—JVM內存模型
從技術層面理解小程序和APP的區別
何愷明CVPR演講:深入理解ResNet和視覺識別的表示學習
ES6之類class的原理解析
深入理解 RPC:基於 Python 自建分散式高並發 RPC 服務
深度理解PLC的工作原理
何愷明CVPR演講:深入理解ResNet和視覺識別的表示學習(41 PPT)
科技小白如何理解VR/AR
通過一個PyTorch項目理解遷移學習
AA制下的婚姻高牆——AA制婚姻的心理解析
談AI隱私泄露問題:理解AI,AI「理解」人類同樣重要
從消費者心理,理解CMF在產品設計的角色【Henry專欄 vol.3】
ctDNA可靠性又遭質疑?一文助你真正理解ASCO&CAP聯合綜述
一文解構PyTorch:40頁PPT理解內部機制
UNC&Adobe提出模塊化注意力模型MAttNet,解決指示表達的理解問題