x86よくできてる点

アーキテクチャと実装混ざってるけど

  • 命令dispが32bit届く
  • immも32bit入ることが多い
  • メモリが順序守る(何回も書くが、メモリ順序が緩いことによって得られたCPU時間より失なった人間時間のほうが絶対多いから)
  • ファームウェアBIOSUEFIの二種類しかない (ボードごとにカーネルディレクトリ作るのやめろARM)
  • 周辺デバイスPCIに統一されててキャッシュの問題が起こりづらい(もうdma_alloc_coherentの挙動調べるの飽きた)
  • キャッシュがソフト的に見れば一階層 (L2の挙動が定義されてないARMとかいう無名CPU)
  • 除算とFPUが付いてる
  • ABIがWin除けば32bitと64bitとx32の3種類しかない。
  • PCIe がキャッシュスヌープ付けてフルスピード近く出る
  • lock cmpxchg が遅くない
  • *fence が遅くない

こういう問題で別のアーキがx86より優れてると思ったことないんだよな。

あえて言うなら僕はlock cmpxchgよりll/scのほうが好きだからll/sc 欲しいとかかな。しかしメモリバリアをはらないMIPSのll/scとかいう謎の命令…

マイナー化したPPC,MIPSはともかく、数ではx86より出てるARMはちゃんとリソース割いてちゃんとしてくれよな〜。ABI, ファームウェアまわりはPPCのほうがちゃんと作ってあるで。

まあx86ファームウェアEFIに、周辺デバイスPCIに制限することで単純にしてる部分はある。そしてそれは柔軟性下がるトレードオフとひきかえだ。