プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

スポンサーサイト このエントリーをはてなブックマークに追加

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)

組込Linuxの高速化 このエントリーをはてなブックマークに追加

この辺から引用

SuperH, M32R などは、アドレスの値が実際は小さいことを仮定して、小さい即値であれば命令に落とせるというようなインストラクションセットとメモリモデルとなってます。が、これが kernel が 0x80000000 で動くとなっているので全然生きてない。

MMU の設計ですけど、SuperH, M32R で上半分の空間 0x80000000 を kernel 空間とするのはちょっとどうでしょうか。

kernel 空間は(ユーザ空間とは別の)固定の TLB を経由しないアドレス変換とするのが良いように思います。どうでしょうか。



TLBを経由しないってのがどういうのかちょっと分かりませんが、Linuxカーネルはよく通るコードとそうでないコードの差が激しいという性質があるので、上位2Gに加えて最下位数十Kをカーネル空間として、その最下位に最頻出コードを集めてしまうのはどうでしょうか。

カーネルに処理が移るたびにTLBフラッシュするのはいかにも遅そうだし、
カーネル空間が連続していないと困る処理もあんまり思いつきません。

一番キモの最頻出コードをどうやってよりわけるか。ですが、CELFフォーラム(ん?Fがかぶってるな)で開発された partial XIP においてスケジューラ周りだけコードを別セグメントに分離しておいて、起動時にそのセグメントだけRAMにコピー、残りはROMに置いたまま実行。とすることにより、省RAM、高速起動、速度低下微小を実現しているので、きっと同じことが出来るのではない?

どうでしょ?


関連記事


linux | 【2006-03-24(Fri) 15:47:45】 | Trackback:(0) | Comments:(2)
コメント
このコメントは管理人のみ閲覧できます
2007-10-07 日 04:07:30 | | # [ 編集]
このコメントは管理人のみ閲覧できます
2007-12-19 水 04:52:33 | | # [ 編集]
  1. 無料アクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。