[攻克存儲] 存儲芯片的寫屏蔽及擴展

 在上一篇文章《 [攻克存儲] SRAM地址線的連接 》中,我們講述了主控芯片(ARM)與 SRAM 的地址線如何連接的問題,關於存儲芯片的寫尋址過程以及存儲芯片的擴展並沒有涉及,本文着重描述這方面的知識點和需要注意的問題。

    首先,我們還是看一個電路圖:

    

   由上一篇文章我們知道,這是ARM芯片與16位數據位寬的SRAM存儲芯片的典型連接圖,ARM芯片只需給出要訪問的高16位地址,數據總線上則會出現兩個字節的數據,供ARM讀取,然後ARM根據A0的值來決定訪問高字節還是低字節。
 
   這只是存儲芯片的讀數據時的訪問過程,在讀數據過程中,存儲芯片不需要知道ARM在某個時刻訪問的是高字節還是低字節,只需要把指定地址空間處的16位數據送到數據總線即可。但是,對於寫過程,就不是這麼簡單了。
 
   顯然,對於向存儲芯片中寫數據的情況,存儲芯片是需要知道當前ARM芯片到底是寫的是低字節,還是高字節,還是整個字。那麼,這一項信息ARM靠什麼方式通知存儲芯片呢?
 
   縱觀16位的存儲芯片(無論是SRAM、SDRAM還是DDR),我們可以發現,芯片一般都提供兩個表徵着寫屏蔽的引腳。例如 SRAM芯片一般是(nLB,nUB),DDR2芯片一般是(LDM,UDM),一般,nLB、LDM標識低字節,而 nUB 、UDM 一般標識高字節。例如,對於 SRAM芯片而言,在寫時序中,只有 nLB 有效,才允許寫低字節;只有 nUB 有效,才允許寫高字節。
 
   另外,有的8位存儲芯片也有這樣的寫屏蔽引腳,用於多片8位存儲芯片的擴展,由於8位數據寬的芯片不存在高低字節,故寫屏蔽引腳一般只有一個,例如有的8位DDR2芯片的寫屏蔽引腳爲DM。
 
   相應地,ARM端一般也會有一些引腳,用於標識當前寫時序中,正在寫的是低字節、高字節還是整個字。例如,s3c2440 的相關引腳如下:
 

    針對不同的存儲芯片,使用的是不同的寫屏蔽引腳,如 SDRAM/DDR2 則使用 DQM[3:0],SRAM則使用nBE[3:0],而 nWBE[3:0]則是用來連接多個8位存儲器擴展系統的,由於一般8位存儲器只有nWE引腳,對於選通那一片進行寫,則由nWBE[3:0]來決定。
 
    將 ARM 端的寫屏蔽引腳與對應的存儲芯片的寫屏蔽引腳相連即可,一般ARM端都會設計多組寫屏蔽引腳,例如s3c2440的DQM引腳有4個,用於多片存儲芯片擴展的情況。
 
    下面再講講存儲芯片的擴展,一般都是進行數據位寬的擴展,即使用2片8位存儲芯片擴展位16位存儲系統,或者是2片16位存儲芯片擴展位32位存儲系統。
 
    一個典型的存儲芯片擴展電路圖如下:    

    由圖可以看出,該電路將兩片16位寬的SRAM芯片擴展位了一個32位寬的存儲系統,兩片SRAM芯片的引腳連接幾乎相同,那麼,究竟是什麼決定着左邊這一片SRAM作爲低字節,而右邊那一片作爲高字節呢?由上面的寫屏蔽的知識我們知道,就是寫屏蔽位決定的,左邊這片SRAM芯片連接的是nBE0~nBE1,決定了其爲低2字節,而右邊的nBE2~nBE3決定了其爲高2字節。
 
    好了,存儲芯片的寫屏蔽知識以及擴展就說到這裏了,在自己設計存儲系統時,應該就很清晰了吧?本文有說的不清楚的或者錯誤的地方歡迎指正,留言或者發郵件到[email protected]交流。
 

本文出自 “對影成三人” 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/686186

發佈了22 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章