簡單科普系列—記憶體為什麼需要組雙通道原理及其作用
前言:
本文為小白向簡單科普系列,旨在用盡量簡單(土味)的方式介紹一下記憶體雙通道的工作原理以及其作用。如果有寫錯或寫的不好的地方歡迎各位指正。
一、記憶體雙通道的原理
我們都知道CPU是用來處理資料的,但資料從何而來?所有資料從硬碟來,但是由於硬碟傳輸速度和CPU資料讀取速度差的太多,所以就有了記憶體,充當CPU和硬碟之間的資料傳輸的橋樑(其實記憶體速度和CPU的傳輸速度也差的遠,同理就有了CPU裡的L3、L2、L1快取)。
由上面的介紹我們可以知道,資料是從硬碟到記憶體再到CPU內的。記憶體為單通道時候資料怎麼傳輸的呢?這裡拿一個陣列展示,1、2、3、4、5、6、7、8這8個數字按照從小到大的順序組成陣列12345678。假設CPU從記憶體讀取一個數字要1ns,在單通道的情況下,CPU每次只能從記憶體中讀取一個數字,那麼讀取完這個陣列要8ns。
那麼有什麼辦法提高這個陣列的讀取速度呢?
這裡就要引入雙通道這個概念了,這裡就不扯百度百科上的東西了,用一些直白方式解釋下。我們將12345678這個陣列拆分為兩個部分,一個是1357,一個是2468,分別裝入兩個記憶體。然後CPU再去讀取記憶體中的資料,由於記憶體為雙通道,CPU可以同時訪問兩條記憶體。雖然還是隻能從每條記憶體讀取一個數字,但是這時一次可以讀兩個資料,1、2一組,3、4一組,5、6一組,7、8一組,這樣CPU讀取整個陣列只需要4ns了。
當然理想很豐滿,現實很骨感,事實上雙通道記憶體絕對達不到這種資料讀取時間直接縮短一半的情況。這是為什麼呢?我們沒辦法保證CPU讀到的資料仍然是12345678這個原始陣列,因為CPU對兩條記憶體的讀取完全是隨機的,有可能出現CPU讀到的陣列為21345678、21435678,12345687等等。如果CPU拿到的不是12345678這個固定順序的陣列,拿到其他排列順序的陣列都是無效的資料。這裡需要設計一個資料校驗演算法,解決這個問題,確保拿到的資料一定是正確的(這裡就不展開討論了,畢竟是簡單科普)。由於還要執行資料校驗,產生了額外的時間開銷,所以雙通道達不到理論效能。
於是就有了這種情況——原理上雙通道記憶體效能可以直接翻倍,但是要保證資料的準確性又產生了其他的開銷,所以實際達不到理論的效能。雙通道帶來的效能增長是實打實的,但由於使用CPU和軟體的不同,具體問題需要具體分析,這裡無法直接給出資料到底能提升多少。
到這裡原理其實已經講完了,但是我想再延伸一下,不知道各位聽沒聽說過硬碟組raid0陣列。其實和雙通道記憶體原理類似,問題也類似。將12345678這個陣列拆分儲存到兩塊硬碟上,讀取的時候分別從兩塊硬碟同時讀取,加上為了保證傳輸資料正確性的開銷,雖然讀取時間不能縮短一半,但也會有所縮短。但是raid0有個致命缺陷,那就是一份資料拆分成兩部分儲存在兩塊硬碟上,一旦其中一塊硬碟出問題了,你的全部資料就都沒了。畢竟你只有正常的那塊硬碟上的1357或者2468,只有一半的資料是沒辦法拼出一個完整的12345678陣列的(還有更進一步的raid1、2、3……,有針對這種情況的解決辦法,有興趣請自行了解,不過要求的開銷太大了,一般人不建議接觸raid),想通過資料找回也是不現實的。
二、一些常見的疑點解答
兩條記憶體可以組成雙通道,那我整三、四條記憶體組個三通道、四通道豈不美哉,雖然達不到效能3,4倍這種提升,但是有提升也是好的。同樣是理想很豐滿,現實很骨感。目前主流CPU就只支援到雙通道記憶體,在這些CPU上無論有幾條記憶體都只能雙通道。
AMD這邊民用級只有執行緒撕裂者系列才支援4通道記憶體,英特爾這邊民用級只有X系列才支援4通道記憶體。
那插3、4記憶體有沒有提升呢?這個是有的,大概舉個例子,如果單通道記憶體有80分,那雙通記憶體有100分,三、四根記憶體條大概有102分、104分這樣子。
單通道到雙通道提升巨大,而三、四根記憶體則是靠記憶體條多堆出來的大頻寬來提升一點點分數。而記憶體也是存在水桶效應的,多根記憶體條中,為了系統能達到更好的穩定性,全部的記憶體條執行頻率都會被拉低到最差的那一根上。多根記憶體條也拉低了系統的穩定性,只要有一條記憶體出問題就無法開機,同時藍屏機率也會增加。所以除非有支援4通道記憶體的CPU或者特別需要超大記憶體容量的使用者,還是建議一般使用者只插兩根記憶體條,減少記憶體出錯的機率。
三、組雙通道的要求
如果是加裝記憶體,建議儘量買和原品牌一樣(記憶體容量,頻率以及時序都一樣的)的記憶體條。如果是替換的話,直接買兩根一套的記憶體條,這樣連記憶體顆粒都可以保證一樣。這樣就可以保證穩定性和相容性更好,畢竟誰也不想用著用著電腦直接藍屏。
目前(2020年6月),雙通道最好是雙8g組成16g,或者雙16g組成32g,或者更大容量的雙通道。而雙4g組8g這種,就有些力不從心了,軟體和系統都越來越吃記憶體,8g多多少少不太夠用了。對於筆記本來說,如果記憶體為板載且不可後續加裝建議直接16G起步,如果還有空的記憶體插槽可以後續加裝,一時囊中羞澀可以選擇8G,後面8G不夠用了或者等有錢了再加裝8G,或者加更大容量的也可以,有錢直接選擇16G或者更大的記憶體。
總結
從單通道到雙通道提升巨大,而三或四根記憶體條這種奇怪的搭配,帶來的效能提升非常小,而將藍屏和不開機的機率拉大了,這種搭配不值得各位看官選擇。