次に、System i の48ビットCISC用のプログラムがどのようにして64ビットRISC用のプログラムに変換されるか、またその逆についても説明いたします。今System
i のV3R2のシステムがあり、48ビット対応のユーザー・プログラムがディスク装置に格納されているとします。このプログラムにはプログラム識別情報が含まれている前提です。このSystem
i システムからユーザー・プログラムをテープ装置に保管します。保管されたテープの中には48ビット対応の機械語命令を含むオブジェクト・プログラムがあります。保管されたテープを64ビットRISCモデルのSystem
i に接続されているテープ装置にセットし、復元を始めます。この復元時のオプションとして、テープからディスクに復元する際に48ビット対応のCISC機械語命令を各プログラム毎に64ビット対応のRISC機械語命令に変換することができます。64ビットRISCモデルのSystem
i 上のi5/OSには、翻訳機能があります。48ビットの機械語命令を持つオブジェクト・プログラムをRISC用のi5/OSがテープから読んだ時に、翻訳機能が、プログラム識別情報に格納されているMI命令を、64ビットの機械語命令に翻訳し、今まであった48ビット機械語命令を取り除き、置き換えます。これで64ビットに自動的に変換される訳です。それ以外のオプションとして、とりあえず48ビットのまま復元だけはしておいて、ライブラリー毎にまとめてオブジェクト・プログラムの翻訳を実行することもできます。また最後の手段として、48ビットのプログラムが64ビット・システムの環境で初めて実行される直前に48ビットから64ビットへの変換を実施する策もあります。
48ビットのCISCプログラムを64ビットのRISCプログラムに移行する場合、プログラム識別情報があれば可能です。
逆のケースとして、お客様はV3R2のCISCモデルを使用していて、V4R4のRISCモデルを使用している外部開発会社にプログラムの開発を委託しているとします。開発者は、プログラムをデバッグする際64ビットの環境で行います。開発したプログラムをお客様に収めるためにテープに保管します。そのテープをV3R2のシステムに移動し復元を行います。この時に、ターゲット・リリースがV3R2と設定されていれば、V3R2のi5/OSの中にある翻訳機能がプログラム中のMI命令を読み、48ビット対応の機械語を生成し、64ビット対応の機械語命令を取り除きます。
