10年ぐらい趣味でプログラムをやっていて、それで得た結論なんだけど、
アプリケーションレベルのプログラマが、HWレベルの知識が必須だとは俺は思わないなぁ。
スレの初期で、ページング云々パイプライン云々書いている人がいたが
そーいうのは、OSやコンパイラとか作ってる人に頑張ってもらえばいいと思う。
無駄だとは言わないけど、それらを覚える時間があるなら他に使った方がいいと思う。