(57)【要約】【課題】データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能なデータ入出力装置を提供すること。【解決手段】データ変換器２７は、データバス２６側からビットパラレル・ワードシリアル形式でアクセス可能であり、内部バス２５側からビットシリアル・ワードパラレル形式でアクセス可能な複数面の基本データ変換器によって構成される。第１データ転送制御回路２８は、データ転送モード情報に応じて、データバス２６上のデータを格納する基本データ変換器の面数およびどの基本データ変換器にデータを格納するかを制御する。また、第２データ転送制御回路２９は、複数面の基本データ変換器に格納されるデータの内部バス２５への転送を制御する。したがって、データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能となる。【選択図】図２
2011103025.tif 000002
【特許請求の範囲】
【請求項１】
外部装置が接続されるデータバスと、複数の演算器が使用するデータを保持するローカルメモリが接続される内部バスとに接続され、前記データバス上のデータの並びと、前記内部バス上のデータの並びとを相互に変換するデータ入出力装置であって、
データ変換手段と、
前記データバスと前記データ変換手段との間のデータ転送を制御する第１のデータ転送制御手段と、
前記データ変換手段と前記内部バスとの間のデータ転送を制御する第２のデータ転送制御手段とを含み、
前記データ変換手段は、前記データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、前記内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換手段を複数面含み、
前記第１のデータ転送制御手段は、少なくともデータバス幅およびデータビット幅を含むデータ転送モード情報に応じて、前記データバス上のデータを格納する前記基本データ変換手段の面数およびどの基本データ変換手段にデータを格納するかを制御し、
前記第２のデータ転送制御手段は、前記複数面の基本データ変換手段に格納されるデータの前記内部バスへの転送を制御する、データ入出力装置。
【請求項２】
前記第１のデータ転送制御手段は、前記データ転送モード情報に応じて、データ変換におけるレイテンシが最小となるように、前記複数面の基本データ変換手段のそれぞれに一時的に保持するデータ量を変更する、請求項１記載のデータ入出力装置。
【請求項３】
前記第２のデータ転送制御手段は、前記内部バス上のデータの前記複数面の基本データ変換手段への書き込みを制御し、
前記第１のデータ転送制御手段は、前記データ転送モード情報に応じて、データを読み出す前記基本データ変換手段の面数およびどの基本データ変換手段からデータを読み出すかを制御し、読み出したデータを前記データバスに出力する、請求項１または２記載のデータ入出力装置。
【請求項４】
前記第２のデータ転送制御手段は、前記データ転送モード情報に応じて、データ変換におけるレイテンシが最小となるように、前記複数面の基本データ変換手段のそれぞれに一時的に保持するデータ量を変更する、請求項３記載のデータ入出力装置。
【請求項５】
前記データバスに含まれる最大のデータ数をｎとすると、前記データ変換手段は、ｎ面の基本データ変換手段によって構成される、請求項１〜４のいずれかに記載のデータ入出力装置。
【請求項６】
前記データバスに含まれるデータの最大のデータビット幅をＸ、最大のデータ数をｎ、内部バス幅をＹとすると、前記複数面の基本データ変換手段のそれぞれは、前記データバス側から最大Ｘビット幅でデータをアクセスすることが可能であり、前記内部バス側から最大Ｙ／ｎビット幅でデータをアクセスすることが可能である、請求項５記載のデータ入出力装置。
【請求項７】
前記データ入出力装置は、前記データ変換手段を２個含み、
前記データ入出力装置はさらに、前記第１のデータ転送制御手段に第１のデータ変換手段および第２のデータ変換手段のいずれかを選択的に接続する第１の選択手段と、
前記第２のデータ転送制御手段に前記第１のデータ変換手段および前記第２のデータ変換手段のいずれかを選択的に接続する第２の選択手段とを含む、請求項１記載のデータ入出力装置。
【請求項８】
前記第１のデータ転送制御手段は前記第１の選択手段を切り替えて、前記データバスと前記第１のデータ変換手段との間のデータ転送を制御するのと並行して、前記第２のデータ転送制御手段は前記第２の選択手段を切り替えて、前記内部バスと第２のデータ変換手段との間のデータ転送を制御する、請求項７記載のデータ入出力装置。
【請求項９】
プロセッサと、
外部メモリと、
データ入出力装置と、
ローカルメモリと、
前記ローカルメモリに接続される複数の演算器とを含み、
前記プロセッサと、前記外部メモリと、前記データ入出力装置とがデータバスを介して接続され、前記データ入出力装置と、前記ローカルメモリとが内部バスを介して接続されるデータ処理装置であって、
前記データ入出力装置は、データ変換手段と、
前記外部メモリと前記データ変換手段との間のデータ転送を制御する第１のデータ転送制御手段と、
前記データ変換手段と前記ローカルメモリとの間のデータ転送を制御する第２のデータ転送制御手段とを含み、
前記データ変換手段は、前記データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、前記内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換手段を複数面含み、
前記第１のデータ転送制御手段は、少なくともデータバス幅およびデータビット幅を含むデータ転送モード情報に応じて、前記外部メモリからのデータを格納する前記基本データ変換手段の面数およびどの基本データ変換手段にデータを格納するかを制御し、
前記第２のデータ転送制御手段は、前記複数面の基本データ変換手段に格納されるデータの前記ローカルメモリへの転送を制御する、データ処理装置。
【請求項１０】
前記データ処理装置はさらに、前記外部メモリに格納されるデータを一時的に保持する、前記外部メモリよりも高速にアクセス可能なバッファメモリを含み、
前記第１のデータ転送制御手段は、前記バッファメモリと前記データ変換手段との間のデータ転送を制御する、請求項９記載のデータ処理装置。
【請求項１１】
前記複数の演算器が前記ローカルメモリに格納されるデータに対する演算を実行するのと並行して、前記外部メモリと前記バッファメモリとの間のデータ転送が行なわれる、請求項１０記載のデータ処理装置。
【請求項１２】
前記バッファメモリは、前記外部メモリから転送されたデータを分割して前記データ入出力装置に出力し、前記データ入出力装置から入力されたデータを結合して前記外部メモリに転送する、請求項１０または１１記載のデータ処理装置。
【請求項１３】
前記データ処理装置は、バッファメモリを複数バンク含み、
前記外部メモリと第１のバンクとの間のデータ転送が行なわれるのと並行して、第２のバンクと前記データ入出力装置との間のデータ転送が行なわれる、請求項１０または１１記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理アプリケーションなどを高速に処理する技術に関し、特に、入力されたデータのフォーマットを変換して、単一命令複数データ流（ＳＩＭＤ：Single Instruction Multiple Data stream）演算方式の演算器が接続されるローカルメモリに出力するデータ入出力装置、およびそれを用いたデータ処理装置に関する。
【背景技術】
【０００２】
近年、携帯端末などのデジタル民生機器の普及に伴い、音声や画像といった大量のデータを高速に処理するデジタル信号処理の重要性が高まってきている。このようなデジタル信号処理においては、一般に専用の半導体装置としてＤＳＰ（Digital Signal Processor）が用いられることが多い。しかしながら、信号処理アプリケーション、特に画像処理アプリケーションにおいては、処理対象のデータ量が非常に大きいため、ＤＳＰでも処理能力が十分ではない。
【０００３】
これに対して、複数の演算器を並列に動作させることによって高い信号処理性能を実現する並列プロセッサ技術の開発が進んでいる。このような専用プロセッサをＣＰＵ（Central Processing Unit）に付随するアクセラレータとして用いれば、組み込み機器に搭載されるＬＳＩのように低消費電力、低コストが要求される場合においても高い信号処理性能を実現することができる。
【０００４】
１命令で複数のデータを処理するＳＩＭＤ型並列プロセッサにおいては、演算器の並列度を上げて１度に処理するデータ数を増加させることにより、ＳＩＳＤ（Single Instruction Single Data）型プロセッサに比べて大幅な処理性能向上を期待することができる。
【０００５】
後述のように、一般的なＳＩＭＤ型並列プロセッサは、複数の演算器と、演算データ、中間データおよび演算結果のデータを一時的に格納するためのローカルメモリとを含み、ローカルメモリが内部バスに接続される。並列プロセッサはさらに、外部メモリ（データバス）におけるデータの並びと、ローカルメモリ（内部バス）におけるデータの並びとを相互に変換するためのデータ変換器を含む。
【０００６】
データ変換器は、データバスを介して外部メモリから受けたビットパラレル・ワードシリアル形式のデータをビットシリアル・ワードパラレル形式のデータに変換して、内部バスを介してローカルメモリに書き込む。また、データ変換器は、内部バスを介してローカルメモリから受けたビットシリアル・ワードパラレル形式のデータをビットパラレル・ワードシリアル形式のデータに変換してデータバスに出力する。
【０００７】
ＳＩＭＤ型並列プロセッサにおいては、複数の演算器がローカルメモリに格納された複数のデータに対して同一内容の演算処理を行なう。そのため、同一サイクルにおいて、複数の演算器とローカルメモリとの間で、演算器数に相当する複数ワードのデータを、ワードパラレルの態様でデータ転送するのに十分な帯域幅を有するバスを介して転送する必要がある。これに関連する技術として、下記の特許文献１〜５に開示された発明がある。
【０００８】
特許文献１は、一つのデータ単位が複数のビットにより構成されるデータに対して、並列処理の効率化を図ることのできる並列処理装置を得ることを目的とする。外部ＳＤＲＡＭにおける一つのデータ単位が複数のビットにより構成されるデータは入出力データバッファに一時記録される。データ配列変換部は、入出力データバッファで記録されたデータに対して、一つのデータ単位がそれぞれの演算要素で演算されるよう、データの配列を変換する。それぞれの演算要素は、データ配列変換部で変換された一つのデータ単位に演算処理を行なう。
【０００９】
特許文献２は、データ配列の直交変換を行なう回路において、転送バス上の有効データのビット幅が異なる場合においても効率的にデータを転送して直交変換を行なうことを目的とする。データバスと直交メモリセルアレイとの間に、有効転送データビット幅に応じてデータ転送経路を切換える経路設定回路を設け、バスを転送されるデータのビット幅に応じて書込領域をリード／ライト回路により設定する。これにより、直交メモリセルアレイにおいては、有効データのビット幅に応じて異なるエントリに有効データをそれぞれ格納することができる。
【００１０】
特許文献３は、回路規模を小さくし、処理速度を高速化することを目的とする。直交シフトレジスタと、メモリとからなり、直交シフトレジスタにデータがＰビット幅でＭステップにより転送され、メモリにそのデータがＭビット幅でＰステップにより転送（入出力）される。その逆方向の転送も可能である。このようなビットスライスによるデータの転送は、回路規模を小さくすることができる。プロセッサアレイと、バッファとが付加され、メモリからバッファにデータがＭビット幅で転送され、バッファでＮビットが揃った段階で、Ｎ／Ｍのステップ数でプロセッサアレイに転送される。転送のステップ数が少なくなり、処理速度が高速化する。
【００１１】
特許文献４は、大量のデータを高速で効率的に演算処理する処理装置を実現することを目的とする。主演算回路に対する演算処理命令を、マイクロ命令メモリにマイクロプログラムの形態で格納し、このマイクロプログラムに従ってコントローラの制御の下に主演算回路の動作制御を実行する。主演算回路においてはメモリセルマットが、それぞれが複数ビットのデータを格納するエントリに分割され、各エントリに対応して演算器（ＡＬＵ）が配置される。エントリとＡＬＵとの間で、ビットシリアル態様で各エントリ並列に演算処理を実行する。マイクロプログラム制御方式に従って効率的に大量のデータを処理することができる。
【００１２】
特許文献５は、並列演算処理を行う信号処理装置において、演算の並列性を損なうことなく、データ転送効率を高くすることを目的とする。システムバスインターフェイスと演算用データを格納するメモリセルマットとの間に、システムバスデータと演算用データの配列を変換する直交メモリを設ける。この直交メモリは、２ポートメモリセルを含んで構成され、ビットパラレルかつワードシリアルに転送されたデータをワードパラレルかつビットシリアなデータに変換する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−１０４５２１号公報
【特許文献２】特開２００７−１４０７５０号公報
【特許文献３】特開２００１−０９２７９１号公報
【特許文献４】特開２００６−０９９２３２号公報
【特許文献５】特開２００６−１６４１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ＳＩＭＤ型並列プロセッサの処理能力を最大限に発揮させるためには、演算器による演算のために必要なデータの入力、および演算器による演算後のデータの出力に要する時間を最小限に抑える必要がある。また、携帯機器への応用等を考慮すると、データ入出力のための回路の小面積化、低消費電力化が重要となる。
【００１５】
また、ローカルメモリと演算器との間のデータ転送で使用されるバスの幅と同じバス幅で、ローカルメモリとデータ変換器との間のデータ転送を行なうためには、データ変換器にバス幅分のワードデータが揃うまでの時間、すなわちサイクルレイテンシが余分に必要となり、データ転送に要する時間が増加するといった問題点がある。
【００１６】
特許文献１は、データ配列変換部が、入出力データバッファに記録された一つのデータ単位が複数のビットにより構成されるデータに対して、一つのデータ単位がそれぞれの演算要素で演算されるようデータの配列を変換するものである。しかしながら、データ配列変換の具体的な処理が開示されておらず、データ配列変換部の回路の小面積化、低消費電力化について考慮されていない。
【００１７】
特許文献２は、データバスと直交メモリセルアレイとの間に、有効転送データビット幅に応じてデータ転送経路を切換える経路設定回路を設け、バスを転送されるデータのビット幅に応じて書込領域をリード／ライト回路により設定するものである。したがって、データバスの幅とデータバスを転送されるデータのビット幅とが同一とならない場合でも、データバスの最大帯域でのデータ転送が可能となる。しかしながら、１回のデータバスアクセスに対して、リード／ライト回路による直交メモリセルアレイへのアクセスが複数回発生することになり、リード／ライト回路がデータバスの動作速度よりも高速で動作する必要がある。そのため、回路の小面積化、低消費電力化を図ることができないといった問題点がある。
【００１８】
特許文献３においては、直交シフトレジスタにデータがＰビット幅でＭステップにより転送され、メモリにそのデータがＭビット幅でＰステップにより転送される。この構成によると、並列プロセッサ特有のビットシリアル・ワードパラレル形式となったデータを格納するための専用メモリが必要となる。そのため、回路規模が増大するといった問題点がある。
【００１９】
また、ローカルメモリに対するデータ入出力時間を短縮するために、プロセッサアレイが接続される内部バスのバス幅に対して、直交シフトレジスタと外部メモリとの間のデータ転送に使用されるデータバスのバス幅をあまり小さくできない状況下においては、データ変換におけるサイクルレイテンシの削減、回路規模の削減の効果が小さくなるといった問題点もある。たとえば、内部バスのバス幅が２５６ビットで、データバスのバス幅が６４ビットの場合、データ変換におけるレイテンシが６４サイクル、直交シフトレジスタのサイズが６４×（データのビット幅）となる。
【００２０】
特許文献４および特許文献５においては、演算用データを格納するメモリマットと演算器との間のデータ転送で使用されるバスの幅よりも小さいバス幅で、直交メモリ（転置メモリ）とメモリマットとの間のデータ転送を行なうことにより、データ変換におけるレイテンシを削減することができる。しかしながら、システムバスのバス幅以下のビット幅のデータを転送する場合には、システムバスの最大帯域でのデータ転送を行なうことができず、データ入出力に要する時間が増加するといった問題点がある。
【００２１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能なデータ入出力装置およびそれを用いたデータ処理装置を提供することである。
【課題を解決するための手段】
【００２２】
本発明の一実施例によれば、外部メモリが接続されるデータバスと、複数の演算器が使用するデータを保持するローカルメモリが接続される内部バスとに接続され、データバス上のデータの並びと、内部バス上のデータの並びとを相互に変換するデータ入出力装置が提供される。データ入出力装置は、データ変換器と、データバスとデータ変換器との間のデータ転送を制御する第１データ転送制御回路と、データ変換器と内部バスとの間のデータ転送を制御する第２データ転送制御回路とを含む。データ変換器は、データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換器を複数面含む。第１データ転送制御回路は、少なくともデータバス幅およびデータビット幅を含むデータ転送モード情報に応じて、データバス上のデータを格納する基本データ変換器の面数およびどの基本データ変換器にデータを格納するかを制御する。また、第２データ転送制御回路は、複数面の基本データ変換器に格納されるデータの内部バスへの転送を制御する。
【発明の効果】
【００２３】
この実施例によれば、データ変換器が、データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換器を複数面含む。そして、第１データ転送制御回路が、データ転送モード情報に応じて、データバス上のデータを格納する基本データ変換器の面数およびどの基本データ変換器にデータを格納するかを制御するので、データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】並列プロセッサを含んだ一般的なデータ処理装置の構成例を示すブロック図である。
【図２】本発明の第１の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図３】データ入出力装置２１による直交変換を説明するための図である。
【図４】図２に示すデータ入出力装置２１内のデータ変換器２７の内部構成の詳細を示す図である。
【図５】バス幅構成と転送データビット幅種類との組合わせによってデータ変換器２７がどのような構成になるかを説明するための図である。
【図６】図２に示す第１データ転送制御回路２８の内部構成例を説明するための図である。
【図７】図２に示す第２データ転送制御回路２９の内部構成例を説明するための図である。
【図８】本発明の第１の実施の形態におけるデータ処理装置の具体的な構成を示す図である。
【図９】第１データ転送制御回路２８が外部メモリ２４から８ビット幅の８つのデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【図１０】第２データ転送制御回路２９がデータ変換器２７から６４ビット幅のデータを入力してローカルメモリ２２に出力する場合の動作を説明するための図である。
【図１１】第１データ転送制御回路２８が外部メモリ２４から１６ビット幅の４つのデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【図１２】第１データ転送制御回路２８が外部メモリ２４から３２ビット幅の２つのデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【図１３】第２データ転送制御回路２９がローカルメモリ２２から８ビット幅のデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【図１４】第１データ転送制御回路２８がデータ変換器２７から８ビット幅の８つのデータを入力してデータバス２６に出力する場合の動作を説明するための図である。
【図１５】第１データ転送制御回路２８がデータ変換器２７から１６ビット幅の４つのデータを入力してデータバス２６に出力する場合の動作を説明するための図である。
【図１６】第１データ転送制御回路２８がデータ変換器２７から３２ビット幅の２つのデータを入力してデータバス２６に出力する場合の動作を説明するための図である。
【図１７】本発明の第２の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図１８】第２の実施の形態におけるデータ入出力装置２１ａがデータバス２６から入力したデータをローカルメモリ２２に出力するときの動作を説明するためのタイミングチャートである。
【図１９】第２の実施の形態におけるデータ入出力装置２１ａがローカルメモリ２２から入力したデータをデータバス２６に出力するときの動作を説明するためのタイミングチャートである。
【図２０】本発明の第３の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図２１】バッファメモリ９１がない場合のデータ入出力装置２１または２１ａによる外部メモリ２４とローカルメモリ２２との間のデータ転送を説明するためのタイミングチャートである。
【図２２】バッファメモリ９１がある場合のデータ入出力装置２１または２１ａによる外部メモリ２４とローカルメモリ２２との間のデータ転送を説明するためのタイミングチャートである。
【図２３】本発明の第４の実施の形態におけるデータ処理装置の構成例を示すブロック図である。
【図２４】本発明の第５の実施の形態におけるバッファメモリ９１のデータ変換機能の一例を説明するための図である。
【図２５】本発明の第５の実施の形態におけるデータ処理装置のデータ変換フローの一例を説明するための図である。
【発明を実施するための形態】
【００２５】
図１は、並列プロセッサを含んだ一般的なデータ処理装置の構成例を示すブロック図である。このデータ処理装置は、並列プロセッサ１と、外部メモリ１６と、ＣＰＵ１７と、ＤＭＡ（Direct Memory Access）コントローラ１８とを含み、これらがデータバス１５を介して接続される。
【００２６】
また、並列プロセッサ１は、複数の演算器１１と、ローカルメモリ１２と、データ変換器１４とを含む。ローカルメモリ１２とデータ変換器１４との間のデータ転送は、内部バス１３を介して行なわれる。また、データ変換器１４と外部メモリ１６との間のデータ転送は、データバス１５を介して行なわれる。
【００２７】
ＣＰＵ１７は、データ処理装置の全体的な制御を行なう。たとえば、外部メモリ１６に格納されるデータをデータ変換器１４に転送する場合には、ＤＭＡコントローラ１８の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、ＤＭＡコントローラ１８にＤＭＡ転送を行なわせる。また、データ変換器１４によってフォーマット変換された後のデータを外部メモリ１６に転送する場合にも、ＤＭＡコントローラ１８の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、ＤＭＡコントローラ１８にＤＭＡ転送を行なわせる。
【００２８】
ローカルメモリ１２は、複数の演算器１１によって演算される演算データ、中間データおよび演算結果のデータを一時的に格納する。複数の演算器１１は、ローカルメモリ１２に格納される各データワードに対して同一内容の演算処理を行なう。
【００２９】
データ変換器１４は、外部メモリ１６から転送されたビットパラレル・ワードシリアル形式のデータをビットシリアル・ワードパラレル形式のデータに変換し、内部バス１３を介してローカルメモリ１２に書き込む。また、データ変換器１４は、ローカルメモリ１２に格納された演算後のビットシリアル・ワードパラレル形式のデータをビットパラレル・ワードシリアル形式のデータに変換する。変換後のデータは、ＤＭＡコントローラ１８によりデータバス１５を介して外部メモリ１６に転送される。
【００３０】
図１に示す並列プロセッサ１においては、複数の演算器１１によって処理されるデータの増加に伴ってデータ入出力時間が増加することになる。また、データ変換器１４の回路面積の増大、消費電力の増加などにもつながる。以下、これらの問題を解決することが可能な並列プロセッサの構成を説明する。
【００３１】
（第１の実施の形態）
図２は、本発明の第１の実施の形態におけるデータ処理装置の構成例を示すブロック図である。このデータ処理装置２０は、データ入出力装置２１と、ローカルメモリ２２と、複数の演算器２３と、外部メモリ２４とを含む。データ入出力装置２１と外部メモリ２４との間のデータ転送は、データバス２６を介して行なわれる。また、データ入出力装置２１とローカルメモリ２２との間のデータ転送は、内部バス２５を介して行なわれる。なお、図示していないが、データバス２６には、図１と同様にＣＰＵ１７およびＤＭＡコントローラ１８が接続されているものとする。
【００３２】
また、データ入出力装置２１は、外部メモリ２４に格納されるデータのフォーマット（ビットパラレル・ワードシリアル形式のデータ）とローカルメモリ２２に格納されるデータのフォーマット（ビットシリアル・ワードパラレル形式のデータ）との相互の変換（直交変換）を行なうデータ変換器２７と、データバス２６とデータ変換器２７との間のデータ転送を制御する第１データ転送制御回路２８と、データ変換器２７と内部バス２５との間のデータ転送を制御する第２データ転送制御回路２９とを含む。
【００３３】
たとえば、外部メモリ２４に格納されるデータを第１データ転送制御回路２８を介してデータ変換器２７に転送する場合には、ＣＰＵ１７がＤＭＡコントローラ１８の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、ＤＭＡコントローラ１８にＤＭＡ転送を行なわせる。また、データ変換器２７によってフォーマット変換された後のデータを第１データ転送制御回路２８を介して外部メモリ２４に転送する場合にも、ＣＰＵ１７がＤＭＡコントローラ１８の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、ＤＭＡコントローラ１８にＤＭＡ転送を行なわせる。
【００３４】
第１データ転送制御回路２８は、ＤＭＡコントローラ１８とのハンドシェークや、データの並び替えなどを含む、データバス２６とデータ変換器２７との間のデータ転送制御を行なう。また、第２データ転送制御回路２９は、ローカルメモリ２２に対するアクセスアドレスの出力や、データのスクランブルなどを含む、データ変換器２７と内部バス２５との間のデータ転送制御を行なう。
【００３５】
図３は、データ入出力装置２１による直交変換を説明するための図である。外部メモリ２４には、ビットパラレル・ワードシリアル形式でデータが格納されている。データビット幅とは、１つの演算器２３によって演算されるデータ群を示しており、たとえば、画像処理の場合には、１つの演算器２３によって一連の演算が行なわれる１画素のデータのビット数である。１画素のデータが色成分と輝度成分とに分けられ、それぞれが別々の演算器２３で演算される場合には、色成分のビット数と輝度成分のビット数とがそれぞれデータビット幅となる。
【００３６】
データビット幅は、たとえば演算Ａでは８ビットとなり、演算Ｂでは１６ビットとなる、などのように演算内容によって異なる場合がある。したがって、同一システムであっても複数のデータビット幅を時分割で取り扱えるようにする必要がある。
【００３７】
また、外部メモリ２４とデータ入出力装置２１との間のデータ転送経路となるデータバス２６のバス幅が、データビット幅よりも大きい場合には、そのデータビット幅を有するデータが複数同時にデータバス２６上に転送されることになる。たとえば、データバス２６のバス幅を６４ビットとし、転送データのビット数が１６ビットの場合には、４つのデータが同時にデータバス２６上に転送されることになる。このような場合でも、効率的にデータをデータ変換器２７に転送できるようにする必要がある。
【００３８】
データ入出力装置２１は、外部メモリ２４に格納されるビットパラレル・ワードシリアル形式のデータを入力して、それぞれのワードがそれぞれの演算器２３に取り込めるような形式のデータ、すなわちビットシリアル・ワードパラレル形式のデータに変換してローカルメモリ２２に出力する。また、データ入出力装置２１は、ローカルメモリ２２に格納されるビットシリアル・ワードパラレル形式のデータを入力して、ビットパラレル・ワードシリアル形式のデータに変換して外部メモリ２４に出力する。
【００３９】
図４は、図２に示すデータ入出力装置２１内のデータ変換器２７の内部構成の詳細を示す図である。このデータ変換器２７は、同一マシンサイクルでアクセス可能なｎ面の基本データ変換器３０〜３（ｎ−１）と、第１アクセス制御部３６と、第２アクセス制御部３７とを含む。
【００４０】
基本データ変換器３０〜３（ｎ−１）のそれぞれは、アクセス方向１から最大Ｘビット幅のデータ書き込みおよびデータ読み出しが可能であり、アクセス方向２からＹ／ｎビット幅のデータ書き込みおよびデータ読み出しが可能なメモリセルによって構成される。
【００４１】
ここで、ｎはデータバス２６に含まれる最大のデータ数である。たとえば、データバス２６が６４ビット幅であり、転送データのビット数が８ビット、１６ビットまたは３２ビットのいずれかであるデータ転送仕様の場合には、データバス２６に含まれる最大のデータ数ｎは８、すなわち転送データのビット数が８ビットのときのデータ数となる。また、Ｘはデータバス２６に含まれる最大のデータビット幅であり、Ｙは内部バス２５のバス幅である。
【００４２】
図５は、バス幅構成と転送データビット幅種類との組合わせによってデータ変換器２７がどのような構成になるかを説明するための図である。たとえば、データバス幅が３２ビットであり、内部バス幅が３２ビットであり、転送データビット幅が８ビット、１６ビットまたは３２ビットのいずれかであれば、最大のデータ数ｎは４、最大のデータビット幅Ｘは３２ビット、（内部バス幅／最大のデータ数）であるＹ／ｎは８ビットとなる。
【００４３】
また、データバス幅が６４ビットであり、内部バス幅が６４ビットであり、転送データビット幅が８ビット、１６ビットまたは３２ビットのいずれかであれば、最大のデータ数ｎは８、最大のデータビット幅Ｘは３２ビット、（内部バス幅／最大のデータ数）であるＹ／ｎは８ビットとなる。
【００４４】
再び、図４の説明に戻る。基本データ変換器３０〜３（ｎ−１）のそれぞれは、アクセス方向１からビットパラレル・ワードシリアルの態様３８でアクセスされ、アクセス方向２からビットシリアル・ワードパラレルの態様３９でアクセスされる。
【００４５】
第１アクセス制御部３６は、アクセス方向１からのアクセス（データバス２６を介するアクセス）時に第１データ転送制御回路２８から出力される制御信号を受け、基本データ変換器３０〜３（ｎ−１）のどの位置を対象としてデータを書き込むか、または読み出すかを制御する。
【００４６】
第２アクセス制御部３７は、アクセス方向２からのアクセス（内部バス２５を介するアクセス）時に第２データ転送制御回路２９から出力される制御信号を受け、基本データ変換器３０〜３（ｎ−１）のどの位置を対象としてデータを書き込むか、または読み出すかを制御する。
【００４７】
図６は、図２に示す第１データ転送制御回路２８の内部構成例を説明するための図である。この第１データ転送制御回路２８は、第１データ整列回路４０と、第２データ整列回路４１と、第１レジスタ４２と、データ変換器アクセス位置制御回路４３と、第１Ｉ／Ｆ（Interface）４４とを含む。
【００４８】
第１Ｉ／Ｆ４４は、ＤＭＡコントローラ１８とのハンドシェークやデータ転送などで使用される信号、ＣＰＵ１７からのデータ読み出し要求やデータ書き込み要求などの信号を入出力する。
【００４９】
第１レジスタ４２は、転送データのビット幅、データバス２６のバス幅などのデータ転送モードを決定する情報を一時的に保持する。ＣＰＵ１７は、第１Ｉ／Ｆ４４を介してこれらの情報を第１レジスタ４２に書き込む。
【００５０】
データ変換器アクセス位置制御回路４３は、データ変換器３０〜３（ｎ−１）のデータ書き込み位置またはデータ読み出し位置を決定し、データ変換器３０〜３（ｎ−１）に対して位置情報を出力する。
【００５１】
第１データ整列回路４０は、第１レジスタ４２に保持されるデータ転送モードを決定する情報およびデータ変換器アクセス位置制御回路４３から出力される基本データ変換器３０〜３（ｎ−１）に対するアクセス位置を参照し、データバス２６上のデータを必要に応じて分配して基本データ変換器３０〜３（ｎ−１）に出力する。
【００５２】
第２データ整列回路４１は、第１レジスタ４２に保持されるデータ転送モードを決定する情報およびデータ変換器アクセス位置制御回路４３から出力される基本データ変換器３０〜３（ｎ−１）に対するアクセス位置を参照し、基本データ変換器３０〜３（ｎ−１）から出力されるデータを必要に応じて並べ替えてデータバス２６に出力する。
【００５３】
図７は、図２に示す第２データ転送制御回路２９の内部構成例を説明するための図である。この第２データ転送制御回路２９は、第３データ整列回路５０と、第４データ整列回路５１と、第２レジスタ５２と、データ変換器／ローカルメモリアクセス位置制御回路５３と、第２Ｉ／Ｆ５４とを含む。
【００５４】
第２Ｉ／Ｆ５４は、第２レジスタ５２との間でデータの入出力を行なう。
第２レジスタ５２は、転送データのビット幅、データバス２６のバス幅などのデータ転送モードを決定する情報を一時的に保持する。ＣＰＵ１７は、第２Ｉ／Ｆ５４を介してこれらの情報を第２レジスタ５２に書き込む。
【００５５】
データ変換器／ローカルメモリアクセス位置制御回路５３は、データ変換器３０〜３（ｎ−１）のデータ書き込み位置またはデータ読み出し位置を決定し、データ変換器３０〜３（ｎ−１）に対して位置情報を出力する。また、データ変換器／ローカルメモリアクセス位置制御回路５３は、ローカルメモリ２２に対するデータ読み出し位置またはデータ書き込み位置を決定し、ローカルメモリ２２に対して位置情報を出力する。
【００５６】
第３データ整列回路５０は、第２レジスタ５２に保持されるデータ転送モードを決定する情報と、データ変換器／ローカルメモリアクセス位置制御回路５３から出力される基本データ変換器３０〜３（ｎ−１）に対するアクセス位置およびローカルメモリ２２に対するアクセス位置を参照し、基本データ変換器３０〜３（ｎ−１）から出力されるデータを必要に応じて並べ替えて内部バス２５に出力する。
【００５７】
第４データ整列回路５１は、第２レジスタ５２に保持されるデータ転送モードを決定する情報と、データ変換器／ローカルメモリアクセス位置制御回路５３から出力される基本データ変換器３０〜３（ｎ−１）に対するアクセス位置およびローカルメモリ２２に対するアクセス位置を参照し、内部バス２５上のデータを必要に応じて分配して基本データ変換器３０〜３（ｎ−１）に出力する。
【００５８】
図８は、本発明の第１の実施の形態におけるデータ処理装置の具体的な構成を示す図である。図２に示す第１の実施の形態におけるデータ処理装置の構成と同様であるが、データバス幅が６４ビット、内部バス幅が６４ビット、同時に動作する演算器の数が４０９６個となっている。
【００５９】
演算器２３とローカルメモリ２２との間において、１マシンサイクルで少なくとも演算器数と同数の４０９６ビットのデータ転送が必要となる。また、図５を用いて説明したように、データ入出力装置２１に対して入出力されるデータのビット幅が８ビット幅、１６ビット幅および３２ビット幅であるとすると、データ変換器２７は、データバス２６側から３２ビット幅でアクセス可能であり、内部バス２５側から８ビット幅でアクセス可能な基本データ変換器８面によって構成される。
【００６０】
図９および図１０は、図８に示すデータ処理装置の構成において、外部メモリ２４から８ビット幅のデータを入力してローカルメモリ２２に出力する場合の動作を説明するための図である。なお、図９および図１０においては、８個の基本データ変換器の参照番号を７０〜７７としている。
【００６１】
図９は、第１データ転送制御回路２８が外部メモリ２４から８ビット幅の８つのデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【００６２】
まず、ＣＰＵ１７は、第１データ転送制御回路２８内の第１レジスタ４２および第２データ転送制御回路２９内の第２レジスタ５２に、転送データのビット数（＝８）、データバス２６のバス幅（＝６４）、内部バス２５のバス幅（＝６４）、書き込み先となるローカルメモリ２２のアドレス情報などを設定する。このとき、設定された情報からデータ変換器７０〜７７に一時的に保持するデータ量Ｍが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図９および図１０において、このデータ量Ｍは８となる。
【００６３】
次に、ＣＰＵ１７は、外部メモリ２４から、最初の８ビットの転送データが格納されるアドレスから６４ビット単位でデータが順次読み出されるように、たとえばＤＭＡコントローラ１８を制御する。
【００６４】
マシンサイクルｎにおいて、データバス２６上にそれぞれが８ビット幅のデータＤ０〜Ｄ７が出力されると、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットパラレル・ワードシリアル態様で最初のデータ位置に８ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００６５】
また、第１データ整列回路４０は、第１レジスタ４２に保持される情報およびデータ変換器アクセス位置制御回路４３から出力される位置情報を参照して、データバス２６上に出力された６４ビットのデータを、８ビット幅のデータＤ０〜Ｄ７に分割し、それぞれを基本データ変換器７０〜７７に同時に出力する。これによって、データＤ０〜Ｄ７のそれぞれが、基本データ変換器７０〜７７に書き込まれる。
【００６６】
マシンサイクルｎ＋１において、データバス２６上にそれぞれが８ビット幅のデータＤ８〜Ｄ１５が出力されると、データ変換器アクセス位置制御回路４３は同様にして、基本データ変換器７０〜７７に対して２番目のデータ位置に８ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００６７】
また、第１データ整列回路４０も同様に、データバス２６上に出力された６４ビットのデータを、８ビット幅のデータＤ８〜Ｄ１５に分割し、それぞれを基本データ変換器７０〜７７に同時に出力する。これによって、データＤ８〜Ｄ１５のそれぞれが、基本データ変換器７０〜７７に書き込まれる。
【００６８】
マシンサイクルｎ＋２において、データバス２６上にそれぞれが８ビット幅のデータＤ１６〜Ｄ２３が出力されると、データ変換器アクセス位置制御回路４３は同様にして、基本データ変換器７０〜７７に対して３番目のデータ位置に８ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００６９】
また、第１データ整列回路４０も同様に、データバス２６上に出力された６４ビットのデータを、８ビット幅のデータＤ１６〜Ｄ２３に分割し、それぞれを基本データ変換器７０〜７７に同時に出力する。これによって、データＤ１６〜Ｄ２３のそれぞれが、基本データ変換器７０〜７７に書き込まれる。
【００７０】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝８）となるまで、基本データ変換器７０〜７７の書き込みアドレスを変更しながらデータ書込みが繰り返される。
【００７１】
基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝８）になると、第２データ転送制御回路２９は、データ変換器２７からローカルメモリ２２へのデータ転送を開始する。
【００７２】
図１０は、第２データ転送制御回路２９がデータ変換器２７から６４ビット幅のデータを入力してローカルメモリ２２に出力する場合の動作を説明するための図である。
【００７３】
マシンサイクルｎにおいて、データ変換器／ローカルメモリアクセス位置制御回路５３は、第２レジスタ５２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットシリアル・ワードパラレル態様で最初のデータ位置にある８ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ００，Ｄ１０，Ｄ２０．．．Ｄ７０を読み出すように位置情報を出力する。
【００７４】
また、データ変換器／ローカルメモリアクセス位置制御回路５３は、第２レジスタ５２を参照して、基本データ変換器７０〜７７から読み出した６４ビットのデータをローカルメモリ２２のどの領域に書き込むかを示す位置情報（書き込みアドレス）をローカルメモリ２２に出力する。
【００７５】
また、第３データ整列回路５０は、第２レジスタ５２に保持される情報およびデータ変換器／ローカルメモリアクセス位置制御回路５３から出力される位置情報を参照して、基本データ変換器７０〜７７から読み出したデータを内部バス２５向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ００，Ｄ１０，Ｄ２０．．．Ｄ６２０，Ｄ６３０として内部バス２５に出力する。これによって、６４ビットのデータがローカルメモリ２２の所定領域に書き込まれる。
【００７６】
マシンサイクルｎ＋１において、データ変換器／ローカルメモリアクセス位置制御回路５３は同様に、基本データ変換器７０〜７７に対して２番目のデータ位置にある８ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ０１，Ｄ１１，Ｄ２１．．．Ｄ７１を読み出すように位置情報を出力する。
【００７７】
また、データ変換器／ローカルメモリアクセス位置制御回路５３は、基本データ変換器７０〜７７から読み出した６４ビットのデータをローカルメモリ２２の次の領域に書き込むことを示す位置情報（書き込みアドレス）をローカルメモリ２２に出力する。
【００７８】
また、第３データ整列回路５０も同様に、基本データ変換器７０〜７７から読み出したデータを内部バス２５向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ０１，Ｄ１１，Ｄ２１．．．Ｄ６２１，Ｄ６３１として内部バス２５に出力する。これによって、６４ビットのデータがローカルメモリ２２の次の領域に書き込まれる。
【００７９】
マシンサイクルｎ＋２において、データ変換器／ローカルメモリアクセス位置制御回路５３は同様に、基本データ変換器７０〜７７に対して３番目のデータ位置にある８ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ０２，Ｄ１２，Ｄ２２．．．Ｄ７２を読み出すように位置情報を出力する。
【００８０】
また、データ変換器／ローカルメモリアクセス位置制御回路５３は、基本データ変換器７０〜７７から読み出した６４ビットのデータをローカルメモリ２２の次の領域に書き込むことを示す位置情報（書き込みアドレス）をローカルメモリ２２に出力する。
【００８１】
また、第３データ整列回路５０も同様に、基本データ変換器７０〜７７から読み出したデータを内部バス２５向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ０２，Ｄ１２，Ｄ２２．．．Ｄ６２２，Ｄ６３２として内部バス２５に出力する。これによって、６４ビットのデータがローカルメモリ２２の次の領域に書き込まれる。
【００８２】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ読み出しサイズがＭ（＝８）となるまで、基本データ変換器７０〜７７の読み出しアドレスを変更しながらデータ読み出しが繰り返され、ローカルメモリ２２に対するデータ書き込みが繰り返される。
【００８３】
図１１は、第１データ転送制御回路２８が外部メモリ２４から１６ビット幅の４つのデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【００８４】
まず、ＣＰＵ１７は、第１データ転送制御回路２８内の第１レジスタ４２および第２データ転送制御回路２９内の第２レジスタ５２に、転送データのビット数（＝１６）、データバス２６のバス幅（＝６４）、内部バス２５のバス幅（＝６４）、書き込み先となるローカルメモリ２２のアドレス情報などを設定する。このとき、設定された情報からデータ変換器７０〜７７に一時的に保持するデータ量Ｍが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図１１において、このデータ量Ｍは１６となる。
【００８５】
次に、ＣＰＵ１７は、外部メモリ２４から、最初の１６ビットの転送データが格納されるアドレスから６４ビット単位でデータが順次読み出されるように、たとえばＤＭＡコントローラ１８を制御する。
【００８６】
マシンサイクルｎにおいて、データバス２６上にそれぞれが１６ビット幅のデータＤ０〜Ｄ３が出力されると、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７３の４面に対してビットパラレル・ワードシリアル態様で最初のデータ位置に１６ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００８７】
また、第１データ整列回路４０は、第１レジスタ４２に保持される情報およびデータ変換器アクセス位置制御回路４３から出力される位置情報を参照して、データバス２６上に出力された６４ビットのデータを、１６ビット幅のデータＤ０〜Ｄ３に分割し、それぞれを基本データ変換器７０〜７３に同時に出力する。これによって、データＤ０〜Ｄ３のそれぞれが、基本データ変換器７０〜７３に書き込まれる。
【００８８】
マシンサイクルｎ＋１において、データバス２６上にそれぞれが１６ビット幅のデータＤ４〜Ｄ７が出力されると、データ変換器アクセス位置制御回路４３は、基本データ変換器７４〜７７の４面に対して最初のデータ位置に１６ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００８９】
また、第１データ整列回路４０は、データバス２６上に出力された６４ビットのデータを、１６ビット幅のデータＤ４〜Ｄ７に分割し、それぞれを基本データ変換器７４〜７７に同時に出力する。これによって、データＤ４〜Ｄ７のそれぞれが、基本データ変換器７４〜７７に書き込まれる。
【００９０】
マシンサイクルｎ＋２において、データバス２６上にそれぞれが１６ビット幅のデータＤ８〜Ｄ１１が出力されると、データ変換器アクセス位置制御回路４３は、基本データ変換器７０〜７３の４面に対して２番目のデータ位置に１６ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００９１】
また、第１データ整列回路４０は、データバス２６上に出力された６４ビットのデータを、１６ビット幅のデータＤ８〜Ｄ１１に分割し、それぞれを基本データ変換器７０〜７３に同時に出力する。これによって、データＤ８〜Ｄ１１のそれぞれが、基本データ変換器７０〜７３に書き込まれる。
【００９２】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝１６）となるまで、基本データ変換器７０〜７７の書き込みアドレスを変更しながらデータ書込みが繰り返される。
【００９３】
基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝１６）になると、第２データ転送制御回路２９は、データ変換器２７からローカルメモリ２２へのデータ転送を開始する。なお、データ変換器２７からローカルメモリ２２へのデータ転送は、図１０を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が１６となる点が異なる。
【００９４】
図１２は、第１データ転送制御回路２８が外部メモリ２４から３２ビット幅の２つのデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【００９５】
まず、ＣＰＵ１７は、第１データ転送制御回路２８内の第１レジスタ４２および第２データ転送制御回路２９内の第２レジスタ５２に、転送データのビット数（＝３２）、データバス２６のバス幅（＝６４）、内部バス２５のバス幅（＝６４）、書き込み先となるローカルメモリ２２のアドレス情報などを設定する。このとき、設定された情報からデータ変換器７０〜７７に一時的に保持するデータ量Ｍが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図１２において、このデータ量Ｍは３２となる。
【００９６】
次に、ＣＰＵ１７は、外部メモリ２４から、最初の３２ビットの転送データが格納されるアドレスから６４ビット単位でデータが順次読み出されるように、たとえばＤＭＡコントローラ１８を制御する。
【００９７】
マシンサイクルｎにおいて、データバス２６上にそれぞれが３２ビット幅のデータＤ０〜Ｄ１が出力されると、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７１の２面に対してビットパラレル・ワードシリアル態様で最初のデータ位置に３２ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【００９８】
また、第１データ整列回路４０は、第１レジスタ４２に保持される情報およびデータ変換器アクセス位置制御回路４３から出力される位置情報を参照して、データバス２６上に出力された６４ビットのデータを、３２ビット幅のデータＤ０〜Ｄ１に分割し、それぞれを基本データ変換器７０〜７１に同時に出力する。これによって、データＤ０〜Ｄ１のそれぞれが、基本データ変換器７０〜７１に書き込まれる。
【００９９】
マシンサイクルｎ＋１において、データバス２６上にそれぞれが３２ビット幅のデータＤ２〜Ｄ３が出力されると、データ変換器アクセス位置制御回路４３は、基本データ変換器７２〜７３の２面に対して最初のデータ位置に３２ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【０１００】
また、第１データ整列回路４０は、データバス２６上に出力された６４ビットのデータを、３２ビット幅のデータＤ２〜Ｄ３に分割し、それぞれを基本データ変換器７２〜７３に同時に出力する。これによって、データＤ２〜Ｄ３のそれぞれが、基本データ変換器７２〜７３に書き込まれる。
【０１０１】
マシンサイクルｎ＋２において、データバス２６上にそれぞれが３２ビット幅のデータＤ４〜Ｄ５が出力されると、データ変換器アクセス位置制御回路４３は、基本データ変換器７４〜７５の２面に対して最初のデータ位置に３２ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【０１０２】
また、第１データ整列回路４０は、データバス２６上に出力された６４ビットのデータを、３２ビット幅のデータＤ４〜Ｄ５に分割し、それぞれを基本データ変換器７４〜７５に同時に出力する。これによって、データＤ４〜Ｄ５のそれぞれが、基本データ変換器７４〜７５に書き込まれる。
【０１０３】
マシンサイクルｎ＋３において、データバス２６上にそれぞれが３２ビット幅のデータＤ６〜Ｄ７が出力されると、データ変換器アクセス位置制御回路４３は、基本データ変換器７６〜７７の２面に対して最初のデータ位置に３２ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【０１０４】
また、第１データ整列回路４０は、データバス２６上に出力された６４ビットのデータを、３２ビット幅のデータＤ６〜Ｄ７に分割し、それぞれを基本データ変換器７６〜７７に同時に出力する。これによって、データＤ６〜Ｄ７のそれぞれが、基本データ変換器７６〜７７に書き込まれる。
【０１０５】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝３２）となるまで、基本データ変換器７０〜７７の書き込みアドレスを変更しながらデータ書込みが繰り返される。
【０１０６】
基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝３２）になると、第２データ転送制御回路２９は、データ変換器２７からローカルメモリ２２へのデータ転送を開始する。なお、データ変換器２７からローカルメモリ２２へのデータ転送は、図１０を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が３２となる点が異なる。
【０１０７】
図１３および図１４は、図８に示すデータ処理装置の構成において、ローカルメモリ２２から６４ビット幅のデータを入力して外部メモリ２４に出力する場合の動作を説明するための図である。
【０１０８】
図１３は、第２データ転送制御回路２９がローカルメモリ２２から８ビット幅のデータを入力してデータ変換器２７に出力する場合の動作を説明するための図である。
【０１０９】
まず、ＣＰＵ１７は、第１データ転送制御回路２８内の第１レジスタ４２および第２データ転送制御回路２９内の第２レジスタ５２に、転送データのビット数（＝８）、データバス２６のバス幅（＝６４）、内部バス２５のバス幅（＝６４）、読み出し先となるローカルメモリ２２のアドレス情報などを設定する。このとき、設定された情報からデータ変換器７０〜７７に一時的に保持するデータ量Ｍが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図１３および図１４において、このデータ量Ｍは８となる。
【０１１０】
次に、ＣＰＵ１７は、外部メモリ２４に対して、最初の８ビットのデータが格納されるアドレスから６４ビット単位でデータが順次書き込まれるように、たとえばＤＭＡコントローラ１８を制御する。
【０１１１】
マシンサイクルｎにおいて、データ変換器／ローカルメモリアクセス位置制御回路５３は、第２レジスタ５２を参照して、ローカルメモリ２２のどの領域からデータを読み出すかを示す位置情報（読み出しアドレス）をローカルメモリ２２に出力する。
【０１１２】
また、データ変換器／ローカルメモリアクセス位置制御回路５３は、第２レジスタ５２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットシリアル・ワードパラレル態様で最初のデータ位置に８ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【０１１３】
また、第４データ整列回路５１は、第２レジスタ５２に保持される情報を参照して、内部バス２５上に出力された６４ビットのデータＤ００，Ｄ１０，Ｄ２０．．．Ｄ６２０，Ｄ６３０を８つのデータに分割し、それぞれを基本データ変換器７０〜７７に同時に出力して書き込む。たとえば、基本データ変換器７０に対して８ビットのデータＤ００，Ｄ１０．．．Ｄ７０が書き込まれる。
【０１１４】
マシンサイクルｎ＋１において、データ変換器／ローカルメモリアクセス位置制御回路５３は、ローカルメモリ２２の次の領域からデータを読み出すことを示す位置情報（読み出しアドレス）をローカルメモリ２２に出力する。
【０１１５】
また、データ変換器／ローカルメモリアクセス位置制御回路５３は、第２レジスタ５２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットシリアル・ワードパラレル態様で２番目のデータ位置に８ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【０１１６】
また、第４データ整列回路５１は、第２レジスタ５２に保持される情報を参照して、内部バス２５上に出力された６４ビットのデータＤ０１，Ｄ１１，Ｄ２１．．．Ｄ６２１，Ｄ６３１を８つのデータに分割し、それぞれを基本データ変換器７０〜７７に同時に出力して書き込む。たとえば、基本データ変換器７０に対して８ビットのデータＤ０１，Ｄ１１．．．Ｄ７１が書き込まれる。
【０１１７】
マシンサイクルｎ＋２において、データ変換器／ローカルメモリアクセス位置制御回路５３は、ローカルメモリ２２の次の領域からデータを読み出すことを示す位置情報（読み出しアドレス）をローカルメモリ２２に出力する。
【０１１８】
また、データ変換器／ローカルメモリアクセス位置制御回路５３は、第２レジスタ５２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットシリアル・ワードパラレル態様で３番目のデータ位置に８ビットのデータを書き込むように位置情報（書き込みアドレス）を出力する。
【０１１９】
また、第４データ整列回路５１は、第２レジスタ５２に保持される情報を参照して、内部バス２５上に出力された６４ビットのデータＤ０２，Ｄ１２，Ｄ２２．．．Ｄ６２２，Ｄ６３２を８つのデータに分割し、それぞれを基本データ変換器７０〜７７に同時に出力して書き込む。たとえば、基本データ変換器７０に対して８ビットのデータＤ０２，Ｄ１２．．．Ｄ７２が書き込まれる。
【０１２０】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝８）となるまで、ローカルメモリ２２の読み出しアドレスおよび基本データ変換器７０〜７７の書き込みアドレスを変更しながらデータ書込みが繰り返される。
【０１２１】
基本データ変換器７０〜７７に対するデータ書き込みサイズがＭ（＝８）になると、第１データ転送制御回路２８は、データ変換器２７から外部メモリ２４へのデータ転送を開始する。
【０１２２】
図１４は、第１データ転送制御回路２８がデータ変換器２７から８ビット幅の８つのデータを入力してデータバス２６に出力する場合の動作を説明するための図である。
【０１２３】
マシンサイクルｎにおいて、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある８ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ０を読み出すように位置情報を出力する。
【０１２４】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ０〜Ｄ７としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の所定領域に書き込まれる。
【０１２５】
マシンサイクルｎ＋１において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットパラレル・ワードシリアル態様で２番目のデータ位置にある８ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ８を読み出すように位置情報を出力する。
【０１２６】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ８〜Ｄ１５としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１２７】
マシンサイクルｎ＋２において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７に対してビットパラレル・ワードシリアル態様で３番目のデータ位置にある８ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ１６を読み出すように位置情報を出力する。
【０１２８】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７７から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ１６〜Ｄ２３としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１２９】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ読み出しサイズがＭ（＝８）となるまで、基本データ変換器７０〜７７の読み出しアドレスを変更しながらデータ読み出しが繰り返され、外部メモリ２４に対するデータ書き込みが繰り返される。
【０１３０】
図１５は、第１データ転送制御回路２８がデータ変換器２７から１６ビット幅の４つのデータを入力してデータバス２６に出力する場合の動作を説明するための図である。なお、ローカルメモリ２２からデータ変換器２７へのデータ転送は、図１３を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が１６となる点が異なる。
【０１３１】
マシンサイクルｎにおいて、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７３に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある１６ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して１６ビットのデータＤ０を読み出すように位置情報を出力する。
【０１３２】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７３から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ０〜Ｄ３としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の所定領域に書き込まれる。
【０１３３】
マシンサイクルｎ＋１において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７４〜７７に対してビットパラレル・ワードシリアル態様で１番目のデータ位置にある１６ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７４に対して１６ビットのデータＤ４を読み出すように位置情報を出力する。
【０１３４】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７４〜７７から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ４〜Ｄ７としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１３５】
マシンサイクルｎ＋２において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７３に対してビットパラレル・ワードシリアル態様で２番目のデータ位置にある１６ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して８ビットのデータＤ８を読み出すように位置情報を出力する。
【０１３６】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７３から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ８〜Ｄ１１としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１３７】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ読み出しサイズがＭ（＝１６）となるまで、基本データ変換器７０〜７７の読み出しアドレスを変更しながらデータ読み出しが繰り返され、外部メモリ２４に対するデータ書き込みが繰り返される。
【０１３８】
図１６は、第１データ転送制御回路２８がデータ変換器２７から３２ビット幅の２つのデータを入力してデータバス２６に出力する場合の動作を説明するための図である。なお、ローカルメモリ２２からデータ変換器２７へのデータ転送は、図１３を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が３２となる点が異なる。
【０１３９】
マシンサイクルｎにおいて、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７１に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある３２ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７０に対して３２ビットのデータＤ０を読み出すように位置情報を出力する。
【０１４０】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７０〜７１から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ０〜Ｄ１としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の所定領域に書き込まれる。
【０１４１】
マシンサイクルｎ＋１において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７２〜７３に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある３２ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７２に対して３２ビットのデータＤ２を読み出すように位置情報を出力する。
【０１４２】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７２〜７３から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ２〜Ｄ３としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１４３】
マシンサイクルｎ＋２において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７４〜７５に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある３２ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７４に対して３２ビットのデータＤ４を読み出すように位置情報を出力する。
【０１４４】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７４〜７５から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ４〜Ｄ５としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１４５】
マシンサイクルｎ＋３において、データ変換器アクセス位置制御回路４３は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７６〜７７に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある３２ビットのデータを読み出すように位置情報（読み出しアドレス）を出力する。たとえば、基本データ変換器７６に対して３２ビットのデータＤ６を読み出すように位置情報を出力する。
【０１４６】
また、第２データ整列回路４１は、第１レジスタ４２に保持される情報を参照して、基本データ変換器７６〜７７から読み出したデータをデータバス２６向けの６４ビットのデータに並べ替えて、６４ビットのデータＤ６〜Ｄ７としてデータバス２６に出力する。これによって、６４ビットのデータが外部メモリ２４の次の領域に書き込まれる。
【０１４７】
以下、同様の動作が繰り返されて、基本データ変換器７０〜７７に対するデータ読み出しサイズがＭ（＝３２）となるまで、基本データ変換器７０〜７７の読み出しアドレスを変更しながらデータ読み出しが繰り返され、外部メモリ２４に対するデータ書き込みが繰り返される。
【０１４８】
以上説明したように、本実施の形態におけるデータ入出力装置によれば、データバス２６側および内部バス２５側から同時にアクセス可能な複数面の基本データ変換器３０〜３（ｎ−１）によってデータ変換器２７を構成し、転送データのビット数に応じてアクセスする基本データ変換器、および基本データ変換器のアクセス位置を制御するようにした。これによって、データバス２６とデータ変換器２７との間のデータ転送、およびデータ変換器２７と内部バス２５との間のデータ転送が１マシンサイクルで行なえるようになった。したがって、データ変換器２７の動作周波数を、低速なデータバス２６の動作周波数と同じにすることができ、低消費電力化を実現することが可能となった。
【０１４９】
また、ローカルメモリ２２と演算器２３との間のデータ転送で使用されるバス幅よりも小さいバス幅で、データ変換器２７とローカルメモリ２２との間のデータ転送を行なうようにしたので、データ変換器２７に一時的に保持するデータ数を削減でき、データ変換におけるサイクルレイテンシおよびデータ変換器２７の回路規模を削減することが可能となった。したがって、半導体装置にデータ入出力装置を搭載する場合、チップ面積を小さくすることが可能となる。
【０１５０】
さらに、データバス２６のバス幅、転送データのビット数などから決まるデータ転送形態に関する情報によって、データ変換器２７に一時的に保持するデータ量を切り替えてデータ変換器２７に対するアクセスを制御するようにしたので、データ変換におけるサイクルレイテンシが最小となるようにデータ転送を行なうことができ、データ転送を高速化することが可能となった。
【０１５１】
（第２の実施の形態）
図１７は、本発明の第２の実施の形態におけるデータ処理装置の構成例を示すブロック図である。図２に示す第１の実施の形態におけるデータ処理装置と比較して、データ変換器２７が第１データ変換器８１および第２データ変換器８２に置換され、セレクタ８３および８４が追加された点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるデータ処理装置およびデータ入出力装置の参照番号を、それぞれ２０ａおよび２１ａとして説明する。また、第１データ変換器８１および第２データ変換器８２の内部構成は、図４に示すデータ変換器２７の内部構成と同様である。
【０１５２】
セレクタ８３は、データバス２６側からアクセス可能なデータ変換器を切り替えるものであり、第１データ転送制御回路２８を、第１データ変換器８１または第２データ変換器８２のいずれかに選択的に接続する。このセレクタ８３の切り替え制御は、第１データ転送制御回路２８によって行なわれる。
【０１５３】
セレクタ８４は、内部バス２５側からアクセス可能なデータ変換器を切り替えるものであり、第２データ転送制御回路２９を、第１データ変換器８１または第２データ変換器８２のいずれかに選択的に接続する。このセレクタ８４の切り替え制御は、第２データ転送制御回路２９によって行なわれる。
【０１５４】
このように構成することにより、一方のデータ変換器がデータバス２６との間でデータ転送を行なっている最中に、他方のデータ変換器が内部バス２５との間でデータ転送を行なうことが可能となる。
【０１５５】
図１８は、第２の実施の形態におけるデータ入出力装置２１ａがデータバス２６から入力したデータをローカルメモリ２２に出力するときの動作を説明するためのタイミングチャートである。
【０１５６】
まず、Ｔ１において、第１データ転送制御回路２８は、第１データ転送制御回路２８に第１データ変換器８１が接続されるようにセレクタ８３を切り替え、データバス２６上のデータを順次第１データ変換器８１に書き込む。
【０１５７】
第１データ変換器８１へのデータ書き込みが完了すると、Ｔ２において、第２データ転送制御回路２９は、第２データ転送制御回路２９に第１データ変換器８１が接続されるようにセレクタ８４を切り替え、第１データ変換器８１に格納されているデータを順次ローカルメモリ２２に書き込む。これと並行して、第１データ転送制御回路２８は、第１データ転送制御回路２８に第２データ変換器８２が接続されるようにセレクタ８３を切り替え、データバス２６上のデータを順次第２データ変換器８２に書き込む。
【０１５８】
第２データ変換器８２へのデータ書き込みおよびローカルメモリ２２へのデータ書き込みが完了すると、Ｔ３において、第１データ転送制御回路２８は、第１データ転送制御回路２８に第１データ変換器８１が接続されるようにセレクタ８３を切り替え、データバス２６上のデータを順次第１データ変換器８１に書き込む。これと並行して、第２データ転送制御回路２９は、第２データ転送制御回路２９に第２データ変換器８２が接続されるようにセレクタ８４を切り替え、第２データ変換器８２に格納されているデータを順次ローカルメモリ２２に書き込む。
【０１５９】
同様にして、Ｔ４において、第１データ変換器８１に格納されているデータを順次ローカルメモリ２２に書き込み、データバス２６上のデータを順次第２データ変換器８２に書き込む。
【０１６０】
同様にして、Ｔ５において、データバス２６上のデータを順次第１データ変換器８１に書き込み、第２データ変換器８２に格納されているデータを順次ローカルメモリ２２に書き込む。
【０１６１】
同様にして、Ｔ６において、第１データ変換器８１に格納されているデータを順次ローカルメモリ２２に書き込み、データバス２６上のデータを順次第２データ変換器８２に書き込む。
【０１６２】
これらの処理を順次繰り返すことによって、データバス２６における空きサイクルなしで、第１データ変換器８１または第２データ変換器８２に対するデータ書き込みが行なえる。また、内部バス２５における空きサイクルなしで、ローカルメモリ２２に対するデータ書き込みが行なえるようになる。
【０１６３】
図１９は、第２の実施の形態におけるデータ入出力装置２１ａがローカルメモリ２２から入力したデータをデータバス２６に出力するときの動作を説明するためのタイミングチャートである。
【０１６４】
まず、Ｔ１において、第２データ転送制御回路２９は、第２データ転送制御回路２９に第１データ変換器８１が接続されるようにセレクタ８４を切り替え、ローカルメモリ２２から入力したデータを順次第１データ変換器８１に書き込む。
【０１６５】
第１データ変換器８１へのデータ書き込みが完了すると、Ｔ２において、第１データ転送制御回路２８は、第１データ転送制御回路２８に第１データ変換器８１が接続されるようにセレクタ８３を切り替え、第１データ変換器８１に格納されているデータを順次データバス２６に出力する。これと並行して、第２データ転送制御回路２９は、第２データ転送制御回路２９に第２データ変換器８２が接続されるようにセレクタ８４を切り替え、ローカルメモリ２２から入力したデータを順次第２データ変換器８２に書き込む。
【０１６６】
データバス２６へのデータ出力および第２データ変換器８２へのデータ書き込みが完了すると、Ｔ３において、第２データ転送制御回路２９は、第２データ転送制御回路２９に第１データ変換器８１が接続されるようにセレクタ８４を切り替え、ローカルメモリ２２から入力したデータを順次第１データ変換器８１に書き込む。これと並行して、第１データ転送制御回路２８は、第１データ転送制御回路２８に第２データ変換器８２が接続されるようにセレクタ８３を切り替え、第２データ変換器８２に格納されているデータを順次データバス２６に出力する。
【０１６７】
同様にして、Ｔ４において、第１データ変換器８１に格納されているデータを順次データバス２６に出力し、ローカルメモリ２２から入力したデータを順次第２データ変換器８２に書き込む。
【０１６８】
同様にして、Ｔ５において、ローカルメモリ２２から入力したデータを順次第１データ変換器８１に書き込み、第２データ変換器８２に格納されているデータを順次データバス２６に出力する。
【０１６９】
同様にして、Ｔ６において、第１データ変換器８１に格納されているデータを順次データバス２６に出力し、ローカルメモリ２２から入力したデータを順次第２データ変換器８２に書き込む。
【０１７０】
これらの処理を順次繰り返すことによって、データバス２６における空きサイクルなしで、第１データ変換器８１または第２データ変換器８２からデータバス２６にデータを出力することができる。また、内部バス２５における空きサイクルなしで、ローカルメモリ２２から入力したデータを第１データ変換器８１または第２データ変換器８２に書き込むことができるようになる。
【０１７１】
以上説明したように、本実施の形態におけるデータ入出力装置２１ａによれば、データのフォーマット変換に起因してデータバス２６の空きサイクルが発生するといったデータバス２６の使用効率の低下が起こるのを防止でき、データ入出力サイクルの削減、すなわちデータ入出力の高速化が可能となった。
【０１７２】
（第３の実施の形態）
図２０は、本発明の第３の実施の形態におけるデータ処理装置の構成例を示すブロック図である。図２に示す第２の実施の形態におけるデータ処理装置２０または図１７に示す第２の実施の形態におけるデータ処理装置２０ａと比較して、データバス２６に接続されるバッファメモリ９１が追加されて点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるデータ処理装置の参照番号を２０ｂとして説明する。
【０１７３】
バッファ９１は、ＳＲＡＭ（Static Random Access Memory）などの高速メモリによって構成され、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などによって構成される外部メモリ２４よりも高速アクセスが可能である。このバッファメモリ９１は、外部メモリ２４とデータ入出力装置２１または２１ａとの間のデータ転送の途中で一時的にデータを保持する。
【０１７４】
バッファメモリ９１は、データ入力とデータ出力との処理で共用されるようにしてもよく、データ入力とデータ出力とでそれぞれ専用のバッファメモリが使用されるようにしてもよい。
【０１７５】
第３の実施の形態においては、データ入出力装置２１または２１ａが、外部メモリ２４との間でデータ入出力を行なうのではなく、バッファメモリ９１との間でデータの入出力を行なう。
【０１７６】
ＣＰＵ１７は、データ入出力装置２１または２１ａがバッファメモリ９１からデータ入力を行なう前に、そのデータが、外部メモリ２４からバッファメモリ９１に転送されるように、たとえばＤＭＡコントローラ１８を制御する。なお、バッファメモリ９１にデータが転送された後の処理は、第１の実施の形態および第２の実施の形態において説明した処理と同様である。
【０１７７】
また、データ入出力装置２１または２１ａがバッファメモリ９１に演算結果などのデータを書き込んだ後、ＣＰＵ１７は、そのデータがバッファメモリ９１から外部メモリ２４に転送されるように、たとえばＤＭＡコントローラ１８を制御する。なお、データ入出力装置２１または２１ａがバッファメモリ９１にデータを書き込むまでの処理は、第１の実施の形態および第２の実施の形態において説明した処理と同様である。
【０１７８】
第１の実施の形態または第２の実施の形態においては、データ処理装置２０または２０ａと外部メモリ２４とが、データ転送処理サイクルの観点から遠くに配置されるため、データ転送に要するサイクル数が多くなる。また、外部メモリ２４がＤＲＡＭ、ＳＤＲＡＭなどで構成される場合には、アクセス途中でページミスが発生するなどして、データ入出力装置２１または２１ａと外部メモリ２４との間のデータ転送においてサイクルオーバーヘッドが発生することが多い。
【０１７９】
本実施の形態においては、データ処理装置２０または２０ａとバッファメモリ９１とが、データ転送処理サイクルの観点から近くに配置されるため、データ転送に要するサイクル数を少なくすることができる。これによって、データ処理装置２０または２０ａが外部メモリ２４との間でデータ転送を行なう場合と比較して、データ転送で発生するオーバーヘッドを削減でき、データ入出力を高速化することができる。
【０１８０】
図２１は、バッファメモリ９１がない場合のデータ入出力装置２１または２１ａによる外部メモリ２４とローカルメモリ２２との間のデータ転送を説明するためのタイミングチャートである。なお、図２１は、演算処理の一例として、画像処理の場合について説明するものである。
【０１８１】
データ入出力装置２１または２１ａによるローカルメモリ２２から外部メモリ２４へのライン（ｎ−１）’の演算結果のデータ出力が完了すると、Ｔ１において、データ入出力装置２１または２１ａは、外部メモリ２４からラインｎのデータを入力して、フォーマット変換を行なってローカルメモリ２２に出力する。
【０１８２】
次に、Ｔ２において、複数の演算器２３は、ローカルメモリ２２に転送されたラインｎのデータに対して、ｎ’＝ｆ（ｎ）の演算を行ない、演算結果をローカルメモリ２２に書き込む。
【０１８３】
そして、Ｔ３において、データ入出力装置２１または２１ａは、ローカルメモリ２２からラインｎ’の演算結果のデータを入力して、フォーマット変換を行なって外部メモリ２４に出力する。
【０１８４】
このように、データ入出力装置２１または２１ａと複数の演算器２３とが、ローカルメモリ２２に対して同時にアクセスすることができない。そのため、外部メモリ２４からローカルメモリ２２へのデータ入力期間（Ｔ１）、複数の演算器２３による演算期間（Ｔ２）およびローカルメモリ２２から外部メモリ２４へのデータ出力期間（Ｔ３）をオーバーラップさせることができない。
【０１８５】
図２２は、バッファメモリ９１がある場合のデータ入出力装置２１または２１ａによる外部メモリ２４とローカルメモリ２２との間のデータ転送を説明するためのタイミングチャートである。なお、図２２は、バッファメモリ９１として、データ入力専用のバッファメモリ（以下、データ入力用バッファメモリと呼ぶ。）と、データ出力専用のバッファメモリ（以下、データ出力用バッファメモリと呼ぶ。）とが別々に設けられている場合について説明するものである。
【０１８６】
図２２において、転送１は、外部メモリ２４からデータ入力用バッファメモリにデータを転送するのに必要となる期間を示す。また、転送２は、データ入力用バッファメモリからローカルメモリ２２にデータを転送するのに必要となる期間を示す。
【０１８７】
転送３は、ローカルメモリ２２からデータ出力用バッファメモリにデータを転送するのに必要となる期間を示す。また、転送４は、データ出力用バッファメモリから外部メモリ２４にデータを転送するのに必要となる期間を示す。
【０１８８】
Ｔ１において、データ入力用バッファメモリに既に格納されているラインｎのデータがローカルメモリ２２に転送される。
【０１８９】
Ｔ２において、複数の演算器２３が、ローカルメモリ２２に転送されたデータに対して、ｎ’＝ｆ（ｎ）の演算を行ない、演算結果のデータを順次ローカルメモリ２２に書き込む。これと並行して、次のラインｎ＋１のデータが外部メモリ２４からデータ入力用バッファメモリに転送される。
【０１９０】
ラインｎの演算処理が完了すると、Ｔ３において、ラインｎの演算結果のデータがローカルメモリ２２からデータ出力用バッファメモリに転送される。
【０１９１】
ラインｎの演算結果のデータのデータ出力用バッファメモリへの転送が完了すると、データ出力用バッファメモリから外部メモリ２４へのラインｎの演算結果のデータの転送が開始される。これと並行して、データ入力用バッファメモリからローカルメモリ２２へのラインｎ＋１のデータの転送が開始される。
【０１９２】
このように、バッファメモリ９１を経由して、外部メモリ２４からローカルメモリ２２へのデータ転送を行なうことにより、外部メモリ２４とローカルメモリ２２との間のデータ転送期間は、外部メモリ２４からデータ入力用バッファメモリへのデータ転送期間（期間１）と、データ出力用バッファメモリから外部メモリ２４へのデータ転送期間（転送４）とが増えることになる。
【０１９３】
しかしながら、外部メモリ２４からデータ入力用バッファメモリへのデータ転送（期間１）と、演算処理と、データ出力用バッファメモリから外部メモリ２４へのデータ転送（期間４）とを並行して行なうことができる。そのため、見かけ上のデータ転送期間は、データ入力用バッファメモリからローカルメモリ２２へのデータ転送期間（期間２）およびローカルメモリ２２からデータ出力用バッファメモリへのデータ転送期間（期間３）のみとなり、高速にデータ転送が行なえることになる。
【０１９４】
以上説明したように、本実施の形態におけるデータ処理装置２０ｂによれば、バッファメモリ９１を経由して、外部メモリ２４とローカルメモリ２２との間のデータ転送を行なうようにした。したがって、外部メモリ２４とバッファメモリ９１との間のデータ転送と、演算動作とを並行して行なえるようになり、データ転送のみに要する時間（実効上のデータ入出力時間）を削減することが可能となった。
【０１９５】
（第４の実施の形態）
図２３は、本発明の第４の実施の形態におけるデータ処理装置の構成例を示すブロック図である。図２０に示す第３の実施の形態におけるデータ処理装置２０ｂと比較して、バッファメモリ９１がデータバス２６とデータ入出力装置２１との間に接続される点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるデータ処理装置の参照番号を２０ｃとして説明する。
【０１９６】
また、図２３においては、データ入出力装置２１が記載されているが、図１７に示すデータ入出力装置２１ａと置換することも可能であることは言うまでもない。
【０１９７】
バッファメモリ９１は、データバス２６およびデータ入出力装置９１の両方からアクセスが可能なデュアルポートＲＡＭによって構成されてもよいし、データバス２６およびデータ入出力装置２１との接続をセレクタによって切り替えるようにしてもよい。
【０１９８】
図２３に示すデータ処理装置２０ｃにおいては、データ入出力装置２１の外部にバッファメモリ９１を配置するようにしたが、データ処理装置２１がバッファメモリ９１を介してデータバス２６に接続されていればよく、データ入出力装置２１内部にバッファメモリ９１が含まれる構成であっても構わない。
【０１９９】
以上説明したように、バッファメモリ９１を介してデータ入出力装置２１とデータバス２６との間のデータ転送を行なうようにしたので、第３の実施の形態において説明した効果と同様の効果を奏することが可能となった。
【０２００】
（第５の実施の形態）
本発明の第５の実施の形態におけるデータ処理装置の構成は、図２０に示す第３の実施の形態におけるデータ処理装置２０ｂまたは図２３に示す第４の実施の形態におけるデータ処理装置２０ｃの構成と同様である。本実施の形態においては、バッファメモリ９１にデータ変換機能を追加した点のみが異なる。
【０２０１】
バッファメモリ９１によるデータ変換機能は、データ入力時の前処理またはデータ出力時の後処理として、複数の演算器２３が演算するデータを変換単位ごとの複数データに分割、または複数の演算器２３によって演算され、変換単位ごとの複数データに断片化されたデータを結合するものである。
【０２０２】
図２４は、本発明の第５の実施の形態におけるバッファメモリ９１のデータ変換機能の一例を説明するための図である。図２４（ａ）は、データバス２６に含まれるビットパラレル・ワードシリアル形式の１６ビットデータを示す図である。図２４（ｂ）は、バッファメモリ９１にビットパラレル・ワードシリアル形式の１６ビットデータが格納されたところを示す図である。図２４（ｃ）は、バッファメモリ９１とデータ入出力装置２１または２１ａとの間で転送されるビットパラレル・ワードシリアル形式の８ビットデータを示す図である。
【０２０３】
バッファメモリ９１は、データバス２６から転送されたビットパラレル・ワードシリアル形式の１６ビットデータを分割して、８ビットデータとしてデータ入出力装置２１または２１ａに出力する。図２４（ｂ）に示すように、１６ビットのデータが、下位８ビットのデータと上位８ビットのデータとに分割される。
【０２０４】
また、バッファメモリ９１は、データ入出力装置２１または２１ａから転送されたビットパラレル・ワードシリアル形式の８ビットデータを結合して、１６ビットのデータとしてデータバス２６に出力する。
【０２０５】
なお、バッファメモリ９１におけるデータ変換の変換単位として、１６ビットデータを８ビットデータに分割する場合について説明したが、データ入出力装置２１または２１ａの変換単位よりも粗ければよい。また、バッファメモリ９１は、データバスのバス幅、転送するデータのビット数、変換単位のビット数などの設定値に応じて変換処理の内容を切り替えるようにしてもよい。
【０２０６】
図２５は、本発明の第５の実施の形態におけるデータ処理装置のデータ変換フローの一例を説明するための図である。
【０２０７】
まず、バッファメモリ９１が転送データを分割してデータ入出力装置２１または２１ａに出力する場合について説明する。Ｔ１において、外部メモリ２４からデータバス２６を介してデータが転送される。このとき、第１の実施の形態において説明したのと同様に、ビットパラレル・ワードシリアル形式の転送データ（ワードデータ）のビット数は、８ビット、１６ビットまたは３２ビットのいずれかである。
【０２０８】
Ｔ２において、バッファメモリ９１は、ワードデータを分割してデータ入出力装置２１または２１ａに出力する。たとえば、転送データのビット数が３２ビットであれば、１６ビットデータまたは８ビットデータに分割する。また、転送データのビット数が１６ビットであれば、８ビットデータに分割する。
【０２０９】
Ｔ３において、データ入出力装置２１または２１ａ内のデータ変換器２７，８１または８２は、ビットパラレル・ワードシリアル形式のデータをビットシリアル・ワードパラレル形式のデータに変換して、ローカルメモリ２２に書き込む。
【０２１０】
図４に示すように、基本データ変換器３０〜３（ｎ−１）は、アクセス方向１から最大Ｘビット幅でアクセスが可能なように構成される。第１の実施の形態においては、アクセス方向１から最大３２ビット幅でアクセス可能なように基本データ変換器３０〜３（ｎ−１）を構成する必要があった。一方、本実施の形態においては、ワードデータを分割してデータ入出力装置２１または２１ａに出力するため、アクセス方向１から最大１６ビット幅でアクセス可能な基本データ変換器で構成することができるようになる。
【０２１１】
次に、バッファメモリ９１がデータ入出力装置２１または２１ａからのデータを結合してデータバス２６に出力する場合について説明する。Ｔ３において、データ変換器２７，８１または８２は、ローカルメモリ２２から入力したビットシリアル・ワードパラレル形式のデータを、ビットパラレル・ワードシリアル形式の８ビットまたは１６ビットのデータに変換して、バッファメモリ９１に格納する。
【０２１２】
Ｔ２において、バッファメモリ９１は、データ入出力装置２１または２１ａから入力したデータを結合してワードデータとして出力する。たとえば、１６ビットデータまたは８ビットデータを結合して３２ビットの転送データを生成する。また、８ビットデータを結合して１６ビットデータを生成する。
【０２１３】
Ｔ１において、バッファメモリ９１によって結合された転送データが、データバス２６を介して外部メモリ２４に転送される。
【０２１４】
なお、第１の実施の形態において説明したのと同様に、転送データのビット数がデータバス２６のバス幅よりも小さい場合には、１マシンサイクルで複数の転送データが同時に転送されることを許容する。また、バッファメモリ９１によって分割された後のデータのビット数が、データバス２６のバス幅、またはバッファメモリ９１とデータ入出力装置２１または２１ａとの間の専用配線のバス幅よりも小さい場合には、１マシンサイクルで複数のデータが専用配線で転送されることを許容する。
【０２１５】
データ変換器２７における回路規模（回路面積）および変換におけるサイクルレイテンシは、データ変換器２７に一時的に保持するデータ量、すなわち対応するデータの最大ビット数に比例する。したがって、回路規模およびサイクルレイテンシの削減効果は、データ変換器２７で扱うデータバス側の転送データの最大ビット数が小さければ小さいほど大きくなる。究極的には、転送データのビット数が１ビットの場合、すなわちデータ変換を行なわない場合に最小となる。
【０２１６】
転送データのビット数を１ビットとするためには、バッファメモリのデータ変換機能として、第１の実施の形態などにおいて説明したデータ変換器２７と同等の機能を持たせることによって実現可能である。しかしながら、多面構成のバッファメモリ構成が必要となり、メモリセルを適用して構成するにしても、多面構成による面積効率の低下が顕著に現れ、逆に回路規模が大きくなってしまう。
【０２１７】
すなわち、バッファメモリ９１にデータ変換機能を追加することによる回路規模の増加に比べ、対応する最大データのビット幅を減らすことによるデータ変換器２７の回路規模の減少が大きければ、回路規模の削減が可能であることを意味する。また、対応する最大データのビット幅の減少により、データ変換におけるサイクルレイテンシを削減することも可能となる。
【０２１８】
上述のように、第１の実施の形態においてはアクセス方向１から最大３２ビット幅でアクセス可能なように基本データ変換器３０〜３（ｎ−１）を構成する必要があるが、本実施の形態においてはアクセス方向１から最大１６ビット幅でアクセス可能な基本データ変換器で構成することできる。したがって、基本データ変換器３０〜３（ｎ−１）の回路規模を半分に削減することができる。
【０２１９】
以上説明したように、本実施の形態におけるデータ処理装置によれば、バッファメモリ９１にデータ変換機能を追加して基本データ変換器３０〜３（ｎ−１）の回路規模を削減するようにしたので、データ入出力装置２１または２１ａ全体の回路規模を削減することができ、データ変換におけるサイクルレイテンシを削減することが可能となった。
【０２２０】
（第６の実施の形態）
本発明の第５の実施の形態におけるデータ処理装置の構成は、図２３に示す第４の実施の形態におけるデータ処理装置２０ｃの構成と同様である。本実施の形態においては、バッファメモリ９１が複数バンクによって構成される点のみが異なる。
【０２２１】
バッファメモリ９１の第１のバンクに格納されるデータをデータ入出力装置２１に転送する間に、外部メモリ２４から転送されるデータをバッファメモリ９１の第２のバンクに格納する。この動作を交互に繰り返すことによって、外部メモリ２４からバッファメモリ９１へのデータ転送と、バッファメモリ９１からデータ入出力装置２１へのデータ転送とを並行して行なえる。
【０２２２】
また、バッファメモリ９１の第１のバンクに格納されるデータを外部メモリ２４に転送する間に、データ入出力装置２１から転送されるデータをバッファメモリ９１の第２のバンクに格納する。この動作を交互に繰り返すことによって、データ入出力装置２１からバッファメモリ９１へのデータ転送と、バッファメモリ９１から外部メモリ２４へのデータ転送とを並行して行なえる。
【０２２３】
以上説明したように、本実施の形態におけるデータ処理装置によれば、バッファメモリ９１を複数のバンクによって構成し、外部メモリ２４と第１のバンクとの間でデータ転送を行なっているときに、データ入出力装置２１と第２のバンクとの間でデータ転送を行なうようにしたので、データバス２６の使用効率を上げることによる実効上の転送効率を向上させることができ、データ転送を高速化することが可能となった。
【０２２４】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２２５】
１  並列プロセッサ、１１，２３  演算器、１２，２２  ローカルメモリ、１３，２５  内部バス、１４  データ変換器、１５，２６  データバス、１６，２４  外部メモリ、１７  ＣＰＵ、１８  ＤＭＡコントローラ、２０，２０ａ，２０ｂ，２０ｃ  データ処理装置、２１，２１ａ  データ入出力装置、２７  データ変換器、２８  第１データ転送制御回路、２９  第２データ転送制御回路、３０〜３（ｎ−１），７０〜７７  基本データ変換器、３６  第１アクセス制御部、３７  第２アクセス制御部、４０  第１データ整列回路、４１  第２データ整列回路、４２  第１レジスタ、４３  データ変換器アクセス位置制御回路、４４  第１Ｉ／Ｆ、５０  第３データ整列回路、５１  第４データ整列回路、５２  第２レジスタ、５３  データ変換器／ローカルメモリアクセス位置制御回路、５４  第２Ｉ／Ｆ、８１  第１データ変換器、８２  第２データ変換器、８３，８４  セレクタ、９１  バッファメモリ。
【図１】
2011103025.tif 000003
【図２】
2011103025.tif 000004
【図３】
2011103025.tif 000005
【図４】
2011103025.tif 000006
【図５】
2011103025.tif 000007
【図６】
2011103025.tif 000008
【図７】
2011103025.tif 000009
【図８】
2011103025.tif 000010
【図９】
2011103025.tif 000011
【図１０】
2011103025.tif 000012
【図１１】
2011103025.tif 000013
【図１２】
2011103025.tif 000014
【図１３】
2011103025.tif 000015
【図１４】
2011103025.tif 000016
【図１５】
2011103025.tif 000017
【図１６】
2011103025.tif 000018
【図１７】
2011103025.tif 000019
【図１８】
2011103025.tif 000020
【図１９】
2011103025.tif 000021
【図２０】
2011103025.tif 000022
【図２１】
2011103025.tif 000023
【図２２】
2011103025.tif 000024
【図２３】
2011103025.tif 000025
【図２４】
2011103025.tif 000026
【図２５】
2011103025.tif 000027