google-code-prettify

2006-06-09

lazy FPU context switchとは[NetBSD]

FPUはレジスタが多数あるので、process switchの度に全てのレジスタを退避していたのでは、ムダが生じる。FPUを使わないアプリもあるし。
lazy FPU context switchを使うと、FPUの退避を必要最少限にする事ができる。
  • この機構が使えるのは、以下の条件を満たすCPUのみ。
    • FPUをdisableにする事ができる
    • FPUがdisable時にFPUを使おうとするとexceptionが発生する
  • process switch時には、FPUをdisableにしておく。
  • processがFPUを使おうとした時にexceptionがかかる。この時に(前にだれかが使っていた)FPUの中身を退避し、FPUをenableにする。
つまり、FPUの退避(FPU context switch)と他レジスタの退避(通常のcontext switch=process switch)は同期していない。
NetBSD Documentation: How lazy FPU context switch works

0 件のコメント: