[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 617] Re: いろいろお返事.




  こんばんは、Myurikaです。


  Hidemi KAWAI さんにいただいた [OSASK 614] いろいろお返事. へのお返事です。

>  ついでに・・・。きっとこれもお気づきでしょうが、knimuでウィン
>ドウを動かせないのは、オーバーラップ処理ができないせいです。マウ
>スカーソルよりも大きいものをオーバーラップして表示するのは大変な
>のです。・・・ちなみに、いつしか「ぐいぐい」(今のシェルの名前)
>でのウィンドウの重ねあわせ処理をご覧になったときは、Myurikaさん
>はまたしても笑わずにはいられないでしょう・・・。

  うーん、一番下のウィンドウから全部描き直すとか…。
  面倒くさくないですけど、ちらつきますよね(苦笑)。

>  そんで、シェル班はもっとまともなオーバーラップ処理のために、僕
>の代わりに苦労するわけです。・・・って、どんなごまかしかたなのか
>は、数ヶ月後のお楽しみ。

  ご苦労様です。>シェル班のみなさま

>  そうそう、きっと誰も気付いていないと思いますが、もう一つばらし
>ましょう。実は、文字の表示位置って、Y方向は1dot単位で制御できる
>くせに、X方向は8ドット単位なんですよね・・・。もちろん、将来のバ
>ージョンでは改善されますが・・・(分かる人には、笑)。

  高速な2値画像転送ルーチンとしてはデフォでしょう(笑)。>8pixel align

>>  描画処理がカウンタアップよりはるかに重い仕事ということは、そのカウンタ
>>を描いている間にも、描かれていないカウンタは進んでしまっているということ
>>なのでしょうから。
>>  マウスカーソル退避の処理を行っているタスクのカウンタが遅くなることから
>>も、これはおそらく正しいのではないでしょうか?
>  これはですね、僕も最初、うんうん、そうだそうだとうなずいていた
>のですが、実は影響していないかもしれません。VRAMのリソース管理の
>都合で、VRAMアクセス中はタスク切り替えが抑制されているからです。
>つまり、あるタスクがVRAMアクセスに入ってしまったら、その一連のア
>クセスが終了するまで、他のタスクは動けないのです。

  なるほど、そうでしたか。

>  では、なぜずれるのかというと、それはタイマー割り込みなどのハー
>ドウェア割り込み処理のせいだと思います。ハードウェア割り込みが起
>きると、その割り込み処理はその時のタスクが処理時間を負担します。
>・・・ええ、もちろん、これをもっと厳密にして割り込み処理の処理時
>間をどのタスクからも独立させることは可能です。そうすれば、もっと
>「ずれ」は小さくなるかもしれません。が、そのために追加される処理
>は割り込み処理時間から見ても無視できるものではなく、なんだか支払
>う犠牲が大きすぎるような気がするのです。さらに、そこまでやっても
>「ずれ」は残ります。割り込み処理のためにCPU内の実行パイプライン
>が乱れ、キャッシュが荒らされ、それによって「実行時間」と「実効命
>令数」の比例関係が少し変わります。そうなると、やっぱりその分の「
>ずれ」はどうしても生じます。

  そういったもの(パイプラインの乱れ/キャッシュにヒットしない)の影響は大き
いのですね…。知識として判ってはいても、数字で出てくると実感が増す感じが
します。


  ではまた。

| Myurika (尾藤主和) myurika !Atmark! pop06.odn.ne.jp |