(57)【特許請求の範囲】
【請求項１】
ソースレジスタ及び目的レジスタを備え、データ抽出の基準位置を示すポジション値と抽出するデータの大きさを示すオフセット値とを利用して、前記ソースレジスタから前記目的レジスタにデータを抽出するためのＤＳＰのデータ抽出方法において、
（ａ）Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵されているデータを前記ソースレジスタの上位部分に貯蔵し、第Ｍ＋１番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位部分に貯蔵する段階と、
（ｂ）前記ソースレジスタの前記ポジション値に対応する位置から前記オフセット値に対応する大きさのデータを抽出して前記目的レジスタに貯蔵し、前記ポジション値と前記オフセット値とを加えて新しいポジション値と設定する段階と、
（ｃ）前記新しいポジション値が所定のモジューロ値より大きいか小さいかを判断し、前記ポジション値が前記モジューロ値より小さければフラッグ信号を第１論理レベルに、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する段階と、
（ｄ）前記フラッグ信号が第１論理レベルならば前記新しいポジション値を利用して前記（ｂ）段階及び（ｃ）段階の動作を反復し、前記フラッグ信号が第２論理レベルならば前記ソースレジスタの下位部分のデータを前記ソースレジスタの上位部分に貯蔵する段階と、
（ｅ）第２論理レベルを有する前記フラッグ信号に応じて前記メモリの第Ｍ＋２番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位部分に貯蔵し、前記新しいポジション値から前記モジューロ値を引いた値を次のポジション値と設定して前記（ｂ）段階に戻る段階と、を備える、
ことを特徴とするＤＳＰのデータ抽出方法。
【請求項２】
前記ソースレジスタの上位部分は、前記ソースレジスタの半分である、ことを特徴とする請求項１に記載のＤＳＰのデータ抽出方法。
【請求項３】
前記ソースレジスタ及び前記目的レジスタは、２Ｎビットのサイズを有する、ことを特徴とする請求項２に記載のＤＳＰのデータ抽出方法。
【請求項４】
前記モジューロ値は、Ｎである、ことを特徴とする請求項２に記載のＤＳＰのデータ抽出方法。
【請求項５】
ソースレジスタ及び目的レジスタを備え、データが挿入される基準位置を示すポジション値と挿入するデータの大きさを示すオフセット値とを利用して、前記ソースレジスタから前記目的レジスタにデータを挿入するためのＤＳＰのデータ挿入方法において、
（ａ）前記ソースレジスタのデータのうち前記オフセット値の大きさを有するデータを前記目的レジスタの前記ポジション値に対応する位置に挿入して前記目的レジスタに貯蔵し、前記ポジション値と前記オフセット値とを加えて新しいポジション値と設定する段階と、
（ｂ）目的レジスタの前記新しいポジション値に対応する位置から前記オフセット値に対応する大きさのデータを挿入して前記目的レジスタに貯蔵し、前記新しいポジション値が所定のモジューロ値より大きいか小さいかを判断し、前記ポジション値が前記モジューロ値より小さければフラッグ信号を第１論理レベルに、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する段階と、
（ｃ）前記フラッグ信号が第１論理レベルならば前記新しいポジション値を利用して前記（ａ）段階及び（ｂ）段階の動作を反復し、前記フラッグ信号が第２論理レベルならば前記目的レジスタの上位ハーフビットのデータをＮ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵する段階と、
（ｄ）第２論理レベルを有する前記フラッグ信号に応じて、前記目的レジスタの下位ハーフビットのデータを前記目的レジスタの上位ハーフビットに貯蔵して、前記新しいポジション値から前記モジューロ値を引いた値を次のポジション値と設定して前記（ａ）段階に戻る段階と、を備える、ことを特徴とするＤＳＰのデータ挿入方法。
【請求項６】
前記ソースレジスタ及び前記目的レジスタは、２Ｎビットのサイズを有する、ことを特徴とする請求項５に記載のＤＳＰのデータ挿入方法。
【請求項７】
前記モジューロ値は、Ｎである、ことを特徴とする請求項５に記載のＤＳＰのデータ挿入方法。
【請求項８】
所定のプレポジション値と抽出するデータの大きさを示すオフセット値とを受信して、所定のフラッグ信号の第１論理レベルに応じて、ソースレジスタから目的レジスタにデータを抽出または挿入し、前記フラッグ信号の第２論理レベルに応じて、前記ソースレジスタにメモリからデータを受信して貯蔵したり、前記メモリに前記目的レジスタからデータを受信して貯蔵したりするデータ抽出及び挿入部と、
外部から入力される前記プレポジション値と外部から入力される前記オフセット値とを加えてポジション値を発するポジション値発生部と、
前記ポジション値を受信して所定のモジューロ値と比較し、前記ポジション値が前記モジューロ値より小さければ前記ポジション値を前記プレポジション値として発し、前記ポジション値が前記モジューロ値より大きければ前記ポジション値から前記モジューロ値を引いた値を前記プレポジション値として発し、前記ポジション値と前記モジューロ値との比較結果により前記フラッグ信号を発するフラッグ信号発生部と、を備える、ことを特徴とするデータ抽出及び挿入装置。
【請求項９】
前記データ抽出及び挿入装置はＤＳＰに装着される、ことを特徴とする請求項８に記載のデータ抽出及び挿入装置。
【請求項１０】
前記ポジション値発生部は、
前記プレポジション値を貯蔵するプレポジション値貯蔵部と、
外部から入力されるオフセット値を貯蔵するオフセット値貯蔵部と、
前記プレポジション値貯蔵部の出力と前記オフセット値貯蔵部の出力とを加えて前記ポジション値を発する加算部と、を備える、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１１】
前記フラッグ信号発生部は、
前記モジューロ値を貯蔵するモジューロ値貯蔵部と、
前記ポジション値と前記モジューロ値貯蔵部から出力される前記モジューロ値の大きさを比較し、前記ポジション値が前記モジューロ値より小さい場合には前記ポジション値を所定の選択部に出力し、前記ポジション値が前記モジューロ値より大きい場合には前記ポジション値を所定の減算部に出力し、前記ポジション値と前記モジューロ値の大きさを比較した結果により前記フラッグ信号を発する比較部と、
前記ポジション値及び前記モジューロ値を受信し、前記ポジション値から前記モジューロ値を引く演算を行う前記減算部と、
前記フラッグ信号に応じて前記比較部から出力される前記ポジション値と前記減算部の出力のうち一つを選択して前記プレポジション値として出力する選択部と、を備える、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１２】
前記比較部は、
前記ポジション値が前記モジューロ値より小さければ前記フラッグ信号を第１論理レベルに発し、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発することを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１３】
前記選択部は、
前記フラッグ信号が第１論理レベルならば前記比較部から出力される前記ポジション値を選択して出力し、前記フラッグ信号が第２論理レベルならば前記減算部の出力を選択して出力する、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１４】
前記データ抽出及び挿入部は、データ抽出動作の場合、
前記フラッグ信号の第１論理レベルに応じて前記ソースレジスタのデータのうち前記オフセット値の大きさを有するデータを抽出して前記目的レジスタの前記プレポジション値に対応する位置に挿入して前記目的レジスタに貯蔵し、
前記フラッグ信号の第２論理レベルに応じて前記ソースレジスタの下位ハーフビットのデータを前記ソースレジスタの上位ハーフビットに貯蔵し、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリのＭ（Ｍは自然数）番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位ハーフビットに貯蔵する、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１５】
前記データ抽出及び挿入部は、データ挿入動作の場合、
前記フラッグ信号の第１論理レベルに応じて前記目的レジスタの前記プレポジション値に対応する位置に前記オフセット値に対応する大きさのデータを挿入し、
前記フラッグ信号の第２論理レベルに応じて前記目的レジスタの上位ハーフビットのデータをＮ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵し、前記目的レジスタの下位ハーフビットのデータを前記目的レジスタの上位ハーフビットに貯蔵する、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１６】
前記ソースレジスタ及び前記目的レジスタは、２Ｎビットのサイズを有する、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１７】
前記モジューロ値はＮである、ことを特徴とする請求項９に記載のデータ抽出及び挿入装置。
【請求項１８】
データ抽出及び挿入装置を備えるＤＳＰにおいて、
外部から入力されるプレポジション値と外部から入力されるオフセット値とを加えてポジション値を発するポジション値発生部と、
前記ポジション値を受信して所定のモジューロ値と比較し、前記ポジション値が前記モジューロ値より小さければ前記ポジション値を前記プレポジション値として発し、前記ポジション値が前記モジューロ値より大きければ前記ポジション値から前記モジューロ値を引いた値を前記プレポジション値として発し、前記ポジション値と前記モジューロ値との比較結果により前記フラッグ信号を発するフラッグ信号発生部と、
バイトやワードの大きさを有するデータパケットを抽出したり挿入する手段であり、所定のプレポジション値と抽出するデータの大きさを示す前記オフセット値とを受信して所定のフラッグ信号の第１論理レベルに応じてソースレジスタから目的レジスタにデータを抽出または挿入し、前記フラッグ信号の第２論理レベルに応じて前記ソースレジスタや前記目的レジスタにメモリからデータを受信して貯蔵したり前記メモリにデータを貯蔵する前記データパケット抽出及び挿入手段と、を備える、ことを特徴とするＤＳＰ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＤＳＰに係り、特にデータパケットの抽出及び挿入動作時に、大きさがバイトやワード単位ではない場合のデータパケットの連続的な抽出及び挿入を効率的にしてメモリを節約できるデータ抽出／挿入方法及び装置に関する。
【０００２】
【従来の技術】
一般的にパケット単位の通信データなどの処理のために、最近のＤＳＰ（Digital Signal Processor；以下、ＤＳＰとする）は、データの抽出、挿入演算を行える。
図１は、ＤＳＰのデータ抽出及び挿入動作の概念を説明する図面である。
図１Ａは、データ抽出を説明する図面である。
【０００３】
データ抽出は、ソースレジスタＳ＿ＲＥＧから一定の大きさのデータを抽出して、目的レジスタＤ＿ＲＥＧに貯蔵することである。すなわち、データ抽出の基準位置を示すポジション値ＰＯＳと、抽出するデータの大きさを示すオフセット値ＷＴＨとを利用し、ソースレジスタＳ＿ＲＥＧから一定の大きさのデータを抽出して、目的レジスタＤ＿ＲＥＧに貯蔵する。
ポジション値ＰＯＳにより、ソースレジスタＳ＿ＲＥＧの特定位置から、オフセット値ＷＴＨに該当する特定の大きさほどのデータを抽出する。
【０００４】
図１Ｂは、データ挿入を説明する図面である。
データ挿入は、ソースレジスタＳ＿ＲＥＧの一定の大きさのデータを、目的レジスタＤ＿ＲＥＧの一定の位置に挿入することである。すなわち、データ挿入の基準位置を示すポジション値ＷＴＨにより、目的レジスタＤ＿ＲＥＧの特定位置が指定される。
そして、挿入するデータの大きさを示すオフセット値ＷＴＨを利用して、ポジション値ＰＯＳにより指定された目的レジスタＤ＿ＲＥＧの特定位置から、オフセット値ＷＴＨに対応する一定の大きさほどのデータを、目的レジスタＤ＿ＲＥＧに挿入する。
【０００５】
ところで、かようなデータの抽出や挿入は、データパケットの大きさがバイトやワード単位ではなく、連続してデータを抽出または挿入しなければならない場合には、データが貯蔵されるメモリを効率的に利用できずに浪費するという問題がある。なぜなら、データはバイト単位やワード単位でメモリに整列されねばならないが、データパケットがバイト単位やワード単位ではないので、データをメモリに空き空間が存在しないように効率的に貯蔵されないためである。
【０００６】
【発明が解決しようとする課題】
本発明がなそうとする技術的課題は、大きさがバイトやワード単位ではない場合のデータパケットの連続的な抽出及び挿入を効率的に行って、メモリを節約できるデータ抽出／挿入方法を提供するところにある。
本発明がなそうとする他の技術的課題は、大きさがバイトやワード単位ではない場合のデータパケットの連続的な抽出及び挿入を効率的に行って、メモリを節約できるデータ抽出／挿入装置を提供するところにある。
【０００７】
【課題を解決するための手段】
前記技術的課題を達成するための本発明の第１実施例によるデータ抽出方法は、ソースレジスタ及び目的レジスタを備え、データ抽出の基準位置を示すポジション値と抽出するデータの大きさを示すオフセット値とを利用して前記ソースレジスタから前記目的レジスタにデータを抽出するためのＤＳＰのデータ抽出方法において、（ａ）Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵されているデータを前記ソースレジスタの上位ハーフビットに貯蔵し、第Ｍ＋１番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位ハーフビットに貯蔵する段階、（ｂ）前記ソースレジスタの前記ポジション値に対応する位置から前記オフセット値に対応する大きさのデータを抽出して前記目的レジスタに貯蔵し、前記ポジション値と前記オフセット値とを加えて新しいポジション値と設定する段階、（ｃ）前記新しいポジション値が所定のモジューロ値より大きいか小さいかを判断し、前記ポジション値が前記モジューロ値より小さければフラッグ信号を第１論理レベルに、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する段階、（ｄ）前記フラッグ信号が第１論理レベルならば前記新しいポジション値を利用して前記（ｂ）段階及び（ｃ）段階の動作を反復し、前記フラッグ信号が第２論理レベルならば前記ソースレジスタの下位部分のデータを前記ソースレジスタの上位部分に貯蔵する段階、（ｅ）第２論理レベルを有する前記フラッグ信号に応じて前記メモリの第Ｍ＋２番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位部分に貯蔵し、前記新しいポジション値から前記モジューロ値を引いた値を次のポジション値と設定して前記（ｂ）段階に戻る段階を備えることを特徴とする。
【０００８】
前記ソースレジスタ及び前記目的レジスタは２Ｎビットのサイズを有し、前記モジューロ値はＮであることを特徴とする。
前記ソースレジスタの上位部分は前記ソースレジスタの半分であることを特徴とする。
【０００９】
前記技術的課題を達成するための本発明の第２実施例によるデータ挿入方法は、ソースレジスタ及び目的レジスタを備え、データが挿入される基準位置を示すポジション値と挿入するデータの大きさを示すオフセット値とを利用して前記ソースレジスタから前記目的レジスタにデータを挿入するためのＤＳＰのデータ挿入方法において、（ａ）前記ソースレジスタのデータのうち前記オフセット値の大きさを有するデータを前記目的レジスタの前記ポジション値に対応する位置に挿入して前記目的レジスタに貯蔵し、前記ポジション値と前記オフセット値とを加えて新しいポジション値と設定する段階、（ｂ）前記新しいポジション値が所定のモジューロ値より大きいか小さいかを判断し、前記ポジション値が前記モジューロ値より小さければフラッグ信号を第１論理レベルに、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する段階、（ｃ）前記フラッグ信号が第１論理レベルならば前記新しいポジション値を利用して前記（ａ）段階及び（ｂ）段階の動作を反復し、前記フラッグ信号が第２論理レベルならば前記目的レジスタの上位ハーフビットのデータをＮ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵する段階、（ｄ）第２論理レベルを有する前記フラッグ信号に応じて前記目的レジスタの下位ハーフビットのデータを前記目的レジスタの上位ハーフビットに貯蔵して前記新しいポジション値から前記モジューロ値を引いた値を次のポジション値と設定して前記（ａ）段階に戻る段階、を備えることを特徴とする。
【００１０】
前記ソースレジスタ及び前記目的レジスタは２Ｎビットのサイズを有し、  前記モジューロ値はＮであることを特徴とする。
【００１１】
前記他の技術的課題を達成するための本発明の第１実施例によるデータ抽出及び挿入装置は、データ抽出及び挿入部、ポジション値発生部及びフラッグ信号発生部を備えることを特徴とする。
【００１２】
データ抽出及び挿入部は所定のプレポジション値と抽出するデータの大きさを示すオフセット値とを受信して所定のフラッグ信号の第１論理レベルに応じてソースレジスタから目的レジスタにデータを抽出または挿入し、前記フラッグ信号の第２論理レベルに応じて、前記ソースレジスタや前記目的レジスタにメモリからデータを受信して貯蔵したり、前記メモリに前記ソースレジスタや前記目的レジスタからデータを受信して貯蔵したりする。
ポジション値発生部は外部から入力されるプレポジション値と外部から入力される前記オフセット値とを加えて前記ポジション値を発する。
【００１３】
フラッグ信号発生部は前記ポジション値を受信して所定のモジューロ値と比較し、前記ポジション値が前記モジューロ値より小さければ前記ポジション値を前記プレポジション値として発し、前記ポジション値が前記モジューロ値より大きければ前記ポジション値から前記モジューロ値を引いた値を前記プレポジション値として発し、前記ポジション値と前記モジューロ値との比較結果により前記フラッグ信号を発する。
【００１４】
前記ポジション値発生部は前記プレポジション値を貯蔵するプレポジション値貯蔵部、外部から入力されるオフセット値を貯蔵するオフセット値貯蔵部、前記プレポジション値貯蔵部の出力と前記オフセット値貯蔵部の出力とを加えて前記ポジション値を発する加算部を備えることを特徴とする。
【００１５】
前記フラッグ信号発生部は前記モジューロ値を貯蔵するモジューロ値貯蔵部、前記ポジション値と前記モジューロ値貯蔵部から出力される前記モジューロ値の大きさを比較し、前記ポジション値が前記モジューロ値より小さい場合には前記ポジション値を所定の選択部に出力し、前記ポジション値が前記モジューロ値より大きい場合には前記ポジション値を所定の減算部に出力し、前記ポジション値と前記モジューロ値の大きさを比較した結果により前記フラッグ信号を発する比較部、前記ポジション値及び前記モジューロ値を受信し、前記ポジション値からモジューロ値を引く演算を行う前記減算部、前記フラッグ信号に応じて前記比較部から出力される前記ポジション値と前記減算部の出力のうち一つを選択して前記プレポジション値として出力する選択部を備えることを特徴とする。
【００１６】
前記比較部は前記ポジション値が前記モジューロ値より小さければ前記フラッグ信号を第１論理レベルに発し、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する。
前記選択部は前記フラッグ信号が第１論理レベルならば前記比較部から出力される前記ポジション値を選択して出力し、前記フラッグ信号が第２論理レベルならば前記減算部の出力を選択して出力することを特徴とする。
【００１７】
前記データ抽出及び挿入部は、データ抽出動作の場合に前記フラッグ信号の第１論理レベルに応じて前記ソースレジスタのデータのうち前記オフセット値の大きさを有するデータを前記目的レジスタの前記プレポジション値に対応する位置に挿入して前記目的レジスタに貯蔵し、前記フラッグ信号の第２論理レベルに応じて前記ソースレジスタの下位ハーフビットのデータを前記ソースレジスタの上位ハーフビットに貯蔵し、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリのＭ（Ｍは自然数）番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位ハーフビットに貯蔵することを特徴とする。
【００１８】
前記データ抽出及び挿入部は、データ挿入動作の場合に前記フラッグ信号の第１論理レベルに応じて前記目的レジスタの前記プレポジション値に対応する位置に前記オフセット値に対応する大きさのデータを挿入し、前記フラッグ信号の第２論理レベルに応じて前記目的レジスタの上位ハーフビットのデータをＮ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵し、前記目的レジスタの下位ハーフビットのデータを前記目的レジスタの上位ハーフビットに貯蔵することを特徴とする。
【００１９】
前記ソースレジスタ及び前記目的レジスタは２Ｎビットのサイズを有することを特徴とする。前記モジューロ値はＮであることを特徴とする。前記データ抽出及び挿入装置はＤＳＰに装着される。
【００２０】
前記他の技術的課題を達成するための本発明の第２実施例によるＤＳＰは、ポジション値発生部、フラッグ信号発生部及びデータパケット抽出及び挿入手段を備える。
【００２１】
ポジション値発生部は、外部から入力されるプレポジション値と外部から入力されるオフセット値とを加えて前記ポジション値を発する。
【００２２】
フラッグ信号発生部は前記ポジション値を受信して所定のモジューロ値と比較し、前記ポジション値が前記モジューロ値より小さければ前記ポジション値を前記プレポジション値として発し、前記ポジション値が前記モジューロ値より大きければ前記ポジション値から前記モジューロ値を引いた値を前記プレポジション値として発し、前記ポジション値と前記モジューロ値との比較結果により前記フラッグ信号を発する。
【００２３】
データパケット抽出及び挿入手段はバイトやワードの大きさを有するデータパケットを抽出したり挿入する手段であり、所定のプレポジション値と抽出するデータの大きさを示す前記オフセット値とを受信して所定のフラッグ信号の第１論理レベルに応じてソースレジスタから目的レジスタにデータを抽出または挿入し、前記フラッグ信号の第２論理レベルに応じて前記ソースレジスタや前記目的レジスタにメモリからデータを受信して貯蔵したり前記メモリにデータを貯蔵する。
【００２４】
【発明の実施の形態】
以下、添付した図面を参照して本発明の望ましい実施例を説明することにより、本発明を詳細に説明する。各図面に提示された同じ参照符号は、同じか均等な構成要素を示す。
図２は本発明の第２実施例によるデータ抽出方法を示すフローチャートである。
図３は図２のデータ抽出方法の概念を説明する図面である。
【００２５】
図２を参照すれば、本発明の第１実施例によるデータ抽出方法２００はソースレジスタ及び目的レジスタを備え、データ抽出の基準位置を示すポジション値と抽出するデータの大きさを示すオフセット値とを利用して前記ソースレジスタから前記目的レジスタにデータを抽出するためのＤＳＰのデータ抽出方法である。さらに説明すれば、データ抽出方法２００は、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵されているデータを前記ソースレジスタの上位ハーフビットに貯蔵し、第Ｍ＋１番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位ハーフビットに貯蔵する（２１０段階）。
【００２６】
前記ソースレジスタの前記ポジション値に対応する位置から前記オフセット値に対応する大きさのデータを抽出して、前記目的レジスタに貯蔵し、前記ポジション値と前記オフセット値とを加えて、新しいポジション値と設定する（２２０段階）。
前記新しいポジション値が所定のモジューロ値より大きいか小さいかを判断し、前記ポジション値が前記モジューロ値より小さければフラッグ信号を第１論理レベルに、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する（２３０段階）。
【００２７】
前記フラッグ信号が第１論理レベルならば前記新しいポジション値を利用して前記２２０段階及び２３０段階の動作を反復し（２４０段階）、前記フラッグ信号が第２論理レベルならば前記ソースレジスタの下位ハーフビットのデータを前記ソースレジスタの上位ハーフビットに貯蔵する（２５０，２６０段階）。
第２論理レベルを有する前記フラッグ信号に応じて前記メモリの第Ｍ＋２番目メモリブロックに貯蔵されているデータを前記ソースレジスタの下位ハーフビットに貯蔵し、前記新しいポジション値から前記モジューロ値を引いた値を次のポジション値と設定して前記２２０段階に戻る（２７０段階）。
前記ソースレジスタ及び前記目的レジスタは２Ｎビットのサイズを有し、前記モジューロ値はＮであることを特徴とする。
【００２８】
以下図２及び図３を参照して、本発明の第１実施例によるデータ抽出方法が詳細に説明する。
図３にはソースレジスタＳ＿ＲＥＧ（１），Ｓ＿ＲＥＧ（２）が２つ、目的レジスタＤ＿ＲＥＧ（１），Ｄ＿ＲＥＧ（２）が２つ示されている。ソースレジスタＳ＿ＲＥＧ（１）とソースレジスタＳ＿ＲＥＧ（２）とは同じレジスタである。すなわち、後述されるソースレジスタＳ＿ＲＥＧ（１）の下位ハーフビットのデータが同じソースレジスタＳ＿ＲＥＧ（１）の上位ハーフビットにコピーされる動作を説明するために２つに分けて示しただけである。目的レジスタＤ＿ＲＥＧ（１）と目的レジスタＤ＿ＲＥＧ（２）も同様に同じレジスタである。
【００２９】
メモリは普通Ｎビットのサイズを有する。ここで、Ｎは自然数である。一般的にメモリは１６ビットや３２ビットのサイズを有する。普通一つのデータパケットのサイズはバイトやワード単位である。従って、バイトやワードのサイズを有するデータパケットは、メモリからレジスタに移動される場合にデータパケットが分割されずに移動されうる。
しかし、データパケットのサイズがバイトやワード単位ではなくして処理さるべきデータパケットが連続的な場合、バイトやワードサイズを有さないデータパケットはメモリからレジスタに移動する場合にデータパケットが分割されるという問題がある。
【００３０】
また、レジスタからメモリにデータパケットが貯蔵される場合にも１６ビットや３２ビットのメモリ空間を全て満たせずに次のメモリに貯蔵されるので、メモリ空間を効率的に使用できなくなる。本発明の第１実施例によるデータ抽出方法２００はこのような問題を解決するためのものである。
図３のメモリ３００はデータパケットの大きさがバイトやワード単位ではない場合を示す。図３では説明の便宜のためにデータパケットＰ０，Ｐ１ …，Ｐ１３はそれぞれ７ビットのサイズを有するものとする。
【００３１】
メモリ３００は、説明の便宜のために、１６ビットサイズを有して複数のメモリブロックを備えるものとする。第１メモリブロックＭ１に７ビットの大きさを有する第１データパケットＰ０と第２データパケットＰ１とが貯蔵されている。第３データパケットＰ２も７ビットのサイズを有するが、第１メモリブロックＭ１に全て貯蔵されえないので、第１メモリブロックＭ１に２ビット、第２メモリブロックＭ２に５ビットが貯蔵される。第４データパケットＰ３が第２メモリブロックＭ２に貯蔵されている。
第５データパケットＰ４は第２メモリブロックＭ２に全て貯蔵されえないので、第２メモリブロックＭ２に４ビット、第３メモリブロックＭ３に３ビットが貯蔵される。かような方法で、第１４データパケットＰ１３の一部が第６メモリブロックＭ６に貯蔵されている。
【００３２】
まず、第Ｍメモリブロックに貯蔵されているデータをソースレジスタＳ＿ＲＥＧ（１）の上位ハーフビットに貯蔵し、第Ｍ＋１番目メモリブロックに貯蔵されているデータをソースレジスタＳ＿ＲＥＧ（１）の下位ハーフビットに貯蔵する（２１０段階）。
ここで、Ｍは説明の便宜のために１とする。従って、第１メモリブロックＭ１に貯蔵されているデータをソースレジスタＳ＿ＲＥＧ（１）の上位ハーフビットに貯蔵し、第２メモリブロックＭ２に貯蔵されているデータをソースレジスタＳ＿ＲＥＧ（１）の下位ハーフビットに貯蔵する。
【００３３】
従って、第１データパケットＰ０ないし第４データパケットＰ３と第５データパケットＰ４の一部とがソースレジスタに貯蔵される。このような過程は図３にて（１）と（２）とで示されている。
ソースレジスタＳ＿ＲＥＧ（１）はメモリのサイズの２倍のサイズを有する。すなわち、ここでは３２ビットのサイズを有する。
ソースレジスタＳ＿ＲＥＧ（１）のポジション値に対応する位置からオフセット値に対応する大きさのデータを抽出して、目的レジスタＤ＿ＲＥＧ（１）に貯蔵し、ポジション値とオフセット値とを加えて、新しいポジション値と設定する（２２０段階）。
【００３４】
ポジション値ＰＶはデータ抽出の基準位置を示し、オフセット値は抽出するデータの大きさを示す。ここで、オフセット値は一つのデータパケットを抽出するために７ビットとする。
最初のポジション値ＰＶ１からオフセット値に対応する大きさのデータを抽出する。オフセット値が一つのデータパケットの大きさと同じなので、結局、第１データパケットＰ０が抽出されて目的レジスタＤ＿ＲＥＧ（１）に貯蔵される。そして、以前のポジション値ＰＶ１にオフセット値を加えて、新しいポジション値ＰＶ２と設定する。従って、新しいポジション値ＰＶ２は、もとのポジション値ＰＶ１より７ビットほど大きくなる。最初のポジション値ＰＶ１がソースレジスタＳ＿ＲＥＧ（１）の０番目ビットならば、新しいポジション値ＰＶ２はソースレジスタＳ＿ＲＥＧ（１）の７番目ビットとなる。
【００３５】
新しいポジション値ＰＶ２が所定のモジューロ値ＭＶより大きいか小さいかを判断し、ポジション値ＰＶ２がモジューロ値ＭＶより小さければフラッグ信号を第１論理レベルに、ポジション値ＰＶ２がモジューロ値ＭＶより大きければフラッグ信号を第２論理レベルに発する（２３０段階）。
フラッグ信号が第１論理レベルならば新しいポジション値を利用して前記２２０段階及び２３０段階の動作を反復する（２４０段階）。
さらに説明すれば、ポジション値ＰＶ２が所定のモジューロ値ＭＶより大きいか小さいかを比較する。ここで、モジューロ値ＭＶはソースレジスタＳ＿ＲＥＧ（１）または目的レジスタＤ＿ＲＥＧ（１）の大きさの１／２値である。従って、図３では１６になる。
【００３６】
モジューロ値ＭＶについてさらに説明する。モジューロ値ＭＶは、ポジション値ＰＶが示すソースレジスタＳ＿ＲＥＧ（１）でのアドレスの範囲を規定したものである。ポジション値ＰＶが示すアドレスが定められたモジューロ値ＭＶを超える場合、ポジション値ＰＶは、定められたモジューロ値ＭＶの範囲内に再び戻る。
例えば、モジューロ値ＭＶが１６であって、ポジション値ＰＶが１０であって、オフセット値が３である場合、ポジション値ＰＶにオフセット値を加えた結果である１３は、モジューロ値ＭＶの１６より小さい。この場合には、そのまま１３が新しいポジション値ＰＶになる。
【００３７】
しかし、もしオフセット値ＰＶが８ならば、ポジション値ＰＶとオフセット値とを加えた結果は１８であり、これはモジューロ値ＭＶの１６より大きいので１８から１６を引いた結果である２が新しいポジション値ＰＶになる。すなわち、ポジション値ＰＶは、モジューロ値ＭＶより常に小さい値と決定される。このような概念をＤＳＰのモジューロアドレシング概念という。
ポジション値ＰＶ２は、ソースレジスタＳ＿ＲＥＧ（１）の７番目ビットであって、モジューロ値ＭＶは１６である。ポジション値ＰＶ２がモジューロ値ＭＶより小さいので、フラッグ信号は第１論理レベルに発せられる。
【００３８】
フラッグ信号は、ポジション値ＰＶ２とモジューロ値ＭＶの大きさを比較した結果に応じて、第１論理レベルまたは第２論理レベルに発せられる信号である。ここで、第１論理レベルは論理ハイレバルであるか、あるいは論理ローレベルでありうる。しかし、説明の便宜のために論理ローレベルとする。
フラッグ信号が論理ローレベルであるので、第２１０段階の動作を再び反復する。すなわち、ソースレジスタＳ＿ＲＥＧ（１）のポジション値ＰＶ２からオフセット値に対応する大きさのデータを抽出する。オフセット値が一つのデータパケットの大きさと同じなので、結局第２データパケットＰ１が抽出されて目的レジスタＤ＿ＲＥＧ（１）に貯蔵される。目的レジスタＤ＿ＲＥＧ（１）に貯蔵されていた第１データパケットＰ０は外部に出力される。
【００３９】
そして、以前のポジション値ＰＶ２７とオフセット値とが加えられて新しいポジション値ＰＶ３が１４と設定される。
ポジション値ＰＶ３とモジューロ値ＭＶとを比較する。ポジション値ＰＶ３がモジューロ値ＭＶより小さいので、フラッグ信号は論理ローレベルに発せられる。ソースレジスタＳ＿ＲＥＧ（１）の新しいポジション値ＰＶ３からオフセット値に対応する大きさのデータを抽出する。オフセット値が一つのデータパケットの大きさと同じなので、結局第３データパケットＰ２が抽出されて目的レジスタＤ＿ＲＥＧ（１）に貯蔵される。この時、目的レジスタＤ＿ＲＥＧ（１）に貯蔵されていた第２データパケットＰ１は外部に出力される。
【００４０】
以前のポジション値ＰＶ３１４とオフセット値とを加えて、新しいポジション値ＰＶ４を２１と設定する。そして、ポジション値ＰＶ４が所定のモジューロ値ＭＶより大きいか小さいかを比較する。ポジション値ＰＶ４は２１であってモジューロ値ＭＶは１６であるので、ポジション値ＰＶ４がモジューロ値ＭＶより大きい。従って、フラッグ信号は第２論理レベルに発せられる。
フラッグ信号が第２論理レベルならば、ソースレジスタＳ＿ＲＥＧ（１）の下位ハーフビットのデータをソースレジスタＳ＿ＲＥＧ（２）の上位ハーフビットに貯蔵する（２６０段階）。
【００４１】
第２論理レベルを有するフラッグ信号に応じて、メモリ３００の第Ｍ＋２番目メモリブロックに貯蔵されているデータを、ソースレジスタＳ＿ＲＥＧ（２）の下位ハーフビットに貯蔵し、新しいポジション値ＰＶ４からモジューロ値ＭＶを引いた値を、次のポジション値ＰＶ５と設定して、前記２２０段階に戻る（２７０段階）。
すなわち、図３にて第３データパケットＰ２の一部と第４データパケットＰ３及び第５データパケットＰ４の一部とが、ソースレジスタＳ＿ＲＥＧ（２）の上位ハーフビットに貯蔵される。
【００４２】
そして、メモリ３００の第３メモリブロックＭ３に貯蔵されているデータ、すなわち第５データパケットＰ４の一部と第６データパケットＰ５及び第７データパケットＰ６の一部とを、ソースレジスタＳ＿ＲＥＧ（２）の下位ハーフビットに貯蔵する。このような動作は図３にて（３）と示されている。
そして、ポジション値ＰＶ４の２１とモジューロ値ＭＶＩＮ１６との差である５を、新しいポジション値ＰＶ５と設定する。新しいポジション値ＰＶ５からオフセット値に対応するデータを抽出して目的レジスタＤ＿ＲＥＧ（２）に貯蔵する第２２０段階の動作を再び反復する。これは図３にて（４）と示されている。
【００４３】
第１実施例による方法２００を利用すれば、データパケットの大きさがバイト単位ではなくてビット単位の場合にも、新しいデータパケットをメモリから連続的に読み込めて、メモリを効率的に使用できる。
第１実施例による方法２００は、ビットアドレシング概念と言える。ソースレジスタや目的レジスタにバイト当たりのアドレスを割り当てたのではなく、ビット当たりのアドレスを割り当てることにより、任意サイズの連続的なデータパケットの処理もメモリの浪費なく可能になされうる。
【００４４】
図４は、本発明の第２実施例によるデータ挿入方法を示すフローチャートである。
図５は、図４のデータ挿入方法の概念を説明する図面である。
図４を参照すれば、本発明の第２実施例によるデータ挿入方法４００は、ソースレジスタ及び目的レジスタを備え、データが挿入される基準位置を示すポジション値と挿入するデータの大きさを示すオフセット値とを利用し、前記ソースレジスタから前記目的レジスタにデータを挿入するためのＤＳＰのデータ挿入方法に関するものである。
【００４５】
まず、前記ソースレジスタのデータのうち、前記オフセット値の大きさを有するデータを、前記目的レジスタの前記ポジション値に対応する位置に挿入して、前記目的レジスタに貯蔵し、前記ポジション値と前記オフセット値とを加えて新しいポジション値と設定する（４１０段階）。
前記新しいポジション値が所定のモジューロ値より大きいか小さいかを判断し、前記ポジション値が前記モジューロ値より小さければフラッグ信号を第１論理レベルに、前記ポジション値が前記モジューロ値より大きければ前記フラッグ信号を第２論理レベルに発する（４２０ないし４４０段階）。
【００４６】
前記フラッグ信号が第１論理レベルならば、前記新しいポジション値を利用して前記第４１０段階及び４２０段階の動作を反復する。前記フラッグ信号が第２論理レベルならば、前記目的レジスタの上位ハーフビットのデータを、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに、貯蔵する（４５０段階）。
第２論理レベルを有する前記フラッグ信号に応じて、前記目的レジスタの下位ハーフビットのデータを、前記目的レジスタの上位ハーフビットに貯蔵し、前記新しいポジション値から前記モジューロ値を引いた値を次のポジション値と設定して、前記４１０段階に戻る（４６０段階）。前記ソースレジスタ及び前記目的レジスタは２Ｎビットのサイズを有し、前記モジューロ値はＮであることを特徴とする。
【００４７】
以下、図４及び図５を参照して本発明の第２実施例によるデータ挿入方法が詳細に説明される。
図５には、目的レジスタＤ＿ＲＥＧ（１），Ｄ＿ＲＥＧ（２）が２つ示されている。目的レジスタＤ＿ＲＥＧ（１）と目的レジスタＤ＿ＲＥＧ（２）とは同じレジスタである。すなわち、後述される目的レジスタＤ＿ＲＥＧ（１）の下位ハーフビットのデータが、同じ目的レジスタＤ＿ＲＥＧ（１）の上位ハーフビットにコピーされる動作を説明するために、２つに分けて示しただけである。
【００４８】
データパケットのサイズがバイトやワード単位ではなくて、処理さるべきデータパケットが連続的である場合、バイトやワードサイズを有さないデータパケットは、レジスタからメモリに貯蔵される場合にデータパケットが分割されるという問題がある。本発明の第２実施例によるデータ挿入方法４００は、このような問題を解決するためのものである。
図５では、説明の便宜のために、データパケットＰ０，Ｐ１…Ｐ４はそれぞれ７ビットのサイズを有するものとする。メモリ（図示せず）は、説明の便宜のために、１６ビットサイズを有して複数のメモリブロックを備えるものとする。
【００４９】
まず、ソースレジスタＳ＿ＲＥＧのデータのうち、オフセット値の大きさを有するデータを、目的レジスタＤ＿ＲＥＧ（１）のポジション値ＰＶ１に対応する位置に挿入して、目的レジスタＤ＿ＲＥＧ（１）に貯蔵し、ポジション値ＰＶ１とオフセット値とを加えて、新しいポジション値ＰＶ２と設定する（４１０段階）。
ソースレジスタＳ＿ＲＥＧと目的レジスタＤ＿ＲＥＧ（１）とは、メモリ（図示せず）サイズの２倍のサイズを有する。すなわち、ここでは３２ビットのサイズを有する。
【００５０】
ポジション値ＰＶはデータ挿入の基準位置を示し、オフセット値は挿入するデータの大きさを示す。ここで、オフセット値は一つのデータパケットを挿入するために７ビットとする。
ポジション値ＰＶ１を０としてオフセット値を７とすれば、ソースレジスタＳ＿ＲＥＧに貯蔵されていた第１データパケットＰ０は、目的レジスタＤ＿ＲＥＧ（１）に挿入される。そして、新しいポジション値ＰＶ２は、以前のポジション値ＰＶ１０にオフセット値７を加えて７になる。
【００５１】
新しいポジション値ＰＶ２が所定のモジューロ値ＭＶより大きいか小さいかを判断する（４２０段階）。ポジション値ＰＶ２がモジューロ値ＭＶより小さければ、フラッグ信号を第１論理レベルに、ポジション値ＰＶ２がモジューロ値ＭＶより大きければ、フラッグ信号を第２論理レベルに発する（４３０及び４４０段階）。
フラッグ信号が第１論理レベルならば、新しいポジション値を利用して前記４１０段階及び４２０段階の動作を反復する。
【００５２】
さらに説明すれば、ポジション値ＰＶ２が所定のモジューロ値ＭＶより大きいか小さいかを比較する。ここで、モジューロ値ＭＶは、ソースレジスタＳ＿ＲＥＧ（１）または目的レジスタＤ＿ＲＥＧ（１）の大きさの１／２値である。従って、図５では１６になる。
モジューロ値ＭＶは、第１実施例によるデータ抽出方法２００にて説明したのと同じ概念であるので、ここでは説明を省略する。
【００５３】
ポジション値ＰＶ２は、目的レジスタＤ＿ＲＥＧ（１）の７番目ビットであって、モジューロ値ＭＶは１６である。ポジション値ＰＶ２がモジューロ値ＭＶより小さいので、フラッグ信号は第１論理レベルに発せられる。
フラッグ信号はポジション値ＰＶ２とモジューロ値ＭＶの大きさとを比較した結果に応じて第１論理レベルまたは第２論理レベルに発せられる信号である。ここで、第１論理レベルは論理ハイレバルであるか、あるいは論理ローレベルでありうる。しかし、説明の便宜のために論理ローレベルとする。
【００５４】
フラッグ信号が論理ローレベルに発せられれば、目的レジスタＤ＿ＲＥＧ（１）の新しいポジション値ＰＶ３にオフセット値に対応する大きさのデータを挿入する。オフセット値が一つのデータパケットの大きさと同じなので、結局第３データパケットＰ２が挿入されて、目的レジスタＤ＿ＲＥＧ（１）に貯蔵される。そして、新しいポジション値ＰＶ４は、元来のポジション値ＰＶ３にオフセット値を加えて２１と設定される。
【００５５】
ポジション値ＰＶ４が所定のモジューロ値ＭＶより大きいか小さいかを比較する。ポジション値ＰＶ４は２１であって、モジューロ値ＭＶは１６であるので、ポジション値ＰＶ４がモジューロ値ＭＶより大きい。従って、フラッグ信号は第２論理レベルに発せられる。
フラッグ信号が第２論理レベルならば、目的レジスタＤ＿ＲＥＧ（１）の上位ハーフビットのデータを、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリ（図示せず）の第Ｍ（Ｍは自然数）番目メモリブロックに、貯蔵する（４５０段階）。
【００５６】
第２論理レベルを有するフラッグ信号に応じて、目的レジスタＤ＿ＲＥＧ（１）の下位ハーフビットのデータを、目的レジスタＤ＿ＲＥＧ（２）の上位ハーフビットに貯蔵して、新しいポジション値ＰＶ４からモジューロ値ＭＶを引いた値を、次のポジション値ＰＶ５と設定して、４１０段階に戻る（４６０段階）。
すなわち、図５にて第１データパケットＰ０、第２データパケットＰ１及び第３データパケットＰ２の２ビットが、メモリ（図示せず）のＭ番目ブロックに貯蔵される。このような動作は、図５にて（１）と示されている。そして、目的レジスタＤ＿ＲＥＧ（１）の下位ハーフビットに貯蔵されていた第３データパケットＰ２の５ビットが、目的レジスタＤ＿ＲＥＧ（１）の上位ハーフビットに貯蔵される。これは図５にて（２）と示されている。
【００５７】
目的レジスタＤ＿ＲＥＧ（２）の新しいポジション値ＰＶ５に、オフセット値に対応するデータを抽出して貯蔵する動作を、また反復する。すなわち、第４データパケットＰ３が、目的レジスタＤ＿ＲＥＧ（２）に挿入される。そして、ポジション値ＰＶ５がモジューロ値ＭＶと比較される動作が、続けてなされる。
第２実施例による方法４００を利用すれば、データパケットの大きさがバイト単位ではなくして、ビット単位の場合にも、新しいデータパケットをメモリに連続的に貯蔵できるので、メモリを効率的に使用できる。
【００５８】
第２実施例によるデータ挿入方法４００は、ビットアドレシング概念と言える。ソースレジスタや目的レジスタに、バイト当たりのアドレスを割り当てたのではなくして、ビット当たりのアドレスを割り当てることにより、任意サイズの連続的なデータパケットの処理も、メモリの浪費なく可能になされうる。
【００５９】
図６は本発明の第１実施例によるデータ抽出及び挿入装置を示すブロック図である。
図６を参照すれば、本発明の第１実施例によるデータ抽出及び挿入装置６００は、ＤＳＰにおいてデータ抽出及び挿入部６１０、ポジション値発生部６２０及びフラッグ信号発生部６４０を備えることを特徴とする。
【００６０】
データ抽出及び挿入部６１０は、所定のポジション値ＰＶと抽出するデータの大きさを示すオフセット値ＯＦＦＳＥＴとを受信して、所定のフラッグ信号ＦＬＡＧの第１論理レベルに応じて、ソースレジスタから目的レジスタにデータを抽出または挿入する。そして、データ抽出及び挿入部６１０は、フラッグ信号ＦＬＡＧの第２論理レベルに応じて、ソースレジスタや目的レジスタにメモリ（図示せず）から受け取られた(受信された)データを貯蔵したり、ソースレジスタや目的レジスタから受け取られた(受信された)データをメモリに貯蔵したりする。
【００６１】
さらに説明すれば、データ抽出及び挿入部６１０は、データ抽出動作の場合に、フラッグ信号ＦＬＡＧの第１論理レベルに応じて、ソースレジスタのデータのうちオフセット値ＯＦＦＳＥＴの大きさを有するデータを、目的レジスタのプレポジション値ＰＲＥＰＶに対応する位置に挿入して、目的レジスタに貯蔵する。また、データ抽出及び挿入部６１０は、フラッグ信号ＦＬＡＧの第２論理レベルに応じて、ソースレジスタの下位ハーフビットのデータを、ソースレジスタの上位ハーフビットに貯蔵し、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリ（図示せず）のＭ（Ｍは自然数）番目メモリブロックに貯蔵されているデータを、ソースレジスタの下位ハーフビットに貯蔵する。
【００６２】
データ抽出及び挿入部６１０は、データ挿入動作の場合に、フラッグ信号ＦＬＡＧの第１論理レベルに応じて、前記目的レジスタのプレポジション値ＰＲＥＰＶに対応する位置に、オフセット値ＯＦＦＳＥＴに対応する大きさのデータを、挿入する。また、データ抽出及び挿入部６１０は、フラッグ信号ＦＬＡＧの第２論理レベルに応じて、前記目的レジスタの上位ハーフビットのデータを、Ｎ（Ｎは自然数）ビットのメモリブロックを複数備えるメモリの第Ｍ（Ｍは自然数）番目メモリブロックに貯蔵し、前記目的レジスタの下位ハーフビットのデータを、前記目的レジスタの上位ハーフビットに貯蔵する。
【００６３】
ポジション値発生部６２０は、外部から入力されるプレポジション値ＰＲＥＰＶと、外部から入力されるオフセット値ＯＦＦＳＥＴとを加えて、ポジション値ＰＶを発する。
さらに説明すれば、ポジション値発生部６２０は、プレポジション値ＰＲＥＰＶを貯蔵するプレポジション値貯蔵部６２５、外部から入力されるオフセット値ＯＦＦＳＥＴを貯蔵するオフセット値貯蔵部６３０、プレポジション値貯蔵部６２５の出力ＯＰＲＥＰＶとオフセット値貯蔵部６３０の出力ＯＦＦＳＥＴ＿１とを加えてポジション値ＰＶを発する加算部６３５を備える。
【００６４】
フラッグ信号発生部６４０は、ポジション値ＰＶを受信して所定のモジューロ値ＭＶと比較し、ポジション値ＰＶがモジューロ値ＭＶより小さければ、ポジション値ＰＶをプレポジション値ＰＲＥＰＶとして発し、ポジション値ＰＶがモジューロ値ＭＶより大きければ、モジューロ値ＭＶからポジション値ＰＶを引いた値をプレポジション値ＰＲＥＰＶとして発し、ポジション値ＰＶとモジューロ値ＭＶとの比較結果によりフラッグ信号ＦＬＡＧを発する。
【００６５】
さらに説明すれば、フラッグ信号発生部６４０は、モジューロ値貯蔵部６５０、比較部６４５、減算部６５５及び選択部６６０を備える。
モジューロ値貯蔵部６５０は、モジューロ値ＭＶを貯蔵する。比較部６４５は、ポジション値ＰＶとモジューロ値貯蔵部６５０から出力されるモジューロ値ＭＶの大きさを比較し、ポジション値ＰＶがモジューロ値ＭＶより小さい場合には、ポジション値ＰＶを所定の選択部６６０に出力し、ポジション値ＰＶがモジューロ値ＭＶより大きい場合には、ポジション値ＰＶを所定の減算部６５５に出力し、ポジション値ＰＶとモジューロ値ＭＶの大きさを比較した結果により、フラッグ信号ＦＬＡＧを発する。
【００６６】
比較部６４５は、ポジション値ＰＶがモジューロ値ＭＶより小さければ、フラッグ信号ＦＬＡＧを第１論理レベルに発し、ポジション値ＰＶがモジューロ値ＭＶより大きければ、フラッグ信号ＦＬＡＧを第２論理レベルに発する。
減算部６５５はポジション値ＰＶ及びモジューロ値ＭＶを受信して、ポジション値ＰＶからモジューロ値ＭＶを引く演算を行う。
選択部６６０は、フラッグ信号ＦＬＡＧに応じて、比較部６４５から出力されるポジション値ＰＶと減算部６５５の出力のうち一つを選択して、プレポジション値ＰＲＥＰＶとして出力する。
選択部６６０は、フラッグ信号ＦＬＡＧが第１論理レベルならば、比較部６４５から出力されるポジション値ＰＶを選択して出力し、フラッグ信号ＦＬＡＧが第２論理レベルならば、減算部６５５の出力を選択して出力する。
前記ソースレジスタ及び前記目的レジスタは、２Ｎビットのサイズを有し、前記モジューロ値はＮである。
【００６７】
以下、図６を参照して本発明の第１実施例によるデータ抽出及び挿入装置の動作が詳細に説明される。
データ抽出及び挿入装置６００は、データ抽出方法２００及びデータ挿入方法４００を装置として具現したものである。
ポジション値発生部６２０は、外部から入力されるプレポジション値ＰＲＥＰＶと、外部から入力されるオフセット値ＯＦＦＳＥＴとを加えて、ポジション値ＰＶを発する。
【００６８】
プレポジション値ＰＲＥＰＶは、後述するフラッグ信号発生部６４０の選択部６６０から発せられ、データ抽出動作の場合にソースレジスタからデータを抽出する基準位置を示し、データ挿入動作の場合に目的レジスタからデータが挿入される基準位置を示す。
オフセット値ＯＦＦＳＥＴは、抽出または挿入するデータの大きさを示す。
プレポジション値ＰＲＥＰＶとオフセット値ＯＦＦＳＥＴとは、データ抽出及び挿入部６１０に印加される。データ抽出及び挿入部６１０では、入力されるプレポジション値ＰＲＥＰＶとオフセット値ＯＦＦＳＥＴとに応じて、データの抽出または挿入動作がなされる。これについては後述する。
【００６９】
プレポジション値ＰＲＥＰＶとオフセット値ＯＦＦＳＥＴとは、データ抽出及び挿入部６１０に印加されると共に、ポジション値発生部６２０に入力される。プレポジション値発生部６２０のプレポジション値貯蔵部６２５は、プレポジション値ＰＲＥＰＶを受信して貯蔵する。オフセット値貯蔵部６３０は、入力されるオフセット値ＯＦＦＳＥＴを貯蔵する。プレポジション値発生部６２０とオフセット値貯蔵部６３０とは、レジスタでありうる。
【００７０】
加算部６３５は、プレポジション値貯蔵部６２５の出力ＯＰＲＥＰＶとオフセット値貯蔵部６３０の出力ＯＦＦＳＥＴ＿１とを加えて、ポジション値ＰＶを発する。プレポジション値貯蔵部６２５の出力ＯＰＲＥＰＶは、プレポジション値ＰＲＥＰＶと同一であって、オフセット値貯蔵部６３０の出力ＯＦＦＳＥＴ＿１はオフセット値ＯＦＦＳＥＴと同じである。
例えば、プレポジション値ＰＲＥＰＶを０としてオフセット値を７とすれば、ポジション値ＰＶは、プレポジション値ＰＲＥＰＶ０にオフセット値ＯＦＦＳＥＴ７を加えて、７になる。
【００７１】
フラッグ信号発生部６４０は、ポジション値ＰＶを受信して所定のモジューロ値ＭＶと比較し、ポジション値ＰＶがモジューロ値ＭＶより小さければ、ポジション値ＰＶをプレポジション値ＰＲＥＰＶとして発し、ポジション値ＰＶがモジューロ値ＭＶより大きければ、モジューロ値ＭＶからポジション値ＰＶを引いた値をプレポジション値ＰＲＥＰＶとして発し、ポジション値ＰＶとモジューロ値ＭＶとの比較結果により、フラッグ信号ＦＬＡＧを発する。
【００７２】
モジューロ値ＭＶは、データ抽出方法２００及びデータ挿入方法４００にて説明されたのと同じ概念である。メモリ（図示せず）のサイズが１６ならば、モジューロ値ＭＶも１６である。モジューロ値ＭＶは、モジューロ値貯蔵部６５０に貯蔵されている。
比較部６４５は、ポジション値ＰＶとモジューロ値貯蔵部６５０から出力されるモジューロ値ＭＶの大きさを比較する。ポジション値ＰＶがモジューロ値ＭＶより小さい場合にはポジション値ＰＶを所定の選択部６６０として出力する。ポジション値ＰＶがモジューロ値ＭＶより大きい場合にはポジション値ＰＶを所定の減算部６５５に出力する。
【００７３】
また、比較部６４５は、ポジション値ＰＶとモジューロ値ＭＶの大きさを比較した結果により、フラッグ信号ＦＬＡＧを発する。フラッグ信号ＦＬＡＧは、ポジション値ＰＶがモジューロ値ＭＶより小さければ第１論理レベルに発せられ、ポジション値ＰＶがモジューロ値ＭＶより大きければ第２論理レベルに発せられる。
第１論理レベルは論理ハイレバルであって第２論理レベルは論理ローレベルでありうる。反対に、第１論理レベルは論理ローレベルであって第２論理レベルは論理ハイレバルでありうる。
【００７４】
フラッグ信号ＦＬＡＧが第１論理レベルに発せられれば、データ抽出及び挿入部６１０は、プレポジション値ＰＲＥＰＶとオフセット値ＯＦＦＳＥＴとを利用して、データ抽出または挿入動作を行う。
フラッグ信号ＦＬＡＧが第２論理レベルに発せられれば、データ抽出及び挿入部６１０は、データ抽出動作の場合、ソースレジスタの下位ハーフビットのデータを上位ハーフビットに貯蔵してメモリに貯蔵されている１６ビットサイズのデータを、ソースレジスタの下位ハーフビットに貯蔵する。
【００７５】
フラッグ信号ＦＬＡＧが第２論理レベルに発せられれば、データ抽出及び挿入部６１０は、データ挿入動作の場合、目的レジスタの上位ハーフビットのデータをメモリに貯蔵して目的レジスタの下位ハーフビットのデータを、目的レジスタの上位ハーフビットに貯蔵する。
減算部６５５は、比較部６４５の出力信号ＰＶＨからモジューロ値ＭＶを引く演算を行う。比較部６４５の出力信号ＰＶＨは、ポジション値ＰＶがモジューロ値ＭＶより大きい場合に発せられるので、減算部６５５の出力は正の値である。選択部６６０は、フラッグ信号ＦＬＡＧが第１論理レベルならば、比較部６４５の出力信号ＰＶＬを選択して出力し、フラッグ信号ＦＬＡＧが第２論理レベルならば、減算部６５５の出力を選択してプレポジション値ＰＲＥＰＶとして出力する。
【００７６】
整理すれば、ポジション値ＰＶがモジューロ値ＭＶより小さいならば、比較部６４５は、ポジション値ＰＶを比較部６４５の出力信号ＰＶＬとして、選択部６６０に印加して、フラッグ信号ＦＬＡＧを第１論理レベルに出力する。選択部６６０は、比較部６４５の出力信号ＰＶＬを選択して、プレポジション値ＰＲＥＰＶとして発する。データ抽出及び挿入部６１０は、フラッグ信号ＦＬＡＧの第１論理レベルに応じて、プレポジション値ＰＲＥＰＶとオフセット値ＯＦＦＳＥＴとを利用して、データ抽出または挿入動作を行う。
【００７７】
ポジション値ＰＶがモジューロ値ＭＶより大きいならば、比較部６４５は、ポジション値ＰＶを比較部６４５の出力信号ＰＶＨとして減算部６５５に印加して、フラッグ信号ＦＬＡＧを第２論理レベルに出力する。減算部６５５は、比較部６４５から印加される信号ＰＶＨからモジューロ値ＭＶを引いて、その結果を選択部６６０に印加する。
選択部６６０は、減算部６５５の出力信号を選択して、プレポジション値ＰＲＥＰＶとして発する。データ抽出及び挿入部６１０は、フラッグ信号ＦＬＡＧの第２論理レベルに応じて、データをメモリに貯蔵したりメモリから、データを読み込む。
【００７８】
【発明の効果】
前述の如く、本発明によるデータ抽出／挿入方法及びデータ抽出及び挿入装置は、データパケットの大きさがバイトやワード単位ではなくして、連続的にデータパケットを抽出または挿入しなければならない場合、データパケットの連続的な抽出及び挿入を効率的にして、メモリを節約できる長所がある。
以上のように、図面と明細書とによって、最適な実施例が開示された。ここで、特定の用語が使われたが、それは単に本発明を説明するための目的に使われたのであって、意味限定や特許請求範囲に記載された本発明の範囲を制限するために使われたものではない。従って、本技術分野の当業者ならば、これから多様な変形及び均等な他実施例が可能である、という点を理解できるであろう。従って、本発明の真の技術的保護範囲は、特許請求範囲の技術的思想により決まるべきである。
【図面の簡単な説明】
【図１】ＤＳＰのデータ抽出及び挿入動作の概念を説明する図面である。
【図２】本発明の第１実施例によるデータ抽出方法を示すフローチャートである。
【図３】図２のデータ抽出方法の概念を説明する図面である。
【図４】本発明の第２実施例によるデータ挿入方法を示すフローチャートである。
【図５】図４のデータ挿入方法の概念を説明する図面である。
【図６】本発明の第１実施例によるデータ抽出及び挿入装置を示すブロック図である。
【符号の説明】
２００    データ抽出方法
３００    メモリ
４００    データ挿入方法
６００    データ抽出及び挿入装置
【図１】
0004154276.tif 000002
【図２】
0004154276.tif 000003
【図３】
0004154276.tif 000004
【図４】
0004154276.tif 000005
【図５】
0004154276.tif 000006
【図６】
0004154276.tif 000007