(57)【要約】【課題】  ＳＩＭＤ型マイクロプロセッサに対してレジスタのビット幅よりも少ないビット幅のデータを、レジスタにパックして転送する。【解決手段】  各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能であるポートを持つＳＩＭＤ型マイクロプロセッサにおいて、上記ポートは上位ビット側と下位ビット側に分割されており、上記ポートを介して各プロセッサエレメントのレジスタとの間でデータ転送を行う場合に、一度のアクセスで１つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、又は一度のアクセスで２つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行うように構成されたことを特徴とする。【選択図】図３
2006350907.tif 000002
【特許請求の範囲】
【請求項１】
各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能であるポートを持つＳＩＭＤ型マイクロプロセッサにおいて、
上記ポートは、上位ビット側と下位ビット側に分割されており、
上記ポートを介して各プロセッサエレメントのレジスタとの間でデータ転送を行う場合に、
一度のアクセスで１つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、又は、
一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行うように構成されたことを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能であるポートを持つＳＩＭＤ型マイクロプロセッサにおいて、
上記アドレスは複数配列されるプロセッサエレメントに対して、主走査方向と合致する配列の順序に合わせて順番に付されており、
上記ポートは、上位ビット側と下位ビット側に分割されており、
上記ポートは、さらに偶数番号のプロセッサエレメントのためのデータバスと、奇数番号のプロセッサエレメントのためのデータバスとを区別して有し、
上記ポートを介して各プロセッサエレメントのレジスタとの間でデータ転送を行う場合に、
一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、又は、
一度のアクセスで隣接する４つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行うように構成されたことを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項３】
請求項１に記載のＳＩＭＤ型マイクロプロセッサにデータ転送するデータ転送装置であって、
外部ポートを介して、各プロセッサエレメントのレジスタに外部からアクセスし、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタと同一のビット幅である場合には、一度のアクセスで１つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタのビット幅よりも少ない場合には、一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行い、レジスタの上位ビット側または下位ビット側とで２回の転送を行うように構成されたことを特徴とするデータ転送装置。
【請求項４】
請求項２に記載のＳＩＭＤ型マイクロプロセッサにデータ転送するデータ転送装置であって、
外部ポートを介して、各プロセッサエレメントのレジスタに外部からアクセスし、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタと同一のビット幅である場合には、一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタのビット幅よりも少ない場合には、一度のアクセスで隣接する４つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行い、レジスタの上位ビット側または下位ビット側とで２回の転送を行うように構成されたことを特徴とするデータ転送装置。
【請求項５】
各プロセッサエレメントのレジスタの下位ビット側または上位ビット側に転送されるデータが、画像メモリに格納された連続した画像データの中の、２つの連続する画像データ列であって列内の個数がプロセッサエレメント数よりも少ない画像データ列であることを特徴とする請求項３又は４に記載のデータ転送装置。
【請求項６】
請求項３〜５のうちのいずれか一つに記載のデータ転送装置を２つ以上搭載し、１つのデータ転送装置で転送されるデータの一部が、他のデータ転送装置のデータ転送におけるデータ間欠あるいはデータ重複処理に使用されることを特徴とするデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つの演算命令により複数の画像データ等を並列処理するＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）型マイクロプロセッサに関する。
【背景技術】
【０００２】
ＳＩＭＤ型マイクロプロセッサは、プロセッサエレメント（以下、ＰＥと称する。）と呼ばれる単位で演算器とレジスタを備え、そのＰＥを複数個有する。これら複数個のＰＥが同時に演算処理を行うことで、１つの命令で主走査方向の複数のデータに対して同時に同一の演算処理が実行される。画像処理において各ＰＥは、通常１個の画素の画像処理を担当するように設計されている。
【０００３】
ＳＩＭＤ型マイクロプロセッサの上記のような構造により、演算は同一であるがデータ量が非常に多い処理（例えばデジタルコピアなどにおける画像処理）に係る用途において頻用される。
【０００４】
ＳＩＭＤ型マイクロプロセッサで処理されるデータは、各ＰＥが内蔵している汎用レジスタに格納される必要がある。このことは、プロセッサ外部より汎用レジスタにアクセス可能な外部ポートを介して、プロセッサ外部のメモリコントローラが、外部のメモリと汎用レジスタ間とでデータ転送をすることにより、行われている。
【０００５】
ところで、画像処理は年々精度が向上しており、ＳＩＭＤ型マイクロプロセッサで演算を行うデータのビット幅も増加する傾向にある。データのビット幅が増加しても、従来の構成のプロセッサのビット幅をリニアに増やしていけば対応は可能である。しかし、ビット幅が少ないデータに対する演算に、そのようなプロセッサのビット幅を全て使うことは非効率的である。このことを受けて、レジスタ、ＡＬＵをビット分割して同時に複数の独立した演算を行えるようなプロセッサも開発されている。
【０００６】
また、デジタルコピアにおける画像処理を考えると、主走査方向１ラインの画素数はＳＩＭＤ型マイクロプロセッサの全ＰＥ数よりも遙かに多い。このため、ＳＩＭＤ型マイクロプロセッサは、通常、１ラインのデータをＰＥ数ごとに分割して処理を繰り返して行っている。以下では、このＰＥ数ごとの処理の単位を、ＳＩＭＤ処理単位と称することにする。
【０００７】
このように１ライン画素数が全ＰＥ数よりも遙かに多い場合において、画素データのビット幅が汎用レジスタのビット幅よりも少ない（例えば、半分である）ときには、（ＳＩＭＤ処理単位で）分割した２つの連続した画像データを、上位ビット及び下位ビットにパックして汎用レジスタに格納すればスループットが２倍になると言える。
【０００８】
ここで上述のように各ＰＥの内蔵している汎用レジスタに、連続した２ＳＩＭＤ処理単位分の画像データをパックして転送することを考える。通常、読み込まれる画像データはプロセッサ外部の画像メモリに連続して格納されている。画像メモリに連続して格納されている２ＳＩＭＤ処理分の画像データを、汎用レジスタにパックして転送するには、１ＳＩＭＤ目のデータを汎用レジスタの下位ビットに転送した後、２ＳＩＭＤ目のデータを汎用レジスタの上位ビットに転送すればよい。しかし、このときには転送サイクルが通常の２倍かかってしまう。
【０００９】
サイクル数を減らすには、画像メモリへのポインタとして１ＳＩＭＤ目のためのポインタ、２ＳＩＭＤ目のためのポインタと２セット持ち、画像メモリを２ポートメモリとすれば可能である。しかし、拡大・縮小といった画像処理における速度変換を行うとすると、２ＳＩＭＤ目のためのポインタが、１ＳＩＭＤ目の拡大・縮小に影響されて変動しなければならないことになるため、並列に転送をすることが困難になる。
【００１０】
なお、下記の特許文献１は、複数の入力シフトレジスタと複数の入力および出力レジスタを持つプロセッサについて開示している。ここでシフトレジスタをカラムデコーダで構成することを開示しているが外部ポートとしてのアドレス入力は開示されていない。また、特許文献２は、シリアル方式の代表的な構成の並列ＤＳＰプロセッサを開示している。ここではシリアルメモリ方式での入力メモリと出力メモリの兼用が開示されている。また、特許文献３は、シリアル方式においてデータの量がＰＥ数より少ない場合(特に２つおき)に連続したＰＥに書き込まず、２つおきのＰＥに書き込む方式の並列プロセッサを開示する。シリアルアクセスにおける任意のＰＥへのアクセスの問題をある程度解決している。また、特許文献４は、ＰＥに内蔵されるメモリをチップ外部から単一の大きなメモリとしてアクセスする方式を備える並列処理装置を開示する。ここでは処理すべきデータはシフトレジスタでシリアルに供給されている。また、特許文献５は、ＰＥが内蔵するレジスタに外部よりアドレスを入力することでアクセスすることが可能な構成のＳＩＭＤ型プロセッサにつき開示している。更に、特許文献６は、シングルポートメモリをＦＩＦＯあるいはＬＩＦＯとして使用できるメモリコントローラについて開示している。
【特許文献１】特開平５−６７２０３号公報
【特許文献２】特開平６−４６９０号公報
【特許文献３】特開平６−８３７８７号公報
【特許文献４】特開平６−１９５４８０号公報
【特許文献５】特開２００１−８４２２９公報
【特許文献６】特開２００１−１３４５３８公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、ＳＩＭＤ型マイクロプロセッサに対してレジスタのビット幅よりも少ないビット幅のデータを、レジスタにパックして転送することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項１に記載のＳＩＭＤ型マイクロプロセッサは、
各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能であるポートを持つＳＩＭＤ型マイクロプロセッサにおいて、
上記ポートは、上位ビット側と下位ビット側に分割されており、
上記ポートを介して各プロセッサエレメントのレジスタとの間でデータ転送を行う場合に、
一度のアクセスで１つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、又は、
一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行うように構成されたことを特徴とする。
【００１３】
本発明に係る請求項２に記載のＳＩＭＤ型マイクロプロセッサは、
各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能であるポートを持つＳＩＭＤ型マイクロプロセッサにおいて、
上記アドレスは複数配列されるプロセッサエレメントに対して、主走査方向と合致する配列の順序に合わせて順番に付されており、
上記ポートは、上位ビット側と下位ビット側に分割されており、
上記ポートは、さらに偶数番号のプロセッサエレメントのためのデータバスと、奇数番号のプロセッサエレメントのためのデータバスとを区別して有し、
上記ポートを介して各プロセッサエレメントのレジスタとの間でデータ転送を行う場合に、
一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、又は、
一度のアクセスで隣接する４つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行うように構成されたことを特徴とする。
【００１４】
本発明に係る請求項３に記載のデータ転送装置は、
請求項１に記載のＳＩＭＤ型マイクロプロセッサにデータ転送するデータ転送装置であって、
外部ポートを介して、各プロセッサエレメントのレジスタに外部からアクセスし、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタと同一のビット幅である場合には、一度のアクセスで１つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタのビット幅よりも少ない場合には、一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行い、レジスタの上位ビット側または下位ビット側とで２回の転送を行うように構成されたことを特徴とする。
【００１５】
本発明に係る請求項４に記載のデータ転送装置は、
請求項２に記載のＳＩＭＤ型マイクロプロセッサにデータ転送するデータ転送装置であって、
外部ポートを介して、各プロセッサエレメントのレジスタに外部からアクセスし、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタと同一のビット幅である場合には、一度のアクセスで隣接する２つのプロセッサエレメントの上位ビット側及び下位ビット側とで転送を行うように構成され、
ＳＩＭＤ型マイクロプロセッサで処理をされる画像データが、レジスタのビット幅よりも少ない場合には、一度のアクセスで隣接する４つのプロセッサエレメントの上位ビット側または下位ビット側とで転送を行い、レジスタの上位ビット側または下位ビット側とで２回の転送を行うように構成されたことを特徴とする。
【００１６】
本発明に係る請求項５に記載のデータ転送装置は、
各プロセッサエレメントのレジスタの下位ビット側または上位ビット側に転送されるデータが、画像メモリに格納された連続した画像データの中の、２つの連続する画像データ列であって列内の個数がプロセッサエレメント数よりも少ない画像データ列であることを特徴とする請求項３又は４に記載のデータ転送装置である。
【００１７】
本発明に係る請求項６に記載のデータ転送装置は、
請求項３〜５のうちのいずれか一つに記載のデータ転送装置を２つ以上搭載し、１つのデータ転送装置で転送されるデータの一部が、他のデータ転送装置のデータ転送におけるデータ間欠あるいはデータ重複処理に使用されることを特徴とするデータ変換装置である。
【発明の効果】
【００１８】
本発明を利用することにより、画像メモリに格納された一連の画像データ列のデータをＰＥのレジスタの下位側、上位側にてパックして転送することができ、同時にその際の転送サイクル数を削減できる。また、パックして格納した画像データに対して、ＳＩＭＤ型マイクロプロセッサで演算を行うことにより画像処理を高速化できる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しつつ本発明に係る好適な実施の形態を説明する。
【００２０】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２、メモリコントローラ７４及びメモリ７６の構成図である。第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２は、概略、グローバルプロセッサ３０、プロセッサエレメントグループ７２、及び外部インタフェース７０から構成される。プロセッサエレメントグループ７２は複数のＰＥの配列体（集合体）であり、後で説明するように各ＰＥの演算器が演算アレイ６２に属しており、各ＰＥのレジスタがレジスタファイル６０に属している。以下ではＰＥは２５６個配列されており、順に（例えば、図２の左方から）０〜２５５の番号が、ＰＥ番号として、即ちアドレスとして付されているものとする。
【００２１】
メモリ７６は、メモリコントローラ７４を介して、ＳＩＭＤ型マイクロプロセッサ２の外部インタフェース７０と繋がっている。メモリコントローラ７４は、ＳＩＭＤ型マイクロプロセッサ２のグローバルプロセッサ３０と繋がり、グローバルプロセッサ３０の制御を受ける。
【００２２】
グローバルプロセッサ３０は、いわゆるＳＩＳＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ、Ｓｉｎｇｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）タイプのプロセッサであり、プログラムＲＡＭとデータＲＡＭを内蔵し、プログラムを解読して各種制御信号を生成する。この制御信号は、内蔵する各種ブロック以外にも、レジスタファイル、演算アレイ、及びメモリコントローラに供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等を使用して各種演算処理、プログラム制御処理を行う。
【００２３】
レジスタファイル６０は、ＰＥ（プロセッサエレメント）命令で処理されるデータを保持している。ＰＥ命令はＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ，  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）タイプの命令であり、レジスタファイル６０に保持されている複数のデータを同時に同じ処理を行う。このレジスタファイル６０からのデータの読み出し／書き込みの制御はグローバルプロセッサ３０からの制御によって行われる。読み出されたデータは演算アレイ６２に送られ、演算アレイ６２での演算処理後にレジスタファイル６０に書き込まれる。
【００２４】
また、レジスタファイル６０は外部インタフェース７０を介してプロセッサ外部のメモリコントローラ７４からのアクセスが可能であり、グローバルプロセッサ３０の制御とは別に外部から特定のレジスタを読み出し／書き込みが行われる。
【００２５】
演算アレイ６２では、ＰＥ命令の演算処理がおこなわれる。処理の制御はすべてグローバルプロセッサ３０から行われる。
【００２６】
メモリコントローラ３０は、外部ポートにクロックとアドレス、リード/ライト制御を出力し、シングルポートのメモリ７６にクロックとアドレス、リード/ライト制御を出力する。これらを利用して、任意のＰＥのレジスタと（シングルポートの）メモリ７６間で、データ転送が行われる。処理の制御はすべてグローバルプロセッサ３０から行われる。
【００２７】
図２は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の構成図である。図２では、プロセッサエレメントグループ（図１参照）７２の中央付近にある６個のＰＥを中心に示している。図２において、符号４の付される部分が一つのＰＥ（プロセッサエレメント）を示している。
【００２８】
グローバルプロセッサ３０には、プログラム格納用のプログラムＲＡＭ５２と演算データ格納用のデータＲＡＭ５４が内蔵されている。更に、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）４２、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ３レジスタ（３２〜３８）、レジスタ退避、復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）４０、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）４４、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩ、ＬＮレジスタ４６、４８、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）５０が内蔵されている。
【００２９】
これらのレジスタと図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部インタフェース制御回路、ＧＰ演算制御回路を使用してＧＰ命令の実行が行われる。また、ＰＥ命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、ＰＥ演算制御回路を使用して、レジスタファイル６０の制御と演算アレイ６２の制御をおこなう。
【００３０】
レジスタファイル６０には、１つのＰＥ単位に１６ビットのレジスタ（６、８）が３２本内蔵されており、２５６ＰＥ分の組がアレイ構成になっている。レジスタ（６、８）はＰＥごとにＲ０、Ｒ１、Ｒ２、・・・Ｒ３１と称することとする。それぞれのレジスタ（６、８）は演算アレイ６２に対して１つの読み出しポートと１つの書き込みポートを備えており、１６ビットのリード／ライト兼用のバス１０で演算アレイ６２からアクセスされる。
【００３１】
３２本のレジスタ（６、８）の内の２４本（Ｒ０〜Ｒ２３）は、外部インタフェース７０を介してプロセッサ外部からアクセス可能であり、外部からクロック、アドレス、及びリード／ライト制御の夫々の信号を入力することで、任意のレジスタ６に対する読み書きが可能となる。１つの外部ポートにより各ＰＥの１つのレジスタ６がアクセスされるようにしてあり、このときに外部から入力されたアドレスによりＰＥの番号（０〜２５５）が指定される。したがって、レジスタ６のアクセスのための外部ポートは、全部で２４組搭載されている。
【００３２】
また、外部からのアクセスは、偶数番号のＰＥと奇数番号のＰＥとで構成される１対のＰＥに対して行われる。従って、このアクセスは３２ビットで行われ、１回のアクセスで２つのレジスタ６が同時に対象となり得る。
【００３３】
演算アレイ６２は、３２ビットＡＬＵ（１８、２４）と３２ビットＡレジスタ（２０、２６）、Ｆレジスタ（２２、２８）を内蔵している。ＰＥ命令による演算では、レジスタファイル６０から読み出されたデータ若しくはグローバルプロセッサ３０から与えられたデータをＡＬＵの片側の入力とし、Ａレジスタの内容のデータをもう片側には入力とし、演算結果はＡレジスタ（２０、２６）に格納される。したがって、Ａレジスタ（２０、２６）とＲ０〜Ｒ３１レジスタ（６、８）若しくはグローバルプロセッサ３０から与えられるデータとの演算が、行われることになる。３２ビットＡＬＵ（１８、２４）は、２つの１６ビットＡＬＵ１８、２４から構成されており、演算精度が必要な場合は下位側ＡＬＵ１８からのキャリーが上位側ＡＬＵ２４に入力され、３２ビットＡＬＵとして機能する。演算精度が３２ビットも必要でない場合は、１６ビットずつの独立した演算を行うことも可能である。
【００３４】
レジスタファイル６０と演算部１４との接続部分に、７ｔｏ１（７対１）のマルチプレクサ１２が置かれている。このマルチプレクサ１２により、ＰＥ配列方向で前方（即ち、ＰＥ番号の小さい方）に１つ、２つ、及び３つ離れたＰＥに属するレジスタ（６、８）のデータと、後方（即ち、ＰＥ番号の大きい方）に１つ、２つ、及び３つ離れたＰＥに属するレジスタ（６、８）のデータと、中央のＰＥに属するレジスタ（６、８）のデータが、演算部１４の演算対象として選択される。また、レジスタ（６、８）の１６ビットのデータは、シフト・拡張回路１６により、指定されたビット分だけ左シフトされてＡＬＵに入力する。
【００３５】
更に、図示していない１６ビットの条件レジスタ（Ｔ）により、ＰＥごとに演算実行の無効／有効が制御されている。この条件レジスタにより、特定のＰＥだけを演算対象として選択できるようになっている。
【００３６】
図３は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の部分構成図である。ＳＩＭＤ型マイクロプロセッサ２のうち、主として、外部インタフェース７０、及び３つのＰＥに関するアドレスデコード・リード／ライトコントロール部７８とレジスタ６を、示している。一つのレジスタ６は、下位側レジスタと上位側レジスタで構成される。これに合わせて、後述のリード／ライト選択信号や転送データも、下位側のものと上位側のものとで構成されている。
【００３７】
外部ポートは、８ビットのアドレス、ハイレベル時にリード動作をローレベル時にライト動作を夫々示すリード／ライト選択信号（上位側、下位側）、転送のタイミングを与えるクロック、上位側と下位側の夫々８ビットの転送データ、および選択信号で構成されている。これらの信号は、外部インタフェース７０のブロックに接続され、ここでタイミング調整とバッファリングがなされ、プロセッサ内部の信号としてアドレス、リード／ライト選択信号（上位側、下位側）、クロック、転送データ（上位側、下位側）、および選択信号に変換される。
【００３８】
これらの信号は、レジスタファイル６０の各レジスタ６に供給される。このうちアドレスは各ＰＥでデコードされ、ＰＥを示すアドレス（ＰＥ番号）と一致したＰＥにおいてのみ、リード／ライトの動作が行われる。ＰＥ毎に、アドレスのデコードとリード／ライトの制御を行うアドレスデコード・リード／ライトコントロール部７８が設けられている。レジスタ６は、アドレスデコード・リード／ライトコントロール部７８からの制御信号（Ｗ１、Ｒ１、Ｗ１Ａ、Ｒ１Ａ、Ｗ１Ｂ、Ｒ１Ｂ）に従って、外部インタフェース７０と接続されたデータバス（上位側、下位側）とデータの転送を行う。
【００３９】
図４において、ＰＥ０に設けられるアドレスデコード・リード／ライトコントロール部（図４（１））と、ＰＥ１に設けられるアドレスデコード・リード／ライトコントロール部（図４（２））の回路図の例を示す。
【００４０】
ここで、選択信号がローレベルのときは、アドレスデコード・リード／ライトコントロール部７８がアドレス８ビット全てをデコードするようになっている。従ってこのときは、１つのＰＥが選択される。選択されたＰＥのアドレスデコード・リード／ライトコントロール部７８は、リード／ライト選択信号（上位側、下位側）に従って、ライト時はＷ１、Ｗ１Ａ制御信号をアサートし、リード時はＲ１、Ｒ１Ａ制御信号をアサートする。転送データ（下位側）が（Ｗ１、Ｒ１）により下位側レジスタ６Ａと対応し、転送データ（上位側）が（Ｗ１Ａ、Ｒ１Ａ）により上位側レジスタ６Ｂと対応した状態で、転送データの転送がなされる。
【００４１】
一方、選択信号がハイレベルのときは、アドレスデコード・リード／ライトコントロール部７８が、アドレス８ビットの内の最下位ビットがマスクされたものを、デコードするようになっている。従ってこのときは２つのＰＥ（例えば、ＰＥ０とＰＥ１）が選択される。選択されたＰＥのアドレスデコード・リード／ライトコントロール部７８は、リード／ライト選択信号（上位側、下位側）に従って、ライト時はＷ１、Ｗ１Ｂ制御信号をアサートし、リード時はＲ１、Ｒ１Ｂ制御信号をアサートする。転送データ（下位側）が偶数番号のＰＥのレジスタと対応し、転送データ（上位側）が奇数番号のＰＥのレジスタと対応した状態で、転送データの転送がなされる。
【００４２】
レジスタ６は、演算部１４ともデータの転送を行うために、もう一方の入出力ポートを持ち、命令によりグローバルプロセッサ３０で作成されたライト（Ｗ２）／リード（Ｒ２）制御信号により、演算部１４と接続するデータポート（Ｄ２）からデータの転送が行われる。図３では、３個のＰＥの構成だけを示しているが、図２のような２５６個のＰＥを備える構成では、レジスタ６に係るアドレスデコード・リード／ライトコントロール部７８は、２５６個必要である。また、０〜２５５のうち一つの数字を指定するため、アドレスのビット幅は８ビットとなっている。したがって、ＰＥ数の増減によりアドレスのビット幅も変化することとなる。また、データのビット幅もここでは８ビットとしているが、一度に転送するデータ量により変化し得る。
【００４３】
図５は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の別の構成例の部分構成図である。図３に示すＳＩＭＤ型マイクロプロセッサでは、奇数番号のＰＥの下位側レジスタ６Ａ、偶数番号のＰＥの上位側レジスタ６Ｂが３ポートレジスタであるが、図５に示すＳＩＭＤ型マイクロプロセッサでは、奇数番号のＰＥの下位側レジスタ６Ａのみが３ポートレジスタとされ、他のレジスタは全て２ポートレジスタとされている。
【００４４】
図３に示す構成例では、選択信号がローレベルのときは図３に示す構成のときと同一の動作を行う。選択信号がハイレベルのときは、下位側レジスタ６Ａに対してのみ偶数番号のＰＥと奇数番号のＰＥとにデータ転送を行う。
【００４５】
つまりこの場合、まず上位側レジスタ６Ｂに転送すべきデータを下位側レジスタ６Ａに転送する。下位側レジスタ６Ａへのデータ転送が終了したら、ＳＩＭＤ命令によって下位側レジスタ６Ａのデータを上位側レジスタ６Ｂに転送し、しかる後に下位側レジスタ６Ａに本来転送すべきデータを下位側レジスタ６Ａに転送する。このようにすれば、図３に示すＳＩＭＤ型マイクロプロセッサと、同じ結果の転送を実現できる。
【００４６】
［第２の実施形態］
図６は、本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の部分構成図である。本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサは、第１の実施形態に係るＳＩＭＤ型マイクロプロセッサと略同様のものである。従って、同一部位には同一の符号を付して、説明を省略する。
【００４７】
図６に示すＳＩＭＤ型マイクロプロセッサ２では、図３に示すＳＩＭＤ型マイクロプロセッサ２と比較して、外部端子のデータバスが２倍のビット幅である３２ビットとなり、リード／ライト選択信号が４本となっている。４本のリード／ライト選択信号のうち、２本は偶数番号のＰＥのためのものであり、他の２本は奇数番号のＰＥのためのものである。
【００４８】
内部信号においても、関連する信号が増加している。偶数番号のＰＥのアドレスデコード・リード／ライトコントロール部７８には偶数番号のＰＥのためのリード／ライト選択信号が接続され、レジスタ６には偶数番号のＰＥのためのデータバスが接続されている。また、奇数番号のＰＥのアドレスデコード・リード／ライトコントロール部７８には奇数番号のＰＥのためのリード／ライト選択信号が接続され、レジスタ６には奇数番号のＰＥのためのデータバスが接続されている。
【００４９】
また、アドレスは１／２のビット幅（７ビット）である。このことにより、偶数番号のＰＥとそれに隣接する奇数番号のＰＥとで、同一アドレスがデコードされることになる。従って、偶数番号のＰＥのレジスタ６とそれに隣接する奇数番号ＰＥのレジスタ６とに、同時にデータが転送され得る。即ち、第１の実施形態に係るＳＩＭＤ型マイクロプロセッサでは、全てのＰＥのレジスタ６のデータ転送に２５６回の転送サイクルが必要であるが、第２の実施形態に係るＳＩＭＤ型マイクロプロセッサでは１２８回で済むことになる。なお、リード／ライト選択信号は、偶数番号のＰＥのためのものと奇数番号のＰＥのためのものとで分けられているから、偶数番号のＰＥ若しくは奇数番号のＰＥのどちらか一方のレジスタに対してのみデータ転送をする、ということも可能である。
【００５０】
図７において、ＰＥ０、ＰＥ１に設けられるアドレスデコード・リード／ライトコントロール部（図７（１））と、ＰＥ２、ＰＥ３に設けられるアドレスデコード・リード／ライトコントロール部（図７（２））の回路図の例を示す。
【００５１】
図３に示す第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２と同様に、選択信号がローレベルのときは、アドレスデコード・リード／ライトコントロール部７８は、アドレス７ビット全てをデコードするようになっている。従ってこのときは２つのＰＥが選択される。選択されたＰＥのアドレスデコード・リード／ライトコントロール部７８は、リード／ライト選択信号（上位側、下位側）に従って、ライト時はＷ１、Ｗ１Ａ制御信号をアサートし、リード時はＲ１、Ｒ１Ａ制御信号をアサートする。転送データ（下位側）が（Ｗ１、Ｒ１）により下位側レジスタ６Ａと対応し、転送データ（上位側）が（Ｗ１Ａ、Ｒ１Ａ）により上位側レジスタ６Ｂと対応した状態で、転送データの転送がなされる。
【００５２】
一方、選択信号がハイレベルのときは、アドレスデコード・リード／ライトコントロール部７８が、アドレス７ビットの内の最下位ビットがマスクされたものを、デコードするようになっている。従ってこのときは４つのＰＥ（例えば、ＰＥ０、ＰＥ１、ＰＥ２、及びＰＥ３）が選択される。選択されたＰＥのアドレスデコード・リード／ライトコントロール部７８は、リード／ライト選択信号（上位側、下位側）に従って、ライト時はＷ１、Ｗ１Ｂ制御信号をアサートし、リード時はＲ１、Ｒ１Ｂ制御信号をアサートする。転送データ（下位側）が、ＰＥ番号が４ｎ、４ｎ＋１（ｎ＝０、１、２、・・・）であるＰＥのレジスタと対応し、転送データ（上位側）が、ＰＥ番号が４ｎ＋２、４ｎ＋３（ｎ＝０、１、２、・・・）であるＰＥのレジスタと対応した状態で、転送データの転送が行われる。
【００５３】
図８は、本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の別の構成例である。図６に示すＳＩＭＤ型マイクロプロセッサでは、ＰＥ番号が４ｎ、４ｎ＋１（ｎ＝０、１、２、・・・）のＰＥの上位側レジスタ６Ｂ、ＰＥ番号が４ｎ＋２、４ｎ＋３（ｎ＝０、１、２、・・・）のＰＥの下位側レジスタ６Ａが３ポートレジスタであるが、図８に示すＳＩＭＤ型マイクロプロセッサでは、ＰＥ番号が４ｎ＋２、４ｎ＋３（ｎ＝０、１、２、・・・）のＰＥの下位側レジスタのみが３ポートレジスタとされ、他のレジスタは全て２ポートレジスタとされている。
【００５４】
図８に示す構成では、選択信号がローレベルのときは図６に示す構成のときと同一の動作を行う。選択信号がハイレベルのときは、下位側レジスタに対してのみ４つのＰＥに同時にデータ転送を行う。
【００５５】
つまりこの場合、まず上位側レジスタ６Ｂに転送すべきデータを下位側レジスタ６Ａに転送する。下位側レジスタ６Ａへのデータ転送が終了したら、ＳＩＭＤ命令によって下位側レジスタ６Ａのデータを上位側レジスタ６Ｂに転送し、しかる後に下位側レジスタ６Ａに本来転送すべきデータを下位側レジスタ６Ａに転送する。このようにすれば、図６に示すＳＩＭＤ型マイクロプロセッサと、同じ結果の転送を実現できる。
【００５６】
図９は、本発明に係るメモリコントローラ７４のブロック図である。図９に示す外部インタフェース７０は、第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２に対応するものの一つであるが、外部インタフェース７０の構成は図９に示すものに限定されない。
【００５７】
メモリコントローラ７４は、メモリ７６にデータの書き込みを行うためのライトバッファ部８２、メモリ７６からデータの読み取りを行うためのリードバッファ部８６、ＰＥのレジスタファイル６０への制御を行う外部インタフェース制御部８８、メモリ７６への制御を行うＲＡＭ制御部８０、及びシーケンスユニット（ＳＣＵ）８４より構成されている。
【００５８】
メモリコントローラ７４は、ＳＩＭＤ型マイクロプロセッサ２のレジスタファイル６０と、外部インタフェース７０内のデータ転送ポートを介して接続され、レジスタファイル６０からメモリ７６へのデータ転送、及びメモリ７６からレジスタファイル６０へのデータ転送を行う。このデータ転送ポートは、出力ポートと入力ポートとを備える。また、メモリコントローラ７４が制御するレジスタ６はＩ／Ｏ空間にマッピングされており、グローバルプロセッサ３０からの指示に従ってレジスタ６に対するリード及びライトが行われる。
【００５９】
ライトバッファ部８２には、ＳＩＭＤ型マイクロプロセッサ２の外部インタフェース７０の出力ポートが接続される。リードバッファ部８６には、外部インタフェース７０の入力ポートが接続される。データ転送ポートは、それぞれ偶数番号ＰＥ用及び奇数番号ＰＥ用の入力ポート及び出力ポートを独立して有している。これにより、データ転送ポートは、１サイクルで一度に偶数番号と奇数番号の１組のＰＥ分のデータを、アクセスのために転送できるように構成されている。また、ライトバッファ部８２及びリードバッファ部８６と、メモリ７６との間のデータバスは、夫々４個のＰＥに相応するデータ幅で構成されており、１サイクルで一度に４個のＰＥに相応するデータをアクセスできる。尚、第２の実施形態においては、１個のＰＥに相応するデータは１６ビットとしている。従って、メモリコントローラ７４とメモリ７６間のビット幅は、６４ビットで構成される。
【００６０】
また、外部インタフェース７０と、ライトバッファ部８２及びリードバッファ部８６との間のデータバスのビット幅は３２ビットで構成される。この結果、外部インタフェース７０のデータ転送ポートとメモリコントローラ７４間のデータ転送を２回行う間に、メモリ７６とメモリコントローラ７４間のデータ転送を１回実行すればよいことになる。メモリコントローラ７４のライトバッファ部８２は、ＳＩＭＤ型マイクロプロセッサ２の外部インタフェース７０より出力されるデータを２回取り込み、４個のＰＥ分のデータに整形した後、メモリ７６に転送する動作を行う。また、リードバッファ部８６は、メモリ７６から読み出した４個のＰＥ分のデータを２回に分けて、ＳＩＭＤ型マイクロプロセッサ２の外部インタフェース７０に転送する動作を行う。
【００６１】
メモリコントローラ７４は、選択信号を外部インタフェース７０に対して出力している。レジスタ６のビット幅と同じビット幅のデータを転送する場合、メモリコントローラ７４は、選択信号をローレベルとし、レジスタ６を構成する上位側レジスタ及び下位側レジスタに、同時にデータ転送を行う。
【００６２】
レジスタ６のビット幅よりもビット幅の少ない（例えば半分の）データが、メモリ７６にパックされずに格納されている場合、メモリコントローラ７４は、メモリ７６に対して順次アクセスしてデータを取り出すのであるが、まずデータ（下位側）にデータ転送を行う（このとき、リード／ライト選択信号（下位側）のみ、又はリード／ライト選択信号（上位側）のみ、ローレベルをアサートする）。データ（下位側）へのデータの転送が終わったら、データ（上位側）へのデータ転送を行う（このとき、リード／ライト選択信号（下位側）のみ、又は、リード／ライト選択信号（上位側）のみ、ローレベルをアサートする）。これら転送の際には、選択信号をハイレベルとする。このような転送を全てのＰＥについて行う。
【００６３】
レジスタ６のビット幅よりもビット幅の少ない（例えば半分）データが、パックされた状態でレジスタ６に格納されていて、そのデータをメモリ７６にデータごとに書き込む場合も、上記と同様に下位側レジスタ６Ａと上位側レジスタ６Ｂに順次アクセスすればデータ転送が可能となる。
【００６４】
図１０に主走査方向の画素数が多い場合に、画像データをＳＩＭＤ処理単位で分割して処理する概念図を示している。画像処理においては、フィルタリングなどのように左右画素データを参照する処理が必ず含まれ、その際にＳＩＭＤ処理単位の端部には無効な画素データが生じることになる。このような無効画素データの対策として、データ転送の際には、ＳＩＭＤ処理単位の画像データを図１０のようにオーバラップさせて転送する必要がある。
【００６５】
画像データをＳＩＭＤ処理単位で分割して処理する際に、データをパックする場合、１ＳＩＭＤ目のデータ、３ＳＩＭＤ目のデータ、・・・は下位側レジスタに入り、２ＳＩＭＤ目のデータ、４ＳＩＭＤ目のデータ、・・・は上位側レジスタに入る。下位側に入るデータ（１ＳＩＭＤ目のデータ、３ＳＩＭＤ目のデータ、・・・）と上位側に入るデータ（２ＳＩＭＤ目のデータ、４ＳＩＭＤ目のデータ、・・・）が格納される位置を示すアドレスポインタは、図１１のように、上位側だけ、若しくは、下位側だけに着目すると不連続である。
【００６６】
従って、画像メモリを２ポートメモリにしてメモリからＰＥ内のレジスタへのデータ転送のバンド幅を広げようとしても、アドレスポインタの管理が難しくなる。さらに画像処理には、通常、変倍というデータ数が変動するようなデータ転送が存在する。この場合には上位側、下位側で並列してデータを転送することが不可能になってしまう。
【００６７】
それに比べて、本発明では、メモリに対してはオーバラップする２ＳＩＭＤ処理分のデータに順次アクセスするだけでよいので、上記のような問題は生じない。
【００６８】
［第３の実施形態］
図１２は、本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２’、メモリコントローラ７４（１）、７４（２）及びメモリ７６（１）、７６（２）の構成図である。本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２’、メモリコントローラ７４（１）、７４（２）及びメモリ７６（１）、７６（２）は、第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２’、メモリコントローラ７４（１）、７４（２）及びメモリ７６（１）、７６（２）と略同様のものである。従って、同一部位には同一の符号を付して、説明を省略する。
【００６９】
図１２では、本発明に係る外部インタフェース７０（１）、７０（２）を備えたマイクロプロセッサ２’に対して、メモリコントローラ７４（１）、７４（２）を２つ搭載し、片方のメモリコントローラ７４（２）が転送するデータを、他方のメモリコントローラ７４（１）のデータ転送の際の速度変換（拡大時の重複転送、縮小時の間欠転送）を制御するための制御信号として接続している構成を示している。本発明におけるメモリコントローラ７４（１）、７４（２）及び外部インタフェース７０（１）、７０（２）では、変倍の処理を行う場合でも、オーバラップする２ＳＩＭＤ処理分のデータをパックしてＰＥ内のレジスタ６へ転送することが可能であることは、これまでの説明から自明である。
【図面の簡単な説明】
【００７０】
【図１】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ、メモリコントローラ及びメモリの構成図である。
【図２】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサの構成図である。
【図３】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサの部分構成図である。
【図４】ＰＥ０に設けられるアドレスデコード・リード／ライトコントロール部（図４（１））と、ＰＥ１に設けられるアドレスデコード・リード／ライトコントロール部（図４（２））の回路図を示す。
【図５】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサの別の構成例の部分構成図である。
【図６】本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサの部分構成図である。
【図７】ＰＥ０、ＰＥ１に設けられるアドレスデコード・リード／ライトコントロール部（図７（１））と、ＰＥ２、ＰＥ３に設けられるアドレスデコード・リード／ライトコントロール部（図７（２））の回路図を示す。
【図８】本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサの別の構成例である。
【図９】本発明に係るメモリコントローラのブロック図である。
【図１０】主走査方向の画素数が多い場合に、画像データをＳＩＭＤ処理単位で分割して処理する概念図を示している。
【図１１】画像データをＳＩＭＤ処理単位で分割して処理する際に、データが格納される位置を示すアドレスポインタの状況を示す図である。
【図１２】本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ、メモリコントローラ及びメモリの構成図である。
【符号の説明】
【００７１】
２・・・ＳＩＭＤ型マイクロプロセッサ、４・・・プロセッサエレメント（ＰＥ）、６、８・・・レジスタ、６Ａ・・・下位側レジスタ、６Ｂ・・・上位側レジスタ、１４・・・演算部、１８、２４・・・ＡＬＵ（演算器）、３０・・・グローバルプロセッサ、７０・・・外部インタフェース、７４・・・メモリコントローラ、７６・・・メモリ、７８・・・アドレスデコード・リード／ライトコントロール部。
【図１】
2006350907.tif 000003
【図２】
2006350907.tif 000004
【図３】
2006350907.tif 000005
【図４】
2006350907.tif 000006
【図５】
2006350907.tif 000007
【図６】
2006350907.tif 000008
【図７】
2006350907.tif 000009
【図８】
2006350907.tif 000010
【図９】
2006350907.tif 000011
【図１０】
2006350907.tif 000012
【図１１】
2006350907.tif 000013
【図１２】
2006350907.tif 000014