JP2011103025A - データ入出力装置およびそれを用いたデータ処理装置 - Google Patents

データ入出力装置およびそれを用いたデータ処理装置 Download PDF

Info

Publication number
JP2011103025A
JP2011103025A JP2009257022A JP2009257022A JP2011103025A JP 2011103025 A JP2011103025 A JP 2011103025A JP 2009257022 A JP2009257022 A JP 2009257022A JP 2009257022 A JP2009257022 A JP 2009257022A JP 2011103025 A JP2011103025 A JP 2011103025A
Authority
JP
Japan
Prior art keywords
data
bus
bit
transfer
basic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009257022A
Other languages
English (en)
Inventor
Satoru Nishijima
哲 西島
Takashi Kurafuji
崇 倉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009257022A priority Critical patent/JP2011103025A/ja
Publication of JP2011103025A publication Critical patent/JP2011103025A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能なデータ入出力装置を提供すること。
【解決手段】データ変換器27は、データバス26側からビットパラレル・ワードシリアル形式でアクセス可能であり、内部バス25側からビットシリアル・ワードパラレル形式でアクセス可能な複数面の基本データ変換器によって構成される。第1データ転送制御回路28は、データ転送モード情報に応じて、データバス26上のデータを格納する基本データ変換器の面数およびどの基本データ変換器にデータを格納するかを制御する。また、第2データ転送制御回路29は、複数面の基本データ変換器に格納されるデータの内部バス25への転送を制御する。したがって、データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能となる。
【選択図】図2

Description

本発明は、信号処理アプリケーションなどを高速に処理する技術に関し、特に、入力されたデータのフォーマットを変換して、単一命令複数データ流(SIMD:Single Instruction Multiple Data stream)演算方式の演算器が接続されるローカルメモリに出力するデータ入出力装置、およびそれを用いたデータ処理装置に関する。
近年、携帯端末などのデジタル民生機器の普及に伴い、音声や画像といった大量のデータを高速に処理するデジタル信号処理の重要性が高まってきている。このようなデジタル信号処理においては、一般に専用の半導体装置としてDSP(Digital Signal Processor)が用いられることが多い。しかしながら、信号処理アプリケーション、特に画像処理アプリケーションにおいては、処理対象のデータ量が非常に大きいため、DSPでも処理能力が十分ではない。
これに対して、複数の演算器を並列に動作させることによって高い信号処理性能を実現する並列プロセッサ技術の開発が進んでいる。このような専用プロセッサをCPU(Central Processing Unit)に付随するアクセラレータとして用いれば、組み込み機器に搭載されるLSIのように低消費電力、低コストが要求される場合においても高い信号処理性能を実現することができる。
1命令で複数のデータを処理するSIMD型並列プロセッサにおいては、演算器の並列度を上げて1度に処理するデータ数を増加させることにより、SISD(Single Instruction Single Data)型プロセッサに比べて大幅な処理性能向上を期待することができる。
後述のように、一般的なSIMD型並列プロセッサは、複数の演算器と、演算データ、中間データおよび演算結果のデータを一時的に格納するためのローカルメモリとを含み、ローカルメモリが内部バスに接続される。並列プロセッサはさらに、外部メモリ(データバス)におけるデータの並びと、ローカルメモリ(内部バス)におけるデータの並びとを相互に変換するためのデータ変換器を含む。
データ変換器は、データバスを介して外部メモリから受けたビットパラレル・ワードシリアル形式のデータをビットシリアル・ワードパラレル形式のデータに変換して、内部バスを介してローカルメモリに書き込む。また、データ変換器は、内部バスを介してローカルメモリから受けたビットシリアル・ワードパラレル形式のデータをビットパラレル・ワードシリアル形式のデータに変換してデータバスに出力する。
SIMD型並列プロセッサにおいては、複数の演算器がローカルメモリに格納された複数のデータに対して同一内容の演算処理を行なう。そのため、同一サイクルにおいて、複数の演算器とローカルメモリとの間で、演算器数に相当する複数ワードのデータを、ワードパラレルの態様でデータ転送するのに十分な帯域幅を有するバスを介して転送する必要がある。これに関連する技術として、下記の特許文献1〜5に開示された発明がある。
特許文献1は、一つのデータ単位が複数のビットにより構成されるデータに対して、並列処理の効率化を図ることのできる並列処理装置を得ることを目的とする。外部SDRAMにおける一つのデータ単位が複数のビットにより構成されるデータは入出力データバッファに一時記録される。データ配列変換部は、入出力データバッファで記録されたデータに対して、一つのデータ単位がそれぞれの演算要素で演算されるよう、データの配列を変換する。それぞれの演算要素は、データ配列変換部で変換された一つのデータ単位に演算処理を行なう。
特許文献2は、データ配列の直交変換を行なう回路において、転送バス上の有効データのビット幅が異なる場合においても効率的にデータを転送して直交変換を行なうことを目的とする。データバスと直交メモリセルアレイとの間に、有効転送データビット幅に応じてデータ転送経路を切換える経路設定回路を設け、バスを転送されるデータのビット幅に応じて書込領域をリード/ライト回路により設定する。これにより、直交メモリセルアレイにおいては、有効データのビット幅に応じて異なるエントリに有効データをそれぞれ格納することができる。
特許文献3は、回路規模を小さくし、処理速度を高速化することを目的とする。直交シフトレジスタと、メモリとからなり、直交シフトレジスタにデータがPビット幅でMステップにより転送され、メモリにそのデータがMビット幅でPステップにより転送(入出力)される。その逆方向の転送も可能である。このようなビットスライスによるデータの転送は、回路規模を小さくすることができる。プロセッサアレイと、バッファとが付加され、メモリからバッファにデータがMビット幅で転送され、バッファでNビットが揃った段階で、N/Mのステップ数でプロセッサアレイに転送される。転送のステップ数が少なくなり、処理速度が高速化する。
特許文献4は、大量のデータを高速で効率的に演算処理する処理装置を実現することを目的とする。主演算回路に対する演算処理命令を、マイクロ命令メモリにマイクロプログラムの形態で格納し、このマイクロプログラムに従ってコントローラの制御の下に主演算回路の動作制御を実行する。主演算回路においてはメモリセルマットが、それぞれが複数ビットのデータを格納するエントリに分割され、各エントリに対応して演算器(ALU)が配置される。エントリとALUとの間で、ビットシリアル態様で各エントリ並列に演算処理を実行する。マイクロプログラム制御方式に従って効率的に大量のデータを処理することができる。
特許文献5は、並列演算処理を行う信号処理装置において、演算の並列性を損なうことなく、データ転送効率を高くすることを目的とする。システムバスインターフェイスと演算用データを格納するメモリセルマットとの間に、システムバスデータと演算用データの配列を変換する直交メモリを設ける。この直交メモリは、2ポートメモリセルを含んで構成され、ビットパラレルかつワードシリアルに転送されたデータをワードパラレルかつビットシリアなデータに変換する。
特開2009−104521号公報 特開2007−140750号公報 特開2001−092791号公報 特開2006−099232号公報 特開2006−164183号公報
SIMD型並列プロセッサの処理能力を最大限に発揮させるためには、演算器による演算のために必要なデータの入力、および演算器による演算後のデータの出力に要する時間を最小限に抑える必要がある。また、携帯機器への応用等を考慮すると、データ入出力のための回路の小面積化、低消費電力化が重要となる。
また、ローカルメモリと演算器との間のデータ転送で使用されるバスの幅と同じバス幅で、ローカルメモリとデータ変換器との間のデータ転送を行なうためには、データ変換器にバス幅分のワードデータが揃うまでの時間、すなわちサイクルレイテンシが余分に必要となり、データ転送に要する時間が増加するといった問題点がある。
特許文献1は、データ配列変換部が、入出力データバッファに記録された一つのデータ単位が複数のビットにより構成されるデータに対して、一つのデータ単位がそれぞれの演算要素で演算されるようデータの配列を変換するものである。しかしながら、データ配列変換の具体的な処理が開示されておらず、データ配列変換部の回路の小面積化、低消費電力化について考慮されていない。
特許文献2は、データバスと直交メモリセルアレイとの間に、有効転送データビット幅に応じてデータ転送経路を切換える経路設定回路を設け、バスを転送されるデータのビット幅に応じて書込領域をリード/ライト回路により設定するものである。したがって、データバスの幅とデータバスを転送されるデータのビット幅とが同一とならない場合でも、データバスの最大帯域でのデータ転送が可能となる。しかしながら、1回のデータバスアクセスに対して、リード/ライト回路による直交メモリセルアレイへのアクセスが複数回発生することになり、リード/ライト回路がデータバスの動作速度よりも高速で動作する必要がある。そのため、回路の小面積化、低消費電力化を図ることができないといった問題点がある。
特許文献3においては、直交シフトレジスタにデータがPビット幅でMステップにより転送され、メモリにそのデータがMビット幅でPステップにより転送される。この構成によると、並列プロセッサ特有のビットシリアル・ワードパラレル形式となったデータを格納するための専用メモリが必要となる。そのため、回路規模が増大するといった問題点がある。
また、ローカルメモリに対するデータ入出力時間を短縮するために、プロセッサアレイが接続される内部バスのバス幅に対して、直交シフトレジスタと外部メモリとの間のデータ転送に使用されるデータバスのバス幅をあまり小さくできない状況下においては、データ変換におけるサイクルレイテンシの削減、回路規模の削減の効果が小さくなるといった問題点もある。たとえば、内部バスのバス幅が256ビットで、データバスのバス幅が64ビットの場合、データ変換におけるレイテンシが64サイクル、直交シフトレジスタのサイズが64×(データのビット幅)となる。
特許文献4および特許文献5においては、演算用データを格納するメモリマットと演算器との間のデータ転送で使用されるバスの幅よりも小さいバス幅で、直交メモリ(転置メモリ)とメモリマットとの間のデータ転送を行なうことにより、データ変換におけるレイテンシを削減することができる。しかしながら、システムバスのバス幅以下のビット幅のデータを転送する場合には、システムバスの最大帯域でのデータ転送を行なうことができず、データ入出力に要する時間が増加するといった問題点がある。
本発明は、上記問題点を解決するためになされたものであり、その目的は、データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能なデータ入出力装置およびそれを用いたデータ処理装置を提供することである。
本発明の一実施例によれば、外部メモリが接続されるデータバスと、複数の演算器が使用するデータを保持するローカルメモリが接続される内部バスとに接続され、データバス上のデータの並びと、内部バス上のデータの並びとを相互に変換するデータ入出力装置が提供される。データ入出力装置は、データ変換器と、データバスとデータ変換器との間のデータ転送を制御する第1データ転送制御回路と、データ変換器と内部バスとの間のデータ転送を制御する第2データ転送制御回路とを含む。データ変換器は、データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換器を複数面含む。第1データ転送制御回路は、少なくともデータバス幅およびデータビット幅を含むデータ転送モード情報に応じて、データバス上のデータを格納する基本データ変換器の面数およびどの基本データ変換器にデータを格納するかを制御する。また、第2データ転送制御回路は、複数面の基本データ変換器に格納されるデータの内部バスへの転送を制御する。
この実施例によれば、データ変換器が、データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換器を複数面含む。そして、第1データ転送制御回路が、データ転送モード情報に応じて、データバス上のデータを格納する基本データ変換器の面数およびどの基本データ変換器にデータを格納するかを制御するので、データ変換のための回路規模、およびデータ変換におけるサイクルレイテンシを削減することが可能となる。
並列プロセッサを含んだ一般的なデータ処理装置の構成例を示すブロック図である。 本発明の第1の実施の形態におけるデータ処理装置の構成例を示すブロック図である。 データ入出力装置21による直交変換を説明するための図である。 図2に示すデータ入出力装置21内のデータ変換器27の内部構成の詳細を示す図である。 バス幅構成と転送データビット幅種類との組合わせによってデータ変換器27がどのような構成になるかを説明するための図である。 図2に示す第1データ転送制御回路28の内部構成例を説明するための図である。 図2に示す第2データ転送制御回路29の内部構成例を説明するための図である。 本発明の第1の実施の形態におけるデータ処理装置の具体的な構成を示す図である。 第1データ転送制御回路28が外部メモリ24から8ビット幅の8つのデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。 第2データ転送制御回路29がデータ変換器27から64ビット幅のデータを入力してローカルメモリ22に出力する場合の動作を説明するための図である。 第1データ転送制御回路28が外部メモリ24から16ビット幅の4つのデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。 第1データ転送制御回路28が外部メモリ24から32ビット幅の2つのデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。 第2データ転送制御回路29がローカルメモリ22から8ビット幅のデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。 第1データ転送制御回路28がデータ変換器27から8ビット幅の8つのデータを入力してデータバス26に出力する場合の動作を説明するための図である。 第1データ転送制御回路28がデータ変換器27から16ビット幅の4つのデータを入力してデータバス26に出力する場合の動作を説明するための図である。 第1データ転送制御回路28がデータ変換器27から32ビット幅の2つのデータを入力してデータバス26に出力する場合の動作を説明するための図である。 本発明の第2の実施の形態におけるデータ処理装置の構成例を示すブロック図である。 第2の実施の形態におけるデータ入出力装置21aがデータバス26から入力したデータをローカルメモリ22に出力するときの動作を説明するためのタイミングチャートである。 第2の実施の形態におけるデータ入出力装置21aがローカルメモリ22から入力したデータをデータバス26に出力するときの動作を説明するためのタイミングチャートである。 本発明の第3の実施の形態におけるデータ処理装置の構成例を示すブロック図である。 バッファメモリ91がない場合のデータ入出力装置21または21aによる外部メモリ24とローカルメモリ22との間のデータ転送を説明するためのタイミングチャートである。 バッファメモリ91がある場合のデータ入出力装置21または21aによる外部メモリ24とローカルメモリ22との間のデータ転送を説明するためのタイミングチャートである。 本発明の第4の実施の形態におけるデータ処理装置の構成例を示すブロック図である。 本発明の第5の実施の形態におけるバッファメモリ91のデータ変換機能の一例を説明するための図である。 本発明の第5の実施の形態におけるデータ処理装置のデータ変換フローの一例を説明するための図である。
図1は、並列プロセッサを含んだ一般的なデータ処理装置の構成例を示すブロック図である。このデータ処理装置は、並列プロセッサ1と、外部メモリ16と、CPU17と、DMA(Direct Memory Access)コントローラ18とを含み、これらがデータバス15を介して接続される。
また、並列プロセッサ1は、複数の演算器11と、ローカルメモリ12と、データ変換器14とを含む。ローカルメモリ12とデータ変換器14との間のデータ転送は、内部バス13を介して行なわれる。また、データ変換器14と外部メモリ16との間のデータ転送は、データバス15を介して行なわれる。
CPU17は、データ処理装置の全体的な制御を行なう。たとえば、外部メモリ16に格納されるデータをデータ変換器14に転送する場合には、DMAコントローラ18の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、DMAコントローラ18にDMA転送を行なわせる。また、データ変換器14によってフォーマット変換された後のデータを外部メモリ16に転送する場合にも、DMAコントローラ18の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、DMAコントローラ18にDMA転送を行なわせる。
ローカルメモリ12は、複数の演算器11によって演算される演算データ、中間データおよび演算結果のデータを一時的に格納する。複数の演算器11は、ローカルメモリ12に格納される各データワードに対して同一内容の演算処理を行なう。
データ変換器14は、外部メモリ16から転送されたビットパラレル・ワードシリアル形式のデータをビットシリアル・ワードパラレル形式のデータに変換し、内部バス13を介してローカルメモリ12に書き込む。また、データ変換器14は、ローカルメモリ12に格納された演算後のビットシリアル・ワードパラレル形式のデータをビットパラレル・ワードシリアル形式のデータに変換する。変換後のデータは、DMAコントローラ18によりデータバス15を介して外部メモリ16に転送される。
図1に示す並列プロセッサ1においては、複数の演算器11によって処理されるデータの増加に伴ってデータ入出力時間が増加することになる。また、データ変換器14の回路面積の増大、消費電力の増加などにもつながる。以下、これらの問題を解決することが可能な並列プロセッサの構成を説明する。
(第1の実施の形態)
図2は、本発明の第1の実施の形態におけるデータ処理装置の構成例を示すブロック図である。このデータ処理装置20は、データ入出力装置21と、ローカルメモリ22と、複数の演算器23と、外部メモリ24とを含む。データ入出力装置21と外部メモリ24との間のデータ転送は、データバス26を介して行なわれる。また、データ入出力装置21とローカルメモリ22との間のデータ転送は、内部バス25を介して行なわれる。なお、図示していないが、データバス26には、図1と同様にCPU17およびDMAコントローラ18が接続されているものとする。
また、データ入出力装置21は、外部メモリ24に格納されるデータのフォーマット(ビットパラレル・ワードシリアル形式のデータ)とローカルメモリ22に格納されるデータのフォーマット(ビットシリアル・ワードパラレル形式のデータ)との相互の変換(直交変換)を行なうデータ変換器27と、データバス26とデータ変換器27との間のデータ転送を制御する第1データ転送制御回路28と、データ変換器27と内部バス25との間のデータ転送を制御する第2データ転送制御回路29とを含む。
たとえば、外部メモリ24に格納されるデータを第1データ転送制御回路28を介してデータ変換器27に転送する場合には、CPU17がDMAコントローラ18の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、DMAコントローラ18にDMA転送を行なわせる。また、データ変換器27によってフォーマット変換された後のデータを第1データ転送制御回路28を介して外部メモリ24に転送する場合にも、CPU17がDMAコントローラ18の内部レジスタに転送元アドレス、転送先アドレスなどを設定することにより、DMAコントローラ18にDMA転送を行なわせる。
第1データ転送制御回路28は、DMAコントローラ18とのハンドシェークや、データの並び替えなどを含む、データバス26とデータ変換器27との間のデータ転送制御を行なう。また、第2データ転送制御回路29は、ローカルメモリ22に対するアクセスアドレスの出力や、データのスクランブルなどを含む、データ変換器27と内部バス25との間のデータ転送制御を行なう。
図3は、データ入出力装置21による直交変換を説明するための図である。外部メモリ24には、ビットパラレル・ワードシリアル形式でデータが格納されている。データビット幅とは、1つの演算器23によって演算されるデータ群を示しており、たとえば、画像処理の場合には、1つの演算器23によって一連の演算が行なわれる1画素のデータのビット数である。1画素のデータが色成分と輝度成分とに分けられ、それぞれが別々の演算器23で演算される場合には、色成分のビット数と輝度成分のビット数とがそれぞれデータビット幅となる。
データビット幅は、たとえば演算Aでは8ビットとなり、演算Bでは16ビットとなる、などのように演算内容によって異なる場合がある。したがって、同一システムであっても複数のデータビット幅を時分割で取り扱えるようにする必要がある。
また、外部メモリ24とデータ入出力装置21との間のデータ転送経路となるデータバス26のバス幅が、データビット幅よりも大きい場合には、そのデータビット幅を有するデータが複数同時にデータバス26上に転送されることになる。たとえば、データバス26のバス幅を64ビットとし、転送データのビット数が16ビットの場合には、4つのデータが同時にデータバス26上に転送されることになる。このような場合でも、効率的にデータをデータ変換器27に転送できるようにする必要がある。
データ入出力装置21は、外部メモリ24に格納されるビットパラレル・ワードシリアル形式のデータを入力して、それぞれのワードがそれぞれの演算器23に取り込めるような形式のデータ、すなわちビットシリアル・ワードパラレル形式のデータに変換してローカルメモリ22に出力する。また、データ入出力装置21は、ローカルメモリ22に格納されるビットシリアル・ワードパラレル形式のデータを入力して、ビットパラレル・ワードシリアル形式のデータに変換して外部メモリ24に出力する。
図4は、図2に示すデータ入出力装置21内のデータ変換器27の内部構成の詳細を示す図である。このデータ変換器27は、同一マシンサイクルでアクセス可能なn面の基本データ変換器30〜3(n−1)と、第1アクセス制御部36と、第2アクセス制御部37とを含む。
基本データ変換器30〜3(n−1)のそれぞれは、アクセス方向1から最大Xビット幅のデータ書き込みおよびデータ読み出しが可能であり、アクセス方向2からY/nビット幅のデータ書き込みおよびデータ読み出しが可能なメモリセルによって構成される。
ここで、nはデータバス26に含まれる最大のデータ数である。たとえば、データバス26が64ビット幅であり、転送データのビット数が8ビット、16ビットまたは32ビットのいずれかであるデータ転送仕様の場合には、データバス26に含まれる最大のデータ数nは8、すなわち転送データのビット数が8ビットのときのデータ数となる。また、Xはデータバス26に含まれる最大のデータビット幅であり、Yは内部バス25のバス幅である。
図5は、バス幅構成と転送データビット幅種類との組合わせによってデータ変換器27がどのような構成になるかを説明するための図である。たとえば、データバス幅が32ビットであり、内部バス幅が32ビットであり、転送データビット幅が8ビット、16ビットまたは32ビットのいずれかであれば、最大のデータ数nは4、最大のデータビット幅Xは32ビット、(内部バス幅/最大のデータ数)であるY/nは8ビットとなる。
また、データバス幅が64ビットであり、内部バス幅が64ビットであり、転送データビット幅が8ビット、16ビットまたは32ビットのいずれかであれば、最大のデータ数nは8、最大のデータビット幅Xは32ビット、(内部バス幅/最大のデータ数)であるY/nは8ビットとなる。
再び、図4の説明に戻る。基本データ変換器30〜3(n−1)のそれぞれは、アクセス方向1からビットパラレル・ワードシリアルの態様38でアクセスされ、アクセス方向2からビットシリアル・ワードパラレルの態様39でアクセスされる。
第1アクセス制御部36は、アクセス方向1からのアクセス(データバス26を介するアクセス)時に第1データ転送制御回路28から出力される制御信号を受け、基本データ変換器30〜3(n−1)のどの位置を対象としてデータを書き込むか、または読み出すかを制御する。
第2アクセス制御部37は、アクセス方向2からのアクセス(内部バス25を介するアクセス)時に第2データ転送制御回路29から出力される制御信号を受け、基本データ変換器30〜3(n−1)のどの位置を対象としてデータを書き込むか、または読み出すかを制御する。
図6は、図2に示す第1データ転送制御回路28の内部構成例を説明するための図である。この第1データ転送制御回路28は、第1データ整列回路40と、第2データ整列回路41と、第1レジスタ42と、データ変換器アクセス位置制御回路43と、第1I/F(Interface)44とを含む。
第1I/F44は、DMAコントローラ18とのハンドシェークやデータ転送などで使用される信号、CPU17からのデータ読み出し要求やデータ書き込み要求などの信号を入出力する。
第1レジスタ42は、転送データのビット幅、データバス26のバス幅などのデータ転送モードを決定する情報を一時的に保持する。CPU17は、第1I/F44を介してこれらの情報を第1レジスタ42に書き込む。
データ変換器アクセス位置制御回路43は、データ変換器30〜3(n−1)のデータ書き込み位置またはデータ読み出し位置を決定し、データ変換器30〜3(n−1)に対して位置情報を出力する。
第1データ整列回路40は、第1レジスタ42に保持されるデータ転送モードを決定する情報およびデータ変換器アクセス位置制御回路43から出力される基本データ変換器30〜3(n−1)に対するアクセス位置を参照し、データバス26上のデータを必要に応じて分配して基本データ変換器30〜3(n−1)に出力する。
第2データ整列回路41は、第1レジスタ42に保持されるデータ転送モードを決定する情報およびデータ変換器アクセス位置制御回路43から出力される基本データ変換器30〜3(n−1)に対するアクセス位置を参照し、基本データ変換器30〜3(n−1)から出力されるデータを必要に応じて並べ替えてデータバス26に出力する。
図7は、図2に示す第2データ転送制御回路29の内部構成例を説明するための図である。この第2データ転送制御回路29は、第3データ整列回路50と、第4データ整列回路51と、第2レジスタ52と、データ変換器/ローカルメモリアクセス位置制御回路53と、第2I/F54とを含む。
第2I/F54は、第2レジスタ52との間でデータの入出力を行なう。
第2レジスタ52は、転送データのビット幅、データバス26のバス幅などのデータ転送モードを決定する情報を一時的に保持する。CPU17は、第2I/F54を介してこれらの情報を第2レジスタ52に書き込む。
データ変換器/ローカルメモリアクセス位置制御回路53は、データ変換器30〜3(n−1)のデータ書き込み位置またはデータ読み出し位置を決定し、データ変換器30〜3(n−1)に対して位置情報を出力する。また、データ変換器/ローカルメモリアクセス位置制御回路53は、ローカルメモリ22に対するデータ読み出し位置またはデータ書き込み位置を決定し、ローカルメモリ22に対して位置情報を出力する。
第3データ整列回路50は、第2レジスタ52に保持されるデータ転送モードを決定する情報と、データ変換器/ローカルメモリアクセス位置制御回路53から出力される基本データ変換器30〜3(n−1)に対するアクセス位置およびローカルメモリ22に対するアクセス位置を参照し、基本データ変換器30〜3(n−1)から出力されるデータを必要に応じて並べ替えて内部バス25に出力する。
第4データ整列回路51は、第2レジスタ52に保持されるデータ転送モードを決定する情報と、データ変換器/ローカルメモリアクセス位置制御回路53から出力される基本データ変換器30〜3(n−1)に対するアクセス位置およびローカルメモリ22に対するアクセス位置を参照し、内部バス25上のデータを必要に応じて分配して基本データ変換器30〜3(n−1)に出力する。
図8は、本発明の第1の実施の形態におけるデータ処理装置の具体的な構成を示す図である。図2に示す第1の実施の形態におけるデータ処理装置の構成と同様であるが、データバス幅が64ビット、内部バス幅が64ビット、同時に動作する演算器の数が4096個となっている。
演算器23とローカルメモリ22との間において、1マシンサイクルで少なくとも演算器数と同数の4096ビットのデータ転送が必要となる。また、図5を用いて説明したように、データ入出力装置21に対して入出力されるデータのビット幅が8ビット幅、16ビット幅および32ビット幅であるとすると、データ変換器27は、データバス26側から32ビット幅でアクセス可能であり、内部バス25側から8ビット幅でアクセス可能な基本データ変換器8面によって構成される。
図9および図10は、図8に示すデータ処理装置の構成において、外部メモリ24から8ビット幅のデータを入力してローカルメモリ22に出力する場合の動作を説明するための図である。なお、図9および図10においては、8個の基本データ変換器の参照番号を70〜77としている。
図9は、第1データ転送制御回路28が外部メモリ24から8ビット幅の8つのデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。
まず、CPU17は、第1データ転送制御回路28内の第1レジスタ42および第2データ転送制御回路29内の第2レジスタ52に、転送データのビット数(=8)、データバス26のバス幅(=64)、内部バス25のバス幅(=64)、書き込み先となるローカルメモリ22のアドレス情報などを設定する。このとき、設定された情報からデータ変換器70〜77に一時的に保持するデータ量Mが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図9および図10において、このデータ量Mは8となる。
次に、CPU17は、外部メモリ24から、最初の8ビットの転送データが格納されるアドレスから64ビット単位でデータが順次読み出されるように、たとえばDMAコントローラ18を制御する。
マシンサイクルnにおいて、データバス26上にそれぞれが8ビット幅のデータD0〜D7が出力されると、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77に対してビットパラレル・ワードシリアル態様で最初のデータ位置に8ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、第1レジスタ42に保持される情報およびデータ変換器アクセス位置制御回路43から出力される位置情報を参照して、データバス26上に出力された64ビットのデータを、8ビット幅のデータD0〜D7に分割し、それぞれを基本データ変換器70〜77に同時に出力する。これによって、データD0〜D7のそれぞれが、基本データ変換器70〜77に書き込まれる。
マシンサイクルn+1において、データバス26上にそれぞれが8ビット幅のデータD8〜D15が出力されると、データ変換器アクセス位置制御回路43は同様にして、基本データ変換器70〜77に対して2番目のデータ位置に8ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40も同様に、データバス26上に出力された64ビットのデータを、8ビット幅のデータD8〜D15に分割し、それぞれを基本データ変換器70〜77に同時に出力する。これによって、データD8〜D15のそれぞれが、基本データ変換器70〜77に書き込まれる。
マシンサイクルn+2において、データバス26上にそれぞれが8ビット幅のデータD16〜D23が出力されると、データ変換器アクセス位置制御回路43は同様にして、基本データ変換器70〜77に対して3番目のデータ位置に8ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40も同様に、データバス26上に出力された64ビットのデータを、8ビット幅のデータD16〜D23に分割し、それぞれを基本データ変換器70〜77に同時に出力する。これによって、データD16〜D23のそれぞれが、基本データ変換器70〜77に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ書き込みサイズがM(=8)となるまで、基本データ変換器70〜77の書き込みアドレスを変更しながらデータ書込みが繰り返される。
基本データ変換器70〜77に対するデータ書き込みサイズがM(=8)になると、第2データ転送制御回路29は、データ変換器27からローカルメモリ22へのデータ転送を開始する。
図10は、第2データ転送制御回路29がデータ変換器27から64ビット幅のデータを入力してローカルメモリ22に出力する場合の動作を説明するための図である。
マシンサイクルnにおいて、データ変換器/ローカルメモリアクセス位置制御回路53は、第2レジスタ52に保持される情報を参照して、基本データ変換器70〜77に対してビットシリアル・ワードパラレル態様で最初のデータ位置にある8ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD00,D10,D20...D70を読み出すように位置情報を出力する。
また、データ変換器/ローカルメモリアクセス位置制御回路53は、第2レジスタ52を参照して、基本データ変換器70〜77から読み出した64ビットのデータをローカルメモリ22のどの領域に書き込むかを示す位置情報(書き込みアドレス)をローカルメモリ22に出力する。
また、第3データ整列回路50は、第2レジスタ52に保持される情報およびデータ変換器/ローカルメモリアクセス位置制御回路53から出力される位置情報を参照して、基本データ変換器70〜77から読み出したデータを内部バス25向けの64ビットのデータに並べ替えて、64ビットのデータD00,D10,D20...D620,D630として内部バス25に出力する。これによって、64ビットのデータがローカルメモリ22の所定領域に書き込まれる。
マシンサイクルn+1において、データ変換器/ローカルメモリアクセス位置制御回路53は同様に、基本データ変換器70〜77に対して2番目のデータ位置にある8ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD01,D11,D21...D71を読み出すように位置情報を出力する。
また、データ変換器/ローカルメモリアクセス位置制御回路53は、基本データ変換器70〜77から読み出した64ビットのデータをローカルメモリ22の次の領域に書き込むことを示す位置情報(書き込みアドレス)をローカルメモリ22に出力する。
また、第3データ整列回路50も同様に、基本データ変換器70〜77から読み出したデータを内部バス25向けの64ビットのデータに並べ替えて、64ビットのデータD01,D11,D21...D621,D631として内部バス25に出力する。これによって、64ビットのデータがローカルメモリ22の次の領域に書き込まれる。
マシンサイクルn+2において、データ変換器/ローカルメモリアクセス位置制御回路53は同様に、基本データ変換器70〜77に対して3番目のデータ位置にある8ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD02,D12,D22...D72を読み出すように位置情報を出力する。
また、データ変換器/ローカルメモリアクセス位置制御回路53は、基本データ変換器70〜77から読み出した64ビットのデータをローカルメモリ22の次の領域に書き込むことを示す位置情報(書き込みアドレス)をローカルメモリ22に出力する。
また、第3データ整列回路50も同様に、基本データ変換器70〜77から読み出したデータを内部バス25向けの64ビットのデータに並べ替えて、64ビットのデータD02,D12,D22...D622,D632として内部バス25に出力する。これによって、64ビットのデータがローカルメモリ22の次の領域に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ読み出しサイズがM(=8)となるまで、基本データ変換器70〜77の読み出しアドレスを変更しながらデータ読み出しが繰り返され、ローカルメモリ22に対するデータ書き込みが繰り返される。
図11は、第1データ転送制御回路28が外部メモリ24から16ビット幅の4つのデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。
まず、CPU17は、第1データ転送制御回路28内の第1レジスタ42および第2データ転送制御回路29内の第2レジスタ52に、転送データのビット数(=16)、データバス26のバス幅(=64)、内部バス25のバス幅(=64)、書き込み先となるローカルメモリ22のアドレス情報などを設定する。このとき、設定された情報からデータ変換器70〜77に一時的に保持するデータ量Mが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図11において、このデータ量Mは16となる。
次に、CPU17は、外部メモリ24から、最初の16ビットの転送データが格納されるアドレスから64ビット単位でデータが順次読み出されるように、たとえばDMAコントローラ18を制御する。
マシンサイクルnにおいて、データバス26上にそれぞれが16ビット幅のデータD0〜D3が出力されると、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜73の4面に対してビットパラレル・ワードシリアル態様で最初のデータ位置に16ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、第1レジスタ42に保持される情報およびデータ変換器アクセス位置制御回路43から出力される位置情報を参照して、データバス26上に出力された64ビットのデータを、16ビット幅のデータD0〜D3に分割し、それぞれを基本データ変換器70〜73に同時に出力する。これによって、データD0〜D3のそれぞれが、基本データ変換器70〜73に書き込まれる。
マシンサイクルn+1において、データバス26上にそれぞれが16ビット幅のデータD4〜D7が出力されると、データ変換器アクセス位置制御回路43は、基本データ変換器74〜77の4面に対して最初のデータ位置に16ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、データバス26上に出力された64ビットのデータを、16ビット幅のデータD4〜D7に分割し、それぞれを基本データ変換器74〜77に同時に出力する。これによって、データD4〜D7のそれぞれが、基本データ変換器74〜77に書き込まれる。
マシンサイクルn+2において、データバス26上にそれぞれが16ビット幅のデータD8〜D11が出力されると、データ変換器アクセス位置制御回路43は、基本データ変換器70〜73の4面に対して2番目のデータ位置に16ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、データバス26上に出力された64ビットのデータを、16ビット幅のデータD8〜D11に分割し、それぞれを基本データ変換器70〜73に同時に出力する。これによって、データD8〜D11のそれぞれが、基本データ変換器70〜73に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ書き込みサイズがM(=16)となるまで、基本データ変換器70〜77の書き込みアドレスを変更しながらデータ書込みが繰り返される。
基本データ変換器70〜77に対するデータ書き込みサイズがM(=16)になると、第2データ転送制御回路29は、データ変換器27からローカルメモリ22へのデータ転送を開始する。なお、データ変換器27からローカルメモリ22へのデータ転送は、図10を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が16となる点が異なる。
図12は、第1データ転送制御回路28が外部メモリ24から32ビット幅の2つのデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。
まず、CPU17は、第1データ転送制御回路28内の第1レジスタ42および第2データ転送制御回路29内の第2レジスタ52に、転送データのビット数(=32)、データバス26のバス幅(=64)、内部バス25のバス幅(=64)、書き込み先となるローカルメモリ22のアドレス情報などを設定する。このとき、設定された情報からデータ変換器70〜77に一時的に保持するデータ量Mが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図12において、このデータ量Mは32となる。
次に、CPU17は、外部メモリ24から、最初の32ビットの転送データが格納されるアドレスから64ビット単位でデータが順次読み出されるように、たとえばDMAコントローラ18を制御する。
マシンサイクルnにおいて、データバス26上にそれぞれが32ビット幅のデータD0〜D1が出力されると、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜71の2面に対してビットパラレル・ワードシリアル態様で最初のデータ位置に32ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、第1レジスタ42に保持される情報およびデータ変換器アクセス位置制御回路43から出力される位置情報を参照して、データバス26上に出力された64ビットのデータを、32ビット幅のデータD0〜D1に分割し、それぞれを基本データ変換器70〜71に同時に出力する。これによって、データD0〜D1のそれぞれが、基本データ変換器70〜71に書き込まれる。
マシンサイクルn+1において、データバス26上にそれぞれが32ビット幅のデータD2〜D3が出力されると、データ変換器アクセス位置制御回路43は、基本データ変換器72〜73の2面に対して最初のデータ位置に32ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、データバス26上に出力された64ビットのデータを、32ビット幅のデータD2〜D3に分割し、それぞれを基本データ変換器72〜73に同時に出力する。これによって、データD2〜D3のそれぞれが、基本データ変換器72〜73に書き込まれる。
マシンサイクルn+2において、データバス26上にそれぞれが32ビット幅のデータD4〜D5が出力されると、データ変換器アクセス位置制御回路43は、基本データ変換器74〜75の2面に対して最初のデータ位置に32ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、データバス26上に出力された64ビットのデータを、32ビット幅のデータD4〜D5に分割し、それぞれを基本データ変換器74〜75に同時に出力する。これによって、データD4〜D5のそれぞれが、基本データ変換器74〜75に書き込まれる。
マシンサイクルn+3において、データバス26上にそれぞれが32ビット幅のデータD6〜D7が出力されると、データ変換器アクセス位置制御回路43は、基本データ変換器76〜77の2面に対して最初のデータ位置に32ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第1データ整列回路40は、データバス26上に出力された64ビットのデータを、32ビット幅のデータD6〜D7に分割し、それぞれを基本データ変換器76〜77に同時に出力する。これによって、データD6〜D7のそれぞれが、基本データ変換器76〜77に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ書き込みサイズがM(=32)となるまで、基本データ変換器70〜77の書き込みアドレスを変更しながらデータ書込みが繰り返される。
基本データ変換器70〜77に対するデータ書き込みサイズがM(=32)になると、第2データ転送制御回路29は、データ変換器27からローカルメモリ22へのデータ転送を開始する。なお、データ変換器27からローカルメモリ22へのデータ転送は、図10を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が32となる点が異なる。
図13および図14は、図8に示すデータ処理装置の構成において、ローカルメモリ22から64ビット幅のデータを入力して外部メモリ24に出力する場合の動作を説明するための図である。
図13は、第2データ転送制御回路29がローカルメモリ22から8ビット幅のデータを入力してデータ変換器27に出力する場合の動作を説明するための図である。
まず、CPU17は、第1データ転送制御回路28内の第1レジスタ42および第2データ転送制御回路29内の第2レジスタ52に、転送データのビット数(=8)、データバス26のバス幅(=64)、内部バス25のバス幅(=64)、読み出し先となるローカルメモリ22のアドレス情報などを設定する。このとき、設定された情報からデータ変換器70〜77に一時的に保持するデータ量Mが求められ、データ変換におけるサイクルレイテンシが最小となる値として設定される。図13および図14において、このデータ量Mは8となる。
次に、CPU17は、外部メモリ24に対して、最初の8ビットのデータが格納されるアドレスから64ビット単位でデータが順次書き込まれるように、たとえばDMAコントローラ18を制御する。
マシンサイクルnにおいて、データ変換器/ローカルメモリアクセス位置制御回路53は、第2レジスタ52を参照して、ローカルメモリ22のどの領域からデータを読み出すかを示す位置情報(読み出しアドレス)をローカルメモリ22に出力する。
また、データ変換器/ローカルメモリアクセス位置制御回路53は、第2レジスタ52に保持される情報を参照して、基本データ変換器70〜77に対してビットシリアル・ワードパラレル態様で最初のデータ位置に8ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第4データ整列回路51は、第2レジスタ52に保持される情報を参照して、内部バス25上に出力された64ビットのデータD00,D10,D20...D620,D630を8つのデータに分割し、それぞれを基本データ変換器70〜77に同時に出力して書き込む。たとえば、基本データ変換器70に対して8ビットのデータD00,D10...D70が書き込まれる。
マシンサイクルn+1において、データ変換器/ローカルメモリアクセス位置制御回路53は、ローカルメモリ22の次の領域からデータを読み出すことを示す位置情報(読み出しアドレス)をローカルメモリ22に出力する。
また、データ変換器/ローカルメモリアクセス位置制御回路53は、第2レジスタ52に保持される情報を参照して、基本データ変換器70〜77に対してビットシリアル・ワードパラレル態様で2番目のデータ位置に8ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第4データ整列回路51は、第2レジスタ52に保持される情報を参照して、内部バス25上に出力された64ビットのデータD01,D11,D21...D621,D631を8つのデータに分割し、それぞれを基本データ変換器70〜77に同時に出力して書き込む。たとえば、基本データ変換器70に対して8ビットのデータD01,D11...D71が書き込まれる。
マシンサイクルn+2において、データ変換器/ローカルメモリアクセス位置制御回路53は、ローカルメモリ22の次の領域からデータを読み出すことを示す位置情報(読み出しアドレス)をローカルメモリ22に出力する。
また、データ変換器/ローカルメモリアクセス位置制御回路53は、第2レジスタ52に保持される情報を参照して、基本データ変換器70〜77に対してビットシリアル・ワードパラレル態様で3番目のデータ位置に8ビットのデータを書き込むように位置情報(書き込みアドレス)を出力する。
また、第4データ整列回路51は、第2レジスタ52に保持される情報を参照して、内部バス25上に出力された64ビットのデータD02,D12,D22...D622,D632を8つのデータに分割し、それぞれを基本データ変換器70〜77に同時に出力して書き込む。たとえば、基本データ変換器70に対して8ビットのデータD02,D12...D72が書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ書き込みサイズがM(=8)となるまで、ローカルメモリ22の読み出しアドレスおよび基本データ変換器70〜77の書き込みアドレスを変更しながらデータ書込みが繰り返される。
基本データ変換器70〜77に対するデータ書き込みサイズがM(=8)になると、第1データ転送制御回路28は、データ変換器27から外部メモリ24へのデータ転送を開始する。
図14は、第1データ転送制御回路28がデータ変換器27から8ビット幅の8つのデータを入力してデータバス26に出力する場合の動作を説明するための図である。
マシンサイクルnにおいて、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある8ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD0を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD0〜D7としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の所定領域に書き込まれる。
マシンサイクルn+1において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77に対してビットパラレル・ワードシリアル態様で2番目のデータ位置にある8ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD8を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD8〜D15としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
マシンサイクルn+2において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77に対してビットパラレル・ワードシリアル態様で3番目のデータ位置にある8ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD16を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜77から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD16〜D23としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ読み出しサイズがM(=8)となるまで、基本データ変換器70〜77の読み出しアドレスを変更しながらデータ読み出しが繰り返され、外部メモリ24に対するデータ書き込みが繰り返される。
図15は、第1データ転送制御回路28がデータ変換器27から16ビット幅の4つのデータを入力してデータバス26に出力する場合の動作を説明するための図である。なお、ローカルメモリ22からデータ変換器27へのデータ転送は、図13を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が16となる点が異なる。
マシンサイクルnにおいて、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜73に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある16ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して16ビットのデータD0を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜73から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD0〜D3としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の所定領域に書き込まれる。
マシンサイクルn+1において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器74〜77に対してビットパラレル・ワードシリアル態様で1番目のデータ位置にある16ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器74に対して16ビットのデータD4を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器74〜77から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD4〜D7としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
マシンサイクルn+2において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜73に対してビットパラレル・ワードシリアル態様で2番目のデータ位置にある16ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して8ビットのデータD8を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜73から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD8〜D11としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ読み出しサイズがM(=16)となるまで、基本データ変換器70〜77の読み出しアドレスを変更しながらデータ読み出しが繰り返され、外部メモリ24に対するデータ書き込みが繰り返される。
図16は、第1データ転送制御回路28がデータ変換器27から32ビット幅の2つのデータを入力してデータバス26に出力する場合の動作を説明するための図である。なお、ローカルメモリ22からデータ変換器27へのデータ転送は、図13を用いて説明したものと同様であるが、データ転送に必要となるマシンサイクル数が32となる点が異なる。
マシンサイクルnにおいて、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜71に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある32ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器70に対して32ビットのデータD0を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器70〜71から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD0〜D1としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の所定領域に書き込まれる。
マシンサイクルn+1において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器72〜73に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある32ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器72に対して32ビットのデータD2を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器72〜73から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD2〜D3としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
マシンサイクルn+2において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器74〜75に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある32ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器74に対して32ビットのデータD4を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器74〜75から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD4〜D5としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
マシンサイクルn+3において、データ変換器アクセス位置制御回路43は、第1レジスタ42に保持される情報を参照して、基本データ変換器76〜77に対してビットパラレル・ワードシリアル態様で最初のデータ位置にある32ビットのデータを読み出すように位置情報(読み出しアドレス)を出力する。たとえば、基本データ変換器76に対して32ビットのデータD6を読み出すように位置情報を出力する。
また、第2データ整列回路41は、第1レジスタ42に保持される情報を参照して、基本データ変換器76〜77から読み出したデータをデータバス26向けの64ビットのデータに並べ替えて、64ビットのデータD6〜D7としてデータバス26に出力する。これによって、64ビットのデータが外部メモリ24の次の領域に書き込まれる。
以下、同様の動作が繰り返されて、基本データ変換器70〜77に対するデータ読み出しサイズがM(=32)となるまで、基本データ変換器70〜77の読み出しアドレスを変更しながらデータ読み出しが繰り返され、外部メモリ24に対するデータ書き込みが繰り返される。
以上説明したように、本実施の形態におけるデータ入出力装置によれば、データバス26側および内部バス25側から同時にアクセス可能な複数面の基本データ変換器30〜3(n−1)によってデータ変換器27を構成し、転送データのビット数に応じてアクセスする基本データ変換器、および基本データ変換器のアクセス位置を制御するようにした。これによって、データバス26とデータ変換器27との間のデータ転送、およびデータ変換器27と内部バス25との間のデータ転送が1マシンサイクルで行なえるようになった。したがって、データ変換器27の動作周波数を、低速なデータバス26の動作周波数と同じにすることができ、低消費電力化を実現することが可能となった。
また、ローカルメモリ22と演算器23との間のデータ転送で使用されるバス幅よりも小さいバス幅で、データ変換器27とローカルメモリ22との間のデータ転送を行なうようにしたので、データ変換器27に一時的に保持するデータ数を削減でき、データ変換におけるサイクルレイテンシおよびデータ変換器27の回路規模を削減することが可能となった。したがって、半導体装置にデータ入出力装置を搭載する場合、チップ面積を小さくすることが可能となる。
さらに、データバス26のバス幅、転送データのビット数などから決まるデータ転送形態に関する情報によって、データ変換器27に一時的に保持するデータ量を切り替えてデータ変換器27に対するアクセスを制御するようにしたので、データ変換におけるサイクルレイテンシが最小となるようにデータ転送を行なうことができ、データ転送を高速化することが可能となった。
(第2の実施の形態)
図17は、本発明の第2の実施の形態におけるデータ処理装置の構成例を示すブロック図である。図2に示す第1の実施の形態におけるデータ処理装置と比較して、データ変換器27が第1データ変換器81および第2データ変換器82に置換され、セレクタ83および84が追加された点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるデータ処理装置およびデータ入出力装置の参照番号を、それぞれ20aおよび21aとして説明する。また、第1データ変換器81および第2データ変換器82の内部構成は、図4に示すデータ変換器27の内部構成と同様である。
セレクタ83は、データバス26側からアクセス可能なデータ変換器を切り替えるものであり、第1データ転送制御回路28を、第1データ変換器81または第2データ変換器82のいずれかに選択的に接続する。このセレクタ83の切り替え制御は、第1データ転送制御回路28によって行なわれる。
セレクタ84は、内部バス25側からアクセス可能なデータ変換器を切り替えるものであり、第2データ転送制御回路29を、第1データ変換器81または第2データ変換器82のいずれかに選択的に接続する。このセレクタ84の切り替え制御は、第2データ転送制御回路29によって行なわれる。
このように構成することにより、一方のデータ変換器がデータバス26との間でデータ転送を行なっている最中に、他方のデータ変換器が内部バス25との間でデータ転送を行なうことが可能となる。
図18は、第2の実施の形態におけるデータ入出力装置21aがデータバス26から入力したデータをローカルメモリ22に出力するときの動作を説明するためのタイミングチャートである。
まず、T1において、第1データ転送制御回路28は、第1データ転送制御回路28に第1データ変換器81が接続されるようにセレクタ83を切り替え、データバス26上のデータを順次第1データ変換器81に書き込む。
第1データ変換器81へのデータ書き込みが完了すると、T2において、第2データ転送制御回路29は、第2データ転送制御回路29に第1データ変換器81が接続されるようにセレクタ84を切り替え、第1データ変換器81に格納されているデータを順次ローカルメモリ22に書き込む。これと並行して、第1データ転送制御回路28は、第1データ転送制御回路28に第2データ変換器82が接続されるようにセレクタ83を切り替え、データバス26上のデータを順次第2データ変換器82に書き込む。
第2データ変換器82へのデータ書き込みおよびローカルメモリ22へのデータ書き込みが完了すると、T3において、第1データ転送制御回路28は、第1データ転送制御回路28に第1データ変換器81が接続されるようにセレクタ83を切り替え、データバス26上のデータを順次第1データ変換器81に書き込む。これと並行して、第2データ転送制御回路29は、第2データ転送制御回路29に第2データ変換器82が接続されるようにセレクタ84を切り替え、第2データ変換器82に格納されているデータを順次ローカルメモリ22に書き込む。
同様にして、T4において、第1データ変換器81に格納されているデータを順次ローカルメモリ22に書き込み、データバス26上のデータを順次第2データ変換器82に書き込む。
同様にして、T5において、データバス26上のデータを順次第1データ変換器81に書き込み、第2データ変換器82に格納されているデータを順次ローカルメモリ22に書き込む。
同様にして、T6において、第1データ変換器81に格納されているデータを順次ローカルメモリ22に書き込み、データバス26上のデータを順次第2データ変換器82に書き込む。
これらの処理を順次繰り返すことによって、データバス26における空きサイクルなしで、第1データ変換器81または第2データ変換器82に対するデータ書き込みが行なえる。また、内部バス25における空きサイクルなしで、ローカルメモリ22に対するデータ書き込みが行なえるようになる。
図19は、第2の実施の形態におけるデータ入出力装置21aがローカルメモリ22から入力したデータをデータバス26に出力するときの動作を説明するためのタイミングチャートである。
まず、T1において、第2データ転送制御回路29は、第2データ転送制御回路29に第1データ変換器81が接続されるようにセレクタ84を切り替え、ローカルメモリ22から入力したデータを順次第1データ変換器81に書き込む。
第1データ変換器81へのデータ書き込みが完了すると、T2において、第1データ転送制御回路28は、第1データ転送制御回路28に第1データ変換器81が接続されるようにセレクタ83を切り替え、第1データ変換器81に格納されているデータを順次データバス26に出力する。これと並行して、第2データ転送制御回路29は、第2データ転送制御回路29に第2データ変換器82が接続されるようにセレクタ84を切り替え、ローカルメモリ22から入力したデータを順次第2データ変換器82に書き込む。
データバス26へのデータ出力および第2データ変換器82へのデータ書き込みが完了すると、T3において、第2データ転送制御回路29は、第2データ転送制御回路29に第1データ変換器81が接続されるようにセレクタ84を切り替え、ローカルメモリ22から入力したデータを順次第1データ変換器81に書き込む。これと並行して、第1データ転送制御回路28は、第1データ転送制御回路28に第2データ変換器82が接続されるようにセレクタ83を切り替え、第2データ変換器82に格納されているデータを順次データバス26に出力する。
同様にして、T4において、第1データ変換器81に格納されているデータを順次データバス26に出力し、ローカルメモリ22から入力したデータを順次第2データ変換器82に書き込む。
同様にして、T5において、ローカルメモリ22から入力したデータを順次第1データ変換器81に書き込み、第2データ変換器82に格納されているデータを順次データバス26に出力する。
同様にして、T6において、第1データ変換器81に格納されているデータを順次データバス26に出力し、ローカルメモリ22から入力したデータを順次第2データ変換器82に書き込む。
これらの処理を順次繰り返すことによって、データバス26における空きサイクルなしで、第1データ変換器81または第2データ変換器82からデータバス26にデータを出力することができる。また、内部バス25における空きサイクルなしで、ローカルメモリ22から入力したデータを第1データ変換器81または第2データ変換器82に書き込むことができるようになる。
以上説明したように、本実施の形態におけるデータ入出力装置21aによれば、データのフォーマット変換に起因してデータバス26の空きサイクルが発生するといったデータバス26の使用効率の低下が起こるのを防止でき、データ入出力サイクルの削減、すなわちデータ入出力の高速化が可能となった。
(第3の実施の形態)
図20は、本発明の第3の実施の形態におけるデータ処理装置の構成例を示すブロック図である。図2に示す第2の実施の形態におけるデータ処理装置20または図17に示す第2の実施の形態におけるデータ処理装置20aと比較して、データバス26に接続されるバッファメモリ91が追加されて点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるデータ処理装置の参照番号を20bとして説明する。
バッファ91は、SRAM(Static Random Access Memory)などの高速メモリによって構成され、SDRAM(Synchronous Dynamic Random Access Memory)などによって構成される外部メモリ24よりも高速アクセスが可能である。このバッファメモリ91は、外部メモリ24とデータ入出力装置21または21aとの間のデータ転送の途中で一時的にデータを保持する。
バッファメモリ91は、データ入力とデータ出力との処理で共用されるようにしてもよく、データ入力とデータ出力とでそれぞれ専用のバッファメモリが使用されるようにしてもよい。
第3の実施の形態においては、データ入出力装置21または21aが、外部メモリ24との間でデータ入出力を行なうのではなく、バッファメモリ91との間でデータの入出力を行なう。
CPU17は、データ入出力装置21または21aがバッファメモリ91からデータ入力を行なう前に、そのデータが、外部メモリ24からバッファメモリ91に転送されるように、たとえばDMAコントローラ18を制御する。なお、バッファメモリ91にデータが転送された後の処理は、第1の実施の形態および第2の実施の形態において説明した処理と同様である。
また、データ入出力装置21または21aがバッファメモリ91に演算結果などのデータを書き込んだ後、CPU17は、そのデータがバッファメモリ91から外部メモリ24に転送されるように、たとえばDMAコントローラ18を制御する。なお、データ入出力装置21または21aがバッファメモリ91にデータを書き込むまでの処理は、第1の実施の形態および第2の実施の形態において説明した処理と同様である。
第1の実施の形態または第2の実施の形態においては、データ処理装置20または20aと外部メモリ24とが、データ転送処理サイクルの観点から遠くに配置されるため、データ転送に要するサイクル数が多くなる。また、外部メモリ24がDRAM、SDRAMなどで構成される場合には、アクセス途中でページミスが発生するなどして、データ入出力装置21または21aと外部メモリ24との間のデータ転送においてサイクルオーバーヘッドが発生することが多い。
本実施の形態においては、データ処理装置20または20aとバッファメモリ91とが、データ転送処理サイクルの観点から近くに配置されるため、データ転送に要するサイクル数を少なくすることができる。これによって、データ処理装置20または20aが外部メモリ24との間でデータ転送を行なう場合と比較して、データ転送で発生するオーバーヘッドを削減でき、データ入出力を高速化することができる。
図21は、バッファメモリ91がない場合のデータ入出力装置21または21aによる外部メモリ24とローカルメモリ22との間のデータ転送を説明するためのタイミングチャートである。なお、図21は、演算処理の一例として、画像処理の場合について説明するものである。
データ入出力装置21または21aによるローカルメモリ22から外部メモリ24へのライン(n−1)’の演算結果のデータ出力が完了すると、T1において、データ入出力装置21または21aは、外部メモリ24からラインnのデータを入力して、フォーマット変換を行なってローカルメモリ22に出力する。
次に、T2において、複数の演算器23は、ローカルメモリ22に転送されたラインnのデータに対して、n’=f(n)の演算を行ない、演算結果をローカルメモリ22に書き込む。
そして、T3において、データ入出力装置21または21aは、ローカルメモリ22からラインn’の演算結果のデータを入力して、フォーマット変換を行なって外部メモリ24に出力する。
このように、データ入出力装置21または21aと複数の演算器23とが、ローカルメモリ22に対して同時にアクセスすることができない。そのため、外部メモリ24からローカルメモリ22へのデータ入力期間(T1)、複数の演算器23による演算期間(T2)およびローカルメモリ22から外部メモリ24へのデータ出力期間(T3)をオーバーラップさせることができない。
図22は、バッファメモリ91がある場合のデータ入出力装置21または21aによる外部メモリ24とローカルメモリ22との間のデータ転送を説明するためのタイミングチャートである。なお、図22は、バッファメモリ91として、データ入力専用のバッファメモリ(以下、データ入力用バッファメモリと呼ぶ。)と、データ出力専用のバッファメモリ(以下、データ出力用バッファメモリと呼ぶ。)とが別々に設けられている場合について説明するものである。
図22において、転送1は、外部メモリ24からデータ入力用バッファメモリにデータを転送するのに必要となる期間を示す。また、転送2は、データ入力用バッファメモリからローカルメモリ22にデータを転送するのに必要となる期間を示す。
転送3は、ローカルメモリ22からデータ出力用バッファメモリにデータを転送するのに必要となる期間を示す。また、転送4は、データ出力用バッファメモリから外部メモリ24にデータを転送するのに必要となる期間を示す。
T1において、データ入力用バッファメモリに既に格納されているラインnのデータがローカルメモリ22に転送される。
T2において、複数の演算器23が、ローカルメモリ22に転送されたデータに対して、n’=f(n)の演算を行ない、演算結果のデータを順次ローカルメモリ22に書き込む。これと並行して、次のラインn+1のデータが外部メモリ24からデータ入力用バッファメモリに転送される。
ラインnの演算処理が完了すると、T3において、ラインnの演算結果のデータがローカルメモリ22からデータ出力用バッファメモリに転送される。
ラインnの演算結果のデータのデータ出力用バッファメモリへの転送が完了すると、データ出力用バッファメモリから外部メモリ24へのラインnの演算結果のデータの転送が開始される。これと並行して、データ入力用バッファメモリからローカルメモリ22へのラインn+1のデータの転送が開始される。
このように、バッファメモリ91を経由して、外部メモリ24からローカルメモリ22へのデータ転送を行なうことにより、外部メモリ24とローカルメモリ22との間のデータ転送期間は、外部メモリ24からデータ入力用バッファメモリへのデータ転送期間(期間1)と、データ出力用バッファメモリから外部メモリ24へのデータ転送期間(転送4)とが増えることになる。
しかしながら、外部メモリ24からデータ入力用バッファメモリへのデータ転送(期間1)と、演算処理と、データ出力用バッファメモリから外部メモリ24へのデータ転送(期間4)とを並行して行なうことができる。そのため、見かけ上のデータ転送期間は、データ入力用バッファメモリからローカルメモリ22へのデータ転送期間(期間2)およびローカルメモリ22からデータ出力用バッファメモリへのデータ転送期間(期間3)のみとなり、高速にデータ転送が行なえることになる。
以上説明したように、本実施の形態におけるデータ処理装置20bによれば、バッファメモリ91を経由して、外部メモリ24とローカルメモリ22との間のデータ転送を行なうようにした。したがって、外部メモリ24とバッファメモリ91との間のデータ転送と、演算動作とを並行して行なえるようになり、データ転送のみに要する時間(実効上のデータ入出力時間)を削減することが可能となった。
(第4の実施の形態)
図23は、本発明の第4の実施の形態におけるデータ処理装置の構成例を示すブロック図である。図20に示す第3の実施の形態におけるデータ処理装置20bと比較して、バッファメモリ91がデータバス26とデータ入出力装置21との間に接続される点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるデータ処理装置の参照番号を20cとして説明する。
また、図23においては、データ入出力装置21が記載されているが、図17に示すデータ入出力装置21aと置換することも可能であることは言うまでもない。
バッファメモリ91は、データバス26およびデータ入出力装置91の両方からアクセスが可能なデュアルポートRAMによって構成されてもよいし、データバス26およびデータ入出力装置21との接続をセレクタによって切り替えるようにしてもよい。
図23に示すデータ処理装置20cにおいては、データ入出力装置21の外部にバッファメモリ91を配置するようにしたが、データ処理装置21がバッファメモリ91を介してデータバス26に接続されていればよく、データ入出力装置21内部にバッファメモリ91が含まれる構成であっても構わない。
以上説明したように、バッファメモリ91を介してデータ入出力装置21とデータバス26との間のデータ転送を行なうようにしたので、第3の実施の形態において説明した効果と同様の効果を奏することが可能となった。
(第5の実施の形態)
本発明の第5の実施の形態におけるデータ処理装置の構成は、図20に示す第3の実施の形態におけるデータ処理装置20bまたは図23に示す第4の実施の形態におけるデータ処理装置20cの構成と同様である。本実施の形態においては、バッファメモリ91にデータ変換機能を追加した点のみが異なる。
バッファメモリ91によるデータ変換機能は、データ入力時の前処理またはデータ出力時の後処理として、複数の演算器23が演算するデータを変換単位ごとの複数データに分割、または複数の演算器23によって演算され、変換単位ごとの複数データに断片化されたデータを結合するものである。
図24は、本発明の第5の実施の形態におけるバッファメモリ91のデータ変換機能の一例を説明するための図である。図24(a)は、データバス26に含まれるビットパラレル・ワードシリアル形式の16ビットデータを示す図である。図24(b)は、バッファメモリ91にビットパラレル・ワードシリアル形式の16ビットデータが格納されたところを示す図である。図24(c)は、バッファメモリ91とデータ入出力装置21または21aとの間で転送されるビットパラレル・ワードシリアル形式の8ビットデータを示す図である。
バッファメモリ91は、データバス26から転送されたビットパラレル・ワードシリアル形式の16ビットデータを分割して、8ビットデータとしてデータ入出力装置21または21aに出力する。図24(b)に示すように、16ビットのデータが、下位8ビットのデータと上位8ビットのデータとに分割される。
また、バッファメモリ91は、データ入出力装置21または21aから転送されたビットパラレル・ワードシリアル形式の8ビットデータを結合して、16ビットのデータとしてデータバス26に出力する。
なお、バッファメモリ91におけるデータ変換の変換単位として、16ビットデータを8ビットデータに分割する場合について説明したが、データ入出力装置21または21aの変換単位よりも粗ければよい。また、バッファメモリ91は、データバスのバス幅、転送するデータのビット数、変換単位のビット数などの設定値に応じて変換処理の内容を切り替えるようにしてもよい。
図25は、本発明の第5の実施の形態におけるデータ処理装置のデータ変換フローの一例を説明するための図である。
まず、バッファメモリ91が転送データを分割してデータ入出力装置21または21aに出力する場合について説明する。T1において、外部メモリ24からデータバス26を介してデータが転送される。このとき、第1の実施の形態において説明したのと同様に、ビットパラレル・ワードシリアル形式の転送データ(ワードデータ)のビット数は、8ビット、16ビットまたは32ビットのいずれかである。
T2において、バッファメモリ91は、ワードデータを分割してデータ入出力装置21または21aに出力する。たとえば、転送データのビット数が32ビットであれば、16ビットデータまたは8ビットデータに分割する。また、転送データのビット数が16ビットであれば、8ビットデータに分割する。
T3において、データ入出力装置21または21a内のデータ変換器27,81または82は、ビットパラレル・ワードシリアル形式のデータをビットシリアル・ワードパラレル形式のデータに変換して、ローカルメモリ22に書き込む。
図4に示すように、基本データ変換器30〜3(n−1)は、アクセス方向1から最大Xビット幅でアクセスが可能なように構成される。第1の実施の形態においては、アクセス方向1から最大32ビット幅でアクセス可能なように基本データ変換器30〜3(n−1)を構成する必要があった。一方、本実施の形態においては、ワードデータを分割してデータ入出力装置21または21aに出力するため、アクセス方向1から最大16ビット幅でアクセス可能な基本データ変換器で構成することができるようになる。
次に、バッファメモリ91がデータ入出力装置21または21aからのデータを結合してデータバス26に出力する場合について説明する。T3において、データ変換器27,81または82は、ローカルメモリ22から入力したビットシリアル・ワードパラレル形式のデータを、ビットパラレル・ワードシリアル形式の8ビットまたは16ビットのデータに変換して、バッファメモリ91に格納する。
T2において、バッファメモリ91は、データ入出力装置21または21aから入力したデータを結合してワードデータとして出力する。たとえば、16ビットデータまたは8ビットデータを結合して32ビットの転送データを生成する。また、8ビットデータを結合して16ビットデータを生成する。
T1において、バッファメモリ91によって結合された転送データが、データバス26を介して外部メモリ24に転送される。
なお、第1の実施の形態において説明したのと同様に、転送データのビット数がデータバス26のバス幅よりも小さい場合には、1マシンサイクルで複数の転送データが同時に転送されることを許容する。また、バッファメモリ91によって分割された後のデータのビット数が、データバス26のバス幅、またはバッファメモリ91とデータ入出力装置21または21aとの間の専用配線のバス幅よりも小さい場合には、1マシンサイクルで複数のデータが専用配線で転送されることを許容する。
データ変換器27における回路規模(回路面積)および変換におけるサイクルレイテンシは、データ変換器27に一時的に保持するデータ量、すなわち対応するデータの最大ビット数に比例する。したがって、回路規模およびサイクルレイテンシの削減効果は、データ変換器27で扱うデータバス側の転送データの最大ビット数が小さければ小さいほど大きくなる。究極的には、転送データのビット数が1ビットの場合、すなわちデータ変換を行なわない場合に最小となる。
転送データのビット数を1ビットとするためには、バッファメモリのデータ変換機能として、第1の実施の形態などにおいて説明したデータ変換器27と同等の機能を持たせることによって実現可能である。しかしながら、多面構成のバッファメモリ構成が必要となり、メモリセルを適用して構成するにしても、多面構成による面積効率の低下が顕著に現れ、逆に回路規模が大きくなってしまう。
すなわち、バッファメモリ91にデータ変換機能を追加することによる回路規模の増加に比べ、対応する最大データのビット幅を減らすことによるデータ変換器27の回路規模の減少が大きければ、回路規模の削減が可能であることを意味する。また、対応する最大データのビット幅の減少により、データ変換におけるサイクルレイテンシを削減することも可能となる。
上述のように、第1の実施の形態においてはアクセス方向1から最大32ビット幅でアクセス可能なように基本データ変換器30〜3(n−1)を構成する必要があるが、本実施の形態においてはアクセス方向1から最大16ビット幅でアクセス可能な基本データ変換器で構成することできる。したがって、基本データ変換器30〜3(n−1)の回路規模を半分に削減することができる。
以上説明したように、本実施の形態におけるデータ処理装置によれば、バッファメモリ91にデータ変換機能を追加して基本データ変換器30〜3(n−1)の回路規模を削減するようにしたので、データ入出力装置21または21a全体の回路規模を削減することができ、データ変換におけるサイクルレイテンシを削減することが可能となった。
(第6の実施の形態)
本発明の第5の実施の形態におけるデータ処理装置の構成は、図23に示す第4の実施の形態におけるデータ処理装置20cの構成と同様である。本実施の形態においては、バッファメモリ91が複数バンクによって構成される点のみが異なる。
バッファメモリ91の第1のバンクに格納されるデータをデータ入出力装置21に転送する間に、外部メモリ24から転送されるデータをバッファメモリ91の第2のバンクに格納する。この動作を交互に繰り返すことによって、外部メモリ24からバッファメモリ91へのデータ転送と、バッファメモリ91からデータ入出力装置21へのデータ転送とを並行して行なえる。
また、バッファメモリ91の第1のバンクに格納されるデータを外部メモリ24に転送する間に、データ入出力装置21から転送されるデータをバッファメモリ91の第2のバンクに格納する。この動作を交互に繰り返すことによって、データ入出力装置21からバッファメモリ91へのデータ転送と、バッファメモリ91から外部メモリ24へのデータ転送とを並行して行なえる。
以上説明したように、本実施の形態におけるデータ処理装置によれば、バッファメモリ91を複数のバンクによって構成し、外部メモリ24と第1のバンクとの間でデータ転送を行なっているときに、データ入出力装置21と第2のバンクとの間でデータ転送を行なうようにしたので、データバス26の使用効率を上げることによる実効上の転送効率を向上させることができ、データ転送を高速化することが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 並列プロセッサ、11,23 演算器、12,22 ローカルメモリ、13,25 内部バス、14 データ変換器、15,26 データバス、16,24 外部メモリ、17 CPU、18 DMAコントローラ、20,20a,20b,20c データ処理装置、21,21a データ入出力装置、27 データ変換器、28 第1データ転送制御回路、29 第2データ転送制御回路、30〜3(n−1),70〜77 基本データ変換器、36 第1アクセス制御部、37 第2アクセス制御部、40 第1データ整列回路、41 第2データ整列回路、42 第1レジスタ、43 データ変換器アクセス位置制御回路、44 第1I/F、50 第3データ整列回路、51 第4データ整列回路、52 第2レジスタ、53 データ変換器/ローカルメモリアクセス位置制御回路、54 第2I/F、81 第1データ変換器、82 第2データ変換器、83,84 セレクタ、91 バッファメモリ。

Claims (13)

  1. 外部装置が接続されるデータバスと、複数の演算器が使用するデータを保持するローカルメモリが接続される内部バスとに接続され、前記データバス上のデータの並びと、前記内部バス上のデータの並びとを相互に変換するデータ入出力装置であって、
    データ変換手段と、
    前記データバスと前記データ変換手段との間のデータ転送を制御する第1のデータ転送制御手段と、
    前記データ変換手段と前記内部バスとの間のデータ転送を制御する第2のデータ転送制御手段とを含み、
    前記データ変換手段は、前記データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、前記内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換手段を複数面含み、
    前記第1のデータ転送制御手段は、少なくともデータバス幅およびデータビット幅を含むデータ転送モード情報に応じて、前記データバス上のデータを格納する前記基本データ変換手段の面数およびどの基本データ変換手段にデータを格納するかを制御し、
    前記第2のデータ転送制御手段は、前記複数面の基本データ変換手段に格納されるデータの前記内部バスへの転送を制御する、データ入出力装置。
  2. 前記第1のデータ転送制御手段は、前記データ転送モード情報に応じて、データ変換におけるレイテンシが最小となるように、前記複数面の基本データ変換手段のそれぞれに一時的に保持するデータ量を変更する、請求項1記載のデータ入出力装置。
  3. 前記第2のデータ転送制御手段は、前記内部バス上のデータの前記複数面の基本データ変換手段への書き込みを制御し、
    前記第1のデータ転送制御手段は、前記データ転送モード情報に応じて、データを読み出す前記基本データ変換手段の面数およびどの基本データ変換手段からデータを読み出すかを制御し、読み出したデータを前記データバスに出力する、請求項1または2記載のデータ入出力装置。
  4. 前記第2のデータ転送制御手段は、前記データ転送モード情報に応じて、データ変換におけるレイテンシが最小となるように、前記複数面の基本データ変換手段のそれぞれに一時的に保持するデータ量を変更する、請求項3記載のデータ入出力装置。
  5. 前記データバスに含まれる最大のデータ数をnとすると、前記データ変換手段は、n面の基本データ変換手段によって構成される、請求項1〜4のいずれかに記載のデータ入出力装置。
  6. 前記データバスに含まれるデータの最大のデータビット幅をX、最大のデータ数をn、内部バス幅をYとすると、前記複数面の基本データ変換手段のそれぞれは、前記データバス側から最大Xビット幅でデータをアクセスすることが可能であり、前記内部バス側から最大Y/nビット幅でデータをアクセスすることが可能である、請求項5記載のデータ入出力装置。
  7. 前記データ入出力装置は、前記データ変換手段を2個含み、
    前記データ入出力装置はさらに、前記第1のデータ転送制御手段に第1のデータ変換手段および第2のデータ変換手段のいずれかを選択的に接続する第1の選択手段と、
    前記第2のデータ転送制御手段に前記第1のデータ変換手段および前記第2のデータ変換手段のいずれかを選択的に接続する第2の選択手段とを含む、請求項1記載のデータ入出力装置。
  8. 前記第1のデータ転送制御手段は前記第1の選択手段を切り替えて、前記データバスと前記第1のデータ変換手段との間のデータ転送を制御するのと並行して、前記第2のデータ転送制御手段は前記第2の選択手段を切り替えて、前記内部バスと第2のデータ変換手段との間のデータ転送を制御する、請求項7記載のデータ入出力装置。
  9. プロセッサと、
    外部メモリと、
    データ入出力装置と、
    ローカルメモリと、
    前記ローカルメモリに接続される複数の演算器とを含み、
    前記プロセッサと、前記外部メモリと、前記データ入出力装置とがデータバスを介して接続され、前記データ入出力装置と、前記ローカルメモリとが内部バスを介して接続されるデータ処理装置であって、
    前記データ入出力装置は、データ変換手段と、
    前記外部メモリと前記データ変換手段との間のデータ転送を制御する第1のデータ転送制御手段と、
    前記データ変換手段と前記ローカルメモリとの間のデータ転送を制御する第2のデータ転送制御手段とを含み、
    前記データ変換手段は、前記データバス側からビットパラレル・ワードシリアル形式でアクセス可能であり、前記内部バス側からビットシリアル・ワードパラレル形式でアクセス可能な基本データ変換手段を複数面含み、
    前記第1のデータ転送制御手段は、少なくともデータバス幅およびデータビット幅を含むデータ転送モード情報に応じて、前記外部メモリからのデータを格納する前記基本データ変換手段の面数およびどの基本データ変換手段にデータを格納するかを制御し、
    前記第2のデータ転送制御手段は、前記複数面の基本データ変換手段に格納されるデータの前記ローカルメモリへの転送を制御する、データ処理装置。
  10. 前記データ処理装置はさらに、前記外部メモリに格納されるデータを一時的に保持する、前記外部メモリよりも高速にアクセス可能なバッファメモリを含み、
    前記第1のデータ転送制御手段は、前記バッファメモリと前記データ変換手段との間のデータ転送を制御する、請求項9記載のデータ処理装置。
  11. 前記複数の演算器が前記ローカルメモリに格納されるデータに対する演算を実行するのと並行して、前記外部メモリと前記バッファメモリとの間のデータ転送が行なわれる、請求項10記載のデータ処理装置。
  12. 前記バッファメモリは、前記外部メモリから転送されたデータを分割して前記データ入出力装置に出力し、前記データ入出力装置から入力されたデータを結合して前記外部メモリに転送する、請求項10または11記載のデータ処理装置。
  13. 前記データ処理装置は、バッファメモリを複数バンク含み、
    前記外部メモリと第1のバンクとの間のデータ転送が行なわれるのと並行して、第2のバンクと前記データ入出力装置との間のデータ転送が行なわれる、請求項10または11記載のデータ処理装置。
JP2009257022A 2009-11-10 2009-11-10 データ入出力装置およびそれを用いたデータ処理装置 Withdrawn JP2011103025A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009257022A JP2011103025A (ja) 2009-11-10 2009-11-10 データ入出力装置およびそれを用いたデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009257022A JP2011103025A (ja) 2009-11-10 2009-11-10 データ入出力装置およびそれを用いたデータ処理装置

Publications (1)

Publication Number Publication Date
JP2011103025A true JP2011103025A (ja) 2011-05-26

Family

ID=44193338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009257022A Withdrawn JP2011103025A (ja) 2009-11-10 2009-11-10 データ入出力装置およびそれを用いたデータ処理装置

Country Status (1)

Country Link
JP (1) JP2011103025A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112381220A (zh) * 2020-12-08 2021-02-19 厦门壹普智慧科技有限公司 一种神经网络张量处理器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112381220A (zh) * 2020-12-08 2021-02-19 厦门壹普智慧科技有限公司 一种神经网络张量处理器

Similar Documents

Publication Publication Date Title
US5812147A (en) Instruction methods for performing data formatting while moving data between memory and a vector register file
WO2006123822A1 (ja) 信号処理装置
AU747283B2 (en) Data processing system for logically adjacent data samples such as image data in a machine vision system
JPS62208158A (ja) マルチプロセツサシステム
CN112506567B (zh) 数据读取方法和数据读取电路
US6804771B1 (en) Processor with register file accessible by row column to achieve data array transposition
EP3605544B1 (en) Image processor comprising a shift register with reduced wiring complexity
US20210373895A1 (en) Method and tensor traversal engine for strided memory access during execution of neural networks
KR20190028426A (ko) Simd 아키텍처에서 레인 셔플을 위한 셔플러 회로
JP2011141823A (ja) データ処理装置および並列演算装置
TW200947344A (en) Image processing apparatus
US20080320273A1 (en) Interconnections in Simd Processor Architectures
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP2010244096A (ja) データ処理装置、印刷システムおよびプログラム
JP2011103025A (ja) データ入出力装置およびそれを用いたデータ処理装置
US20230195388A1 (en) Register file virtualization : applications and methods
JP5327482B2 (ja) 画像処理装置及び画像処理方法
JP2010182000A (ja) 画像処理装置、プログラム
JP5889747B2 (ja) 半導体装置
JP2008102599A (ja) プロセッサ
JPH07210545A (ja) 並列処理プロセッサ
JP5369669B2 (ja) Simd型マイクロプロセッサ
JP2000029778A (ja) 記憶素子
US20230409323A1 (en) Signal processing apparatus and non-transitory computer-readable storage medium
JP2009104521A (ja) 並列処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130205