2015年7月24日 星期五

從正反器、栓鎖器到隨機存取記憶體(RAM)-一個積沙成塔的故事

  今天來談談記憶體。說到「記憶可以聯想到什麼?坊間已有書籍討論人類大腦記憶的運作,依時間長短分為短期記憶與長期記憶;人們在生活中,為了避免遺忘大大小小的事情,而有了備忘錄、行事曆。在電腦的設計中,也有類似的結構,使得輸入的資料能夠保留、儲存。事實上,所有的電腦系統,不論超級電腦、工作站、伺服器、個人電腦(PC)或是微電腦(microcontroller)、嵌入式系統(embedded system),記憶裝置是不可或缺的。如果沒有記憶元件,電腦將難以處理資訊註1

  既然記憶元件如此重要,它的結構、原理如何呢?從數位邏輯課程中的循序邏輯(或稱序向邏輯)得知,正反器與栓鎖器具有暫存一位元數位資料的功用(詳細電路分析請見數位電子學),當我們把數個栓鎖器排成一組,即可暫時存放多個位元的資料註2。由於當初定義1個位元組(Byte)為8個位元(bit)所組成,且傳統常用的ASCII碼(共7位元,能表示阿拉伯數字0~9、英文字母大小寫)加上一同位位元檢查碼註3即為1 Byte,故現今記憶體多以Byte表示。從過去的數KB、數MB,到目前的GB等級,其中的「B」必為大寫,代表Byte;與網路傳輸速度的Kbps、Mbps不同,小寫的「b」代表bit(單一位元)。

  所以,如果將八個栓鎖器組合在一起,即可存放一個ASCII code,例如英文大寫字母A以01000001(二進位,十六進位寫法為41H)表示。在市面上確實有八個栓鎖器包裝為一組的數位IC,如編號74373、74573等。接著,如果要存放更多的ASCII code呢?因應大量儲存的需求,廠商便將更多的暫存器組封裝起來,成為隨機存取記憶體,即RAM。RAM內部有許許多多的暫存空間,如何減少線路同時能夠控制每個空間所存放的資料呢?這時採用「匯流排」的架構是很好的方法。

  在介紹匯流排之前,先稍微討論一下「致能」這件事。為了縮減電路的複雜度,我們將每組暫存器的輸入相連接,輸出相連接。有些類似將一戶戶住家民宅匯集成社區,共用一個出入口的概念。此時避免衝突,致能控制便決定了出入口的使用權歸屬,確保單一時間只有一個位址使用;假設A接收到致能信號,其餘B、C、D等便不得使用出入口。直到A使用完畢,才將使用權讓給其他位址。實務上致能控制常與解碼電路結合,關於解碼電路的說明,留待之後另外撰文討論吧。

  一般電腦內部的匯流排大致區分為三類型:資料匯流排、位址匯流排及控制匯流排。以市面上的隨機存取記憶體(AMIC Technology之1M X 16 Bit X 4 Banks Low Power Synchronous DRAM產品,型號為A43E26161)為例,16 BITs相當於2Bytes,可見資料匯流排共16條線,對應至DQ0至DQ15接腳,代表每個位址可存放2Bytes的資料。1M則表示該記憶體具有2的20次方(=1048576)個空間,理論上該記憶體的位址匯流排應有20條,參考datasheet可知藉由栓鎖器與二維空間設計,記憶體位址又分為Row及Column,因此外部A0~A11位址匯流排具備多工特性。需配合控制匯流排RAS、CAS與CLK信號才可正確定址。

  談了這麼多,簡單介紹了記憶體的身世;隨著科技不斷發展,除了傳統的SRAM、DRAM外,MRAM(Magnetoresistive Random Access Memory,磁阻式隨機存取記憶體)在未來將成為市場趨勢,屆時將有更大的容量、更高的效能。



註1:部分簡單的電路確實不需要電子式記憶元件,例如以開關的ON、OFF進行表決,可以透過組合邏輯方式判定是否通過。但開關的二段式特性即具備記憶功能;且此類型的系統不屬於「電腦」。



註2:多個栓鎖器排成一組時,按照時脈連接方式不同又可設計出四種串/並列輸入輸出模式:

1、並入並出(parallel-in parallel-out)

2、並入串出(parallel-in serial-out)

3、串入並出(serial-in parallel-out)

4、串入串出(serial-in serial -out)



註3:同位元檢查(Parity Check)用以檢測資料在傳輸、儲存過程中是否發生錯誤,但未提供校正功能,與漢明碼(Hamming Code)不同。同位元檢查分為奇同位檢查與偶同位檢查,詳細介紹可參考數位邏輯相關書籍。

附錄:

74AC574三態輸出緩衝栓鎖器主要特性:

功能簡述:Octal D-Type Flip-Flop with 3-STATE Outputs
電源電壓(Supply Voltage)範圍:2~6V
輸入電壓(Input Voltage)範圍:0~Vcc(V)
輸出電壓(Output Voltage)範圍:0~Vcc(V)
直流輸出最大電流(DC Output Current Maximum):±50mA
當Vcc=5V±0.5V時,最高工作頻率:220MHz
※一般的低功率蕭特基(Low Power Schottky)晶片如74LS574,工作頻率上限約數十MHz。
最大工作電流(由Vcc供應,DC VCC or Ground Current):±400mA
操作溫度(Operating Temperature)範圍:-40~+85℃
74574共20支接腳,有八個D型正反器;當CK輸入脈波正緣信號,資料栓鎖,由OE控制輸出狀態。
以上晶片資料來自
http://pdf.datasheetcatalog.com/datasheet/SGSThomsonMicroelectronics/mXvuruu.pdf

參考資料:

1、泛科學-你還記得嗎?
http://pansci.tw/archives/62911

2、datasheet查詢參考:
http://www.datasheetcatalog.com/

3、A43E26161 datasheet:
http://pdf.datasheetcatalog.com/datasheets2/11/1150068_1.pdf

4、維基百科-正反器:
https://zh.wikipedia.org/wiki/%E8%A7%A6%E5%8F%91%E5%99%A8

5、維基百科-電腦記憶體:
https://zh.wikipedia.org/wiki/%E9%9B%BB%E8%85%A6%E8%A8%98%E6%86%B6%E9%AB%94

6、維基百科-漢明碼:
https://zh.wikipedia.org/wiki/%E6%B1%89%E6%98%8E%E7%A0%81

7、維基百科-磁阻式隨機存取記憶體:
https://zh.wikipedia.org/wiki/%E7%A3%81%E9%98%BB%E5%BC%8F%E9%9A%A8%E6%A9%9F%E5%AD%98%E5%8F%96%E8%A8%98%E6%86%B6%E9%AB%94


2015.7.18初稿

2015.7.19增訂1

沒有留言:

張貼留言