所謂的 mirror memory 在很多地方都看得到,簡單來說這種memory的特性是映射另一區域的記憶體 ,也就是說不論你是讀或是寫入某個記憶體,如果它是mirrir記憶體,那你同時也會寫入到另一個address的內容,至於為何會設計成這樣,背後應該有滿多設計上的考量因素,但細節我不是很了解,所以就不多揣測.
這邊要談的是 mirror memory 在模擬程式上的處理,看過一些處理方式.
1. 多 copy 一份到別位置 (寫入時候需要多偏移計算.指定和寫入的動作 ).
2. 透過計算,對應同一個address內容 ( read 時候需要多一個計算 ).
3. 事先將對應關係計算出來,寫入到table內 (read的時候和write需要經過各需要一次查詢動作)
哪個好壞? 這邊很難斷定,看用啥角度(追求效能? code的簡短? 結構化? ).看狀況(是寫入多還是讀取多,把cost高的放到比較少的運作去,但這得看實際狀況才知道).
我個人其實是比較喜歡 2 & 3 ,但每個人想法不同,這邊就看每個人自己的想法.
沒有留言:
張貼留言