DRAM內存編址及各個字長的含義(參考書籍 : Computer Systems A Programmer's Perspective 3rd)

最近上計組課,計組老師講課總是開飛機。

而且國內清華大學出版社第三版計組教程關於內存的編址和各種字長的含義我個人覺得解釋得有點含混不清。

所以自己找了本外文版的計組,發現外文的詞意不經過翻譯確實更能令人讀懂,可能這也是古詩被翻譯成外文就淡然無味的原因吧。

首先我們瞭解下DRAM的內存編址。

首先DRAM的內存被模型化成一種叫做 “陣列” (array element) 的結構.

簡單理解就是下圖中分成格的矩形。

這個矩形的格數和長寬由DRAM的容量等因素決定。
在這裏插入圖片描述

每個格子被稱爲“supercell”。其實格子的名稱有“word”(字) 和 “cell” (單元) 兩種稱呼

前一種是硬件工程師喜歡那麼叫,而後一種是電腦架構師喜歡那麼叫。

但是爲了統一稱呼避免混淆,叫他做“supercell” ,至今我都沒有在國內找到“supercell” 對應合適的稱呼,自己也沒有想出一個合適好聽的稱呼…

但這其中值得玩味的是,爲什麼硬件工程師喜歡叫他“word(字)”呢?而計算機架構師喜歡叫“cell”呢?

圖中第一句話的意思大概可以理解爲

計算機結構師覺得這個“supercell”,應該裝載存儲單元。(存儲單元 = 最小編址單元)。

(我的猜想)所以索性叫supercell爲“cell”。

而第二句話,硬件工程師覺得supercell應該裝填一個字大小的內存信息,這裏的字指的是什麼呢?

(我的猜想),還記得硬件中的字線(Word Line)嗎?是用來打開內存中記憶單元的控制線,那讀取一個字大小的數據,是否就是用位線打開一定數量的記憶單元呢?(每個記憶單元爲1bit)。

因爲硬件工程師認爲的word和第一句話裏的cell大小相等,所以,這裏的word的大小應該等於存儲單元的大小。

每次位線都要打開存儲單元大小個數量的記憶單元來訪問內存。

硬件工程師眼中的word是每次訪問內存的最小單位。
在這裏插入圖片描述
關於存儲單元 :
清華大學出版社的教材上介紹“存儲單元”

原話是:“存儲單元是CPU對主存可訪問操作的最小存儲單元。”

而我們聯繫到上面的圖,每個supercell都有唯一的編號對應,比如我們有10根地址線,有1024個編址單元,每個編址單元都是一個supercell。

所以我們大概可以把supercell理解成最小的編址單元。也就是教材上說的“CPU對主存可訪問操作的最小存儲單元”。

所以如果內存按照字節編址,supercell大小是8bits
如果機器字編址,supercell的大小是機器字位數

接下來解釋各個字長的含義。

1.我們平常說的“字”指的是機器字,而“字長”一般指的是數據字長

2.機器字長 : 一般是寄存器的位數,即計算機每次運算處理能操作的最大位數,比如常說的32位計算機,一個運算最多從寄存器中取出32位進行運算。

3.數據字長 :是平時所說的字長,只是一個度量數據長度的單位,就像平時說的米,千米一樣

比如首先定義數據字長是16位,那麼32位int的大小就是2數據字長,平時簡稱,兩個字長

說一個數據的大小必須先定義清楚字長大小。

4.存儲字長,在一個存取週期內,能從內存中讀取出的最大長度。

比如說存儲字長是32位,而存儲單元是8位。
那麼一次性能從內存讀出32位,即32/8 = 4 個supercell(存儲單元),那麼矩形圖每一行就應該有4個supercell,上面的矩形圖就是這樣設計的。

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