091024

|


菜園状況。さっそく堆肥をすきこんで、キャベツを定植しました。10株をメイ
ンの畝に。残りの5株は軒先に。どれだけ生き残るか...



大根も小さいうちにヨトウムシにやられなければ、かなり安泰。追加で種まい たのはまた、ヨトウムシにやられている。土をほじくり返して3匹ほど殺した。 本当ヨトウムシは大変だ。昼間は土に潜ってるから如何ともし難い。
大根の葉っぱにはモンシロチョウの幼虫が数匹。これも殺害。
大根はもっと植えておけばよかったな。本当なら間引きする範囲なのだけど、 生き残ったのが3本だから抜くに抜けない。やっぱり夏〜秋に植えるのは害虫が 厳しい。まだ春先の方が楽だ。

一応寒冷紗をかけておきました。最後まで実がなっていたトマトを抜いて(もう この時期になるといつまでたっても実が大きくならない)、ネギの種を蒔いたけ れど、もう遅いかな。

SH4A続き。OCBI命令が謎にデータTLB保護違反例外を出す。OCBPは大丈夫なのだ けれど。これはマイOSに戻って検証したい。
pmapのキャッシュまわり、実行時に、それがI/D分離キャッシュか、ライトバッ クキャッシュか、エイリアス問題があるか、ダイレクトマップ(1-way)かどうか をその場で分岐するのは、無駄だ。
ということで、pmap_initの時点でキャッシュ操作を特定してしまうようにした。 pmapで必要なのは、
(1) もうこのページはいらない
(2) まだいるけれど、一時的にマップから外す。
(3) 他のエリア(P1/P2)からアクセスするためにキャッシュの整合性をとりたい。
(4) 書きこんだ所から実行するから、それが命令キャッシュにきちんと入るよ

ここで
I/D統合キャッシュでライトスルーでエイリアス問題がなければ、一切の
キャッシュ操作の必要がない。

I/D統合キャッシュでライトバックでエイリアス問題がなければ、(2)と(3)がいる。

I/D統合キャッシュでライトバックでエイリアス問題があれば、(1)と(2)と(3)がいる。

I/D分離キャッシュでライトスルーでエイリアス問題がなければ、(4)がいる。

I/D分離キャッシュでライトバックでエイリアス問題がなければ、(2)(3)(4)がいる。

I/D分離キャッシュでライトバックでエイリアス問題があれば、(1)(2)(3)(4)がいる。

さらにダイレクトマップではない場合(2-way以上のセットアソシアティブ)、
インデックス操作の無効化の際には必ず、書き戻しを先にしないといけない。
これを最初に設定してしまい、pmapの中ではI/D分離キャッシュでライトバック でエイリアス問題があるとして操作。実際にはキャッシュの状況によってそれ はNOPになるという方向にしてみた。
ただ、エイリアス問題は、エイリアスの解決方によってvm_pageに登録される pmap:vaの組が変わり、それによってキャッシュ操作のポリシーも変わるので考 えるところがある。
そしてさらに挑戦的にキャッシュ操作時のASIDを調べて、キャッシュ操作の対 象のpmapがASIDであれば、カーネルマップ以外でもヒット操作にしてみるよう にしてみた。これはn-wayセットアソシアティブの時だけにすべき。ダイレクト マップなら、インデックス操作もヒット操作も変わらないから。その場合無駄に TLB例外が発生することになる。
ここでOCBI命令がおかしいことに気付いた。とりあえずOCBIをOCBPに置きかえ れば動いてはいる。