發布時間: 2023-04-17 14:07:23
為了存儲這一個比特,在先驅者面前曾經有兩種電路方案,第一種是靜態方案:即
這是不是有點復雜?我想是的。這種電路方案的優點是在0和1之間保持穩定的狀態,因此被稱為靜態隨機存取存儲器(SRAM)。有第二個選擇:
這樣是不是簡單了許多?只通過一個電容器的電荷就能決定這是一個 1 還是一個 0,這樣就存儲了 1bit。
在每一個存儲芯片里,這樣的比特位存儲單元都有很多,例如一個 16G 的內存條有 137438953472 bit,也就是有 137438953472 個這樣的電容。
但這種電路方案有個毛病,就是里面的那個電容會“漏電”,電容中的電荷會慢慢消失,電壓也就變小了,這樣就沒辦法區分這是表示的 1 還是 0 了。
為了解決這個問題,必須得周期性的去給它們充電,才能維持數據的穩定,這叫動態數據刷新,所以這種方案叫 DRAM (Dynamic Random Access Memory)。
內存控制器就像一個中介,位于 CPU 與 內存條之間。
CPU 這邊想要訪問數據,肯定不想這么麻煩,所以內存控制器就派上用場了。
用 bit 作為讀寫單元太麻煩了,咱們按 8 bit 為一組,叫做一個字節 byte,CPU 統一給內存的存儲空間編址,以后要讀取數據的時候呢,就把地址交給內存控制器,再告訴內存具體是讀寫哪個芯片哪個分片的哪些位置。
以后只需要一個地址,內存控制器就轉換成具體的數據存儲位置,去讀取內存,再由內存完成讀寫操作就可以了。
由于內存控制器的重要性,現在,內存控制器已經集成到了 CPU 內部,成為了 CPU 的一份子了。
隨著 CPU 的發展,CPU 的速度越來越快,開始嫌內存慢了,要說慢,硬盤那可比內存慢多了!于是在 CPU 內部又搞了個緩存出來,不用每次都問內存要數據,而是把一些常用的數據存儲在 CPU 內部的緩存中。
只不過 CPU 內部的緩存不會太大,僅存放一些常用的數據,大部分數據還是需要通過內存進行讀取。
上一篇: Linux操作系統網絡模塊有哪些功能
下一篇: dubbo整體分層架構