x86よくできてる点
アーキテクチャと実装混ざってるけど
- 命令dispが32bit届く
- immも32bit入ることが多い
- メモリが順序守る(何回も書くが、メモリ順序が緩いことによって得られたCPU時間より失なった人間時間のほうが絶対多いから)
- ファームウェアがBIOSとUEFIの二種類しかない (ボードごとにカーネルにディレクトリ作るのやめろ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に制限することで単純にしてる部分はある。そしてそれは柔軟性下がるトレードオフとひきかえだ。