(57)【要約】【課題】複数の画素データフォーマット変換を効率よく、かつ、回路規模の増大を抑えるように構成したＳＩＭＤ型マイクロプロセッサおよびＳＩＭＤ型マイクロプロセッサのデータ転送方法を提供する。【解決手段】ＳＩＭＤ型マイクロプロセッサ１に、一列に並べられた複数のＰＥ１０を接続する転送バス２０と、その転送バス２０を分割するスイッチ２１と、を備え、各ＰＥ１０には、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４と、Ｂ１変換レジスタ１５、Ｂ２変換レジスタ１６と、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４の格納内容を転送バス２０に出力する入出力回路２２、２３と、転送バス２０上のデータをＢ１変換レジスタ１５、Ｂ２変換レジスタ１６に格納する入出力回路２４、２５と、入出力回路２２、２３、２４、２５及びスイッチ２１をＰＥコントロール部３０からのデータにより制御するデコーダ２６と、を備える。【選択図】図３
2011107886.tif 000002
【特許請求の範囲】
【請求項１】
一列に並べられた複数のプロセッサエレメントと、前記プロセッサエレメントを制御するＰＥコントロール部と、を備えたＳＩＭＤ型マイクロプロセッサにおいて、
一列に並べられた複数の前記プロセッサエレメントを互いに接続するデータバスと、前記データバスを分割するスイッチと、を備え、
前記プロセッサエレメントには、データの送信元となる第１のレジスタと、データの受信先となる第２のレジスタと、前記第１のレジスタの格納内容を前記データバスに出力する出力制御手段と、前記データバス上のデータを前記第２のレジスタに格納する入力制御手段と、前記出力制御手段及び前記入力制御手段並びに前記スイッチを前記ＰＥコントロール部から出力されるデータにより制御する制御手段と、が設けられている
ことを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
前記スイッチが、一列に並べられた複数の前記プロセッサエレメントの中心から２のべき乗離れた位置の前記プロセッサエレメントに設けられていることを特徴とする請求項１に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項３】
前記制御手段が、一列に並べられた複数の前記プロセッサエレメントの所定の範囲に位置する前記プロセッサエレメント内の前記第１のレジスタに格納されているデータを、前記所定の範囲と異なる範囲に位置する複数の前記プロセッサエレメントの前記第２のレジスタに転送するように構成されていることを特徴とする請求項１または２に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項４】
前記制御手段が、一列に並べられた複数の前記プロセッサエレメントの両端部に位置する前記プロセッサエレメントを除く前記プロセッサエレメント内の前記第１のレジスタに格納されているデータを、前記第２のレジスタに転送するように構成されていることを特徴とする請求項１乃至３のうちいずれか一項に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項５】
前記制御手段が、一つの前記第１のレジスタに格納されているデータを一度に複数の前記第２のレジスタに転送するように構成されていることを特徴とする請求項１乃至４のうちいずれか一項に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項６】
前記制御手段が、全ての前記第１のレジスタのうち、予め定めた前記第１のレジスタに格納されているデータを前記第２のレジスタに転送するように構成されていることを特徴とする請求項１乃至５のうちいずれか一項に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項７】
データの送信元となる第１のレジスタとおよびデータの受信先となる第２のレジスタが設けられたプロセッサエレメントと、前記プロセッサエレメントを制御するＰＥコントロール部と、複数の前記プロセッサエレメントを接続するデータバスと、前記データバスを分割するスイッチと、を備え、複数の前記プロセッサエレメントが一列に並べられたＳＩＭＤ型マイクロプロセッサのデータ転送方法にであって、
前記複数のプロセッサエレメントの前記第１のレジスタに所定の並びで格納されているデータを、前記所定の並びと異なる並びで前記第２のレジスタに格納する際の各データ転送ごとの入力および出力間での前記データバスの使用範囲を決定する第一の工程と、
前記第一の工程で決定した前記データバスの使用範囲のうち、最も長い使用範囲のデータ転送を選択し、そのデータ転送の前記データバスの使用範囲以外を使用する前記データ転送のうち、前記データバスの使用範囲が最も長い前記データ転送を選択し、これらのデータ転送を一つの組合せとする第二の工程と、
残りのデータ転送の中から前記データバスの使用範囲が最も長い前記データ転送を選択し、そのデータ転送の前記データバスの使用範囲以外を使用する前記データ転送のうち、前記データバスの使用範囲が最も長い前記データ転送を選択し、これらのデータ転送を一つの組合せとする第三の工程と、
前記第三の工程を繰り返し、全てのデータ転送の組合せを確定する第四の工程と、
確定した組合せにおけるデータバスの使用範囲の間に前記スイッチによる前記データバスの分割点を定める第五の工程と、
前記第五の工程で定めた分割点で前記スイッチを動作させ、前記第四の工程で確定した各データ転送の組み合わせを順次実行する第六の工程と、
を備えることを特徴とするＳＩＭＤ型マイクロプロセッサのデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つの演算命令により複数のデータ等を並列処理するＳＩＭＤ（Single Instruction-stream, Multiple Data-stream）型マイクロプロセッサおよびＳＩＭＤ型マイクロプロセッサのデータ転送方法に関する。
【背景技術】
【０００２】
画像処理専用マイクロプロセッサでは、ＳＩＭＤ（Single Instruction-stream Multiple Data-stream）型を採用することが多い。これは、１つの命令で複数のデータに対して同時に同じ演算処理が実行可能であるＳＩＭＤ型マイクロプロセッサの特徴が画像処理に適しているためである。ＳＩＭＤ型マイクロプロセッサは、プロセッサエレメント（以下ＰＥ）と呼ばれる単位で演算器とレジスタを備えており、そのＰＥを複数個持ち、複数個のＰＥが同時に演算処理を行うことで、画像処理の効率を高めている。各ＰＥは、それぞれが１個の画素の画像処理を担当し、それが複数あるため複数の画素が同時に演算処理できる。
【０００３】
画像処理専用マイクロプロセッサでは、フィルター演算など隣接画素を参照して演算する画像処理に対応するために、隣接ＰＥのレジスタを参照できるものがある。例えば、特許文献１には、隣接ＰＥのレジスタに格納された画素データを参照するＳＩＭＤ型マイクロプロセッサが示されている。この隣接ＰＥのレジスタに格納された画素データを参照するとは、隣接する画素データを隣接するＰＥのレジスタに格納しておくということを意味しており、画素データの並びをＰＥの並びに対応させ配置することである。ＰＥを１次元的に配置するＳＩＭＤ型マイクロプロセッサの場合、２次元で表現される画素データの１次元方向が、ＰＥの並びに合わせて配置される。例えば、６４個のＰＥを備えるＳＩＭＤ型マイクロプロセッサでは、６４個の連続した画素データが配置される。
【０００４】
特許文献２には、１ＰＥに対し２個以上の画像データを配置するＳＩＭＤ型マイクロプロセッサが提案されており、５通りの配置方法が示されている。このうち、特許文献２の図８、図９、図１０で示される３通りについては処理対象の画像データからの切り出し方法が異なるが、ＳＩＭＤ型マイクロプロセッサ上の配置は同一であるので、実質的に３通りの配置方法（以下画素データフォーマット）があると考えられる。
【０００５】
ここで、以下に説明する３通りの画素データフォーマットには一般名称がないため、以下αフォーマット、βフォーマット、γフォーマットと呼び、一例として３２個のＰＥを備え、一つのＰＥにつき２個ずつの画素データを配置することができるＳＩＭＤ型マイクロプロセッサで各フォーマットの特徴を説明する。
【０００６】
図２１にαフォーマットを示す。αフォーマットは、６４個の連続した画素データＤ０〜Ｄ６３が対象で、画素データＤ０，Ｄ１をプロセッサエレメントＰＥ００に、画素データＤ２，Ｄ３をプロセッサエレメントＰＥ０１に、画素データＤ４，Ｄ５をプロセッサエレメントＰＥ０２に、・・・、画素データＤ６２，Ｄ６３をプロセッサエレメントＰＥ３１に、それぞれ配置する。
【０００７】
図２２にβフォーマットを示す。βフォーマットは、６４個の連続した画素データＤ０〜Ｄ６３が対象で、画素データＤ０，Ｄ３２をプロセッサエレメントＰＥ００に、画素データＤ１，Ｄ３３をプロセッサエレメントＰＥ０１に、画素データＤ２，Ｄ３４をプロセッサエレメントＰＥ０２に、・・・、画素データＤ３１，Ｄ６３をプロセッサエレメントＰＥ３１に、それぞれ配置する。
【０００８】
図２３にγフォーマットを示す。γフォーマットは、３２個の連続した画素データＤａ００〜Ｄａ３１と３２個の連続した画素データＤｂ００〜Ｄｂ３１とが対象で、画素データＤａ００，Ｄｂ００をプロセッサエレメントＰＥ００に、画素データＤａ０１，Ｄｂ０１をプロセッサエレメントＰＥ０１に、画素データＤａ０２，Ｄｂ０２をプロセッサエレメントＰＥ０２に、・・・、画素データＤａ３１，Ｄｂ３１をプロセッサエレメントＰＥ３１に、それぞれ配置する。
【０００９】
各画素データフォーマットには特徴があり、画像処理の種類、ＳＩＭＤ型マイクロプロセッサへの画像データ出力装置の構成都合などの要因から最適な画素データフォーマットを選択し、選択された画素データフォーマットを前提としたシステム構成とすればよい。
【００１０】
上述した複数の画素データフォーマットを取り扱うＳＩＭＤ型マイクロプロセッサも実現可能であり、画素データフォーマットの違いによる動作の違いは、モード切替による命令解釈の差とするか、命令そのものを画素データフォーマット毎に用意するかといった対応方法がある。
【００１１】
また、ＰＥ上のレジスタと外部のメモリの間で画素データを転送する入出力装置や、ＳＩＭＤ型マイクロプロセッサが得意としないシリアル画像処理を専用に実行する外部画像処理装置も、ＳＩＭＤ型マイクロプロセッサ上の画素データフォーマットに従う必要があるが、このようなプロセッサ周辺装置の場合、ＩＰ（Intellectual Property：設計資産）として再利用する方法が多用される。
【００１２】
この場合、開発時に存在するＩＰが、目的の画素データフォーマットに対応していれば問題はないが、対応していない場合には、直接的にそのＩＰを使うことができない。周辺装置側で対応するには、ＩＰの改造か、あるいはＩＰを諦めて新規設計となる。また、目的の画素データフォーマットとそのフォーマットを処理する装置ではアルゴリズムとして相性が悪い場合は、新規設計であっても、開発工数以外に回路規模の増大や処理性能のダウンなどといった問題がある。
【００１３】
同様のことがソフトウエアでも考えられ、既存の画像処理ソフトウエアを再利用において、ソフトウエアの前提とする画素データフォーマットと、システム側で予定している画素データフォーマットが異なる場合が考えられる。ソフトウエアで対応するには、ソフトウエアの改造か、あるいはソフトウエアを諦めて新規プログラミングとなる。目的の画素データフォーマットとそのフォーマットを処理するソフトウエアではアルゴリズムとして相性が悪い場合は、新規プログラミングであっても、プログラミング工数以外にプログラムコードサイズの増大や処理性能のダウンなどといった問題がある。
【００１４】
このような問題があるため、複数の画素データフォーマットに対応するシステムを実現するためには、異なる画素データフォーマット間を変換できる手段が必要である。このフォーマット変換の目的のために、ＳＩＭＤ型マイクロプロセッサ外部にフォーマット変換装置を装備する方法がある。この装置は、例えば、ＰＥ上のレジスタに展開する画素データを、一度外部ＲＡＭに読み出し、再びＲＡＭからＰＥ上のレジスタに所望の画素データフォーマットで書き込むという動作を行う構成がある。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述したフォーマット変換装置を利用できれば、画素データフォーマット相互間の変換が可能になり、異なる画素データフォーマットに対応した周辺装置やソフトウエアであっても、同一システム上に実現可能となる。
【００１６】
しかしながら、変換装置や画素データの一時記憶用のＲＡＭが別途必要となるなど、相応の負荷が発生するという問題がある。そのため、ＳＩＭＤ型マイクロプロセッサ外部にフォーマット変換装置を持つことなく、ＳＩＭＤ型マイクロプロセッサ内部で画素データフォーマットの変換が可能な技術が求められている。
【００１７】
ＳＩＭＤ型マイクロプロセッサ内部で画素データフォーマット変換を実現する場合、単純に考えられるのは、変換に必要なすべての経路を備えることである。図２４にαフォーマットからβフォーマットへのフォーマット変換の例を示す。図２４の左方がαフォーマットで配置された変換前のレジスタで、ここでは送信元レジスタとなる。図２４の右方がβフォーマットで配置された変換後のレジスタで、ここでは受信先レジスタとなる。中央部に示された矢印が転送経路であり、黒丸印が送信元、矢先が受信先を示す。経路の実線は偶数番号の画素データの経路で、破線は奇数番号の画素データの経路を示している。
【００１８】
この変換を一度に行う場合は図２４に示す経路すべてが必要となり、回路規模が増大するという問題がある。図２４ではαフォーマットからβフォーマットへの例であるが、逆の変換であるβフォーマットからαフォーマットの変換も同じ経路を画素データが逆に転送されるだけで、回路規模としては同等であり、やはり回路規模が増大する問題がある。
【００１９】
回路規模を抑える方法として、ひとつの万能転送経路を用意し、転送を複数ステップに分けて実行する方法がある。図２５に万能転送経路を示す。図２５の万能転送経路１００は、すべての送信元レジスタ１０１から出力でき、すべての受信先レジスタ１０２へ入力できる。これら出力、入力の制御は、制御回路１０３から一元的に行うことで、１回で１個のデータを所望の位置へ転送することが可能になる。したがって６４個のデータを転送するには、６４ステップが必要となる。
【００２０】
この万能転送経路１００を２重に配置し、１回の転送時間で２個の画素データを転送するという手段を用いれば、必要回路規模は倍増するが、全転送が終了するために必要なステップ数が半減できる。このように回路規模と得られる性能にはトレードオフが成立しており、ＳＩＭＤ型マイクロプロセッサの特徴に合わせて決定するものである。したがって、より優秀なＳＩＭＤ型マイクロプロセッサを実現するためには、上記のトレードオフをより高次元に実現することが求められている。
【００２１】
本発明はかかる問題を解決することを目的としている。
【００２２】
すなわち、本発明は、複数の画素データフォーマット変換を効率よく、かつ、回路規模の増大を抑えるように構成したＳＩＭＤ型マイクロプロセッサおよびＳＩＭＤ型マイクロプロセッサのデータ転送方法を提供することを目的としている。
【課題を解決するための手段】
【００２３】
請求項１に記載された発明は、一列に並べられた複数のプロセッサエレメントと、前記プロセッサエレメントを制御するＰＥコントロール部と、を備えたＳＩＭＤ型マイクロプロセッサにおいて、一列に並べられた複数の前記プロセッサエレメントを互いに接続するデータバスと、前記データバスを分割するスイッチと、を備え、前記プロセッサエレメントには、データの送信元となる第１のレジスタと、データの受信先となる第２のレジスタと、前記第１のレジスタの格納内容を前記データバスに出力する出力制御手段と、前記データバス上のデータを前記第２のレジスタに格納する入力制御手段と、前記出力制御手段及び前記入力制御手段並びに前記スイッチを前記ＰＥコントロール部から出力されるデータにより制御する制御手段と、が設けられていることを特徴とするＳＩＭＤ型マイクロプロセッサである。
【００２４】
請求項２に記載された発明は、請求項１に記載された発明において、前記スイッチが、一列に並べられた複数の前記プロセッサエレメントの中心から２のべき乗離れた位置の前記プロセッサエレメントに設けられていることを特徴とする。
【００２５】
請求項３に記載された発明は、請求項１または２に記載された発明において、前記制御手段が、一列に並べられた複数の前記プロセッサエレメントの所定の範囲に位置する前記プロセッサエレメント内の前記第１のレジスタに格納されているデータを、前記所定の範囲と異なる範囲に位置する複数の前記プロセッサエレメントの前記第２のレジスタに転送するように構成されていることを特徴とする。
【００２６】
請求項４に記載された発明は、請求項１乃至３のうちいずれか一項に記載された発明において、前記制御手段が、一列に並べられた複数の前記プロセッサエレメントの両端部に位置する前記プロセッサエレメントを除く前記プロセッサエレメント内の前記第１のレジスタに格納されているデータを、前記第２のレジスタに転送するように構成されていることを特徴とする。
【００２７】
請求項５に記載された発明は、請求項１乃至４のうちいずれか一項に記載された発明において、前記制御手段が、一つの前記第１のレジスタに格納されているデータを一度に複数の前記第２のレジスタに転送するように構成されていることを特徴とする。
【００２８】
請求項６に記載された発明は、請求項１乃至５のうちいずれか一項に記載された発明において、前記制御手段が、全ての前記第１のレジスタのうち、予め定めた前記第１のレジスタに格納されているデータを前記第２のレジスタに転送するように構成されていることを特徴とする。
【００２９】
請求項７に記載された発明は、データの送信元となる第１のレジスタとおよびデータの受信先となる第２のレジスタが設けられたプロセッサエレメントと、前記プロセッサエレメントを制御するＰＥコントロール部と、複数の前記プロセッサエレメントを接続するデータバスと、前記データバスを分割するスイッチと、を備え、複数の前記プロセッサエレメントが一列に並べられたＳＩＭＤ型マイクロプロセッサのデータ転送方法にであって、前記複数のプロセッサエレメントの前記第１のレジスタに所定の並びで格納されているデータを、前記所定の並びと異なる並びで前記第２のレジスタに格納する際の各データ転送ごとの入力および出力間での前記データバスの使用範囲を決定する第一の工程と、前記第一の工程で決定した前記データバスの使用範囲のうち、最も長い使用範囲のデータ転送を選択し、そのデータ転送の前記データバスの使用範囲以外を使用する前記データ転送のうち、前記データバスの使用範囲が最も長い前記データ転送を選択し、これらのデータ転送を一つの組合せとする第二の工程と、 残りのデータ転送の中から前記データバスの使用範囲が最も長い前記データ転送を選択し、そのデータ転送の前記データバスの使用範囲以外を使用する前記データ転送のうち、前記データバスの使用範囲が最も長い前記データ転送を選択し、これらのデータ転送を一つの組合せとする第三の工程と、前記第三の工程を繰り返し、全てのデータ転送の組合せを確定する第四の工程と、確定した組合せにおけるデータバスの使用範囲の間に前記スイッチによる前記データバスの分割点を定める第五の工程と、前記第五の工程で定めた分割点で前記スイッチを動作させ、前記第四の工程で確定した各データ転送の組み合わせを順次実行する第六の工程と、を備えることを特徴とするＳＩＭＤ型マイクロプロセッサのデータ転送方法である。
【発明の効果】
【００３０】
請求項１に記載の発明によれば、ＳＩＭＤ型マイクロプロセッサに、一列に並べられた複数のプロセッサエレメントを互いに接続するデータバスと、そのデータバスを分割するスイッチと、を備え、各プロセッサエレメントには、データの送信元となる第１のレジスタと、データの受信先となる第２のレジスタと、第１のレジスタの格納内容をデータバスに出力する出力制御手段と、データバス上のデータを第２のレジスタに格納する入力制御手段と、出力制御手段及び入力制御手段並びにスイッチをＰＥコントロール部から出力されるデータにより制御する制御手段と、が設けられているので、１つのデータバスで複数データを一度に転送可能であり、全転送が終了するまでの時間を短縮できる。また、各プロセッサエレメントには、第１のレジスタの格納内容をデータバスに出力、データバス上のデータを第２のレジスタに格納、バス分割用のスイッチの制御を統一して行うデコーダがあるので、ＰＥコントロール部から制御は各ＰＥのデコーダに対し、１種類の情報を伝達するだけでよく、回路規模、配線面積で有利である。したがって、複数の画素データフォーマット変換を行う機能を効率よく、かつ、回路規模の増大を抑えるように構成することができる。
【００３１】
請求項２に記載の発明によれば、スイッチが、一列に並べられた複数のプロセッサエレメントの中心から２のべき乗離れた位置のプロセッサエレメントに設けられているので、データバス上でデータが通過するスイッチの数を削減できるため、データの転送に対して伝達速度や信号品質面で有利であり、ＳＩＭＤ型マイクロプロセッサ全体の性能向上や安定動作に繋げることができる。
【００３２】
請求項３に記載の発明によれば、一列に並べられた複数のプロセッサエレメントの所定の範囲に位置するプロセッサエレメント内の第１のレジスタに格納されているデータを、所定の範囲と異なる範囲に位置する複数のプロセッサエレメントの第２のレジスタに転送するように構成されているので、異なる画像データ配置に変換する場合の画素データ列の両端に発生する無効画素を考慮した重複転送を容易に行うことができる。
【００３３】
請求項４に記載の発明によれば、制御手段が、一列に並べられた複数のプロセッサエレメントの両端部に位置するプロセッサエレメントを除くプロセッサエレメント内の第１のレジスタに格納されているデータを、第２のレジスタに転送するように構成されているので、異なる画像データ配置に変換する場合の画素データ列の両端に発生する無効画素を考慮して必要なデータのみの転送を容易に行うことができる。
【００３４】
請求項５に記載の発明によれば、制御手段が、一つの第１のレジスタに格納されているデータを一度に複数の第２のレジスタに転送するように構成されているので、例えば、画像の拡大処理を容易に行うことができる。
【００３５】
請求項６に記載の発明によれば、制御手段が、全ての第１のレジスタのうち、予め定めた第１のレジスタに格納されているデータを第２のレジスタに転送するように構成されているので、例えば、画像の縮小処理を容易に行うことができる。
【００３６】
請求項７に記載の発明によれば、データ転送する組合せを、データバスの使用範囲が長い順に決定しているので、同時に転送動作する複数の転送元の第１のレジスタと、複数の転送先の第２のレジスタと、データバスを分割するスイッチと、を効率よく選択して組合せることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサの構成図である。
【図２】図１に示したＰＥ群の構成図である。
【図３】図１に示したＰＥ群内の転送バスの構成図である。
【図４】図３に示した転送バスにおけるαフォーマットからβフォーマットへの変換ステップの説明図である。
【図５】図４に示された変換ステップを実行するためのデコーダの条件を示す表である。
【図６】図３に示した転送バスにおけるβフォーマットからαフォーマットへの変換ステップの説明図である。
【図７】図４に示された変換ステップを実行するためのデコーダの条件を示す表である。
【図８】本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサのＰＥ群内の転送バスの構成図である。
【図９】図８に示した転送バスにおけるαフォーマットからβフォーマットへの変換ステップの説明図である。
【図１０】図９に示された変換ステップを実行するためのデコーダの条件を示す表である。
【図１１】本発明の第３の実施形態におけるαフォーマットからγフォーマットへの変換ステップの説明図である。
【図１２】図１１に示された変換ステップを実行するためのデコーダの条件を示す表である。
【図１３】γフォーマットからαフォーマットへの変換ステップの説明図である。
【図１４】図１３に示された変換ステップを実行するためのデコーダの条件を示す表である。
【図１５】本発明の第４の実施形態におけるαフォーマットでの２倍拡大動作の変換ステップの説明図である。
【図１６】βフォーマットでの２倍拡大動作の変換ステップの説明図である。
【図１７】本発明の第５の実施形態におけるαフォーマットでの１／２縮小動作の変換ステップの説明図である。
【図１８】βフォーマットでの１／２縮小動作の変換ステップの説明図である。
【図１９】転送バスを複数備えた場合のＰＥ群内の構成図である。
【図２０】１９に示された転送バスを用いた場合のαフォーマットからβフォーマットへの変換ステップの説明図である。
【図２１】αフォーマットの説明図である。
【図２２】βフォーマットの説明図である。
【図２３】γフォーマットの説明図である。
【図２４】従来のαフォーマットからβフォーマットへの変換ステップの説明図である。
【図２５】従来の万能転送経路を用いた構成の説明図である。
【発明を実施するための形態】
【００３８】
［第１実施形態］
以下、本発明の第１の実施形態を、図１ないし図７を参照して説明する。図１は、本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサの構成図である。図２は、図１に示したＰＥ群の構成図である。図３は、図１に示したＰＥ群内の転送バスの構成図である。図４は、図３に示した転送バスにおけるαフォーマットからβフォーマットへの変換ステップの説明図である。図５は、図４に示された変換ステップを実行するためのデコーダの条件を示す表である。図６は、図３に示した転送バスにおけるβフォーマットからαフォーマットへの変換ステップの説明図である。図７は、図４に示された変換ステップを実行するためのデコーダの条件を示す表である。
【００３９】
図１に本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサ１を示す。図１に示したＳＩＭＤ型マイクロプロセッサ１は、グローバルプロセッサ２と、プロセッサエレメント（ＰＥ）群３と、外部インタフェース６と、を備えている。
【００４０】
グローバルプロセッサ２は、プログラムを読み込み実行する独立のプロセッサであると同時に、各々のＰＥ群３内の各ＰＥ１０に対し動作の指示を出すコントローラである。グローバルプロセッサ２には、Ｇ０、Ｇ１、Ｇ２、Ｇ３、ＳＰ、ＰＣ、ＬＳ、ＬＩ、ＬＮ、Ｐといった各種レジスタ、プログラムを格納するＰｒｏｇｒａｍ−ＲＡＭ、及びデータを一時格納するＤａｔａ−ＲＡＭなどが装備されている。
【００４１】
ＰＥ群３は複数のＰＥ１０が一列に並んだ配列体（集合体）であり、後述するように各ＰＥ１０のレジスタがレジスタファイル４に属しており、各ＰＥ１０の演算器１９が演算アレイ５に属している。
【００４２】
外部インタフェース６は、レジスタファイル４に格納されているデータを周辺装置７に出力したり、周辺装置７から入力されたデータをレジスタファイル４に格納したりする。
【００４３】
周辺装置７は、例えばメモリ８の制御装置であり、メモリ８へのデータの読み書きなどのアクセス制御を行う。
【００４４】
図２にＰＥ群３の構成例を示す。図２には、１つのＰＥ１０と、そのＰＥ１０を制御するＰＥコントロール部３０を示している。このＰＥ１０は通常複数個が実装されており、図２では、そのうちの１つを代表として図示しているものである。
【００４５】
また、ＰＥ群３に設けられている全てのＰＥ１０は、データバスとしての転送バス２０によってＰＥコントロール部３０と接続されている。転送バス２０は、図２に示すようにＰＥ１０を横切り、ＰＥ１０と隣接するＰＥ１０へと接続されている。この転送バス２０は、他のＰＥ１０と同様に図示していないが、すべてのＰＥ１０を貫通するバスである。
【００４６】
ＰＥ１０には、転送バス２０を分割するスイッチ２１が設けられている。スイッチ２１は、後述するデコーダ２６によって開閉されて、転送バス２０の分割が制御される。
【００４７】
ＰＥ１０は、汎用レジスタ１１、結果レジスタ１２、第１のレジスタとしてのＡ１変換レジスタ１３、第１のレジスタとしてのＡ２変換レジスタ１４、第２のレジスタとしてのＢ１変換レジスタ１５、第２のレジスタとしてのＢ２変換レジスタ１６などの複数のレジスタと、演算器１９と、スイッチ２１と、入力制御手段、出力制御手段としての入出力回路２２、２３、２４、２５と、制御手段としてのデコーダ２６と、を備えている。
【００４８】
汎用レジスタ１１は、外部インタフェース６からのアクセスによってデータが読み書きされるレジスタであり、図１のレジスタファイル４に属する。結果レジスタ１２は、演算器１９の演算結果が格納されるレジスタである。
【００４９】
Ａ１変換レジスタ１３、Ａ２変換レジスタ１４は、後述する画素データフォーマット変換動作にデータ送信元として機能するレジスタである。Ｂ１変換レジスタ１５、Ｂ２変換レジスタ１６は、後述する画素データフォーマット変換動作にデータ受信先として機能するレジスタである。
【００５０】
上述した汎用レジスタ１１、結果レジスタ１２、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４、Ｂ１変換レジスタ１５、Ｂ２変換レジスタ１６は、ＰＥ内部データバス１７と１８に対してデータの入出力が可能となっている。ここで、データの入力とは、ＰＥ内部データバス１７、１８上のデータ内容をレジスタ内部に格納することであり、データの出力とは、レジスタ内部のデータ内容をＰＥ内部データバス１７、１８上に出力することを意味する。
【００５１】
演算器１９は、ＰＥ内部データバス１７と１８からデータを入力し、演算を実行し、その結果を結果レジスタ１２に格納する。
【００５２】
入出力回路２２は、転送バス２０からＡ１変換レジスタ１３へのデータの入力と出力とを切替えるための回路であり、デコーダ２６によって入力と出力の切替えが制御される。入出力回路２３は、転送バス２０からＡ２変換レジスタ１４へのデータの入力と出力とを切替えるための回路であり、デコーダ２６によって入力と出力の切替えが制御される。入出力回路２４は、転送バス２０からＢ１変換レジスタ１５へのデータの入力と出力とを切替えるための回路であり、デコーダ２６によって入力と出力の切替えが制御される。入出力回路２５は、転送バス２０からＢ２変換レジスタ１６へのデータの入力と出力とを切替えるための回路であり、デコーダ２６によって入力と出力の切替えが制御される。
【００５３】
デコーダ２６は、入出力回路２２、２３、２４、２５およびスイッチ２１の制御信号を生成する。また、デコーダ２６は、ＰＥコントロール部３０から制御信号線３１が接続されている。この制御信号線３１には、後述するステップ数を表す５ｂｉｔの制御信号がＰＥコントロール部３０から出力され、その信号によって入出力回路２２、２３、２４、２５およびスイッチ２１の制御信号が生成される。
【００５４】
ＰＥコントロール部３０は、グローバルプロセッサ２からの信号を受けて、全てのＰＥ１０の動作をコントロールする制御信号を発信しており、ＰＥ１０はその制御信号に従って動作する。なお、ＰＥコントロール部３０は、ＰＥ群３内でなくグローバルプロセッサ２と一体的に構成されていても良い。
【００５５】
次に、転送バス２０の全体の構成を説明するために３２個のＰＥ１０を一列に配置した構成を図３に示す。図３は、図２で示されたＰＥ１０であるＰＥ１０＿００〜ＰＥ１０＿３１と、それらを貫通して配置されている転送バス２０を中心に図示している。ＰＥ１０は、ＰＥ１０＿００を１番目（図３の最上方）に、ＰＥ１０＿０１を２番目に、ＰＥ１０＿０２を３番目に、…、ＰＥ１０＿３１を３２番目（図３の最下方）となるよう配置しているが、中間のＰＥ１０の一部は、紙面の関係で省略している。
【００５６】
各ＰＥ１０においては、以下の説明に必要な、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４、Ｂ１変換レジスタ１５、Ｂ２変換レジスタ１６と、入出力回路２２、２３、２４、２５と、スイッチ２１と、を除いて省略している。
【００５７】
また、図３において、ＰＥ１０には、スイッチ２１を持つＰＥ１０と、持たないＰＥ１０の２種類がある。ＰＥ１０＿０８乃至ＰＥ１０＿２３はスイッチ２１を持つＰＥ１０であり、それ以外はスイッチ２１を持たないＰＥ１０である。また、スイッチ２１で切断（分割）された転送バス２０のうち、当該ＰＥ１０のスイッチ２１から見て図３の上側に位置する部分を転送バス２０上、図３の下側に位置する部分を転送バス２０下と呼ぶことにする。また、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４、Ｂ１変換レジスタ１５、Ｂ２変換レジスタ１６内に括弧付きで表示されている文字は、格納されるデータを表している。
【００５８】
次に、図２、図３で示されたＳＩＭＤ型マイクロプロセッサ１のＰＥ群３における画素データフォーマット変換動作を説明する。まず、図２１に示したαフォーマットから、図２２に示したβフォーマットへの変換を説明する。αフォーマットとして、６４個の連続した画素データをＤ００〜Ｄ６３とし、それぞれをＡ１変換レジスタ１３あるいはＡ２変換レジスタ１４に格納する。即ち、画素データＤ００をＰＥ１０＿００のＡ１変換レジスタ１３に、画素データＤ０１をＰＥ１０＿００のＡ２変換レジスタ１４に、画素データＤ０２をＰＥ１０＿０１のＡ１変換レジスタ１３に、画素データＤ０３をＰＥ１０＿０１のＡ２変換レジスタ１４に、画素データＤ０４をＰＥ＿０２のＡ１変換レジスタ１３に、画素データＤ０５をＰＥ１０＿０２のＡ２変換レジスタ１３に、・・・、画素データＤ６２をＰＥ１０＿３１のＡ１変換レジスタ１３に、画素データＤ６３をＰＥ１０＿３１のＡ２変換レジスタ１４に格納している。
【００５９】
このαフォーマットを３２ステップに分けてβフォーマットへ画素データフォーマットの変換を行う。各ステップを模式的に表現した図４に示す。ＰＥ１０が上からＰＥ１０＿００〜ＰＥ１０＿３１の順に表示されている。図４の左側欄にはＡ１変換レジスタ１３，Ａ２変換レジスタ１４を示しており、画素データＤ００〜Ｄ６３を変換前のαフォーマットで格納されている。中央欄の表示は、各ステップにおけるデータの転送を示している。縦同一列の矢印は同時に動作するステップを意味している。左から第１のステップ、第２のステップ、・・・、第３２のステップの順である。黒丸印が送信元、矢先が受信先を示す。経路の実線は偶数番号のデータ経路で、破線は奇数番号のデータ経路を示している。中央欄の中間付近に表示している短い水平方向の線分は、スイッチ２１による転送バスの切断箇所を示している。また、中央欄上下の目盛はステップ数を示している。右側欄にはＢ１変換レジスタ１５，Ｂ２変換レジスタ１６を示しており、画素データＤ００〜Ｄ６３が変換後のβフォーマットで格納されている。以下に各ステップ毎の具体的な動作内容を抜粋して示す。
【００６０】
第１のステップは、ＰＥ１０＿０８のスイッチ２１で転送バス２０を切断し、そのほかのスイッチ２１はすべて接続状態とする。次に、ＰＥ１０＿００のＡ１変換レジスタ１３の画素データＤ００を、転送バス２０上を経て、ＰＥ１０＿００のＢ１変換レジスタ１５へ転送する。そして、ＰＥ１０＿０８のＡ１変換レジスタ１３の画素データＤ１６を、転送バス２０下を経て、ＰＥ１０＿１６のＢ１変換レジスタ１５へ転送する。
【００６１】
第２のステップは、ＰＥ１０＿０８のスイッチ２１で転送バス２０を切断し、そのほかのスイッチ２１はすべて接続状態とする。次に、ＰＥ１０＿００のＡ２変換レジスタ１４の画素データＤ０１を、転送バス２０上を経て、ＰＥ１０＿０１のＢ１変換レジスタ１５へ転送する。そして、ＰＥ１０＿０８のＡ２変換レジスタ１４の画素データＤ１７を、転送バス２０下を経て、ＰＥ１０＿１７のＢ１変換レジスタ１５へ転送する。
【００６２】
第３のステップは、ＰＥ１０＿０９のスイッチ２１で転送バス２０を切断し、そのほかのスイッチ２１はすべて接続状態とする。次に、ＰＥ１０＿０１のＡ１変換レジスタ１３の画素データＤ０２を、転送バス２０上を経て、ＰＥ１０＿０２のＢ１変換レジスタ１５へ転送する。そして、ＰＥ１０＿０９のＡ１変換レジスタ１３の画素データＤ１８を、転送バス２０下を経て、ＰＥ１０＿１８のＢ１変換レジスタ１５へ転送する。
【００６３】
第４〜第３１のステップは、上述した第１〜第３のステップと同じ要領でスイッチ２１を切替えて１ステップに付き２つのデータ転送を行い、最後の第３２のステップは、ＰＥ１０＿２３スイッチ２１で転送バス２０を切断し、そのほかのスイッチ２１はすべて接続状態とする。次に、ＰＥ１０＿２３のＡ２変換レジスタ１４の画素データＤ４７を、転送バス２０上を経て、ＰＥ１０＿１５のＢ２変換レジスタ１６へ転送する。そして、ＰＥ１０＿３１のＡ２変換レジスタ１４の画素データＤ６３を、転送バス２０下を経て、ＰＥ１０＿３１のＢ２変換レジスタ１６へ転送する。
【００６４】
上述した画素データフォーマット変換の結果、ＰＥ１０＿００のＢ１変換レジスタ１５には画素データＤ００、ＰＥ１０＿０１のＢ１変換レジスタ１５には画素データＤ０１、ＰＥ１０＿０２のＢ１変換レジスタ１５には画素データＤ０２、・・・、ＰＥ１０＿３０のＢ１変換レジスタ１５には画素データＤ３０、ＰＥ１０＿３１のＢ１変換レジスタ１５には画素データＤ３１、ＰＥ１０＿００のＢ２変換レジスタ１６には画素データＤ３２、ＰＥ＿０１のＢ２変換レジスタ１６には画素データＤ３３、・・・、ＰＥ１０＿３０のＢ２変換レジスタ１６には画素データＤ６２、ＰＥ１０＿３１のＢ２変換レジスタ１６には画素データＤ６３、がそれぞれ配置されている。即ち、これはβフォーマットのデータ配置である。なお、画素データＤ０〜Ｄ３１と画素データＤ３２〜Ｄ６３が別の独立したデータ列として以降の処理を行う場合は、変換後のフォーマットはγフォーマットのデータ配置として考えることもできる。
【００６５】
図１０より、αフォーマットからβフォーマットへ変換するための全経路が用意されていることがわかる。また、転送バス２０は１組であるが、６４ステップを要することなく、半分のステップ数で実現できている。
【００６６】
次に、このような動作を行うための制御方法について説明する。最初の第１のステップから、最後の第３２のステップで説明したように、各ＰＥ１０に対する指示は５つの要素を含んでいる。即ち、
（１）スイッチ２１での転送バス２０の切断箇所指定。
（２）転送バス２０上の経路に対する出力ＰＥ１０の指定。
（３）転送バス２０上の経路に対する入力ＰＥ１０の指定。
（４）転送バス２０下の経路に対する出力ＰＥ１０の指定。
（５）転送バス２０下の経路に対する入力ＰＥ１０の指定。
の５つである。これらの指示は図２におけるＰＥコントロール部３０から制御信号線３１を介して発信される。本実施形態では図２に示したように、ＰＥ１０にはデコーダ２６が備えられており、スイッチ２１と、入出力回路２２、２３、２４、２５と、の制御を行う。つまり、前述の（１）がスイッチ２１の制御に相当し、前述の（２）、（４）が入出力回路２２、２３の制御に相当し、前述の（３）、（５）が入出力回路２４、２５の制御に相当する。そして、本実施形態において、αフォーマットからβフォーマットに変換する動作を実行するためには、制御信号線３１にはステップ数を示す５ｂｉｔの信号をＰＥコントロール部３０から発信することで前記（１）〜（５）の要素を全て指定することができる。
【００６７】
この５ｂｉｔの信号を、Ｎ［４：０］と表現する。２進数を表す記号であるｂを数値の後に付けて表現すると、Ｎ＝０００００ｂは第１のステップを表し、Ｎ＝００００１ｂは第２のステップを表し、Ｎ＝０００１０ｂは第３のステップを表し、Ｎ＝０００１１ｂは第４のステップを表し、・・・、Ｎ＝１１１１１ｂは第３２のステップを表す。
【００６８】
したがって、デコーダ２６は、このＮ［４：０］を入力情報として、前述の５つの指定信号を出力情報としている。出力情報と入力情報の関係式は次の通りである。
（１ａ）スイッチ２１での転送バス２０の切断箇所指定は、｛Ｎ［４］，〜Ｎ［４］，Ｎ［３］，Ｎ［２］，Ｎ［１］｝。
（２ａ）転送バス２０上の経路に対する出力ＰＥ１０の指定は、｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３から、Ｎ［０］＝１ならばＡ２変換レジスタ１４から出力する。
（３ａ）転送バス２０上の経路に対する入力ＰＥ１０の指定は、｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５へ、Ｎ［４］＝１ならばＢ２変換レジスタ１６へ入力する。
（４ａ）転送バス２０下の経路に対する出力ＰＥ１０の指定は、｛Ｎ［４］，１，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３から、Ｎ［０］＝１ならばＡ２変換レジスタ１４から出力する。
（５ａ）転送バス２０下の経路に対する入力ＰＥ１０の指定は、｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５へ、Ｎ［４］＝１ならばＢ２変換レジスタ１６へ入力する。
なお、上述した関係式で「〜：チルダ」はビット否定を示している。
【００６９】
この関係式で、デコーダ２６が入力信号Ｎ［４：０］から判定する指定ＰＥ番号を、ステップごとの一覧表に表したのが図５である。項目は左より、ステップ、制御信号Ｎのｂｉｔ４、同ｂｉｔ３、同ｂｉｔ２、同ｂｉｔ１、同ｂｉｔ０、（１ａ）転送バス２０を切断するスイッチ２１を含むＰＥ番号、（２ａ）転送バス２０上の経路に対する出力ＰＥ番号と、そのレジスタ指定、（３ａ）転送バス２０上の経路に対する入力ＰＥ番号と、そのレジスタ指定、（４ａ）転送バス２０下の経路に対する出力ＰＥ番号と、そのレジスタ指定、（５ａ）転送バス２０下の経路に対する入力ＰＥ番号と、そのレジスタ指定、である。つまり、本表で指定されたＰＥ番号のデコーダ２６がスイッチ２１の切り替えや入出力回路２２、２３、２４、２５の切り替え信号を出力する。即ち、本表で、αフォーマットからβフォーマットへの変換動作を全て表現している。
【００７０】
次に、図２２に示したβフォーマットから図２１に示したαフォーマットへの変換動作を説明する。βフォーマットとして、６４個の連続した画素データをＤ００〜Ｄ６３とし、それぞれをＢ１変換レジスタ１５あるいはＢ２変換レジスタ１６に格納する。即ち、画素データＤ００をＰＥ１０＿００のＢ１変換レジスタ１５に、画素データＤ０１をＰＥ１０＿０１のＢ１変換レジスタ１５に、画素データＤ０２をＰＥ１０＿０２のＢ１変換レジスタ１５に、・・・、画素データＤ３０をＰＥ１０＿３０のＢ１変換レジスタ１５に、画素データＤ３１をＰＥ１０＿３１のＢ１変換レジスタ１５に、画素データＤ３２をＰＥ１０＿００のＢ２変換レジスタ１６に、画素データＤ３３をＰＥ１０＿０１のＢ２変換レジスタ１６に、・・・、画素データＤ６２をＰＥ１０＿３０のＢ２変換レジスタ１６に、画素データＤ６３をＰＥ１０＿３１のＢ２変換レジスタ１６に格納している。
【００７１】
このβフォーマットを３２ステップに分けてαフォーマットへ画素データフォーマットの変換を行う。各ステップを図４と同様に模式的に表現した図６に示す。
【００７２】
上述した画素データフォーマット変換の結果、画素データＤ００がＰＥ１０＿００のＡ１変換レジスタ１３に、画素データＤ０１がＰＥ１０＿００のＡ２変換レジスタ１４に、画素データＤ０２がＰＥ１０＿０１のＡ１変換レジスタ１３に、画素データＤ０３がＰＥ＿０１のＡ２変換レジスタ１４に、画素データＤ０４がＰＥ１０＿０２のＡ１変換レジスタ１３に、画素データＤ０５がＰＥ１０＿０２のＡ２変換レジスタ１４に、・・・、画素データＤ６２がＰＥ１０＿３１のＡ１変換レジスタ１３に、画素データＤ６３がＰＥ１０＿３１のＡ２変換レジスタ１４にそれぞれ格納されており、これはαフォーマットのデータ配置である。
【００７３】
この変換におけるデコーダ２６の出力情報と入力情報の関係式は次の通りである。
（１ｂ）スイッチ２１での転送バス２０の切断箇所指定は、｛Ｎ［４］，〜Ｎ［４］，Ｎ［３］，Ｎ［２］，Ｎ［１］｝。
（２ｂ）転送バス２０上の経路に対する出力ＰＥ１０の指定は、｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５から、Ｎ［４］＝１ならばＢ２変換レジスタ１６から出力する。
（３ｂ）転送バス２０上の経路に対する入力ＰＥ１０の指定は、｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３へ、Ｎ［０］＝１ならばＡ２変換レジスタ１４へ入力する。
（４ｂ）転送バス２０下の経路に対する出力ＰＥ１０の指定は、｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５から、Ｎ［４］＝１ならばＢ２変換レジスタ１６から出力する。
（５ｂ）転送バス２０下の経路に対する入力ＰＥ１０の指定は、｛Ｎ［４］，１，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３へ、Ｎ［０］＝１ならばＡ２変換レジスタ１４へ入力する。
【００７４】
この関係式で、デコーダ２６が入力信号Ｎ［４：０］から判定する指定ＰＥ番号を、ステップごとの一覧表に表したのが図７である。項目は図５と同様に、左より、ステップ、制御信号Ｎのｂｉｔ４、同ｂｉｔ３、同ｂｉｔ２、同ｂｉｔ１、同ｂｉｔ０、（１ｂ）転送バス２０の切断するスイッチ２１を含むＰＥ番号、（２ｂ）転送バス２０上の経路に対する出力ＰＥ番号と、そのレジスタ指定、（３ｂ）転送バス２０上の経路に対する入力ＰＥ番号と、そのレジスタ指定、（４ｂ）転送バス２０下の経路に対する出力ＰＥ番号と、そのレジスタ指定、（５ｂ）転送バス２０下の経路に対する入力ＰＥ番号と、そのレジスタ指定、である。つまり、本表で指定されたＰＥ番号のデコーダ２６がスイッチ２１の切り替えや入出力回路２２、２３、２４、２５の切り替え信号を出力する。即ち、本表で、βフォーマットからαフォーマットへの変換動作を全て表現している。
【００７５】
なお、上述したβフォーマットからαフォーマットへの変換において、第１のレジスタである送信元をＢ１レジスタ１５およびＢ２レジスタ１６とし、第２のレジスタである受信先をＡ１レジスタ１３およびＡ２レジスタ１４としているが、αフォーマットからβフォーマットへの変換と同様に送信元をＡ１レジスタ１３およびＡ２レジスタ１４とし、受信先をＢ１レジスタ１５およびＢ２レジスタ１６としてもよい。勿論、αフォーマットからβフォーマットへの変換において、送信元と受信先とを逆にしてもよい。
【００７６】
本実施形態によれば、ＳＩＭＤ型マイクロプロセッサ１に、一列に並べられた複数のＰＥ１０を接続する転送バス２０と、その転送バス２０を分割するスイッチ２１と、を備え、各ＰＥには、データの送信元となるＡ１変換レジスタ１３、Ａ２変換レジスタ１４と、データの受信先となるＢ１変換レジスタ１５、Ｂ２変換レジスタ１６と、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４の格納内容を転送バス２０に出力する入出力回路２２、２３と、転送バス２０上のデータをＢ１変換レジスタ１５、Ｂ２変換レジスタ１６に格納する入出力回路２４、２５と、入出力回路２２、２３、２４、２５及びスイッチ２１をＰＥコントロール部３０からのデータにより制御するデコーダ２６と、が設けられているので、複数データを一度に転送可能であり、全転送が終了するまでの時間を短縮できる。各ＰＥには、Ａ１変換レジスタ１３、Ａ２変換レジスタ１４の格納内容を転送バス２０に出力、転送バス２０上のデータをＢ１変換レジスタ１５、Ｂ２変換レジスタ１６に格納、転送バス２０分割用のスイッチ２１の制御を統一して行うデコーダ２６があるので、ＰＥコントロール部３０から制御は各ＰＥのデコーダ２６に対し、１種類の情報を伝達するだけでよく、回路規模、配線面積で有利である。したがって、複数の画素データフォーマット変換を行う機能を効率よく、かつ、回路規模の増大を抑えるように構成することができる。
【００７７】
［第２実施形態］
次に、本発明の第２の実施形態を図８ないし図１０を参照して説明する。なお、前述した第１の実施形態と同一部分には、同一符号を付して説明を省略する。図８は、本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサのＰＥ群内の転送バスの構成図である。図９は、図８に示した転送バスにおけるαフォーマットからβフォーマットへの変換ステップの説明図である。図１０は、図９に示された変換ステップを実行するためのデコーダの条件を示す表である。
【００７８】
図８に、本実施形態における転送バス２０の全体の構成を示す。図８では紙面の都合で、ＰＥ１０＿００からＰＥ１０＿０６までとＰＥ１０＿２５からＰＥ１０＿３１までは省略しているが、これら省略された部分にはスイッチ２１を持たないＰＥ１０が配置されている。本実施形態が第１の実施形態と構成が異なる部分は、図３がＰＥ１０＿０８〜ＰＥ１０＿２３はスイッチ２１を持つＰＥ１０であるのに対し、図８でスイッチ２１を持つＰＥ１０は、ＰＥ１０＿０８、ＰＥ１０＿１２、ＰＥ１０＿１４、ＰＥ１０＿１５、ＰＥ１０＿１６、ＰＥ１０＿１７、ＰＥ１０＿１９、ＰＥ１０＿２３に限られており、それ以外はスイッチ２１を持たないＰＥ１０となっている点である。これはＰＥ１０＿００〜ＰＥ１０＿３１の列の中心であるＰＥ１０＿１５とＰＥ１０＿１６の間から２のべき乗離れた位置のＰＥ１０にスイッチ２１が設けられていることを意味する。図９に本実施形態の動作を図４などと同様に表現して示す。
【００７９】
本実施形態において、αフォーマットからβフォーマットに変換する動作説明する。本実施形態の出力情報と入力情報の関係式は次の通りである。
【００８０】
（１ｃ）スイッチ２１での転送バス２０の切断箇所指定は個別に行う。ＰＥ１０＿０８のスイッチ２１が切断となる条件は、Ｎ［４］＝０かつＮ［３］＝０、ＰＥ１０＿１２のスイッチ２１が切断となる条件は、Ｎ［４］＝０かつＮ［３］＝１かつＮ［２］＝０、ＰＥ１０＿１４のスイッチ２１が切断となる条件は、Ｎ［４］＝０かつＮ［３］＝１かつＮ［２］＝１かつＮ［２］＝０、ＰＥ１０＿１５のスイッチ２１が切断となる条件は、Ｎ［４］＝０かつＮ［３］＝１かつＮ［２］＝１かつＮ［２］＝１、ＰＥ１０＿１６のスイッチ２１が切断となる条件は、Ｎ［４］＝１かつＮ［３］＝０かつＮ［２］＝０かつＮ［２］＝０、ＰＥ１０＿１７のスイッチ２１が切断となる条件は、Ｎ［４］＝１かつＮ［３］＝０かつＮ［２］＝０かつＮ［２］＝１、ＰＥ１０＿１９のスイッチ２１が切断となる条件は、Ｎ［４］＝１かつＮ［３］＝０かつＮ［２］＝１、ＰＥ１０＿２３のスイッチ２１が切断となる条件は、Ｎ［４］＝１かつＮ［３］＝１。
（２ｃ）転送バス２０上の経路に対する出力ＰＥ１０の指定は、｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３から、Ｎ［０］＝１ならばＡ２変換レジスタ１４から出力する。
（３ｃ）転送バス２０上の経路に対する入力ＰＥ１０の指定は、｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５へ、Ｎ［４］＝１ならばＢ２変換レジスタ１６へ入力する。
（４ｃ）転送バス２０下の経路に対する出力ＰＥ１０の指定は、｛Ｎ［４］，１，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３から、Ｎ［０］＝１ならばＡ２変換レジスタ１４から出力する。
（５ｃ）転送バス２０下の経路に対する入力ＰＥ１０の指定は、｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５へ、Ｎ［４］＝１ ならばＢ２変換レジスタ１６へ入力する。
【００８１】
この関係式で、デコーダ２６が入力信号Ｎ［４：０］から判定する指定ＰＥ番号を、ステップごとの一覧表に表したのが図１０である。指定条件の（２ｃ）、（３ｃ）、（４ｃ）、（５ｃ）は、第１の実施形態と同じであり、差異があるのはスイッチ２１の動作条件である（１ｃ）のみである。
【００８２】
本実施形態によれば、スイッチ２１が、一列に並べられた複数のＰＥ１０の中心から２のべき乗離れた位置のＰＥ１０に設けられているので、データが通過するスイッチ２１の数を削減できるため、データの転送に対して伝達速度や信号品質面で有利であり、ＳＩＭＤ型マイクロプロセッサ１全体の性能向上や安定動作に繋げることができる。
【００８３】
なお、第１の実施形態や第２の実施形態で説明したように、スイッチ２１は全てのＰＥ１０に設けるよりも、変換動作に必要なＰＥ１０に設ける方が無駄な回路を削減できるために好ましい。
【００８４】
［第３実施形態］
次に、本発明の第３の実施形態を図１１ないし図１４を参照して説明する。なお、前述した第１の実施形態と同一部分には、同一符号を付して説明を省略する。図１１は、本発明の第３の実施形態におけるαフォーマットからγフォーマットへの変換ステップの説明図である。図１２は、図１１に示された変換ステップを実行するためのデコーダの条件を示す表である。図１３は、γフォーマットからαフォーマットへの変換ステップの説明図である。図１４は、図１３に示された変換ステップを実行するためのデコーダの条件を示す表である。
【００８５】
本実施形態では、γフォーマットの変換を行う。本実施形態は、第１の実施形態と構成は同じだが、デコーダ２６のデコード内容が異なる。αフォーマットからγフォーマットへの変換動作時のデコーダ２６の出力情報と入力情報の関係式は次の通りである。
【００８６】
（１ｄ）スイッチ２１での転送バス２０の切断箇所指定は、｛Ｎ［４］，〜Ｎ［４］，Ｎ［３］，Ｎ［２］，Ｎ［１］｝。
（２ｄ）転送バス２０上の経路に対する出力ＰＥ１０の指定は、Ｎ［４］＝０ならば｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［４］＝１ならば｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝−８、Ｎ［０］＝０ならばＡ１変換レジスタ１３から、Ｎ［０］＝１ならばＡ２変換レジスタ１４から出力する。
（３ｄ）転送バス２０上の経路に対する入力ＰＥ１０の指定は、｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５へ、Ｎ［４］＝１ならばＢ２変換レジスタ１６へ入力する。
（４ｄ）転送バス２０下の経路に対する出力ＰＥ１０の指定は、Ｎ［４］＝０ならば｛Ｎ［４］，１，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［４］＝１ならば｛Ｎ［４］，１，Ｎ［３］，Ｎ［２］，Ｎ［１］｝−８、Ｎ［０］＝０ならばＡ１変換レジスタ１３から、Ｎ［０］＝１ならばＡ２変換レジスタ１４から出力する。
（５ｄ）転送バス２０下の経路に対する入力ＰＥ１０の指定は、｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５へ、Ｎ［４］＝１ならばＢ２変換レジスタ１６へ入力する。
【００８７】
この関係式で、デコーダ２６が入力信号Ｎ［４：０］から判定する指定ＰＥ番号を、ステップごとの一覧表に表したのが図１２である。指定条件の（１ｄ）、（３ｄ）、（５ｄ）は、第１の実施形態と同じであり、転送バス２０へ出力する変換レジスタの指定の動作条件である（２ｄ）、（４ｄ）のみが異なる。これらの動作を図４と同様に表したのが図１１である。
【００８８】
図１１において変換前はαフォーマットである。画素データＤ００をＰＥ１０＿００のＡ１変換レジスタ１３に、画素データＤ０１をＰＥ１０＿００のＡ２変換レジスタ１４に、画素データＤ０２をＰＥ１０＿０１のＡ１変換レジスタ１３に、画素データＤ０３をＰＥ１０＿０１のＡ２変換レジスタ１４に、画素データＤ０４をＰＥ１０＿０２のＡ１変換レジスタ１３に、画素データＤ０５をＰＥ１０＿０２のＡ２変換レジスタ１４に、・・・、画素データＤ６２をＰＥ１０＿３１のＡ１変換レジスタ１３に、画素データＤ６３をＰＥ１０＿３１のＡ２変換レジスタ１４に格納している。
【００８９】
変換後は、ＰＥ１０＿００のＢ１変換レジスタ１５には画素データＤ００、ＰＥ１０＿０１のＢ１変換レジスタ１５には画素データＤ０１、ＰＥ１０＿０２のＢ１変換レジスタ１５には画素データＤ０２、・・・、ＰＥ１０＿３０のＢ１変換レジスタ１５には画素データＤ３０、ＰＥ１０＿３１のＢ１変換レジスタ１５には画素データＤ３１、ＰＥ１０＿００のＢ２変換レジスタ１６には画素データＤ２４、ＰＥ１０＿０１のＢ２変換レジスタ１６には画素データＤ２５、・・・、ＰＥ１０＿３０のＢ２変換レジスタ１６には画素データＤ５４、ＰＥ１０＿３１のＢ２変換レジスタ１６には画素データＤ５５、が配置されている。この変換後のフォーマットには、画素データＤ２４〜Ｄ３１が重複して配置されているのに加え、画素データＤ５６〜Ｄ６３が消滅している。
【００９０】
この変換は、αフォーマットから図２３に示したγフォーマットへの変換を意味しており、γフォーマットではデータ列が２本という取り扱いとした上で、αフォーマットのデータ列を２分割している。さらに２分割したデータ列をＳＩＭＤ型マイクロプロセッサ１でフィルター処理などの画像処理を行うときに、隣接画素の参照演算を行えば、２列の独立したデータ列として扱うγフォーマットでは、それぞれのデータ列の両端に無効画素が発生する。この例では発生する無効画素を両端から４画素としている。
【００９１】
画像データを分割する時には、分割の後発生する無効画素数を考慮して、その画素数分を重複しておかねばならない。例えば、４画素の無効画素が発生する画像処理を考えた場合、αフォーマットで処理すると、画素データＤ００〜Ｄ６３の両端の４画素分、すなわち画素データＤ００〜Ｄ０３と画素データＤ６０〜Ｄ６３が無効画素になる。βフォーマットでも同様に、画素データＤ００〜Ｄ６３の両端の４画素分、即ち画素データＤ００〜Ｄ０３と画素データＤ６０〜Ｄ６３が無効画素になる。γフォーマットの場合、画素データＤ００〜Ｄ３１の両端の４画素分である画素データＤ００〜Ｄ０３と画素データＤ２８〜Ｄ３１と、画素データＤ３２〜Ｄ６３の両端の４画素分である画素データＤ３２〜Ｄ３５と画素データＤ６０〜Ｄ６３が無効画素になる。αフォーマットからγフォーマットへ変換する際には、同じ条件である画素データＤ００〜Ｄ０３を考慮する必要はないが、画素データＤ２８〜Ｄ３５も無効画素になることには考慮が必要となる。
【００９２】
したがって、αフォーマットからγフォーマットへの変換の際に新たに発生する無効画素を考慮して、本来の画像処理データの消失を防ぐ目的で、無効画素分の重複が必要になるため、Ｂ２変換レジスタ１６には画素８個分を重複させ、画素データＤ２４からのデータ配置を行う。これで、γフォーマットで画像処理を行った結果、ＰＥ１０＿２８〜ＰＥ３１が無効画素となっても、画素データＤ２８〜Ｄ３１はＰＥ１０＿０４〜ＰＥ１０＿０７で有効である。同様に画素データＤ２４〜Ｄ２７はＰＥ１０＿２４〜ＰＥ１０＿２７が有効であるため、ＰＥ１０＿００〜ＰＥ１０＿０３に重複配置された画素データＤ２８〜Ｄ３１が無効画素となっても消失はない。即ち、一列に並べられた複数のＰＥ１０の所定の範囲に位置するＰＥ１０内のＡ１変換レジスタ１３およびＡ２変換レジスタ１４に格納されているデータを、前記所定の範囲と異なる範囲に位置する複数のＰＥ１０のＢ１変換レジスタ１５およびＢ２変換レジスタ１６に転送している。なお、画素を重複させるため、画素データＤ５６〜Ｄ６３はγフォーマットでは配置することができない。
【００９３】
このようにフォーマット変換の種類によっては、隣接画素参照による無効画素化対策が必要であるが、本実施形態のように構成することで実現可能である。
【００９４】
次に、γフォーマットからαフォーマットへの変換動作を説明する。γフォーマットからαフォーマットへの変換動作時のデコーダ２６の入力情報と出力情報の関係式は次の通りである。
【００９５】
（１ｅ）スイッチ２１での転送バス２０の切断箇所指定は、｛Ｎ［４］，〜Ｎ［４］，Ｎ［３］，Ｎ［２］，Ｎ［１］｝。
（２ｅ）転送バス２０上の経路に対する出力ＰＥ１０の指定は、｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならば｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝１ならば｛０，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝＋４、Ｎ［４］＝０ならばＢ１変換レジスタ１５から、Ｎ［４］＝１ならばＢ２変換レジスタ１６から出力する。
（３ｅ）転送バス２０上の経路に対する入力ＰＥ１０の指定は、Ｎ［４］＝０ならば｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝＋２、Ｎ［４］＝１ならば｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［０］＝０ならばＡ１変換レジスタ１３へ、Ｎ［０］＝１ならばＡ２変換レジスタ１４へ入力する。
（４ｅ）転送バス２０下の経路に対する出力ＰＥ１０の指定は、｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝＋４、Ｎ［４］＝０ならば｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝−４、Ｎ［４］＝１ならば｛１，Ｎ［３］，Ｎ［２］，Ｎ［１］，Ｎ［０］｝、Ｎ［４］＝０ならばＢ１変換レジスタ１５から、Ｎ［４］＝１ならばＢ２変換レジスタ１６から出力する。
（５ｅ）転送バス２０下の経路に対する入力ＰＥ１０の指定は、Ｎ［４］＝０ならば｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝、Ｎ［４］＝１ならば｛Ｎ［４］，０，Ｎ［３］，Ｎ［２］，Ｎ［１］｝−２、Ｎ［０］＝０ならばＡ１変換レジスタ１３へ、Ｎ［０］＝１ならばＡ２変換レジスタ１４へ入力する。
【００９６】
この関係式で、デコーダ２６が入力信号Ｎ［４：０］から判定する指定ＰＥ番号を、ステップごとの一覧表に表したのが図１４である。ただし、この変換では、００１００ｂ≦Ｎ［４：０］≦１１０１１ｂの範囲である。これらの動作を図４と同様に表したのが図１３である。なお、ステップ数は、他の実施形態と図面上の記載を合わせるために００１００ｂ≦Ｎ［４：０］≦１１０１１ｂとしているが、０００００ｂ≦Ｎ［４：０］≦１０１１１ｂとしても構わない。
【００９７】
図１３において変換前はγフォーマットである。画素データＤａ００をＰＥ１０＿００のＡ１変換レジスタ１３に、画素データＤａ０１をＰＥ１０＿０１のＡ１変換レジスタ１３に、画素データＤａ０２をＰＥ１０＿０２のＡ１変換レジスタ１３に、画素データＤａ０３をＰＥ１０＿０３のＡ１変換レジスタ１３に、・・・、画素データＤ３１をＰＥ１０＿３１のＡ１変換レジスタ１３に、画素データＤｂ００をＰＥ１０＿００のＡ２変換レジスタ１４に、画素データＤｂ０１をＰＥ１０＿０１のＡ２変換レジスタ１４に、画素データＤｂ０２をＰＥ１０＿０２のＡ２変換レジスタ１４に、画素データＤｂ０３をＰＥ１０＿０３のＡ２変換レジスタ１４に、・・・、画素データＤ３１をＰＥ１０＿３１のＡ２変換レジスタ１４に、格納している。
【００９８】
変換後は、ＰＥ１０＿０４のＡ１変換レジスタ１３に画素データＤａ０４、ＰＥ１０＿０４のＡ２変換レジスタ１４に画素データＤａ０５、ＰＥ１０＿０５のＡ１変換レジスタ１３に画素データＤａ０６、ＰＥ１０＿０５のＡ２変換レジスタ１４に画素データＤａ０７、・・・、ＰＥ１０＿１５のＡ１変換レジスタ１３に画素データＤａ２６、ＰＥ１０＿１５のＡ２変換レジスタ１４に画素データＤ２７、ＰＥ１０＿１６のＡ１変換レジスタ１３に画素データＤｂ０４、ＰＥ１０＿１７のＡ２変換レジスタ１４に画素データＤｂ０５、ＰＥ０４のＡ１変換レジスタ１３に画素データＤｂ０６、ＰＥ１０＿０４のＡ２変換レジスタ１４に画素データＤｂ０７、・・・、画素データＰＥ２７のＡ１変換レジスタ１３には画素データＤｂ２６、ＰＥ１０＿２７のＡ２変換レジスタ１４には画素データＤｂ２７、が配置されている。変換前のγフォーマットでの、画素データＤａ００〜Ｄａ０３と画素データＤａ２８〜Ｄａ３１と画素データＤｂ００〜Ｄｂ０３と画素データＤｂ２８〜Ｄｂ３１は無効画素として扱い、変換後のデータ配置には反映していない。つまり、有効画素のみの転送を行っている。即ち、一列に並べられた複数のＰＥ１０の両端部に位置するＰＥ１０を除くＰＥ１０内のＡ１変換レジスタ１３およびＡ２変換レジスタ１４に格納されているデータを、Ｂ１変換レジスタ１５およびＢ２変換レジスタ１６に転送している。
【００９９】
本実施形態によれば、ＰＥ１０＿００〜ＰＥ１０＿３１のうち、ＰＥ１０＿１２〜ＰＥ１０＿１５のＡ１変換レジスタ１３、Ａ２変換レジスタ１４に格納されているデータを、ＰＥ１０＿００〜ＰＥ１０＿０３のＢ２変換レジスタ１６とＰＥ１０＿２８〜ＰＥ１０＿３１のＢ１変換レジスタ１５とに転送するように各デコーダ２６が構成されているので、αフォーマットからγフォーマットに変換する場合の画素データ列の両端に発生する無効画素を考慮した重複転送を容易に行うことができる。
【０１００】
また、ＰＥ１０＿００〜ＰＥ１０＿３１の両端部であるＰＥ１０＿００〜ＰＥ１０＿０３とＰＥ１０＿２８〜ＰＥ１０＿３１を除くＰＥ１０内のＡ１変換レジスタ１３、Ａ２変換レジスタ１４に格納されているデータを、Ｂ１変換レジスタ１５、Ｂ２変換レジスタ１６に転送するように構成されているので、γフォーマットからαフォーマットに変換する場合の画素データ列の両端に発生する無効画素を考慮して必要なデータのみの転送を容易に行うことができる。
【０１０１】
［第４実施形態］
次に、本発明の第４の実施形態を図１５ないし図１６を参照して説明する。なお、前述した第１〜第３の実施形態と同一部分には、同一符号を付して説明を省略する。図１５は、本発明の第４の実施形態におけるαフォーマットでの２倍拡大動作の変換ステップの説明図である。図１６は、βフォーマットでの２倍拡大動作の変換ステップの説明図である。
【０１０２】
本実施形態では、２倍拡大変換を行う。本実施形態は、第１の実施形態と構成は同じだが、デコーダ２６のデコード内容が異なる。αフォーマットでの２倍拡大の動作を表示したのが図１５である。図１５によればαフォーマットで配置された画素データＤ００〜Ｄ３１に対して各画素データを２個ずつ重複配置した結果が得られている。これは、重複処理、冗長処理と呼ぶこともある処理である。この処理の後に平滑化などの処理を行うのが、画像処理の拡大処理では一般的である。
【０１０３】
次に、βフォーマットにおける２倍拡大変換を説明する。２倍拡大の動作を表示したのが図１６である。βフォーマットで配置された画素データＤ００〜Ｄ３１に対して各画素データを２個ずつ重複配置した結果が得られている。即ち、一つのＡ１変換レジスタ１３またはＡ２変換レジスタ１４に格納されているデータを一度に複数のＢ１変換レジスタ１５またはＢ２変換レジスタ１６に転送している。
【０１０４】
本実施形態によれば、デコーダ２６が、一つのＡ１変換レジスタ１３またはＡ２変換レジスタ１４に格納されているデータを、一度に複数のＢ１変換レジスタ１５またはＢ２変換レジスタ１６に転送するように構成されているので、画像の拡大処理を容易に行うことができる。
【０１０５】
［第５実施形態］
次に、本発明の第５の実施形態を図１７ないし図１８を参照して説明する。なお、前述した第１〜第４の実施形態と同一部分には、同一符号を付して説明を省略する。図１７は、本発明の第５の実施形態におけるαフォーマットでの１／２縮小動作の変換ステップの説明図である。図１８は、βフォーマットでの１／２縮小動作の変換ステップの説明図である。
【０１０６】
本実施形態では、１／２縮小変換を行う。本実施形態は、第１の実施形態と構成は同じだが、デコーダ２６のデコード内容が異なる。αフォーマットでの１／２縮小の動作を表示したのが図１７である。図１５によればαフォーマットで配置された画素データＤ００〜Ｄ６３に対して偶数画素データだけを集約配置した結果が得られている。これは、間引き処理と呼ぶこともある処理である。この処理の前に平滑化などの処理を行うのが、画像処理の縮小処理では一般的である。即ち、全てのＡ１変換レジスタ１３およびＡ２変換レジスタ１４のうち、予め定めたＡ１変換レジスタ１３およびＡ２変換レジスタ１４に格納されているデータをＢ１変換レジスタ１５またはＢ２変換レジスタ１６に転送している。
【０１０７】
次に、βフォーマットにおける１／２縮小変換を説明する。１／２縮小の動作を表示したのが図１８である。βフォーマットで配置された画素データＤ００〜Ｄ６３に対して偶数画素データだけを集約配置した結果が得られている。
【０１０８】
本実施形態によれば、制御手段が、全てのＡ１変換レジスタ１３およびＡ２変換レジスタ１４のうち、予め定めたＡ１変換レジスタ１３およびＡ２変換レジスタ１４に格納されているデータをＢ１変換レジスタ１５またはＢ２変換レジスタ１６に転送するように構成されているので、画像の縮小処理を容易に行うことができる。
【０１０９】
なお、上述した５つの実施形態は、フォーマット変換を効率化して効果を上げるために、同時に転送される画素データの組み合わせを次の手順で定めている。
【０１１０】
手順１：対象フォーマット変換における１つのデータ転送ごとに出力・入力間での転送バス２０の使用範囲を決定する。この使用範囲とは、例えば図４の第２のステップでいうと、ＰＥ１０＿００〜ＰＥ１０＿０１とＰＥ１０＿０８〜ＰＥ１０＿１７がそれぞれ使用範囲となる。但し、拡大変換の場合は、転送バス２０への出力が１箇所に対し、２箇所へ入力、つまり複数存在するので、使用範囲は長い方が採用される。
【０１１１】
手順２：手順１で使用範囲を定めた全てのデータ転送のうち、転送バス２０の使用範囲のもっとも長い転送を選択し、その使用範囲以外の転送バスの範囲でもっとも長い転送を選び、この組合せを１つのステップで行う転送と確定する。そして、確定した組合せの転送を候補から除外する。例えば図４の場合、ＰＥ１０＿１５→ＰＥ１０＿３１の転送またはＰＥ１０＿１６→ＰＥ１０＿００の転送が最も使用範囲が長いが、ＰＥ１０＿１５→ＰＥ１０＿３１を選択すると、この使用範囲以外を用いる転送で最も使用範囲が長いのはＰＥ１０＿０７→ＰＥ１０＿１５の転送であるので、この２つを組合せて１つのステップで行う転送とする。
【０１１２】
手順３：残りの候補の中から転送バスの使用範囲のもっとも長い転送を選択し、その使用範囲以外の転送バスの範囲でもっとも長い転送を選び、この組合せを１つのステップで行う転送と確定する。そして、確定した組合せの転送を候補から除外する。例えば、図４の場合、ＰＥ１０＿１５→ＰＥ１０＿３１の転送が除外されたので、ＰＥ１０＿１６→ＰＥ１０＿００の転送を選択し、この使用範囲以外を用いる転送で最も使用範囲が長いのはＰＥ１０＿２４→ＰＥ１０＿１６の転送であるので、この２つを組合せて１つのステップで行う転送とする。
【０１１３】
手順４：候補がなくなるか、組合せが不可能になるまで手順３を繰り返す。
【０１１４】
手順５：確定した組合せにおける転送バス２０の使用範囲の中間にスイッチ２１によるバスの分割点を定める。分割点に複数候補がある場合はどの選択でもかまわないし、候補の範囲ならデコーダ２６の構成の容易さで選択してもよい。例えば図４の第２のステップでいうと、ＰＥ１０＿００→ＰＥ１０＿０１とＰＥ１０＿０８→ＰＥ１０＿１７の転送を行うが、ＰＥ１０＿０１とＰＥ１０＿０８の中間のスイッチ２１を選択すればよい。図４の場合は、この区間はＰＥ１０＿０８のみにスイッチ２１が設けられているのでＰＥ１０＿０８を選択している。つまり、この中間には転送範囲の端に位置するＰＥ１０（ＰＥ１０＿０１とＰＥ１０＿０８）も含まれる。
【０１１５】
手順６：スイッチ２１を手順５で定めた分割点に配置してＰＥ１０デコーダ２６を確定した転送の組合せに合うように構成して、ＰＥコントロール部３０からの制御信号によりフォーマット変換（データ転送）を行う。
【０１１６】
また、上述した各実施形態においては、転送バス２０の分割箇所を１箇所とし、同時転送できる画素データの数を２として説明をしてきたが、分割数を増やし同時転送数を増やして効率を向上させることも可能である。また、１つのＰＥ１０で取り扱う画素データの数を２として説明をしてきたが、２以上の数であってもよい。
【０１１７】
また、上述した各実施形態においては、ＰＥコントロール部３０から各ＰＥ１０のデコーダ２６に対し、１通りの情報（５ｂｉｔ）を制御信号として伝達するとしてきたが、データの転送を行うためのクロック信号などの機能は、勿論別途必要である。また、複数のフォーマット変換に対応させる場合はフォーマット変換の種類を選択する信号を別途設ければよい。
【０１１８】
また、上述した各実施形態においては、ＰＥ群３におけるＰＥ１０は１次元的に一列に並べた構成であったが、２次元的に配置したＰＥ群においても、複数列から構成されているとして各列ごとに本発明を適用すればよい。
【０１１９】
また、上述した各実施形態においては、転送バス２０を１本としてきたが、複数の場合でも適用可能である。図１９は転送バス２０が２本の場合（転送バス２０Ｌと転送バス２０Ｒ）を図示しており、２本の転送バス２０の機能は同じである。デコーダおよび入出力回路は図１９では省略している。図２０に図１９の構成での動作を示す。転送バス２０Ｌをスイッチ２１で上下分割して、転送バス２０Ｒをスイッチ２１で上下分割することで、４組の転送が実現可能である。このため、ステップ数は半分の１６ステップで全転送を完了する。
【０１２０】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【０１２１】
１          ＳＩＭＤ型マイクロプロセッサ
２          グローバルプロセッサ
３          ＰＥ群
４          レジスタファイル
５          演算アレイ
１０        ＰＥ（プロセッサエレメント）
１３        Ａ１変換レジスタ（第１のレジスタ）
１４        Ａ２変換レジスタ（第１のレジスタ）
１５        Ｂ１変換レジスタ（第２のレジスタ）
１６        Ｂ２変換レジスタ（第２のレジスタ）
２０        転送バス（データバス）
２１        スイッチ
２２        入出力回路（入力制御手段、出力制御手段）
２３        入出力回路（入力制御手段、出力制御手段）
２４        入出力回路（入力制御手段、出力制御手段）
２５        入出力回路（入力制御手段、出力制御手段）
２６        デコーダ（制御手段）
３０        ＰＥコントロール部
【先行技術文献】
【特許文献】
【０１２２】
【特許文献１】特開２００２−２９８１３５公報
【特許文献２】特開２００６−２６０４７９公報
【図１】
2011107886.tif 000003
【図２】
2011107886.tif 000004
【図３】
2011107886.tif 000005
【図４】
2011107886.tif 000006
【図５】
2011107886.tif 000007
【図６】
2011107886.tif 000008
【図７】
2011107886.tif 000009
【図８】
2011107886.tif 000010
【図９】
2011107886.tif 000011
【図１０】
2011107886.tif 000012
【図１１】
2011107886.tif 000013
【図１２】
2011107886.tif 000014
【図１３】
2011107886.tif 000015
【図１４】
2011107886.tif 000016
【図１５】
2011107886.tif 000017
【図１６】
2011107886.tif 000018
【図１７】
2011107886.tif 000019
【図１８】
2011107886.tif 000020
【図１９】
2011107886.tif 000021
【図２０】
2011107886.tif 000022
【図２１】
2011107886.tif 000023
【図２２】
2011107886.tif 000024
【図２３】
2011107886.tif 000025
【図２４】
2011107886.tif 000026
【図２５】
2011107886.tif 000027