筆記本電腦是8g內存,想加內存,是8?32g好,還是兩條都是16g好?
當然兩條內存都是16G性能好了,因為這樣全部內存可以組成對稱雙通道模式(Dual-Channel Symmetric mode),也就是Interleaved模式;而8G + 32G的方式,則通過Intel Flex Memory技術,僅僅可以8G + 8G組成對稱雙通道模式,而32G其餘的24G則是單通道模式。
對於想知道技術細節的同學,我們今天來了解一下什麼是對稱雙通道模式,它為什麼帶來性能的提升;以及Intel Flex Memory技術是什麼。
對稱雙通道模式
雙通道,也就是Dual Channel技術,讓兩個通道同時訪問內存,互不干擾,大家一看感覺能夠增大內存帶寬一倍,一定是對性能有好處的。但因為寫程序,代碼和數據都是連續分布的,這也叫做內存訪問的局部性。虛擬地址和物理地址分配也最小是以4K為最小顆粒,所有操作系統通過頁表也不能改善這種狀況。如果雙通道,但各個內存通道內地址空間是連續的話,內存訪問的局部性,會讓性能的提高大打折扣。那怎麼辦呢?
通過Interleave。與伺服器領域複雜無比的Interleave模式不同,筆記本和台式機只有一種Interleave,即按照Cache Line Interleave,也就是64個位元組Interleave一次。換句話說,就是從0地址開始,每64個位元組,它在兩個Channel的分配就交換一次:
0B~63B --&> Channel 0
64B~127B --&>Channel 1
128B ~ 191B --&>Channel 0
以此類推。
這樣做好處是明顯的。因為CPU內存訪問都是以Cache Line為單位,又因為內存訪問的局部性,兩次Cache Line miss而訪問內存,很大幾率能夠被分配到兩條Channel上,大大提高了內存帶寬的利用率。
但一般情況下,要採用對稱雙通道技術,內存就要對稱,要求兩個channel的內存要大小一樣才行。那麼我們用兩個大小不同的內存條,是不是就不能Interleave了呢?本來是不行的,直到Intel推出了Flex Memory技術。
Intel Flex Memory Tech
這個技術讓非對稱內存也可以部分用上Interleave,也就是重合的部分: