Intel iAPX 432
43203インタフェースプロセッサ (IP) を使って、より一般的なマイクロプロセッサをiAPX 432システムにアタッチドプロセッサ (AP) として接続することができる。APはインテリジェントな入出力コントローラとして動作する。IPはメモリマップドウィンドウを通してAPがメモリ上のiAPX 432のオブジェクトにアクセスできるようにする。ただし、アクセス権はこのときも有効に働く。
IPは5個のメモリウィンドウを提供する。4つは入出力のためにオブジェクトをマップするのに使われ、5番目はAPからの要求(たとえば他のウィンドウのマップを変えるなど)を伝えるための制御ウィンドウとして使う。
IPは特別な物理モードも用意していて、APが全メモリ空間に自由にアクセスすることもできる。物理モードはシステム立ち上げ時とデバッガ用に用意されたものである。
いくつかの設計上の特徴が足かせとなり、iAPX 432は予定よりもさらに性能が低下することになった。GDPをふたつのチップで実装したため、マザーボードの電気的な配線のスピードの制約をうけることになったが、これは主要な性能低下要因ではない。キャッシュとレジスタの不足はより深刻な問題であった。命令セットも悪影響を与えた。任意の長さで整列されていない命令なので一般的なワード境界に揃えられた固定長命令に比べるとデコードが複雑で遅くなってしまった。加えてBIUはフォールトトレラントシステムを考慮しているため、バスのオーバーヘッドが極めて大きく、約40%の時間がウェイト状態となってしまった。
後の研究では、もっとも大きな問題はAdaコンパイラにあったと指摘されている。すなわち、コストの低い単純な命令ではなく、コストの高い高機能命令を常に使うようなコードを生成していたからである。たとえばiAPX 432は非常に時間のかかるモジュール間プロシージャコール命令を持っていたが、コンパイラはすべてのサブルーチンコールにそれを用いて、もっと高速な分岐+リンク命令を用いなかった。もうひとつの時間のかかる命令としてenter_environmentがある。これはメモリプロテクションを設定する命令である。コンパイラはプログラム中の変数ひとつひとつにこの命令を生成したが、ほとんどの場合environmentを設定する必要はなかった。さらに困ったことに、プロシージャコールに際して引数をポインタではなく値で渡していたため、多くの場合メモリコピーが大量に必要となった。