(57)【要約】【課題】処理装置で使用される形式のデータをメモリに書き込む際に圧縮して書き込み、メモリから読み出す際に伸長して読み出す。【解決手段】アドレス変換部３２０は処理装置１００側からのアドレスを浮動小数点データ空間から固定小数点データ空間に変換する。データ圧縮部３３０は処理装置１００側からの浮動小数点形式データを固定小数点形式データに変換する。データ伸長部３４０はメモリ４００側からの固定小数点形式データを浮動小数点形式データに変換する。アドレスの所定部分はデータ変換の際に固定小数点形式データにおける指数部として利用される。【選択図】　　　図１
2004023526.tif 000002
【特許請求の範囲】
【請求項１】
処理装置から出力されたメモリへの第１の形式のデータの書込み命令に応答して、前記第１の形式のデータを第２の形式のデータに変換してメモリに出力するデータ変換装置であって、
前記処理装置から出力された前記書込み命令に対応する書込みアドレスの所定部分と前記第２の形式のデータとによって前記第１の形式のデータが近似されることを特徴とするデータ変換装置。
【請求項２】
前記第１の形式のデータは浮動小数点形式データであって、前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項１記載のデータ変換装置。
【請求項３】
前記第１の形式のデータは前記浮動小数点形式データとしての指数部と仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとしての仮数部を含み、前記アドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項２記載のデータ変換装置。
【請求項４】
処理装置から出力されたメモリからの第１の形式のデータの読出し命令に応答して、メモリから出力された第２の形式のデータを前記第１の形式のデータに変換して前記処理装置に出力するデータ変換装置であって、
前記処理装置から出力された前記読出し命令に対応する読出しアドレスの所定部分と前記第２の形式のデータとによって前記第１の形式のデータが近似されることを特徴とするデータ変換装置。
【請求項５】
前記第１の形式のデータは浮動小数点形式データであって、前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項４記載のデータ変換装置。
【請求項６】
前記第１の形式のデータは前記浮動小数点形式データとしての指数部および仮数部を含み、
前記第２の形式のデータは前記固定小数点形式データとしての仮数部を含み、前記アドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項５記載のデータ変換装置。
【請求項７】
処理装置から出力されたメモリへの第１の形式のデータの書込み命令に応答して、前記第１の形式のデータを第２の形式のデータに変換するデータ変換装置であって、
前記処理装置から出力された前記書込み命令に対応する書込みアドレスの所定部分と前記第１の形式のデータにおける第１の所定部分とによって定められる回数を出力する手段と、
前記回数に従って前記第１の形式のデータにおける第２の所定部分に所定の操作を施して前記第２の形式のデータにおける所定部分とする手段と
を具備することを特徴とするデータ変換装置。
【請求項８】
前記第１の形式のデータは浮動小数点形式データであって、前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項７記載のデータ変換装置。
【請求項９】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記書込みアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項８記載のデータ変換装置。
【請求項１０】
前記所定の操作は右シフト操作であることを特徴とする請求項９記載のデータ変換装置。
【請求項１１】
前記書込みアドレスを所定のアドレスに変換する手段と、
前記書込みアドレスが所定領域にあることを検出する手段と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記変換されたアドレスを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記書込みアドレスをそのまま前記メモリに出力する手段と
をさらに具備することを特徴とする請求項７記載のデータ変換装置。
【請求項１２】
前記書込みアドレスが所定領域にあることを検出する手段と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記第２の形式のデータを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記処理装置から出力されたデータをそのまま前記メモリに出力する手段と
をさらに具備することを特徴とする請求項７記載のデータ変換装置。
【請求項１３】
前記第１の形式のデータが所定の数値であることを検出する手段と、
前記第１の形式のデータが所定の数値であることが検出された場合には予め定められたデータを前記メモリに出力する手段と
をさらに具備することを特徴とする請求項７記載のデータ変換装置。
【請求項１４】
前記第１の形式のデータが所定の数値であることが検出された場合には前記処理装置に対して割込みを報告する手段をさらに具備することを特徴とする請求項１３記載のデータ変換装置。
【請求項１５】
報告された前記割込みについて装置内部の状態を保持するコントロールレジスタをさらに保持することを特徴とする請求項１４記載のデータ変換装置。
【請求項１６】
前記コントロールレジスタは、前記割込みを受け付けるか否かを設定する割込みマスクレジスタをさらに含むことを特徴とする請求項１５記載のデータ変換装置。
【請求項１７】
処理装置から出力されたメモリへの第１の形式のデータの書込み命令に応答して、前記第１の形式のデータを第２の形式のデータに変換するデータ変換方法であって、
前記処理装置から出力された前記書込み命令に対応する書込みアドレスの所定部分と前記第１の形式のデータにおける第１の所定部分とによって定められる回数をコンピュータが出力する手順と、
前記回数に従って前記第１の形式のデータにおける第２の所定部分にコンピュータが所定の操作を施して前記第２の形式のデータにおける所定部分とする手順と
を具備することを特徴とするデータ変換方法。
【請求項１８】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項１７記載のデータ変換方法。
【請求項１９】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記書込みアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項１８記載のデータ変換方法。
【請求項２０】
前記所定の操作は右シフト操作であることを特徴とする請求項１９記載のデータ変換方法。
【請求項２１】
コンピュータが前記書込みアドレスを所定のアドレスに変換する手順と、
前記書込みアドレスが所定領域にあることをコンピュータが検出する手順と、前記書込みアドレスが前記所定領域にあることが検出された場合にはコンピュータが前記変換されたアドレスを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合にはコンピュータが前記書込みアドレスをそのまま前記メモリに出力する手順と
をさらに具備することを特徴とする請求項１７記載のデータ変換方法。
【請求項２２】
前記書込みアドレスが所定領域にあることをコンピュータが検出する手順と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記第２の形式のデータをコンピュータが前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記処理装置から出力されたデータをコンピュータがそのまま前記メモリに出力する手順と
をさらに具備することを特徴とする請求項１７記載のデータ変換方法。
【請求項２３】
前記第１の形式のデータが所定の数値であることをコンピュータが検出する手順と、
前記第１の形式のデータが所定の数値であることが検出された場合には予め定められたデータをコンピュータが前記メモリに出力する手順と
をさらに具備することを特徴とする請求項１７記載のデータ変換方法。
【請求項２４】
前記第１の形式のデータが所定の数値であることが検出された場合にはコンピュータが前記処理装置に対して割込みを報告する手順をさらに具備することを特徴とする請求項２３記載のデータ変換方法。
【請求項２５】
処理装置から出力されたメモリへの第１の形式のデータの書込み命令に応答して、前記第１の形式のデータを第２の形式のデータに変換するための手順をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記処理装置から出力された前記書込み命令に対応する書込みアドレスの所定部分と前記第１の形式のデータにおける第１の所定部分とによって定められる回数を出力する手順と、
前記回数に従って前記第１の形式のデータにおける第２の所定部分に所定の操作を施して前記第２の形式のデータにおける所定部分とする手順と
をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２６】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項２５記載のコンピュータ読み取り可能な記録媒体。
【請求項２７】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記書込みアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項２６記載のコンピュータ読み取り可能な記録媒体。
【請求項２８】
前記所定の操作は右シフト操作であることを特徴とする請求項２７記載のコンピュータ読み取り可能な記録媒体。
【請求項２９】
前記書込みアドレスを所定のアドレスに変換する手順と、
前記書込みアドレスが所定領域にあることを検出する手順と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記変換されたアドレスを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記書込みアドレスをそのまま前記メモリに出力する手順と
をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項２５記載のコンピュータ読み取り可能な記録媒体。
【請求項３０】
前記書込みアドレスが所定領域にあることを検出する手順と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記第２の形式のデータを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記処理装置から出力されたデータをそのまま前記メモリに出力する手順と
をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項２５記載のコンピュータ読み取り可能な記録媒体。
【請求項３１】
前記第１の形式のデータが所定の数値であることを検出する手順と、
前記第１の形式のデータが所定の数値であることが検出された場合には予め定められたデータを前記メモリに出力する手順と
をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項２５記載のコンピュータ読み取り可能な記録媒体。
【請求項３２】
前記第１の形式のデータが所定の数値であることが検出された場合には前記処理装置に対して割込みを報告する手順をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項３１記載のコンピュータ読み取り可能な記録媒体。
【請求項３３】
処理装置から出力されたメモリへの第１の形式のデータの書込み命令に応答して、前記第１の形式のデータを第２の形式のデータに変換するための手順をコンピュータに実行させるためのプログラムであって、
前記処理装置から出力された前記書込み命令に対応する書込みアドレスの所定部分と前記第１の形式のデータにおける第１の所定部分とによって定められる回数を出力する手順と、
前記回数に従って前記第１の形式のデータにおける第２の所定部分に所定の操作を施して前記第２の形式のデータにおける所定部分とする手順と
をコンピュータに実行させることを特徴とするプログラム。
【請求項３４】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項３３記載のプログラム。
【請求項３５】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記書込みアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項３４記載のプログラム。
【請求項３６】
前記所定の操作は右シフト操作であることを特徴とする請求項３５記載のプログラム。
【請求項３７】
前記書込みアドレスを所定のアドレスに変換する手順と、
前記書込みアドレスが所定領域にあることを検出する手順と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記変換されたアドレスを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記書込みアドレスをそのまま前記メモリに出力する手順と
をさらにコンピュータに実行させることを特徴とする請求項３３記載のプログラム。
【請求項３８】
前記書込みアドレスが所定領域にあることを検出する手順と、
前記書込みアドレスが前記所定領域にあることが検出された場合には前記第２の形式のデータを前記メモリに出力し、前記書込みアドレスが前記所定領域にあることが検出されなかった場合には前記処理装置から出力されたデータをそのまま前記メモリに出力する手順と
をさらにコンピュータに実行させることを特徴とする請求項３３記載のプログラム。
【請求項３９】
前記第１の形式のデータが所定の数値であることを検出する手順と、
前記第１の形式のデータが所定の数値であることが検出された場合には予め定められたデータを前記メモリに出力する手順と
をさらにコンピュータに実行させることを特徴とする請求項３３記載のプログラム。
【請求項４０】
前記第１の形式のデータが所定の数値であることが検出された場合には前記処理装置に対して割込みを報告する手順をさらにコンピュータに実行させることを特徴とする請求項３９記載のプログラム。
【請求項４１】
処理装置から出力されたメモリからの第１の形式のデータの読出し命令に応答して、前記メモリから出力された第２の形式のデータを第１の所定部分と第２の所定部分とを含む前記第１の形式のデータに変換するデータ変換装置であって、
前記第２の形式のデータにおける所定部分に対して所定の条件を満たすまで所定の操作を繰り返して前記第１の形式のデータにおける前記第２の所定部分とする手段と、
前記処理装置から出力された前記読出し命令に対応する読出しアドレスの所定部分と前記所定の操作を繰り返した回数とによって定められる数を前記第１の形式のデータにおける前記第１の所定部分とする手段と
を具備することを特徴とするデータ変換装置。
【請求項４２】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項４１記載のデータ変換装置。
【請求項４３】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記読出しアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項４２記載のデータ変換装置。
【請求項４４】
前記所定の操作は左シフト操作であり、
前記所定の条件は前記左シフト操作により前記第２の形式のデータの左端から特定のビットがシフトアウトされることである
ことを特徴とする請求項４３記載のデータ変換装置。
【請求項４５】
前記読出しアドレスを所定のアドレスに変換する手段と、
前記読出しアドレスが所定領域にあることを検出する手段と、
前記読出しアドレスが前記所定領域にあることが検出された場合には前記変換されたアドレスを前記メモリに出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合には前記読出しアドレスをそのまま前記メモリに出力する手段と
をさらに具備することを特徴とする請求項４１記載のデータ変換装置。
【請求項４６】
前記読出しアドレスが所定領域にあることを検出する手段と、
前記読出しアドレスが前記所定領域にあることが検出された場合には前記第１の形式のデータを前記処理装置に出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合には前記メモリから読み出したデータをそのまま前記処理装置に出力する手段と
をさらに具備することを特徴とする請求項４１記載のデータ変換装置。
【請求項４７】
前記第２の形式のデータが所定の数値であることを検出する手段と、
前記第２の形式のデータが所定の数値であることが検出された場合には予め定められたデータを前記処理装置に出力する手段と
をさらに具備することを特徴とする請求項４１記載のデータ変換装置。
【請求項４８】
前記第２の形式のデータが所定の数値であることが検出された場合には前記処理装置に対して割込みを報告する手段をさらに具備することを特徴とする請求項４７記載のデータ変換装置。
【請求項４９】
報告された前記割込みについて装置内部の状態を保持するコントロールレジスタをさらに保持することを特徴とする請求項４８記載のデータ変換装置。
【請求項５０】
前記コントロールレジスタは、前記割込みを受け付けるか否かを設定する割込みマスクレジスタをさらに含むことを特徴とする請求項４９記載のデータ変換装置。
【請求項５１】
処理装置から出力されたメモリからの第１の形式のデータの読出し命令に応答して、前記メモリから出力された第２の形式のデータを第１の所定部分と第２の所定部分とを含む前記第１の形式のデータに変換するデータ変換方法であって、
コンピュータが前記第２の形式のデータにおける所定部分に対して所定の条件を満たすまで所定の操作を繰り返して前記第１の形式のデータにおける前記第２の所定部分とする手順と、
前記処理装置から出力された前記読出し命令に対応する読出しアドレスの所定部分と前記所定の操作を繰り返した回数とによって定められる数をコンピュータが前記第１の形式のデータにおける前記第１の所定部分とする手順と
を具備することを特徴とするデータ変換方法。
【請求項５２】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項５１記載のデータ変換方法。
【請求項５３】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記読出しアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項５２記載のデータ変換方法。
【請求項５４】
前記所定の操作は左シフト操作であり、
前記所定の条件は前記左シフト操作により前記第２の形式のデータの左端から特定のビットがシフトアウトされることである
ことを特徴とする請求項５３記載のデータ変換方法。
【請求項５５】
コンピュータが前記読出しアドレスを所定のアドレスに変換する手順と、
前記読出しアドレスが所定領域にあることをコンピュータが検出する手順と、前記読出しアドレスが前記所定領域にあることが検出された場合にはコンピュータが前記変換されたアドレスを前記メモリに出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合にはコンピュータが前記読出しアドレスをそのまま前記メモリに出力する手順と
をさらに具備することを特徴とする請求項５１記載のデータ変換方法。
【請求項５６】
前記読出しアドレスが所定領域にあることをコンピュータが検出する手順と、
前記読出しアドレスが前記所定領域にあることが検出された場合にはコンピュータが前記第１の形式のデータを前記処理装置に出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合にはコンピュータが前記メモリから読み出したデータをそのまま前記処理装置に出力する手順と
をさらに具備することを特徴とする請求項５１記載のデータ変換方法。
【請求項５７】
前記第２の形式のデータが所定の数値であることをコンピュータが検出する手順と、
前記第２の形式のデータが所定の数値であることが検出された場合にはコンピュータが予め定められたデータを前記処理装置に出力する手順と
をさらに具備することを特徴とする請求項５１記載のデータ変換方法。
【請求項５８】
前記第２の形式のデータが所定の数値であることが検出された場合にはコンピュータが前記処理装置に対して割込みを報告する手順をさらに具備することを特徴とする請求項５７記載のデータ変換方法。
【請求項５９】
処理装置から出力されたメモリからの第１の形式のデータの読出し命令に応答して、前記メモリから出力された第２の形式のデータを第１の所定部分と第２の所定部分とを含む前記第１の形式のデータに変換するための手順をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記第２の形式のデータにおける所定部分に対して所定の条件を満たすまで所定の操作を繰り返して前記第１の形式のデータにおける前記第２の所定部分とする手順と、
前記処理装置から出力された前記読出し命令に対応する読出しアドレスの所定部分と前記所定の操作を繰り返した回数とによって定められる数を前記第１の形式のデータにおける前記第１の所定部分とする手順と
をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項６０】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項５９記載のコンピュータ読み取り可能な記録媒体。
【請求項６１】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記読出しアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項６０記載のコンピュータ読み取り可能な記録媒体。
【請求項６２】
前記所定の操作は左シフト操作であり、
前記所定の条件は前記左シフト操作により前記第２の形式のデータの左端から特定のビットがシフトアウトされることである
ことを特徴とする請求項６１記載のコンピュータ読み取り可能な記録媒体。
【請求項６３】
前記読出しアドレスを所定のアドレスに変換する手順と、
前記読出しアドレスが所定領域にあることを検出する手順と、
前記読出しアドレスが前記所定領域にあることが検出された場合には前記変換されたアドレスを前記メモリに出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合には前記読出しアドレスをそのまま前記メモリに出力する手順と
をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項５９記載のコンピュータ読み取り可能な記録媒体。
【請求項６４】
前記読出しアドレスが所定領域にあることを検出する手順と、
前記読出しアドレスが前記所定領域にあることが検出された場合には前記第１の形式のデータを前記処理装置に出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合には前記メモリから読み出したデータをそのまま前記処理装置に出力する手順と
をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項５９記載のコンピュータ読み取り可能な記録媒体。
【請求項６５】
前記第２の形式のデータが所定の数値であることを検出する手順と、
前記第２の形式のデータが所定の数値であることが検出された場合には予め定められたデータを前記処理装置に出力する手順と
をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項５９記載のコンピュータ読み取り可能な記録媒体。
【請求項６６】
前記第２の形式のデータが所定の数値であることが検出された場合には前記処理装置に対して割込みを報告する手順をさらにコンピュータに実行させるためのプログラムを記録したことを特徴とする請求項６５記載のコンピュータ読み取り可能な記録媒体。
【請求項６７】
処理装置から出力されたメモリからの第１の形式のデータの読出し命令に応答して、前記メモリから出力された第２の形式のデータを第１の所定部分と第２の所定部分とを含む前記第１の形式のデータに変換するための手順をコンピュータに実行させるためのプログラムであって、
前記第２の形式のデータにおける所定部分に対して所定の条件を満たすまで所定の操作を繰り返して前記第１の形式のデータにおける前記第２の所定部分とする手順と、
前記処理装置から出力された前記読出し命令に対応する読出しアドレスの所定部分と前記所定の操作を繰り返した回数とによって定められる数を前記第１の形式のデータにおける前記第１の所定部分とする手順と
をコンピュータに実行させることを特徴とするプログラム。
【請求項６８】
前記第１の形式のデータは浮動小数点形式データであって、
前記第２の形式のデータは固定小数点形式データであることを特徴とする請求項６７記載のプログラム。
【請求項６９】
前記第１の形式のデータは前記浮動小数点形式データとして前記第１の所定部分である指数部と前記第２の所定部分である仮数部とを含み、
前記第２の形式のデータは前記固定小数点形式データとして前記所定部分である仮数部を含み、
前記読出しアドレスの所定部分は前記固定小数点形式データとしての指数部を含むことを特徴とする請求項６８記載のプログラム。
【請求項７０】
前記所定の操作は左シフト操作であり、
前記所定の条件は前記左シフト操作により前記第２の形式のデータの左端から特定のビットがシフトアウトされることである
ことを特徴とする請求項６９記載のプログラム。
【請求項７１】
前記読出しアドレスを所定のアドレスに変換する手順と、前記読出しアドレスが所定領域にあることを検出する手順と、
前記読出しアドレスが前記所定領域にあることが検出された場合には前記変換されたアドレスを前記メモリに出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合には前記読出しアドレスをそのまま前記メモリに出力する手順と
をさらにコンピュータに実行させることを特徴とする請求項６７記載のプログラム。
【請求項７２】
前記読出しアドレスが所定領域にあることを検出する手順と、
前記読出しアドレスが前記所定領域にあることが検出された場合には前記第１の形式のデータを前記処理装置に出力し、前記読出しアドレスが前記所定領域にあることが検出されなかった場合には前記メモリから読み出したデータをそのまま前記処理装置に出力する手順と
をさらにコンピュータに実行させることを特徴とする請求項６７記載のプログラム。
【請求項７３】
前記第２の形式のデータが所定の数値であることを検出する手順と、
前記第２の形式のデータが所定の数値であることが検出された場合には予め定められたデータを前記処理装置に出力する手順と
をさらにコンピュータに実行させることを特徴とする請求項６７記載のプログラム。
【請求項７４】
前記第２の形式のデータが所定の数値であることが検出された場合には前記処理装置に対して割込みを報告する手順をさらにコンピュータに実行させることを特徴とする請求項７３記載のプログラム。
【発明の詳細な説明】
【発明の属する技術分野】
本発明は、データ変換装置、データ変換方法、および、データ変換方法を実行させるためのプログラムならびにその記録媒体に関し、特にデータを圧縮してメモリに書き込み、その後メモリから読み出したデータを伸長するデータ変換装置に関する。なお、ここにいう変換とは、これら圧縮および伸長を含む広い概念として使用する。
【０００１】
【従来の技術】
実数を固定有限長の２進数により表現する形式として、固定小数点形式と浮動小数点形式とがある。固定小数点形式とは、小数点を特定の位置に固定して表現する方法であり、一般に、数値を表す部分に符号ビットを加えた構成を有する。一方、浮動小数点形式とは、整数ｒを基数として、ｒ進固定小数点数ｆ（仮数部）とｒ進整数ｅ（指数部）との組合せによってある数ｙを表すものであり、この場合、数ｙは仮数部ｆにｒのｅ乗を掛け合わせたもの（ｙ＝ｆ×ｒｅ）になる。一般には基数としてｒ＝２が用いられ、さらに符号ビットを加えた構成を有する。
【０００２】
固定小数点形式は、小数点位置が固定されているという性質上、ダイナミックレンジが狭く、表現できる範囲が限定される。そこで、実際にプログラムを作成する際には、浮動小数点形式の考え方に倣い、固定小数点形式の数値部分を仮数部に見立てて、指数部を別の変数に保持しておくことにより、小数点位置を適宜変更するという手法が利用される。但し、この場合、演算のダイナミックレンジを把握して、オーバフローやアンダーフローが発生しないように指数部を設定する必要がある。
【０００３】
これに対し、浮動小数点形式は、仮数部の有限精度を保ちながら演算を行うことが可能であり、指数部を可変とすることによって広いダイナミックレンジを実現する。そのため、ダイナミックレンジは大雑把に把握していればよく、プログラム開発を効率良く行うことができる。また、特に浮動小数点演算ユニットを有する処理装置では、高速に浮動小数点形式の数値演算が可能である。
【０００４】
【発明が解決しようとする課題】
しかしながら、浮動小数点形式は仮数部をデータに含んで構成されるため、固定小数点形式と比べてより多くのビット数を要する。例えば、固定小数点形式として一般に使用される形式は１５ビットの数値部分を含む１６ビットデータであるが、ＩＥＥＥ（米国電気電子学会）規格（ＩＥＥＥ　ｓｔａｎｄａｒｄ　７５４−１９８５）による単精度浮動小数点形式のデータは２３ビットの仮数部を含む３２ビットデータである。浮動小数点形式データをテーブルに多数用意して演算を行うような場合には、これらデータ容量の問題は特に深刻になる。
【０００５】
例えば、４１ＫＨｚから３２ＫＨｚへのサンプリングレートコンバータを実現するためには、５１２乃至１０２４のタップ数（係数の数）を有するＦＩＲフィルタを構成しなければならず、これら係数をテーブルに保持するためには各データを極力コンパクトに収めることが必要となる。
【０００６】
本発明の目的は、処理装置で使用される形式のデータをメモリに書き込む際に圧縮して書き込み、メモリから読み出す際に伸長して読み出すデータ変換装置を提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために本発明の書込み命令に対応するデータ変換装置は、処理装置から出力されたメモリへの第１の形式のデータの書込み命令に応答して、上記第１の形式のデータを第２の形式のデータに変換するデータ変換装置であって、上記処理装置から出力された上記書込み命令に対応する書込みアドレスの所定部分と上記第１の形式のデータにおける第１の所定部分とによって定められる回数を出力する手段と、上記回数に従って上記第１の形式のデータにおける第２の所定部分に所定の操作を施して上記第２の形式のデータにおける所定部分とする手段とを具備する。これにより、上記処理装置から出力された上記書込み命令に対応する書込みアドレスの所定部分と上記第２の形式のデータとによって上記第１の形式のデータが近似されるという作用をもたらす。
【０００８】
また、本発明の書込み命令に対応する他のデータ変換装置において、上記第１の形式のデータは浮動小数点形式データであって、上記第２の形式のデータは固定小数点形式データである。これにより、上記処理装置から出力された上記書込み命令に対応する書込みアドレスの所定部分と上記固定小数点形式データとによって上記浮動小数点形式データが近似されるという作用をもたらす。
【０００９】
また、本発明の書込み命令に対応する他のデータ変換装置において、上記第１の形式のデータは上記浮動小数点形式データとして上記第１の所定部分である指数部と上記第２の所定部分である仮数部とを含み、上記第２の形式のデータは上記固定小数点形式データとして上記所定部分である仮数部を含み、上記書込みアドレスの所定部分は上記固定小数点形式データとしての指数部を含む。これにより、上記処理装置から出力された上記書込み命令に対応する書込みアドレスにおける上記固定小数点形式データとしての指数部と上記固定小数点形式データの仮数部とによって上記浮動小数点形式データの指数部および仮数部が近似されるという作用をもたらす。
【００１０】
また、本発明の書込み命令に対応する他のデータ変換装置において、上記所定の操作は右シフト操作である。これにより、上記浮動小数点形式データの仮数部が上記固定小数点形式データの仮数部に変換されるという作用をもたらす。
【００１１】
また、本発明の書込み命令に対応する他のデータ変換装置は、上記書込みアドレスを所定のアドレスに変換する手段と、上記書込みアドレスが所定領域にあることを検出する手段と、上記書込みアドレスが上記所定領域にあることが検出された場合には上記変換されたアドレスを上記メモリに出力し、上記書込みアドレスが上記所定領域にあることが検出されなかった場合には上記書込みアドレスをそのまま上記メモリに出力する手段とをさらに具備する。これにより、書込みアドレスの領域によってアドレス変換の要否を制御するという作用をもたらす。
【００１２】
また、本発明の書込み命令に対応する他のデータ変換装置は、上記書込みアドレスが所定領域にあることを検出する手段と、上記書込みアドレスが上記所定領域にあることが検出された場合には上記第２の形式のデータを上記メモリに出力し、上記書込みアドレスが上記所定領域にあることが検出されなかった場合には上記処理装置から出力されたデータをそのまま上記メモリに出力する手段とをさらに具備する。これにより、書込みアドレスの領域によってデータ変換の要否を制御するという作用をもたらす。
【００１３】
また、本発明の書込み命令に対応する他のデータ変換装置は、上記第１の形式のデータが所定の数値であることを検出する手段と、上記第１の形式のデータが所定の数値であることが検出された場合には予め定められたデータを上記メモリに出力する手段とをさらに具備する。これにより、上記第１の形式のデータが所定の数値であれば予め定められたデータをメモリに出力するという作用をもたらす。
【００１４】
また、本発明の書込み命令に対応する他のデータ変換装置は、上記第１の形式のデータが所定の数値であることが検出された場合には上記処理装置に対して割込みを報告する手段をさらに具備する。これにより、上記第１の形式のデータが所定の数値であれば上記処理装置に対して割込みを報告するという作用をもたらす。
【００１５】
また、本発明の書込み命令に対応する他のデータ変換装置は、報告された上記割込みについて装置内部の状態を保持するコントロールレジスタをさらに保持する。これにより、割込みに際して装置内部の状態を容易に把握させるという作用をもたらす。
【００１６】
また、本発明の書込み命令に対応する他のデータ変換装置において、上記コントロールレジスタは、上記割込みを受け付けるか否かを設定する割込みマスクレジスタをさらに含む。これにより、割込みの報告を受け付けるか否かを制御するという作用をもたらす。
【００１７】
上記課題を解決するために本発明の読出し命令に対応するデータ変換装置は、処理装置から出力されたメモリからの第１の形式のデータの読出し命令に応答して、上記メモリから出力された第２の形式のデータを第１の所定部分と第２の所定部分とを含む上記第１の形式のデータに変換するデータ変換装置であって、上記第２の形式のデータにおける所定部分に対して所定の条件を満たすまで所定の操作を繰り返して上記第１の形式のデータにおける上記第２の所定部分とする手段と、上記処理装置から出力された上記読出し命令に対応する読出しアドレスの所定部分と上記所定の操作を繰り返した回数とによって定められる数を上記第１の形式のデータにおける上記第１の所定部分とする手段とを具備する。これにより、上記処理装置から出力された上記読出し命令に対応する読出しアドレスの所定部分と上記第２の形式のデータとによって上記第１の形式のデータが近似されるという作用をもたらす。
【００１８】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置において、上記第１の形式のデータは浮動小数点形式データであって、上記第２の形式のデータは固定小数点形式データである。これにより、上記処理装置から出力された上記読出し命令に対応する読出しアドレスの所定部分と上記固定小数点形式データとによって上記浮動小数点形式データが近似されるという作用をもたらす。
【００１９】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置において、上記第１の形式のデータは上記浮動小数点形式データとして上記第１の所定部分である指数部と上記第２の所定部分である仮数部とを含み、上記第２の形式のデータは上記固定小数点形式データとして上記所定部分である仮数部を含み、上記読出しアドレスの所定部分は上記固定小数点形式データとしての指数部を含む。これにより、上記処理装置から出力された上記読出し命令に対応する読出しアドレスにおける上記固定小数点形式データとしての指数部と上記固定小数点形式データの仮数部とによって上記浮動小数点形式データの指数部および仮数部が近似されるという作用をもたらす。
【００２０】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置において、上記所定の操作は左シフト操作であり、上記所定の条件は上記左シフト操作により上記第２の形式のデータの左端から特定のビットがシフトアウトされることである。これにより、上記固定小数点形式データの仮数部が上記浮動小数点形式データの仮数部に変換されるという作用をもたらす。
【００２１】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置は、上記読出しアドレスを所定のアドレスに変換する手段と、上記読出しアドレスが所定領域にあることを検出する手段と、上記読出しアドレスが上記所定領域にあることが検出された場合には上記変換されたアドレスを上記メモリに出力し、上記読出しアドレスが上記所定領域にあることが検出されなかった場合には上記読出しアドレスをそのまま上記メモリに出力する手段とをさらに具備する。これにより、読出しアドレスの領域によってアドレス変換の要否を制御するという作用をもたらす。
【００２２】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置は、上記読出しアドレスが所定領域にあることを検出する手段と、上記読出しアドレスが上記所定領域にあることが検出された場合には上記第１の形式のデータを上記処理装置に出力し、上記読出しアドレスが上記所定領域にあることが検出されなかった場合には上記メモリから読み出したデータをそのまま上記処理装置に出力する手段とをさらに具備する。これにより、読出しアドレスの領域によってデータ変換の要否を制御するという作用をもたらす。
【００２３】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置は、上記第２の形式のデータが所定の数値であることを検出する手段と、上記第２の形式のデータが所定の数値であることが検出された場合には予め定められたデータを上記処理装置に出力する手段とをさらに具備する。これにより、上記第２の形式のデータが所定の数値であれば予め定められたデータを処理装置に出力するという作用をもたらす。
【００２４】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置は、上記第２の形式のデータが所定の数値であることが検出された場合には上記処理装置に対して割込みを報告する手段をさらに具備する。これにより、上記第２の形式のデータが所定の数値であれば上記処理装置に対して割込みを報告するという作用をもたらす。
【００２５】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置は、報告された上記割込みについて装置内部の状態を保持するコントロールレジスタをさらに保持する。これにより、割込みに際して装置内部の状態を容易に把握させるという作用をもたらす。
【００２６】
上記課題を解決するために本発明の読出し命令に対応する他のデータ変換装置において、上記コントロールレジスタは、上記割込みを受け付けるか否かを設定する割込みマスクレジスタをさらに含む。これにより、割込みの報告を受け付けるか否かを制御するという作用をもたらす。
【００２７】
【発明の実施の形態】
次に本発明のデータ変換装置の実施の形態について図面を参照して詳細に説明する。
【００２８】
図１を参照すると、本発明におけるデータ変換装置の実施の形態は、一例として、バス２００を介して処理装置１００に接続するとともに、メモリ４００に接続される。データ変換装置３００は、バス２００に接続するバスインタフェース３１０と、メモリ４００に接続するメモリインタフェース３５０と、バスインタフェース３１７からのアドレスを変換するアドレス変換部３２０と、バスインタフェース３１７からのデータを圧縮するデータ圧縮部３３０と、メモリインタフェース３５０からのデータを伸長するデータ伸長部３４０とを備える。
【００２９】
バス２００とバスインタフェース３１０は、信号線３１９を介して接続される。この信号線３１９には、例えば、３２ビットのアドレス線および３２ビットのデータ線を含めることができる。また、処理装置１００とバスインタフェース３１０は、割込み信号線３１８を介して接続される。この割込み信号線３１８は、バスインタフェース３１０から処理装置１００に割込みの発生を報告するために使用される。
【００３０】
バスインタフェース３１０とアドレス変換部３２０、データ圧縮部３３０およびデータ伸長部３４０は、アドレス信号線３１７を介して接続される。このアドレス信号線３１７は、メモリ４００への書込み命令における書込みアドレスまたはメモリ４００からの読出し命令における読出しアドレスをバスインタフェース３１０からアドレス変換部３２０、データ圧縮部３３０およびデータ伸長部３４０へ出力する。
【００３１】
バスインタフェース３１０とアドレス変換部３２０は、ベースアドレス信号線３１５により接続される。このベースアドレス信号線３１５は、バスインタフェース３１０のコントロールレジスタに保持されるベースアドレスをバスインタフェース３１０からアドレス変換部３２０に出力するために使用される。
【００３２】
バスインタフェース３１０とデータ圧縮部３３０は、データ信号線３１６により接続される。このデータ信号線３１６は、書込み命令における書込みデータをバスインタフェース３１０からデータ圧縮部３３０に出力するために使用される。さらに、バスインタフェース３１０とデータ圧縮部３３０は割込み信号線３３８により接続される。この割込み信号線３３８は、データ圧縮部３３０における割込みの発生をバスインタフェース３１０に出力するために使用される。
【００３３】
バスインタフェース３１０とデータ伸長部３４０は、データ信号線３４９により接続される。このデータ信号線３４９は、読出し命令における読出しデータをデータ伸長部３４０からバスインタフェース３１０に出力するために使用される。さらに、バスインタフェース３１０とデータ伸長部３４０は割込み信号線３４８により接続される。この割込み信号線３４８は、データ伸長部３４０における割込みの発生をバスインタフェース３１０に出力するために使用される。
【００３４】
メモリインタフェース３５０とアドレス変換部３２０は、アドレス信号線３２９により接続される。このアドレス信号線３２９は、メモリ４００への書込み命令における書込みアドレスまたはメモリ４００からの読出し命令における読出しアドレスをアドレス変換部３２０からメモリインタフェース３５０に出力するために使用される。
【００３５】
メモリインタフェース３５０とデータ圧縮部３３０は、データ信号線３３９により接続される。このデータ信号線３３９は、メモリ４００への書込み命令における書込みデータをデータ圧縮部３３０からメモリインタフェース３５０に出力するために使用される。
【００３６】
メモリインタフェース３５０とデータ伸長部３４０は、データ信号線３５８により接続される。このデータ信号線３５８は、メモリ４００からの読出し命令における読出しデータをメモリインタフェース３５０からデータ伸長部３４０に出力するために使用される。
【００３７】
メモリインタフェース３５０とメモリ４００は、信号線３５９により接続される。この信号線３５９には、例えば、２８ビットのアドレス線および１６ビットのデータ線を含めることができる。
【００３８】
バスインタフェース３１０は、バス２００からのメモリ４００への書込み命令における書込みアドレスまたはメモリ４００からの読出し命令における読出しアドレスをバス２００から受け、アドレス変換部３２０、データ圧縮部３３０およびデータ伸長部３４０に出力する。また、バスインタフェース３１０は、書込み命令における書込みデータをバス２００から受け、データ圧縮部３３０に出力する。さらに、バスインタフェース３１０は、読出し命令における読出しデータをデータ伸長部３４０から受け、バス２００に出力する。
【００３９】
また、バスインタフェース３１０は、データ圧縮部３３０およびデータ伸長部３４０における割込みの発生を受け、その割込みを処理装置１００に報告するか否か制御する。さらに、バスインタフェース３１０は、割込みに関して装置内部の状態を保持するコントロールレジスタを内部に有する。割込みを報告する際にはこのコントロールレジスタに保持された状態が処理装置１００から参照される。また、コントロールレジスタにはベースアドレスが保持され、このベースアドレスはアドレス変換部３２０におけるアドレス変換に利用される。
【００４０】
アドレス変換部３２０は、バスインタフェース３１０からメモリ４００への書込み命令における書込みアドレスまたはメモリ４００からの読出し命令における読出しアドレスを受け、アドレス変換を行う。アドレス変換の際には、ベースアドレス信号線３１５によりバスインタフェース３１０から受けたアドレスをベースアドレスとして利用する。
【００４１】
また、アドレス変換部３２０は、バスインタフェース３１０から受けたアドレスが所定の領域内のものであればアドレス変換後のアドレスをアドレス信号線３２９に出力し、所定の領域外のものであればアドレス変換されない元のアドレスをアドレス信号線３２９にそのまま出力する。
【００４２】
データ圧縮部３３０は、バスインタフェース３１０から受けたメモリ４００への書込みデータを圧縮する。その一例として、３２ビット浮動小数点形式データを１６ビット固定小数点形式データに変換する。データ圧縮部３３０は、書込みアドレスが所定領域内であれば変換されたデータを信号線３３９に出力するが、所定領域外であれば変換前のデータをそのまま信号線３３９に出力する。また、データ圧縮部３３０は、圧縮の過程で割込みが発生した場合にはその旨を、信号線３３８を介してバスインタフェース３１０に知らせる。
【００４３】
データ伸長部３４０は、メモリインタフェース３５０から受けたメモリ４００からの読出しデータを伸長する。その一例として、１６ビット固定小数点形式データを３２ビット浮動小数点形式データに変換する。データ伸長部３４０は、読出しアドレスが所定領域内であれば変換されたデータを信号線３４９に出力するが、所定領域外であれば変換前のデータをそのまま信号線３４９に出力する。また、データ伸長部３４０は、伸長の過程で割込みが発生した場合にはその旨を、信号線３４８を介してバスインタフェース３１０に知らせる。
【００４４】
メモリインタフェース３５０は、アドレス変換部３２０からの書込みアドレスおよびデータ圧縮部３３０からの書込みデータをメモリ４００に出力する。また、メモリインタフェース３５０は、アドレス変換部３２０からの読出しアドレスをメモリ４００に出力して、メモリ４００から読み出された読出しデータをデータ伸長部３４０に出力する。
【００４５】
次に、本発明の実施の形態において扱うデータ形式の一例について説明する。
【００４６】
図２（ａ）を参照すると、浮動小数点形式データの一例として、ＩＥＥＥ規格による単精度浮動小数点形式データは、１ビットの符号部ｓＦ９１１と、８ビットの指数部ｅＦ９１２と、２３ビットの仮数部ｆＦ９１３とからなる。これにより表される数ｙは、
【数１】
2004023526.tif 000003
となる。但し、指数部ｅＦ＝ｆｆｈ（１６進数によるｆｆ、すなわち１０進数による２５５を表す。以下、同様。）の場合、仮数部ｆＦ＝０かつ符号部ｓＦ＝０であれば正の無限大を表し、仮数部ｆＦ＝０かつ符号部ｓＦ＝１であれば負の無限大を表し、仮数部ｆＦが０以外であれば非数を表す。また、指数部ｅＦ＝０ｈの場合、仮数部ｆＦ＝０かつ符号部ｓＦ＝０であれば正のゼロを表し、仮数部ｆＦ＝０かつ符号部ｓＦ＝１であれば負のゼロを表し、仮数部ｆＦが０以外であれば非正規化数を表す。
【００４７】
図２（ｂ）を参照すると、固定小数点形式データの一例として、１６ビット固定小数点形式データは、１ビットの符号部ｓＸ９２１と、１５ビットの仮数部ｆＸ９２２とからなる。この固定小数点形式データの他に８ビットの指数部ｅＸを保持しておいたと仮定すると、これにより表される数ｙは、
【数２】
2004023526.tif 000004
となる。但し、仮数部ｆＸ＝０かつ符号部ｓＸ＝０であればゼロを表し、仮数部ｆＸ＝０かつ符号部ｓＸ＝１であれば非数を表す。
【００４８】
本発明の実施の形態において、データ変換の一例としての３２ビット浮動小数点形式データと１６ビット固定小数点形式データの変換は、図２（ｃ）のような対応関係を有する。すなわち、両者において符号部は等しいが、仮数部は固定小数点形式データの有効桁数の方が少ないため、変換の過程で切り捨てもしくは補充が必要となる。また、変換の過程で仮数部の桁移動が行われるため、それに応じて指数部も修正する必要がある。
【００４９】
図３を参照すると、本発明の実施の形態におけるアドレス空間は、３２ビットアドレスを仮定すると、４ＧＢ（Ｂ：バイト）まで表現できることになる。メモリ４００に実装される実メモリ空間Ｍ４１０は、アドレス００００００００ｈから例えば最大５１２ＭＢまで有効とする。この実メモリ空間Ｍ４１０には、メモリ４００において固定小数点形式データが実際に格納される固定小数点データ空間Ｒ４１１が存在する。この固定小数点データ空間Ｒ４１１は、バスインタフェース３１０から提供されるベースアドレスを開始アドレスとして、例えば１ＭＢの領域を有するものとする。
【００５０】
一方、浮動小数点データ空間Ｖ４２０は、実メモリ空間Ｍ４１０の範囲外に存在する。浮動小数点データ空間Ｖ４２０は、８ビットの指数部ｅＸの値に応じた２５６個のサブ空間４２１（Ｖ０乃至Ｖ２５５）から構成される。このサブ空間４２１は例えばそれぞれ２ＭＢの領域を有するものとする。浮動小数点データ空間Ｖ４２０の開始アドレスを、例えば２０００００００ｈとすると、最終アドレスは３ｆｆｆｆｆｆｆｈとなる。
【００５１】
図４をすると、３２ビットのアドレス空間において、最下位ビットから最上位ビットに向かって０から昇順にビット番号が付与されているものとすると、３１ビット目から２９ビット目までの３ビットが「００１」であれば浮動小数点データ空間Ｖ４２０の領域内となる。そして、２８ビット目から２１ビット目までの８ビットが指数部ｅＸの値、すなわちサブ空間４２１の番号を表す。また、２０ビット目から０ビット目までの２１ビットがサブ空間４２１内の２ＭＢ空間のアドレスとなる。この浮動小数点データ空間Ｖ４２０のサブ空間４２１の各々は、図４のように、指数部ｅＸの値にかかわらず、固定小数点データ空間Ｒ４１１にマッピングされる。但し、後述のように、指数部ｅＸの値がｆｆｈ（２５５）である場合にはコントロールレジスタにマッピングされる。
【００５２】
図５を参照すると、サブ空間４２１の各々は２ＭＢの領域を有し、それぞれ３２ビットの浮動小数点形式データを５１２Ｋ（０．５Ｍ）個分保持できる。一方、固定小数点データ空間Ｒ４１１は１ＭＢの領域を有し、１６ビットの固定小数点形式データを５１２Ｋ（０．５Ｍ）個分保持できる。そして、サブ空間４２１の５１２Ｋ個のデータは、図５のようにそれぞれ固定小数点データ空間Ｒ４１１の５１２Ｋ個のデータにマッピングされる。この仕組みを利用して、処理装置１００からメモリ４００への書込みデータを浮動小数点データ空間Ｖ４２０の何れかのサブ空間４２１に割り当てることにより固定小数点データ空間Ｒ４１１にマッピングさせ、処理装置からの浮動小数点形式データを固定小数点形式データとしてメモリ４００に書き込むことができる。また、メモリ４００からデータを読み出す際に、浮動小数点データ空間Ｖ４２０の何れかのサブ空間４２１を指定することにより固定小数点データ空間Ｒ４１１にマッピングさせ、固定小数点形式データとして書き込まれていたデータを浮動小数点形式データとして処理装置に出力することができる。この変換の過程では、アドレスの２８ビット目から２１ビット目までの８ビットを固定小数点形式データの指数部ｅＸとして利用することができるため、１６ビットの固定小数点形式データは、実質的には２４ビットの浮動小数点形式データとして機能することになる。
【００５３】
次に、本発明の実施の形態におけるデータ変換装置の構成について詳細に説明する。
【００５４】
図６を参照すると、アドレス変換部３２０は、アドレスコントローラ３２２と、アドレス変換器３２３と、アドレスセレクタ３２５とを備える。バスインタフェース３１０から信号線３１７を介して入力されたアドレス３２１は、この一例では３２ビットからなり、アドレス３２１のビット３１ビット目から２９ビット目までの３ビットが「００１」であれば、浮動小数点データ空間Ｖ４２０（図３）の領域内であることを意味する。また、浮動小数点データ空間Ｖ４２０の領域内であれば、アドレス３２１のビット２０ビット目から０ビット目までの２１ビットはサブ空間４２１（図３）内の２ＭＢのアドレス空間を表す。
【００５５】
アドレスコントローラ３２２は、アドレス３２１のビット３１ビット目から２９ビット目までの３ビットが「００１」であるか否か、すなわち浮動小数点データ空間Ｖ４２０（図３）の領域内であるか否かを判断する。
【００５６】
アドレス変換器３２３は、ベースアドレス信号線３１５のベースアドレスにアドレス３２１のビット２０ビット目から１ビット目までの２０ビットを加算したアドレスを出力する。アドレス３２１のビット２０ビット目から１ビット目までの２０ビットは１ＭＢ空間を表すので、ベースアドレスを１ＭＢ単位とすれば、アドレス変換器は加算器である必要はなく、単なるビット結合により実現できる。このアドレス変換器３２３から出力された変換後のアドレス３２４は、ベースアドレスを開始アドレスとする固定小数点データ空間Ｒ４１１（図３）のアドレスを示している。
【００５７】
アドレスセレクタ３２５は、アドレスコントローラ３２２が浮動小数点データ空間Ｖ４２０（図３）の領域内であると判断した場合には変換後のアドレス３２４をアドレス信号線３２９に出力し、浮動小数点データ空間Ｖ４２０の領域外であると判断した場合には変換前のアドレス３２１をアドレス信号線３２９に出力する。
【００５８】
図７を参照すると、データ圧縮部３３０は、ライトコントローラ３３１と、ライトシフタ３３３と、ライトセレクタ３３５とを備える。バスインタフェース３１０から信号線３１６を介して入力されたデータ３３２は、この一例では３２ビットからなり、最下位ビットから最上位ビットに向かって０から昇順にビット番号が付与されているものとすると、浮動小数点形式データであれば、３１ビット目に１ビットの符号部ｓＦを、３０ビット目から２３ビット目に８ビットの指数部ｅＦを、２２ビット目から０ビット目に２３ビットの仮数部ｆＦを備える。
【００５９】
ライトシフタ３３３は、ライトコントローラ３３１から指示された回数に従ってデータ３３２の２２ビット目から０ビット目の２３ビットを右シフトする。この右シフトに先立って、２２ビット目の左側には最初に１ビットの「１」が補われる。すなわち、１回目の右シフト後は２２ビット目に「１」が表れ、２回目以降の右シフト後は２２ビット目に「０」が表れることになる。また、ライトシフタ３３３のシフト後の表現桁は上位から１５ビット分であり、右シフトにより表現桁から外れるビットは消滅するものとして扱う。このように右シフトされたデータはデータ３３４の１４ビット目から０ビット目の１５ビットに設定される。また、データ３３２の最上位ビット（３１ビット目）のデータはデータ３３４の最上位ビット（１５ビット目）に設定される。これにより、データ３３２が浮動小数点形式データであれば、データ３３４は変換後の固定小数点形式データを表すことになる。
【００６０】
ライトコントローラ３３１は、バスインタフェース３１０から信号線３１６を介して入力されたデータ３３２における３０ビット目から２３ビット目の８ビットを浮動小数点形式データの指数部ｅＦと仮定し、バスインタフェース３１０からの信号線３１７のアドレスにおける２８ビット目から２１ビット目までの８ビットを固定小数点形式データの指数部ｅＸと仮定して、（ｅＸ−ｅＦ）回をシフト回数としてライトシフタ３３３に右シフトを指示する。このとき、シフト回数である（ｅＸ−ｅＦ）がゼロより小さかった場合にはレンジを超えた値が書き込まれたことになるので、ライトコントローラ３３１は、その旨の割込みを割込み信号線３３８によりバスインタフェース３１０に知らせる。
【００６１】
また、ライトコントローラ３３１は、バスインタフェース３１０からの信号線３１７のアドレスにおける３１ビット目から２９ビット目までの３ビットが「００１」となっているか、すなわち浮動小数点データ空間Ｖ４２０（図３）の領域内であるか否かを判断する。
【００６２】
さらに、ライトコントローラ３３１は、バスインタフェース３１０から信号線３１６を介して入力されたデータ３３２が特殊数値に該当するか否かを調べ、特殊数値に該当する場合には、以下のような値を出力するようライトセレクタ３３５に指示する。すなわち、指数部ｅＦ＝ｆｆｈ、仮数部ｆＦ＝０かつ符号部ｓＦ＝０であれば正の無限大を表すので、固定小数点形式における最大値である「７ｆｆｆｈ」を出力する。また、指数部ｅＦ＝ｆｆｈ、仮数部ｆＦ＝０かつ符号部ｓＦ＝１であれば負の無限大を表すので、固定小数点形式における最小値である「ｆｆｆｆｈ」を出力する。また、指数部ｅＦ＝ｆｆｈであって仮数部ｆＦが０以外であれば非数を表すので、固定小数点形式における非数である「８０００ｈ」を出力する。また、指数部ｅＦ＝０ｈで仮数部ｆＦ＝０であれば正または負のゼロを表すので、固定小数点形式におけるゼロである「００００ｈ」を出力する。また、指数部ｅＦ＝０ｈであって仮数部ｆＦが０以外であれば非正規化数を表すので、上述の右シフトの際に２２ビット目の左側に「１」を補わずに、それ以外は通常の変換を行う。また、ライトコントローラ３３１は、これら特殊数値の変換を行った場合には、各事象が発生した旨の割込みを割込み信号線３３８によりバスインタフェース３１０に知らせる。
【００６３】
ライトセレクタ３３５は、バスインタフェース３１０からの信号線３１７のアドレスにおける３１ビット目から２９ビット目までの３ビットによりライトコントローラ３３１が浮動小数点データ空間Ｖ４２０の領域内であると判断した場合にはデータ３３４を信号線３３９に出力し、浮動小数点データ空間Ｖ４２０の領域外であると判断した場合にはバスインタフェース３１０から信号線３１６を介して入力されたデータ３３２をそのまま信号線３３９に出力する。
【００６４】
図８を参照すると、データ伸長部３４０は、リードコントローラ３４１と、リードシフタ３４３と、リードセレクタ３４５とを備える。メモリインタフェース３５０から信号線３５８を介して入力されたデータ３４２は、この一例では１６ビットからなり、最下位ビットから最上位ビットに向かって０から昇順にビット番号が付与されているものとすると、固定小数点形式データであれば、１５ビット目に１ビットの符号部ｓＸを、１４ビット目から０ビット目に１５ビットの仮数部ｆＸを備える。
【００６５】
リードシフタ３４３は、データ３４２の１４ビット目から０ビット目までの１５ビットを、１４ビット目の左側からビット「１」がシフトアウトされるまで左シフトする。そして、シフト終了後の１５ビットデータをデータ３４４の２２ビット目から８ビット目までに設定する。また、データ３４４の７ビット目から０ビット目までの８ビットには全て「０」が設定され、データ３４４の最上位ビット（３１ビット目）にはデータ３４２の最上位ビット（１５ビット目）の値が設定される。
【００６６】
リードコントローラ３４１は、リードシフタ３４３が左シフト操作をした回数をｎ回とし、バスインタフェース３１０からの信号線３１７のアドレスにおける２８ビット目から２１ビット目までの８ビットを固定小数点形式データの指数部ｅＸと仮定して、（ｅＸ−ｎ）をデータ３４４の３０ビット目から２３ビット目までの８ビットに設定する。
【００６７】
また、リードコントローラ３４１は、バスインタフェース３１０からの信号線３１７のアドレスにおける３１ビット目から２９ビット目までの３ビットが「００１」となっているか、すなわち浮動小数点データ空間Ｖ４２０（図３）の領域内であるか否かを判断する。
【００６８】
さらに、リードコントローラ３４１は、メモリインタフェース３５０から信号線３５８を介して入力されたデータ３４２が特殊数値に該当するか否かを調べ、特殊数値に該当する場合には、以下のような値を出力するようリードセレクタ３４５に指示する。すなわち、仮数部ｆＸ＝０かつ符号部ｓＸ＝０であればゼロを表すので、例えば浮動小数点形式における正のゼロである「００００００００ｈ」を出力する。また、仮数部ｆＸ＝０かつ符号部ｓＸ＝１であれば非数を表すので、例えば浮動小数点形式における非数である「７ｆｆｆｆｆｆｆｈ」を出力する。また、リードコントローラ３４１は、これら特殊数値の変換を行った場合には、各事象が発生した旨の割込みを割込み信号線３４８によりバスインタフェース３１０に知らせる。
【００６９】
リードセレクタ３４５は、バスインタフェース３１０からの信号線３１７のアドレスにおける３１ビット目から２９ビット目までの３ビットによりリードコントローラ３４１が浮動小数点データ空間Ｖ４２０の領域内であると判断した場合にはデータ３４４を信号線３４９に出力し、浮動小数点データ空間Ｖ４２０の領域外であると判断した場合にはメモリインタフェース３５０から信号線３５８を介して入力されたデータ３４２をそのまま信号線３４９に出力する。
【００７０】
図９を参照すると、バスインタフェース３１０内のコントロールレジスタ５００は、割込みマスクレジスタ５１０と、割込み要因状態レジスタ５２０と、割込みバスアドレスレジスタ５３０と、割込みデータレジスタ５４０と、ベースアドレスレジスタ５５０と、非数設定レジスタ５６０とを備える。
【００７１】
割込みマスクレジスタ５１０は、データ変換装置３００内で発生した割込みを処理装置１００に報告するか否かを割込みの要因毎に制御するためのレジスタであり、特定の要因に対する割込みを報告しないようマスクすることができる。割込み要因状態レジスタ５２０は、割込みの要因毎に発生の有無を保持するレジスタである。割込みバスアドレスレジスタ５３０は、割込みが発生した際のバスアドレスを保持するレジスタである。割込みデータレジスタ５４０は、割込みを発生した要因となるデータを保持するレジスタである。ベースアドレスレジスタ５５０は、固定小数点データ空間Ｒ４１１の開始アドレスを示すベースアドレスを保持するレジスタである。非数設定レジスタ５６０は、非数として上述の「７ｆｆｆｆｆｆｆｈ」以外の値を割り当てたい場合に非数の値を設定するためのレジスタである。
【００７２】
これらコントロールレジスタ５００は、浮動小数点データ空間Ｖ４２０のサブ空間Ｖ２５５（図３）にマッピングされており、すなわち「３ｆｅ０００００ｈ」を基点として図９のオフセットアドレスにより参照することができる。
【００７３】
次に、本発明の実施の形態における処理の流れについて図面を参照して説明する。
【００７４】
図１０を参照すると、バスインタフェース３１０は、処理装置１００から受けたアドレスが浮動小数点データ空間Ｖ４２０の範囲にあるか否かを調べる（ステップＳ３１０１）。浮動小数点データ空間Ｖ４２０の範囲になければ、そのままアドレスをアドレス変換部３２０、データ圧縮部３３０およびデータ伸長部３４０に通す。浮動小数点データ空間Ｖ４２０の範囲にあれば、さらにアドレスの指数部ｅＸがｆｆｈ（２５５）であるか調べる（ステップＳ３１０２）。ｅＸがｆｆｈであればコントロールレジスタ５００（図９）にアクセスし（ステップＳ３１０３）、その結果を処理装置１００へ出力する（ステップＳ３１０４）。一方、ｅＸがｆｆｈでなければ固定小数点データ空間Ｒ４１１へのアドレス変換を行うため、コントロールレジスタ５００内のベースアドレスレジスタ５５０（図９）の内容を読出し（ステップＳ３１０５）、ベースアドレス信号線３１５を介してアドレス変換部３２０に出力する（ステップＳ３１０６）。
【００７５】
図１１を参照すると、アドレス変換部３２０は、信号線３１７を介してバスインタフェース３１０から受けたアドレスにより浮動小数点データ空間Ｖ４２０の領域内へのアクセスであると判断すると（ステップＳ３２０１）、固定小数点データ空間Ｒ４１１へのアドレス変換を行い（ステップＳ３２０２）、変換後のアドレスがアドレス信号線３２９に出力される。一方、浮動小数点データ空間Ｖ４２０の領域外であれば変換前のアドレスがそのままアドレス信号線３２９に出力される。このアドレス信号線３２９を介してアドレスがメモリインタフェース３５０に出力され、メモリ４００へのアクセスに使用される（ステップＳ３２０３）。
【００７６】
図１２を参照すると、データ圧縮部３３０は、バスインタフェース３１０から受けた書込みアドレスが浮動小数点データ空間Ｖ４２０の範囲にあるか否かを調べる（ステップＳ３３０１）。浮動小数点データ空間Ｖ４２０の範囲になければ、バスインタフェース３１０から受けた書込みデータをそのままメモリインタフェース３５０に出力する。一方、浮動小数点データ空間Ｖ４２０の範囲にあれば、さらにバスインタフェース３１０から受けた書込みデータが特殊数値であるか否かを調べる（ステップＳ３３０２）。特殊数値でなければ、浮動小数点形式データの仮数部ｆＦの左隣のビットに「１」を補った上で（ステップＳ３３０３）、仮数部ｆＦを所定回数右シフトする（ステップＳ３３０４）。この右シフトの回数は、前述のとおり、書込み命令に対応する書込みアドレスの所定部分（指数部ｅＸ）と浮動小数点形式データにおける指数部ｅＦとの差によって定められる。そして、シフト後の仮数部ｆＦを固定小数点形式データにおける仮数部ｆＸとするとともに、浮動小数点形式データにおける符号部ｓＦを固定小数点形式データにおける符号部ｓＸとする（ステップＳ３３０５）。
【００７７】
ステップＳ３３０２で特殊数値であると判断された場合には、上述のとおり浮動小数点形式の特殊数値を固定小数点形式の特殊数値に置き換える（ステップＳ３３０６）。また、特殊数値の変換操作が行われた旨の割込みを割込み信号線３３８によりバスインタフェース３１０に伝える（ステップＳ３３０７）。
【００７８】
図１３を参照すると、データ伸長部３４０は、バスインタフェース３１０から受けた読出しアドレスが浮動小数点データ空間Ｖ４２０の範囲にあるか否かを調べる（ステップＳ３４０１）。浮動小数点データ空間Ｖ４２０の範囲になければ、メモリインタフェース３５０から受けた読出しデータをそのままバスインタフェース３１０に出力する。一方、浮動小数点データ空間Ｖ４２０の範囲にあれば、さらにメモリインタフェース３５０から受けた読出しデータが特殊数値であるか否かを調べる（ステップＳ３４０２）。特殊数値でなければ、固定小数点形式データの仮数部ｆＸの左隣のビットから「１」がシフトアウトされるまで、仮数部ｆＸの左シフト操作を行い、この左シフト操作をした回数をｎ回とする（ステップＳ３４０３乃至Ｓ３４０６）。そして、シフト終了後の仮数部ｆＸを浮動小数点形式データの仮数部ｆＦとするとともに、固定小数点形式データにおける符号部ｓＸを浮動小数点形式データにおける符号部ｓＦとする（ステップＳ３４０７）。また、固定小数点形式データの指数部ｅＸからｎを引いた値（ｅＸ−ｎ）を浮動小数点形式データの指数部ｅＦとする（ステップＳ３４０７）。
【００７９】
ステップＳ３４０２で特殊数値であると判断された場合には、上述のとおり固定小数点形式の特殊数値を浮動小数点形式の特殊数値に置き換える（ステップＳ３４０８）。また、特殊数値の変換操作が行われた旨の割込みを割込み信号線３４８によりバスインタフェース３１０に伝える（ステップＳ３４０９）。
【００８０】
このように、本発明の実施の形態によれば、メモリ４００へのデータ書込みの際にはデータ圧縮部３３０により浮動小数点形式データから固定小数点形式データに変換した上で書込みを行い、メモリ４００からのデータ読出しの際にはデータ伸長部３４０により固定小数点形式データから浮動小数点形式データへ変換して処理装置１００にて受け取られる。これにより、処理装置１００では浮動小数点形式データを扱いながら、メモリ４００格納の際にはよりコンパクトな固定小数点形式データとすることができる。
【００８１】
また、本発明の実施の形態では、アドレスの一部を固定小数点形式データの指数部として用いることにより、固定小数点形式データにおける仮数部のビット幅を活かしたまま、容易にダイナミックレンジの調整をすることができる。
【００８２】
なお、本発明の実施の形態では、３２ビット浮動小数点形式データと１６ビット固定小数点形式データの変換を一例として用いたが、本発明はこれに限定されるものではなく、第１の形式のデータを第２の形式のデータに変換してメモリに出力する場合またはメモリから出力された第２の形式のデータを第１の形式のデータに変換する場合において、アドレスの所定部分と第２の形式のデータとによって第１の形式のデータが近似される関係にあれば本発明を適用することができる。
【００８３】
また、本発明の実施の形態では、データ変換装置について説明したが、本発明はこれに限定されず、コンピュータによるデータ変換方法としても実現可能である。さらに、このデータ変換方法を実現するためのプログラムやこのプログラムを記録した記録媒体についても本発明の範疇に含まれる。
【００８４】
【発明の効果】
以上の説明で明らかなように、本発明によると、処理装置で使用される形式のデータをメモリに書き込む際に圧縮して書き込み、メモリから読み出す際に伸長して読み出すことができる。そのため、処理装置における処理を制限することなくメモリ使用量を削減することができる。
【図面の簡単な説明】
【図１】本発明によるデータ変換装置の実施の形態を示すブロック図である。
【図２】本発明の実施の形態におけるデータ形式を説明する図である。
【図３】本発明の実施の形態におけるアドレスマップを示す図である。
【図４】本発明の実施の形態における浮動小数点データ空間と固定小数点データ空間の関係を示す図である。
【図５】本発明の実施の形態における浮動小数点データ空間内データと固定小数点データ空間内データの関係を示す図である。
【図６】本発明の実施の形態におけるアドレス変換部の構成を示すブロック図である。
【図７】本発明の実施の形態におけるデータ圧縮部の構成を示すブロック図である。
【図８】本発明の実施の形態におけるデータ伸長部の構成を示すブロック図である。
【図９】本発明の実施の形態におけるコントロールレジスタの構成を示すブロック図である。
【図１０】本発明の実施の形態におけるバスインタフェースの処理の流れを示す図である。
【図１１】本発明の実施の形態におけるアドレス変換部の処理の流れを示す図である。
【図１２】本発明の実施の形態におけるデータ圧縮部の処理の流れを示す図である。
【図１３】本発明の実施の形態におけるデータ伸長部の処理の流れを示す図である。
【符号の説明】
１００　処理装置
２００　バス
３００　データ変換装置
３１０　バスインタフェース
３２０　アドレス変換部
３３０　データ圧縮部
３４０　データ伸長部
３５０　メモリインタフェース
４００　メモリ
４１０　実メモリ空間Ｍ
４１１　固定小数点データ空間Ｒ
４２０　浮動小数点データ空間Ｖ
４２１　浮動小数点データ空間Ｖのサブ空間
５００　コントロールレジスタ
【図１】
2004023526.tif 000005
【図２】
2004023526.tif 000006
【図３】
2004023526.tif 000007
【図４】
2004023526.tif 000008
【図５】
2004023526.tif 000009
【図６】
2004023526.tif 000010
【図７】
2004023526.tif 000011
【図８】
2004023526.tif 000012
【図９】
2004023526.tif 000013
【図１０】
2004023526.tif 000014
【図１１】
2004023526.tif 000015
【図１２】
2004023526.tif 000016
【図１３】
2004023526.tif 000017