http://blog.csdn.net/lgouc/article/details/8235471html
http://blog.sina.com.cn/s/blog_67c294ca01012qbu.htmlspa
數據對齊並非操做系統的內存結構的一部分,而是C P U結構的一部分操作系統
是這麼理解嗎?cpu要讀取內存中的數據,以多少爲單位進行讀取呢?以4個字節,仍是8個字節。仍是16個字節爲單位來讀取內存數據?.net
目前主要以2個字節爲單位嗎?是的。2個字節做爲對齊單位。htm
以多少個字節爲單位來讀取內存的數據,這是cpu的知識。與cpu有關係。blog
數據項只能存儲在地址是數據項大小的整數倍的內存位置上。如int類型佔用4個字節,地址只能在0,4,8等位置上。內存
也就是說,這個數據的首個地址必須是它的倍數。get
好比一個數據大小是6個字節。如今要存入內存中去,首個內存地址的位置必須是6的倍數,即6*n才行:6,12,18........這樣就能夠。基礎
這是結論,有這個限制要求。緣由是什麼,減小cpu讀取內存的次數。不進行內存對齊的話,讀取次數將會增長。變量
內存對齊的本質:減小cpu讀取內存的次數。一次性儘量多讀取數據進來。是這樣的嗎?
處理器的內存存取邊界是什麼意思?
http://www.cnblogs.com/xkfz007/archive/2012/10/08/2715163.html 這篇文章講述了cpu與內存之間的關係
內存對齊是操做系統爲了快速訪問內存而採起的一種策略,簡單來講,就是爲了放置變量的二次訪問。操做系統在訪問內存 時,每次讀取必定的長度(這個長度就是操做系統的默認對齊係數,或者是默認對齊係數的整數倍)。若是沒有內存對齊時,爲了讀取一個變量是,會產生總線的二 次訪問。
幾個基礎知識:內存的每一個地址可以存儲多少數據。1個字節。
cpu的執行指令速度
大部分簡單指令的執行只須要一個時鐘週期,也就是1/3納秒。光在這個時間點也只能走10釐米。
因爲主存中使用電容來存儲信息,爲了防止因天然 放電而致使的信息丟失,就須要週期性的刷新它所存儲的內容,這也帶來額外的等待時間。