(57)【要約】【課題】相対アドレスを絶対アドレスに変換する際の演算処理装置の処理負荷の軽減を実現すること。【解決手段】コンピュータにおいて、ＲＡＭ３２と、ｎ桁のビット列により表現されるＲＡＭ３２の絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、当該演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得部１１３２１と、取得されるインストラクションに含まれる処理内容情報に応じて、上記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得部１１３２３と、取得されるオフセットアドレスと、上記インストラクションに含まれる相対アドレスと、に基づいて絶対アドレスを取得する絶対アドレス取得／メモリアクセス指示部１１３２４と、を含むことを特徴とする。【選択図】図４
2008134917.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセス装置を用いてメモリへのアクセスを行う演算処理装置であって、
ｎ桁のビット列により表現される前記メモリの絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、当該演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得手段と、
前記インストラクション取得手段により取得されるインストラクションに含まれる処理内容情報に応じて、前記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得手段と、
前記メモリアクセス装置に対し、前記オフセットアドレス取得手段により取得されるオフセットアドレスを上位とし、前記インストラクション取得手段により取得されるインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を絶対アドレスとする前記メモリ内の位置へのアクセスを指示するアクセス指示手段と、
を含むことを特徴とする演算処理装置。
【請求項２】
請求項１に記載の演算処理装置において、
前記処理内容情報は、複数の一連のアクセス対象データのうち少なくとも１つの一連のアクセス対象データを対象とするメモリアクセス処理を示しており、
前記オフセットアドレス取得手段は、前記インストラクション取得手段により取得されるインストラクションに含まれる処理内容情報により示されるメモリアクセス処理の対象である一連のアクセス対象データに応じて、前記メモリ内に記憶される複数の一連のアクセス対象データそれぞれについてオフセットアドレスを記憶するオフセットアドレス記憶手段から、少なくとも１のオフセットアドレスを取得する、
ことを特徴とする演算処理装置。
【請求項３】
請求項２に記載の演算処理装置において、
前記メモリは、前記一連のアクセス対象データを、その絶対アドレスの上位が前記オフセットアドレス記憶手段において当該一連のアクセス対象データについて記憶されるオフセットアドレスである当該メモリ内の領域に記憶する、
ことを特徴とする演算処理装置。
【請求項４】
請求項１又は２に記載の演算処理装置において、
前記インストラクション取得手段により取得されるインストラクションに応じて当該演算処理装置が行う処理の進行に応じて、ｎ−ｍ桁のビット列により構成されるポインタの値を更新するポインタ更新手段、を含み、
前記オフセットアドレス取得手段は、前記ポインタの値を、前記オフセットアドレスとして取得する、
ことを特徴とする演算処理装置。
【請求項５】
メモリアクセス装置を用いてメモリへのアクセスを行うメモリアクセス方法であって、
ｎ桁のビット列により表現される前記メモリの絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得ステップと、
前記インストラクション取得ステップにおいて取得されるインストラクションに含まれる処理内容情報に応じて、前記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得ステップと、
前記メモリアクセス装置に対し、前記オフセットアドレス取得ステップにおいて取得されるオフセットアドレスを上位とし、前記インストラクション取得ステップにおいて取得されるインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を絶対アドレスとする前記メモリ内の位置へのアクセスを指示するステップと、
を含むことを特徴とするメモリアクセス方法。
【請求項６】
メモリアクセス装置を用いてメモリへのアクセスを行う演算処理装置としてコンピュータを機能させるプログラムであって、
ｎ桁のビット列により表現される前記メモリの絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、前記演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得手段、
前記インストラクション取得手段により取得されるインストラクションに含まれる処理内容情報に応じて、前記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得手段、及び
前記メモリアクセス装置に対し、前記オフセットアドレス取得手段により取得されるオフセットアドレスを上位とし、前記インストラクション取得手段により取得されるインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を絶対アドレスとする前記メモリ内の位置へのアクセスを指示するアクセス指示手段、
として前記コンピュータをさらに機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、メモリアクセス方法、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータではデータを記憶するためのメモリが用いられるが、メモリ内の位置は、絶対アドレスと呼ばれる所定桁数のビット列により一意に特定される。演算処理装置は、絶対アドレスを特定するインストラクション（命令語）の入力を受け付けると、該絶対アドレスによりメモリ内の位置を特定し、該位置にアクセスしてデータの読み書きを行う。
【０００３】
ところで、演算処理装置はプログラムを実行し、実行中のプログラム内の記述（インストラクションを含む。）に従って動作するが、該プログラムにおいてアクセス対象となるデータのメモリ内格納位置の絶対アドレスは、プログラム実行の都度異なるのが通常である。そこで、プログラム内に記述されるインストラクションは、通常、絶対アドレスではなく、メモリにより実現される全記憶領域のうち、処理中にアクセスする必要のある部分内での相対アドレスによってメモリ内の位置を特定する。
【０００４】
すなわち、演算処理装置は、プログラムを実行するときにメモリ中に一定サイズの記憶領域を確保し、その先頭アドレスをメモリ内の所定領域に一時記憶する。そして、該プログラムを実行中は、確保した記憶領域においてデータの読み書きを行う。実際にデータの読み書きが発生すると、演算処理装置は、まずインストラクションに基づいて上記記憶領域内の相対位置を示す相対アドレスを特定し、さらに特定した相対アドレスに、メモリに一時記憶させた先頭アドレスを加算することにより、相対アドレスを絶対アドレスに変換する。演算処理装置は、こうして取得した絶対アドレスに対してデータの読み書きを行う。特許文献１及び２には、このような処理の例が示されている。
【特許文献１】特開平１０−２１１３９号公報
【特許文献２】特開平１１−２２４２４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記処理においては、相対アドレスを絶対アドレスに変換する際に行わなければならない加算処理が演算処理装置の処理負荷に大きな影響を与えており、この処理負荷の軽減が求められている。
【０００６】
従って、本発明の課題の一つは、相対アドレスを絶対アドレスに変換する際の演算処理装置の処理負荷の軽減を実現する演算処理装置、メモリアクセス方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するための演算処理装置は、ｎ桁のビット列により表現される前記メモリの絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、当該演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得手段と、前記インストラクション取得手段により取得されるインストラクションに含まれる処理内容情報に応じて、前記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得手段と、前記メモリアクセス装置に対し、前記オフセットアドレス取得手段により取得されるオフセットアドレスを上位とし、前記インストラクション取得手段により取得されるインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を絶対アドレスとする前記メモリ内の位置へのアクセスを指示するアクセス指示手段と、を含むことを特徴とする。
これによれば、演算処理装置は、先頭アドレスに代えて絶対アドレスのうち上位ｍ桁分のビット列により構成されるオフセットアドレスを用い、さらに相対アドレスを絶対アドレスのうち下位ｎ−ｍ桁分のビット列としているので、加算処理を実行することなく、オフセットアドレスと相対アドレスとを連結するだけで、相対アドレスを絶対アドレスに変換することができる。よって、相対アドレスを絶対アドレスに変換する際の演算処理装置の処理負荷の軽減が実現される。
【０００８】
また、上記演算処理装置において、前記処理内容情報は、複数の一連のアクセス対象データのうち少なくとも１つの一連のアクセス対象データを対象とするメモリアクセス処理を示しており、前記オフセットアドレス取得手段は、前記インストラクション取得手段により取得されるインストラクションに含まれる処理内容情報により示されるメモリアクセス処理の対象である一連のアクセス対象データに応じて、前記メモリ内に記憶される複数の一連のアクセス対象データそれぞれについてオフセットアドレスを記憶するオフセットアドレス記憶手段から、少なくとも１のオフセットアドレスを取得する、ことを特徴とする。
これによれば、演算処理装置は、記憶されているオフセットアドレスの中から、適切なオフセットアドレスを選択して取得することができる。
【０００９】
また、上記演算処理装置において、前記メモリは、前記一連のアクセス対象データを、その絶対アドレスの上位が前記オフセットアドレス記憶手段において当該一連のアクセス対象データについて記憶されるオフセットアドレスである当該メモリ内の領域に記憶する、こととしてもよい。
これによれば、オフセットアドレスにより、一連のアクセス対象データが記憶されるメモリ内の領域を特定することができる。
【００１０】
また、上記演算処理装置において、前記インストラクション取得手段により取得されるインストラクションに応じて当該演算処理装置が行う処理の進行に応じて、ｎ−ｍ桁のビット列により構成されるポインタの値を更新するポインタ更新手段、を含み、前記オフセットアドレス取得手段は、前記ポインタの値を、前記オフセットアドレスとして取得する、こととしてもよい。
これによれば、オフセットアドレスをポインタとしているので、オフセットアドレスを一連のアクセス対象データごとに固定されたビット列とする場合に比べ、メモリ内の広い領域に一連のアクセス対象データを記憶させることができるようになる。
【００１１】
また、本発明にかかるメモリアクセス方法は、メモリアクセス装置を用いてメモリへのアクセスを行うメモリアクセス方法であって、ｎ桁のビット列により表現される前記メモリの絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得ステップと、前記インストラクション取得ステップにおいて取得されるインストラクションに含まれる処理内容情報に応じて、前記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得ステップと、前記メモリアクセス装置に対し、前記オフセットアドレス取得ステップにおいて取得されるオフセットアドレスを上位とし、前記インストラクション取得ステップにおいて取得されるインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を絶対アドレスとする前記メモリ内の位置へのアクセスを指示するステップと、を含むことを特徴とする。
【００１２】
また、本発明にかかるプログラムは、メモリアクセス装置を用いてメモリへのアクセスを行う演算処理装置としてコンピュータを機能させるプログラムであって、ｎ桁のビット列により表現される前記メモリの絶対アドレスのうち、下位ｍ桁分（ｍ＜ｎ）のビット列により構成される相対アドレスと、前記演算処理装置が行う処理の内容を示す処理内容情報と、を含むインストラクションを取得するインストラクション取得手段、前記インストラクション取得手段により取得されるインストラクションに含まれる処理内容情報に応じて、前記絶対アドレスのうち、上位ｎ−ｍ桁分のビット列により構成されるオフセットアドレスを取得するオフセットアドレス取得手段、及び前記メモリアクセス装置に対し、前記オフセットアドレス取得手段により取得されるオフセットアドレスを上位とし、前記インストラクション取得手段により取得されるインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を絶対アドレスとする前記メモリ内の位置へのアクセスを指示するアクセス指示手段、として前記コンピュータをさらに機能させるためのプログラムである。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態について、図面を参照しながら説明する。
【００１４】
図１は、本実施の形態にかかるコンピュータ１のシステム構成を示す図である。同図に示すように、コンピュータ１はＤＳＰ１０、ＣＰＵ２０、メモリ部３０を含んで構成される。コンピュータ１はサンプラーやイコライザーとして用いられるものである。また、ＤＳＰ１０及びＣＰＵ２０は、予め記述されたプログラムに従って動作する演算処理装置である。
【００１５】
ここでは特に、ＤＳＰ１０は、音声データの入力を受け、ＣＰＵ２０により選択される種々のデジタル処理（例えば、ＩＩＲ（無限インパルス応答）フィルタ処理）を施す。このデジタル処理の中でメモリアクセスが必要となり、本実施形態では、このメモリアクセスにおいて相対アドレスを絶対アドレスに変換する際の演算処理装置（ここではＤＳＰ１０。）の処理負荷の軽減を実現するための構成について説明する。以下では、まずコンピュータ１の一般的構成について説明し、その後、相対アドレスを絶対アドレスに変換する際のＤＳＰ１０の処理負荷の軽減を実現するための構成について説明する。
【００１６】
図１に示すように、ＤＳＰ１０は、制御部１１、データパス部１２、乗算係数生成部１３を含んで構成され、さらにデータパス部１２はその内部に入力信号セレクト部１２１、積和演算部１２２、出力信号生成部１２３を含んで構成される。
【００１７】
ＣＰＵ２０は、制御部１１に対し、ＤＳＰ１０が行うべき処理を指示する。例えば、ＩＩＲフィルタ処理や、サンプリングレートの変更処理、プリエンファシス（高域強調）した音声データを元に戻す処理、ステレオ音声信号の左右の音量を制御し、定位（パンポット）を変化させる処理などを行うよう指示する。
【００１８】
データパス部１２の入力信号セレクト部１２１には、図示しない音源やＤＡＣ(Digital Analog converter)などから、所定数チャネル分の音声データが入力される。また、メモリ部３０からも音声データが入力される。
【００１９】
制御部１１は、入力信号セレクト部１２１に対し、ＣＰＵ２０の指示に応じた音声データの入力を受け付けるよう指示する。入力信号セレクト部１２１は、この指示に応じて音声データの入力を受け付け、受け付けた音声データを積和演算部１２２に出力する。
【００２０】
また、制御部１１は、積和演算部１２２に対し、入力信号セレクト部１２１から入力された音声データに対し、乗算処理又は加算処理を行うよう指示する。さらに、この乗算処理において音声データに乗算すべき乗算係数を生成するよう、乗算係数生成部１３に指示する。
【００２１】
乗算係数生成部１３は、制御部１１の指示に応じて乗算係数を生成し、積和演算部１２２に出力する。
【００２２】
積和演算部１２２は、制御部１１の指示に応じて乗算処理又は加算処理を行う。なお、このうち乗算処理においては、積和演算部１２２は、乗算係数生成部１３から入力された乗算係数を音声データに乗算する。積和演算部１２２は、処理結果を示す出力データを出力信号生成部１２３及びメモリ部３０に出力する。
【００２３】
出力信号生成部１２３は、積和演算部１２２から入力された出力データに基づいて音声信号を生成し、出力する。こうして出力された音声信号は、例えばスピーカ（不図示）に入力され、音声出力される。
【００２４】
メモリ部３０はメモリアクセス部３１及びＲＡＭ(Random Access Memory)３２を含んで構成される。メモリアクセス部３１は、ＲＡＭ３２へのメモリアクセスを行うためのものであり、ここでは積和演算部１２２から入力される出力データをＲＡＭへ記憶する。また、こうして記憶したデータを、制御部１１の指示に応じて読み出し、入力信号セレクト部１２１に入力する。こうして、積和演算部１２２の処理結果は再帰的に積和演算部１２２の処理の用に供され、これによりＤＳＰ１０は、出力を再帰的に用いてデジタル信号の特性を変化させるためのＩＩＲフィルタとして機能する。
【００２５】
以下、制御部１１、データパス部１２、乗算係数生成部１３、及びメモリ部３０が行う処理について、より詳細に説明する。
【００２６】
図２は、制御部１１の内部構成を示す図である。同図に示すように、制御部１１はステートマシン部１１１、カウンタ部１１２、複数のサブモジュール１１３（図２では、ＳＰＥ(SPEctrum analyzer)部１１３ａ、ＤＩＲ＿ＳＲＣ(Digitalaudio Interface Raceiver_Sampling Rate Converter)部１１３ｂ、ＤＥＦ(De Emphasis Filter)部１１３ｃ、ＤＥＣ＿ＳＲＣ(DECorder_Sampling Rate Converter)部１１３ｄの４つを代表として記載している。）、信号選択部１１４、信号選択部１１５、信号選択部１１６を含んで構成される。
【００２７】
また、図３は、データパス部１２及び乗算係数生成部１３の内部構成を示す図である。同図に示すように、データパス部１２は乗算器１２２１、加算器１２２２、シフタ１２２３を含んで構成される。これらは積和演算部１２２の構成要素であり、図３では、入力信号セレクト部１２１及び出力信号生成部１２３に関する構成については、その記載を省略している。また、乗算係数生成部１３は、上記各サブモジュール１１３にそれぞれ対応する複数のサブモジュール１３１（図３では、ＳＰＥ部１１３ａに対応するＳＰＥ部１３１ａのみを代表として記載している。）、信号選択部１３２、イネーブル信号生成部１３３、信号選択部１３４、乗算係数生成部１３５を含んで構成される。
【００２８】
まず、制御部１１について説明する。制御部１１に含まれる複数のサブモジュール１１３はそれぞれ異なる処理を実現する。図２にはＳＰＥ部１１３ａ、ＤＩＲ＿ＳＲＣ部１１３ｂ、ＤＥＦ部１１３ｃ、及びＤＥＣ＿ＳＲＣ部１１３ｄのみを示しているが、制御部１１は、実際にはこの他にも様々なサブモジュール１１３を備えている。ＳＰＥ部１１３ａは、データパス部１２、乗算係数生成部１３、及びメモリ部３０を用いて、ＩＩＲフィルタとしての処理を実現する。ＳＰＥ部１１３ａの処理の詳細については後述する。ＤＩＲ＿ＳＲＣ部１１３ｂは、デジタルオーディオインターフェイスレシーバー（不図示）が出力し、データパス部１２に入力される音声データのサンプリングレートを変換する処理を実現する。ＤＥＦ部１１３ｃは、プリエンファシスした音声データを元に戻す処理を実現する。ＤＥＣ＿ＳＲＣ部１１３ｄは、デコーダ（不図示）が出力し、データパス部１２に入力される音声データのサンプリングレートを変換する処理を実現する。
【００２９】
ステートマシン部１１１は、ＣＰＵ２０からの指示に従い、処理を実施すべきサブモジュール１１３を特定し、特定したサブモジュール１１３及び該サブモジュール１１３に対応するサブモジュール１３１に対し、処理の開始を指示するための指示信号を出力する。また、この指示信号を出力するタイミングで、カウンタ部１１２に対してイネーブル信号（動作許可信号）を出力する。
【００３０】
カウンタ部１１２はカウンタを保持しており、ステートマシン部１１１から入力されるイネーブル信号に応じて該カウンタのカウントアップを開始するとともに、カウンタの値を示すカウンタ信号を各サブモジュール１１３及び各サブモジュール１３１に対して出力する。なお、カウンタ部１１２は、図示しないクロックから発振されるクロック信号の周期に応じた周期で、カウンタのカウントアップを行う。
【００３１】
各サブモジュール１１３は、それぞれ信号選択部１１３１及びデコーダ部１１３２を含んで構成される。信号選択部１１３１は、カウンタ部１１２からカウンタ信号の入力を受け付けるとともに、ステートマシン部１１１から指示信号の入力を受け付ける。そして、指示信号が入力されている場合に限り、デコーダ部１１３２に対し、カウンタ信号を出力する。逆に言えば、信号選択部１１３１は、指示信号が入力されていないときには、デコーダ部１１３２に対し、カウンタ信号を出力しない。このように、指示信号が入力されていないときにカウンタ信号を入力しないようにする信号選択部１１３１の処理を、カウンタ信号をマスクするという。
【００３２】
デコーダ部１１３２は、カウンタ信号により示されるカウンタの値に応じて、所定の処理を行う。そしてその結果として、ＲＡＭの絶対アドレスを示す絶対アドレス信号と、データパス部１２及びメモリ部３０に対して処理動作（メモリ読み出し／メモリ書き込み／乗算／加算／シフトなど）の実行を命令するためのイネーブル信号と、指示信号に応じた一連の処理が完了したことを示す処理完了信号と、を出力する。このうち、絶対アドレス信号及びイネーブル信号については、ＳＰＥ部１１３ａを例にとって後に詳しく説明する。
【００３３】
デコーダ部１１３２は、指示信号に応じた一連の処理が完了すると、信号選択部１１４に対して処理完了信号を出力する。信号選択部１１４は、各サブモジュール１１３のデコーダ部１１３２と接続されており、いずれかのデコーダ部１１３２から処理完了信号が入力された場合に、カウンタ部１１２のカウンタをクリアするためのカウンタクリア信号をカウンタ部１１２に対して出力する。カウンタ部１１２は、このカウンタクリア信号の入力を受け付けると、カウンタをクリアする（初期値に戻す）。
【００３４】
信号選択部１１５も、各サブモジュール１１３のデコーダ部１１３２と接続されており、いずれかのデコーダ部１１３２から絶対アドレス信号が入力された場合に、該絶対アドレス信号をメモリ部３０に対して出力する。
【００３５】
信号選択部１１６は、各サブモジュール１１３のデコーダ部１１３２及び乗算係数生成部１３と接続されており、いずれかのデコーダ部１１３２又は乗算係数生成部１３からイネーブル信号が入力された場合に、該イネーブル信号をメモリ部３０に対して出力する。
【００３６】
なお、カウンタ信号がマスクされているサブモジュール１１３のデコーダ部１１３２は、その出力を例えば無出力状態に保持することが望ましい。各サブモジュール１１３が出力する各信号は上述のように各信号選択部に入力されるが、複数の有意信号が入力されることによって各信号選択部が誤動作するのを防止するためである。
【００３７】
次に、乗算係数生成部１３について説明する。乗算係数生成部１３に含まれる複数のサブモジュール１３１は、図３に示すように、それぞれ信号選択部１３１１及びデコーダ部１３１２を含んで構成される。信号選択部１３１１は、カウンタ部１１２からカウンタ信号の入力を受け付けるとともに、ステートマシン部１１１から指示信号の入力を受け付ける。そして、指示信号が入力されている場合に限り、デコーダ部１３１２に対し、カウンタ信号を出力する。逆に言えば、信号選択部１３１１は、指示信号が入力されていないときには、デコーダ部１３１２に対し、カウンタ信号を出力しない。このように、指示信号が入力されていないときにカウンタ信号を入力しないようにする信号選択部１３１１の処理を、信号選択部１１３１と同様、カウンタ信号をマスクするという。
【００３８】
デコーダ部１３１２は、カウンタ信号により示されるカウンタの値に応じて、所定の処理を行う。そしてその結果を示す処理結果信号を信号選択部１３２及び信号選択部１３４に対して出力する。
【００３９】
信号選択部１３２は、各サブモジュール１３１のデコーダ部１３１２と接続されており、いずれかのデコーダ部１３１２から処理結果信号が入力された場合に、該処理結果信号をイネーブル信号生成部１３３に対して出力する。
【００４０】
イネーブル信号生成部１３３は、信号選択部１３２から入力された処理結果信号に基づき、乗算器１２２１の乗算処理実行を許可するためのイネーブル信号を生成し、信号選択部１１６に出力する。信号選択部１１６は、イネーブル信号生成部１３３からイネーブル信号が入力されると、乗算器１２２１に対してこれを出力する。
【００４１】
信号選択部１３４も、各サブモジュール１３１のデコーダ部１３１２と接続されており、いずれかのデコーダ部１３１２から処理結果信号が入力された場合に、該処理結果信号を乗算係数生成部１３５に対して出力する。
【００４２】
乗算係数生成部１３５は、信号選択部１３４から入力された処理結果信号に基づき、乗算器１２２１の乗算処理において入力データに乗算するための乗算係数を生成し、乗算器１２２１に出力する。
【００４３】
最後に、データパス部１２及びメモリ部３０について説明する。メモリ部３０は、信号選択部１１６からメモリ読み出しを命令するためのイネーブル信号の入力を受け付けると、信号選択部１１５から入力される絶対アドレス信号を取得する。そして、取得した絶対アドレス信号により示される絶対アドレスに記憶しているデータを読み出し、乗算器１２２１に出力する。
【００４４】
乗算器１２２１は、データパス部１２が信号選択部１１６から乗算処理の実行を命令するためのイネーブル信号の入力を受け付けると、メモリ部３０から入力されるデータと、乗算係数生成部１３５から入力される乗算係数と、を乗算し、その結果を、加算器１２２２に出力する。
【００４５】
加算器１２２２は、データパス部１２が信号選択部１１６から加算処理の実行を命令するためのイネーブル信号の入力を受け付けると、乗算器１２２１の乗算結果と、自身の出力（加算結果）と、を加算し、シフタ１２２３に出力する。
【００４６】
シフタ１２２３は、データパス部１２が信号選択部１１６からシフト処理の実行を命令するためのイネーブル信号の入力を受け付けると、加算器１２２２の加算結果をシフトし、その結果をメモリ部３０に出力する。
【００４７】
メモリ部３０は、信号選択部１１６からメモリ書き込みを命令するためのイネーブル信号の入力を受け付けると、信号選択部１１５から入力される絶対アドレス信号により示される絶対アドレスに対し、シフタ１２２３から出力されるデータを書き込む。
【００４８】
以上のように、デコーダ部１１３２は、絶対アドレス信号とイネーブル信号とを出力することにより、メモリ部３０や積和演算部１２２を動作させ、その結果、所定の処理を実現する。ここで、絶対アドレス信号を得るために、デコーダ部１１３２は相対アドレスを絶対アドレスに変換するための処理を行っており、以下では、この変換の際のＤＳＰ１０の処理負荷の軽減を実現するための構成について、具体的な例としてＳＰＥ部１１３ａの処理を取り上げつつ、説明する。
【００４９】
図４は、コンピュータ１の機能ブロックのうち、ＳＰＥ部１１３ａが実現するＩＩＲフィルタ処理にかかる機能ブロックを示す概略ブロック図である。同図に示すように、デコーダ部１１３２ａはインストラクション取得部１１３２１、イネーブル信号生成部１１３２２、オフセットアドレス取得部１１３２３、絶対アドレス取得／メモリアクセス指示部１１３２４を含んで構成される。また、ＲＡＭ３２は、オフセットアドレス記憶部３２１、ＦＩＦＯ(First In First Out)３２３、及びＦＩＦＯ３２４−０〜６を含んで構成される。
【００５０】
また、図５は、データパス部１２及びメモリ部３０が行う処理を具体的に説明するための図である。ここでは、入力された音声データが７つのＢＡＮＤ０〜ＢＡＮＤ６に分けて出力される。そしてその際、ＦＩＦＯ３２３、ＦＩＦＯ３２４−０〜６、乗算器１２２１、及び加算器１２２２が用いられる。なお、図５では複数の乗算器１２２１（乗算器１２２１−ｉ−１〜４（ｉ＝０〜６）。ただしｉ＝２〜６の分については省略。）と複数の加算器１２２２（加算器１２２２−ｉ（ｉ＝０〜６）。ただしｉ＝２〜６の分については省略。）とを記載しているが、これは説明のための便宜的な記載であり、実際には、これらは乗算器１２２１と加算器１２２２各１つにより構成される。また、ＦＩＦＯ３２３は、書き込み時期の古い順にデータＤ０，データＤ１，データＤ２の３つのデータにより構成されている。同様に、ＦＩＦＯ３２４−０〜６は、それぞれ書き込み時期の古い順にデータＤ０，データＤ１の２つのデータにより構成されている。
【００５１】
さらに、図６は、メモリ部３０のＲＡＭ３２内においてＦＩＦＯ３２３及びＦＩＦＯ３２４−０〜６が記憶される物理位置の例を示す図である。同図に示すように、ＦＩＦＯ３２３は、それぞれ絶対アドレス００１１０１０００，００１１０１００１，００１１０１０１０に記憶される３つのデータにより構成される。また、ＦＩＦＯ３２４−０は、それぞれ絶対アドレス００１１１００１０，００１１１００１１に記憶される２つのデータにより構成される。他のＦＩＦＯ３２４についても同様である。
【００５２】
オフセットアドレス記憶部３２１は、ＲＡＭ３２内に記憶される複数のＦＩＦＯ（ＦＩＦＯ３２３，ＦＩＦＯ３２４−０〜６）（一連のアクセス対象データ）それぞれについて、ｎ桁のビット列により表現されるＲＡＭ３２の絶対アドレスのうち、上位ｎ−ｍ桁分（ｍ＜ｎ）のビット列により構成されるオフセットアドレスを記憶する。
【００５３】
ここで、ＲＡＭ３２は、ＦＩＦＯ３２３及びＦＩＦＯ３２４−０〜６を、その絶対アドレスの上位がオフセットアドレス記憶部３２１において当該ＦＩＦＯについて記憶されるオフセットアドレスである当該ＲＡＭ３２内の領域に記憶している。例えば図６では、ＦＩＦＯ３２３についてｍ＝２であり、オフセットアドレス記憶部３２１に記憶される具体的なオフセットアドレスは００１１０１０である。そして、ＦＩＦＯ３２３は、その絶対アドレスの上位がオフセットアドレス００１１０１０となるＲＡＭ３２内の領域に記憶されている。また、ＦＩＦＯ３２４−０についてｍ＝１であり、オフセットアドレス記憶部３２１に記憶される具体的なオフセットアドレスは００１１１００１である。そして、ＦＩＦＯ３２４−０は、その絶対アドレスの上位がオフセットアドレス００１１１００１となるＲＡＭ３２内の領域に記憶されている。
【００５４】
インストラクション取得部１１３２１は、カウンタ部１１２からカウンタ信号が入力されている場合（すなわち、信号選択部１１３１ａによってカウンタ信号がマスクされていない場合）、カウンタ信号により示されるカウンタ値に応じてインストラクションを取得する。こうして取得されるインストラクションは、実行を指示する処理の具体的方法（メモリ読み出し／メモリ書き込み／乗算／加算／シフトなど）を示す処理方法情報と、該処理においてアクセスすべきＦＩＦＯ（ＦＩＦＯ３２３、ＦＩＦＯ３２４−０〜６）を示すＦＩＦＯ情報と、を含む処理内容情報（演算処理装置が行う処理の内容を示す情報）と、ＲＡＭ３２の絶対アドレスのうち、下位ｍ桁分のビット列により構成される相対アドレスと、を含んで構成される。
【００５５】
ここで、インストラクション取得部１１３２１は、処理方法情報及びＦＩＦＯ情報の組み合わせにより示される処理内容ごとに、ポインタを保持する。このポインタは上記相対アドレスを保持するためのものであり、処理方法情報及びＦＩＦＯ情報の組み合わせ（処理内容情報）により示される処理内容のインストラクションを生成・出力する都度インクリメントされる。例えば、ある処理内容について００，０１，１０の３つの相対アドレスが用いられる場合、ポインタは、インストラクション生成・出力の都度００，０１，１０と変化し、１０の次は００に戻る。
【００５６】
イネーブル信号生成部１１３２２は、インストラクション取得部１１３２１により取得されるインストラクションに含まれる処理方法情報に基づき、該処理方法情報により示される処理の方法を実行するよう命令するためのイネーブル信号を生成し、メモリアクセス部３１及びデータパス部１２に出力する。
【００５７】
オフセットアドレス取得部１１３２３は、インストラクション取得部１１３２１により取得されるインストラクションに含まれる処理内容情報に応じて、オフセットアドレス記憶部３２１により記憶される複数のオフセットアドレスの中から１のオフセットアドレスを取得する。具体的には、インストラクション取得部１１３２１により取得されるインストラクションに含まれるＦＩＦＯ情報により示されるＦＩＦＯ３２３又はＦＩＦＯ３２４−０〜６について、オフセットアドレス記憶部３２１に記憶されるオフセットアドレスを取得する。
【００５８】
絶対アドレス取得／メモリアクセス指示部１１３２４は、オフセットアドレス取得部１１３２３により取得されたオフセットアドレスと、インストラクション取得部１１３２１により取得されたインストラクションに含まれる相対アドレスと、に基づいて絶対アドレスを取得する。具体的には、オフセットアドレス取得部１１３２３により取得されたオフセットアドレスを上位とし、インストラクション取得部１１３２１により取得されたインストラクションに含まれる相対アドレスを下位としてなるｎ桁のビット列を、上記絶対アドレスとして取得する。そして、こうして取得した絶対アドレスをメモリ部３０のメモリアクセス部３１に対して出力する。これにより、絶対アドレス取得／メモリアクセス指示部１１３２４は、メモリアクセス部３１に対し、上記ｎ桁のビット列を絶対アドレスとするＲＡＭ３２内の位置へのアクセスを指示する。
【００５９】
メモリアクセス部３１は、絶対アドレス取得／メモリアクセス指示部１１３２４から入力された絶対アドレスに基づき、ＲＡＭ３２にアクセスする。具体的には、イネーブル信号生成部１１３２２から入力されるイネーブル信号によりメモリ読み出しが命令されている場合には、絶対アドレス取得／メモリアクセス指示部１１３２４から入力された絶対アドレスからデータを読み出す。一方、イネーブル信号生成部１１３２２から入力されるイネーブル信号によりメモリ書き込みが命令されている場合には、データパス部１２から入力されたデータを、絶対アドレス取得／メモリアクセス指示部１１３２４から入力された絶対アドレスに書き込む。
【００６０】
以上の処理について、図４及び図５を参照しながら具体的な例により説明する。図５の例では、インストラクション取得部１１３２１は、まず初めに、データパス部１２に入力される音声データ（音声データＡとする。）をＦＩＦＯ３２３に書き込ませる処理を、メモリ部３０に実行させるためのインストラクションを生成し、出力する。
【００６１】
ここで、インストラクション取得部１１３２１は、ＦＩＦＯ３２３に書き込む処理についてのポインタ（ポインタＰ１とする。）として２ビットの情報を保持しており、ポインタＰ１は００，０１，１０の３つの値のうちのいずれかの値をとる。処理開始の段階におけるポインタＰ１の値は００であり、インストラクション取得部１１３２１は、メモリ書き込みを示す処理方法情報と、ポインタＰ１により示される相対アドレス００と、ＦＩＦＯ３２３を示すＦＩＦＯ情報と、を含むインストラクションを生成し、出力する。そして、この出力が完了すると、ポインタＰ１を１インクリメントし、０１とする。
【００６２】
この場合、絶対アドレス取得／メモリアクセス指示部１１３２４により取得される絶対アドレスは、ＦＩＦＯ３２３のオフセットアドレス００１１０１０と、インストラクションに含まれる相対アドレス００と、に基づき００１１０１０００となる。メモリアクセス部３１は、メモリ書き込み処理の実行を命令するためのイネーブル信号の入力を受け、上記絶対アドレス００１１０１０００に、データパス部１２から入力される音声データＡを書き込む。この処理により、ＦＩＦＯ３２３のデータＤ２は音声データＡとなる。
【００６３】
次に、インストラクション取得部１１３２１は、ＦＩＦＯ３２３のデータＤ２をメモリ部３０に読み取らせ、さらに読み取ったデータと、別途の処理により乗算係数生成部１３に生成させた乗算係数と、を乗算する処理を乗算器１２２１−ｉ−１（ｉ＝０〜６）に実行させるためのインストラクションを順次生成し、出力する。
【００６４】
ここで、インストラクション取得部１１３２１は、ＦＩＦＯ３２３のデータＤ２を読み取る処理についてのポインタ（ポインタＰ２とする。）として２ビットの情報を保持しており、ポインタＰ２も００，０１，１０の３つの値のうちのいずれかの値をとる。インストラクション取得部１１３２１は、ポインタＰ１の現在値の１つ前の値を、ポインタＰ２の値とする。このため、この段階におけるポインタＰ２の値は００であり、インストラクション取得部１１３２１は、メモリ読み出し及び乗算を示す処理方法情報と、ポインタＰ２により示される相対アドレス００と、ＦＩＦＯ３２３を示すＦＩＦＯ情報と、を含むインストラクションを順次生成し、出力する。そして、この出力が全て完了すると、ポインタＰ２を１インクリメントし、０１とする。
【００６５】
この場合、絶対アドレス取得／メモリアクセス指示部１１３２４により取得される絶対アドレスは、ＦＩＦＯ３２３のオフセットアドレス００１１０１０と、インストラクションに含まれる相対アドレス００と、に基づき００１１０１０００となる。また、この場合において、デコーダ部１１３２ａは、乗算係数生成部１３に各ＢＡＮＤｉ（ｉ＝０〜６）にそれぞれ対応する７つの乗算係数を生成させ、これらを各乗算器１２２１−ｉ−１（ｉ＝０〜６）に入力させる。
【００６６】
メモリアクセス部３１は、メモリ読み出し処理の実行を命令するためのイネーブル信号の入力を受け、上記絶対アドレス００１１０１０００から音声データＡを読み出す。各乗算器１２２１−ｉ−１（ｉ＝０〜６）は、乗算処理の実行を命令するためのイネーブル信号の入力を受け、読み出された音声データＡと、乗算係数生成部１３から入力される乗算係数と、を乗算し、加算器１２２２−ｉ（ｉ＝０〜６）に対して出力する。
【００６７】
次に、インストラクション取得部１１３２１は、加算処理を加算器１２２２−ｉ（ｉ＝０〜６）に実行させるためのインストラクションを順次生成し、出力する。このインストラクションには、加算を示す処理方法情報が含まれる。各加算器１２２２−ｉ（ｉ＝０〜６）は、加算処理の実行を命令するためのイネーブル信号の入力を受け、入力されているデータ（この段階では乗算器１２２１−ｉ−１（ｉ＝０〜６）からの入力データのみ）を加算し、出力する。この出力は、各ＢＡＮＤｉ（ｉ＝０〜６）の出力となる。
【００６８】
次に、インストラクション取得部１１３２１は、加算器１２２２−ｉ（ｉ＝０〜６）の出力データをＦＩＦＯ３２４−ｉ（ｉ＝０〜６）に書き込む処理を、メモリ部３０に実行させるためのインストラクションを順次生成し、出力する。
【００６９】
ここで、インストラクション取得部１１３２１は、各ＦＩＦＯ３２４−ｉ（ｉ＝０〜６）に書き込む処理についてのポインタ（ポインタＰ３−ｉ（ｉ＝０〜６）とする。）として各１ビットの情報を保持しており、各ポインタＰ３−ｉ（ｉ＝０〜６）は０，１の２つの値のうちのいずれかの値をとる。処理開始の段階におけるポインタ各Ｐ３−ｉ（ｉ＝０〜６）の値は０であり、インストラクション取得部１１３２１は、メモリ書き込みを示す処理方法情報と、ポインタＰ３−ｉ（ｉ＝０〜６）により示される相対アドレス０と、ＦＩＦＯ３２４−ｉ（ｉ＝０〜６）を示すＦＩＦＯ情報と、を含むインストラクションを順次生成し、出力する。そして、この出力が完了する都度、ポインタＰ３−ｉ（ｉ＝０〜６）を１インクリメントし、１とする。
【００７０】
この場合、例えばＦＩＦＯ３２４−０につき絶対アドレス取得／メモリアクセス指示部１１３２４により取得される絶対アドレスは、ＦＩＦＯ３２４−０のオフセットアドレス００１１１００１と、インストラクションに含まれる相対アドレス０と、に基づき００１１１００１０となる。メモリアクセス部３１は、メモリ書き込み処理の実行を命令するためのイネーブル信号の入力を受け、上記絶対アドレス００１１１００１０に、加算器１２２２−０の出力データを書き込む。
【００７１】
次に、インストラクション取得部１１３２１は、データパス部１２に続けて入力される音声データ（音声データＢとする。）をＦＩＦＯ３２３に書き込ませる処理を、メモリ部３０に実行させるためのインストラクションを生成し、出力する。
【００７２】
具体的には、インストラクション取得部１１３２１は、メモリ書き込みを示す処理方法情報と、ポインタＰ１により示される相対アドレス０１と、ＦＩＦＯ３２３を示すＦＩＦＯ情報と、を含むインストラクションを生成し、出力する。そして、この出力が完了すると、ポインタＰ１を１インクリメントし、１０とする。
【００７３】
この場合、絶対アドレス取得／メモリアクセス指示部１１３２４により取得される絶対アドレスは、ＦＩＦＯ３２３のオフセットアドレス００１１０１０と、インストラクションに含まれる相対アドレス０１と、に基づき００１１０１００１となる。メモリアクセス部３１は、メモリ書き込み処理の実行を命令するためのイネーブル信号の入力を受け、上記絶対アドレス００１１０１００１に、データパス部１２から入力される音声データＢを書き込む。この処理により、ＦＩＦＯ３２３のデータＤ２は音声データＢとなる。また、音声データＡは、ＦＩＦＯ３２３のデータＤ１となる。
【００７４】
次に、インストラクション取得部１１３２１は、ＦＩＦＯ３２３のデータＤ２をメモリ部３０に読み取らせ、さらに読み取ったデータと、別途の処理により乗算係数生成部１３に生成させた乗算係数と、を乗算する処理を乗算器１２２１−ｉ−１（ｉ＝０〜６）に実行させるためのインストラクションを順次生成し、出力する。
【００７５】
具体的には、インストラクション取得部１１３２１は、メモリ読み出し及び乗算を示す処理方法情報と、ポインタＰ２により示される相対アドレス０１と、ＦＩＦＯ３２３を示すＦＩＦＯ情報と、を含むインストラクションを順次生成し、出力する。そして、この出力が全て完了すると、ポインタＰ２を１インクリメントし、１０とする。
【００７６】
この場合、絶対アドレス取得／メモリアクセス指示部１１３２４により取得される絶対アドレスは、ＦＩＦＯ３２３のオフセットアドレス００１１０１０と、インストラクションに含まれる相対アドレス０１と、に基づき００１１０１００１となる。また、この場合において、デコーダ部１１３２ａは、乗算係数生成部１３に各ＢＡＮＤｉ（ｉ＝０〜６）にそれぞれ対応する７つの乗算係数を生成させ、これらを各乗算器１２２１−ｉ−１（ｉ＝０〜６）に入力させる。
【００７７】
メモリアクセス部３１は、メモリ読み出し処理の実行を命令するためのイネーブル信号の入力を受け、上記絶対アドレス００１１０１００１から音声データＢを読み出す。各乗算器１２２１−ｉ−１（ｉ＝０〜６）は、乗算処理の実行を命令するためのイネーブル信号の入力を受け、読み出された音声データＢと、乗算係数生成部１３から入力される乗算係数と、を乗算し、加算器１２２２−ｉ（ｉ＝０〜６）に対して出力する。
【００７８】
次に、インストラクション取得部１１３２１は、ＦＩＦＯ３２４−ｉ（ｉ＝０〜６）のデータＤ１をメモリ部３０に読み取らせ、さらに読み取ったデータと、別途の処理により乗算係数生成部１３に生成させた乗算係数と、を乗算する処理を乗算器１２２１−ｉ−３（ｉ＝０〜６）に実行させるためのインストラクションを順次生成し、出力する。
【００７９】
ここで、インストラクション取得部１１３２１は、各ＦＩＦＯ３２４−ｉ（ｉ＝０〜６）のデータＤ１を読み取る処理についてのポインタ（ポインタＰ４−ｉ（ｉ＝０〜６）とする。）として各１ビットの情報を保持しており、ポインタＰ４−ｉ（ｉ＝０〜６）は０，１の２つの値のうちのいずれかの値をとる。インストラクション取得部１１３２１は、ポインタＰ３−ｉ（ｉ＝０〜６）の現在値の１つ前の値を、ポインタＰ４−ｉ（ｉ＝０〜６）の値とする。このため、この段階における各ポインタＰ４−ｉ（ｉ＝０〜６）の値はいずれも０であり、インストラクション取得部１１３２１は、メモリ読み出し及び乗算を示す処理方法情報と、ポインタＰ４−ｉ（ｉ＝０〜６）により示される相対アドレス０と、ＦＩＦＯ３２４−ｉ（ｉ＝０〜６）を示すＦＩＦＯ情報と、を含むインストラクションを順次生成し、出力する。そして、この出力が完了する都度、ポインタＰ４−ｉ（ｉ＝０〜６）を１インクリメントし、１とする。
【００８０】
この場合、例えばＦＩＦＯ３２４−０につき絶対アドレス取得／メモリアクセス指示部１１３２４により取得される絶対アドレスは、ＦＩＦＯ３２４−０のオフセットアドレス００１１１００１と、インストラクションに含まれる相対アドレス０と、に基づき００１１１００１０となる。また、この場合において、デコーダ部１１３２ａは、乗算係数生成部１３に各ＢＡＮＤｉ（ｉ＝０〜６）にそれぞれ対応する７つの乗算係数を生成させ、これらを各乗算器１２２１−ｉ−３（ｉ＝０〜６）に入力させる。メモリアクセス部３１は、メモリ読み出し処理の実行を命令するためのイネーブル信号の入力を受け、上記絶対アドレス００１１１００１０からデータを読み出す。乗算器１２２１−０−３は、乗算処理の実行を命令するためのイネーブル信号の入力を受け、読み出されたデータと、乗算係数生成部１３から入力される乗算係数と、を乗算し、加算器１２２２−０に対して出力する。
【００８１】
次に、インストラクション取得部１１３２１は、加算処理を加算器１２２２−ｉ（ｉ＝０〜６）に実行させるためのインストラクションを順次生成する。このインストラクションには、加算を示す処理方法情報が含まれる。各加算器１２２２−ｉ（ｉ＝０〜６）は、加算処理の実行を命令するためのイネーブル信号の入力を受け、入力されているデータ（この段階では乗算器１２２１−ｉ−１（ｉ＝０〜６）からの入力データと乗算器１２２１−ｉ−３（ｉ＝０〜６）からの入力データ）を加算し、出力する。この出力は、各ＢＡＮＤｉ（ｉ＝０〜６）の出力となる。
【００８２】
ＳＰＥ部１１３ａは、デコーダ部１１３２ａ、データパス部１２、乗算係数生成部１３、メモリ部３０等を用いて、以上説明したような処理と同様の処理を繰り返し行うことにより、ＩＩＲフィルタ処理を実現している。
【００８３】
ここで、以上説明したインストラクション取得部１１３２１及びオフセットアドレス取得部１１３２３の処理について、異なる観点から再度詳細に説明する。
【００８４】
図７は、インストラクション取得部１１３２１及びオフセットアドレス取得部１１３２３の処理について説明するための図である。上記処理において、インストラクション取得部１１３２１は図７に示すセレクタＳ１として振る舞い、オフセットアドレス取得部１１３２３は同セレクタＳ２として振舞う。
【００８５】
すなわち、プログラムの記述に基づいて処理内容が決定されると、セレクタＳ１としてのインストラクション取得部１１３２１は、該処理内容に基づく１のポインタを選択する。例えば、ＦＩＦＯ３２３に書き込む処理を行う場合には、ポインタＰ１を選択する（図７（ａ））。そして、選択したポインタＰ１を含むインストラクションを生成し、出力する。
【００８６】
また、セレクタＳ２としてのオフセットアドレス取得部１１３２３は、決定された処理内容に基づき、オフセットアドレス記憶部３２１に記憶されるオフセットアドレスの中から１のオフセットアドレスを選択する（図７（ｂ））。そして、選択したオフセットアドレスを絶対アドレス取得／メモリアクセス指示部１１３２４に出力する。
【００８７】
このように、上記各処理は、インストラクション取得部１１３２１及びオフセットアドレス取得部１１３２３が、それぞれセレクタＳ１及びセレクタＳ２として振舞うことにより、実現されている。
【００８８】
以上説明したように、コンピュータ１によれば、先頭アドレスに代えて絶対アドレスのうち上位ｍ桁分のビット列により構成されるオフセットアドレスを用い、さらに相対アドレスを絶対アドレスのうち下位ｎ−ｍ桁分のビット列としているので、加算処理を実行することなく、オフセットアドレスと相対アドレスとを連結するだけで、相対アドレスを絶対アドレスに変換することができる。よって、相対アドレスを絶対アドレスに変換する際のＤＳＰ１０の処理負荷の軽減が実現される。
【００８９】
また、コンピュータ１は、記憶されているオフセットアドレスの中から、適切なオフセットアドレスを選択して取得することができる。
【００９０】
さらに、コンピュータ１は、オフセットアドレスにより、一連のアクセス対象データが記憶されるメモリ内の領域を特定することができる。
【００９１】
なお、本発明は上記実施の形態に限定されるものではない。例えば、上記実施形態におけるオフセットアドレスは１つのビット列であったが、オフセットアドレスをポインタとしてもよい。以下、この変形例について詳細に説明する。
【００９２】
図８は、メモリ内において２つのＦＩＦＯ（ＦＩＦＯ−Ａ，ＦＩＦＯ−Ｂ）が記憶される物理位置の例を示す図である。同図に示すように、ＦＩＦＯ−Ａは、それぞれ絶対アドレス００００〜１００１に記憶される１０個のデータにより構成される。また、ＦＩＦＯ−Ｂは、それぞれ絶対アドレス１１００，１１０１，１１１０に記憶される３つのデータにより構成される。
【００９３】
ＦＩＦＯ−Ｂのオフセットアドレスは、上記実施形態と同様、上位の数ビット（ここでは２ビットのビット列１１）によって表されるのに対し、ＦＩＦＯ−Ａのオフセットアドレスは、ポインタ（ポインタＰ５とする。）によって表される。ポインタＰ５は２ビットの情報であり、００，０１，１０の３つの値のうちのいずれかの値をとる。インストラクション取得部１１３２１はこのポインタＰ５を更新するためのポインタ更新手段としても機能し、インストラクションに応じて行われる処理の進行に応じてポインタＰ５の値を更新していく。これにより、オフセットアドレス取得部１１３２３により取得されるオフセットアドレスの値は、処理の進行に併せて変化することとなる。この場合、図７（ｂ）に示したセレクタＳ２には、オフセットアドレスを示すポインタが入力され、オフセットアドレス取得部１１３２３は、その時点におけるポインタの値を、オフセットアドレスとして取得することとなる。
【００９４】
このようにオフセットアドレスをポインタとすると、オフセットアドレスをＦＩＦＯごとに固定されたビット列とする場合に比べ、メモリ内の広い領域にＦＩＦＯを記憶させることができるようになる。
【００９５】
また、コンピュータ１の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、上記各処理を行ってもよい。
ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、この「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに、「コンピュータ読み取り可能な記録媒体」には、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
さらに、上記プログラムは、上述した各機能の一部を実現するためのものであってもよい。さらに、上述した各機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施の形態にかかるコンピュータのシステム構成を示す図である。
【図２】本発明の実施の形態にかかる制御部の内部構成を示す図である。
【図３】本発明の実施の形態にかかるデータパス部及び乗算係数生成部の内部構成を示す図である。
【図４】本発明の実施の形態にかかるコンピュータの機能ブロックのうち、ＳＰＥ部が実現するＩＩＲフィルタ処理にかかる機能ブロックを示す概略ブロック図である。
【図５】本発明の実施の形態にかかるデータパス部及びメモリ部が行う処理を具体的に説明するための図である。
【図６】本発明の実施の形態にかかるメモリ部のＲＡＭ内においてＦＩＦＯが記憶される物理位置の例を示す図である。
【図７】本発明の実施の形態にかかるインストラクション取得部及びオフセットアドレス取得部の処理について説明するための図である。
【図８】本発明の実施の形態の変形例にかかるメモリ内において２つのＦＩＦＯが記憶される物理位置の例を示す図である。
【符号の説明】
【００９７】
１  コンピュータ、１０  ＤＳＰ、１１  制御部、１２  データパス部、１３，１３５  乗算係数生成部、２０  ＣＰＵ、３０  メモリ部、３１  メモリアクセス部、３２  ＲＡＭ、１１１  ステートマシン部、１１２  カウンタ部、１１３  サブモジュール、１１３ａ  ＳＰＥ部、１１３ｂ  ＤＩＲ＿ＳＲＣ部、１１３ｃ  ＤＥＦ部、１１３ｄ  ＤＥＣ＿ＳＲＣ部、１１４，１１５，１１６，１３２，１３４，１１３１，１３１１  信号選択部、１２１  入力信号セレクト部、１２２  積和演算部、１２３  出力信号生成部、１３１  サブモジュール、１３１ａ  ＳＰＥ部、１３３  イネーブル信号生成部、３２１  オフセットアドレス記憶部、３２３，３２４  ＦＩＦＯ、１１３２，１３１２  デコーダ部、１２２１  乗算器、１２２２  加算器、１２２３  シフタ、１１３２１  インストラクション取得部、１１３２２  イネーブル信号生成部、１１３２３  オフセットアドレス取得部、１１３２４  絶対アドレス取得／メモリアクセス指示部、Ｓ１，Ｓ２  セレクタ。
【図１】
2008134917.tif 000003
【図２】
2008134917.tif 000004
【図３】
2008134917.tif 000005
【図４】
2008134917.tif 000006
【図５】
2008134917.tif 000007
【図６】
2008134917.tif 000008
【図７】
2008134917.tif 000009
【図８】
2008134917.tif 000010