【エンベデッド】組込Linux総合スレ【リアルタイム】at LINUX
【エンベデッド】組込Linux総合スレ【リアルタイム】 - 暇つぶし2ch315:login:Penguin
06/07/27 03:49:53 bXII0j75
>>292

target cpuによる。(カーネルバージョンやコンパイルオプションでも違ったような)
たとえばx86だと、論理アドレスを物理アドレスと同じアドレスにmapにしてた希ガス
4G超(だっけ?)のメモリつんでると32bit論理アドレスでアクセスできんからちゃんとremapしてた希ガス
後者の問題で、少ないメモリだとたまたま論理=物理なので動くけど、いっぱいつむと論理!=物理になって動かん、とかある希ガス

SHとかMIPSだと、論理アドレス=物理アドレス+OFFSETで決め打ちになる(ならないエリアもある)
ので変換なしでもアクセスできるかもしれんけど、
OFFSETでキャッシュあり・なしとかwrite through/write backとかが決まるので、
変換でOFFSETを調整してやらんと
メモリ領域をnon-cacheアクセスすると動くこたあ動くが遅いとか、
memory maped I/O領域をcache accessすると、(たまたまcache flushされ書き込まれた場合は)一見動いているように見えるが、そうでない場合は書き込まれずに挙動不審、とかある希ガス

何も変換がいらないcpuだとマクロかinlineになってて最適化コンパイルすると消えて呼び出しコスト0になるはずなので、
わるいこといわないからつけとけ

うろ覚えなんだが__vaにはcacheモードによる変種があった希ガス
SH/MIPSだとOFFSETをandしたりorしたり
x86だとどっかにmapした上でそこのcacheモードを設定してたような希ガス
生__vaは一番無難なnon-cacheアクセスだった希ガス
適切な__vaファミリを選べれ

ちなみにxenとかcolinuxはこのへん(va,pa)に手を入れて、「kernelが物理アドレスと思ってるアドレス」と「本当の物理アドレス」の変換をしてた希ガス



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch