內(nèi)存對齊的目的和原理 有人說電腦主機(jī)內(nèi)存條要隔行插,為什么?
有人說電腦主機(jī)內(nèi)存條要隔行插,為什么?計(jì)算機(jī)內(nèi)存交錯(cuò)的目的是形成一個(gè)雙通道。雙通道可以將位寬度增加一倍。在同時(shí)存儲(chǔ)和交換數(shù)據(jù)時(shí),可以同時(shí)與CPU交換兩個(gè)數(shù)據(jù),大大提高了計(jì)算機(jī)的性能。交錯(cuò)插件的另一個(gè)優(yōu)
有人說電腦主機(jī)內(nèi)存條要隔行插,為什么?
計(jì)算機(jī)內(nèi)存交錯(cuò)的目的是形成一個(gè)雙通道。雙通道可以將位寬度增加一倍。在同時(shí)存儲(chǔ)和交換數(shù)據(jù)時(shí),可以同時(shí)與CPU交換兩個(gè)數(shù)據(jù),大大提高了計(jì)算機(jī)的性能。
交錯(cuò)插件的另一個(gè)優(yōu)點(diǎn)是有利于散熱。當(dāng)你的電腦運(yùn)行大型游戲或大型應(yīng)用程序時(shí),當(dāng)你用手指觸摸內(nèi)存粒子時(shí),你會(huì)發(fā)現(xiàn)它非常熱。其實(shí),隔行插一般是針對有四個(gè)插槽的主板,主板會(huì)用相同的顏色標(biāo)記同一組通道內(nèi)存插槽,只要你按照相同的顏色插就不需要太多的理解。
這里需要提醒的是,即使AMD平臺(tái)是由兩個(gè)通道組成的,最好是第1組和第3組,因?yàn)槿绻麤]有按照主板的要求插上電源,有時(shí)系統(tǒng)就無法正常啟動(dòng)。注意這個(gè)。
簡而言之,交錯(cuò)的主要目的是形成雙通道。雙通道可以更好地提高電腦的性能,特別是在游戲的情況下。我親自測試過,在雙通道和非雙通道的情況下,游戲的平均幀速率可以提高5到10幀。不過,我看到一些帖子提到,有些游戲?qū)﹄p通道特別敏感,可以有近300幀,我不知道這是不是真的。簡言之,雙通道內(nèi)存確實(shí)可以提高電腦的整體性能。這是真的。
為什么C/C 編程語言經(jīng)常會(huì)提到對齊?對齊到底是什么,為什么要對齊,對齊有什么好處?
內(nèi)存對齊是硬件問題,而不是C/C問題本身。只有C/C能夠直接操作內(nèi)存指針,才有可能對其進(jìn)行優(yōu)化。
嚴(yán)格來說,對齊甚至不是CPU問題,而是MMU(內(nèi)存/緩存)問題。
簡而言之,對齊有助于提高緩存利用率。緩存設(shè)計(jì)時(shí),每行都是一個(gè)對齊的空間,如32字節(jié)。使用他們的地址低索引。如果讀寫到與當(dāng)前緩存線不匹配的地址,則會(huì)導(dǎo)致寫回并重新加載緩存線。換句話說,有一個(gè)性能成本。此外,如果你熟悉芯片設(shè)計(jì),你會(huì)知道成本是驚人的。許多軟件工程師可能沒有意識(shí)到,在大多數(shù)情況下,CPU只有很少的時(shí)間來執(zhí)行指令,而大部分時(shí)間是等待緩存。
因此,對于具有性能優(yōu)化要求的程序,在大多數(shù)情況下,內(nèi)存優(yōu)化是首要任務(wù)。不對齊的內(nèi)存訪問很容易導(dǎo)致此時(shí)一次刷新兩個(gè)緩存,很有可能有用的數(shù)據(jù)會(huì)從緩存中沖出,這不僅增加了此操作的成本,更重要的是,下次必須重新加載清洗后的數(shù)據(jù),這是一個(gè)很高的成本。更糟糕的是,此操作可能會(huì)繼續(xù)導(dǎo)致新的有用數(shù)據(jù)在下次被刷新和回收。
據(jù)我觀察,今天99%的程序員對CPU內(nèi)存體系結(jié)構(gòu)知之甚少,他們的代碼幾乎根本不考慮性能。事實(shí)上,在大多數(shù)情況下這并不重要。不管怎樣,剩下的1%做了核心工作。
什么是數(shù)據(jù)的對齊?為什么要對齊?
對齊與內(nèi)存中數(shù)據(jù)的位置有關(guān)。如果變量的內(nèi)存地址是其長度的整數(shù)倍,則稱為自然對齊。例如,在32位CPU中,如果整數(shù)變量的地址是0x00000004,則它自然對齊。字節(jié)對齊的根本原因是CPU訪問數(shù)據(jù)的效率。假設(shè)上面整數(shù)變量的地址不是自然對齊的,例如0x00000002,那么CPU需要訪問內(nèi)存兩次,如果它接受它的值。第一次從0x00000002-0x00000003取短,第二次從0x00000004-0x00000005取短,然后合并得到所需的數(shù)據(jù)。如果變量的地址為0x00000003,則需要訪問內(nèi)存三次,第一次訪問char,第二次訪問簡稱char,第三次訪問char,然后合并得到整數(shù)數(shù)據(jù)。如果變量處于自然對齊位置,則只能檢索一次數(shù)據(jù)。有些系統(tǒng)對對齊非常嚴(yán)格,如SPARC系統(tǒng)。如果數(shù)據(jù)沒有對齊,就會(huì)出現(xiàn)錯(cuò)誤