To 起始位址能被4整除的時候~存取效率最高呢??~
第一次聽過~
就暫存器 定址記憶體的角度而言 (※1)
理不出這種道理...
那就從 記憶體之硬體角度來看
也就是 記憶體矩陣 構造
要定位一個位址必須發出
CAS訊號(行位址控制) 與 RAS訊號(列位址控制)
現行的 RAM設計是
列的內容被送去暫存之後,控制器才 送出CAS訊號(傳送記憶體單元中的行位址)
所以
如果你所讀取的是相同記憶體列的鄰近資料,那麼決定存取速度的唯一因素就是CL時序,因為控制器已經知道列的位址,不需要重新再搜尋一次。
到此
好像與 被4除盡 沒什麼關係... ??
再看到
現在的DDR RAM晶片組被再次細部區分為4個部分(Banks),每個部份代表了一個分離的記憶體區。Bank Interleaving則是允許不同晶片上的Banks的記憶體區可以同步定址,也因此增加了資料傳輸率。當資料被一個記憶體Bank讀取時,另外一個Bank可以定址一個新的資料區。你可以在BIOS中特別設定晶片中可以同時定址多少RAM Banks。最快的設定是「4」。
到此好像與 4 有點扯上關係了...
(
http://www.lifone.com.tw/DDRU.htm )
綜合以上
推測或許只變動一個CAS訊號
所得到的記憶體位址變動量就是 4的倍數吧...
以上有點硬拗~
所以不要太相信 ^^"
※1
如果是 16位元CPU
相關記憶體定址暫存器:
四個區段暫存器(CS、DS、SS、ES)。
都是單一16bit寬度實體暫存器
那通用暫存器AX, BX, CX, DX 則實際上是兩個實體暫存器組成(比如 AH+AL=AX,各8bit)
那一個真實模式記憶體定址
是 區段暫存器+偏移位址
如果 偏移位址用到 通用暫存器
最少的時脈使用就是只用一個實體暫存器
怎麼算都是 16的倍數(一個8bit寬度 最大可代表 F)....
與4除盡 好像沒關?