PX

PX ( PM Bus Exchange ) レジスタは、PMDバスを使って24ビットメモリーとデータをやり取りするときに使います。ADSP-2191のコアは16ビットのレジスタしか持っておらず、24ビットメモリーからのデータを取り落としてしまいます。そこで、PXレジスタを補助として用います。

PXレジスタを使わなければならないのは、命令を書き直す場合に限ります。データの取り扱いにはPXは使いません。したがって、通常プログラマが直接PXを使うことはありません。

レジスタの構造

図1にデータ配置を示します。初期値は不定です。

図1 レジスタの構造

PXレジスタはPMDバスを使って24ビットメモリーとデータを転送するときに使います。

PM(...)=reg
この場合、regの値がメモリーの上位16ビットに格納され、PXの値が下位8ビットに格納されます。
reg=PM(...)
この場合、regにメモリーの上位16ビットが格納され、PXに下位8ビットの値が格納されます。

ポストモディファイPM転送プリモディファイPM転送命令も参照してください。

このレジスタは8ビットレジスタです。他のレジスタやメモリーとPXの間でデータをやり取りする場合、PXは16ビットの中で右詰し、上位はゼロフィル扱いになります。

API

C/C++言語用のAPI関数は用意されていません。

レイテンシ

PXのレイテンシはISR中で見当たりませんが、1だと思われます。

レイテンシが1のとき、直後の命令からその値を使うことができます。レイテンシが2以上のとき、直後の命令でその値を参照しようとすると、古い値を参照します。なお、この表のレイテンシの数え方はHRとは異なっています。

参照情報

項目 マニュアルのページ等
PMDバス転送 HR 5-4
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |