為什麼內存為什麼是以字節為單位的?

我覺得在馮諾依曼體系結構裡,CPU和內存是最重要的設備。如果沒有CPU和內存,服務器將完全無法運行。 所以繼第一階段分享完了CPU篇之後,今天就開始內存篇。我們以一個最簡單的問題開篇,為什麼內存地址0x0001和內存地址0x0002之間差的是一個byte,而不是一個bit?

我想你對內存存儲的計算已經熟練於心,a變量佔用內存多少字節,b變量佔用內存多少字節。但是你有沒有深入思考過,為什麼我們用的存儲單位都是字節,而不是比特?可能你會說因為ASCII碼的基本編碼單位就是字節呀,你還有可能舉出很多個原因來說明內存應該以字節進行計算的原因。但那為啥網絡帶寬都是以bit,而不也用byte來計算的呢?

我們平時好像太過於習以為常,而沒有去深想過具體的原因。我今天呢,是想從一個特定的角度去看待這個問題,那就是從內存的硬件物理結構。我們來了解一下內存的物理構造,一般內存的外形圖片如圖1:

為什麼內存為什麼是以字節為單位的?

圖1 內存外形

如圖1所示,一個內存是由若干個黑色的內存顆粒構成的。每一個內存顆粒叫做一個chip,所有的數據都是存在這些chip裡的。上面這個內存條有8個chip(正反面各四個)。chip內部構造如圖2:

為什麼內存為什麼是以字節為單位的?

圖2 chip內部結構

每一個chip內部,又是由8個bank組成的。在每個bank內部,就是電容的行列二維矩陣結構了,如圖3。

為什麼內存為什麼是以字節為單位的?

圖3 bank內部構造

這個矩陣由多個方塊狀的元素構成,這個方塊元素是內存管理的最小單位。要注意的是每一個元素有8個小電容,存儲8個bit,也就是一個字節。換句話說,因為在內存物理結構中最小管理單位是元素,一個元素就是8bit。所以操作系統在管理它的時候,自然最小單位也就是字節了


分享到:


相關文章: