タグ

memoryに関するnori0620のブックマーク (3)

  • メモリ増加に関して

  • Mitsuki's Magic Laboratory - OSカーネルが高位メモリにある訳

    仕事がアレな感じでなかなか進まないながらも、 先日買った 悪魔を読んでるわけですが、「5.3 カーネルにおけるメモリ管理」を読んで長年(?)の疑問が氷塊。もとい氷解。 FreeBSDといいWindowsといい、ユーザープロセスで使えるメモリ空間を減らしてまで、カーネルがユーザープロセス空間の高位(アドレス値の大きい端)を占めているのかずっと不思議だったのですが、どうもシステムコールの際のユーザー-カーネル間のデータコピーのコストを下げるためらしい。 両者が同じアドレス空間にあれば単なるメモリブロックコピーで済むところが、両者が違うメモリ空間にあると特殊な転送を行う必要があって遅くなるため……とのこと。カーネル時間の1/3はこの手のデータコピーにわれているそうなので、そりゃたしかに影響大きそうだなあ……。 まあ、x86ならカーネル空間とプロセス空間でセグメントを分ければ(ラージモデル)、

  • 【コラム】セカンド・オピニオン (55) バスのアーキテクチャ - 過去から未来へ(16) | パソコン | マイコミジャーナル

    ○シェアードバスのアーキテクチャ(4) 今回はDMAの続きを説明したい。さて、大量のデータを移動するにはどうすれば良いか? これには2つの発想の転換が必要だった。 CPUを使わない 従来のI/O命令を使う限り、高速アクセスを行う場合には十分なスピードを得る事が出来ない。前回の例で示したとおり、x86を例に取れば1回の転送あたり最低でも2命令(実際には3〜4命令になるだろう)を要することになるから、CPUを介さずにデータの転送を行わなければならない。 バースト転送 毎回、転送命令→データ転送→転送命令→データ転送→....を繰り返していたら、バスの転送効率はどんなに高くても50%程度ということになる。実際にはコマンドオーバーヘッドやら、転送リクエスト→データ転送開始までのオーバーヘッドなどもあるから、実質10%に満たない事も珍しくない。例えばPCIバスだと32bit/33MHzで、カタロ

  • 1