(57)【特許請求の範囲】
【請求項１】
アドレスレジスタと、
該アドレスレジスタのアドレス値を更新するアドレス更新回路と、
該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路
を含み、該アドレス更新回路はサーキュラアドレッシング更新及び２次元アドレッシング更新の更新処理が共用する単一の演算回路を少なくとも１つ含むことを特徴とするプロセッサ。
【請求項２】
該アドレス更新回路は、該演算回路である第１の演算回路に加え、通常のアドレス演算による更新を実行する第２の演算回路を更に含み、該第１の演算回路は２次元アドレッシングにおいて現在のアドレス値にオフセット分を加える演算を実行し、該第２の演算回路が該２次元アドレッシングにおいて現在のアドレス値に増減分を加える演算を実行する間は該第１の演算回路は動作しないことを特徴とする請求項１記載のプロセッサ。
【請求項３】
該演算回路は、ビットリバースアドレッシングを実行中には動作しないことを特徴とする請求項１記載のプロセッサ。
【請求項４】
アドレスレジスタと、
該アドレスレジスタのアドレス値を更新するアドレス更新回路と、
該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路
を含み、該アドレス更新回路はサーキュラアドレッシング更新、２次元アドレッシング更新、及び通常のアドレス演算による更新のうち少なくとも２つの更新処理が共用する単一の演算回路を少なくとも１つ含み、該演算回路は該２次元アドレッシング更新及び該通常のアドレス演算による更新により共用され、該アドレス更新回路は、該演算回路である第１の演算回路に加え、該サーキュラアドレッシング更新を専用に実行する第２の演算回路を更に含み、該第２の演算回路は、該サーキュラアドレッシング以外のアドレッシング中には動作しないことを特徴とするプロセッサ。
【請求項５】
サーキュラアドレッシングにおいて現在のアドレス値からブロックサイズ分シフトさせる際には該演算回路を動作させ、該サーキュラアドレッシングにおいて現在のアドレス値から増減分を変化させる際には該演算回路の動作を停止して別の演算回路を使用することを特徴とする請求項１記載のプロセッサ。
【請求項６】
アドレスレジスタと、
該アドレスレジスタのアドレス値を更新するアドレス更新回路と、
該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路
を含み、該アドレス更新回路はサーキュラアドレッシング更新、２次元アドレッシング更新、及び通常のアドレス演算による更新のうち少なくとも２つの更新処理が共用する単一の演算回路を少なくとも１つ含み、該実効アドレス計算回路は、ビットリバースアドレッシングとサーキュラアドレッシングとが共用する単一の演算回路を含むことを特徴とするプロセッサ。
【請求項７】
該ビットリバースアドレッシング及び該サーキュラアドレッシング以外のアドレッシングの場合には該実効アドレス計算回路の該演算回路は動作しないことを特徴とする請求項６記載のプロセッサ。
【請求項８】
該実効アドレス計算回路の該演算回路は、該アドレスレジスタのアドレス値と該アドレスレジスタのアドレス値のビットリバース値との何れか一方をインデックスとしてベースポインタに加えることで該ビットリバースアドレッシング及び該サーキュラアドレッシングにおける該実効アドレスを生成することを特徴とする請求項６記載のプロセッサ。
【請求項９】
該実効アドレス計算回路は該アドレスレジスタのアドレス値をビットリバースするビットリバース回路を更に含み、該ビットリバースアドレッシング以外のアドレッシングの場合には該ビットリバース回路は動作しないことを特徴とする請求項１記載のプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にアドレス生成回路を備えたプロセッサに関し、詳しくは音声・画像データの処理に適したアドレッシング機能を有するアドレス生成回路を備えたプロセッサに関する。
【０００２】
【従来の技術】
移動通信端末等の携帯マルチメディア情報機器等においては、音声・画像処理等の複雑なアルゴリズムに対応するメディア・プロセッサが広く使用されている。これらのメディア・プロセッサにはアドレス生成回路が設けられ、音声・画像処理等に適したアドレッシング機能を提供する。音声・画像処理等に適したアドレッシング機能としては、サーキュラアドレッシング、２次元アドレッシング、及びビットリバースアドレッシング等が挙げられる。
【０００３】
サーキュラアドレッシングとは、メモリの任意の区間において、その最上位アドレスが最下位アドレスに連続して繋がっている様にアクセスできるアドレッシング方法である。これを実現するためには、アドレッシングによりアドレスレジスタの値を更新した際に、更新した値が予め設定された値を超えた場合には、アドレスレジスタの値を自動的にジャンプさせ、最上位アドレスから最下位アドレスに戻るように構成すればよい。
【０００４】
２次元アドレッシングとは、画像処理の場合、1次元アドレスを持つメモリを仮想的に２次元メモリと見なして、画像データをリードとライトする時に必要なアドレスを生成する２次元アドレッシングの方法である。
【０００５】
ビットリバースアドレッシングとは、高速フーリエ変換アルゴリズムに使用するビットリバースしたアドレスを生成するアドレッシング方法である。これにより、高速フーリエ変換アルゴリズムの実行速度を高めると共に、プログラムメモリを節約することが出来る。
【０００６】
音声・画像のようなディジタル信号処理アルゴリズムでは、単位時間内に処理するデータ量が多く、メディア・プロセッサコアとメモリとの間におけるデータ転送量が多くなる。最近の音声・画像信号処理プロセッサでは、専用のハードウェアによるアドレス演算機能としてアドレス生成回路を用意し、アドレス演算とデータ演算とを並列に実行することで高速化を図っている。このようにアドレス生成回路は、メディア・プロセッサにとって非常に重要な構成要素である。
【０００７】
従来、サーキュラアドレッシング、２次元アドレッシング、及びビットリバースアドレッシングは、それぞれ専用の演算ブロックを設けることで実現している。
【発明が解決しようとする課題】
携帯メディア機器においては、低コスト化且つ低消費電力化が近年のシステムＬＳＩ時代の重要な要請となっている。従って、メディア・プロセッサに対しても、従来以上の低コスト化・低消費電力化が要求されている。
【０００８】
従来のメディア・プロセッサのアドレス生成回路は、各アドレッシング方式に対して専用の演算ブロックを設けるので、アドレス更新機能の回路やアドレスレジスタ演算機能の回路を別個に独立して用意することになり、多くの演算器(加算器又は減算器)を必要とする。演算器は一般的に回路規模が比較的大きなハードウェアであるので、このようなアドレス生成回路は、メディア・プロセッサの面積を増大させると共に消費電力を大きくするという問題がある。
【０００９】
また音声・画像信号処理プログラムを実行する場合、アルゴリズムによっては、必ずしもサーキュラアドレッシングや２次元アドレッシングを使用するとは限らない。例えば、２次元アドレッシングを使用していない状態で、他のアドレス更新機能やアドレスレジスタ演算機能を使う時には、２次元アドレッシング関係の回路を動作させてしまったのでは、消費電力の増大に繋がるという問題がある。更に、２次元アドレッシングを使用する場合であっても、例えば２次元更新回路部分は常時動作する必要があるとは限らない。
【００１０】
以上を鑑みて、本発明は、サーキュラアドレッシングと、２次元アドレッシングと、ビットリバースアドレッシングとを備え、回路規模の縮小と消費電力の低減を実現するメディア・プロセッサを提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明によるプロセッサは、アドレスレジスタと、該アドレスレジスタのアドレス値を更新するアドレス更新回路と、該アドレスレジスタのアドレス値からメモリをアクセスする実効アドレスを生成する実効アドレス計算回路を含み、該アドレス更新回路はサーキュラアドレッシング更新及び２次元アドレッシング更新の更新処理が共用する単一の演算回路を少なくとも１つ含むことを特徴とする。
【００１２】
また上記プロセッサにおいて、該演算回路は、ビットリバースアドレッシングを実行中には動作しないことを特徴とする。
【００１３】
上記発明によれば、プロセッサのアドレス更新回路において、サーキュラアドレッシング更新、２次元アドレッシング更新、及び通常のアドレス演算による更新のうち少なくとも２つの更新処理が演算回路を共用するので、回路規模を縮小することが可能になる。またその演算回路の機能が必要でない場合には演算回路の動作を停止することで消費電力を削減することが可能になる。
【００１４】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図１は、本発明によるアドレス生成回路の第１の実施例の概略構成図を示す。
【００１６】
本発明によるメディア・プロセッサのアドレス生成回路１０は、アドレス用レジスタ１１、アドレス更新回路１２、及び実効アドレス計算回路１３を含む。以下の説明で、全てのレジスタのクロックはゲーテッドクロックに駆動され、また全ての値は２の補数で表現される。
【００１７】
アドレス用レジスタ１１は、アドレスレジスタ１４−０乃至１４−ｎを含む。アドレス更新回路１２は、カウンタ２１、ゼロ検出回路２２、マスク回路２３、特殊機能更新回路２４、通常更新回路２５、制御セレクタ回路２６、及びセレクタ２７を含む。また実効アドレス計算回路１３は、ビットリバース回路４１、マスク回路４２、演算器４３、ＯＲ回路４４、パイプライン構成のレジスタ４５、及びセレクタ４７乃至４９を含む。またレジスタ３１乃至３４がアドレス更新回路１２に対して設けられると共に、レジスタ５１乃至５３が実効アドレス計算回路１３に対して設けられる。
【００１８】
ここでアドレスレジスタ１４−０乃至１４−ｎの内容は、アドレス値Ｘ０乃至Ｘｎとして示される。レジスタ３４の△は、アドレス更新時におけるアドレス増加／減少の増減値である。レジスタ３２のＭＤ及びレジスタ５２のＣＰは、サーキュラアドレッシング用に指定されたブロックサイズとべースポインタである。レジスタ３３のＴＤ及びレジスタ３１のＣＴは、２次元アドレッシング用に指定されたオフセットとカウンタ初期値である。レジスタ５１のＢＩＴＣ及びレジスタ５３のＢＰは、ビットリバースアドレッシング用に指定されたリバースのビット数とべースポインタである。
【００１９】
信号ＭＤＳはサーキュラアドレッシングを指示する信号であり、１の場合にサーキュラアドレッシングを示し、０の場合に別のアドレッシングを示す。信号ＴＤＳは２次元アドレッシングを指示する信号であり、１の場合に２次元アドレッシングを示し、０の場合に別のアドレッシングを示す。信号ＢＲＳはビットリバースアドレッシングを指示する信号であり、１の場合にビットリバースアドレッシングを示し、０の場合に別のアドレッシングを示す。
【００２０】
以下に、サーキュラアドレッシング、２次元アドレッシング、ビットリバースアドレッシングの場合の動作について説明する。
【００２１】
まずサーキュラアドレッシングの場合について説明する。
【００２２】
サーキュラアドレッシングの場合、信号ＭＤＳは1であり、信号ＴＤＳ及びＢＲＳは０である。図１において、セレクト信号ＳＥＬにより例えばアドレスレジスタ１４−ｎが選択され、アドレス値Ｘｎがマスク回路２３に供給される。更にアドレス増減値Δが、マスク回路２３に供給される。またセレクタ２７は、信号ＴＤＳが０であることに応じて、サーキュラアドレッシングのブロックサイズＭＤを選択してマスク回路２３に供給する。更にマスク回路２３は、信号ＭＤＳ及びＴＤＳを受け取る。
【００２３】
マスク回路２３は、サーキュラアドレッシング時に、特殊機能更新回路２４にサーキュラアドレッシングのアドレス更新計算をさせる。制御セレクタ回路２６は、特殊機能更新回路２４或いは通常更新回路２５の更新アドレスを選択して、アドレス用レジスタ１１に供給する。これにより、アドレス用レジスタ１１の選択されたアドレスレジスタ１４−ｎの内容が更新される。
【００２４】
サーキュラアドレッシングのアルゴリズムを以下に示す。
【００２５】
0003745673.tif 000002
更新方向が増加方向の場合には、アドレス増減値を加える方向にアドレスレジスタを自動更新し、アドレスレジスタ１４−ｎの値Ｘｎがレジスタ３２のＭＤ値以上になった場合、アドレスレジスタ１４−ｎには自動的に（Ｘｎ＋Δ−ＭＤ）の値を格納する。減少方向の自動更新の時は、アドレスレジスタ１４−ｎの値Ｘｎが０より小さくなると、アドレスレジスタ１４−ｎには自動的に（Ｘｎ＋Δ＋ＭＤ）の値を格納する。ここでサーキュラアドレッシングにおいて、単純にアドレス増減値を加算或いは減算するアドレス更新の場合には通常更新回路２５の更新結果を用い、ブロックサイズＭＤ分のジャンプによる更新の場合には特殊機能更新回路２４の更新結果を用いる。
【００２６】
アドレス更新回路１２では、通常のアドレス演算は、通常更新回路２５を使って実行される。この場合、サーキュラアドレッシング或いは２次元アドレッシングしない命令に対しては、マスク回路２３により特殊機能更新回路２４を動作させないので、消費電力を低減することが出来る。
【００２７】
またサーキュラアドレッシングでは、実効アドレスを生成する際に、オフセット値としてべースポインタＣＰを用いる。図１の実効アドレス計算回路１３において、信号ＢＲＳが０である場合、セレクタ４７により選択されるサーキュラアドレッシングのベースポインタＣＰは、マスク回路４２を介して演算器４３に供給される。またアドレス用レジスタ１１の選択されたアドレスレジスタから供給されるアドレス値は、マスク回路４２とセレクタ４８とを介して、演算器４３に供給される。演算器４３は、ベースポインタＣＰとアドレス値とを加算する。加算により得られた実効アドレスは、信号ＢＲＳ或いは信号ＭＤＳが１の場合に演算器４３を選択するセレクタ４９により選択され、レジスタ４５に格納される。レジスタ４５の内容が、アドレス信号として出力される。
【００２８】
以下に、２次元アドレッシングの場合について説明する。
【００２９】
２次元アドレッシングの場合、信号ＴＤＳは1であり、信号ＭＤＳ及びＢＲＳは０である。図１において、セレクト信号ＳＥＬにより例えばアドレスレジスタ１４−ｎが選択され、アドレス値Ｘｎがマスク回路２３に供給される。更にアドレス増減値Δが、マスク回路２３に供給される。またセレクタ２７は、信号ＴＤＳが１であることに応じて、２次元アドレッシングのオフセットＴＤを選択してマスク回路２３に供給する。更にマスク回路２３は、信号ＭＤＳ及びＴＤＳを受け取ると共に、２次元アドレッシング用にゼロ検出回路２２からカウンタ２１がゼロになったか否かを示す信号を受け取る。
【００３０】
マスク回路２３は、２次元アドレッシング時に、特殊機能更新回路２４に２次元アドレッシングのアドレス更新計算をさせる。制御セレクタ回路２６は、特殊機能更新回路２４或いは通常更新回路２５の更新アドレスを選択して、アドレス用レジスタ１１に供給する。これにより、アドレス用レジスタ１１の選択されたアドレスレジスタ１４−ｎの内容が更新される。
【００３１】
２次元アドレッシングのアルゴリズムを以下に示す。
【００３２】
(Counter ≠  ０):     Xn+△→Xn,        Counter - 1 → Counter
(Counter  =  ０):     Xn+TD+△→Xn,    CT→ Counter
このアドレッシングではカウンタ２１のカウント値Counterが０でない場合、アドレスレジスタの内容は増減値△が加算されるように自動更新され（同時にCounterを１デクリメント）、次のサイクルのアドレスを生成する。カウント値Counterの値が０の場合、アドレスレジスタには自動的に（Ｘｎ＋Δ＋ＴＤ）の値が入り、次のサイクルのアドレスを生成する（同時にCounterにＣＴを初期値として設定）。なおカウント値Counterの値が０の場合、（Ｘｎ＋Δ＋ＴＤ）ではなく、（Ｘｎ＋ＴＤ）の値をアドレスレジスタに自動的に格納して更新するようにしてもよい。ここで２次元アドレッシングにおいて、単純にアドレス増減値を加算するアドレス更新の場合には通常更新回路２５の更新結果を用い、オフセットＴＤ分のジャンプによる更新の場合には特殊機能更新回路２４の更新結果を用いる。
【００３３】
アドレス更新回路１２では、通常のアドレス演算は、通常更新回路２５を使って実行される。この場合、サーキュラアドレッシング或いは２次元アドレッシングしない命令に対しては、マスク回路２３により特殊機能更新回路２４を動作させないので、消費電力を低減することが出来る。
【００３４】
実効アドレス計算回路１３においては、２次元アドレッシングの場合、セレクタ４９がアドレス用レジスタ１１の出力を直接選択することで、アドレス用レジスタ１１の選択アドレスレジスタから供給されるアドレス値が、レジスタ４５に格納される。レジスタ４５の内容が、アドレス信号として出力される。
【００３５】
実効アドレス計算回路１３では、通常のアドレッシング或いは２次元アドレッシングの場合、マスク回路４２によって、ビットリバース回路４１や演算器４３等を動作させない。このように、サーキュラアドレッシングやビットリバース関連の回路を動作させないことによって、消費電力を低減することが出来る。
【００３６】
以下に、ビートリバースアドレッシングの場合について説明する。
【００３７】
ビートリバースアドレッシングの場合、信号ＢＲＳは1であり、信号ＴＤＳ及びＭＤＳは０である。図１において、アドレス更新回路１２の部分は通常更新回路２５だけが動作する。
【００３８】
セレクト信号ＳＥＬにより例えばアドレスレジスタ１４−ｎが選択されると、アドレス値Ｘｎが、実効アドレス計算回路１３のマスク回路４２に供給される。実効アドレス計算回路１３において、信号ＢＲＳが１である場合、セレクタ４７により選択されるビットリバースアドレッシングのベースポインタＢＰは、マスク回路４２を介して演算器４３に供給される。またアドレス値Ｘｎは、マスク回路４２を介して、ビットリバース回路４１に供給される。ビットリバース回路４１は、リバースビット数ＢＩＴＣに応じてアドレス値Ｘｎのビットリバース演算を実行し、その結果を出力する。セレクタ４８は、信号ＢＲＳの１に応じて、ビットリバース回路４１の出力を選択して、演算器４３に供給する。演算器４３は、ビットリバース後のアドレス値とベースポインタＢＰとを加算する。加算により得られた実効アドレスは、信号ＢＲＳ或いは信号ＭＤＳが１の場合に演算器４３を選択するセレクタ４９により選択され、レジスタ４５に格納される。レジスタ４５の内容が、アドレス信号として出力される。
【００３９】
ビットリバースアドレッシングは各種基数を使用するＦＦＴアルゴリズムの実行速度を高めると共に、プログラムメモリを節約することが出来る。
【００４０】
図１の構成では、アドレス更新回路１２でインデックスＸｎをビットリバースするのではなく、実効アドレス計算回路１３でインデックスＸｎをビットリバースし、ベースポインタＢＰと演算した結果を実効アドレスとして出力している。
【００４１】
図２には、ビットリバース動作の詳細を示す。図２において、ＢＩＴＣは、リバースするビット数を２進数で示す。Ｘｎ’［３１：０］はリバース前の３２ビットのアドレスビットパターンであり、Ｘｎ’’［３１：０］はリバース後の３２ビットのアドレスビットパターンである。リバースするビット数がＩである場合、Ｘｎ’［３１：０］の下位ビットであるビット０〜ビットＩの並びを反転させ、上位ビットであるビット（Ｉ＋１）〜ビット３１にはゼロを配置する。リバース後のアドレスＸｎ’’をインデックスとしてベースポインタＢＰと加算することで、容易にベースポインタとインデックスとを組み合せることが出来る。
【００４２】
図３は、本発明によるアドレス生成回路の第１の実施例について詳細な構成を示す図である。以下の説明において、全てのレジスタのサイズは３２ビット構成で２の補数形式で表現される。
【００４３】
以下に、信号ＭＤＳが１で信号ＴＤＳ及びＢＲＳが０の場合、即ちサーキュラアドレッシング命令を実行する時の動作を説明する。
【００４４】
セレクト信号ＳＥＬ１で選択されたインデックスＸｎ’が、アドレス用レジスタ１１から供給される。また増減値△は、レジスタ（ＦＦ）３４を経由してｓｔｅｐとして供給される。信号ＭＤＳは１であるので、ｓｔｅｐとＸｎ’はＡＮＤ回路２０２及び２０３を経由し、それぞれ信号ＭＢ及び信号ＭＡとして全加算器２０４に供給される。増減値ｓｔｅｐの符号ビットＭＳＢはＡＮＤ回路２０１を経由し、信号Ｍ１として出力される。
【００４５】
更新値Δ≧０の場合（更新方向が正）、信号Ｍ１は０である。反転制御２０５はブロックサイズＭＤの符号を反転し、ＭＣとして出力する。サーキュラアドレッシングの場合に信号ＴＤＳは０であるので、セレクタ２１０はＭＣを選択し、ＭＴとして出力する。信号ＴＤＳの０に応答して、セレクタ２１２はインバター２１１の出力である“１”を選択して出力する。この“１”が、全加算器２０４の出力ＯＢに０ビット目として付加されると共に、出力ＯＡに３３ビット目として付加される。全加算器２０４と３３ｂｉｔ加算器２０６により、（Ｘｎ＋Δ−ＭＤ）を計算する。セレクタ信号生成回路２０８は、ＭＤＳの“１”、Ｍ１の“０”、ＴＤＳの“０”に応答して、３３ｂｉｔ加算器２０６の出力Ａｄｄ２１の符号ビットＭＳＢに応じた信号を、選択信号Ｓｅｌ２０として出力する。
【００４６】
Ａｄｄ２１の符号ビットＭＳＢが１の場合には選択信号Ｓｅｌ２０が１となり、選択回路２０９は、３２ｂｉｔ加算器２０７の出力Ａｄｄ２０を選択する。Ａｄｄ２１の符号ビットＭＳＢが０の場合には選択信号Ｓｅｌ２０が０となり、３３ｂｉｔ加算器２０６の出力Ａｄｄ２１の下位３２ビットを選択する。選択回路２０９の選択出力をアドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００４７】
更新値Δ＜０の場合（更新方向が負）、信号Ｍ１は１である。反転制御２０５は、ブロックサイズＭＤを、符号を反転することなくそのままＭＣとして出力する。サーキュラアドレッシングの場合に信号ＴＤＳは０であるので、セレクタ２１０はＭＣを選択し、ＭＴとして出力する。セレクタ２１２はインバター２１１の出力である“０”を選択して出力する。この“０”が、全加算器２０４の出力ＯＢに０ビット目として付加されると共に、出力ＯＡに３３ビット目として付加される。全加算器２０４と３３ｂｉｔ加算器２０６により（Ｘｎ＋Δ＋ＭＤ）を計算する。セレクタ信号生成回路２０８は、ＭＤＳの“１”、Ｍ１の“１”、ＴＤＳの“０”に応答して、３２ｂｉｔ加算器２０７の出力Ａｄｄ２０の符号ビットＭＳＢに応じた信号を、選択信号Ｓｅｌ２０として出力する。
【００４８】
Ａｄｄ２０の符号ビットＭＳＢが１の場合には選択信号Ｓｅｌ２０が０となり、選択回路２０９は、加算器２０６の出力Ａｄｄ２１の下位３２ビットを選択する。Ａｄｄ２０の符号ビットＭＳＢが０の場合には選択信号Ｓｅｌ２０が１となり、３２ｂｉｔ加算器２０７の出力Ａｄｄ２０を選択する。選択回路２０９の選択出力をアドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００４９】
以下に、信号ＴＤＳが１で信号ＭＤＳが０の場合、即ち２次元アドレッシング命令を実行する時の動作を示す。
【００５０】
ゼロ検出回路２２は、カウンタ２１のカウント値Counterが０の場合１を出力し、０でない場合には０を出力する。ゼロ検出回路２２の出力が０の場合、ＡＮＤ回路２０１、２０２、及び２０３の出力Ｍ１、ＭＢ、及びＭＡは０に固定される。信号ＴＤＳが１であるので、セレクタ２１０の出力ＭＴはＴＤに固定となり、セレクタ２１２の出力は“０”に固定となる。従って、全加算器２０４と３３ｂｉｔ加算器２０６において、全ての入力信号には変化が無くなるので、消費電力を低減することが出来る。ゼロ検出回路２２の出力が０であり、ＴＤＳ＝１且つＭＤＳ＝０であるので、セレクタ信号生成回路２０８の出力Ｓｅｌ２０は１になる。これに応じて、選択回路２０９は、３２ｂｉｔ加算器２０７の出力Ａｄｄ２０を選択する。
【００５１】
ゼロ検出回路２２の出力が１の場合、“１”である信号ＴＤＳはＡＮＤ回路２１４及びＯＲ回路２１５を介して、ＡＮＤ回路２０２及び２０３に供給される。従って、ｓｔｅｐとＸｎ’はＡＮＤ回路２０２及び２０３を経由して、それぞれ信号ＭＢ及び信号ＭＡとして全加算器２０４に供給される。また信号ＭＤＳがゼロであるので、ＡＮＤ回路２０１の出力は０に固定される。“１”である信号ＴＤＳに応答して、セレクタ２１０はＴＤを選択する。またセレクタ２１２は“０”を選択して出力する。全加算器２０４及び３３ｂｉｔ加算器２０６の演算結果はＸｎ＋ＴＤ＋△であり、Ａｄｄ２１として出力される。ゼロ検出回路２２の出力が１であり、ＴＤＳ＝１且つＭＤＳ＝０であるので、セレクタ信号生成回路２０８の出力Ｓｅｌ２０は０となる。これに応じて、選択回路２０９は、３３ｂｉｔ加算器２０６の出力Ａｄｄ２１の下位３２ビットを選択し出力する。
【００５２】
以上説明したように、２次元アドレッシングの場合には、ゼロ検出回路２２の出力が１の時だけ２次元更新回路（全加算器２０４及び３３ｂｉｔ加算器２０６）を動作させるので、消費電力を削減することが出来る。
【００５３】
また、通常のポストアドレス更新、ビットリバースアドレッシング、アドレスレジスタ演算の場合、全加算器２０４と３３ｂｉｔ加算器２０６の動作を停止させ、３２ｂｉｔ加算器２０７だけを動作させるので、消費電力を減らすことができる。
【００５４】
アドレスレジスタ演算命令を実行する場合、ＴＤＳとＭＤＳは０であり、３２ｂｉｔ加算器２０７だけを動作させる。その演算結果Ａｄｄ２０を、選択回路２０９を経由して、アドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００５５】
図３の実効アドレス計算回路１３では、サーキュラアドレッシング命令を実行する時、ＭＤＳ＝１且つＢＲＳ＝０であり、セレクタ４７はＣＰを選択する。またセレクタ４８は、ＡＮＤ回路３０３の出力を選択する。３２ｂｉｔ加算器３０６が、ベースポイントＣＰとインデックスＸｎ’を加算することで、メモリをアクセスする実効アドレスを生成する。この実効アドレスは、セレクタ４９を介して、レジスタ４５に格納される。図３の回路では、ブロックサイズＭＤとＣＰとＸｎ’は、メモリ空間の範囲内で任意の値をとることが出来る。
【００５６】
ビットリバースアドレッシング命令を実行する時、ＢＲＳ＝１且つＭＤＳ＝０であり、セレクタ４７はＢＰを選択する。セレクタ４８はビットリバース回路４１の出力を選択する。３２ｂｉｔ加算器３０６が、ベースポイントＢＰとインデックスＸｎ’のビットリバース値とを加算することで、メモリをアクセスする実効アドレスを生成する。この実効アドレスは、セレクタ４９を介して、レジスタ４５に格納される。図３の回路では、ＢＰとＸｎ’は、メモリ空間の範囲内で任意の値をとることが出来る。
【００５７】
サーキュラアドレッシング命令とビットリバース命令の何れも実行しない場合、ＭＤＳ及びＢＲＳは0となり、ＯＲ回路４４の出力は０となる。従って、ＡＮＤ回路３０３の出力は０に固定となり、ビットリバース回路４１及び３２ｂｉｔ加算器３０６での動作を停止させ、消費電力を低減できる。このとき、Ｘｎ’の値は直接にセレクタ４９で選択され、実効アドレスとして出力される。
【００５８】
図４は、図３のアドレス生成回路における実効アドレス計算回路部分の変形例を示す図である。
【００５９】
図４の構成において、サーキュラアドレッシングの場合には、ブロックサイズＭＤの値は３２ビットの下位ビットであるビットＩ〜ビット0で指定される。ＭＤのビット３１〜ビット（Ｉ＋１）は０にする。インデックスＸｎ’は、０〜（ＭＤ−１）間に値を取る。ベースポイントＣＰは、３２ビットの下位ビットであるビットＩ〜ビット0を０にし、上位ビットであるビット３１〜ビット（Ｉ＋１）に値を設定することでベースの位置を指定する。サーキュラアドレッシング命令を実行する時（ＭＤＳ＝１＆ＢＲＳ＝０）、ＯＲ回路４０４により、ベースポイントＣＰとインデックスＸｎ’の論理和演算を実行し、メモリをアクセスする実効アドレスを生成する。
【００６０】
同様に、ビットリバースアドレッシングの場合、インデックスＸｎ’の値は下位ビットI〜ビット0においてビットリバースする。Ｘｎ’のビット３１〜ビット（Ｉ＋１）は０にする。ベースポイントＢＰは、３２ビットの下位ビットであるビットＩ〜ビット0を０にし、上位ビットであるビット３１〜ビット（Ｉ＋１）に値を設定することでベースの位置を指定する。ビットリバースアドレッシング命令を実行する時（ＢＲＳ＝１＆ＭＤＳ＝０）、ＯＲ回路４０４により、ベースポイントＢＰとビットリバース回路４１の出力との論理和演算を実行し、メモリをアクセスする実効アドレスを生成する。
【００６１】
このように図４の変形例では、ベースポイントのベース値を設定するビット位置においては、アドレスインデックスの各ビットに０を配置し、逆にアドレスインデックスのインデックス値を設定するビット位置においては、ベースポイントの各ビットに０を配置することで、アドレスインデックスとベースポイントを論理和演算するだけで、加算演算と同等の処理を実行することが可能となる。これにより、回路規模と消費電力を削減することが可能となる。
【００６２】
図５は本発明によるアドレス生成回路の第２の実施例を示す図である。
【００６３】
以下に、ＴＤＳが１の場合、即ち２次元アドレッシング命令を実行する時の動作を説明する。第２の実施例では、２次元アドレッシング命令の実行中において、全加算器２０４と３３ビット加算器２０６の動作を停止する。
【００６４】
ゼロ検出回路２２は、カウンタ２１のカウント値Counterが０の場合１を出力し、０でない場合には０を出力する。ゼロ検出回路２２の出力が０の場合、ＡＮＤ回路２１４の出力は０となり、セレクタ２１２は△を選択する。ＭＤＳ＝０に応答して、セレクタ信号生成回路２０８の出力Ｓｅｌ２０は１となる。これにより、選択回路２０９は、３２ｂｉｔ加算器２０７の出力Ａｄｄ２０（＝Ｘｎ＋△）を選択する。
【００６５】
ゼロ検出回路２２の出力が1の場合、セレクタ２１２は、ＴＤを選択する。ＭＤＳ＝０に応答して、セレクタ信号生成回路２０８の出力Ｓｅｌ２０は１となる。これにより、選択回路２０９は、３２ｂｉｔ加算器２０７の出力Ａｄｄ２０（Ｘｎ＋ＴＤ）を選択する。
【００６６】
以上のように、２次元アドレッシングの場合、全加算器２０４と３３ビット加算器２０６を利用しないので、消費電力を削減することが出来る。なお全加算器２０４と３３ビット加算器２０６は、サーキュラアドレッシング時の更新のための専用回路である。図５の第２の実施例の構成において、サーキュラアドレッシング時の動作は、第１の実施例の構成の動作と基本的に同一であるので、説明は省略する。
【００６７】
なお図５の構成は、実効アドレス計算回路の部分においても、図３の構成と若干異なり、ＡＮＤ回路３０３の代わりにＡＮＤ回路３０４及び３０５が設けられる。ＡＮＤ回路３０４は、ビットリバースアドレッシング時（ＢＲＳ＝1）のみビットリバース回路４１を動作させるマスク回路であり、サーキュラアドレッシング時（ＭＤＳ＝1）のみアドレスを通過させるマスク回路であるＡＮＤ回路３０５とは、別個の独立した回路としても受けられている。図３の構成では、ビットリバースアドレッシング時以外にサーキュラアドレッシング時にもビットリバース回路４１が動作していたが、図４の構成では、ビットリバースアドレッシング時のみビットリバース回路４１を動作させることが可能となり、更なる消費電力の削減を図ることができる。
【００６８】
図６は本発明によるメディア・プロセッサ用アドレス生成回路の第３の実施例を示す図である。図６には、アドレス用レジスタ１１の部分と、アドレス更新回路１２に対応する部分のみを示し、図示されない実効アドレス計算回路１３の構成は第１或いは第２の実施例と同一である。
【００６９】
まずＭＤＳが１の場合、即ちサーキュラアドレッシング命令を実行する時の動作について説明する。
【００７０】
セレクト信号ＳＥＬ１で選択されたインデックスＸｎ’が、アドレス用レジスタ１１から供給される。また増減値△は、レジスタ（ＦＦ）３４を経由してｓｔｅｐとして供給される。信号ＭＤＳは１であるので、増減値ｓｔｅｐの符号ビットＭＳＢは、ＡＮＤ回路５０１からＭ１として出力される。
【００７１】
更新値Δ≧０の場合（更新方向が正）、Ｍ１は０である。反転制御５０２では、ブロックサイズＭＤの符号を反転し、ＭＢとして出力する。ＴＤＳは０であるので、セレクタ５０９はＭＢを選択し、ＭＴとして出力する。キャリー入力生成回路５０４は、０であるＭ１を反転して、１である信号ＣＩを出力する。ＴＤＳ＝０に応答して、セレクタ５０８はＣＩを選択し、３２ｂｉｔ加算器へキャリー入力として供給する。データマスク５０３は、ＭＤＳの１、ＴＤＳの０、増減値ｓｔｅｐのＭＳＢの０に応答して、３２ビット加算器５００の出力Ａｄｄ３０（Ｘｎ＋Δ）をそのままＭＡとして出力する。３２ｂｉｔ加算器５０５は、（Ｘｎ＋Δ−ＭＤ）を計算する。
【００７２】
セレクタ生成回路５０６は、ＭＤＳの１、ＴＤＳの０、及びＭ１の０に応答して、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１の符号ビットＭＳＢを参照して、選択信号Ｓｅｌ３１を生成する。Ａｄｄ３１の符号ビットＭＳＢが１の場合にＳｅｌ３１は１となり、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０を選択する。Ａｄｄ３１の符号ビットＭＳＢが０の場合にＳｅｌ３１は０となり、選択回路５０７は、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１を選択する。選択回路５０７の出力をアドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００７３】
更新値Δ＜０の場合（更新方向が負）、Ｍ１は１である。反転制御５０２は、ブロックサイズＭＤを、符号を反転することなくそのままＭＢとして出力する。ＴＤＳは０であるので、セレクタ５０９はＭＢを選択し、ＭＴとして出力する。キャリー入力生成回路５０４は、１であるＭ１を反転して、０であるＣＩを生成する。セレクタ５０８はＣＩを選択し、３２ｂｉｔ加算器にキャリー入力として供給する。データマスク５０３は、ＭＤＳの１、ＴＤＳの０、増減値ｓｔｅｐのＭＳＢの１に応答して、３２ビット加算器５００の出力Ａｄｄ３０（Ｘｎ＋Δ）が負の場合、Ａｄｄ３０をそのままＭＡとして出力する。３２ｂｉｔ加算器５０５は、ＭＡとＭＴとに基づいて、（Ｘｎ＋Δ＋ＭＤ）を計算する。なお３２ビット加算器５００の出力Ａｄｄ３０（Ｘｎ＋Δ）が正の場合には、データマスク５０３は、ＭＡとして０を出力する。データマスク５０３としてラッチを使用する場合には、前にラッチした値を出力するように構成してよい。
【００７４】
このように、更新方向が負で且つ範囲外の場合には３２ｂｉｔ加算器５０５を動作させるが、その以外の場合には、３２ｂｉｔ加算器５０５を動作させない。これにより、消費電力を減らすことができる。
【００７５】
セレクタ生成回路５０６は、ＭＤＳの１、ＴＤＳの０、及びＭ１の１に応答して、３２ｂｉｔ加算器５００の出力Ａｄｄ３０の符号ビットＭＳＢを参照して、選択信号Ｓｅｌ３１を生成する。Ａｄｄ３０の符号ビットＭＳＢが１の場合にＳｅｌ３１は０となり、選択回路５０７は、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１を選択する。Ａｄｄ３０の符号ビットＭＳＢが０の場合にＳｅｌ３１は１となり、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０を選択する。選択回路５０７の出力をアドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００７６】
以下に、信号ＴＤＳが１で信号ＭＤＳが０の場合、即ち２次元アドレッシング命令を実行する時の動作を示す。
【００７７】
ゼロ検出回路２２は、カウンタ２１のカウント値Counterが０の場合１を出力し、０でない場合には０を出力する。ゼロ検出回路２２の出力が０の場合、データマスク５０３の出力ＭＡは、０の値（ラッチの場合は直前のラッチ値）に固定される。ＴＤＳは１であるので、セレクタ５０９はＴＤを選択し、固定値ＭＴとして出力する。またセレクタ５０８は０を選択し、その出力は０に固定される。このように３２ｂｉｔ加算器５０５において、入力信号ＭＡ及びＭＴ及びキャリー入力に変化が無いので、消費電力を低減することが出来る。ゼロ検出回路２２の出力が０、ＴＤＳが１、ＭＤＳが０である場合、セレクタ信号生成回路５０６の出力Ｓｅｌ３１は１になる。これに応じて、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０（Ｘｎ＋△）を選択する。
【００７８】
ゼロ検出回路２２の出力が１の場合、ＴＤＳは１であるので、ＡＮＤ回路５１１の出力は１となる。これに応じて、データマスク５０３は、３２ビット加算器５００の出力Ａｄｄ３０を、そのままＭＡとして出力する。セレクタ５０９は、ＴＤを選択し、ＭＴとして出力する。セレクタ５０８は０を選択し、３２ｂｉｔ加算器にキャリー入力として供給する。３２ｂｉｔ加算器５０５は、ＭＴ及びＭＡに基づいて、(Ｘｎ＋Δ＋ＴＤ)を計算する。セレクタ生成回路５０６では、ＴＤＳが１、ＭＤＳが０、ゼロ検出回路２２の出力が１である場合に、Ｓｅｌ３１が０になり、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１が選択される。
【００７９】
ＭＤＳとＴＤＳの何れもが０の場合、つまりサーキュラアドレッシング命令と２次元アドレッシング命令の何れも実行しない場合、即ち通常のポストアドレス更新、ビットリバース、及びアドレスレジスタ演算の場合、データマスク回路５０３の出力ＭＡが０の値（或いは直前のラッチ値）に固定され、反転制御５０２は固定値ＭＢを出力し、またＣＩが固定値である。従って、３２ｂｉｔ加算器３０５において、入力信号ＭＡ及びＭＴには変化が無くなり、消費電力を低減することが出来る。
【００８０】
上述のように、第３の実施例においては、サーキュラアドレッシングを使う命令があっても、サーキュラ更新値を選択していない時、サーキュラ更新回路を動作させない。従って、非常に低消費電力のアプリケーションに適した構成を提供することが出来る。
【００８１】
図７は本発明によるメディア・プロセッサ用アドレス生成回路の第４の実施例を示す図である。図７には、アドレス用レジスタ１１の部分と、アドレス更新回路１２に対応する部分のみを示し、図示されない実効アドレス計算回路１３の構成は第１或いは第２の実施例と同一である。
【００８２】
まずＭＤＳが１の場合、即ちサーキュラアドレッシング命令を実行する時の動作について説明する。
【００８３】
セレクト信号ＳＥＬ１で選択されたインデックスＸｎ’が、アドレス用レジスタ１１から供給される。また増減値△は、レジスタ（ＦＦ）３４を介してセレクタ５１０に供給される。ＴＤＳが０であるのでＡＮＤ回路５０９の出力は０であり、セレクタ５１０は、増減値△を選択してｓｔｅｐとして供給する。信号ＭＤＳは１であるので、増減値ｓｔｅｐの符号ビットＭＳＢは、ＡＮＤ回路５０１からＭ１として出力される。
【００８４】
更新値Δ≧０の場合（更新方向が正）、Ｍ１は０である。反転制御５０２では、ブロックサイズＭＤの符号を反転し、ＭＢとして出力する。キャリー入力生成回路５０４は、０であるＭ１を反転して１である信号ＣＩを生成し、３２ｂｉｔ加算器へキャリー入力として供給する。データマスク５０３は、ＭＤＳの１及び増減値ｓｔｅｐのＭＳＢの０に応答して、３２ビット加算器５００の出力Ａｄｄ３０（Ｘｎ＋Δ）をそのままＭＡとして出力する。３２ｂｉｔ加算器５０５は、（Ｘｎ＋Δ−ＭＤ）を計算する。
【００８５】
セレクタ生成回路５０６は、ＭＤＳの１及びＭ１の０に応答して、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１の符号ビットＭＳＢを参照して、選択信号Ｓｅｌ３１を生成する。Ａｄｄ３１の符号ビットＭＳＢが１の場合にＳｅｌ３１は１となり、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０を選択する。Ａｄｄ３１の符号ビットＭＳＢが０の場合にＳｅｌ３１は０となり、選択回路５０７は、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１を選択する。選択回路５０７の出力をアドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００８６】
更新値Δ＜０の場合（更新方向が負）、Ｍ１は１である。反転制御５０２は、ブロックサイズＭＤを、符号を反転することなくそのままＭＢとして出力する。キャリー入力生成回路５０４は、１であるＭ１を反転して０であるＣＩを生成し、３２ｂｉｔ加算器にキャリー入力として供給する。データマスク５０３は、ＭＤＳの１及び増減値ｓｔｅｐのＭＳＢの１に応答して、３２ビット加算器５００の出力Ａｄｄ３０（Ｘｎ＋Δ）が負の場合、Ａｄｄ３０をそのままＭＡとして出力する。３２ｂｉｔ加算器５０５は、ＭＡとＭＢとに基づいて、（Ｘｎ＋Δ＋ＭＤ）を計算する。なお３２ビット加算器５００の出力Ａｄｄ３０（Ｘｎ＋Δ）が正の場合には、データマスク５０３は、ＭＡとして０を出力する。データマスク５０３としてラッチを使用する場合には、前にラッチした値を出力するように構成してよい。
【００８７】
このように、更新方向が負で且つ範囲外の場合には３２ｂｉｔ加算器５０５を動作させるが、その以外の場合には、３２ｂｉｔ加算器５０５を動作させない。これにより、消費電力を減らすことができる。
【００８８】
セレクタ生成回路５０６は、ＭＤＳの１及びＭ１の１に応答して、３２ｂｉｔ加算器５００の出力Ａｄｄ３０の符号ビットＭＳＢを参照して、選択信号Ｓｅｌ３１を生成する。Ａｄｄ３０の符号ビットＭＳＢが１の場合にＳｅｌ３１は０となり、選択回路５０７は、３２ｂｉｔ加算器５０５の出力Ａｄｄ３１を選択する。Ａｄｄ３０の符号ビットＭＳＢが０の場合にＳｅｌ３１は１となり、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０を選択する。選択回路５０７の出力をアドレス用レジスタ１１に送り、指定したアドレスレジスタの更新を行う。
【００８９】
以下に、信号ＴＤＳが１で信号ＭＤＳが０の場合、即ち２次元アドレッシング命令を実行する時の動作を示す。この時、３２ｂｉｔ加算器５０５の動作を停止する。
【００９０】
ゼロ検出回路２２は、カウンタ２１のカウント値Counterが０の場合１を出力し、０でない場合には０を出力する。ゼロ検出回路２２の出力が０の場合、ＡＮＤ回路５０９の出力は０となり、セレクタ５１０は△を選択して出力する。ＭＤＳ＝０に応答して、セレクタ信号生成回路５０６の出力Ｓｅｌ３１は１となり、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０を選択する（Ｘｎ＋△）。
【００９１】
ゼロ検出回路２２の出力が1の場合、ＡＮＤ回路５０９の出力は１となり、セレクタ５１０はＴＤを選択して出力する。ＭＤＳ＝０に応答して、セレクタ信号生成回路５０６の出力Ｓｅｌ３１は１となり、選択回路５０７は、３２ｂｉｔ加算器５００の出力Ａｄｄ３０を選択する（Ｘｎ＋ＴＤ）。
【００９２】
上述のように、第４の実施例においては、２次元アドレッシングの場合に３２ビット加算器５０５を利用しないので、消費電力を更に削減することが出来る。なお３２ビット加算器５０５は、サーキュラアドレッシング時の更新のための専用回路である。
【００９３】
図８は、本発明によるメディア・プロセッサの概略構成を示す図である。
【００９４】
本発明によるメディア・プロセッサ７０は、シーケンサ制御部７１、データ演算部７２、メモリバスインターフェース部７３、及びアドレス生成回路部７４を含む。シーケンサ制御部７１は、プログラムの命令をフェッチするプログラムアドレスを生成し、外部に接続されるメモリ８０からメモリバスインターフェース部７３を介してプログラムを読み込む。シーケンサ制御部７１は、読み込んだプログラムの命令をデコードし、デコード結果に応じて制御信号を生成することで、データ演算部７２、メモリバスインターフェース部７３、及びアドレス生成回路部７４の動作を制御する。ここでアドレス生成回路部７４は、本発明によるアドレス生成回路であり、第１乃至第４の実施例の何れの構成であってもよい。
【００９５】
アドレス生成回路部７４は、シーケンサ制御部７１の制御に基づいて動作し、メモリ８０をアクセスするアドレスを生成する。例えば、アドレス生成回路部７４が生成したアドレスにアクセスすることで、メモリ８０のデータを読み込んで、データ演算部７２でデータ処理を実行する。またアドレス生成回路部７４が生成したアドレスにアクセスすることで、データ演算部７２でデータ処理を実行したデータをメモリ８０に書き込む。
【００９６】
ここで本発明によるアドレス生成回路１０を２つ設けて並列に動作させ、図８に示されるように、２つの実効アドレスを同時に生成するように構成してよい。また並列に設けられるアドレス生成回路１０の数は、２個以上であってもよい。
【００９７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００９８】
【発明の効果】
以上説明したように本発明によれば、メディア・プロセッサのアドレス生成回路において、サーキュラアドレッシング機能、２次元アドレッシング機能、ビットリバースアドレッシング機能、ポストアドレス更新機能及びアドレスレジスタ演算機能の回路を共用化することにより、アドレス生成回路の回路規模を縮小することが出来る。
【００９９】
またプログラムの一部がビットリバースアドレッシングを使用しない時にはビットリバース生成回路を停止させ、サーキュラアドレッシング機能と２次元アドレッシング機能を使用しない時にはサーキュラ更新回路と２次元更新回路及びサーキュラ生成回路の動作を停止させ、更に、サーキュラ更新値と２次元更新値を選択していない時にはサーキュラ更新回路と２次元更新回路の動作を停止させるように構成することにより、アドレス生成回路の低消費電力化を実現することが出来る。
【図面の簡単な説明】
【図１】本発明によるアドレス生成回路の第１の実施例の概略構成図である。
【図２】ビットリバース動作の詳細を説明するための図である。
【図３】本発明によるアドレス生成回路の第１の実施例について詳細な構成を示す図である。
【図４】図３のアドレス生成回路における実効アドレス計算回路部分の変形例を示す図である。
【図５】本発明によるアドレス生成回路の第２の実施例を示す図である。
【図６】本発明によるメディア・プロセッサ用アドレス生成回路の第３の実施例を示す図である。
【図７】本発明によるメディア・プロセッサ用アドレス生成回路の第４の実施例を示す図である。
【図８】本発明によるメディア・プロセッサの概略構成を示す図である。
【符号の説明】
１０  アドレス生成回路
１１  アドレス用レジスタ
１２  アドレス更新回路
１３  実効アドレス計算回路
【図１】
0003745673.tif 000003
【図２】
0003745673.tif 000004
【図３】
0003745673.tif 000005
【図４】
0003745673.tif 000006
【図５】
0003745673.tif 000007
【図６】
0003745673.tif 000008
【図７】
0003745673.tif 000009
【図８】
0003745673.tif 000010