(57)【要約】【課題】単一命令で並列に演算処理を実行するメモリ内蔵並列演算処理装置においてメモリアレイのレイアウト面積をさらに低減する。【解決手段】並列演算を実行する主演算回路（２０）において、データを記憶するために、ダイナミック型メモリセル（ＤＲＡＭセル）を有するＤＲＡＭセルアレイ（３０）を配置する。ＤＲＡＭセルアレイの所定数のビット線対に対応して演算エレメントが配置された演算回路（３２）との間で１ビット単位または複数ビット単位でデータ転送を実行し、演算エレメント内で命令に応じた演算を実行する。この演算回路における演算操作と競合を回避するように制御回路（２１）内の調停回路（１２４）によりメモリセル選択動作を調停してメモリセルアレイのリフレッシュを実行する。【選択図】図２１
2009098861.tif 000002
【特許請求の範囲】
【請求項１】
行列状に配列される複数のダイナミック型メモリセルを有するメモリアレイ、
各々が所定数のメモリセル列に対応して設けられ、与えられたデータに対する演算処理を実行する複数の演算要素、
前記複数の演算要素と対応の列との間に設けられ、各々が、前記メモリアレイの対応の列から読出されたデータを転送する経路と前記対応の列に対する書込データの転送経路が別々に設けられ、対応の列のメモリセルと対応の演算要素との間でデータを双方向に転送する複数のデータ転送回路、および
前記複数のダイナミック型メモリセルのリフレッシュを行なうリフレッシュ制御回路を含み、前記メモリアレイ、前記演算要素およびデータ転送回路の動作を制御する制御回路を備える、並列演算処理装置。
【請求項２】
前記メモリアレイは、各メモリセル列に対応して配置され、各々が対応のメモリセル列のデータを検地し増幅してラッチする複数のセンスアンプをさらに備え、
各前記データ転送回路は、
対応のメモリセル列に対して配置される読出データ線と、
対応のメモリセル列に対してかつ前記読出データ線と分離して配置される書込データ線と、
対応のメモリセル列のセンスアンプからのデータに従って前記読出データ線に内部読出データを生成する読出アンプゲートと、
前記読出アンプゲートの出力データに従って読出データを生成してかつラッチして対応の演算要素に転送する読出アンプラッチと、
対応の演算要素の出力データに従って書込データを生成し、前記書込データ線に書込データを転送する書込ドライバと、
前記書込データ線のデータに従って対応のメモリセル列に内部書込データを転送する書込アンプとを備える、請求項１記載の並列演算処理装置。
【請求項３】
前記制御回路は、
演算操作時、前記メモリアレイの行を選択した状態で、メモリセルデータの演算要素への転送、前記演算要素での演算処理および演算処理結果のメモリセルへの書込が行われるように動作制御を行う、請求項１記載の並列演算処理装置。
【請求項４】
各前記演算要素は、
全加算を行う演算器と、
前記演算器の加算結果の和を格納するレジスタと、
前記演算器の加算結果のキャリーを格納するキャリーレジスタと、
前段の演算要素の加算結果のキャリーおよび対応の演算要素の加算結果の一方を選択して前記キャリーレジスタに格納する切換回路とを含む、請求項１記載の並列演算処理装置。
【請求項５】
前記複数のデータ転送回路は、前記メモリアレイの両側にメモリセル列ごとに交互に配置される転送ゲートを含み、
前記複数の演算要素は、所定数のメモリセル列ごとに前記メモリアレイの両側に交互に配置される、請求項１記載の並列演算処理装置。
【請求項６】
前記リフレッシュ制御回路は、カウンタ回路を含み、前記カウンタ回路のカウント値に従って生成されるリフレッシュ要求に従って前記メモリアレイに対する演算操作と野競合を回避するように超低を行って前記メモリセルのリフレッシュを実行し、さらにリフレッシュ動作時には外部にリフレッシュ動作中であることを示すビジー信号を出力する、請求項１記載の並列演算処理装置。
【請求項７】
前記リフレッシュ制御回路は、
外部からのリフレッシュ指示に従ってメモリセルのリフレッシュを実行する、請求項１記載の並列演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、並列演算処理装置に関し、特に、半導体メモリと演算器とが集積化され、これらの間でデータを転送して演算器において演算処理を実行する並列演算処理装置に関する。
【背景技術】
【０００２】
移動体通信および画像処理分野においては、高機能化により、大量の音声および画像データを高速で処理することが要求される。このような大量のデータを高速で処理する場合、ＳＩＭＤ（シングル・インストラクション・マルチプル・データ・ストリーム：Single Instruction Multiple Data Stream）方式のプロセッサが利用される。プロセッサとして、複数の処理エレメントを並列に配置し、各処理エレメントに共通の命令を供給するとともに異なるデータを供給する。各処理エレメントにおいて並列で処理を実行する。
【０００３】
このようなＳＩＭＤ方式のプロセッサの構成の一例が、特許文献１（特開平１１−７３４００号公報）に示されている。この特許文献１においては、メモリセルとして、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）セルを利用する。ＤＲＡＭセルが配列されるメモリアレイを複数のブロックに分割し、各メモリブロックに対応してロジック（処理エレメント）を配置する。処理エレメントが、対応のメモリブロックとの間でデータの授受を行ない、データ処理を実行する。この特許文献１においては、ピーク電流を制限するために、各処理エレメントの動作タイミングを互いに異ならせる。
【０００４】
また、ＳＩＭＤ型画像処理プロセッサとして、ＳＲＡＭアレイおよびＡＬＵアレイを設ける構成が、特許文献２（特開２００２−２０７５９１号公報）に示されている。この特許文献２に示される構成においては、ＳＲＡＭアレイが複数のブロックに分割される。ＡＬＵアレイにおいて要素プロセッサが、ＳＲＡＭアレイのメモリブロックに対応して配置される。各要素プロセッサに対し同一の演算命令を与え、対応のＳＲＭメモリブロックとの間でデータ転送を行ない、演算処理を実行する。
【０００５】
この特許文献２においては、データの書込および読出を高速で行なうために、ＳＲＡＭアレイにおいて２ポートＳＲＡＭセルが用いられる。要素プロセッサが実行する演算としては、加算、減算、乗算、および三項演算を行なう構成が示される。
【０００６】
また、ＳＲＡＭアレイの各列ごとに演算器を配置し、メモリセル列（エントリ）と対応の演算器の間でデータ転送を行なって、並列演算を実行する構成が、特許文献３（特開２００６−１２７４６０号公報）に示されている。この特許文献３に示される構成においては、各演算器に共通の命令を与え、この演算器に与えられる命令を、処理内容に応じて変更することにより、リコンフィギュアラブルプロセッサ（reconfigurable processor)を実現する。この特許文献３に示される構成においては、メモリセルとしては、ＳＲＡＭセル（スタティック・ランダム・アクセス・メモリセル）が利用され、高速でデータ転送をメモリセルアレイと演算器との間で行なって、高速処理を実現することを図る。
【特許文献１】特開平１１−７３４００号公報
【特許文献２】特開２００２−２０７５９１号公報
【特許文献３】特開２００６−１２７４６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の特許文献１に示される構成においては、ＤＲＡＭメモリブロックに対応して処理エレメントが配置される。各処理エレメントが、対応のＤＲＡＭメモリブロックとの間で、レジスタを介してパイプライン的にデータ転送を実行する。各処理エレメントは、その動作開始タイミングがずらされて、並行動作時のピーク電流を低減する。このため、１つの演算サイクルにおいて各処理エレメントがすべて動作するまでのサイクルタイムが長くなるという問題が生じる。また、ＤＲＡＭセルをデータ記憶素子として利用している。ＤＲＡＭセルは、周期的にその記憶データをリフレッシュする必要がある。しかしながら、この特許文献１は、ＤＲＡＭセルのリフレッシュと演算処理とのタイミングの関係および調停については何ら考慮していない。
【０００８】
特許文献２においては、２ポートＳＲＡＭセルブロックに対応して要素プロセッサが配置される。２ポートＳＲＡＭセルを用いており、ＳＲＡＭセルと要素プロセッサの間でのデータ転送を、双方向に並行して行なうことができ、高速でデータ転送を行なって処理を進めることができる。しかしながら、この特許文献２においては、ＳＲＡＭセルが利用されており、ＤＲＡＭセルに比べてその占有面積が増大する。また、画像データまたは音声データなどの処理対象のデータの量が増大した場合、メモリアレイのレイアウト面積が増大し、小型化に対する大きな障害となる。
【０００９】
また、特許文献３においては、ＳＲＡＭセルアレイがワード線方向に沿って複数のエントリに分割される。各エントリに対応してプロセッサエレメントを配置し、各プロセッサエレメントと対応のエントリとの間でデータ転送を行なってビットシリアル態様で演算処理が実行される。この特許文献３に示される構成においても、メモリセルとしては、ＳＲＡＭセルが利用されている。従って、処理データ量が増大し、メモリセルアレイに格納するデータ容量が増大した場合、レイアウト面積が増大するという問題が生じる。
【００１０】
それゆえ、この発明の目的は、処理速度および効率を低下させることなく占有面積を低減することのできる大容量の並列演算処理装置を提供することである。
【課題を解決するための手段】
【００１１】
この発明に係る並列演算処理装置は、要約すれば、ダイナミック型メモリセルのアレイの所定数の列ごとに演算器を配置する。演算器と対応のメモリセル列との間のデータ転送には、ＩＯ分離型データ転送回路を配置する。このＩＯ分離型データ転送回路においては、メモリセルに対する書込データおよび読出データの転送経路が異なる。また、メモリセルのリフレッシュをリフレッシュ制御回路により実行する。
【発明の効果】
【００１２】
この発明における並列演算処理装置においては、メモリセルは、１トランジスタ／１キャパシタ型のダイナミック型メモリセルを用いており、高密度にメモリセルを配置することができ、メモリセルアレイの占有面積を低減することができる。また、メモリセルと演算器との間のデータ転送を、ＩＯ分離型データ転送回路を用いて行なっており、メモリセルと演算帰途の間で高速でデータを転送することができ、高速演算処理を実現することができる。また、リフレッシュ制御回路によりメモリセルのリフレッシュを実行しており、メモリセルデータを確実の保持することができ、データの信頼性の低下を抑制することができる。
【発明を実施するための最良の形態】
【００１３】
［実施の形態１］
図１は、この発明の実施の形態１に従う並列演算処理装置を利用する処理システムの構成を概略的に示す図である。図１において、処理システムは、並列演算を実行する並列演算処理装置を含む主演算処理ブロック１と、主演算処理ブロック１における処理の制御、システム全体の制御およびデータ処理を行なうホストＣＰＵ２と、このシステムの主記憶として利用されて必要な種種のデータを格納するメモリ３と、メモリ３に対し直接ホストＣＰＵ２を介することなくアクセスするＤＭＡ（ダイレクト・メモリ・アクセス）回路４とを含む。ＤＭＡ回路４の制御により、メモリ３と主演算処理ブロック１との間でデータ転送を行なうことができ、また、主演算処理ブロック１に対し直接アクセスすることができる。
【００１４】
ホストＣＰＵ２、メモリ３、ＤＭＡ回路４および主演算処理ブロック１は、システムバス５を介して相互接続される。主演算処理ブロック１は、複数の並列に設けられる基本演算ブロックＦＢ１−ＦＢｎと、システムバス５とデータ／命令を転送する入出力回路（インタフェース回路）１０と、この主演算処理ブロック１内部での動作処理を制御する集中制御ユニット１５とを含む。
【００１５】
基本演算処理ブロックＦＢ１−ＦＢｎは、その構成は、後に詳細に説明するが、各々、並列演算を実行することができ、以下、並列演算処理装置とも称す。
【００１６】
基本演算ブロックＦＢ１−ＦＢｎおよび入出力回路１０は、内部データバス１２に並列に結合される。また、集中制御ユニット１５、入出力回路１０および基本演算ブロックＦＢ１−ＦＢｎは、内部バス１４に並列に結合される。基本演算ブロックＦＢｉ（ｉ＝１−ｎ）の間には、ブロック間データバスが設けられる。図１においては、基本演算ブロックＦＢ１およびＦＢ２の間に配置される隣接ブロック間データバス１６を代表的に示す。
【００１７】
基本演算ブロックＦＢ１−ＦＢｎを並列に設け、主演算処理ブロック１内部で並列に同一または異なる演算処理を実行する。これらの基本演算ブロック（並列演算処理装置）ＦＢ１−ＦＢｎは、同一構成を有するため、図１においては、基本演算ブロックＦＢ１の構成を代表的に示す。
【００１８】
基本演算ブロックＦＢ１は、演算を実行する主演算回路２０と、マイクロコード化された実行プログラムを格納するマイクロプログラム格納メモリ２３と、基本演算ブロックＦＢ１の内部動作を制御するコントローラ２１と、アドレスポインタとして用いられるレジスタ群２２とを含む。
【００１９】
主演算回路２０においては、ダイナミック型メモリセル（ＤＲＡＭセル）が行列状に配列される。所定数のＤＲＡＭセル列に対応して、演算器が配置され、対応のＤＲＡＭセル列と演算器との間でデータを転送して演算処理を実行する。データを記憶するメモリセルとしてＤＲＡＭセルを利用することにより、ＳＲＡＭセルを利用する構成に比べてメモリセルアレイの占有面積を低減する。
【００２０】
コントローラ２１は、ホストＣＰＵ２からシステムバス５および入出力回路１０を介して与えられる制御命令により制御が手渡され、対応の基本演算ブロックＦＢ１−ＦＢｎの動作を制御する。コントローラ２１は、マイクロプログラム格納メモリ２３に格納されるマイクロプログラムを実行し、また、メモリ２３の格納動作を制御する。基本演算ブロックＦＢ１−ＦＢｎそれぞれにマイクロプログラム格納メモリ２３を設けることにより、基本演算ブロックＦＢ１−ＦＢｎそれぞれにおいて演算実行される処理内容を各基本演算ブロックごとに変更することができる。また、このコントローラ２１は、後に詳細に説明するようにリフレッシュ制御回路を含んでおり、ＤＲＡＭセルが利用される場合においても、リフレッシュを実行することによりメモリセルデータの信頼性は確保することができる。
【００２１】
隣接ブロック間データバス１６を介して基本演算ブロックＦＢ１−ＦＢｎの間のデータ転送が可能である。この隣接ブロック間データバス１６を用いることにより、内部データバス１２を占有することなく基本演算ブロック間の高速データ転送が実現される。また、ある基本演算ブロックに内部データバス１２を介してデータ転送が行なわれている間に、別の基本演算ブロックの間でデータ転送を行なうことができる。
【００２２】
集中制御ユニット１５は、制御用ＣＰＵ２５と、この制御用ＣＰＵ２５が実行する命令を格納する命令メモリ２６と、制御用ＣＰＵ２５のワーキングレジスタまたはポインタ格納用のレジスタを含むレジスタ群２７と、マイクロプログラムのライブラリを格納するマイクロプログラムライブラリ格納メモリ２８とを含む。
【００２３】
集中制御ユニット１５は、内部バス１４を介してホストＣＰＵ２から制御権が手渡され、内部バス１４を介して基本演算ブロックＦＢ１−ＦＢｎの処理動作を制御する。マイクロプログラムライブラリ格納メモリ２３に、各種シーケンス処理がコード化されたマイクロプログラムをライブラリとして格納する。基本演算ブロックＦＢ１−ＦＢｎのマイクロプログラム格納メモリ２３に、このマイクロプログラムライブラリ格納メモリ２８から必要なマイクロプログラムを選択して格納することにより、基本演算ブロックＦＢ１−ＦＢｎの処理内容の変更を行なう。
【００２４】
図２は、図１に示す主演算回路２０の構成を概略的に示す図である。図２において、主演算回路２０は、ＤＲＡＭセルアレイ３０と、演算処理を行なう演算回路３２と、ＤＲＡＭセルアレイ３０と演算回路３２の間で双方向でデータを転送するＩＯ分離型双方向転送回路３４とを含む。ＤＲＡＭセルアレイ３０においては、ＤＡＲＭセルが行列状に配列される。演算回路３２は、それぞれがＤＲＡＭセルアレイ３０の所定数の列に対応して配置され、対応のＤＲＡＭセル列との間でデータ転送を行なう複数の演算エレメントＰＥ１−ＰＥｍを含む。これらの演算エレメントＰＥ１−ＰＥｍは、演算態様がコントローラ２１により設定され、設定された演算処理を並行して実行する。
【００２５】
ＩＯ分離型双方向転送回路３４は、その構成は後に詳細に説明するが、ＤＲＡＭセルアレイ３０から演算回路３２へのデータ転送経路と演算回路３２からＤＲＡＭセルアレイ３４へのデータ転送経路とが別々に設けられる。ＩＯ分離型双方向転送回路３４において別々に設けられるデータ転送経路を利用してデータ転送を行うことにより、ＤＲＡＭセルアレイ３０から演算回路３２へのデータ転送と演算回路３２からＤＲＡＭセルアレイ３０へのデータ転送を並行して行なうことができ、処理サイクルを短縮することができる。
【００２６】
また、演算エレメントＰＥ１−ＰＥｍに演算処理を並行して実行させることにより、ＳＩＭＤ方式に従って演算処理を行なうことができ、大量のデータを高速で処理することができる。
【００２７】
図３は、図２に示す主演算回路のより具体的な構成を示す図である。図３においては、演算エレメントＰＥ１およびＰＥｍに対するＤＲＡＭセルアレイ３０およびＩＯ分離型双方向転送回路３４の構成を代表的に示す。
【００２８】
ＤＲＡＭセルアレイ３０は、演算エレメントＰＥ１−ＰＥｍ各々に対応して複数のビット線群に分割される。演算エレメントＰＥ１に対してビット線対ＢＬＰ１１−ＢＬＰ１ｋが設けられ、演算エレメントＰＥｍに対応して、ビット線対ＢＬＰｍ１−ＢＬＰｍｋが設けられる。ビット線対ＢＬＰ１１−ＢＬＰ１ｋ、…ＢＬＰｍ１−ＢＬＰｍｋの各々は、相補ビット線（ＢＬＰ，／ＢＬ）を含む。ｋは、１以上の整数である。
【００２９】
ビット線対ＢＬＰ１１−ＢＬＰ１ｋ、…、ＢＬＰｍ１−ＢＬＰｍｋに対し共通にワード線ＷＬが交差するように設けられる。ビット線対ＢＬＰ１１−ＢＬＰ１ｋ、…ＢＬＰｍ１−ＢＬＰｍｋとワード線ＷＬの交差部に対応してＤＲＡＭセルＭＣが配置される。このＤＲＡＭセルＭＣは、１トランジスタ／１キャパシタ型セルである。
【００３０】
ビット線対ＢＬＰ１１−ＢＬＫ１ｋ、…ＢＬＰｍ１−ＢＬＰｍｋ各々に対応してセンスアンプ（ＳＡ）ＳＡ１１−ＳＡ１ｋ、…ＳＡｍ１−ＳＡｍｋが設けられる。これらのセンスアンプＳＡ（ＳＡ１１−ＳＡ１ｋ、…ＳＡｍ１−ＳＡｍｋ）は、各々対応のビット線対ＢＬＰ（ＢＬＰ１１−ＢＬＰ１ｋ、…ＢＬＰｍ１−ＢＬＰｍｋ）のビット線の電位を差動的に増幅する。
【００３１】
ＩＯ分離型双方向転送回路３４においては、センスアンプＳＡ１１−ＳＡ１ｋそれぞれに対応してリード／ライトＹゲートＲＷＹＧ１１−ＲＷＹＧ１ｋが設けられ、センスアンプＳＡｍ１−ＳＡｍｋそれぞれに対応して、リード／ライトＹゲートＲＷＹＧｍ１−ＲＷＹＧｍｋが設けられる。これらのリード／ライトＹゲートＲＷＹＧ１１−ＲＷＹＧ１ｋ、…、ＲＹＧｍ１ＲＹＧｍｋは、各々、データ読出を行なうためのリードアンプ／Ｙゲートと、データ書込を行なうためのライトアンプＹゲートとを含む。これらのリードアンプＹゲートおよびライトアンプＹゲートは、別々に設けられる。
【００３２】
リード／ライトＹゲートＲＷＹＧ１１−ＲＷＹＧ１ｋに対して共通に、ローカル読出データ線ＬＲＤＬ１およびローカル書込データ線ＬＷＤＬ１が設けられ、リード／ライトＹゲートＲＷＹＧｍ１−ＲＷＹＧｍｋに対て共通に、ローカル読出データ線ＬＲＤＬｍおよびローカル書込データ線ＬＷＤＬｍが設けられる。
【００３３】
ローカル読出データ線ＬＲＤＬ１、…、ＬＲＤＬｍは、対応のリード／ライトＹゲートＲＷＹＧに含まれるリードアンプＹゲートに結合され、ＤＲＡＭセルアレイ３０から読出されたデータを転送する。ローカル書込データ線ＬＷＤＬ１、…、ＬＷＤＬｍは、対応のリード／ライトＹゲートに含まれるライトアンプＹゲートに結合され、対応の演算エレメントＰＥ１、…、ＰＥｍからの処理結果データまたは入力（書込）データを転送する。
【００３４】
ローカル読出データ線ＬＲＤＬ１−ＬＲＤＬｍ各々に対応してリードアンプラッチＲＡＰＬ１−ＲＡＰＬｍが設けられ、ローカル書込データ線ＬＷＤＬ１−ＬＷＤＬｍ各々に対応してライトドライバＷＤＲ１−ＷＤＲｍが設けられる。リードアンプラッチＲＡＰＬ１−ＲＡＰＬｍは、対応のローカル読出データ線ＬＲＤＬ１−ＬＲＤＬｍ上のデータをさらに増幅してラッチし、対応の演算エレメントＰＥ１−ＰＥｍに増幅後のデータを伝達する。ライトドライバＷＤＲ１−ＷＤＲｍは、それぞれ、対応の演算エレメントＰＥ１−ＰＥｍから転送されるデータに従って対応のローカル書込データ線ＬＷＤＬ１−ＬＷＤＬｍを駆動する。
【００３５】
図３に示すＩＯ分離型双方向転送回路３４において、リード／ライトＹゲートＲＷＹＧ（ＲＷＹＧ１１−ＲＷＹＧ１ｋ、…、ＲＷＹＧｍ１−ＲＷＹＧｍｋ）に対して、それぞれ図示しないＹゲート選択信号が与えられて、選択列に対して設けられたビット線対ＢＬＰと対応のリードアンプラッチＲＡＰＬおよび対応のライトドライバＷＤＲの間でデータ転送が行なわれる。データのＤＲＡＭセルアレイ３０と演算回路３２の間のデータ転送経路をいわゆるＩＯ分離構造として、メモリセルの読出データおよび書込データを別々の経路を介して転送することにより、読出データおよび書込データの転送をオーバラップして行うことができ、データ転送を高速化することができる。
【００３６】
並列演算処理装置においては、通常、前述の特許文献３に示すようにビットシリアルに演算処理が実行される。従って、この場合には、ローカル読出および書込データ線ＬＲＤＬｉおよびＬＷＤＬｉ（ｉ＝１からｋ）のビット幅は、１ビットである。しかしながら、演算エレメントＰＥ１−ＰＥｍの演算データのビット幅に応じて、ローカル読出データ線ＬＲＤＬ１−ＬＲＤＬｍおよびローカル書込データ線ＬＷＤＬ１−ＬＷＤＬｍのビット幅が決定され、また、リードアンプラッチＲＡＰＬおよびライトドライバＷＤＲのビット幅も設定されてもよい。例えば、演算データがｋビット幅であり、対応のビット線対群に含まれるビット線対の数と同じ場合には、リード／ライトＹゲートが、並行して導通して、対応のビット線対と演算エレメントの間でｋビットデータが転送される。この場合、Ｙゲート選択信号は、単に列選択のタイミングを与えるだけである。
【００３７】
図４は、図３に示す構成の１つのビット線対ＢＬＰと１つの演算エレメントＰＥに関連する部分の構成をより具体的に示す図である。図４において、ＤＲＡＭセルアレイ３０において、ビット線対ＢＬＰは、ビット線ＢＬおよび／ＢＬを含み、ビット線対ＢＬＰと交差するようにワード線ＷＬが配置される。ワード線ＷＬとビット線対ＢＬＰの交差部に対応してメモリセルＭＣが配置される。図４において、メモリセルＭＣは、ワード線ＷＬとビット線／ＢＬとの交差部に対応して配置され、情報を電荷の形態で記憶するキャパシタＣＭと、ワード線ＷＬの信号電位に従ってキャパシタＣＭをビット線／ＢＬに結合するアクセストランジスタＴＭを含む。ビット線ＢＬとワード線ＷＬとの交差部には、メモリセルは配置されない。メモリセルのデータ読出時においては、ビット線／ＢＬにメモリセルデータが読出され、ビット線ＢＬは、メモリセルデータ読出時の参照電位を供給する参照線として用いられる。メモリセルＭＣが、ワード線ＷＬとビット線ＢＬおよび／ＢＬとの交差部に対応して配置され、２つのメモリセルで１ビットのデータを記憶する２セル／１ビットの構成が利用されてもよい。
【００３８】
ＤＲＡＭセル（ダイナミック型メモリセル）ＭＣは、図４に示すように、１トランジスタ／１キャパシタ型セルであり、ＳＲＡＭセルのように、６個のＭＯＳトランジスタで構成されるセルに比べて、占有面積を低減でき、より高密度に、メモリセルＭＣを配置することができる。これにより、小占有面積で、大量のデータを、ＤＲＡＭセルアレイ３０において格納することができる。
【００３９】
ビット線ＢＬおよび／ＢＬに対応して、ビット線周辺回路として、ビット線イコライズ回路ＢＥＱおよびセンスアンプＳＡが設けられる。ビット線イコライズ回路ＢＥＱは、ビット線イコライズ指示信号ＢＬＥＱに従ってビット線ＢＬおよび／ＢＬをビット線プリチャージ電圧Ｖｂｌレベルにプリチャージしかつイコライズする。このビット線プリチャージ電圧Ｖｂｌは、一例として、ＤＲＡＭセルアレイに供給されるメモリ電源電圧（ＶＤＤ）の１／２倍の電圧レベルである。
【００４０】
センスアンプＳＡは、センスアンプ活性化信号ＳＡＥの活性化に応答して活性化され、ビット線ＢＬおよび／ＢＬの電位を差動的に増幅しかつラッチする。このセンスアンプＳＡは、通常、交差結合されるＭＯＳトランジスタで構成されるインバータラッチの構成を有する。
【００４１】
リード／ライトＹゲートＲＷＹＧは、読出アンプゲート（リードアンプＹゲート）ＲＹＧと書込ドライブゲート（ライトアンプＹゲート）ＷＹＧとを含む。ビット線対に対応して、ローカル読出データ線ＬＲＤＬは、エントリ読出データ線ＲＤおよび／ＲＤで構成され、ローカル書込データ線ＬＷＤＬは、エントリ書込データ線ＷＤおよび／ＷＤで構成される。
【００４２】
読出アンプゲートＲＹＧは、エントリ読出データ線／ＲＤと接地ノードの間に直列に接続されるＮチャネルＭＯＳトランジスタＴＲ２およびＴＲ１と、エントリ読出データ線ＲＤと接地ノードの間に直列に接続されるＭＯＳトランジスタＴＲ４およびＴＲ３を含む。ＭＯＳトランジスタＴＲ１およびＴＲ３は、それぞれのゲートが、ビット線ＢＬおよび／ＢＬに結合される。ＭＯＳトランジスタＴＲ２およびＴＲ４は、読出列選択信号ＣＳＬＲに従って選択的にオン状態となる。
【００４３】
センスアンプＳＡにより、ビット線ＢＬおよび／ＢＬが、電源電圧および接地電圧レベルに駆動されて維持されるため、読出アンプゲートＲＹＧにおいては、ＭＯＳトランジスタＴＲ１およびＴＲ３の一方がオン状態、他方がオフ状態となる。したがって、読出列選択信号ＣＳＬＲが選択状態となり、ＭＯＳトランジスタＴＲ２およびＴＲ４がオン状態となると、エントリ読出データ線ＲＤおよび／ＲＤの一方が接地電圧レベルに放電され、他方は、ビット線プリチャージ電圧レベルに維持される。たとえば、ビット線ＢＬおよび／ＢＬが、それぞれ、ＨレベルおよびＬレベルのときには、ＭＯＳトランジスタＴＲ１およびＴＲ３が、それぞれ、オン状態およびオフ状態となる。したがって、読出列選択信号ＣＳＬＲが選択状態となり、ＭＯＳトランジスタＴＲ２およびＴＲ４がオン状態となると、エントリ読出データ線／ＲＤが接地電圧レベルへ放電され、その電圧レベルが低下する。
【００４４】
書込ドライブゲートＷＹＧは、エントリ書込データ線ＷＤおよび／ＷＤとビット線ＢＬおよび／ＢＬの間にそれぞれ接続されるＭＯＳトランジスタＴＲ５およびＴＲ６を含む。これらのＭＯＳトランジスタＴＲ５およびＴＲ６のゲートへは、書込列選択信号ＣＳＬＷが共通に与えられる。したがって、ビット線ＢＬおよび／ＢＬは、エントリ書込データ線ＷＤおよび／ＷＤ上に伝達された相補データに従って、書込データに応じた電圧レベルに駆動される。
【００４５】
リードアンプラッチＲＡＰＬは、エントリ読出データ線ＲＤおよび／ＲＤを所定電圧レベルにプリチャージしかつイコライズするデータ線プリチャージ／イコライズ回路ＤＥＱと、エントリ読出データ線ＲＤおよび／ＲＤの電位を増幅しラッチする差動アンプラッチＤＡＰと、エントリ読出データ線ＲＤおよび／ＲＤ上の電位に従って転送データＱを生成してラッチするフリップフロップＦＦＬを含む。
【００４６】
データ線プリチャージ／イコライズ回路ＤＥＱは、データ線プリチャージ指示信号ＤＰＲに従ってエントリ読出データ線ＲＤおよび／ＲＤを電源電圧レベルにプリチャージしかつイコライズする。差動アンプラッチＤＡＰは、交差結合されるＰチャネルＭＯＳトランジスタで構成され、エントリ読出データ線ＲＤおよび／ＲＤのうちの高電位のエントリ読出データ線の電位を電源電圧レベルに維持する。
【００４７】
フリップフロップＦＦＬは、交差結合されるＮＡＮＤゲートで構成され、差動アンプラッチＤＡＰにより増幅されラッチされた電位に従って、そのラッチ状態が決定される。
【００４８】
ライトドライバＷＤＲは、演算エレメントＰＥから生成されるデータＤと書込マスク信号／ＷＤＭに従ってエントリ書込データ線ＷＤを駆動するＡＮＤ型ドライブ回路ＡＧ１と、演算エレメントＰＥからの書込データ／Ｄと書込マスク信号／ＷＤＭとに従ってエントリ書込データ線／ＷＤを駆動するＡＮＤ型ドライブ回路ＡＧ２とを含む。書込マスク信号／ＷＤＭは、活性化時、演算エレメントＰＥからの転送データＤおよび／Ｄの転送をマスクし、対応のメモリセルへのデータの書込をマスクする。
【００４９】
演算エレメントＰＥは、リードアンプラッチＲＡＰＬからの転送データＱを格納するレジスタ４０と、レジスタ４０の格納データとリードアンプラッチＲＡＰＬからの転送データＱとに従って所定の演算処理を行なう演算器（ＡＬＵ）４２と、演算器４２の出力データを格納して相補データＤおよび／Ｄを生成するレジスタ４４を含む。このレジスタ４４は、書込データをクロック信号に同期して転送するために設けられており、特に設ける必要はなく、演算器（ＡＬＵ）４２の出力が直接ライトドライバに与えられる構成であっても良い（これは、以下の実施の形態についても同様である）。
【００５０】
演算器（ＡＬＵ）４２は、否定（ＮＯＴ）演算、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、ブール加算（排他的論理和：ＥＸＯＲ）演算を、図１に示すコントローラ２１からの演算命令に従って選択的に実行することができる。この演算器４２は、図４においては、レジスタ４０およびリードアンプラッチＲＡＰＬのデータに従って２項演算を行なうように示す。しかしながら、直値または即値を格納する定数レジスタが演算エレメントまたは演算回路内に設けられ、演算器４２は、３項演算を行なうように構成されてもよい。また、この演算器（ＡＬＵ）４２は、プログラマブルロジックデバイスで構成され、その内部構造がコントローラ２１からの命令／制御信号に従って設定されても良い。
【００５１】
図５は、図１から４に示す主演算回路の１つの単位演算ブロック（１演算エントリ）における演算操作のデータの流れの一例を示す図である。図5においては、演算は、ビットシリアルかつデータパラレルな態様で実行される。ビットシリアルは、データについてビット単位で演算が実行される態様を示す。データパラレルは、各演算エントリにおいてデータの演算が演算エレメントにおいて並行して実行される態様を示す。以下、図５を参照して、この発明の実施の形態１に従う並列演算処理装置の演算操作について簡単に説明する。
【００５２】
今、１演算エントリとして、１つの演算エレメントＰＥに対して４つのビット線対ＢＬＡ−ＢＬＤが設けられる構成を一例として示す。このビット線対ＢＬＡ−ＢＬＤはそれぞれ、Ｙゲート選択信号Ｙ０−Ｙ３により選択される（対応のリード／ライトＹゲートが導通状態となる）。ビット線対ＢＬＡには、データビットａｎ−ａ０が格納され、ビット線対ＢＬＢに、データビットｂｎ−ｂ０が格納される。これらのビット線対ＢＬＡおよびＢＬＢのデータビットが、演算エレメントＰＥに転送される（ロードされる）。ビット線対ＢＬＣに、演算エレメントＰＥの演算結果が格納される（ストアされる）。
【００５３】
ビット線対ＢＬＡ−ＢＬＤのワード線アドレスは、ワード線ポインタＰｎ−Ｐ０により指定される。このワード線ポインタは、図１に示すレジスタ群２２のポインタレジスタから生成される。同様に、Ｙゲート選択信号も、レジスタ群２２に含まれるＹアドレスポインタに基づいて生成される。
【００５４】
演算エレメントＰＥにおいて、レジスタ４０は、クロック信号ＣＬＫがＨレベルのときにスルー状態となり、クロック信号ＣＬＫがＬレベルのときにラッチ状態となる。演算器（ＡＬＵ）４２は、このクロック信号ＣＬＫがＬレベルのときに演算処理を行なってその演算結果を出力する。レジスタ４４は、クロック信号ＣＬＫがＬレベルのときにスルー状態となり、Ｈレベルとなるとラッチ状態となる。クロック信号ＣＬＫにより、演算処理サイクルが規定される。
【００５５】
図６は、図５に示す演算エレメントＰＥへの２項演算時の演算操作を示すタイミング図である。以下、図６を参照して、図４および図５に示す並列演算処理装置の動作について説明する。
【００５６】
サイクル♯ｋにおいて、クロック信号ＣＬＫがＨレベルに立上がると、演算操作サイクルが開始される。このクロック信号ＣＬＫの立上がりに応答して、データ線プリチャージ指示信号ＤＰＲが非活性状態となり、また、ビット線イコライズ指示信号ＢＬＥＱが非活性状態となる。これにより、図４に示すビット線ＢＬおよび／ＢＬのプリチャージ／イコライズが停止し、また、エントリ読出データ線ＲＤおよび／ＲＤのプリチャージ／イコライズが停止する。
【００５７】
次いで、ワード線ＷＬが、ワード線ポインタに従って選択状態へ駆動され、ビット線対ＢＬＡ−ＢＬＤにおいて対応のメモリセルの記憶データが読出される。
【００５８】
ワード線の選択後、所定のタイミングでセンスアンプ活性化信号ＳＡＥが活性化されると、図４に示すセンスアンプＳＡが活性化され、ビット線ＢＬＡ−ＢＬＤの電位が差動的に増幅されてラッチされる。図６においては、ビット線対ＢＬＣのビット線ＢＬおよび／ＢＬの電位変化を代表的に示す。
【００５９】
このセンスアンプ活性化信号ＳＡＥによりセンスアンプＳＡが活性化され、増幅およびラッチ動作が完了すると、次いで、読出Ｙゲート選択信号ＲＹ０が選択状態へ駆動される。応じて、ビット線ＢＬＡのデータビットａｉが読出アンプゲートＲＹＧ（図４参照）により読出され、エントリ読出データ線ＲＤおよび／ＲＤに伝達される。この読出データビットａｉに従ってリードアンプラッチＲＡＰＬの出力データビットＱが、データビットａｉに応じた電圧レベルに変化する。
【００６０】
演算エレメントＰＥにおいて、クロック信号ＣＬＫがＨレベルであり、レジスタ４０はスルー状態にあり、その保持データビットが、ビットａｉに変化する。
【００６１】
クロック信号ＣＬＫがＬレベルに立下がると、演算エレメントＰＥのレジスタ４０がラッチ状態となる。このクロック信号ＣＬＫの立下がりに従って、また、読出Ｙゲート選択信号ＲＹ１が選択状態へ駆動される。これにより、ビット線対ＢＬＢ上のデータが読出アンプゲートＲＹＧを介して読出されてリードアンプラッチＲＡＰＬに伝達される。リードアンプラッチＲＡＰＬにおいては、内部の差動アンプＤＡＰおよびフリップフロップＦＦＬにより、その保持データがデータビットｂｉに応じて変化する。このリードアンプラッチＰＬの出力データビットＱが、データビットｂｉに従って変化しても、このときにはクロック信号ＣＬＫはＬレベルであり、レジスタ４０はラッチ状態にあり、その保持データビットは変化しない。
【００６２】
一方、クロック信号ＣＬＫがＬレベルに立下がると、演算器（ＡＬＵ）４２が演算操作を実行し、データビットａｉおよびｂｉにより、指定された演算処理を行ない、結果ビットＦ（ａｉ，ｂｉ）を生成する。レジスタ４４は、この状態においてはスルー状態であり、その出力データビットＤおよび／Ｄが演算結果ビットＦ（ａｉ，ｂｉ）に従って変化する。このとき、またレジスタ４４の出力データに従ってライトドライバＷＤＲにより、エントリ書込データ線ＷＤおよび／ＷＤ上の電圧が変化する。この状態において書込Ｙゲート選択信号ＷＹ２が選択状態へ駆動され、書込ドライブゲートＷＹＧを介してビット線対ＢＬＣ上のワード線ポインタが指定するワード線上のメモリセルに演算結果ビットＦ（ａｉ，ｂｉ）が書込まれる（ストアされる）。
【００６３】
結果ビットＦ（ａｉ，ｂｉ）の書込が完了すると、ワード線ＷＬが非選択状態へ駆動され、また、データ線プリチャージ指示信号ＤＰＲおよびビット線イコライズ指示信号ＢＬＥＱが活性状態となり、ビット線対ＢＬＡ−ＢＬＤおよびエントリ読出データ線ＲＤおよび／ＲＤが、所定の電圧レベルにプリチャージされる。エントリ読出データ線ＲＤおよび／ＲＤは、電源電圧レベルのＨレベルにプリチャージされるため、フリップフロップＦＦＬのラッチ状態は変化しない。また、ビット線対ＢＬＡ−ＢＬＤにおいては、それぞれビット線イコライズ回路ＢＥＱにより中間電圧レベルのプリチャージ電圧Ｖｂｌレベルにプリチャージされる。
【００６４】
クロック信号ＣＬＫが再び立上がると、演算サイクル♯（ｋ＋１）が開始される。この演算サイクル♯（ｋ＋１）の開始に従って、データ線プリチャージ指示信号ＤＰＲおよびビット線イコライズ指示信号ＢＬＥＱが再び非活性状態となる。リードアンプラッチＲＡＰＬにおいて、フリップフロップＦＦＬのラッチ状態は変化せず、先のサイクルのデータビットｂｉを維持する。
【００６５】
一方、演算エレメントＰＥにおいてはレジスタ４０がクロック信号ＣＬＫの立上がりに従ってスルー状態となり、保持データが、データビットｂｉに変化する。しかしながら、レジスタ４４は、この間ラッチ状態にあり、レジスタ４４の出力は、変化しない。この場合、たとえ演算器（ＡＬＵ）４２がスタティックに演算操作を行っても、レジスタ４４がラッチ状態であれば、レジスタ４４の出力ビットは変化しない。従って、演算器（ＡＬＵ）４２は、スタティックに動作を行うように構成されても良く、また、クロック信号ＣＬＫのＨレベル期間は演算操作が停止されるように構成されても良い。
【００６６】
次いで、ワード線アドレスポインタに従って次のワード線が選択され、次いで、再びセンスアンプ活性化信号ＳＡＥが活性化される。この後、次のデータビットａｉ＋１およびｂｉ＋１が、それぞれ読出Ｙゲート選択信号ＲＹ０およびＲＹ１に従って読出されて、それぞれレジスタ４０およびフリップフロップＦＦＬによりラッチされる。演算器（ＡＬＵ）４２が演算操作を実行し、演算結果ビットＦ（ａｉ＋１，ｂｉ＋１）を生成する。クロック信号ＣＬＫがＬレベルとなるとレジスタ４４がスルー状態となり、演算結果ビットが格納されまたその出力も演算結果ビットＦ（ａｉ＋１，ｂｉ＋１）に変化する。
【００６７】
この後、レジスタ４４の出力ビットＦ（ａｉ＋１，ｂｉ＋１）が、書込Ｙゲート選択信号ＷＹ２に従って再び、ビット線対ＢＬＣの対応のメモリセルに書込まれる。以下、データビットが、最上位ビットａｎおよびｂｎに到達するまで、この演算操作が繰返し実行される。
【００６８】
ビット線対ＢＬＡ−ＢＬＤにおいて、ビット線対ＢＬＡ−ＢＬＣを利用し、演算対象データおよび演算結果データを各ビット線対のメモリセルに格納する。従って、データのビット長が変化される場合においても、ワード線アドレスポインタＰ０−Ｐｎの変化範囲を調整することにより対応することができる。この場合、１つの演算エレメントＰＥに対して４つのビット線対が配置される。１行に、たとえば１０２４列（ビット線対）が配置される場合、２５６個の処理演算エレメントＰＥにおいて並列に演算操作を実行することができる。
【００６９】
ワード線ＷＬを選択状態に維持した状態で、いわゆる「ページモード」に従ってビット線対を順次選択することにより、各データビット毎にワード線およびビット線を順次選択する構成に比べて、ワード線選択の時間を削減することができ、高速な演算処理を実行することができる。たとえば６４ビットデータが演算処理される場合においても、６４サイクルが必要とされるだけである。したがって、たとえば前述のように２５６個の演算エレメントＰＥが並列に動作する場合、１つのデータについての演算操作に要する時間は、６４／２５６サイクルとなり、データを逐次演算処理する場合に比べて、大幅に演算処理に要する時間を短縮することができる。
【００７０】
図７は、この発明の実施の形態１に従う並列演算処理装置（基本演算ブロック）の制御部の構成を概略的に示す図である。図７において、コントローラ２１は、図１に示すマイクロプログラム格納メモリ２３から読出された命令をデコードする命令デコーダ５０と、この命令デコーダ５０のデコード信号に従って各動作モードに応じた制御信号を生成するタイミングジェネレータ５２とを含む。
【００７１】
タイミングジェネレータ５２は、内部クロック信号ＣＬＫをタイミング基本信号として用いて、各種動作制御信号を生成する。図７においては、センスアンプ活性化信号ＳＡＥ、データ線プリチャージ指示信号ＤＰＲおよびビット線イコライズ指示信号ＢＬＥＱを、タイミングジェネレータ５２が発生するタイミング制御信号の代表例として示す。
【００７２】
図１に示すレジスタ群２２は、ワード線アドレスを指定するポインタＰｘを生成するＸポインタレジスタ５４と、列（Ｙゲート）の指定を行なうＹアドレスポインタＰｉを格納するＹポインタレジスタ５６とを含む。これらのポインタレジスタ５４および５６のポインタは、タイミングジェネレータ５２からの制御信号に従って各動作サイクルごとに更新される。
【００７３】
ＤＲＡＭセルアレイ３０に対しては、ワード線選択駆動回路６０が設けられる。このワード線選択駆動回路６０は、Ｘポインタレジスタ５４からのポインタＰｘをデコードし、対応のワード線を選択状態へ駆動する。また、ＩＯ分離型双方向転送回路３４に対しては、列デコード回路６２が設けられる。この列デコード回路６２は、Ｙポインタレジスタ５６からのＹアドレスポインタＰｉをデコードし、読出列選択線および書込列選択線上のＹ選択信号ＣＳＬＲおよびＣＳＬＷを、順次選択状態へ駆動する。
【００７４】
演算回路３２は、命令デコーダ５０からの演算命令に従ってその演算内容が設定される。この演算回路３２に対してまた、シフトレジスタ回路６６が設けられる。このシフトレジスタ回路６６は、メモリ入出力回路６４との間でデータを転送する。メモリ入出力回路６４は、図１に示す内部バス１２を介して内部データＩＤＱを転送する。シフトレジスタ回路６６は、演算回路３２の各演算エレメントに含まれるレジスタ（４４）との間でデータを転送し、これにより、ＤＲＡＭセルアレイ３０とメモリ入出力回路６４との間でのデータ転送を実現する。
【００７５】
図８は、図７に示すシフトレジスタ回路６６の構成の一例を示す図である。図８においては、シフトレジスタ回路６６のうちの１つの演算エレメントＰＥに対して設けられる構成を代表的に示す。シフトレジスタ回路６６は、演算エレメントＰＥのレジスタ４４に対応して設けられる２段のシフトレジスタ７０および７２を含む。これらのシフトレジスタ７０および７２は、Ｎビット幅を有し、図７に示すメモリ入出力回路６４からのＮビットデータＡ、Ｂを、転送クロック信号ＴＸＫに従って順次転送する。この転送クロック信号ＴＸＫは、データ転送動作時、クロック信号ＣＬＫに基づいて図７に示すタイミングジェネレータ５２から生成される。
【００７６】
シフトレジスタ７０および７２に対して切換回路（ＳＷ）７４が設けられる。切換回路７４は、切換制御信号ＭＸに従ってシフトレジスタ７０および７２の一方を選択し、１ビットずつレジスタ４４に転送する。演算エレメントＰＥに含まれるレジスタ４４から、１ビット単位で、データビットａ０−ａｎが順次転送される。
【００７７】
メモリ入出力回路６４においてＮビット幅のデータが順次転送され、転送クロック信号ＴＸＫに従ってシフトレジスタ回路６６が、順次Ｎビットデータを転送する。ここで、Ｎ＝ｎ＋１である。このシフトレジスタ回路６６においてすべての演算データが格納された後、再び、１ビットずつ、演算エレメントＰＥのレジスタ４４を介してＤＲＡＭセルアレイ３０の各ビット線対のメモリセルにデータが転送される。
【００７８】
逆に、ＤＲＡＭセルアレイ３０において格納されたデータを、メモリ入出力回路６４を介して転送する場合には、データビットの流れが逆となり、演算エレメントＰＥのレジスタ４４から切換回路７４を介してシフトレジスタ７０および７２へ、順次データが１ビット単位で転送される。すべての転送データがこのシフトレジスタ回路６６のシフトレジスタ（７０，７２）に格納された後、再び、転送クロック信号ＴＸＫに従ってメモリ入出力回路６４を介して順次Ｎビットデータが転送される。
【００７９】
なお、このシフトレジスタ回路６６において１つの演算エレメントＰＥに対応して設けられるシフトレジスタの数は、特に２に限定されない。１つの演算エレメントにおいて演算対象データが格納されるビット線対の数に応じて、このシフトレジスタの数が適宜定められればよい。
【００８０】
このデータ転送を行なう転送クロック信号ＴＸＫおよび切換制御信号ＭＸは、図７に示すコントローラ２１により生成され、また転送動作も、コントローラ２１のタイミングジェネレータ５２により制御される。
【００８１】
［変更例］
図９は、この発明の実施の形態１の変更例の要部の構成を概略的に示す図である。図９に示す構成においては、演算エレメントＰＥにおいて、レジスタ４２に代えて、２段のレジスタ４２Ａおよび４２Ｂが設けられる。これらのレジスタ４２Ａおよび４２Ｂの格納データが並列に演算器（ＡＬＵ）４２へ与えられる。また、これらのレジスタ４２Ａおよび４２Ｂへは、ＤＲＡＭセルアレイ３０からの読出データが共通に与えられる。
【００８２】
ＤＲＡＭセルアレイ３０においては、先の図５に示す構成と同様、演算エレメントＰＥに対応して、ビット線対ＢＬＡ−ＢＬＤが設けられ、ビット線対ＢＬＡおよびＢＬＢに演算対象のデータａ０−ａｎおよびｂ０−ｂｎが格納される。ビット線対ＢＬＣに演算結果データＦ（ａ、ｂ）が格納される。
【００８３】
この図９に示す並列演算処理装置のＤＲＡＭセルアレイ３０の構成およびＤＲＡＭセルアレイと演算エレメントＰＥの間のデータ転送を行う部分の構成は、図４に示す構成と同じである。ただし、レジスタ４０Ａは、クロック信号ＣＬＫがＨレベルのときにスルー状態となり、クロック信号ＣＬＫがＬレベルとなるとラッチ状態となる。レジスタ４０Ｂは、このレジスタ４０Ａの出力データをクロック信号ＣＬＫの半サイクル遅延して転送する。
【００８４】
図１０は、図９に示す並列演算処理装置の演算操作を示すタイミング図である。以下、図１０を参照して、図９に示す並列演算処理装置の演算操作について説明する。この図９に示す演算装置においても、演算はビットシリアル態様で実行される。
【００８５】
サイクル♯ｋにおいて、クロック信号ＣＬＫの立ち上がりに同期して演算サイクルが開始される。データ線プリチャージ指示信号ＤＰＲおよびビット線イコライズ指示信号ＢＬＥＱが非活性化され、次いで、ワード線アドレスポインタに従ってワード線ＷＬが選択され、メモリセルの記憶データが対応のビット線対に読出される。次いで、センスアンプ活性化信号ＳＡＥが活性化され、各ビット線対のメモリセルデータが、対応のセンスアンプにより検知され、増幅されてラッチされる。
【００８６】
クロック信号ＣＬＫがＨレベルの期間において読出Ｙゲート選択信号ＲＹ０が選択状態に駆動され、ビット線対ＢＬＡのデータビットａｉが、演算エレメントＰＥのレジスタ４０Ａに転送される。レジスタ４０Ａは、クロック信号ＣＬＫがＨレベルの時に、スルー状態となって、転送されたデータビットａｉを取り込みかつ出力する。レジスタ４０Ｂは半サイクルの遅延時間を有するため、このときには、レジスタ４０Ｂの保持データは、先の演算サイクルにおいて転送されたデータである。
【００８７】
次いで、クロック信号ＣＬＫがＬレベルとなると、ワード線ＷＬを選択状態に維持した状態で、読出Ｙゲート選択信号ＲＹ１が、選択状態に駆動される。応じて、ビット線対ＢＬＢのデータビットｂｉが、演算エレメントＰＥに転送される。この状態においては、レジスタ４０Ａは、ラッチ状態にあり、先に取り込んだデータビットａｉをラッチした状態にある。レジスタ４０Ｂは、このレジスタ４０Ａの出力データビットを取り込んだ状態であるが、まだ、その取り込んだデータは出力しない。従って、このクロック信号ＣＬＫがＬレベルの期間においては、レジスタ４０Ａおよび４０Ｂの保持データは変化しない。データビットｂｉは、ＩＯ分離型双方向転送回路に含まれるフリップフロップ（ＦＦＬ）によりラッチされる。
【００８８】
次のサイクル♯（ｋ＋１）において、クロック信号ＣＬＫがＨレベルに立上がると、レジスタ４０Ａがスルー状態となり、双方向転送回路のリードアンプラッチのフリップフロップにラッチされたデータビットｂｉが、レジスタ４０Ａに取り込まれて出力される。レジスタ４０Ｂは、このクロック信号ＣＬＫの立ち上がりに従って、先に取り込んだデータビットａｉを出力する。演算器（ＡＬＵ）が、クロック信号ＣＬＫの立ち上がりに従って動作し、これらのレジスタ４０Ａおよび４０Ｂの出力データに従って、設定された演算を実行する。この演算器（ＡＬＵ）４２の演算結果ビットＦ（ａｉ，ｂｉ）は、レジスタ４４に取り込まれてクロック信号ＣＬＫの立下りに従って出力される。
【００８９】
このサイクル♯（ｋ＋１）のクロック信号ＣＬＫがＬレベルの期間において、レジスタ４４の出力データに従ってＩＯ分離型双方向転送回路に含まれるライトドライバの出力データが安定化すると、書込Ｙゲート選択信号ＷＹ２が選択状態に駆動される。応じて、ビット線対ＢＬＣのワード線ＷＬに接続されるメモリセルに演算結果データビットＦ（ａｉ、ｂｉ）が格納される。
【００９０】
演算結果データビットの格納が完了すると、ワード線ＷＬが非選択状態に駆動され、また、センスアンプ活性化信号ＳＡＥが非活性化され、またビット遷移コライズ指示信号ＢＬＥＱおよびデータ線プリチャージ指示信号ＤＰＲが活性化され、ＤＲＡＭセルアレイ３０がプリチャージ状態に復帰する。以降、全データビットについての演算処理が完了するまで同様の演算処理が実行される。
【００９１】
この図９に示す構成においては、データビットについての演算に２クロックサイクルが必要である。しかしながら、ワード線ＷＬがデータの読出および書込が行われる間選択状態に維持されており、各データビットの読出および選択に対してワード線の選択およびＤＲＡＭセルアレイのプリチャージを行う構成に比べて演算サイクル数を低減することができ、高速演算を実現することができる。
【００９２】
この変更例の並列演算処理装置の動作制御は、図７に示すコントローラ２１により実行される。書込がデータ読出の次のサイクルに実行されるようにタイミングジェネレータ５２が、制御信号の活性化タイミングを調整する（図５に示す構成に比べて、書込Ｙゲート選択信号の発生タイミングを１クロックサイクル遅延する）。
【００９３】
以上のように、この発明の実施の形態１に従えば、並列に設けられる演算エレメントに対するデータ記憶部としてＤＲＡＭセルで構成されるアレイを用いており、演算データ格納のためのメモリアレイの占有面積を低減することができる。
【００９４】
また、ＤＲＡＭセルアレイからの読出データの転送には、ページモードを利用しており、高速でＤＲＡＭセルアレイから演算エレメントに対してデータを転送することができ、サイクル時間を短縮することができる。
【００９５】
［実施の形態２］
図１１は、この発明の実施の形態２に従う並列演算処理装置の要部の構成を概略的に示す図である。図１１において、ＤＲＡＭセルアレイ３０においては、演算エレメントＰＥに対し複数のビット線対ＢＬＡ−ＢＬＮが設けられる。これらのビット線対ＢＬＡ−ＢＬＮにおいては、ワード線ＷＬの延在方向に沿ってデータＡ（ビットａ０−ａｎ）、Ｂ（ビットｂ０−ｂｎ）がそれぞれ格納される。したがって、ビット線対ＢＬＰの延在方向に沿っては、異なるデータのビットが順次配置される。ｎは、０以上の整数である。
【００９６】
演算エレメントＰＥとＤＲＡＭセルアレイの対応のビット線対ＢＬＡ−ＢＬＮの間では、リードモディファイライトモードに従ってデータの転送が実行される。演算エレメントＰＥにおいては、レジスタ４０Ｎおよび４４Ｎと演算器（ＡＬＵ）４２Ｎが設けられる。演算器（ＡＬＵ）４２Ｎは、Ｎビット（＝ｎ＋１）ビットの幅を有し、ＤＲＡＭセルアレイ３０の１つのデータ（例えばＡ）の全ビット（たとえばａ０−ａｎ）を並列に受けて演算処理を実行する。レジスタ４０Ｎおよび４４ＮもＮビットの幅を有する。リードモディファイライトモードを利用する場合には、レジスタ４０Ｎは利用されず、演算器（ＡＬＵ）４２ＮのＮビットの演算結果が、レジスタ４４Ｎに格納される。このレジスタ４４Ｎの格納データが、双方向転送回路（図７に示す）を介して転送される。
【００９７】
図１２は、図１１に示す並列演算処理装置の演算操作を示すタイミング図である。以下、図１２を参照して、図１１に示す並列演算処理装置の演算操作について説明する。なお、図１２においては、先の図４に示す構成と同様の制御信号が利用される。
【００９８】
サイクル♯ｋにおいて、演算処理が実行される前に、データ線プリチャージ指示信号ＢＰＲおよびビット線イコライズ／プリチャージ指示信号ＢＬＥＱが非活性状態となる。この後、ワード線ＷＬが選択状態へ駆動され、次いで、センスアンプ活性化信号ＳＡＥが活性化される。ワード線ＷＬが選択されると、データＡのビットａ０−ａｎがすべて対応のビット線対ＢＬＡ−ＢＬＮに読出され、センスアンプ活性化信号ＳＡＥの活性化に従って、読出されたメモリセルのデータが、センスアンプ（ＳＡ）により増幅されてラッチされる。
【００９９】
次いで、読出Ｙゲート選択信号ＲＹ０−ＲＹｎをすべて選択状態へ駆動する。応じて、図４に示す読出アンプゲートＲＷＹＧがすべて導通状態となり、データＡのビットａ０−ａｎが読出アンプゲートおよび双方向転送回路を介して対応の演算エレメントＰＥに転送される。このとき、双方向転送回路においては、図４に示すＮビット幅のリードアンプラッチＲＡＰＬにより、読出データがラッチされる。
【０１００】
このＮビットの転送データに従って演算器（ＡＬＵ）４２Ｎが演算操作Ｆ（）を行ない、演算結果データＦ（Ａ）を生成し、レジスタ４４Ｎに格納する。このレジスタ４４Ｎの格納データが確定すると、所定のタイミングで書込Ｙゲート選択信号ＷＹ０−ＷＹｎを選択状態へ駆動する。これにより、レジスタ４４Ｎに格納されたＮビット（ｎ＋１ビット）のデータＦ（Ａ）が、図４に示すＮビット幅のライトドライバを介して転送され、データＡが格納されている領域に再び演算結果データＦ（Ａ）が格納される。
【０１０１】
演算結果データＦ（Ａ）のメモリセルへの書込完了後、ＤＲＡＭセルアレイ３０が、一旦プリチャージ状態へ復帰し、ワード線ＷＬが非選択状態とされ、ビット線イコライズ信号ＢＬＥＱおよびデータ線プリチャージ指示信号ＤＰＲが活性化される。また、センスアンプ活性化信号ＳＥが、非活性化される。
【０１０２】
サイクル♯（ｋ＋１）において再び、次の演算データの読出、演算処理、および書込がリードモディファイライトモードで実行される。このサイクル♯（ｋ＋１）においても、サイクル♯ｋと同様に演算操作が行なわれるが、この場合、ワード線アドレスポインタが更新され、データＢが選択される。これにより、データＢの各ビットｂ０−ｂｎが並列に読出され、演算エレメントＰＥに転送され、演算器（ＡＬＵ）４２Ｎにより、所定の演算処理Ｆが実行され、演算結果データＦ（Ｂ）が生成される。
【０１０３】
再び、レジスタ４４Ｎにこの演算結果データＦ（Ｂ）が格納された後、書込列選択信号ＷＹ０−ＷＹｎをすべて選択状態へ駆動し、このレジスタ４４Ｎに格納されるビットをすべてデータＢの格納位置に転送して書込む。
【０１０４】
この図１１に示す構成においては、データＡ、およびデータＢがそれぞれ１クロックサイクル内で演算処理されて元の位置に格納される。たとえば画像データにおける塗潰し演算または背景画像の変換などの操作が行なわれる場合、図１１に示すようなリードモディファイライトモードを用いてワード線ＷＬを選択状態に維持した状態で、データの転送、演算および書込を行なうことにより、所定の演算操作を高速で実行することができる。
【０１０５】
図１３は、この発明の実施の形態２に従う並列演算処理装置の制御部の構成を示す図である。図１３において、演算回路３２に対してＮビット幅の演算エントリ選択回路７５が設けられる。また、レジスタ群２２においては、Ｘポインタレジスタ５４が用いられる。列デコード回路６２は、タイミングジェネレータ５２からの制御信号に従って、読出列選択線上の読出Ｙゲート選択信号ＣＳＬＲ（ＣＳＬＲ０−ＣＳＬＲＮ）および書込列選択線上の書込Ｙゲート選択信号ＣＳＬＷ（ＣＳＬＷ０−ＣＳＬＷＮ）を、それぞれ、読出時および書込時並行して選択状態へ駆動する。
【０１０６】
この図１３に示す並列演算処理装置の構成は、転送データのビット幅が異なることを除いて、図７に示す並列演算処理装置の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１０７】
演算エントリ選択回路７５は、演算回路３２に含まれる演算器それぞれに対応して設けられる選択回路を含み、メモリ入出力回路６４から転送されるＮビット幅のデータを順次演算エレメントのレジスタに格納する。
【０１０８】
図１４は、この図１３に示す演算エントリ選択回路７１の構成の一例を示す図である。メモリ入出力回路６４からのデータは、Ｎビット幅の内部データ転送バス８０を介して順次転送される。演算エントリ回路７５は、演算エレメントＰＥそれぞれに対応して設けられる選択回路８２を含む。この選択回路８２はＮビット幅であり、図１３に示すタイミングジェネレータ５２からの選択信号ＳＥＬに従って対応の演算エントリＰＥに含まれるレジスタ４４Ｎを内部データ転送バス８０に結合する。
【０１０９】
したがって、内部データ転送バス８０へは、データＡ、データＢ、…とＮビット幅のデータが順次転送され、選択回路８２により、Ｎビット幅の転送データの全ビットが対応の演算エレメントのレジスタ４４Ｎに並列に格納される。従って、演算エントリ毎に順次選択回路８２が導通状態となって、内部データの演算エレメントのレジスタへの転送および格納が実行される。
【０１１０】
このレジスタ４４Ｎに格納されたＮビット幅のデータＡ、Ｂ…は、図１３に示すＩＯ分離型双方向転送回路３４に含まれるライトドライバに対応するＮビット幅のライトドライバを介して、ＤＲＡＭセルアレイの対応のメモリセルに格納される。
【０１１１】
選択回路８２へ与えられる選択信号ＳＥＬは、コントローラ２１に含まれるタイミングジェネレータ５２から、たとえばシフトレジスタなどを用いて、演算エントリ（ビット線対群、ＩＯ分離型双方向データ転送回路および演算エレメントの組）ごとに、クロック信号ＣＬＫまたは転送クロック信号に従って選択状態へ駆動される。
【０１１２】
Ｎビットデータの演算処理のときに、リードモディファイライトを利用することにより１クロックサイクルで、演算処理を実行することができる。
【０１１３】
以上のように、この発明の実施の形態２に従えば、演算回路に対応して、ＤＲＡＭセルアレイを設け、ＤＲＡＭセルアレイと演算回路の間で、リードモディファイライトモードでＮビットデータの転送、演算を行なっている。したがって、メモリセルアレイの占有面積を増大させることなく、高速で演算処理を実行することができる。
【０１１４】
［実施の形態３］
図１５は、この発明の実施の形態３に従う並列演算処理装置の要部の構成を概略的に示す図である。この図１５に示す並列演算処理装置においては、ＤＲＡＭセルアレイ３０において、ビット線対ＢＬＰ１１−ＢＬＰ１ｋが、１つの演算エレメントＰＥ１に対応して設けられ、また、ビット線対ＢＬＰ２１−ＢＬＰ２ｋが、演算エレメントＰＥ２に対応して設けられる。ビット線対ＢＬＰ１１−ＢＬＰ１ｋ、ＢＬＰ２１−ＢＬＰ２ｋには、それぞれセンスアンプ（ＳＡ）ＳＡ１１−ＳＡ１ｋ、ＳＡ２１−ＳＡ２ｋが設けられる。すなわち、１演算エントリにおいて、ｋ個のビット線対が配置される。
【０１１５】
ＩＯ分離型双方向転送回路３４においては、先の実施の形態１において図３を参照して説明したように、演算エレメントＰＥ１に対応してリード／ライトＹゲートＲＷＹＧ１１−ＲＷＹＧ１ｋが設けられ、演算エレメントＰＥ２に対応して、リード／ライトＹゲートＲＷＹＧ２１−ＲＷＹＧ２ｋが設けられる。リード／ライトＹゲートＲＷＹＧ１１−ＲＷＹＧ１ｋは、ｋビット幅のローカル読出データバスＲＬＤＢ１およびローカル書込データバスＬＷＤＢ１に並列に結合され、また、リード／ライトＹゲートＲＷＹＧ２１−ＲＷＹＧ２ｋは、並列に、ｋビット幅のローカル読出データバスＲＬＤＢ２およびローカル書込データバスＬＷＤＢ２に結合される。このローカル読出データバスＲＬＤＢ１およびＬＲＤＢ２は、それぞれ、リードアンプラッチＲＡＰＬ１およびＲＡＰＬ２に結合され、ローカル書込データバスＬＷＤＢ１およびＬＷＤＢ２は、それぞれｋビット幅のライトドライバＷＤＲ１およびＷＤＲ２に結合される。
【０１１６】
したがって、このＩＯ分離型双方向転送回路３４においては、ｋビットデータが各演算エレメントＰＥ１およびＰＥ２各々に対応して転送される。従って、ＤＲＡＭセルアレイ３０におけるデータビットの格納態様は、図１１に示す演算エントリのデータ格納態様と同様である。
【０１１７】
実施の形態３においては、実施の形態２と異なり、演算エレメントＰＥ１およびＰＥ２においては、演算エレメントＰＥ１の演算結果を演算エレメントＰＥ２へ選択的に転送する経路が設けられる。
【０１１８】
図１６は、図１５に示す演算エレメントＰＥの具体的構成の一例を概略的に示す図である。図１６において、演算エレメントＰＥ（ＰＥ１，ＰＥ２）においては、演算器（ＡＬＵ）として、ｋビット加算回路９０が設けられる。このｋビット加算回路９０に対してレジスタ４０Ｋおよび４４Ｋが設けられ、また、Ｃレジスタ９２が設けられる。レジスタ４０Ｋは、対応のリードアンプラッチＲＡＰＬからのｋビットデータを格納し、ｋビット加算回路９０は、レジスタ４０Ｋに格納されるデータとリードランプラッチから転送されるｋビットデータとＣレジスタ９２に格納されるデータビットとを加算する。このｋビット加算回路９０は、全加算回路であり、和（サム）ＳおよびキャリーＣを生成する。
【０１１９】
Ｃレジスタ９２は、１ビットのキャリーＣを格納し、レジスタ４４Ｋには、ｋビット加算回路９０の加算結果の和（サム）Ｓが格納される。キャリーＣは、次段の演算エレメントにまた転送される。切換回路９４により、前段の演算エレメントからのキャリーＣｐと対応のｋビット加算回路９０の出力するキャリーＣの一方を選択してＣレジスタ９２に格納する。
【０１２０】
演算エレメントＰＥ１、ＰＥ２…各々においては、ｋビットデータの全加算を実行し、そのキャリーＣが、演算データのデータビット幅に応じて選択的に転送される。たとえばｋが４であり、演算データが８ビットの場合、演算エレメントＰＥ１において下位４ビットの全加算が行なわれ、演算エレメントＰＥ２において、上位４ビットのデータと下位の演算エレメントＰＥ１からのキャリーＣとの加算を実行する。
【０１２１】
Ｃレジスタ９２に格納されるキャリーＣは、加算結果後に、ＤＲＡＭセルアレイの対応の加算結果格納領域に格納される。従って、図１５に示す構成においては、演算エレメントＰＥのビット幅がｋビットと固定されていても、演算データとしては、ｋビット、２ｋビットと演算データのビット幅の拡張を行うことができる。
【０１２２】
切換回路９４のデータビット転送経路は、演算データのビット幅に応じて、制御信号によりその伝達経路が設定されてもよく、また、ヒューズプログラム回路またはマスク配線などにより、その伝達経路が固定的に設定されてもよい。
【０１２３】
図１７は、演算エレメントＰＥ１、ＰＥ２…を含む演算回路３２とメモリ入出力回路（図１３参照）の間のデータ転送経路を概略的に示す図である。この図１７において、メモリ入出力回路６４からの内部データ転送バス９５は、複数の単位データバスＵＢＳ１、ＵＢＳ２…ＵＢＳｊに分割される。内部データ転送バス９５のビット幅は、従って、ｋビット単位で調整可能である。
【０１２４】
各演算エレメントＰＥに対応して、選択回路９６が設けられる。この選択回路９６は、ｋビット幅を有し、接続部ＳＸ１、ＳＸ２、…ＳＸｊによりその単位データバスＵＢＳ１−ＵＢＳｊとの接続が設定される。この接続部ＳＸ１−ＳＸｊは、マスク配線でその接続経路が設定されてもよく、また、スイッチング素子を、ヒューズプログラム回路からの固定情報に従って選択的に導通／非導通所帯に設定して接続経路が設定されてもよい。
【０１２５】
これにより、演算エレメントＰＥは、最大ｋ・ｊビット幅のデータのうちの、どのデータ群を処理するかに応じて、その接続経路が切換えられる。これにより、演算回路３２において、ｋビット単位で、ｋビットデータから最大ｋ・ｊビットデータの演算を行なうことができる。
【０１２６】
演算回路３４の演算エレメントＰＥにおいてＡＬＵとして、通常のビット反転などを行なう回路が設けられている場合には、特にＣレジスタ９２は利用されない。各データビット線においてそれぞれｋビット単位で、反転などの演算処理が実行されて、その演算結果が対応のメモリセルに格納されればよい。したがって、この実施の形態３において、演算回路における演算処理のデータビット幅が可変とされるだけであり、その演算内容に応じて、リードモディファィドライトモードが用いられてもよく、また、実施の形態１に示すように、各データビットごとに演算操作が実行されてもよい。
【０１２７】
以上のように、この発明の実施の形態３の構成においては、演算回路において演算処理するデータビット幅を変更可能に設定しており、処理用途に応じて異なる演算データのビット幅に対して同一の設計で対応することができる。たとえば、４ビットデータ、８ビットデータ、１６ビットデータおよび３２ビットデータに対して、それぞれ図１６に示す切換回路９４のデータ転送経路および図１７に示す接続部ＳＸ１−ＳＸｊの接続を切換えることにより、各データを、演算処理することができる。
【０１２８】
データ演算の制御回路としては、図１３に示す制御部の構成を利用することができる。図１７に示す選択回路９６に与えられる選択信号ＭＸの発生タイミングを、データビット幅に応じて調整すればよい。すなわち、４ビットデータの場合には各演算エレメントごとに選択回路９６を切換え、８ビットデータの場合には、２つの演算エレメントごとに、選択回路を並列に導通状態とする。
【０１２９】
図１８は、選択回路９６に対する選択信号ＭＸＸを発生する部分の構成の一例を示す図である。図１８において、選択信号発生部は、カウンタ１００と、選択信号ＭＸＸ０−ＭＸＸｍをカウンタ１００のカウント値に従って生成するデコード回路１０２とを含む。これらのカウンタ１００およびデコード回路１０２は、図１に示すコントローラ２１に含まれ、カウンタ１００およびデコード回路１０２の動作タイミングは、例えば図１３に示すタイミングジェネレータから生成される。
【０１３０】
カウンタ１００は、動作時、クロック信号ＣＬＫをカウントする。デコード回路１０２へは、データビット幅指示信号ＢＷＤＴＨが与えられ、カウンタ１００のカウント値をデコードする際に、このデータビット幅指示信号ＢＷＤＴＨに従って、選択的にカウント値が縮退されて（あるカウントビットの偶数値および奇数値がともに選択状態とされ）、選択信号ＭＸＸ０−ＭＸＸｍを生成する。これにより、ｋビット単位のときには、各演算エレメントごとに、選択信号ＭＸＸ０−ＭＸＸｍが、カウンタ１００からのカウント値に従って順次選択状態へ駆動される。一方、たとえば２・ｋビット幅の場合には、デコード回路１０２からは、２つの選択信号ＭＸＸ０およびＭＸＸ１などのように、隣接する選択信号ＭＸＸｉおよびＭＸＸ（ｉ＋１）が並行して選択状態へ駆動される。
【０１３１】
コントローラ２１内における選択信号を発生するデコード回路１０２のデコード時のカウントビットの縮退動作を、データビット幅指示信号ＢＷＤＴＨに従った設定することにより、演算処理データビット幅に応じて演算エレメントＰＥに対応のｋビットのデータを格納することができる。これにより、演算データのビット幅に応じて実効的に１つの演算エレメントの処理ビット幅を変更することが可能となる。
【０１３２】
なお、この選択信号ＭＸＸ（ＭＸＸ０−ＭＸＸｍ）は、接続部ＳＸ１−ＳＸｊと同様、マスク配線により、演算対象データビット幅に応じて伝達する経路が切換えられてもよい。この場合には、１つの選択信号が供給される選択回路の数が、演算対象データのビット幅に応じて設定される。デコード回路１０２における縮退動作は不要となり、カウンタ１００のカウント値に従って選択信号が順次選択状態に駆動される。
【０１３３】
以上のように、この発明の実施の形態３に従えば、演算回路の処理データビット幅を変更可能に調整しており、データビット幅の異なる処理用途に対して柔軟に同一構成の演算エントリを用いて対応することができる。
【０１３４】
［実施の形態４］
図１９は、この発明の実施の形態４に従う並列演算処理装置の要部の構成を概略的に示す図である。この図１９に示す構成において、ＤＲＡＭセルアレイ３０の両側に、ＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒが配置される。ＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒに対応してそれぞれ、演算回路３２Ｌおよび３２Ｒが設けられる。
【０１３５】
ＤＲＡＭセルアレイ３０においては、奇数ビット線対ＢＬＰＯ１−ＢＬＰＯｎと偶数ビット線対ＢＬＰＥ１−ＢＬＰＥｎが交互に配置される。ビット線対ＢＬＰＯ１−ＢＬＰＯｎおよびＢＬＰＥ１−ＢＬＰＥｎと交差するようにワード線ＷＬが配置され、各ビット線対とワード線との交差部に対応してダイナミック型メモリセルＭＣが配置される。
【０１３６】
奇数ビット線対ＢＬＰＯ１−ＢＬＰＯｎに対応して、ＤＲＡＭセルアレイ３０の一方側にセンスアンプＳＡＲ１−ＳＡＲｎが配置され、偶数ビット線対ＢＬＰＥ１−ＢＬＰＥｎに対応して、ＤＲＡＭセルアレイ３０の対向する他方側に、センスアンプＳＡＬ１−ＳＡＬｎが配置される。センスアンプＳＡＲ１−ＳＡＲｎおよびセンスアンプＳＡＬ１−ＳＡＬｎを、各ビット線ごとに交互にＤＲＡＭセルアレイ３０の両側に配置することにより、センスアンプのピッチ条件を緩和する。
【０１３７】
ＩＯ分離型双方向転送回路３４Ｌにおいては、センスアンプＳＡＬ１−ＳＡＬｎ各々に対応してリード／ライトＹゲートＲＷＹＧＬ１−ＲＷＹＧＬｎが設けられる。これらのリード／ライトＹゲートＲＷＹＧＬ１−ＲＷＹＧＬｎは、それぞれローカル書込データバスＬＷＤＢＬｉおよびローカル読出データバスＬＲＤＢＬｉに結合される。リード／ライトＹゲートＲＷＹＧＬ１−ＲＷＹＧＬｎは、それぞれ図４に示す構成と同様、互いに別々に設けられるリードアンプゲートおよびライトアンプゲートを含み、導通時、対応のセンスアンプＳＡＬとローカル書込データバスＬＷＤＢＬｉまたはＬＲＤＢＬｉとの間でデータを転送する。
【０１３８】
ローカル読出データバスＬＲＤＢＬｉに対してリードアンプラッチＲＡＰＬＬｉが設けられ、ローカル書込データバスＬＷＤＢＬｉに対してライトドライバＷＤＲＬｉが設けられる。これらのリードアンプラッチＲＡＰＬＬｉおよびライトドライバＷＤＲＬｉは、各々、演算エレメントＰＥＬｉとの間で一方方向にデータの転送を行なう。リードアンプラッチＲＡＰＬＬｉおよびライトドライバＷＤＲＬｉの構成は、先の図４に示す構成と同様である。
【０１３９】
ＩＯ分離型双方向転送回路３４Ｒにおいては、センスアンプＳＡＲ１−ＳＡＲｎ各々に対応してリード／ライトＹゲートＲＷＹＧＲ１−ＲＷＹＧＲｎが設けられる。これらのリード／ライトＹゲートＲＷＹＧＲ１−ＲＷＹＧＲｎが、それぞれ、リードアンプゲートおよびライトアンプゲートを含み、ローカル読出データバスＬＲＤＢＲｉおよびローカル書込データバスＬＷＤＢＲｉに結合される。
【０１４０】
ローカル読出データバスＬＲＤＢＲｉは、リードアンプラッチＲＡＰＬＲｉに結合され、ローカル書込データバスＬＷＤＢＲｉがライトドライバＷＤＲＲｉに結合される。リードアンプラッチＲＡＰＬＲｉおよびライトドライバＷＤＲＲｉは、対応の演算エレメントＰＥＲｉと双方向でデータの転送を行なう。
【０１４１】
このＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒが転送するデータのビット幅は、演算エレメントＰＥＬｉおよびＰＥＲｉの演算処理データのビット幅に応じて適宜定められる（実施の形態３参照）。
【０１４２】
この図１９に示すように、ＤＲＡＭセルアレイ３０の両側に、ＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒを配置し、ＤＲＡＭセルアレイ３０のビット線対を交互に、ＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒに結合する。これにより、ＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒのワード線延在方向におけるピッチ条件が緩和され、１演算エントリの処理データビット幅が大きくなっても、余裕を持って各構成要素を配置することができる。
【０１４３】
また、演算エレメントＰＥＬｉおよびＰＥＲｉは、ｎ個のビット線対ではなく、２・ｎ個のビット線対に対応して配置することができ、演算エレメントＰＥＬｉおよびＰＥＲｉのビット条件も緩和され、複雑な演算操作を行なう演算エレメントでも余裕を持って配置することができる。
【０１４４】
図２０は、この発明の実施の形態４に従う並列演算処理装置（基本演算ブロック）の構成を概略的に示す図である。図２０において、ＤＲＡＭセルアレイ３０の両側に、ＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒが設けられる。このＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒは、それぞれ、ＤＲＡＭセルアレイ３０の偶数ビット線対ＢＬＰＥおよび奇数ビット線対ＢＬＰＯと双方向にデータを転送する。このＤＲＡＭセルアレイ３０に対しては、ワード線選択回路６０が設けられる。
【０１４５】
このＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒそれぞれに対応してかつ近接して演算回路３２Ｌおよび３２Ｒが設けられる。これらの演算回路３２Ｌおよび３２Ｒは、図１９に示す演算エレメントＰＥＬｉおよびＰＥＲｉを、１以上の所定数のビット線対ごとに含む。
【０１４６】
この演算回路３２Ｌおよび３２Ｒに近接して、シフトレジスタ回路６６Ｌおよび６６Ｒが設けられる。これらのシフトレジスタ回路６６Ｌおよび６６Ｒは、図８に示す構成と同様の構成を有し、演算回路３２Ｌおよび３２Ｒに対し、それぞれ、演算対象データを各演算エレメント内のレジスタに格納し、また演算処理後のデータを演算回路３２Ｌおよび３２Ｒから受け取る。
【０１４７】
これらのシフトレジスタ回路６６Ｌおよび６６Ｒに対応してメモリ入出力回路６４Ｌおよび６４Ｒが設けられる。これらのメモリ入出力回路６４Ｌおよび６４Ｒは共通に、内部データバス１２に結合され、内部データＩＤＱを転送する。
【０１４８】
演算操作およびデータ転送の制御を行なうために先に実施の形態１と同様、コントローラ２１およびレジスタ群２２が設けられる。レジスタ群２１は、ＤＲＡＭセルアレイ３０のワード線を指定するＸポインタＰｘを格納するＸポインタレジスタ５４と、ＤＲＡＭセルアレイ３０の列（ビット線対）を指定するＹアドレスポインタＰｙを格納するＹポインタレジスタ５６を含む。
【０１４９】
コントローラ２１は、図示しない命令メモリからの命令をデコードする命令デコーダ５０と、命令デコーダ５０の命令に従って、クロック信号ＣＬＫをタイミング基本信号として各種動作制御信号を生成するタイミングジェネレータ５２を含む。
【０１５０】
タイミングジェネレータ５２は、先の実施の形態１から３と同様、シフトレジスタ回路６６Ｌ，６６Ｒ、演算回路３２Ｌ，３２ＲおよびＩＯ分離型双方向転送回路３４Ｌおよび３４Ｒのデータ転送動作を制御し、またＤＲＡＭセルアレイ３０におけるメモリセルの選択、および列デコード回路６２Ｒ，６２Ｌの列選択動作を制御する。
【０１５１】
この図２０に示す構成において、演算処理を実行する場合には、演算回路３２Ｌおよび３２Ｒにおいて並列して演算処理を実行する。
【０１５２】
シフトレジスタ回路６６Ｌおよび６６Ｒを用いて、演算回路３２Ｌ，３４Ｒを介してメモリ入出力回路６４Ｌ，６４ＲとＤＲＡＭセルアレイ３０との間でのデータの書込／読出を実行する。
【０１５３】
この図２０に示す構成においては、実施の形態１と同様、１ビット単位で演算操作が実行されても良く、また、実施の形態２および３に示すようにＮビットデータの演算が実行されてもよい。また、演算データのビット幅に応じて１演算単位（演算データに対応して配置される演算エントリ）のビット線対の数を調整して、実効的に演算エレメントの高さが調整されてもよい（ｋビットデータの処理およびｊ・ｋビットデータの処理を演算エントリにおいて行うことにより、演算エントリの高さ（処理データビット幅）を実効的に調整する）。
【０１５４】
また、メモリ入出力回路６４Ｌおよび６４Ｒは、別々に設けられず、１つのメモリ入出力回路６４が設けられ、内部データバス１２とＤＲＡＭセルアレイ３０との間でデータ転送が行なわれてもよい。
【０１５５】
また、この図２０に示す構成の場合、演算回路３２Ｌおよび３２Ｒの一方を用いてＤＲＡＭセルアレイ３０のデータに演算処理を実行し、他方の演算回路のレジスタ（４４）に、対応のシフトレジスタ回路（６６Ｌ，６６Ｒ）を介して演算対象データの書込または読出が実行されてもよい。この場合のデータ転送の制御は、コントローラ２１からの制御により、シフトレジスタ回路６６Ｌまたは６６Ｒを選択的に活性化することにより実現することができる。
【０１５６】
したがって、このＤＲＡＭセルアレイ３０のビット線対群交互に、演算エレメントを配置する構成の場合、各演算エレメントおよびＩＯ分離型双方向転送回路３４Ｌ，３４Ｒのピッチ条件を緩和することができる効果が得られるとともに、以下の効果も併せて得ることができる。すなわち、ＤＲＡＭセルアレイ３０の格納データの演算操作を行なっている間に、メモリ入出力回路６４Ｌまたは６４Ｒを介して、演算回路３２Ｌまたは３２Ｒのレジスタ４４に格納されたデータの外部への転送またはレジスタ４４へのデータの格納を行なうことができる。
【０１５７】
［実施の形態５］
図２１は、この発明の実施の形態５に従う並列演算処理装置の要部の構成を概略的に示す図である。図２１においては、１つの基本演算ブロック（並列演算処理装置）の構成を代表的に示す。
【０１５８】
図２１において、ＤＲＡＭセルアレイ３０は、ＤＲＡＭセルが行列状に配列されるＤＲＡＭセルアレイマット３０Ｓと、ビット線周辺回路３０Ｐとで構成される。ビット線周辺回路３０Ｐは、各ビット線対に対応して設けられるセンスアンプＳＡおよびビット線イコライズ回路ＢＥＱを含む。ＤＲＡＭセルアレイマット３０Ｓに対応して、ワード線選択駆動回路６０が設けられる。
【０１５９】
ＤＲＡＭセルアレイ３０と演算回路３２の間に、ＩＯ分離型双方向転送回路３４が配置され、このＩＯ分離型双方向転送回路３４に対応して列選択回路１０４が設けられる。この列選択回路１０４は、ＩＯ分離型双方向転送回路３４の転送データビット幅に応じて、その構成が異なる（実施の形態１から３参照）。
【０１６０】
また、演算回路３２とメモリ入出力回路６４の間のデータ転送を行なうために、データ選択転送回路１０６が設けられる。このデータ選択転送回路１０６は、演算回路３２の演算データビット幅に応じて実施の形態１から３のいずれかに示す構成が利用される。
【０１６１】
メモリ入出力回路６４は、先の実施の形態１から３と同様、内部データバス１２に結合され、Ｎビット幅の内部データＩＤＱを転送する。
【０１６２】
レジスタ群２２においては、Ｘポインタレジスタ５４およびＹポインタレジスタ５６に加えて、さらに、リフレッシュポインタレジスタ１１４とセレクタ１１６とが設けられる。リフレッシュポインタレジスタ１１４は、ＤＲＡＭセルアレイマット３０Ｓにおけるリフレッシュ行を指定するリフレッシュワード線アドレスを格納する。セレクタ１１６は、切換指示信号ＲＦＳＷに従ったＸポインタレジスタ５４およびリフレッシュポインタレジスタ１１４の一方のポインタを選択してワード線アドレスポインタＰｘを生成する。
【０１６３】
なお、図２１に示す構成においては、Ｙポインタレジスタ５６が設けられて、ＹアドレスポインタＰｉを生成して列選択回路１０４へ与えている。しかしながら、ＩＯ分離型双方向転送回路３４の転送データビット幅に応じて、Ｙポインタレジスタ５６は設けられなくてもよい（実施の形態２および３参照）。
【０１６４】
コントローラ２１は、命令デコーダ５０と、タイミングジェネレータ１２０と、リフレッシュ間隔を規定するリフレッシュタイマ１２２と、ＤＲＡＭセルアレイマット３０Ｓにおけるメモリのデータアクセスとリフレッシュとの調整を行なう調停回路１２４を含む。
【０１６５】
命令デコーダ５０は、先の実施の形態１から４と同様、命令メモリからの命令をデコードし、デコード結果をタイミングジェネレータ１２４に伝達する。
【０１６６】
リフレッシュタイマ１２２は、内部クロック信号ＣＬＫをカウントし、所定の時間（リフレッシュ間隔）ｔＲＥＦごとに、リフレッシュ要求ＲＦＱをアサートする。タイミングジェネレータ１２０は、たとえばシーケンスコントローラで構成され、命令デコーダ５０の命令に従って所定のシーケンスで内部動作タイミングを規定する制御信号を生成するとともに、レジスタ群２２に含まれるポインタレジスタのポインタを更新する。図２１においては、タイミングジェネレータ１２０が生成する内部動作制御信号として、ビット線イコライズ指示信号ＢＬＥＱ、センスアンプ活性化信号ＳＡＥ、データ線プリチャージ指示信号ＤＰＲ、およびアレイ活性化信号ＲＡＣＴを代表的に示す。アレイ活性化信号ＲＡＣＴは、ＤＲＡＭセルアレイマット３０Ｓが選択状態にある期間を規定する。
【０１６７】
調停回路１２４は、タイミングジェネレータ１２０からのアレイ活性化信号ＲＡＣＴとリフレッシュタイマ１２２からのリフレッシュ要求ＲＦＱとに従って、ＤＲＡＭセルアレイ３０における演算データ処理とリフレッシュ動作が衝突しないように調停を行って、リフレッシュ指示ＲＥＦをタイミングジェネレータ１２０に与える。タイミングジェネレータ１２０は、また、調停回路１２４からリフレッシュ指示ＲＥＦが与えられると、ＤＲＡＭセルアレイ３０においてリフレッシュワード線アドレスポインタに従ってリフレッシュ動作を実行させる制御を行う。
【０１６８】
図２２は、図２１に示す基本演算ブロック（並列演算処理装置）におけるリフレッシュ動作を示すフロー図である。以下、図２２を参照して、図２１に示す並列演算処理装置のリフレッシュ動作について、主としてコントローラ２１のリフレッシュ動作制御に焦点をあてて説明する。
【０１６９】
調停回路１２４は、リフレッシュタイマ１２２から、リフレッシュ要求ＲＦＱが発行されたかを常時モニタする（ステップＳＰ１）。調停回路１２４は、リフレッシュタイマ１２２からリフレッシュ要求ＲＦＱが与えられると、次いで、タイミングジェネレータ１２０からのアレイ活性化信号ＲＡＣＴがアサートされているかを判定する（ステップＳＰ２）。アレイ活性化信号ＲＡＣＴがリフレッシュ要求が与えられているときにアサートされている場合には、ＤＲＡＭセルアレイ３０において、演算処理のためにメモリセルが選択されている。従って、この状態においては、アレイ活性化信号ＲＡＣＴがネゲートされるまで、リフレッシュ実行は待ち合わせられる。
【０１７０】
アレイ活性化信号ＲＡＣＴがネゲート状態の時には、リフレッシュ割込ルーチンが開始され、調停回路１２４は、リフレッシュ指示ＲＥＦをタイミングジェネレータ１２０に対して発行する。このとき、また、調停回路１２４は、リフレッシュタイマ１２２に対してリセット信号ＲＳＴを発行し、リフレッシュタイマ１２２のカウント値（計測時間）を初期値にリセットする（ステップＳＰ３）。なお、この場合、調停回路１２４は、リフレッシュタイマ１２２からリフレッシュ要求ＲＦＱが与えられると、リフレッシュタイマ１２２のカウント値（計測時間）を初期値にリセットするように構成されてもよい。
【０１７１】
タイミングジェネレータ１２０は、また、調停回路１２４からリフレッシュ指示ＲＥＦが与えられると、外部に対してビジー信号ＢＵＳＹを発行し、内部でリフレッシュ動作が実行されることを報知する。このビジー信号ＢＵＳＹは、図１に示すＤＭＡ回路４に対して発行され、次いで、ホストＣＰＵ２に対し、基本演算ブロック（並列演算処理装置）がリフレッシュのためにビジー状態であることを報知する。このビジー信号ＢＵＳＹは、図１に示す集中制御ユニット１５に発行され、集中制御ユニット１５が、外部のホストＣＰＵと主並列演算処理ユニットとの間のデータ転送を調整しても良い。
【０１７２】
リフレッシュ指示ＲＥＦの発行に応答して、タイミングジェネレータ１２０は、リフレッシュ切換信号ＲＦＳＷを生成する。この切換信号ＲＦＳＷに従って、セレクタ１１６は、リフレッシュポインタレジスタ１１４に格納されるリフレッシュアドレスポインタを選択して、リフレッシュアドレスを指定するワード線アドレスポインタＰｘを生成する。
【０１７３】
次いで、ワード線選択駆動回路６０が、タイミングジェネレータ１２０からのアレイ活性化信号ＲＡＣＴなどの行選択に関連する制御信号に従って、リフレッシュアドレスポインタＰｘに従ってリフレッシュ行を選択し、ビット線周辺回路３０Ｐに含まれるセンスアンプＳＡを活性化し、リフレッシュ対象のメモリセルのリフレッシュを実行する。このリフレッシュ動作時のワード線選択駆動回路６０およびビット線周辺回路３０Ｐの動作は、通常のデータアクセス時の動作と同じである。また、リフレッシュ動作時には、ＩＯ分離型双方向転送回路３４においては、リード／ライトＹゲートはすべて非導通状態に維持され、ビット線周辺回路３０Ｐと演算回路３２とは分離される（ステップＳＰ４）。
【０１７４】
タイミングジェネレータ１２０は、リフレッシュが完了したかを判定する（ステップＳＰ５）。このリフレッシュ完了の判定においては、各リフレッシュ要求ごとに、１つのワード線がＤＲＡＭセルアレイマット３０Ｓにおいて選択されてもよく、また、バースト的に、ＤＲＡＭセルアレイマット３０Ｓにおいて複数のワード線が順次選択されてメモリセルのリフレッシュが実行されてもよい。リフレッシュ態様に応じて、所定数のワード線がアレイ活性化信号ＲＡＣＴに従って選択されてリフレッシュ動作が実行されたかが判定される。アレイ活性化信号ＲＡＣＴは、１本のワード線の選択期間を規定する。
【０１７５】
リフレッシュが完了すると、リフレッシュ割込ルーチンが完了し、タイミングジェネレータ１２０が、レジスタ群２２のセレクタ１１６に対する切換制御信号ＲＦＳＷをＸポインタレジスタ５４を選択する状態に設定し、またリフレッシュポインタレジスタ１１４のリフレッシュポインタを更新する（ＳＰ６）。
【０１７６】
この後、再びリフレッシュにより中断された演算処理が存在する場合には、この中断された演算操作を再開して、再びステップＳＰ１に戻り、リフレッシュ要求の発行を待つ（ステップＳＰ７，ＳＰ８）。
【０１７７】
なお、上述の説明において、アレイ活性化信号ＲＡＣＴが、ワード線がＤＲＡＭセルアレイマット３０Ｓにおいて選択状態にある期間を規定する信号として説明している。しかしながら、このアレイ活性化信号ＲＡＣＴが、１つの演算サイクルを規定する信号として用いられ、１つの演算サイクルが完了したときに、リフレッシュを行なうように構成されてもよい。ここで、「１演算サイクル」は、１つのデータについて、演算回路３２において１つの演算操作が実行されるサイクルを示し、たとえばデータＤＡおよびＤＢの加算のときには、データＤＡおよびＤＢの演算エレメントへのロード、演算器での演算、および演算結果のストアを含む操作がすべて実行されるサイクルを示す。
【０１７８】
ＤＲＡＭセルアレイ３０においてメモリセルが選択されていない状態のときに、リフレッシュを実行する。したがって、データ選択転送回路１０６を介した演算回路３２とメモリ入出力回路６４との間でのデータ転送と並行して、ＤＲＡＭセルアレイ３０に対するリフレッシュを実行することができる（ＩＯ分離型双方向転送回路３４は、リフレッシュ時には、ビット線周辺回路３０Ｐと演算回路３２とを分離している）。
【０１７９】
なお、調停回路１２４の構成としては、アレイ活性化信号ＲＡＣＴのアサート時、リフレッシュ要求ＲＦＱの伝達を禁止し、アレイ活性化信号ＲＡＣＴがネゲート状態のときに、リフレッシュ要求ＲＥＱを伝達してリフレッシュ指示ＲＥＦを生成する構成が利用されればよく、種々の構成を利用することができる。
【０１８０】
また、リフレッシュアドレスポインタ１１４は、ポインタが、リフレッシュ開始時ではなくリフレッシュ完了ごとに更新されるように構成されても良い。
【０１８１】
以上のように、演算データの格納のために、ＤＲＡＭセルアレイを利用していても、リフレッシュを並列演算処理装置（基本演算ブロック）内部で自動的に実行しており、外部の集中制御ユニットまたはホストコントローラは、メモリ制御が簡略化され、制御の負荷が軽減される。
【０１８２】
［変更例］
図２３は、この発明の実施の形態５の変更例の基本演算ブロックの構成を概略的に示す図である。図２３に示す並列演算処理装置の構成は、図２１に示す並列演算処理装置の構成と、以下の点で、その構成が異なる。すなわち、コントローラ２１において、命令デコーダ１３０に外部からリフレッシュ指示がコマンドＲＥＦＣとして与えられる。命令デコーダ１３０からのリフレッシュ命令ＲＥＦｉに従ってタイミングジェネレータ１３２が、リフレッシュ動作の実行を制御する。タイミングジェネレータ１３２は、リフレッシュ命令ＲＥＦｉが与えられても、ワード線がＤＲＡＭセルアレイマット１３０Ｓにおいて選択状態の場合には（アレイ活性化信号ＲＡＣＴが活性状態の時には）、その選択状態のワード線が非選択状態になるるまでリフレッシュ実行を待ち合わせる。
【０１８３】
この図２３に示す並列演算処理装置の他の構成は、図２１に示す並列演算処理装置の構成と同じであり、対応する部分には同一参照番号を付しその詳細説明は省略する。
【０１８４】
図２３に示す並列演算処理装置の構成の場合、リフレッシュ指示コマンドＲＥＦＣが発行される場合、リフレッシュの調停は、外部のホストＣＰＵまたは制御ＣＰＵにより実行され、基本演算ブロック（並列演算処理装置）では、リフレッシュ間隔をモニタする必要がなく、制御の負荷が軽減される。ただし、外部のメモリコントローラ（ホストＣＰＵまたは集中制御ユニット）は、リフレッシュコマンドの発行と演算命令実行コマンドの発行との間の調停を行うまたは演算サイクル単位での調停を実行する（１演算命令が１クロックサイクルで完了する場合）。
【０１８５】
図２４は、図２３に示す並列演算処理装置のコントローラ２１のリフレッシュ動作制御を示すフロー図である。以下、図２３に示す並列演算処理装置のリフレッシュ動作を、図２４に示すフロー図を参照して説明する。
【０１８６】
外部のホストＣＰＵまたは制御用ＣＰＵ（図１参照）である外部コントローラは、リフレッシュタイマ（図示せず）からタイムアップ指示が発行されたかをモニタする（ステップＳＰ１１）。リフレッシュタイマからのタイムアップが検出されると、次いで、外部コントローラは、発行する実行命令があるかの判定を行なう（ステップＳＰ１２）。発行する実行命令が存在する場合には、その実行命令の発行を待合せる。並列演算処理装置内においては、演算サイクルはクロック信号により規定されている。実施の形態２または３などのように、Ｎビットデータが演算器において処理される場合には、演算命令は、１または２クロックサイクルで完了する。このとき、１演算サイクルに渡ってワード線は選択状態に維持されている。従って、外部のコントローラは、単に、リフレッシュタイマからのタイムアップ指示に従って、クロック信号に同期してリフレッシュコマンドを発行して、並列演算処理装置内部においてアレイ活性化信号の非活性化時にリフレッシュを実行することにより、演算操作とリフレッシュとの競合は回避することができる。
【０１８７】
また、発行する実行命令が存在しない場合には、並列演算処理装置が待機状態にあるか、または先に発行された演算命令を実行中である。従って、発行命令の有無とタイムアップ信号とに従ってリフレッシュコマンドの発行を調整しても、並列演算処理装置内におけるリフレッシュ動作については、何ら問題は生じない。
【０１８８】
また、命令実行中であるかの判定を以下のように行うように構成されても良い。外部コントローラが発行した命令の完了に要するクロックサイクル数を、予め図示しないレジスタに格納し、その命令発行からリフレッシュタイマのタイムアップまでのクロックサイクルの差を見ることにより行う。
【０１８９】
発行実行命令が存在しない場合には、外部コントローラは、リフレッシュコマンドＲＥＦＣを発行する（ステップＳＰ１３）。このリフレッシュコマンドＲＥＦＣは、位置例として、外部コントローラがホストＣＰＵの場合には、ＤＭＡＣ回路を介して、入出力インターフェイスを介することなく、基本演算ブロック（並列演算処理装置）のコントローラ（２１）へ与えられる。また、ホストＣＰＵが、直接コマンドを入出力インターフェース回路を介して転送しても良い。このリフレッシュコマンドは、例えばブロードキャストモードで複数の基本演算ブロックに対して共通に与えられる。
【０１９０】
基本演算ブロック（並列演算処理装置）内のコントローラ２１においては、命令デコーダ１３０が、リフレッシュコマンドＲＥＦＣをデコードしてリフレッシュ指示ＲＥＦｉを生成してタイミングジェネレータ１３２へ与える。タイミングジェネレータ１３２においては、その内部に設けられたＤＲＡＭ制御部が、ワード線が非選択状態のときに、リフレッシュアドレスポインタ１１４のポインタをセレクタ１１６により選択させる。次いで、アレイ活性化信号ＲＡＣＴをアサートし、各種制御信号ＢＬＥＱおよびＳＡＥを発行する。これにより、ワード線選択駆動回路６０においてリフレッシュアドレスポインタレジスタ１１４のポインタが指定するワード線が選択されて、メモリセルのリフレッシュが実行される。タイミングジェネレータ１３２に含まれる双方向転送制御部、演算制御部およびデータ入出力制御部は、このリフレッシュ動作には関与しない（ステップＳＰ１４）。
【０１９１】
次いで、タイミングジェネレータ１３２は、リフレッシュが完了すると（ステップＳＰ１５）、セレクタ１１６に、Ｘポインタレジスタ５４のワード線アドレスポインタを選択させる。このとき、リフレッシュポインタレジスタ１１４のポインタが更新されても良い。このリフレッシュ動作シーケンスは、先の図２１および２２を参照して示したリフレッシュ動作と同様である。
【０１９２】
次いで、タイミングジェネレータ１３２は、基本演算処理装置内において中断された操作があるかの判定を行なう（ステップＳＰ１７）。この中断操作は、発行された命令において、演算サイクルが完了していても、全データについての演算処理が完了していない状態の操作、演算器における演算処理時にＤＲＡＭセルアレイマット３０Ｓにおいてワード線が非選択状態とされる場合、演算器の演算結果がまだ演算エレメント内に保持され、ＤＲＡＭセルアレイマットにストアされていない状態等を示す。これは、例えば、コントローラ内の演算制御部のステータスレジスタをモニタすることにより判定される。
【０１９３】
並列演算処理装置内において中断された操作が存在する場合には、その中断操作を再開し、必要な処理を実行する（ステップＳＰ１８）。このステップＳＰ１４−ＳＰ１８のリフレッシュ制御が、基本演算ブロック（並列演算処理装置）内のコントローラ２１の制御により外部からのリフレッシュコマンドＲＥＦＣに従って実行される。
【０１９４】
次いで、外部のコントローラ（ホストＣＰＵまたは制御ＣＰＵ）は、リフレッシュコマンドの発行後、リフレッシュに要するクロックサイクル期間経過後、次の命令が存在する場合、次の命令を発行する（ステップＳＰ１９）。以降、ステップＳＰ１１からの操作が、再び、開始される。
【０１９５】
したがって、外部コントローラ（ホストＣＰＵまたは制御用ＣＰＵ）において、リフレッシュの命令発行の調停を行なうことにより、基本演算ブロック（並列演算処理装置）内のコントローラ２１は、リフレッシュ期間のモニタなどの制御を行なう必要がなく、制御の負荷が低減される。
【０１９６】
なお、並列演算回路に対するデータの入出力は演算エレメントのレジスタおよびメモリ入出力回路を介して実行される。従って、データ転送命令の発行時には、リフレッシュコマンドがこのデータ転送命令と並行して発行されてもよい。並列演算処理装置内においては、ＤＲＡＭセルアレイから演算回路へのデータ転送後にリフレッシュが実行される方またはメモリ入出力回路から演算回路へのデータのロードと並行してリフレッシュが実行される。
【０１９７】
以上のように、この発明の実施の形態５に従えば、並列演算処理装置内において、リフレッシュを実行するように構成している。したがってメモリセルとして、ＤＲＡＭセルを用いても、安定にデータを保持して、正確な演算処理を実行することができる。また、リフレッシュと通常動作との調停を行なっており、演算操作に悪影響を及ぼすことなく、リフレッシュを実行することができる。
【０１９８】
なお、リフレッシュの調停については、ソフトウェアを用いて実行されてもよく、またハードウェアを用いて実現されてもよい。
【産業上の利用可能性】
【０１９９】
この発明はＳＩＭＤ型演算処理装置に適用することにより、小占有面積で大量のデータを高速で処理することのできる演算処理装置を実現することができる。特に、この並列演算処理装置を、システム・オン・チップとして実現することにより、小占有面積のシステムＬＳＩを実現することができる。
【０２００】
なお、先の実施の形態１において主演算処理装置においては、複数の基本演算ブロックが並列に設けられている。しかしながら、この基本演算ブロックは１つだけ設けられていてもよい。
【図面の簡単な説明】
【０２０１】
【図１】この発明の実施の形態１に従う並列演算処理装置を含む半導体集積回路装置の全体の構成を概略的に示す図である。
【図２】図１に示す主演算回路の構成を概略的に示す図である。
【図３】図２に示す主演算回路の具体的構成を示す図である。
【図４】図３に示す主演算回路の１つのビット線対に関連する部分の構成を具体的に示す図である。
【図５】図３に示す主演算回路の演算操作を概略的に示す図である。
【図６】図５に示す演算操作時の動作を示すタイミング図である。
【図７】この発明の実施の形態１に従う基本演算ブロックの構成をより具体的に示す図である。
【図８】図７に示すシフトレジスタ回路の構成の一例を示す図である。
【図９】この発明の実施の形態１の変更例に従う演算操作を示す図である。
【図１０】図９に示す演算操作の動作を示すタイミング図である。
【図１１】この発明の実施の形態２に従う主演算回路の演算操作を示す図である。
【図１２】図１１に示す演算操作の動作を示すタイミング図である。
【図１３】この発明の実施の形態２に従う基本演算ブロック（並列演算処理装置）の構成を概略的に示す図である。
【図１４】図１３に示す演算エントリ選択回路の構成の一例を示す図である。
【図１５】この発明の実施の形態３に従う主演算回路の構成を概略的に示す図である。
【図１６】図１５に示す演算エレメントの構成の一例を示す図である。
【図１７】図１５に示す演算エレメントに対する内部データ転送部の構成を概略的に示す図である。
【図１８】図１７に示す選択制御信号を発生する部分の構成の一例を示す図である。
【図１９】この発明の実施の形態４に従う主演算回路の構成を概略的に示す図である。
【図２０】この発明の実施の形態４に従う並列演算処理装置の全体の構成を概略的に示す図である。
【図２１】この発明の実施の形態５に従う並列演算処理装置の全体の構成を概略的に示す図である。
【図２２】図２１に示す並列演算処理装置のリフレッシュ時の動作を示すフロー図である。
【図２３】この発明の実施の形態５の変更例の並列演算処理装置の構成を概略的に示す図である。
【図２４】図２３に示す並列演算処理装置のリフレッシュ時の動作を示すフロー図である。
【符号の説明】
【０２０２】
１  半導体集積回路装置、ＦＢ１−ＦＢｎ  基本演算ブロック（並列演算処理装置）、２０  主演算回路、２１  コントローラ、２２  レジスタ群、２３  マイクロプログラム格納メモリ、２  ホストＣＰＵ、１５  集中制御ユニット、２５  制御用ＣＰＵ、３０  ＤＲＡＭセルアレイ、３０Ｓ  ＤＲＡＭセルアレイマット、３０Ｐ  ビット線周辺回路、３２  演算回路、３４  ＩＯ分離型双方向転送回路、ＰＥ１−ＰＥｍ  演算エレメント、ＲＷＹＧ１１−ＲＷＹＧｍｋ  リード／ライトＹゲート、ＲＡＰＬ１−ＲＡＰＬｍ  リードアンプラッチ、ＷＤＲ１−ＷＤＲｍ  ライトドライバ、ＳＡ１１−ＳＡ１ｋ，ＳＡｍ１−ＳＡｍｋ  センスアンプ（ＳＡ）、４０，４０Ａ，４０Ｂ，４０Ｋ，４０Ｎ  レジスタ、４２Ｎ  演算器（ＡＬＵ）、４４，４４Ｎ，４４Ｋ  レジスタ、５０  命令デコーダ、５２  タイミングジェネレータ、５４  Ｘポインタレジスタ、５６  Ｙポインタレジスタ、６６  シフトレジスタ回路、９２  Ｃレジスタ、９４  切換回路、９０  ｋビット加算回路、ＵＢＳ１−ＵＢＳｊ  単位データ転送バス、９５  データ転送バス、３２Ｌ，３２Ｒ  演算回路、３４Ｌ，３４Ｒ  ＩＯ分離型双方向転送回路、ＰＥＬｉ，ＰＥＲｉ  演算エレメント、１２０  タイミングジェネレータ、１２２  リフレッシュタイマ、１２４  調停回路、１１４  アドレスポインタレジスタ、１１６  セレクタ、１３０  命令デコーダ、１３２  タイミングジェネレータ。
【図１】
2009098861.tif 000003
【図２】
2009098861.tif 000004
【図３】
2009098861.tif 000005
【図４】
2009098861.tif 000006
【図５】
2009098861.tif 000007
【図６】
2009098861.tif 000008
【図７】
2009098861.tif 000009
【図８】
2009098861.tif 000010
【図９】
2009098861.tif 000011
【図１０】
2009098861.tif 000012
【図１１】
2009098861.tif 000013
【図１２】
2009098861.tif 000014
【図１３】
2009098861.tif 000015
【図１４】
2009098861.tif 000016
【図１５】
2009098861.tif 000017
【図１６】
2009098861.tif 000018
【図１７】
2009098861.tif 000019
【図１８】
2009098861.tif 000020
【図１９】
2009098861.tif 000021
【図２０】
2009098861.tif 000022
【図２１】
2009098861.tif 000023
【図２２】
2009098861.tif 000024
【図２３】
2009098861.tif 000025
【図２４】
2009098861.tif 000026