設置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

主板上這家伙,要當 CPU 和內存的中間商

編程技術宇宙 2022/11/10 19:28:14 責編:子非

本文來自微信公眾號:編程技術宇宙 (ID:xuanyuancoding),作者:軒轅之風 O

我是內存條

我是一個內存條,剛剛從深圳的一個工廠里被生產出來,跟我一起的還有一批小伙伴,長得跟我一模一樣,下了流水線后我們就被扔進了一處黑暗的角落。

“這是哪里啊,黑漆漆的”,一個小伙伴說到。

“這里是內存條倉庫”,黑暗中有人在說話,聲音中略有一絲滄桑,像是一個老頭。

“誰?誰在那里”

“別怕,我也是一個內存條,比你們早幾個月被生產出來”,那老頭說到。

“啥,你都被關在這里幾個月了,完了完了”,小伙伴急了。

“不是的,我出去過,后來被發(fā)現(xiàn)是殘次品,又被回收了關在了這里,你們跟我不一樣,剛剛生產出來,應該很快就能出去,被安裝到電腦主板上,實現(xiàn)你們的價值?!?/p>

“電腦主板?那是什么地方?”,我好奇的問到。

那聲音繼續(xù)說到:“那是計算機最核心的地方,是一個巨大的電路板,上面住著 CPU、硬盤、網卡、顯卡、聲卡,當然,還有我們內存條。計算機必須有我們才能正常運轉,因為 CPU 工作需要的指令和數據都存儲在咱們內存中”

剛說完,我們身邊亮起了燈光,這時,我們才看清我和小伙伴們的樣子。

“我們身上那幾塊黑乎乎的東西是什么,真是有點拉低顏值啊!”

“你可別小瞧了它們,那可是咱們內存條的核心存儲芯片,我們的數據都是放在這里面的,它們一個就是 1GB,總共 16 個,就是 16GB 的空間呢!”,那老頭又開口說到。

奇怪的是,我們還是看不到他。

“你在哪里,怎么亮了燈還是看不到你呢?”,一個小伙伴問到。

“我在隔壁的柜子里,像我這種殘次品估計是沒機會出去了”

“你剛才說 16 個存儲芯片,這不是明明只有 8 個嗎?”

“你轉過身去看看,背上還有 8 個呢”

我們幾個紛紛轉身看去,果然如此。

老頭繼續(xù)說到:“除了存儲芯片,還有 PCB 電路板金手指,這三部分共同構成了我們的身體?!?/p>

“金手指是什么東西?”

“就是腳下那一排土豪金顏色的部分了,那是我們連接主板插槽的接觸點,一面有 120 個,兩面就是 240 個,因為每個點看起來像手指,人們就把這叫做金手指了”。

“那為什么中間留了一個缺口呢?”

“我們的每個金手指都有不同的功能,正反面可不能弄混,為了防止愚蠢的人類把我們插錯,所以中間留了一個缺口,要是弄反了可是插不進去的。通過主板上的電路,我們就能接通到計算機的總線系統(tǒng)上,可以和 CPU 對話了。”

原來如此,我們都若有所思的點點頭。

數據存儲

接下來,這位老頭還講了很多我們內存條先輩的故事。

原來,我們還有一個更專業(yè)的名字:RAM,隨機存儲器,因為我們可以隨意讀寫任意位置的數據。

老頭還說,現(xiàn)在計算機基本上都是二進制的,不管什么樣的數據或者代碼指令,在我們這里都是一串串的 0 和 1 的比特位。

為了存儲這一個比特位,我們的先輩們可是費了不少功夫!

曾經有兩種電路方案擺在先輩們的面前,第一種是靜態(tài)方案:

是不是很復雜?我也覺得。這種電路方案的好處是可以穩(wěn)定的維持在 0 和 1 之間的某個狀態(tài),所以叫靜態(tài) SRAM。

但是需要用到的晶體管實在太多了,一個比特位就要用好幾個晶體管,16GB 那得用多少才夠啊,成本太高了,造出來我們的個頭肯定會特別大,主板上空間這么局促,哪里裝得下啊。

先輩們沒有選擇這種方案,用了第二種方案:

看,是不是簡單了許多?通過一個電容器的電荷就能決定這是一個 1 還是一個 0。

在我們身上的每一個存儲芯片里,這樣的比特位存儲單元都有很多:

再縮小一下看,它們密密麻麻的排列著,每一個位都由行地址和列地址來確定的:

圖源知乎 @老狼

但這種電路方案有個毛病,就是里面的那個電容會“漏電”,電容中的電荷會慢慢消失,電壓也就變小了,這樣就沒辦法區(qū)分這是表示的 1 還是 0 了,為了解決這個問題,必須得周期性的去給它們充電,才能維持數據的穩(wěn)定,這叫動態(tài)數據刷新,所以這種方案叫動態(tài) DRAM。

內存編址

老頭正給我們講的興起,突然有人把我們打包起來,所有的小伙伴都被分開了。

又經過了好長一段日子的黑暗和孤獨,那一天突然咔嚓一聲,我的金手指和卡槽連接了起來,難道這就是傳說中的主板嗎?

“你就是內存啊,我們可等你好久了,你來了我們總算可以開始工作了!”,旁邊一個家伙跟我打起了招呼。

“你哪位???”

“你好,我是 CPU 里的阿 Q,你看就在你隔壁,咱們以后少不了要天天打交道了。對了,快告訴我,你有多大存儲空間?”

我檢查了一下,回答道:“我有 16GB 空間,也就是 137438953472 個比特位!”

“哇,這么多!太給力了!不過我該怎么使用你來存儲數據呢?”

“這簡單,你要訪問哪個 bit 位,告訴我芯片號、bank 號、行地址、列地址,我把數據取給你不就行了嗎!”

“怎么這么麻煩?你這不講武德啊,這些內部細節(jié)應該封裝一下啊,提供給我一個簡單接口就是了”,阿 Q 吐槽道。

“兩位大哥,看這里”,這時,主板上不遠處又有一個家伙開口了。

“你是誰?”我和阿 Q 異口同聲的問到。

這家伙瞇著眼說到:“我是內存控制器,專門為二位服務的?!?/p>

“啥,你要控制我?”

“您別誤會,我就是一個中介,為兩位提供服務而已”

見我倆一頭霧水,這家伙接著說到:“內存老哥,你的存儲數據電路單元中的電容是不是經常漏電,需要定時刷新?而且按照規(guī)定,最多 64ms 就得要刷新一次?你放心,這數據刷新的工作以后就交給我了”

“你怎么知道的?”

這家伙笑了笑繼續(xù)說道:“這算啥,我還知道你的數據存儲在你身上的每一個存儲芯片之上,每一個芯片里面又分了很多個分片,每個分片里面又有很多的比特位存儲格子。想要訪問哪個比特位,就得指定對應的芯片、對應的分片、對應格子的行地址和列地址,我說的對不對?”

圖源網絡

我點了點頭,沒想到這家伙居然對我了解的這么清楚。

“阿 Q 啊,你們 CPU 這邊想要訪問數據,肯定不想這么麻煩吧?”,這家伙笑著問到。

“那當然!”

“所以啊,我就派上用場了啊,用比特位作為讀寫單元太麻煩了,咱們按 8 個比特位為一組,叫做一個字節(jié),你們 CPU 這邊統(tǒng)一給內存兄弟的存儲空間編址,以后要讀取數據的時候呢,就把地址交給我,我再告訴內存兄弟具體是讀寫哪個芯片哪個分片的哪些位置,怎么樣,是不是為你們解決了大麻煩?”,說完,內存控制器露出了得意的笑容。

“聽上去不錯啊,咱們開始吧!”

“現(xiàn)在還不行,還沒通電呢!”

不過我們沒等太久,就聽見一陣嘶嘶聲響,來電了!

隨后我們就開始配合工作起來,初次見面,合作的就非常順利,CPU 對我所有的存儲位按照字節(jié)為單位進行了統(tǒng)一編址,以后只需要一個地址,內存控制器就轉換成具體的數據存儲位置交給我,我再完成讀寫操作就可以了。

后來,看到內存控制器表現(xiàn)非常不錯,在阿 Q 的牽線下,還把他集成到了 CPU 內部,現(xiàn)在成為了他們的一份子了!

我和 CPU 一直相處的不錯,可沒過多久,他們居然開始嫌我慢了,要說慢,硬盤那家伙可比我慢多了!

他們發(fā)現(xiàn)拿我沒有辦法,于是在 CPU 內部又搞了個緩存出來,不用每次都問我要數據,倒是給我省了不少工作量。

我的日子就這樣過著,本以為就要在這主板上干到退休了,沒想到那一天,一個瀏覽器程序告訴我說:“內存大哥你完了,剛剛我看到主人在網上買新的 DDR4 內存條,你要被淘汰了”

難道我也要被打入小黑屋了嗎?

廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。

相關文章

關鍵詞:內存,主板

軟媒旗下網站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機APP應用 魔方 最會買 要知