(57)【要約】【課題】  並列演算処理を行う信号処理装置において、演算の並列性を損なうことなく、データ転送効率を高くする。【解決手段】  システムバスインターフェイスと演算用データを格納するメモリセルマットの間に、システムバスデータ（ＤＴＶ）と演算用データ（ＤＴＨ）の配列を変換する直交メモリ（８０）を設ける。この直交メモリは、２ポートメモリセル（ＭＣＳ）を含で構成され、ビットパラレルかつワードシリアルに転送されたデータ（ＤＴＶ）をワードパラレルかつビットシリアなデータ（ＤＴＨ）に変化する。【選択図】        図１２
2006164183.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のメモリセルを有する複数のエントリに分割されるメモリセルマットと、前記メモリアレイのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行なって該演算結果を対応のエントリに格納することのできる複数の演算器とを含む少なくとも１個の基本演算ブロックを備え、１つのエントリには同一データの各ビットが格納され、
前記基本演算ブロックのメモリセルマットとの間で、装置外部の転送データよりもビット幅の広いデータを転送する内部データ転送バス、
装置外部との間でインターフェイスをとるインターフェイス部、および
前記インターフェイス部と前記内部データ転送バスとの間に配置され、前記インターフェイス部と前記グローバルデータバスとの間でデータの並び替えを行なうデータ配列変換回路を備え、
前記データ配列変換回路は、
各前記エントリが延在する第１の方向に延在して配置される複数の第１のワード線と、
前記第１の方向と交差する第２の方向に延在して配置される複数の第２のワード線と、
前記第２の方向に延在して配置される複数の第１のビット線対と、
前記第１の方向に延在して配置される複数の第２のビット線対と、
前記第１および第２の方向に整列してアレイ状に配列され、それぞれ第１のワード線と第１のビット線対の交差部および第２のワード線と第２のビット線対の交差部に対応して配置される複数のＳＲＡＭセルを有するメモリアレイを備え、前記第１のワード線は前記第２のビット線対に対応して配置され、かつ前記第２のワード線は前記第１のビット線対に対応して配置され、さらに
前記インターフェイス部との間のデータ転送時、前記第１のワード線および前記第１のビット線対を選択する第１のセル選択手段と、
前記グローバルデータバスとの間でデータ転送時、前記第２のワード線および前記第２のビット線対を選択する第２のセル選択手段を備える、半導体信号処理装置。
【請求項２】
前記少なくとも１個の基本演算ブロックは、前記内部データ転送バスに並列に結合される複数の基本演算ブロックで構成される、請求項１記載の半導体信号処理装置。
【請求項３】
前記データ配列変換回路と前記内部データ転送バスとの間に配置され、データバス幅を変更するバス幅変換回路をさらに備える、請求項１または２に記載の半導体信号処理装置。
【請求項４】
前記第１のセル選択手段は、第１のデータビット幅のデータを選択し、
前記第２のセル選択手段は、前記第１のデータビット幅よりも大きな第２のビット幅のデータを選択する、請求項１から３のいずれかに記載の半導体信号処理装置。
【請求項５】
前記少なくとも１個の基本演算ブロックは複数の基本演算ブロックを備え、
前記データ配列変換回路は、各前記基本演算ブロックに対応して配置される、請求項１記載の半導体信号処理装置。
【請求項６】
前記少なくとも１個の基本演算ブロックは複数個の基本演算ブロックを備え、
前記内部データ転送線は、前記複数の基本演算ブロックのメモリセルマット上に延在して前記複数の基本演算ブロックに共通に配置される、請求項１記載の半導体信号処理装置。
【請求項７】
前記データ配列変換回路は、さらに、装置外部のデータのアドレスを変換して格納する手段を備える、請求項１記載の半導体信号処理装置。
【請求項８】
各々が第１の方向に整列して配置される複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、前記メモリアレイのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行なって該演算結果を対応のエントリに格納することのできる複数の演算器とを含む基本演算ブロックを備え、１つのエントリには、同一データの各ビットが格納され、
前記メモリアレイに対応して隣接して配置され、内部データバスと前記アレイとの間でデータの並べ替えを行なうデータ配列変換回路を備え、
前記データ配列変換回路は、
前記エントリに対応して配置される複数の第１のワード線と、
前記第１の方向と直交する第２の方向に延在して配置される複数の第２のワード線と、
前記第２の方向に延在して配置される複数の第１のビット線対と、
前記第１の方向に延在して前記エントリに対応して配置される複数の第２のビット線対と、
前記第１および第２の方向に整列してアレイ状に配列され、それぞれ第１のワード線と第１のビット線対の交差部および第２のワード線と第２のビット線対の交差部に対応して配置される複数のＳＲＡＭセルを有するメモリアレイを備え、前記第１のワード線は前記第２のビット線対に対応して配置され、かつ前記第２のワード線は前記第１のビット線対に対応して配置され、
前記内部データバスとの間のデータ転送時、前記第１のワード線および第１のビット線対を選択する第１のセル選択手段と、
前記グローバルデータバスとの間でのデータ転送時、前記第２のワード線および第２のビット線対を選択する第２のセル選択手段と、
各前記エントリと対応の第２のビット線との間でデータを転送するデータ転送手段を備える、半導体信号処理装置。
【請求項９】
前記エントリには対応の第２のビット線対が延在して配置される、請求項８記載の半導体信号処理装置。
【請求項１０】
前記複数のＳＲＡＭセルのアレイは、第１および第２のサブメモリマットに分割され、
前記第１および第２のセル選択手段は、各々、前記第１および第２のサブメモリマットをインタリーブ態様でアクセスし、かつ前記第１および第２のセル選択手段の一方が第１のサブメモリマットを選択するときには、他方のセル選択手段は、第２のサブメモリマットを選択する、請求項１または８記載の半導体信号処理装置。
【請求項１１】
前記ＳＲＡＭセルアレイは、さらに、
各ＳＲＡＭセルに対応して配置され、対応のＳＲＡＭセルの格納データと検索データとの一致／不一致を判別する複数の検出素子と、
前記第１の方向に沿って整列する検出素子に対応して配置され、各々が対応の検出素子の検出結果に従って駆動される複数の一致線とを備える、請求項１または８記載の半導体信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体信号処理装置に関し、特に、半導体メモリを用いて大量のデータの演算処理を高速で行なうことのできる信号処理用集積回路装置の構成に関する。より特定的には、この発明は、演算データ格納用の半導体メモリとの間で効率的に転送を行なうための構成に関する。
【背景技術】
【０００２】
近年、携帯端末機器の普及に伴い、音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このようなデジタル信号処理には、一般に、専用の半導体装置としてＤＳＰ（デジタル・シグナル・プロセッサ）が用いられる。音声および画像データに対するデジタル信号処理においては、フィルタ処理などのデータ処理が行なわれ、このような処理においては、積和演算を繰返す演算処理が多い。したがって、一般に、ＤＳＰの構成においては、乗算回路、加算回路および演算前後のデータの格納用のレジスタが設けられる。このような専用のＤＳＰを用いると、積和演算を１マシンサイクルで実行することが可能となり、高速演算処理が可能となる。
【０００３】
このような積和演算を行なう際に、レジスタファイルを利用する構成が、特許文献１（特開平６−３２４８６２号公報）に示されている。この特許文献１に示される構成においては、レジスタファイルに格納された２項のオペランドデータを読出して演算器で加算し、加算結果データを書込データレジスタを介してレジスタファイルに書込む。レジスタファイルに対して書込アドレスおよび読出アドレスを同時に与えてデータの書込およびデータの読出を並行して行なうことにより、データの書込サイクルおよびデータの読出サイクルを別々に設けて演算処理する構成に比べて処理時間を短縮することを図る。
【０００４】
また、大量のデータを高速で処理することを意図する構成が、特許文献２（特開平５−１９７５５０号公報）に示されている。この特許文献２に示される構成においては、複数の演算装置を並列に配置し、それぞれの演算装置にメモリを内蔵する。各演算装置において個々にメモリアドレスを生成することにより並列演算を高速で行なうことを図る。
【０００５】
また、画像データのＤＣＴ変換（離散コサイン変換）などの処理を高速に行なうことを目的とする信号処理装置が、特許文献３（特開平１０−７４１４１号公報）に示されている。この特許文献３に示される構成においては、画像データがビットパラレルかつワードシリアルなシーケンスで、すなわちワード（画素データ）単位で入力されるため、直列／並列変換回路を用いてワードパラレルかつビットシリアルなデータ列に変換してメモリアレイに書込む。メモリアレイに対応して配置される演算器（ＡＬＵ）へデータを転送して並列処理を実行する。メモリアレイは、画像データブロックに応じてブロックに分割されており、各ブロックにおいて対応の画像ブロックを構成する画像データがメモリアレイの行ごとにワード単位で格納される。
【０００６】
この特許文献３に示される構成においては、メモリアレイと対応の演算器との間でワード（１つの画素に対応するデータ）単位でデータを転送する。各ブロック個々に対応の演算器において転送されたワードに対して同一処理を実行することにより、ＤＣＴ変換などのフィルタ処理を高速で実行することを図る。演算処理結果は、再びメモリアレイに書込み、再度並列／直列変換を行なってビットシリアルかつワードパラレルデータをビットパラレルかつワードシリアルなデータに変換して１ラインごとのデータを順次出力する。通常の処理においては、データのビット位置の変換は行なわれず、演算器において通常の演算処理を複数のデータに対して並列に実行する。
【０００７】
また、複数の異なる演算処理を並行して実行することを目的とするデータ処理装置が、特許文献４（特開２００３−１１４７９７号公報）に示されている。この特許文献４に示される構成においては、各々その機能が限定された複数の論理モジュールをマルチポート構成のデータメモリに接続する。これらの論理モジュールとマルチポートデータメモリとの接続においては、論理モジュールが接続されるマルチポートデータメモリのポートおよびメモリが制限されており、各論理モジュールがマルチポートデータメモリへアクセスしてデータの読出および書込を行なうことのできるアドレス領域が制限される。各論理モジュールで演算を行なった結果は、アクセスが許可されたメモリに書込み、これらのマルチポートメモリを介して順次データを論理モジュールを介して転送することにより、パイプライン的にデータ処理を行なうことを図る。
【特許文献１】特開平６−３２４８６２号公報
【特許文献２】特開平５−１９７５５０号公報
【特許文献３】特開平１０−７４１４１号公報
【特許文献４】特開２００３−１１４７９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
処理対象のデータ量が非常に多い場合には、専用のＤＳＰを用いても性能を飛躍的に向上させることは困難である。たとえば、演算対象のデータが１万組ある場合、１つ１つのデータに対する演算を１マシンサイクルで実行することができたとしても、最低でも１万サイクルが演算に必要となる。したがって、特許文献１に示されるようなレジスタファイルを用いて積和演算を行なうような構成の場合、１つ１つの処理は高速であるものの、データ処理が直列に行なわれるため、データ量が多くなるとそれに比例して処理時間が長くなり、高速処理を実現することができない。また、このような専用のＤＳＰを利用する場合、処理性能は動作周波数に大きく依存することになるため、高速処理を優先した場合、消費電力が増大することになる。
【０００９】
また、この特許文献１に示されるようなレジスタファイルおよび演算器を利用する構成の場合、ある用途に特化して設計されることが多く、演算ビット幅および演算回路の構成等が固定される。したがって、他の用途に転用する場合には、そのビット幅および演算回路の構成を再設計する必要があり、複数の演算処理用途に柔軟に対応することができなくなるという問題が生じる。
【００１０】
また、特許文献２に示される構成においては、演算装置個々にメモリが内蔵されており、各演算装置において異なるメモリアドレス領域をアクセスして処理を行なう。しかしながら、データメモリと演算装置とは別々の領域に配置されており、論理モジュール内において演算装置とメモリとの間でアドレスを転送してデータアクセスを行なう必要があり、データ転送に時間を要し、このため、マシンサイクルを短縮することができなくなり、高速処理を行なうことができなくなるという問題が生じる。
【００１１】
特許文献３に示される構成において、画像データのＤＣＴ変換などの処理を高速化することを図っており、画面１ラインの画素データを１行のメモリセルに格納して行方向に整列する画像ブロックに対して並列に処理を実行する。したがって、画像の高精細化のために１ラインの画素数が増大した場合、メモリアレイが膨大なものとなる。たとえば、１画素のデータが８ビットで１ラインの画素数が５１２個の場合でも、メモリアレイの１行においては、メモリセルの数が８・５１２＝４Ｋビットとなり、１行のメモリセルが接続される行選択線（ワード線）の負荷が大きくなり、高速でメモリセルを選択してデータを演算部とメモリセルとの間で転送することができなくなり、応じて高速処理を実現することができなくなるという問題が生じる。
【００１２】
また、この特許文献３においては、メモリセルアレイを演算回路群両側に配置する構成が示されているものの、具体的なメモリセルアレイの構造は示されておらず、また演算回路において演算器をアレイ状に配置することは示されているものの、どのように演算器群を配置するのかの詳細については何ら示されていない。
【００１３】
また、特許文献４に示される構成においては、複数のマルチポートデータメモリと、これらのマルチポートデータメモリに対してアクセス領域が占有される複数の低機能の演算器（ＡＬＵ）とが設けられる。しかしながら、この演算器（ＡＬＵ）とメモリとは別の領域に配置されており、配線容量およびインターフェイスでのゲート遅延などにより、高速でデータを転送することができず、パイプライン処理を実行しても、このパイプラインのマシンサイクルを短縮することができなくなるという問題が生じる。
【００１４】
また、これらの特許文献１から４においては、演算処理対象のデータの語構成が異なる場合、どのように対応するかについては何ら検討していない。
【００１５】
本願発明者らは、この演算処理対象のデータの語構成が異なる場合においても、高速に演算処理を行なう構成を既に考案している（特願２００４−１７１６５８号、特願２００４−２８２０１４号）。この信号処理装置においては、メモリアレイの各列（ビット線延在方向；エントリ）に対応して演算器を配置し、各エントリに処理対象のデータを格納し、演算器それぞれにおいてビットシリアル態様で演算処理を行なう。
【００１６】
この構成の場合、各列に対応するエントリにおいては、処理対象データが格納されビットシリアル態様で演算処理が実行されるため、データのビット幅が異なる場合においても、演算処理時間が長くなるだけであり、容易に語構成の異なるデータの処理を行なうことができる。
【００１７】
また、並列に各演算器において処理を実行する構成とされており、エントリ（列）の数の演算器が同時に並列処理を実行するため、各データをシーケンシャルに処理する場合に比べて処理時間を短縮することができる。例えば、エントリ数が１０２４であり、８ビットデータの２項演算処理を行う場合、２項データの転送、演算および演算結果の格納にそれぞれ１マシンサイクルが必要とすると、ぞれぞれ、８ｘ２、８、および８サイクルを要するため、３２サイクル（キャリの格納にさらに１サイクルが必要となる）の演算サイクルが必要となる。しかしながら、１０２４エントリにおいて並列演算処理を実行するため、１０２４個のデータを逐次演算処理する構成に比べて大幅に演算に要する時間を短縮することができる。
【００１８】
しかしながら、このような処理の並列性という特徴を効果的に利用して高速処理を実現するためには、演算前後のデータを格納するメモリ領域に対して効率的にデータ転送を行なうことが要求される。また、このようなデータ転送を行なう回路には、小占有面積かつ低消費電力の条件が要求される。これらの観点から、この本願発明者らのグループの並列演算信号処理装置は、まだ、改善の余地があると言える。
【００１９】
それゆえ、この発明の目的は、効率的に演算処理を行なうことのできる半導体信号処理装置を提供することである。
【００２０】
この発明の他の目的は、メモリアレイと演算器群とが集積化された半導体信号処理装置において、演算データの転送をそのメモリ領域に対して効率的に行なうことのできる半導体信号処理装置を提供することである。
【課題を解決するための手段】
【００２１】
この発明の第１の観点に係る半導体信号処理装置は、各々が第１の方向に整列して配置される複数のメモリセルを有する複数のエントリに分割されるメモリセルマットと、このメモリセルマットのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行なってその演算結果を対応のエントリに格納することのできる複数の演算器とを含む基本ブロックを備える。１つのエントリには同一データの各ビットが格納される。
【００２２】
この発明の第１の観点に係る半導体信号処理装置は、さらに、この基本演算ブロックののメモリアレイとの間でデータを転送する内部データ転送バスと、装置外部に対するインターフェイスを与えるインターフェイス部と、このインターフェイス部と内部データバスとの間に配置され、インターフェイス部と内部データバスとの間でデータの並び替えを行なうデータ配列変換回路を備える。内部データ転送バスは、装置外部の転送データのビット幅よりも広いビット幅を有する。
【００２３】
データ配列変換回路は、各エントリが延在する第１の方向に延在して配置される複数の第１のワード線と、第１の方向と交差する第２の方向に延在して配置される複数の第２のワード線と、第２の方向に延在して配置される複数の第１のビット線対と、第１の方向に延在して配置される複数の第２のビット線対と、第１および第２の方向に整列してアレイ状に配列され、それぞれ第１のワード線と第１のビット線対の交差部および第２のワード線と第２のビット線対の交差部に対応して配置される複数のＳＲＡＭセルを備える。第１のワード線は第２のビット線対に対応して配置され、かつ第２のワード線は前記第１のビット線対に対応して配置される。
【００２４】
データ配列変換回路は、さらに、インターフェイス部との間のデータ転送時、第１のワード線および前記第１のビット線対を選択する第１のセル選択手段と、グローバルデータバスとの間でデータ転送時、第２のワード線および前記第２のビット線対を選択する第２のセル選択手段を備える。
【００２５】
この発明の第２の観点に係る半導体信号処理装置は、各々が第１の方向に整列して配置される複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、このメモリアレイのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行ないかつ該演算結果を対応のエントリに格納することのできる複数の演算器とを含む基本演算ブロックを備える。１つのエントリには同一データの各ビットが格納される。
【００２６】
この発明の第２の観点に係る半導体信号処理装置は、さらに、メモリセルマットに対応して配置され、内部データ転送バスとメモリセルマットとの間でデータの並べ替えを行なうデータ配列変換回路を備える。
【００２７】
このデータ配列変換回路は、各エントリに対応して配置される複数の第１のワード線と、この第１の方向と直交する第２の方向に延在して配置される複数の第２のワード線と、第２の方向に延在して配置される複数の第１のビット線対と、第１の方向に延在して各エントリに対応して配置される複数の第２のビット線対と、第１および第２の方向に整列してアレイ状に配列され、それぞれ第１のワード線と第１のビット線対の交差部および第２のワード線と第２のビット線対の交差部に対応して配置される複数のＳＲＡＭセルを備える。第１のワード線は第２のビット線対に対応して配置され、かつ第２のワード線は第１のビット線対に対応して配置される。第２のビット線は、メモリセルマットのビット線と交通に配置される。
【００２８】
このデータ配列変換回路は、さらに、内部データバスとの間でのデータ転送時、第１のワード線および第１のビット線対を選択する第１のセル選択手段と、エントリとの間でのデータ転送時、第２のワード線および第２のビット線対を選択する第２のセル選択手段と、このエントリと対応の第２のビット線対との間でデータを転送するデータ転送手段とを備える。
【発明の効果】
【００２９】
第１および第２のワード線は互いに直交しており、従って、第１のワード線選択時のデータ配列と第２のワード線選択時のデータ配列を直交的に変換することができ、メモリセルマットとの間でのデータ転送時、データワードを、ビットシリアルでデータワードパラレルの態様でデータを転送することができ、また装置外部または内部データバスとの間でのデータ転送時、ビットパラレルかつデータワードシリアルの態様でデータを転送することができる。これにより、データ転送を外部と内部で整合を取って行うことができ、高速データ転送を実現することができ、メモリセルマットとの間でのデータ転送に要する時間を短縮することができる。
【００３０】
また、データ配列変換に、ＳＲＡＭセルを利用することにより、小占有面積で高速アクセスすることのできるデータ配列変換回路を実現することができる。
【発明を実施するための最良の形態】
【００３１】
［発明が適用される演算モジュールの全体構成］
図１は、この発明が適用される演算機能モジュールの構成を概略的に示す図である。この演算機能モジュール１の詳細構成については、先に、本願発明者のグループにより既に出願しており、当該先願明細書中において詳細に記載されているものの、以下では、本発明のデータ転送部の構成および機能の理解を容易とするために、簡単に、本発明が適用される演算機能モジュール（演算装置）の構成および動作について説明する。
【００３２】
図１において、演算機能モジュール１は、システムバス５を介してホストＣＰＵ（中央演算処理装置）２、ＤＭＡ回路（ダイレクト・メモリ・アクセス・コントロール回路）４およびメモリ３に結合されて信号処理システムを構成する。ホストＣＰＵ２は、この演算機能モジュール１における処理の制御、システム全体の制御およびデータ処理を行なう。メモリ３は、このシステムの主記憶として利用されて、必要な種々のデータを格納する。後に詳細に説明するように、このメモリ３は、大記憶容量のメモリ、高速のメモリおよび副はつ性のメモリを含む。
【００３３】
ＤＭＡ回路４は、ホストＣＰＵ２を介することなく直接メモリ３へアクセスするために用いられ、このＤＭＡ回路４の制御により、メモリ３と演算機能モジュール１との間でデータ転送を行なうことができ、また、演算機能モジュール１へ直接アクセスすることができる。
【００３４】
演算機能モジュール１は、複数の並列に設けられる基本演算ブロックＦＢ１−ＦＢｎと、システムバス５との間でデータ／命令を転送する入出力回路１０と、この演算機能モジュール１内部での動作処理を制御する集中制御ユニット１５を含む。
【００３５】
基本演算ブロックＦＢ１−ＦＢｎおよび入出力回路１０は、グローバルデータバス１０に結合され、集中制御ユニット１５、入出力回路１０および基本演算ブロックＦＢ１−ＦＢｎは、また、制御バス１４に結合される。基本演算ブロックＦＢ（ＦＢ１−ＦＢｎを総称的に示す）の間には、隣接ブロック間データバス１６が設けられる（図１においては、基本演算ブロックＦＢ１およびＦＢ２の間に配置される隣接ブロック間データバス１６を代表的に示す）。
【００３６】
基本演算ブロックＦＢ１−ＦＢｎが並列に配置され、この演算機能モジュール内部で、並列に同一または異なる演算処理を実行する。基本演算ブロックＦＢ１−ＦＢｎは同一構成を有するため、図１においては、基本演算ブロックＦＢ１の構成を代表的に示す。
【００３７】
基本演算ブロックＦＢ１は、メモリセルアレイおよび演算器を含む主演算回路２０と、マイクロコード化された実行プログラムを格納するマイクロプログラム格納メモリ２３と、基本演算ブロックＦＢ１の内部動作を制御するコントローラ２１と、アドレスポインタ等として用いられるレジスタ群２２と、主演算回路２０における不良の救済等を行なうためのヒューズプログラムを実行するためのヒューズ回路２４を含む。
【００３８】
コントローラ２１は、ホストＣＰＵ２からシステムバス５および入出力回路１０を介して与えられる制御命令により制御が手渡されて、基本演算ブロックＦＢ１−ＦＢｎの動作を制御する。これらの基本演算ブロックＦＢ１−ＦＢｎにマイクロプログラム格納メモリ２３を設け、コントローラ２１が、このマイクロプログラム格納メモリ２３内に実行プログラムを格納することにより、基本演算ブロックＦＢ１−ＦＢｎそれぞれにおいて実行する処理内容を変更することができる。
【００３９】
隣接ブロック間データバス１６を用いて基本演算ブロックＦＢ１−ＦＢｎの間のデータ転送を行なうことにより、グローバルデータバス１２を占有することなく基本演算ブロック間の高速データ転送が可能となり、またある基本演算ブロックにグローバルデータバス１２を介してデータ転送を行なっている間に、別の基本演算ブロック間でデータ転送を行なうことができる。
【００４０】
集中制御ユニット１５は、制御用ＣＰＵ２５と、この制御用ＣＰＵ２５が実行する命令を格納するメモリ命令２６と、制御用ＣＰＵ２５のワーキングレジスタまたはポインタ格納用のレジスタを含むレジスタ群２７と、マイクロプログラムのライブラリを格納するマイクロプログラムライブラリ格納メモリ２８を含む。この集中制御ユニット１５は、制御バス１４を介してホストＣＰＵ２から制御権を手渡され、この制御バス１４を介して基本演算ブロックＦＢ１−ＦＢｎの処理動作を制御する。
【００４１】
マイクロプログラムライブラリ格納メモリ２３に各種シーケンス処理がコード化されたマイクロプログラムをライブラリとして格納する。集中制御ユニット１５から必要なマイクロプログラムを選択して基本演算ブロックＦＢ１−ＦＢｎのマイクロプログラム格納メモリ２３に格納されるマイクロプログラムを変更することことにより、処理内容の変更に柔軟に対応することができる。
【００４２】
また、ヒューズ回路２４を利用することにより、基本演算ブロックＦＢ１−ＦＢｎのそれぞれにおいて不良発生時、冗長置換を用いて不良救済を行なうことにより歩留りを改善する。
【００４３】
図２は、図１に示す基本演算ブロックＦＢ１−ＦＢｎそれぞれに含まれる主演算回路２０の要部の構成を概略的に示す図である。図２において、主演算回路２０は、メモリセルＭＣが行列状に配列されるメモリセルマット３０と、このメモリセルマット３０の一方端に配列される演算処理ユニット（ＡＬＵ）群３２を含む。
【００４４】
メモリセルマット３０においては、行列状に配列されるメモリセルＭＣが、ｍ個のエントリＥＲＹに分割される。エントリＥＲＹは、ｎビットのビット幅を有する。１つのエントリＥＲＹは、ビット線延在方向の１列のメモリセルで構成される。
【００４５】
演算処理ユニット群３２は、エントリＥＲＹそれぞれに対して設けられる演算処理ユニット（ＡＬＵ）３４を含む。演算処理ユニット３４は、加算、論理積、一致検出（ＥＸＯＲ）、および反転（ＮＯＴ）などの演算を実行することができる。
【００４６】
エントリＥＲＹと対応の演算処理ユニット３４との間でデータのロードおよびストアを行なって演算処理を実行する。
【００４７】
エントリＥＲＹには、それぞれ、演算処理対象のデータが格納され、演算処理ユニット（ＡＬＵ）３４は、ビットシリアル態様（データワードをビット単位で順次処理する態様）で演算処理を実行する。したがって、演算処理ユニット群３２においては、ビットシリアルかつエントリパラレルな態様でデータの演算処理が実行される。ここで、エントリパラレルな態様は、複数のエントリが並行して処理される態様を示す。
【００４８】
演算処理ユニット３４においてビットシリアル態様で演算処理を実行することにより、演算対象のデータのビット幅が用途に応じて異なる場合においても、単に演算サイクル数がデータワードのビット幅に応じて変更されるだけであり、その処理内容は変更されず、語構成の異なるデータ処理に対しても容易に対応することができる。
【００４９】
また、複数のエントリＥＲＹのデータを、演算処理ユニット群３２において同時に処理することができ、エントリ数ｍを大きくすることにより、大量のデータを一括して演算処理することができる。一例として、エントリ数ｍは１０２４であり、１エントリＥＲＹのビット幅ｎは５１２ビットである。
【００５０】
図３は、図２に示すメモリセルＭＣの構成の一例を示す図である。図３において、メモリセルＭＣは、電源ノードとストレージノードＳＮ１の間に接続されかつそのゲートがストレージノードＳＮ２に接続されるＰチャネルＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ）ＰＱ１と、電源ノードとストレージノードＳＮ２の間に接続されかつそのゲートがストレージノードＳＮ１に接続されるＰチャネルＭＯＳトランジスタＰＱ２と、ストレージノードＳＮ１と接地ノードの間に接続されかつそのゲートがストレージノードＳＮ２に接続されるＮチャネルＭＯＳトランジスタＮＱ１と、ストレージノードＳＮ２と接地ノードの間に接続されかつそのゲートがストレージノードＳＮ１に接続されるＮチャネルＭＯＳトランジスタＮＱ２と、ワード線ＷＬ上の電位に応答してストレージノードＳＮ１およびＳＮ２を、それぞれ、ビット線ＢＬおよび／ＢＬに接続するＮチャネルＭＯＳトランジスタＮＱ３およびＮＱ４を含む。
【００５１】
図３に示すメモリセルＭＣは、ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）セルであり、高速アクセスを行ってデータの転送を行うことができる。また、データの定期的なリフレッシュは不要であり、データに対する演算処理の制御を簡略化することができる。
【００５２】
ビット線ＢＬおよび／ＢＬが図２に示すエントリＥＲＹの延在方向に沿って配置され、ワード線ＷＬが、エントリＥＲＹと直交する方向に配設される。
【００５３】
図２において、主演算回路２０において演算を行なう場合には、まずエントリＥＲＹそれぞれに、演算対象データが格納される。次いで、格納されたデータのある桁のビットを、すべてのエントリＥＲＹについて並列に読出して、対応の演算処理ユニット３４へ転送（ロード）する。すなわち、図３に示すワード線ＷＬを選択状態へ駆動することにより、選択ワード線に接続されるメモリセルＭＣのデータが対応のビット線ＢＬおよび／ＢＬ上に読出されて、この読出したデータが対応の演算処理ユニット３４へ転送される。
【００５４】
２項演算を行なう場合には、エントリＥＲＹそれぞれにおいて別のデータワードのビットに対して同様の転送動作を行なった後、演算処理ユニット３４各々が、２入力演算を行なう。この演算処理結果は、演算処理ユニット３４から対応のエントリＥＲＹ内の所定領域に再書込（ストア）される。
【００５５】
図４は、図２に示す主演算回路２０における演算操作を例示的に示す図である。図２において、２ビット幅のデータワードａおよびｂの加算を行なって、データワードｃを生成する。エントリＥＲＹには、演算対象の組をなすデータワードａおよびｂがともに格納される。
【００５６】
図４において、第１行目のエントリＥＲＹに対する演算処理ユニット３４においては、１０Ｂ＋０１Ｂの加算が行なわれ、２行目のエントリに対する演算処理ユニット３４においては、００Ｂ＋１１Ｂの演算が行なわれる。ここで、“Ｂ”は、二進数を示す。３行目のエントリに対する演算処理ユニットにおいては、１１Ｂ＋１０Ｂの演算が行なわれる。以下、同様に、各エントリに格納されたデータワードａおよびｂの加算演算が実行される。
【００５７】
演算は、下位側ビットから順にビットシリアル態様で行なわれる。まず、エントリＥＲＹにおいてデータワードａの下位ビットａ［０］を対応の演算処理ユニット３４へ転送する。次にデータワードｂの下位ビットｂ［０］を対応の演算処理ユニット３４へ転送する。演算処理ユニット（ＡＬＵ）３４においては、それぞれ、与えられた２ビットデータを用いて加算演算を行なう。この加算演算結果ａ［０］＋ｂ［０］は、データワードｃの下位ビットｃ［０］の位置に書込まれる（ストアされる）。たとえば、第１行目のエントリＥＲＹにおいては、“１”がｃ［０］の位置に書込まれる。
【００５８】
この加算器処理が、次いで上位ビットａ［１］およびｂ［１］に対しても行なわれ、その演算結果ａ［１］＋ｂ［１］が、ビットｃ［１］の位置に書込まれる。
【００５９】
加算演算においては、桁上がりが生じる可能性があり、この桁上がり（キャリ）値が、ビットｃ［２］の位置に書込まれる。このように、データワードａおよびｂの加算がすべてのエントリＥＲＹにおいて完了し、その結果が、データｃとしてエントリＥＲＹそれぞれにおいて格納される。１０２４個のエントリが設けられる場合、１０２４組のデータの加算を並列に実行することができる。
【００６０】
メモリセルマット３０と演算処理ユニット３４との間でのデータビットの転送にそれぞれ１マシンサイクル必要とされ、また演算処理ユニット３４において１マシンサイクルの演算サイクルが必要とされる構成の場合、２ビットデータの加算および加算結果の格納を行なうために、４マシンサイクルが必要となる。しかしながら、メモリセルマット３０を複数のエントリＥＲＹに分割し、各エントリＥＲＹに演算対象データの組をそれぞれ格納し、対応の演算処理ユニット３４においてビットシリアル態様で演算処理を行なう構成において以下の特徴が実現される。すなわち、１つ１つのデータの演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより、高速データ処理を実現することができる。また、ビットシリアル態様で演算処理を行なっており、処理されるデータのビット幅は固定されないため、種々のデータ構成を有するアプリケーションに容易に適応することができる。
【００６１】
図５は、主演算回路２０の構成をより具体的に示す図である。メモリセルマット３０においては、メモリセルＭＣの各行に対応してワード線ＷＬが配置され、メモリセル列それぞれに対応してビット線対ＢＬＰが配置される。メモリセルＭＣは、これらのワード線ＷＬおよびビット線対ＢＬＰの交差部に対応して配置され、対応のワード線ＷＬおよびビット線対ＢＬＰに接続される。
【００６２】
エントリＥＲＹは、各ビット線対ＢＬＰに対応して設けられる。図５においては、メモリセルマット３０においてビット線対ＢＬＰ０からＢＬＰ（ｍ−１）それぞれに対応してエントリＥＲＹ０−ＥＲＹ（ｍ−１）が配置される。ビット線対ＢＬＰが、対応のエントリＥＲＹと対応の演算処理ユニット３４との間のデータ転送線として利用される。
【００６３】
メモリセルマット３０のワード線ＷＬに対してはロウデコーダ４６が設けられる。このロウデコーダ４６は、図１に示すコントローラ２１からのアドレス信号に従って、演算対象のデータビットを格納するメモリセルが接続されるワード線ＷＬを選択状態へ駆動する。ワード線ＷＬには、エントリＥＲＹ０−ＥＲＹ（ｍ−１）の同一位置のメモリセルが接続されており、ロウデコーダ４６により、エントリＥＲＹそれぞれにおいて同一位置のデータビットが選択される。
【００６４】
演算処理ユニット群（ＡＬＵ群）３２においては、演算処理ユニット３４が、ビット線対ＢＬＰ０−ＢＬＰ（ｍ−１）に対応して配置される（図５においては明確に示していない）。この演算処理ユニット群３２とメモリセルマット３０との間に、データのロード／ストアを行なうためのセンスアンプ群４０およびライトドライバ群４２が設けられる。
【００６５】
センスアンプ群４０は、ビット線対ＢＬＰに対応して設けられるセンスアンプを含み、対応のビット線対ＢＬＰに読出されたデータを増幅して演算処理ユニット群３２の対応の演算処理ユニット３４に伝達する。
【００６６】
ライトドライバ群４２も同様、ビット線対ＢＬＰそれぞれに対応して配置されるライトドライバを含み、対応の演算処理ユニット３４からのデータを増幅して対応のビット線対ＢＬＰへ転送する。
【００６７】
これらのセンスアンプ群４０およびライトドライバ群４２に対し、図１に示す入出力回路１０との間のデータ転送を行なうためのグローバルデータバス１２が配置される。図５においては、このグローバルデータバス１２は、センスアンプ群４０およびライトドライバ群４２にそれぞれ別々に接続されるバス線を含むように示されるものの、これらのセンスアンプ群４０およびライトドライバ群４２へは、同じデータバス線が接続されてもよい。また、グローバルデータバス１２とセンスアンプ群４０およびライトドライバ群４２との間にデータ入出力用のインターフェイスが配置されていても良い。
【００６８】
演算処理ユニット群３２に対して、さらに、ＡＬＵ間相互接続用スイッチ回路４４が設けられる。このスイッチ回路４４は、演算処理ユニット３４間の相互接続経路を、図１に示すコントローラ２１からの制御信号に基づいて設定する。これにより、バレルシフタなどと同様に、隣接演算処理ユニット間でのデータ転送のみならず、物理的に遠くに離れた演算処理ユニット間でのデータ転送を行なうことができる。このＡＬＵ間相互接続用スイッチ回路４４は、たとえば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）などを用いたクロスバースイッチで実現される。
【００６９】
また、演算処理ユニット群３２の各演算処理ユニット３４は、図１に示すコントローラ２１からの制御信号に従ってその演算処理動作タイミングおよび演算操作内容が決定される。
【００７０】
図６は、この主演算回路２０のメモリセルマット３０におけるデータＤＡＴＡの格納と外部データの配列を概略的に示す図である。メモリセルマット３０においては、エントリＥＲＹそれぞれに、処理対象のデータＤＡＴＡの組が格納される。図６においては、メモリセルマット３０の２つの領域ＲＧＡおよびＲＧＢにおいてそれぞれ、演算処理対象のデータが格納される状態を一例として示す。
【００７１】
演算処理ユニット群３２を用いて演算処理を行なう場合、エントリＥＲＹの各データビットを対応の演算処理ユニット（ＡＬＵ）３４に転送する。したがって、演算処理を行なう場合、データ転送に先立って、ロウデコーダ４６により、ワード線ＷＬを選択する。このワード線ＷＬには、メモリセルマット３０の各エントリＥＲＹのメモリセルが接続されており、演算処理対象のデータをビットシリアル態様で対応の演算処理ユニット（ＡＬＵ）３４との間で転送を行なう。
【００７２】
一方、システムバス５上を転送されるデータＤＡＴＡは、１アドレス（ＣＰＵアドレス）のデータワードであり、このデータＤＡＴＡの各ビットが並列にシステムバス５上を転送される。
【００７３】
したがって、このシステムバス５上を転送されるデータＤＡＴＡを、未変換でビットパラレルなデータＤＡＴＡＡとしてメモリセルマット３０に格納する場合、異なるエントリにデータＤＡＴＡのビットが分散されるため、１つのエントリＥＲＹ内にデータＤＡＴＡの各ビットを格納することはできない。したがって、このシステムバス５上を転送されるデータＤＡＴＡのビット配列順序を変換して、ビットシリアルなデータＤＡＴＡＢに変換し、各ビット毎にメモリセルマット３０に異なるワード線を選択して格納することが要求される。データＤＡＴＡが、たとえば１６ビットデータの場合、１つのデータＤＡＴＡの格納をビットシリアル態様で行なった場合、高速でデータの転送を、この主演算回路外部との間で行なうことができなくなり、並列演算処理による高速処理という特徴が損なわれる。
【００７４】
そこで、このシステムバス５上を転送されるデータＤＡＴＡの配列を変換して、データワードパラレルでかつビットシリアルな配列に変換して複数のエントリに同時にデータを書込むまたは読出すデータ配列変換回路が必要となる。本発明は、この外部のシステムバス等とメモリセルマットとの間でのデータ転送を高速かつ効率的に行なうためのデータ配列変換の構成を提供する。以下、各実施の形態について説明する。
【００７５】
［実施の形態１］
図７は、この発明の実施の形態１に従う半導体信号処理装置が用いられる信号処理システムの全体の構成を概略的に示す図である。図７において、信号処理システム５０は、各種処理を実行する演算機能を実現するシステムＬＳＩ５２と、システムＬＳＩ５２と外部システムバス５６を介して接続される外部メモリとを含む。
【００７６】
外部メモリは、大容量メモリ６６と、高速メモリ６７と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ（リード・オンリ・メモリ：ＲＡＭ）６８を含む。大容量メモリ６６は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）で構成され、高速メモリ６７は、たとえばスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）で構成される。
【００７７】
システムＬＳＩ５２は、例えば、ＳＯＣ（システム・オン・チップ）構成を有し、内部システムバス５４に並列に結合される基本演算ブロックＦＢ１−ＦＢｎと、これらの基本演算ブロックＦＢ１−ＦＢｎの処理動作を制御するホストＣＰＵ２と、システム５０外部からの入力信号ＩＮを内部処理用データに変換する入力ポート５９と、内部システムバス５４から与えられた出力データを受けて、システム外部への出力信号ＯＵＴを生成する出力ポート５８を含む。これらの入力ポート５９および出力ポート５８は、たとえばライブラリ化されたＩＰ（インテレクチュアル・プロパティ）ブロックで構成され、データ／信号の入出力に必要な機能を実現する。
【００７８】
システムＬＳＩ５２は、さらに、基本演算ブロックＦＢ１−ＦＢｎからの割込信号を受付け、ホストＣＰＵ２に対して割込を通知する割込コントローラ６１と、ホストＣＰＵ２の各処理に必要な制御動作を行なうＣＰＵ周辺６２と、基本演算ブロックＦＢ１−ＦＢｎからの転送要求に従って外部メモリに対するデータ転送を行なうＤＭＡコントローラ６３と、ホストＣＰＵ２またはＤＭＡコントローラ６３からの指示に従って外部システムバス５６に接続されるメモリ６６−６８に対するアクセス制御を行なう外部バスコントローラ６４と、ホストＣＰＵ２のデータ処理を補助する専用ロジック６５を含む。
【００７９】
ＣＰＵ周辺６２は、タイマおよびシリアルＩＯ（入出力）等のホストＣＰＵ２におけるプログラムおよびデバッグの用途に必要な機能を備える。専用ロジック６５は、たとえばＩＰブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。これらの機能ブロック５８、５９、６１−６５およびホストＣＰＵ２が並列に、内部システムバス５４に結合される。このＤＭＡコントローラ６３は、図１に示すＤＭＡ回路４に相当する。
【００８０】
ＤＭＡコントローラ６３は、基本演算ブロックＦＢ１−ＦＢｎからのＤＭＡ要求信号に従って外部メモリ６６−６８に対するデータ転送を実行する。
【００８１】
基本演算ブロックＦＢ１−ＦＢｎは、先に説明したように同一の構成を有しており、図７においては基本演算ブロックＦＢ１の構成を代表的に示す。
【００８２】
基本演算ブロックＦＢ１は、主演算回路２０と、マイクロ命令メモリ２３と、コントローラ２１と、コントローラ２１の中間処理データまたは作業用データを格納するワークデータメモリ７６と、基本演算ブロックＦＢ１内部と内部システムバス５４との間でのデータ／信号の転送を行なうシステムバスインターフェイス（Ｉ／Ｆ）７０を含む。
【００８３】
図１に示す入出力回路１０は、各基本演算ブロックに対応して配置されるシステムバスインターフェイス（Ｉ／Ｆ）７０に対応する。
【００８４】
主演算回路２０は、先に図１を参照して説明したように、メモリセルマット３０と、演算処理ユニット３４と、ＡＬＵ間相互接続用スイッチ回路４４を含む。この図７に示す構成においては、基本演算ブロックＦＢ１においては、図１に示すレジスタ群は示されていない。しかしながら、このレジスタ群は、コントローラ２１内に内蔵されており、必要なデータが、このレジスタ群の各レジスタに格納される。
【００８５】
システムバスＩ／Ｆ７０により、ホストＣＰＵ２またはＤＭＡコントローラ６３が、メモリセルマット３０、コントローラ２１内の制御レジスタ、マイクロ命令メモリ２３およびワークデータメモリ７６へアクセスすることが可能となる。
【００８６】
基本演算ブロックＦＢ１−ＦＢｎには、異なるアドレス領域（ＣＰＵアドレス領域）が割付けられる。同様、基本演算ブロックＦＢ１−ＦＢｎ内のメモリセルマット３０、コントローラ２１内の制御レジスタ、マイクロ命令メモリ２３およびワークデータメモリ７６についても、それぞれ異なるアドレス（ＣＰＵアドレス）が割付けられる。各割付けられたアドレスに従って、ホストＣＰＵ２およびＤＭＡコントローラ６３が、アクセス対象の基本演算ブロックＦＢ（ＦＢ１−ＦＢｎ）を識別し、アクセス対象の基本演算ブロックに対するアクセスを実行する。
【００８７】
この基本演算ブロックＦＢ１は、さらに、システムバスＩ／Ｆ７０との間でのデータ配列を変換する直交変換回路７２と、直交変換回路７２およびシステムバスＩ／Ｆ７０の一方を選択して主演算回路２０に結合する切換回路７４を含む。
【００８８】
直交変換回路７２は、システムバスＩ／Ｆ７０からビットパラレルかつワードシリアルな態様で転送されるデータを、ワードパラレルかつビットシリアルな態様で転送して、切換回路７４を介して主演算回路２０のメモリセルマット３０の各エントリに異なるデータワードの同一位置のビットを並列に書込む。また、直交変換回路７２は、主演算回路２０のメモリセルマット３０からワードパラレルかつビットシリアルに転送されるデータ列を直交変換して、ビットパラレルかつワードシリアルな態様で転送する。これにより、システムバス５４とメモリセルマット３０におけるデータ転送の整合性を維持する。
【００８９】
ここで直交変換は、ビットシリアルかつワードパラレルデータとビットパラレルかつワードシリアルデータの間の変換を示す。
【００９０】
この切換回路７４は、コントローラ２１からのワークデータを選択して主演算回路２０に転送するように構成されてもよい。この場合、メモリセルマット３０をワークデータ格納領域として利用することができ、ワークデータメモリ７６が不要となる。また、演算対象データを直交変換する必要のない場合には、切換回路７４は、システムバスＩ／Ｆ７０を、主演算回路２０に結合する。
【００９１】
基本演算ブロックＦＢ１−ＦＢｎそれぞれにおいて、図１に示す入出力回路１０に対応する機能を分散して配置することにより、各基本演算ブロック単位で、データの直交変換の有無を決定することができ、基本演算ブロックそれぞれの処理内容に応じて柔軟にデータ配列を設定することができる。
【００９２】
図８は、図７に示す直交変換回路７２の構成を概略的に示す図である。図８において、直交変換回路７２は、Ｌ行Ｌ列に配列される記憶素子を有する直交メモリ８０と、直交メモリ８０とシステムバスＩ／Ｆ７０の間のインターフェイスをとるシステムバス／直交変換回路インターフェイス（Ｉ／Ｆ）８２と、メモリセルマット３０に対して設けられる入出力インターフェイス部（Ｉ／Ｆ）に対するインターフェイスをとるメモリセルマット／直交変換回路Ｉ／Ｆ８４と、システムバスと直交メモリ８０との間でのデータ転送を制御する対外部転送制御回路８８と、メモリセルマット入出力Ｉ／Ｆと直交メモリ８０の間でのデータ転送を制御する対内部転送制御回路８６を含む。この直交変換回路７２とシステムバス５４との間でＬビット単位でデータの転送が行なわれ、また直交変換回路７２とメモリセルマットの間でＬビット単位でのデータ転送が行なわれる。この転送データビット幅Ｌは、内部システムバス５４を転送されるデータワードのビット幅と同一であってもよく、またシステムバスＩ／Ｆにおいてビット幅変換が行われ、複数ワードデータが並列にシステムバスＩ／Ｆ５４と直交変換回路７２との間で転送されても良い。
【００９３】
対内部転送制御回路８６は、メモリセルマットと直交変換回路７２との間でのデータ転送時、この直交メモリ８０に対するアドレスの生成およびメモリセルマットに対するアドレスの生成を行なうとともに、メモリセルマット／直交変換回路Ｉ／Ｆ８４におけるバッファ処理を制御する。この対内部設定制御回路８６が動作して、メモリセルマットとの間でのデータ転送が行なわれている場合、対内部転送制御回路８６は対外部転送制御回路８８の動作を制御し、システムバス５４との間でのデータ転送にウエイトをかける。また、対内部転送制御回路８６は、このメモリセルマットへのデータ転送時、直交メモリ８０のエントリ位置情報およびビット位置情報に基づいてアドレス計算を行なって主演算回路に計算したアドレスを転送する。
【００９４】
対内部転送制御回路８８は、システムバス５４との間でのデータ転送時、順次Ｘ方向のアドレスを生成して、この直交メモリ８０にＸ方向に沿って順次データアクセスを行う（データの書込または読出を行う）ように制御を行う。一方、対内部転送制御回路８６は、メモリセルマットとの間でのデータ転送時、Ｙ方向に沿ったアドレスを生成して直交メモリ８０のＹ方向沿って順次データアクセスを行うように制御を行う。
【００９５】
直交メモリ８０は、２ポートメモリであり、システムバス／直交変換回路Ｉ／Ｆ８２との間でエントリ単位のデータＤＴＥを転送し、また、メモリセルマット／直交変換回路Ｉ／Ｆ８４との間で、複数エントリにわたるビット単位のデータＤＴＢを転送する。
【００９６】
直交メモリ８０において、Ｙ方向に整列するデータＤＴＥが、外部アドレス（ＣＰＵアドレス）単位のデータであり、メモリセルマットにおいては同一のエントリに格納されるエントリ単位のデータである。したがって、外部アドレスから見た場合、メモリセルマットとの間でのデータ転送時、Ｘ方向に整列するビットの転送が行なわれるため、ワードパラレルかつビットシリアルの態様でデータの転送が行なわれる。このビット単位のデータＤＴＢは、主演算回路のメモリセルマットにおいて複数のエントリの同一位置のビットで構成される主演算回路のメモリセルマットのアドレス単位のデータを表わす。
【００９７】
この直交メモリ８０において、システムバスとのデータ転送を行なうポートとメモリ内部バスとの間のデータ転送を行なうポートを別々に設けることにより、Ｘ方向データおよびＹ方向データを並べ替えてデータ転送を行なうことができる。システムバスからの多ビットデータ（エントリ単位の多ビットデータ）のメモリセルマットへの転送時、ビット単位の多ビットデータ）に変換して転送する。したがって、この直交メモリ８０において、データの並びについて、ワードパラレルかつビットシリアルとワードシリアルかつビットパラレルの間での変換が行なわれる。この変換処理は、前述の如くデータの直交変換と定義される。
【００９８】
図９は、この図８に示す直交変換回路７２のメモリセルマットへのデータ転送時の動作を示すフロー図である。以下、この直交変換回路７２の動作について図１および図９を参照して説明する。このデータ転送時においては、システムバス５４上のデータと同一ビット幅のデータが直交変換回路から主演算回路のメモリセルマットに転送される。すなわち、データの直交変換が行われるもののデータビット幅についての変換は行われない。すなわち、ビット幅Ｌがシステムバス５４上のデータのビット幅に等しい場合の転送動作フローを示す。
【００９９】
主演算回路のメモリセルマットの書込対象の先頭のビット位置（ワード線アドレス）およびエントリ位置（ビット線アドレス）をそれぞれ、対内部転送制御回路８６の図示しないレジスタに設定し、また対内部転送制御回路８６をデータ読出モードに設定し、対外部転送制御回路８８をデータ書込モードに設定する。また、直交メモリ８０に対するアドレスを初期アドレスに設定する。これらの一連の処理により、直交変換回路７２における初期設定が完了する（ステップＳＰ１）。
【０１００】
次に、システムバスＩ／Ｆからシステムバス／直交変換回路Ｉ／Ｆ８２経由で直交メモリ８０に対し、転送データが対外部転送制御回路８８の制御の下に書込まれる。この直交メモリ８０への書込データは、Ｙ方向に整列するエントリ単位の多ビットデータＤＴＥとしてこの直交メモリ８０のＸ方向についての先頭行から順に格納される。この直交メモリ８０に対するデータ書込ごとに、対外部転送制御回路８８は、書込回数をカウントし、直交メモリ８０のアドレスを更新する（ステップＳＰ２）。
【０１０１】
この直交メモリ８０の記憶内容がフル状態となるまで、すなわち、この直交メモリ８０へのシステムバス５４からのデータ書込回数が、主演算回路のメモリセルマットに対する転送データビット幅Ｌに到達するまで、データの書込が行なわれる（ステップＳＰ３）。
【０１０２】
直交メモリ８０に対して、システムバス５４からシステムバス／直交変換回路Ｉ／Ｆ８２を介してＬ回データ書込が行なわれると、直交メモリ８０から主演算回路のメモリセルマットへのデータ転送を行なうために、対内部転送制御回路８６が、システムバス５４に対するウエイト制御信号をアサートし、対外部転送制御回路８８を、後続のデータ書込を待機させる状態に設定する（ステップＳＰ４）。直交メモリ８０の記憶状況がフル状態であるかは、この対外部部転送制御回路８８が、直交メモリ８０に対してデータを書込んだ回数をカウントすることによりモニタされる。このモニタ結果が、対外部転送制御回路８８から対内部転送制御回路８６に報知されて、直交メモリ８０の記憶状況が対内部転送制御回路８６により把握される。対内部転送制御回路８６からのウェイト制御信号のアサートにより、対外部転送制御回路８８がシステムバス／直交変換回路Ｉ／Ｆをウェイと状態に設定し、応じて、システムバスＩ／Ｆ７０がウェイト状態に設定される。
【０１０３】
この対外部転送制御回路８８に対するウエイトをかけるとともに、メモリセルマット／直交変換回路Ｉ／Ｆ８４が、対内部転送制御回路８６により活性化され、対内部転送制御回路８６の制御の下に、直交メモリ８０のＹ方向についての先頭アドレスから順次データを読出し、メモリセルマット／直交変換回路Ｉ／Ｆ８４を介して主演算回路のメモリセルマットへデータを転送する（ステップＳＰ５）。
【０１０４】
この主演算回路のメモリセルマットへのデータ転送により直交メモリ８０の記憶データがすべて転送されたかの判定が各転送毎に行なわれる（ステップＳＰ６）。すなわち、対内部転送制御回路８６が、直交メモリ８０からデータを読出して転送を行なった回数をカウントし、そのカウント値がＬに到達するかをモニタする。このカウント値がＬとなるまで、直交メモリ８０からメモリセルマット／直交変換回路Ｉ／Ｆ８４を介してのＬビット単位のデータ転送が継続される。
【０１０５】
ステップＳＰ６において直交メモリ８０のデータがすべて転送されたと判定される。次いで、演算対象のデータがすべて転送されたかの判定が行なわれる（ステップＳＰ７）。演算対象の転送データが残っている場合には、再び、直交メモリ８０へのデータ格納を行なうため、直交メモリ８に対するアドレスを初期値に更新し、またデータ転送回数を初期化し（ステップＳＰ８）、再びステップＳＰ２からの処理を開始する。
【０１０６】
このステップＳＰ８からステップＳＰ２へ戻った場合には、アドレス更新処理により、メモリセルマットにおけるエントリ位置を表わすアドレスがＬ加算されて対内部転送制御回路８６において、直交メモリ８０に格納されるデータのメモリセルマットにおける先頭エントリ位置が更新される。
【０１０７】
このエントリ位置情報が、主演算回路のメモリセルマットにおけるエントリ数を超えた場合には、メモリセルマットにおいて次のワード線を選択して、次のビット位置にデータを書込む必要があり、このエントリ位置情報が初期値の０に設定され、またメモリセルマットにおいて次のワード線を選択するため、ワード線アドレス（ビット位置情報）が１増分される。
【０１０８】
対内部転送制御回路８６は、対外部転送制御回路８８に対し、システムバス５４へのウェイトを解除し、再び、システムバス５４から対外部転送制御回路８８が、直交メモリ８０に対するデータの書込を再開する。
【０１０９】
このステップＳＰ２からＳＰ８の動作が、演算対象のデータがすべて転送されるまで繰返し実行される。
【０１１０】
ステップＳＰ７において、すべてのデータ転送が完了したと判定されると（システムバスＩ／Ｆからの転送要求がデアサートされることにより判定される）、データ転送が終了する。これらの一連の処理により、外部からのワードシリアルに転送されるデータをビットシリアルかつワードパラレルなデータに変換してメモリセルマットに転送することができる。
【０１１１】
図１０は、この図８に示す大容量メモリ（ＳＤＲＡＭ）６６からメモリセルマット３０へのデータ転送を模式的に示す図である。図１０においては、このメモリセルマットに対するデータのビット幅Ｌが４ビットの場合のデータ転送が、一例として示される。
【０１１２】
図１０において、４ビットデータ（ビットＡ３−Ａ０）ないしＩ（ビットＩ３−Ｉ０）がＳＤＲＡＭ６４に格納される。ＳＤＲＡＭ６４から内部システムバス５４を介して４ビットデータＤＴＥ（データＩ：ビットＩ３−Ｉ０）が直交メモリ８０へ転送されて格納される。ＳＤＲＡＭ６４からのデータＤＴＥは、同一エントリに格納されるエントリ単位のデータであり、直交メモリ８０においては、Ｙ方向にデータビットが整列して格納される。図１０においては、データＥ−Ｈが格納された状態が一例として示される。
【０１１３】
直交メモリ８０からメモリセルマット３０へのデータ転送時においては、直交メモリ８０のＸ方向に整列するデータＤＴＢの各ビットが並行して読出される。データビットＥ１、Ｆ１、Ｄ１、およびＨ１からなるメモリセルマットのアドレス単位のデータＤＴＢがメモリセルマット３０のエントリ位置情報および書込ビット位置情報が示す位置に格納される。このビット位置情報が、メモリセルマット３０のワード線アドレスとして用いられ、エントリ位置情報が、メモリセルマット３０のビットアドレスとして用いられる。これらのビット位置情報およびエントリ位置情報が、先の図８に示される対内部転送制御回路８６内のレジスタに格納され、アドレス情報として、転送される。このメモリセルマット３０における実際のデータの書込位置を示す書込ビット位置情報は、このメモリセルマット３０へのアクセス回数とエントリ位置情報とビット位置情報とに基づいて生成される。
【０１１４】
直交メモリ８０を用いてＹ方向に同時にデータビットを格納し、ついでＸ方向に整列データビットを読出すことにより、ＳＤＲＡＭ６４からワードシリアルかつビットパラレルで読出されるエントリ単位のデータＤＴＥを、ワードパラレルかつビットシリアルのアドレス単位のデータＤＴＢに変換してメモリセルマット３０に格納することができる。
【０１１５】
メモリセルマット３０からデータを読出して内部システムバス５４へ転送する場合には、そのデータの転送方向が逆となるものの、直交メモリ８０の動作は、メモリセルマット３０へのデータ書込時と同じである。対内部転送制御回路８６により、メモリセルマットから読出されたデータが順次直交メモリ８０にＹ方向の先頭位置から格納される。次いで直交メモリ８０から、この対外部転送制御回路８８により、Ｘ方向の先頭位置からデータを順次読出すことにより、メモリセルマット３０からワードパラレルかつビットシリアル態様で読出されたデータをワードシリアルかつビットパラレルのデータに変換して転送することができる。
【０１１６】
図１１は、直交メモリ８０に含まれるメモリセルの構成の一例を示す図である。この直交メモリ８０に含まれるメモリセルはデュアルポートＳＲＡＭセルで構成される。図１１において、直交メモリセルは、交差結合される負荷ＰチャネルＭＯＳトランジスタＰＱ１およびＰＱ２と、交差結合されるデータ記憶用のドライブＮチャネルＭＯＳトランジスタＮＱ１およびＮＱ２を含む。この直交メモリセルは、通常のＳＲＡＭセルと同様に、インバータラッチをデータ記憶素子として備え、このインバータラッチ（フリップフロップ素子）により、ストレージノードＳＮ１およびＳＮ２に相補データを記憶する。
【０１１７】
直交メモリセルは、さらに、ワード線ＷＬＨ上の信号電位に応答してストレージノードＳＮ１およびＳＮ２をそれぞれビット線ＢＬＨおよび／ＢＬＨに結合するＮチャネル型ＭＯＳトランジスタＮＱＨ１およびＮＱＨ２と、ワード線ＷＬＶ上の信号電位に応答してストレージノードＳＮ１およびＳＮ２をビット線ＢＬＶおよび／ＢＬＶに結合するＮチャネル型ＭＯＳトランジスタＮＱＶ１およびＮＱＶ２を含む。ワード線ＷＬＨおよびＷＬＶが直交して配列され、ビット線ＢＬＨおよび／ＢＬＨがビット線ＢＬＶおよび／ＢＬＶと直交して配列される。
【０１１８】
ワード線ＷＬＨおよびビット線ＢＬＨおよび／ＢＬＨで構成される第１のポート（トランジスタＮＱＨ１，ＮＱＨ２）とワード線ＷＬＶおよびビット線ＢＬＶおよび／ＢＬＶで構成される第２のポート（トランジスタＮＱＶ１，ＮＱＶ２）をそれぞれ別々の直交メモリインターフェイス部に結合される。たとえば、第１のポート（ワード線ＷＬＨ，ビット線ＢＬＨ，／ＢＬＨ）を、メモリデータバスへのポートとして利用して、対内部転送制御回路の制御の下に選択する。第２のポート（ワード線ＷＬＶおよびビット線ＢＬＶ，／ＢＬＶ）は、内部システムバス５４とのインターフェイス用ポートとして利用して、対外部転送制御回路８８により選択する。これにより、直交メモリにおいて行および列の変換を行なってデータアクセスを行なうことができる。
【０１１９】
上述のような直交変換回路７２を利用することにより、システムバスとメモリセルマット間のデータ転送時に、多ビット幅のデータの転置を行なうことができ、メモリセルマットに対するデータ転送時に必要とされるメモリセルマットへのアクセス回数を低減することができ、応じてデータ転送に要する時間を短縮することができ、高速処理が実現される。
【０１２０】
この直交メモリ８０を、ＳＲＡＭセルで構成することにより、Ｄフリップフロップなどの回路素子を用いる構成に比べて占有面積を低減することができ、小占有面積で大量のデータの直交変換を行なうことができる。
【０１２１】
しかしながら、上述の直交メモリ８０においては、転送データのビット幅は、システムバス上のデータのビット幅と同じである。従って、画像データなどの大量のデータ格納時にリアルタイムでデータの転送を行うのが困難となる場合が考えられる。そこで、大量のデータをより効率的に主演算回路のメモリセルマットとの間で転送する構成について説明する。
【０１２２】
図１２は、この発明に従う直交メモリ８０の具体的構成を概略的に示す図である。図１２において、直交メモリ８０は、行列状に配列されるＳＲＡＭセルＭＣＳを有するメモリセルマット９０を含む。このメモリセルマット９０においては、その水平方向Ｈに整列するＳＲＡＭセルＭＣＳに対応して水平方向ビット線対ＢＬＨＰおよび垂直方向ワード線ＷＬＶが配置され、この図１２に示す垂直方向Ｖに整列するＳＲＡＭセルＭＣＳに対応して、水平方向ワード線ＷＬＨおよび垂直方向ビット線対ＢＬＶＰが配置される。これらのワード線ＷＬＶおよびビット線対ＢＬＨＰは対応して配置され、また、ワード線ＷＬＨおよびビット線対ＢＬＶＰが対応して配置される。このＳＲＡＭセルＭＣＳは、ワード線ＷＬＶおよびＷＬＨと、ビット線対ＢＬＨＰおよびＢＬＶＰに接続される。ＳＲＡＭセルＭＣＳは、図１１に示す構成を備える。
【０１２３】
直交メモリ８０は、さらに、垂直方向ワードアドレスＡＤＶに従ってメモリセルマット９０の垂直方向ワード線ＷＬＶを選択するロウデコーダ９２ｖと、垂直方向ビット線対ＢＬＶＰ上に読出されたメモリセルデータを検知し増幅するセンスアンプ群９４ｖと、垂直方向ビット線対ＢＬＶＰ上のメモリセルへデータを書込むライトドライバ群９６ｖと、垂直方向データＤＴＶを入出力する入出力回路９８ｖを含む。
【０１２４】
直交メモリ８０は、さらに、水平方向ワードアドレスＡＤＨをデコードして、メモリセルマット９０の水平方向ワード線ＷＬＨを選択するロウデコーダ９２ｈと、水平方向ビット線対ＢＬＨＰ上に読出されたメモリセルデータを検知し増幅するセンスアンプ群９４ｈと、水平方向ビット線対ＢＬＨＰ上のメモリセルにデータを書込むライトドライバ群９６ｈと、これらのセンスアンプ群９４ｈまたはライトドライバ群９６ｈとデータの入出力を行なう入出力回路９８ｈを含む。
【０１２５】
この入出力回路９８ｖおよび９８ｈの一方が、システムバスとの間でデータの転送を行ない、他方が、メモリセルマットとの間でのデータ転送を行なう。以下の説明においては、垂直方向Ｖに沿ってエントリ単位のデータが順次格納され、水平方向に沿ってビット単位のデータが順次格納される場合を想定する。垂直方向Ｖには、主演算回路のメモリセルマットのエントリに等しい数ｍのワード線ＷＬＶが配置される。水平方向Ｈには、１エントリに格納されるデータのビット数以上のワード線ＷＬＨが配設される。メモリセルマットとの間で、全エントリのビットを転送するために、入出力回路９８ｈは、ｍビットデータの入出力を行う。全エントリにデータが格納された後に、直交メモリ８０から、主演算回路のメモリセルマットへデータの転送が行われる。
【０１２６】
したがって、ロウデコーダ９２ｖおよび９２ｈにより、ワード線ＷＬＶおよびＷＬＨが選択されたとき、転送データビットがすべて選択されるため、列選択を行なうコラムデコーダは特に設けられていない。
【０１２７】
このロウデコーダ９２ｖおよび９２ｈへ与えられるアドレスＡＤＶおよびＡＤＨは、その直交メモリ８０に対するアクセス回数をカウントすることにより生成され、先の図８に示す対内部転送制御回路８６または対外部転送制御回路８８により生成される。
【０１２８】
ワード線ＷＬＨ、およびビット線対ＢＬＨＰが１つのデータアクセスポート（主演算回路との間のポート）を構成し、またワード線ＷＬＶおよびビット線対ＢＬＶＰが、他方のデータアクセスポート（システムバスＩ／Ｆとの間のポート）を構成する。
【０１２９】
図１３は、この図１２に示す直交メモリ８０の格納データの配列の一例を示す図である。メモリセルマット９０は、ｍ個のエントリを有し、１エントリはｋビット幅を有する。１エントリが、垂直方向ワード線ＷＬＶにより選択され、この選択エントリに対してセンスアンプ群９４ｖおよびライトドライバ群９６ｖを介してｋビットのデータＤＴＶが入出力される。このデータＤＴＶは、システムバスＩ／Ｆを介してシステムバスとの間で転送される。
【０１３０】
一方、エントリと直交する方向に水平方向ワード線ＷＬＨが配置され、水平方向ワード線ＷＬＨにより選択されたメモリセルに対し、センスアンプ群９４ｈまたはライトドライバ群９６ｈにより、ｍビットのビットのデータＤＴＨが入出力される。このｍビット幅のデータＤＴＨが、対応の主演算回路内のメモリセルマットに並列に格納される。
【０１３１】
図１４は、この図１３に示す直交メモリ８０における水平方向データＤＴＨのアクセス動作を示す信号波形図である。以下、図１４を参照して、主演算回路との間でのデータ転送時の直交メモリの動作について説明する。
【０１３２】
この直交メモリから主演算回路へのデータＤＴＨを転送する場合には、図１２に示すロウデコーダ９２ｈにより、水平方向ワード線ＷＬＨが選択される。ワード線ＷＬＨが選択状態へ駆動されると、水平方向ビット線ＢＬＨおよび／ＢＬＨに、メモリセルデータが読出される。このメモリセルデータは、センスアンプ群９４ｈにより検知増幅され、続いて入出力回路を介してデータＤＴＨが出力される。図１４においては、１ビットのデータを示し、ビット線ＢＬＨがＨレベルであり、データ“１”が読出される場合を一例として示す。
【０１３３】
このデータ読出後、ビット線ＢＬＨおよび／ＢＬＨは、初期状態に復帰する。
【０１３４】
一方、メモリセルマット９０へのデータＤＴＨの書込時においては、データＤＴＨに従ってライトドライバ群９６ｈが動作し、ワード線ＷＬＨの選択と並行して、ビット線ＢＬＨおよび／ＢＬＨに書込データを転送する。図１４においては、書込データが“０”であり、ビット線／ＢＬＨがＨレベル、ビット線ＢＬＨがＬレベルに駆動される状態を一例として示す。
【０１３５】
このデータ書込完了後、ワード線ＷＬＨが非選択状態へ駆動され、また、ビット線／ＢＬＨおよびＢＬＨも、初期状態に復帰する。この図１４に示すデータの書込および読出動作は通常のＳＲＡＭのデータアクセス時の動作と同様である。
【０１３６】
図１５は、このデータＤＴＨの入出力時のデータの流れを概略的に示す図である。この図１５に示すように、ワード線ＷＬＨを選択し、ｍ個のエントリのデータＤＡＴＡの同一ビット位置のデータを並列に読出し、ｍビットのデータＤＴＨの入出力を行なう。したがって、主演算回路のメモリセルマットがエントリ数がｍの場合、１回のデータ転送サイクルで、各エントリの同一ビット位置のデータを転送することができる。この場合、たとえばエントリ数ｍが、１０２４であっても、メモリセルマットに対する内部データバスはチップ上内部配線であり、ピン端子などの影響を受けることはなく、十分に、メモリセルマットに対する内部データバスを配置することができる。
【０１３７】
図１６は、この図１３に示す直交メモリのシステムバスとの間のデータ転送時のデータ入出力動作を示すタイミング図である。以下、図１６を参照して、この図１３に示す直交メモリの垂直方向データＤＴＶの入出力動作について説明する。
【０１３８】
この図１６に示すように、データＤＴＶを入出力する場合、ワード線ＷＬＶを、図１２に示すロウデコーダ９２ｖにより選択状態へ駆動する。これにより、１つのエントリにおけるｋビットが並列に、対応のビット線ＢＬＶおよび／ＢＬＶ上に読出される。この図１６においても、１ビットのデータの読出波形を示し、ビット線ＢＬＶおよび／ＢＬＶが、それぞれ、ＨレベルおよびＬレベルに駆動され、データ“１”が読出される動作を一例として示す。
【０１３９】
データの書込時においては、同様、ワード線ＷＬＶを選択状態へ駆動し、書込データを、ビット線ＢＬＶおよび／ＢＬＶ上にライトドライバ群９６ｖを介して伝達する。図１６においては、データ“０”が書込まれ、ビット線ＢＬＶがＬレベルに駆動される場合が一例として示される。
【０１４０】
図１７は、このデータＤＴＶの書込時のデータの流れを概略的に示す図である。図１７に示すように、メモリセルマット９０においてワード線ＷＬＶが選択され、センスアンプ群９４ｖまたはライトドライバ群９６ｖを介してデータＤＴＶの入出力が行なわれる。この場合、データＤＴＶは、ｋビットデータであり、システムバスに対しｋビットのデータが転送される。
【０１４１】
この直交メモリは、データＤＴＶおよびＤＴＨを入出力するポートいずれへも、通常のＳＲＡＭと同様の動作が行なわれてデータの入出力が行なわれる。したがって、エントリ数ｍが大きい場合においても、メモリセルマット９０の占有面積を比較的小さくして、演算対象データを格納して配列の変換を行なうことができる。
【０１４２】
また、演算データのビット幅が異なる場合、データビット幅ｋビットを最大可能値に設定し、水平ワード線ＷＬＨの選択範囲（水平方向アドレスＡＤＨの変化範囲）を演算データビット幅に応じて設定することにより、容易に対応することができる。
【０１４３】
以上のように、この直交メモリとして、ＳＲＡＭセルを用い、２ポートメモリを利用することにより、ビットシリアルかつエントリパラレルな態様でデータに対し演算処理を行なう演算回路と、この演算回路外部のバス（システムバス等）との間のデータ配列の変換を、コンパクトな回路構成で容易に実現することができる。
【０１４４】
また、直交変換回路と主演算回路の間のデータ転送を主演算回路のメモリセルマットのエントリ数に等しいビット幅に設定することにより、高速でデータの転送を行うことができる。
【０１４５】
［実施の形態２］
図１８は、この発明の実施の形態２に従う主演算回路２０の構成を概略的に示す図である。この主演算回路２０においては、メモリセルマット９５において、２ポートＳＲＡＭセルＭＣＳが行列状に配列される。この２ポートＳＲＡＭセルＭＣＳは、図１１に示す構成と同様の構成を備える。
【０１４６】
メモリセルマット９５においては、ワード線ＷＬＶおよびＷＬＨが互いに直交する方向に配置され、また、ビット線対ＢＬＨＰがワード線ＷＬＶに対応してかつ並行して配置され、またビット線対ＢＬＶＰが、ワード線ＷＬＨに対応してかつ並行して配置される。
【０１４７】
ワード線ＷＬＨは、ロウデコーダ１００により選択され、ワード線ＷＬＶが、ロウデコーダ１０２により選択される。ワード線ＷＬＶおよびビット線対ＢＬＨＰには、エントリＥＲＹに含まれるＳＲＡＭセルＭＣＳが接続される。
【０１４８】
エントリＥＲＹに対応してセンスアンプ群４０のセンスアンプおよびライトドライバ群のライトドライバが配置され、またＡＬＵ群（演算処理ユニット群）３２の演算処理ユニット（ＡＬＵ）が配置される。この演算処理ユニット群３２に隣接して、またＡＬＵ間相互接続用スイッチ回路４４が配置される。このセンスアンプ群４０、ライトドライバ群４２、演算処理ユニット群３２およびＡＬＵ間相互接続用スイッチ回路４４の構成は、先の図５に示す主演算回路の構成と同じである。
【０１４９】
ロウデコーダ１００も、先の図５に示すロウデコーダ４６に対応し、コントローラ２１からのアドレス信号に従ってワード線ＷＬＨを選択する。同様、コントローラ２１からの制御信号が、演算処理ユニット群（ＡＬＵ群）３２およびＡＬＵ間相互接続用スイッチ回路４４へ与えられる。
【０１５０】
この主演算回路２０は、さらに、ワード線ＷＬＶをコントローラ２１からのアドレス信号に従って選択するロウデコーダ１０２と、ビット線対ＢＬＶＨ上のメモリセルデータを読出すセンスアンプ群１０４と、ビット線対ＢＬＶＰ上のメモリセルへデータを書込むライトドライバ群１０６と、これらのセンスアンプ群１０４およびライトドライバ群とメモリ内部データバスとの間でデータの入出力を行なう入出力回路１０８を含む。
【０１５１】
メモリ内部データバスは、先の図１に示すグローバルデータバスであってもよく、また先のシステムバスＩ／Ｆに接続されるデータバスであってもよい。本実施の形態２に置いては、先の実施の形態１における直交変換回路は用いられない。メモリ内部データバス上にはシステムバス上のデータと同一ビット配列のデータが転送される。
【０１５２】
メモリセルマット９５と入出力回路１０８との間でのデータ転送時にはロウデコーダ１０２によりワード線ＷＬＶを選択し、エントリ単位のデータが入出力される。演算処理ユニット群（ＡＬＵ群）３２を用いて演算処理を行なう場合には、ロウデコーダ１００によりワード線ＷＬＨを選択し、複数のエントリと同一位置のビットを選択して（ビット単位データを選択して）、エントリパラレル態様で演算処理を実行する。
【０１５３】
図１９は、図１８に示す主演算回路２０のメモリセルマット９５へのデータ書込時のデータの流れを模式的に示す図である。図１９において、この主演算回路２０外部からの書込データＤＩＮがライトドライバ群１０６へ与えられる。ロウデコーダ１０２は、エントリアドレスＥＲＡＤに従って、ワード線ＷＬＶを選択する。ライトドライバ群１０６は、ブロックアドレスＢＳＡＤに従ってライトドライバが選択的に活性化され、この書込データＤＩＮを、メモリセルマット９５の選択ワード線上のブロックアドレスＢＳＡＤが指定する領域に書込む。このエントリアドレスＥＲＡＤを順次更新してロウデコーダ１０２によりワード線ＷＬＶを順次選択し、ライトドライバ群１０６を各ブロック（演算対象データ格納領域）単位で選択的に活性化して書込データＤＩＮを書込む。これにより、各エントリにおいてブロックアドレスＢＳＡＤが指定する領域ごとに、データを格納することができる。
【０１５４】
図２０は、この図１８に示す主演算回路２０における演算処理時のデータの流れを模式的に示す図である。演算処理実行時においては、ロウデコーダ１００が、ビットアドレスＢＴＡＤに従ってワード線ＷＬＨを選択し、演算対象データのビットをシリアルに読出し、センスアンプ群４０により、演算処理ユニット群３２へ各ビットデータが転送される。この演算処理ユニット群３２における演算処理結果は、ライトドライバ群４２に含まれるライトドライバ（ＷＤ）を介してロウデコーダ１００が選択するワード線ＷＬＨ上に格納される。
【０１５５】
このロウデコーダ１００に対してビットアドレスＢＴＡＤを演算処理対象データごとにそれぞれ順次更新することにより、演算処理ユニット群３２においてビットシリアル態様でかつエントリパラレルに演算処理を実行することができる。
【０１５６】
図２１は、この演算処理結果データを主演算回路外部へ読出す際のデータの流れを模式的に示す図である。この場合、ロウデコーダ１０２が、エントリアドレスＥＲＡＤに従ってワード線ＷＬＶを選択し、ブロックアドレスＢＳＡＤに従ってセンスアンプ群１０４がブロック単位で選択的に活性化され、演算処理結果データを増幅して読出データＤＯＵＴを生成する。
【０１５７】
この演算処理結果データ読出時においては、エントリアドレスＥＲＡＤを順次更新することにより、演算処理結果データＤＯＵＴを、ワードシリアルかつビットパラレルに読出すことができる。
【０１５８】
図２２は、図１９から図２１に示すアドレスＥＲＡＤ、ＢＳＡＤおよびＢＴＡＤを発生する部分の構成の一例を概略的に示す図である。図２２において、アドレス発生部は、主演算回路外部とのデータ転送回数をカウントし、エントリアドレスＥＲＡＤを生成するエントリカウンタ１１０と、処理データＡのブロックアドレスを格納するＡレジスタ１１１と、処理データＢの格納ブロック領域のブロックアドレスを格納するＢレジスタ１１２と、演算処理結果データＣを格納するブロック領域のアドレスを格納するＣレジスタ１１３と、レジスタ１１１−１１３の格納値を選択してブロックアドレスＢＳＡＤを生成するマルチプレクサ１１４と、Ａレジスタ１１１の格納値に従って初期値が設定され、演算処理時処理データＡの選択回数をカウントするＡカウンタ１１５と、Ｂレジスタ１１２の格納値に初期値が設定され、処理データＢの各ビット選択時そのカウント値が増分されるＢカウンタ１１６と、Ｃレジスタ１１３の格納値従ってその初期値が設定され、演算処理結果データのビットの格納ごとにそのカウント値が増分されるＣカウンタ１１７と、これらのカウンタ１１５−１１７の出力カウントを選択してビットアドレスＢＴＡＤを生成するマルチプレクサ１１８を含む。
【０１５９】
エントリカウンタ１１０が、そのメモリセルマット９５に対するデータの入出力時初期値に設定され、エントリの先頭値から順次エントリアドレスＥＲＡＤを生成する。レジスタ１１１−１１３は、データビット幅および演算処理内容に応じて、それぞれのブロックアドレスが決定される。演算対象データＡ、Ｂの格納時には、マルチプレクサ１１４が、これらのレジスタ１１１または１１２の格納値を選択して、ブロックアドレスＢＳＡＤを生成する。演算処理結果データＣを出力する場合には、マルチプレクサ１１４が、Ｃレジスタ１１３の格納値を選択して、ブロックアドレスＢＳＡＤを生成する。
【０１６０】
カウンタ１１５−１１７は、それぞれ、レジスタ１１１−１１３の格納値に従ってその初期値が、各ブロックにおける最下位ビット格納位置を指定するアドレスに設定される。マルチプレクサ１１８は、演算対象データＡまたはＢを選択するときには、Ａカウンタ１１５またはＢカウンタ１１６のカウント値を選択してビットアドレスＢＴＡＤを生成する。演算処理結果データを格納する場合には、マルチプレクサ１１８がＣカウンタ１１７のカウント値を選択してビットアドレスＢＴＡＤを生成する。
【０１６１】
この図２２に示すアドレス発生部の格納値に基づいて、コントローラ２１が、マイクロプログラム命令メモリに格納された命令に従って順次処理を実行する。
【０１６２】
図２３は、この発明の実施の形態２におけるシステム構成の一例を示す図である。図２３においては、システムバス５４に基本演算ブロックＦＢが接続される。複数の基本演算ブロックＦＢが配置されるが、図２３においては１つの基本演算ブロックを代表的に示す。
【０１６３】
基本演算ブロックＦＢにおいては、主演算回路２０がバスインターフェイス部（Ｉ／Ｆ）７０を介してシステムバス５４に結合される。このバスＩ／Ｆ７０と主演算回路２０内の入出力回路１０８の間に、図１８に示すメモリ内部データバス１２０が配置される。したがって、この場合には、基本演算ブロックＦＢ個々に、バスインターフェイス部（Ｉ／Ｆ）７０が設けられ、メモリ内部データバス１２０においてデータ配列の変換を行なうことなく、システムバス５４とメモリセルマット９５の間でデータの転送をワードシリアルな態様で行なうことができる。
【０１６４】
図２４は、この発明の実施の形態２におけるシステム構成の他の例を示す図である。図２４においては、グローバルデータバス１２に、主演算回路２０ａ−２０ｈが並列に結合される。この主演算回路２０ａ−２０ｈは同一構成を有しており、図２４においては、主演算回路２０ａの構成を代表的に示す。主演算回路２０ａにおいては、入出力回路１０８が、グローバルデータバス１２に結合され、このグローバルデータバス１２が、図１８に示すメモリ内部データバスに対応する。このグローバルデータバス１２は、入出力回路１０（図１参照）を介してシステムバス５に結合される。
【０１６５】
この図２４に示すシステム構成においても、主演算回路２０ａにおいて、メモリセルマット９５が２ポート構成であり、入出力回路１０においては、データ配列の変換を行なうことは要求されず、システムバス５と主演算回路２０ａの入出力回路１０８との間で、ワードシリアル態様でデータ転送を行なって、メモリセルマット９５に対してデータ転送を行なうことができる。
【０１６６】
この主演算回路におけるメモリセルマット９５を、２ポート構成とすることにより、ビットシリアル／エントリパラレルの態様で演算を行なう主演算回路に対しても、外部とのデータ転送時および演算処理時どちらに対しても、動作内容に応じたデータ転送を行なうことができる。この場合、バスに対してデータ配列を変換するための直交変換回路は、特に必要とされず、基本演算ブロックの占有面積を低減することができる。
【０１６７】
［実施の形態３］
図２５は、この発明の実施の形態３に係る主演算回路２０の構成を概略的に示す図である。この図２５に示す主演算回路２０においては、メモリセルマット３０に隣接して直交２ポートメモリセルマット１３０が配置される。メモリセルマット３０においては、シングルポートのメモリセルＭＣが行列状に配列され、メモリセル行に対応してワード線ＷＬが配置され、メモリセル列に対応して、メモリセルマット３０および１３０で共有される共有ビット線対ＣＢＬＰ０−ＣＢＬＰ（ｍ−１）が配置される。
【０１６８】
直交２ポートメモリセルマット１３０において、共有ビット線ＣＢＬＰ０−ＣＢＬＰ（ｍ−１）と直交する方向にビット線ＢＬＶＰが配置される。また、共有ビット線対ＣＢＬＰ０−ＣＢＬＰ（ｍ−１）に対応してかつ並行してワード線ＷＬＶが配置され、ビット線対ＢＬＶＰに対応してかつ並行してワード線ＷＬＨが配置される。この直交２ポートメモリセルマット１３０においては、２ポートメモリセルＭＣＳが配置される。
【０１６９】
この直交２ポートメモリセルマット１３０に対して、ワード線ＷＬＶを選択するためのＶロウデコーダ１３２と、ビット線対ＢＬＶＰを介して、Ｖロウデコーダ１３２により選択されたワード線ＷＬＶ上のメモリセルとデータの転送を行なうセンスアンプ・ライトドライバ群１３４と、センスアンプ・ライトドライバ群１３４と内部データバスとの間でデータの転送を行なう入出力回路１３６と、ワード線ＷＬＨを選択するＨロウデコーダ１３８が設けられる。
【０１７０】
演算データを格納する演算用のメモリセルマット３０に対しては、センスアンプ群４０、ライトドライバ群４２、演算処理ユニット群３２およびＡＬＵ間相互接続用スイッチ回路４４が設けられる。
【０１７１】
この図２５に示す主演算回路２０の構成においては、直交２ポートメモリセルマット１３０を介して主演算回路２０の外部との間でのデータ転送を行ない、演算データをメモリセルマット３０に転送した後、このメモリセルマット３０と演算処理ユニット群３２との間で演算処理を行なう。直交２ポートメモリセルマット１３０は、この主演算回路２０外部との間のデータ転送のために用いられるだけであり、その占有面積を低減することができる。
【０１７２】
図２６は、この図２５に示す主演算回路２０のメモリセルマット３０への演算処理データセット時の動作を示すフロー図である。以下、図２６を参照して、この図２５に示す主演算回路２０の演算処理データセット動作について説明する。
【０１７３】
まず、この主演算回路２０に対するデータ転送要求が発行され、図示しないコントローラ（２１）により、Ｖロウデコーダ１３０およびＨロウデコーダ１３８に対するアドレスが初期設定される（ステップＳＰ１０）。
【０１７４】
この初期設定の後、Ｖロウデコーダ１３２が、与えられたエントリアドレスに従ってワード線ＷＬＶを選択状態へ駆動する。また、これにと並行して、内部データバスを介して与えられるデータを入出力回路１３６で受け、データ書込モードに設定して、センスアンプ・ライトドライバ群１３４のライトドライバ群を活性化し、ビット線対ＢＬＶＰ上に書込データを転送する（ステップＳＰ１１）。
【０１７５】
次いで、ワード線ＷＬＶを非選択状態へ駆動した後、次いで、この選択ワード線ＷＬＶに対するエントリアドレスが、最終エントリ番号ＭＡＸに到達しているかの判定が行なわれる（ステップＳＰ１２）。この最終エントリ番号ＭＡＸは、最大エントリ番号または最小エントリ番号である。直交２ポートメモリセルマット１３０において、エントリが最終値に到達していないと判定された場合には、エントリアドレスを更新し（ステップＳＰ１３）、再び、ステップＳＰ１１へ戻り、データの書込を最終エントリに到達するまで繰返し実行する。
【０１７６】
ステップＳＰ１２において、データ書込が最終エントリＭＡＸに対して実行されたと判定されると、直交２ポートメモリセルマット１３０への演算処理対象データの格納が完了し、次いで、直交２ポートメモリセルマット１３０からメモリセルマット３０へのデータ転送が行なわれる。このデータ転送時において、Ｈロウデコーダ１３８により、ワード線ＷＬＨを選択し、共有ビット線ＣＢＬＰ０−ＣＢＬＰ（ｍ−１）において、この直交２ポートメモリセルマット１３０により読出されるデータを、センスアンプ群４０で増幅し、ライトドライバ群４２でさらに増幅して、共有ビット線対ＣＢＬＰ０−ＣＰＬＰ（ｍ−１）上に転送する。この後、ロウデコーダ４６によりワード線ＷＬを選択状態へ駆動することにより、直交２ポートメモリセルマット１３０からメモリセルマット３０へのデータ転送を、ワード線単位で（ビット単位データ毎に）実行することができる（ステップＳＰ１４）。
【０１７７】
データ転送完了後、ワード線ＷＬおよびＷＬＨを非選択状態へ駆動して、またセンスアンプ群４０およびライトドライバ群４２を非選択状態へ駆動する。この後、データの最上位ビットまたは最下位ビットの転送が行なわれたかの判定が行なわれる（ステップＳＰ１５）。最下位ビットからデータが順次転送される場合には、データが最上位ビットであるかの判定を行ない、データの最上位ビット側から転送される場合には、転送データが最下位ビットであるかの判定が行われる。図２６においては、両者のシーケンスに対する判定処理を示す。
【０１７８】
データの全ビットが転送されていないと判定された場合には、ビットアドレスを更新してロウデコーダ４６へ与え（ステップＳＰ１６）、再び、ステップＳＰ１４からの動作を繰返し実行する。この直交２ポートメモリセルマット１３０に格納されたデータの全ビットが転送されたとステップＳＰ１５において判定されると、次いで、演算処理に必要な全データが転送されたかの判定が行なわれる（ステップＳＰ１７）。必要データがすべて転送されていない場合には、次の演算対象データを設定するため、再びステップＳＰ１０へ戻り、Ｖロウデコーダ１３２およびＨロウデコーダ１３８の初期アドレスを初期設定し、またロウデコーダ４６のビットアドレスを、次の演算処理対象のデータ格納領域の初期アドレスに設定し、再び直交２ポートメモリセルマット１３０への次の演算処理対象データの格納を繰返し実行する。
【０１７９】
ステップＳＰ１７において、演算処理に必要な全データが転送されたと判定されると、データのロードが完了し、演算処理ユニット群３２を用いて演算操作が実行される（ステップＳＰ１８）。
【０１８０】
図２７は、そのセンスアンプ群４０およびライトドライバ群４２に含まれるセンスアンプおよびライトドライバと共有ビット線対との接続を概略的に示す図である。図２７において、共有ビット線対ＣＢＬＰと演算処理ユニット（ＡＬＵ）３４の間に、センスアンプＳＡとライトドライバＷＤが並列に配置される。センスアンプＳＡは、図２５に示すセンスアンプ群４０に含まれ、ライトドライバＷＤは、図２５に示すライトドライバ群４２に含まれる。演算処理ユニット（ＡＬＵ）３４は、図２５に示す演算処理ユニット群（ＡＬＵ群）３２に含まれる。
【０１８１】
図２５に示すように、エントリＥＲＹ（ＥＲＹ０−ＥＲＹ（ｍ−１））それぞれにおいてセンスアンプＳＡおよびライトドライバＷＤが配置される（図２５において黒丸印で示す）。したがって、この直交２ポートメモリセルマット１３０とメモリセルマット３０の間のデータ転送時、センスアンプＳＡにより共有ビット線対ＣＢＬＰ上のデータを増幅し、ライトドライバＷＤを介して再び共有ビット線対ＣＢＬＰにデータを転送することにより、直交２ポートメモリセルマット１３０におけるメモリセルデータを、メモリセルマット３０のワード線ＷＬに接続されるメモリセルへ書込むことができる。
【０１８２】
この演算処理用のセンスアンプ群４０およびライトドライバ群４２を、メモリセルマット間データ転送手段として利用することにより、このデータセット用に専用の転送回路を設ける必要がなく、回路占有面積を低減することができる。
【０１８３】
しかしながら、メモリセルマット３０および１３０の間に、各共有ビット線対ＣＢＬＰにおいてセンスアンプおよびライトドライバと同様の構成の双方向データ転送回路が配置されても良い。メモリセルマット１３０からメモリセルマットへのデータ転送時、双方向データ転送回路においてセンスアンプを活性化することが必要とされ、消費電流を低減することができる（ＳＲＡＭセルはデータが非破壊読出であり、データの再書き込みは必要とされない）。また、ワード線ＷＬＨおよびＷＬを並行して選択状態へ駆動することができ、データ転送時のサイクルタイムを短縮することができる。
【０１８４】
図２８は、メモリセルマット３０における演算処理後のデータを入出力回路１３６を介して主演算回路外部へ転送する際の動作を示すフロー図である。以下、図２８を参照して、演算処理後のデータの転送動作について説明する。
【０１８５】
まず、演算操作が完了すると、演算処理後のデータ転送のための初期設定が行なわれる（ステップＳＰ２０）。この初期設定時においては、ロウデコーダ４６において、演算処理後のデータ格納領域の初期ビットアドレスが設定される。またＶロウデコーダ１３２および１３８も、そのアドレスが初期値に設定される。
【０１８６】
次いで、メモリセルマット３０においてロウデコーダ４６によりワード線ＷＬを選択し、センスアンプ群４０およびライトドライバ群４２を介してこのワード線ＷＬに接続されるメモリセルデータを増幅して共有ビット線対ＣＢＬＰ０−ＣＰＬＰ（ｍ−１）をフルスィングさせる。次いで、Ｈロウデコーダ１３８により、ワード線ＷＬＨを選択状態へ駆動し、この共有ビット線対ＣＢＬＰ０−ＣＢＬＰ（ｍ−１）上にライトドライバ群４２により伝達されたデータを、各メモリセルに格納する（ステップＳＰ２１）。
【０１８７】
この転送動作完了後、すなわちワード線ＷＬおよびＷＬＨが非選択状態へ駆動された後、メモリセルマット３０から直交２ポートメモリセルマット１３０へのデータ転送回数が、この演算処理後のデータのビット幅に等しいかの判定が行なわれる（ステップＳＰ２２）。この判定動作においては、ロウデコーダ４６による選択動作回数がカウントされてもよく、また、単にコントローラ（２１）により、この転送サイクル数がカウントされてもよい。
【０１８８】
転送回数が、演算処理後のデータのビット幅に到達していない場合には、ビットアドレスを更新し（ステップＳＰ２３）、再びステップＳＰ２１からの処理を繰返し実行する。このビットアドレスに従ってロウデコーダ４６が次の演算処理データビットに対応するワード線ＷＬを選択状態へ駆動し、またはＨロウデコーダ１３８が、その初期値から次のカウント値に対応するワード線ＷＬＨを選択状態へ駆動する。
【０１８９】
ステップＳＰ２２において、転送回数が、演算処理後のデータビット幅に等しいと判定されると、次いで直交２ポートメモリセルマット１３０から入出力回路１３６を介してデータの読出が行なわれる（ステップＳＰ２４）。この場合、Ｖロウデコーダ１３２により、ワード線ＷＬＶを選択し、センスアンプ・ライトドライバ群１３４のセンスアンプ群を活性化して、入出力回路１３６を介して内部データバス上に、演算処理後のデータを読出す。
【０１９０】
このＶロウデコーダ１３２によりワード線ＷＬＶの選択が行われて、データの読出が行なわれ、この直交２ポートメモリセルマット１３０におけるエントリの番号が最終値（ＭＡＸ）に到達したか否かの判定が行なわれる（ステップＳＰ２５）。またエントリ番号が最終値に到達していない場合には、エントリアドレスを更新し（ステップＳＰ２６）、再び、ステップＳＰ２４からの処理を実行し、ワード線ＷＬＶを順次選択状態へ駆動する。
【０１９１】
直交２ポートメモリセルマット１３０において、演算処理後のデータが格納されるエントリの最終値に到達したと判定されると、演算処理後のデータがすべて読出されたと判定され、転送動作が終了する。
【０１９２】
この図２５に示す回路構成においても、各初期アドレスは、先の図２２に示すレジスタを利用することにより、ビットアドレスおよびエントリアドレスを設定することができる。
【０１９３】
また、内部データバスは、グローバルデータバスであってもよく、また基本演算ブロック個々に設けられるシステムバスインターフェイス（Ｉ／Ｆ）に接続されるバスであってもよい（図２３および図２４参照）。
【０１９４】
また、このメモリセルマット３０からメモリセルマット１３０へのデータ転送時においても、メモリセルマット３０および１３０の間に各共有ビット線対ＣＢＬＰに双方向データ転送回路が設けられている場合には、この双方向データ転送回路のライトドライバを活性化することにより、ワード線ＷＬおよびＷＬＨを平衡して選択状態へ駆動してデータの転送を行うことができる。
【０１９５】
以上のように、この発明の実施の形態３に従えば、主演算回路のメモリセルマットに隣接して、直交２ポートメモリセルアレイを配置しており、必要最小限のビット幅の２ポートメモリセルを配置するだけでよく、面積の増大を抑制して、ビットシリアルかつエントリパラレルな演算を行なうメモリセルマットに対し、この主演算回路外部との間でのデータ入出力を効率的に行なうことができる。
【０１９６】
［実施の形態４］
図２９は、この発明の実施の形態４に従う半導体信号処理装置（演算機能モジュール）１の要部の構成を概略的に示す図である。この図２９においては、半導体信号処理装置（演算機能モジュール）１は、並列に設けられる主演算回路２０Ａ−２０Ｈを含む。これらの主演算回路２０Ａ−２０Ｈは、それぞれ、演算処理を行なうための演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈを含む。これらの演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈは、同一構成を有するため、図２９においては、演算アレイマットＡＭ♯Ａについてのみ、その構成要素に対し参照番号を付す。
【０１９７】
演算アレイマットＡＭ♯Ａは、それぞれが、行列状に配列されるメモリセルとビット線対とワード線とを含むメモリセルマット３０ｌおよび３０ｒと、メモリセルマット３０ｌおよび３０ｒそれぞれに対応して設けられるセンスアンプ／ライトドライバ帯１４１ｌおよび１４１ｒと、これらのセンスアンプ／ライトドライバ帯１４１ｌおよび１４１ｒの間に配置される演算処理ユニット群（ＡＬＵ群）３２を含む。メモリセルマット３０ｌおよび３０ｒのメモリセルは、シングルポートメモリセルであり、また、各エントリに対応してビット線対が配置される。
【０１９８】
演算処理ユニット群３２をメモリセルマット３０ｌおよび３０ｒの間に配置することによりビット線対の長さを短くして、ビット線負荷を軽減する。
【０１９９】
センスアンプ／ライトドライバ帯１４１ｌおよび１４１ｒは、それぞれ、メモリセルマット３０ｌおよび３０ｒのビット線対に対応して設けられるセンスアンプＳＡおよびライトドライバＷＤを含む。演算処理ユニット群３２においては、このセンスアンプ／ライトドライバ帯１４１ｌおよび１４１ｒと双方向にデータの転送を行なって演算処理を行なう演算処理ユニット（ＡＬＵ）がそれぞれ各エントリ（ビット線対、またはセンスアンプ／ライトドライバ）に対応して配置される。
【０２００】
演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈに共通に、内部データバスとして、グローバルデータバス１２が配置される。このグローバルデータバス１２は、演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈのエントリそれぞれに対応して配置されるバス線を含み、演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈのライトドライバの入力およびセンスアンプの出力にそれぞれ結合される。
【０２０１】
グローバルデータバス１２を、演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈの上層に配置することにより、グローバルデータバス１２を配設するために必要とされる平面レイアウト面積を、演算アレイマットの平面レイアウト面積で隠すことができ、演算モジュールのチップ占有面積を低減することができる。
【０２０２】
このグローバルデータバス１２は、直交メモリ８０に結合される。直交メモリ８０は、図１２に示す構成と同様の構成を備え、データ配列の直交変換（行／列の変換）を行なう。この直交メモリ８０が、システムバスＩ／Ｆ１４０を介してシステムバス５４に結合される。
【０２０３】
主演算回路２０Ａ−２０Ｈには、それぞれ固有のアドレスが割当てられており、対応のコントローラ（２１）が、与えられたアドレスに従って対応の演算アレイマットのメモリセルマットとグローバルデータバス１２との間でデータ転送を行なう制御を実行する。
【０２０４】
この直交メモリ８０と演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈとの間のデータ転送動作は、先の実施の形態３または４において説明したものと同様である。すなわち、演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈへ演算処理対象データを格納する場合には、まずシステムバスＩ／Ｆ１４０を介してデータが直交メモリ８０に順次格納される。この直交メモリ８０においてデータが格納されると、次いで直交メモリ８０が、グローバルデータバス１２上に、順次ビットシリアルかつワードパラレル（エントリパラレル）態様でデータを転送する。アドレス指定された主演算回路内のコントローラの制御の下に、選択演算アレイマットＡＭ♯（ＡＭ♯Ａ−ＡＭ♯Ｈのいずれか）においてメモリセルマット３０ｌおよび３０ｒに対するデータの格納が行なわれる。
【０２０５】
この主演算回路２０Ａ−２０Ｈを特定するアドレスを順次切換えることにより、主演算回路２０Ａ−２０Ｈに対し、演算処理対象データを格納することができる。
【０２０６】
この演算アレイマットＡＭ♯Ａ−ＡＭ♯Ｈからのシステムバス５４へのデータ転送時においては、主演算回路２０Ａ−２０Ｈに含まれるコントローラが、バスリクエストを生成して、図７に示す割込コントローラ（６１）またはＤＭＡコントローラ（６３）へ与える。このバスリクエスト情報とともに、主演算回路２０Ａ−２０Ｈのコントローラが自身が特定するアドレスを送出し、直交メモリ８０内の対内部転送制御回路が外部コントローラの制御のもとに起動され、主演算回路から直交メモリへのデータ転送が行われる。このデータの直交メモリへの転送後、直交メモリ８０の対外部転送制御回路がシステムバスＩ／Ｆ１４０を介して、外部のコントローラの制御の下に活性化され、データを、順次システムバスＩ／Ｆ１４０を介してシステムバス５４上に転送する。
【０２０７】
この転送制御時においては、システムバスＩ／Ｆ１４０に含まれる制御回路により、バスリクエストおよびバス転送ウェイトの制御が行なわれてもよい。また、ホストＣＰＵの制御のもとに主演算回路が指定され、この指定された主演算回路からのデータ転送がホストＣＰＵから制御件を手渡された基本演算ブロック内のコントローラの制御のもとに行われても良い。この場合、直交メモリ８０はシステムバスＩ／Ｆ内のコントローラにより対内部及び対外部転送制御回路が起動される。このとき、主演算回路を特定するアドレスは、図１に示す配置において、入出力回路１０またはシステムバスＩ／Ｆ１４０から、図１に示す制御バス１４を介して、各主演算回路に対応する基本演算ブロック内のコントローラ（２１）へ与えられる。
【０２０８】
直交メモリ８０と選択主演算回路との間のデータ転送動作は、先の実施の形態３の場合と同様である。
【０２０９】
以上のように、この発明の実施の形態４に従えば、複数の主演算回路（基本演算ブロック）に共通に、データ配列を変換するための直交メモリを配置しており、個々の基本演算ブロック内に直交変換用のメモリ回路を配置する必要がなく、半導体信号処理装置の占有面積を低減することができる。
【０２１０】
［実施の形態５］
図３０は、この発明の実施の形態５に従う半導体信号処理装置（演算機能モジュール）１の構成を概略的に示す図である。この図３０に示す半導体信号処理装置（演算機能モジュール）１の構成は、以下の点で、図２９に示す半導体信号処理装置とその構成が異なる。すなわち、グローバルデータバス１２が、バス幅を変換するスイッチマクロ１４５に結合され、このスイッチマクロ１４５がバス１５２を介して直交メモリ１５０に結合される。この直交メモリ１５０は、システムバスＩ／Ｆ１４０を介してシステムバス５４に結合される。
【０２１１】
この図３０に示す半導体信号処理装置１の他の構成は、図２９に示す半導体信号処理装置（演算機能モジュール）１の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０２１２】
直交メモリ１５０は、そのバス幅がｊビットであるバス１５２を介してスイッチマクロ１４５とデータの転送を行なう。この直交メモリ１５０の内部構成は、エントリ数が異なることを除いて、先の図１２に示す直交メモリ８０の構成と同じである。
【０２１３】
スイッチマクロ１４５により、バス幅を変換することにより、直交メモリ１５０の規模を低減することができる。
【０２１４】
図３１は、図３０に示すスイッチマクロ１４５の構成の一例を示す図である。この図３１においては、演算アレイマットＡＭ♯ｉにおけるメモリセルマット３０（３０ｒまたは３０ｌ）とセンスアンプ／ライトドライバ群１４１（１４１ｒまたは１４１ｌ）を示す。この演算アレイマットＡＭ♯ｉにおいて、メモリセルマット３０は、エントリＥＲＹ０−ＥＲＹ（ｍ−１）を含み、各エントリに対応して、グローバルデータバス１２のバス線ＧＢＳ［０］−ＧＢＳ［ｍ−１］が配設される。これらのグローバルデータバス１２のバス線ＧＢＳ［０：ｍ−１］は、それぞれ、センスアンプ／ライトドライバ群１４１のセンスアンプＳＡおよびライトドライバＷＤに結合される。
【０２１５】
直交メモリ１５０は、２ポートメモリセルが行列状に配列される２ポートメモリセルマット１５０ａと、データバス１５２との間でデータの転送を行なうインターフェイス（Ｉ／Ｆ）１５０ｂを含む。このインターフェイス１５０ｂは、センスアンプ、ライトドライバおよび入出力バッファを含む。
【０２１６】
２ポートメモリセルマット１５０ａは、エントリＥＮＴ０−ＥＮＴ（ｍ／２−１）に分割される。エントリＥＮＴ０−ＥＮＴ（ｍ／２−１）それぞれに対応して、データバス１５２のバス線ＴＢＳ［０］−ＴＢＳ［ｍ／２−１］が配設される。
【０２１７】
スイッチマクロ１４５は、グローバルデータバス１２のバス線ＧＢＳ［０］−ＧＢＳ［ｍ／２−１］とデータバス線ＴＢＳ［０］−ＴＢＳ［ｍ／２−１］の間でデータの転送を行なう接続回路１５５ａと、グローバルデータバス線ＧＢＳ［ｍ／２］−ＧＢＳ［ｍ−１］とデータバス線ＴＢＳ［０］−ＴＢＳ［ｍ／２−１］の間でデータの転送を行なう接続回路１５５ｂを含む。
【０２１８】
メモリセルマット３０へのデータロード時には以下の動作が行われる。まず、直交メモリ１５０のエントリＥＮＴ０−ＥＮＴ（ｍ／２−１）に順次、図示しないシステムバスからのデータが格納される。直交メモリ１５０においてデータ格納状況がフル（満杯）状態となると、インターフェイス（Ｉ／Ｆ）１５０ｂを介してデータの転送が行なわれる。この場合、スイッチマクロ１４５において、まず接続回路１５５ａを活性化し、データバス線ＴＢＳ［０：ｍ／２−１］を、グローバルデータバス線ＧＢＳ［０：ｍ／２−１］に接続する。この状態では、直交メモリ１５０に格納されたデータが、メモリセルマット３０のエントリＥＲＹ０−ＥＲＹ（ｍ／２−１）に転送されて、対応のメモリセルに格納される。接続回路１５５ｂは非活性状態であり、エントリＥＲＹ（ｍ／２）−ＥＲＹ（ｍ−１）に対するデータの書込は行なわれない。
【０２１９】
次いで、再び直交メモリ１５０に対し、次の演算処理データを転送して格納する。直交メモリ１５０においてエントリＥＮＴ０−ＥＮＴ（ｍ／２−１）にデータが格納されると、次いで、接続回路１５５ｂを活性状態、接続回路１５５ａを非活性状態として、グローバルデータ線ＧＢＳ［ｍ／２：ｍ−１］を、データバス線ＴＢＳ［０：ｍ／２−１］に結合する。これにより、直交メモリ１５０のデータが、メモリセルマット３０のエントリＥＲＹ（ｍ／２）−ＥＲＹ（ｍ−１）に転送されて格納される。
【０２２０】
メモリセルマット３０から直交メモリ１５０へのデータ転送時には、逆方向のデータ転送動作が行なわれ、接続回路１５５ａを活性化して、エントリＥＲＹ０−ＥＲＹ（ｍ／２−１のデータを、直交メモリ１５０に格納し、次いでシステムバスへ転送する。直交メモリ１５０からシステムバスへのデータ転送完了後、次いで、接続回路１５５ｂを活性化して、メモリセルマット３０のエントリＥＲＹ（ｍ／２）−ＥＲＹ（ｍ−１）のデータを直交メモリ１５０に格納する。
【０２２１】
このデータ転送時において、センスアンプ／ライトドライバ群１４１において、選択エントリに応じて、対応の活性状態の接続回路に対応して配置されるセンスアンプまたはライトドライバをブロック選択信号に従って、活性化する構成が用いられてもよい。
【０２２２】
また、メモリセルマット３０において中央部にロウデコーダを配置し、直交メモリとの間ではブロック分割動作を行って、活性状態の接続回路に対応するメモリセルマットブロックを活性化し、演算処理ユニットとの間でのデータ転送時には、メモリセルマットのブロック分割動作を停止して、メモリセルマット３０の全エントリのデータを選択する構成が利用されてもよい。
【０２２３】
この接続回路１５５ａおよび１５５ｂの活性／非活性の制御信号は、先の図８に示す直交変換回路に含まれる対内部転送制御回路（８６）の制御の下に転送要求に従って生成される。
【０２２４】
以上のように、この発明の実施の形態５に従えば、演算アレイマットに共通に配置されるグローバルデータバスと直交メモリの入出力ポートとの間に、バス幅を変換するスイッチマクロを設けており、直交メモリの規模を低減することができる。
【０２２５】
［実施の形態６］
図３２は、この発明の実施の形態６に従う直交メモリの格納データの配列の一例を示す図である。図３２において、直交メモリ１６０は、一例として、８個のエントリＥＮＴ０−ＥＮＴ７を含む。直交メモリ１６０は、先の図３１または図１２に示す直交メモリ８０に対応する。この直交メモリ１６０へは、システムバスＩ／Ｆからのデータ転送時、順次所定ビット幅のデータａ０、ａ１、…ａ７がシリアルに転送される。このとき、直交メモリ１６０において、最初のデータａ０をエントリＥＮＴ７に格納し、次いで、エントリＥＮＴ０からＥＮＴ６に、順次データａ１、…、ａ７を順次格納する。
【０２２６】
演算アレイマットへのデータ転送時においては、エントリＥＮＴ０−ＥＮＴ７から順次ビットシリアルかつエントリパラレルの態様でデータが転送され、演算アレイマットのインターフェイス部（センスアンプ／ライトドライバ群）を介して対応のメモリセルマットに格納される。
【０２２７】
したがって、演算アレイマットにおける演算データの格納位置（エントリアドレス）と、システムバスから転送されるデータの転送順序（ＣＰＵアドレス）が異なり、この外部演算データのアドレスを変換して、演算アレイマット内へ格納することができる。
【０２２８】
図３３は、この発明の実施の形態６におけるアドレスを発生する部分の構成の一例を示す図である。図３３において、アドレス発生部は、初期アドレスを設定する初期アドレス設定回路１６５と、アドレスの選択順序を指定するアドレスシーケンス設定回路１６６と、これらの初期アドレス設定回路１６５からの初期アドレスとアドレスシーケンス設定回路１６６からのアドレスシーケンス情報とに従ってアドレスＲＡＤを生成するアドレス発生回路１６７を含む。このアドレス発生回路１６７からのアドレスＲＡＤは、直交メモリ１６０の垂直方向ワード線ＷＬＶを選択するロウデコーダへ与えられる。
【０２２９】
初期アドレス設定回路１６５は、たとえば、レジスタ回路で構成され、最初のデータに格納するエントリを指定するアドレスが格納される。
【０２３０】
アドレスシーケンス設定回路１６６は、＋１加算、＋２加算、および終端部から中央部へのアドレス更新などのシーケンス等の情報を生成する。このアドレスシーケンス設定回路１６６は、マイクロプログラム命令に基づいて、順次、更新アドレスシーケンスを設定してもよい。
【０２３１】
アドレス発生回路１６７は、この初期アドレス設定回路１６５からの初期アドレスに、アドレスシーケンス設定回路１６６が指定する更新アドレスシーケンス情報に従ってアドレス値の加算または減算を行って、エントリアドレスＲＡＤを生成する。
【０２３２】
この図３３に示すアドレス発生部は、直交メモリ内部に設けられてもよい。また、これに代えて、データ転送を要求する基本演算ブロック内のコントローラから、アドレスが算出されて、その直交メモリへ与えられるように構成されてもよい。
【０２３３】
以上のように、直交メモリ内においてアドレスシーケンスを変更して、システムバスから転送されるデータと演算アレイマット内における格納データのマッピングを異ならせるように構成することにより、演算アレイマットおよび直交メモリを用いてデータシーケンス変更操作を容易に実現することができる。
【０２３４】
［変更例１］
図３４は、この発明の実施の形態６の変更例の直交メモリにおけるデータ格納状態の一例を示す図である。この図３４に示す直交メモリ１６０は、一例として８個のエントリＥＮＴ０−ＥＮＴ７を含む。エントリＥＮＴ０−ＥＮＴ７は、各々、８個のデータを格納することのできるビット幅を有し、エントリＥＮＴ０−ＥＮＴ７それぞれに対応して垂直方向ワード線ＷＬＶが配置され、エントリＥＮＴ０−ＥＮＴ７と直交する方向に、かくデータビットそれぞれに対応して水平方向ワード線ＷＬＨが配置される。
【０２３５】
システムバスからデータａ０、…、ａ７が順次転送されるとき、この直交メモリ１６０において、データ列ａ０−ａ７を、それぞれエントリＥＮＴ７からＥＮＴ０−ＥＮＴ６に順次格納する。このとき、各エントリＥＮＴ０−ＥＮＴ７においては、このデータ格納領域がエントリ延在方向に沿って順次ずらされる。
【０２３６】
したがって、この場合においても、システムバスから転送されるデータａ０−ａ７の演算アレイマットにおけるマッピングが変更される。この直交メモリ１６０において、転送データがすべて格納されると、すなわち、６４個のデータが格納されると、次いで、この直交メモリ１６０からは、水平方向ワード線ＷＬＨを順次選択してデータを演算アレイマットのメモリセルマットへ転送する。演算アレイマットにおいては、８エントリの各データビット位置に転送データを書込む。
【０２３７】
したがって、この図３４に示すデータのマッピングの場合、直交メモリ１６０におけるデータ格納状況と同様のメモリ格納状況が、演算アレイマットのメモリセルマットにおいて実現され、システムバスを転送されるデータのメモリセルマットへのマッピングを自由に変更することができる。
【０２３８】
この図３４に示す直交メモリ１６０へのデータの書込およびデータの演算アレイマットへの転送時のアドレスは、図３３に示すアドレス発生部の構成を利用することができ、この図３３に示すアドレス発生回路１６７において、ロウアドレスおよびコラムアドレスを発生する。この場合、コラムアドレスは、単にその活性化されるワードドライバ群が順次グループ単位で（データビット幅のワードドライバ単位で）活性化する構成が利用されてもよい。この構成の場合、コラムアドレスは発生する必要がない。
【０２３９】
また、水平方向ワード線ＷＬＨを、活性化する順序を変更することにより、このエントリＥＮＴ０−ＥＮＴ７に格納されるデータを演算アレイマットのメモリセルマットに格納する場合、さらにこの演算アレイマットのメモリセルマットにおけるデータの各エントリ内における可能順序を変更することができ、より柔軟に、マッピングを変更することができる。
【０２４０】
［変更例２］
図３５（Ａ）および（Ｂ）は、この発明の実施の形態６の第２の変更例に従う直交メモリのアレイ構成を概略的に示す図である。図３５（Ａ）において、垂直方向ワード線ＷＬＶは、各行（エントリ）において、複数の分割ワード線ＤＷＬＶに分割される。図３５（Ａ）において、各行に（ｓ＋１）本の分割ワード線が配置され、分割ワード線ＤＷＬＶ００−ＤＷＬＶｓ０、ＤＷＬＶ０１−ＤＷＬＶｓ１、…、およびＤＷＬＶ０ｔ−ＤＷＬＶｓｔを代表的に示す。
【０２４１】
これらの分割ワード線は、それぞれ、Ｖデコーダ１６８からの選択信号に従って選択状態へ駆動される。このＶデコーダ１６８は、各行（エントリ）において、１つの分割ワード線を選択状態へ駆動する。分割ワード線ＤＷＬＶ００−ＤＷＬＶｓｔ各々に、複数の２ポートメモリセルが接続されてもよく、また１ビットの２ポートメモリセルが接続されてもよい。
【０２４２】
図３５（Ｂ）において、この直交メモリ１６０においても、同様、垂直方向に、ワード線ＤＷＬＨが複数の分割ワード線にＤＷＬＨに分割される。図３５（Ｂ）においては、分割ワード線ＤＷＬＨ００−ＤＷＬＨ０ｕ、…ＤＷＬＨｖ０−ＤＷＬＨｖｕを代表的に示す。これらの分割ワード線ＤＷＬＨ００−ＤＷＬＨｖｕは、Ｈデコーダ１６９からの選択信号に従って選択状態へ駆動される。このＨデコーダ１６９は、各列において（ビット線対ＢＬＨ対の延在方向）において、１つの分割ワード線ＤＷＬＨを選択状態へ駆動する。１本の分割ワード線ＤＷＬＨに対して１ビットの２ポートメモリセルが接続されてもよく、また、複数ビットの２ポートメモリセルが接続されても良い。
【０２４３】
図３６は、この直交メモリ１６０におけるデータの格納状況の一例を示す図である。図３６においては、この直交メモリ１６０が、垂直方向に、８個のエントリＥＮＴ０−ＥＮＴ７に分割される場合が一例として示される。データ列ａ０−ａ７が、並列に、この直交メモリ１６０へ与えられる。エントリＥＮＴ０−ＥＮＴ７それぞれにおいては、分割ワード線ＤＷＬＶが配設されており、この分割ワード線ＤＷＬＶを、図３５（Ａ）に示すＶデコーダ１６８より、選択することにより、エントリＥＮＴ７に、データａ０が格納され、エントリＥＮＴ０−ＥＮＴ６のそれぞれ異なるビットアドレス位置に、データａ１−ａ７が格納される。
【０２４４】
この主演算回路（演算アレイマット）上のデータ転送時、図３５（Ｂ）に示すＨデコーダ１６９により、分割ワード線ＤＷＬＨを選択状態へ駆動することにより、データ列ａ１−ａ７およびａ０を、ビットシリアルに順次読出すことができる。したがってこの直交メモリ１６０のメモリアレイにおいてワード線を分割することにより、この直交メモリ１６０において、データ配列を容易に変更することができる。
【０２４５】
Ｖデコーダ１６８およびＨデコーダ１６９へは、それぞれエントリを示すアドレスおよびエントリにおける選択ビット位置を示す情報を与えることにより、分割ワード線個々に選択状態へ駆動することができる。
【０２４６】
この分割ワード線ＤＷＬＨおよびＤＷＬＶは、それぞれ、個々の２ポートメモリセルに接続されてもよく、複数の２ポートメモリセルにそれぞれ接続されてもよい。
【０２４７】
以上のように、直交メモリにおいて、ワード線を分割構造としており、容易にデータ配列を変換することができる。なお、この直交メモリ１６０において、主演算回路（または演算アレイマット）から転送されるデータ配列を変更して、システムバスへ転送する場合には、図３６に示すデータの流れと逆の方向にデータが転送される。
【０２４８】
また、アドレス発生回路としては、単に、アドレスシーケンス情報に基づいて、各エントリをエントリにおける選択ビット位置情報をコントローラ（２１）により生成する構成が利用されればよい。
【０２４９】
以上のように、この発明の実施の形態６に従えば、直交メモリにおいてデータ順序を変更しており、容易に外部データのアドレスマッピングを変更して主演算回路のメモリセルマットに格納することができる。
【０２５０】
［実施の形態７］
図３７（Ａ）−（Ｃ）は、この発明の実施の形態７に従うデータ転送操作の一例を示す図である。この実施の形態７においては、主演算回路２０のメモリセルマット３０のエントリＥＲＹｉのデータを、エントリＥＲＹｋにコピーする。このメモリセルマット３０に対してはロウデコーダ４６およびセンスアンプ／ライトドライバ（ＳＡ／ＷＤ）群１４１が設けられる。ロウデコーダ４６は、エントリと直交する方向に配列されるワード線を選択する。したがってこの主演算回路２０内において、エントリＥＲＹｉのデータを、エントリＥＲＹｋに転送するいわゆるコピー処理を行なう場合に、直交メモリ１６０を利用する。
【０２５１】
直交メモリ１６０は、これまでの実施の形態と同様、２ポートメモリセルが行列状に配列されるメモリセルマット１７０と、メモリセルマット１７０のエントリＥＮＴに対して配置されるワード線（ＷＬＶ）を選択するＶロウデコーダ１７１と、このエントリと直交する方向に配列されるワード線（ＷＬＨ）を選択するＨロウデコーダ１７３と、エントリ単位でデータの書込／読出を内部的に行なうＶＳＡ／ＷＤ（センスアンプ／ライトドライバ）群１７２と、主演算回路２０との間でデータの転送を行なうインターフェイスを構成するＨＳＡ／ＷＤ（センスアンプ／ライトドライバ）群１７４を含む。
【０２５２】
この直交メモリ１６０においては、データの入出力を行なう入出力バッファ回路は特に示していない。
【０２５３】
まず、転送動作時において、図３７（Ａ）に示すように、主演算回路２０においてコピー対象のエントリＥＲＹｉのデータを転送する必要があるため、ロウデコーダ１４６を用いて、ワード線（図示せず）を順次選択し、内部データバスを介して直交メモリ１６０に転送する。直交メモリ１６０においては、Ｈロウデコーダ１７３が、順次ワード線を選択し、ＨＳＡ／ＷＤ群１７４のライトドライバを介して与えられたデータを各ビット単位でエントリＥＮＴｉに格納する。このビットシリアルなデータ転送動作が、エントリＥＲＹｉのコピーデータ（エントリ内の全データまたは一部のデータ）が転送されるまで繰返し実行される。
【０２５４】
直交メモリ１６０にコピー元のデータがすべて転送された後、次いで、図３７（Ｂ）に示すように、直交メモリ１６０において、Ｖロウデコーダ１７１により、エントリＥＮＴｉに対応するワード線を選択状態へ駆動し、ＶＳＡ／ＷＤ群１７２のセンスアンプおよびライトドライバを順次活性化する。次いで、コピー先のエントリＥＮＴｋに対応して配置されるワード線をＶロウデコーダ１７１により選択する。これにより、ＶＳＡ／ＷＤ群１７２により増幅されたエントリＥＮＴｉのデータが、エントリＥＮＴｋに格納される。
【０２５５】
この直交メモリ１６０におけるデータ転送動作が完了すると、次いで、図３７（Ｃ）に示すように、Ｈロウデコーダ１７３により、ワード線（ＷＬＨ）を順次選択状態へ駆動し、次いでＨＳＡ／ＷＤ群１７４のセンスアンプ（ＳＡ）を活性化し、エントリＥＮＴｋのデータをビットシリアルに主演算回路２０へ転送し、この主演算回路２０のメモリセルマット３０へ、転送データをＳＡ／ＷＤ群１４１のライトドライバ（ＷＤ）を活性化して格納する。この場合、メモリセルマット３０においては、ロウデコーダ４６により、ワード線が順次選択状態へ駆動され、直交メモリ１６０と主演算回路２０との間では、ビットシリアルにデータの転送が行なわれる。
【０２５６】
この直交メモリ１６０のエントリＥＮＴｋのデータが主演算回路２０のメモリセルマット３０のエントリＥＲＹｋに格納されると、主演算回路２０においては、メモリセルマット３０のエントリＥＲＹｉのデータが、エントリＥＲＹｋに転送されており、コピー操作が完了する。
【０２５７】
この図３７（Ａ）から図３７（Ｃ）に示すデータ転送動作時において、直交メモリ１６０と主演算回路２０の間のデータ転送は内部データバスを介して行なわれ、従って、内部データバスのビット幅に応じたデータが転送される。しかしながら、このエントリＥＲＹｉおよびＥＲＹｋと異なるエントリのデータが転送されても、直交メモリ１６０から返送されるデータは、エントリＥＲＹｋを除けば、元のデータと同じであり、単にデータの再書込が行なわれるだけであり、エントリの内容は変更されない（エントリＥＲＹｋを除いて）。したがって、内部データバスを用いて、エントリパラレルかつビットシリアルな態様でデータ転送が行なわれても、直交メモリ１６０内において、コピー元とコピー先のエントリ間でのデータ転送を行なうことにより、確実に、この主演算回路２０における他のエントリの記憶内容に影響を及ぼすことなく、エントリＥＲＹｉのデータを、エントリＥＲＹｋにコピーすることができる。
【０２５８】
この主演算回路２０から直交メモリ１６０へのデータ転送時、エントリＥＲＹｉを含むブロックのセンスアンプ／ライトドライバ群１４１のセンスアンプを活性化し、ＨＳＡ／ＷＤ群１７４においても同様のライトドライバと同様に、ブロック分割態様で活性化し、また直交メモリ１６０から主演算回路２０への転送時には、エントリＥＮＴｋおよびＥＲＹｋをそれぞれ含むブロックのＨＳＡ／ＷＤ群１７４およびＳＡ／ＷＤ群１４１においてセンスアンプおよびライトドライバを活性化してもよい。コピー動作時における消費電流を低減することができる。
【０２５９】
図３８は、図３７（Ａ）−（Ｃ）に示されるコピー操作を制御する部分の構成を概略的に示す図である。図３８においては、コピー動作制御部として、コピー元のエントリアドレスを格納するソースアドレスレジスタ１８０と、コピー先のエントリアドレスを格納するデスティネーションアドレスレジスタ１８１と、コントローラのレジスタ１８０および１８１に格納されたアドレスを用いて命令メモリ２３からのコピー命令に応じてアドレスＡＤおよび制御信号ＣＴＬを生成するコントローラ２１が設けられる。
【０２６０】
基本演算ブロックＦＢ内のコントローラ２１を用いて、主演算回路（２０）のセンスアンプおよびライトドライバの制御を制御信号ＣＴＬにより行ない、また、アドレス信号ＡＤに従って、直交メモリ１６０のＶロウデコーダ（１７１）のエントリ選択アドレスを設定する。このコントローラ２１からの制御信号ＣＴＬにより、直交メモリ１６０において、また、リード／ライト動作が行なわれる。このコントローラ２１は、命令メモリ２３内に格納されるマイクロプログラム命令に従ってコピー操作の制御を行なう。このとき、コントローラ２１は、コピー元およびコピー先のエントリアドレスを算出してソースアドレスレジスタ１８０およびデスティネーションアドレスレジスタ１８１にそれぞれ、ソースエントリアドレスおよびデスティネーションエントリアドレス格納する。
【０２６１】
このコピー動作は、エントリＥＲＹの一部のデータ（たとえば演算処理結果データのみ）について行なわれるときには、ソースアドレスレジスタ１８０には、エントリアドレスおよびこのエントリ内の転送データ格納領域指定アドレスが格納される。この一部データ領域を指定するアドレスに基づいて、主演算回路２０のロウデコーダ４６のワード線の選択範囲が設定される。
【０２６２】
デスティネーションアドレスレジスタ１８１においても、同様、このエントリアドレスおよびコピーデータ格納領域指定アドレスが格納されてもよい。
【０２６３】
以上のように、この発明の実施の形態７に従えば、主演算回路２０のメモリセルマットとデータを、直交メモリを用いて転送することにより、主演算回路のメモリセルマットの任意のデータのコピー操作を内部で実行することができる。
【０２６４】
［実施の形態８］
図３９は、この発明の実施の形態８に従う直交メモリの構成を概略的に示す図である。図３９において、直交メモリ２００は、互いに独立に動作する直交２ポートメモリ２０２ａおよび２０２ｂと、この直交メモリ２００とシステムバスＩ／Ｆ２２０との間でのデータ転送を制御する対外部転送制御回路２０４と、直交２ポートメモリ２０２ａおよび２０２ｂと内部データバス２１０の間でのデータ転送を制御する対内部転送制御回路２０６を含む。内部データバス２１０は、直交２ポートメモリ２０２ａに結合されるサブデータバス２１０ａと、直交２ポートメモリ２０２ｂに接続されるサブデータバス２１０ｂを含む。
【０２６５】
直交２ポートメモリ２０２ａおよび２０２ｂは共通に、内部バス２１５を介してシステムバスＩ／Ｆ２２０に結合されて、システムバス５４との間でのデータ転送を行なう。
【０２６６】
直交２ポートメモリ２０２ａおよび２０２ｂは、各々、先の図１２に示す直交メモリ８０と同様の構成を備える。すなわち、直交２ポートメモリ２０２ａおよび２０２ｂは、各々、システムバスＩ／Ｆとの間でデータ転送を行なうポート（Ｖポート）と、サブデータバス２１０ａおよび２１０ｂそれぞれを介して基本演算ブロック（主演算回路）とデータの転送を行なうポート（Ｈポート）とを含む。これらの直交２ポートメモリ２０２ａおよび２０２ｂを、対外部データ制御回路２０４および対内部データ制御回路２０６は、インタリーブ態様で動作させる。
【０２６７】
図４０および図４１は、この図３９に示す直交メモリ２００のデータの流れを模式的に示す図である。以下、図４０および図４１を参照して、この図３９に示す直交メモリ２００のデータ転送動作について説明する。
【０２６８】
直交２ポートメモリ２０２ａに、システムバスＩ／Ｆ２２０を介してデータが格納される。この直交２ポートメモリ２０２ａがフル状態となると、次いで、直交２ポートメモリ２０２ｂのＶポートが活性化され、内部データバス２１５を介してシステムバスＩ／Ｆ２２０からのデータが順次格納される。この直交２ポートメモリ２０２ｂへのデータ書込と並行して、直交２ポートメモリ２０２ａのＨポート（センスアンプおよび出力回路）が活性化され、サブデータバス２１０ａを介して、主演算回路２０のメモリセルマット３０へデータが順次転送される。この主演算回路２０においては、ワードドライバ群４２におけるサブデータバス２１０ａに対応するワードドライバ（ＷＤ）サブグループ４２ａが活性化され、一方、ワードドライバサブグループ４２ｂのワードドライバＷＤは非活性状態に維持される。これにより、サブデータバス２１０ａに対応するエントリに対してのみ、ワードドライバ（ＷＤ）を介して直交２ポートメモリ２０２ａからのビットシリアルデータが順次格納される。
【０２６９】
次いで、図４１に示すように、直交２ポートメモリ２０２ｂのデータ格納状態がフル状態となり、また直交２ポートメモリ２０２ａのデータ転送動作が完了すると、直交２ポートメモリ２０２ａのＶポートが活性化され、システムバスＩ／Ｆ２２０から内部データバス２１５を介して転送されるデータが順次格納される。一方、直交２ポートメモリ２０２ｂは、そのＨポートが活性化され、サブデータバス２１０ｂを介して、データが主演算回路に対して転送される。主演算回路２０においては、この内部サブデータバス２１０ｂに対応するワードドライバサブグループ４２ｂのワードドライバＷＤが活性化され、転送データを増幅して、対応のエントリに書込む。一方、サブデータバス２１０ａに対応するワードドライバサブグループ４２ａのワードドライバＷＤが非活性状態にあり、メモリセルマット３０においてワード線が、エントリに共通に選択状態へ駆動される場合においても、確実に転送データの既に転送されたデータに悪影響を及ぼすことなく格納することができる。
【０２７０】
以降、必要なデータを転送するまで、この直交２ポートメモリ２０２ａおよび２０２ｂのデータ入力およびデータ転送を交互に繰返して実行する。
【０２７１】
直交メモリを用いて演算アレイマット（主演算回路）へデータを転送する場合、ワードシリアルかつビットパラレルデータをビットシリアルかつワードパラレルデータに変換して転送する必要があり、システムバスからのデータが直交メモリに入力され、転送データがすべて直交メモリに格納された後に、演算アレイマット（主演算回路）へ転送する。上述のインタリーブ転送シーケンスの場合、直交メモリから演算アレイマット（または主演算回路）のメモリセルマット３０へのデータ転送途中においても、別の直交２ポートメモリを用いてシステムバスからのデータを入力することができ、画像データなどの大量のデータが連続してシステムバスから与えられる場合においても、データ転送レートを低下させることなくデータ転送を行なうことができ、並列演算処理機能の特徴をデータ転送時間の増大により損なうのを防止することができる。
【０２７２】
主演算回路または演算アレイマットから直交メモリ２００へのデータ転送時には、メモリセルマット３０の全エントリから並列に、直交２ポートメモリ２０２ａおよび２０２ｂのＨポートを介してデータが格納されて、その後に直交メモリ２０２ａおよび２０２をインタリーブ態様でデータをシステムバスに転送してもよい。これに代えて、図４０および図４１に示すデータ転送方向と逆の方向にデータ転送が行なわれてもよい（主演算回路のメモリセルマットのセンスアンプ群をサブデータバス２１０ａおよび２２１０ｂに対応するグループ単位で活性化する）。
【０２７３】
この直交メモリ２００の直交２ポートメモリ２０２ａおよび２０２ｂは、互いに独立に動作することが要求されるだけであり、バンク構成が用いられてもよく、また、直交２ポートメモリ２０２ａおよび２０２ｂをブロック分割駆動する構成が用いられても良い（ブロック単位でＨポートおよびＶポートをインターリーブ態様で活性化する。
【０２７４】
また、ワードドライバＷＤのエントリグループ単位（サブデータバス単位）の活性／非活性の制御は、主演算回路に含まれるコントローラ（２１）により、実行される。この場合、図３９に示す直交メモリ２００からの対内部転送制御回路２０６からの内部サブデータバス２１０ａおよび２１０ｂのいずれを利用するかの情報が、コントローラ（２１）に与えられてその転送サブデータバス指示情報に基づいて、ワードドライバが選択的に活性化されればよい。
【０２７５】
またこれに代えて、メモリセルマット３０への演算処理データの転送時時には、このサブデータバス２１０ａおよび２１０ｂの利用順序が予め定められており、その順序に従って、ワードドライバＷＤのサブグループ単位での選択活性が行なわれてもよい。
【０２７６】
以上のように、この発明の実施の形態８に従えば、直交メモリを、２つの互いに独立に動作する直交２ポートメモリで構成し、これらをインタリーブ態様でデータの入力およびデータの転送を行なっており、システムバスから途切れることなく連続的にデータを転送することができ、基本演算ブロックに対するデータ転送レートを高く保つことができ、演算時間を短縮することができる。
【０２７７】
［実施の形態９］
図４２は、この発明の実施の形態９に従う直交メモリにおいて用いられる直交メモリセルの構成を説明する図である。この図４２に示す直交メモリセルは、図１１に示す直交２ポートメモリセルの構成に加えて、さらに、記憶データの一致を検出する構成が設けられる。すなわち、この直交メモリセルのデータ検索部は、接地ノードとマッチ線ＭＬの間に直列に接続されるＮチャネルＭＯＳトランジスタＮＭ１およびＮＭ２と、接地ノードとマッチ線ＭＬの間に直列に接続されるＮチャネルＭＯＳトランジスタＮＭ３およびＮＭ４を含む。ＭＯＳトランジスタＮＭ１およびＮＭ３は、それぞれストレージノードＳＮ２およびＳＮ１にそのゲートが接続され、ＭＯＳトランジスタＮＭ２およびＮＭ４は、それぞれのゲートが、検索データを伝達するサーチ線ＳＬおよび／ＳＬに接続される。
【０２７８】
この図４２に示す直交メモリセルの他の構成は、図１１に示す直交メモリセルの構成を同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０２７９】
この図４２に示す直交メモリセルは、内容参照メモリセル（ＣＡＭセル）であり、ストレージノードＳＮ１およびＳＮ２に格納されるデータとサーチ線ＳＬおよび／ＳＬ上に表われる検索データとが一致する場合には、ＭＯＳトランジスタＮＭ１およびＮＭ２の一方がオフ状態であり、またＭＯＳトランジスタＮＭ３およびＮＭ４においても一方がオフ状態である。したがってマッチ線ＭＬはプリチャージ状態（たとえばＨレベル）に維持される。一方、サーチ線ＳＬおよび／ＳＬ上に伝達される検索データと直交メモリセルのストレージノードＳＮ１およびＳＮ２の格納データの論理が異なる場合、ＭＯＳトランジスタＮＭ１およびＮＭ２がともにオン状態となるか、または、ＭＯＳトランジスタＮＭ３およびＮＭ４がともにオン状態となる。したがってこの場合には、マッチ線ＭＬは、接地電圧レベルに放電される。このマッチ線ＭＬの電圧レベルを外部で検出することにより、検索データと直交メモリセル内のデータ記憶データの一致／不一致を検出することができる。このマッチ線ＭＬは、垂直方向ワード線ＷＬＶと平行に配列されており、したがって、直交メモリの１エントリ（垂直ワード線ＷＬＶが選択するメモリセル）の格納ビットが検索データビットとすべて一致する場合には、マッチ線ＭＬがプリチャージ電圧レベルのＨレベルに維持される。
【０２８０】
この直交メモリセルは、また、２ポートメモリセル構造であり、データ配列を図１１に示す直交メモリセルと同様に変換することができる。
【０２８１】
したがって、この図４２に示す直交メモリセルを利用する場合、直交メモリにデータ配列変換機能に加えて、ＣＡＭ（内容参照メモリ）としての機能を持たせることができ、データ検索機能を実現することができる。
【０２８２】
図４３は、この発明の実施の形態９に従う直交メモリの構成を概略的に示す図である。図４３において、直交メモリ２２５は、ＣＡＭセル（直交メモリセル）ＣＭＣが行列状に配列されるＣＡＭメモリセルマット２３０を含む。Ｘ方向のＣＡＭセルＣＭＣに対応して配置されるワード線ＷＬＨ、ビット線対ＢＬＶＰおよびサーチ線対ＳＬＰと、Ｙ方向に整列するＣＭセルＣＭＣに対応して配置されるビット線対ＢＬＨＰ、ワード線ＷＬＶおよびマッチ線ＭＬが、このＣＡＭセルマット２３０内に設けられる。
【０２８３】
直交メモリ２２０は、さらに、図１２に示す直交メモリと同様、Ｖ方向ワードアドレスＡＤＶに従ってワード線ＷＬＶを選択するロウデコーダ９２ｖと、Ｈ方向ワードアドレスＡＤＨに従ってワード線ＷＬＨを選択するロウデコーダ９２ｈと、ビット線対ＢＬＶＰ上に読出されたデータを増幅して入出力回路２３４へ伝達するセンスアンプ群９４ｖと、入出力回路２３４からの書込データに従ってビット線対ＢＬＶＰをドライブするライトドライバ群９６ｖと、入出力回路２３４から与えられる検索データＳＤＴに従ってサーチ線対ＳＬＰを駆動するサーチ線ドライバ群２３２と、ビット線対ＢＬＰ上のデータを増幅して入出力回路２３８へ伝達するセンスアンプ群９４ｈと、Ｈ方向データＤＴＨにしたがって入出力回路２３８から与えられたデータに従ってビット線対ＢＬＨＰを駆動するライトドライバ群９６ｈと、マッチ線ＭＬ上の信号を増幅するマッチ線アンプ２３６を含む。
【０２８４】
入出力回路２３４へは、システムバスとの間での転送データＤＴＶおよび検索データＳＤＴが与えられる。これらのデータＤＴＶおよびＳＤＴは、別々の経路から与えられてもよく、共通の内部データバスを介して与えられてもよい。図４３においては、これらのデータＤＴＶおよびＳＤＴが、別々の経路を介して与えられるように示す。
【０２８５】
入出力回路２３８は、主演算回路（演算アレイマット）との間の転送データＤＴＨに加えて、マッチ線アンプ２３６からのマッチ線信号に基づいて一致情報ＭＩを生成する。この一致情報ＭＩは、基本演算ブロック内に主演算回路に含まれるコントローラへ与えられてもよく、また、この直交メモリ２２５から外部のシステムバスを介して伝達されてもよい。
【０２８６】
図４４は、この図４３に示す直交メモリ２２５の検索時の動作を示す信号波形図である。データＤＴＨおよびＤＴＶの読出時の動作は、先の図１２に示す直交メモリと同じであり、通常のＳＲＭと同様の読出動作が、Ｈ方向およびＶ方向データについてそれぞれ行なわれる。
【０２８７】
図４４におていは、検索データＳＤＴとして、サーチ線ＳＬにＨレベルデータが伝達される場合の動作波形が一例として示される。
【０２８８】
検索データＳＤＴが入出力回路２３４を介してサーチ線ドライバ群２３２へ与えられると、このサーチ線ドライバ群のサーチ線ドライバが、対応のサーチ線対ＳＬＰをこの検索データに従って駆動する。図４２に示すサーチ線ＳＬがＨレベルであり、ＣＡＭセル（直交メモリセル）の記憶データと不一致のとき（ＭＩＳＳのとき）、ストレージノードＳＮ２がＨレベルであり、ストレージノードＳＮ１がＬレベルである。したがって、図４２に示すＣＡＭセル（直交メモリセル）においてＭＯＳトランジスタＮＭ１およびＮＭ２がともにオン状態となり、マッチ線ＭＬが接地電圧レベルへ駆動される。このマッチ線ＭＬ上の情報は、マッチ線アンプ２６０で増幅され、入出力回路２３８へ伝達され、全マッチ線ＭＬの電圧レベルに応じて、マッチ情報（一致／不一致情報）ＭＩが、不一致を示すＭＩＳＳを示す状態に設定される。
【０２８９】
一方、サーチデータＳＤＴが、このマッチ線ＭＬに接続されるＣＡＭセルＣＭＣの記憶データと一致している場合、図４２に示すＣＡＭセル（直交メモリセル）において、サーチ線ＳＬがＨレベルであり、かつサーチ線／ＳＬがＬレベルである。一方、ストレージノードＳＮ１がＨレベル、ストレージノードＳＮ２がＬレベルである。したがって、ＭＯＳトランジスタＮＭ１およびＮＭ４がともにオフ状態となり、マッチ線ＭＬの放電経路は存在しない。このマッチ線ＭＬに接続されるＣＡＭセルにおいて、全てマッチ状態の場合、このマッチ線ＭＬの放電経路は存在せず、マッチ線ＭＬは、検索データとの一致時（ＨＩＴ時）Ｈレベルに維持される。応じて、マッチ線アンプ２３６からの情報に基づいて、入出力回路２３８からのマッチ情報ＭＩは、一致を示す状態ＨＩＴに設定される。
【０２９０】
したがって、直交メモリにおいて、直交メモリセルとして、ＣＡＭセルを利用することにより、基本演算ブロックそれぞれにデータ検索機能を持たせることができる（直交メモリ２２５が、各基本演算ブロックに対して設けられるとき）。したがって、この場合、基本演算ブロックにおいて、直交メモリ２２５にサーチデータＳＤＴと一致するデータが存在するときのみ処理を実行するまたは処理を実行しないなどの機能を実現することができ、また、たとえば直交メモリ２２５に演算結果データが格納される場合、この演算結果データにおいて検索データＳＤＴと一致するデータが存在する場合にのみ、データを外部へ転送する、または別の演算処理を実行するなどの機能を実現することができる。
【０２９１】
また、一致情報において、一致マッチ線のアドレス情報を合わせて検出することにより、直交メモリをＣＡＭとして利用することができ、検索データに対応するエントリアドレスを出力して、外部メモリから一致アドレスのデータを読出などの処理を実現することができる。
【０２９２】
以上のように、この発明の実施の形態９に従えば、データ列変換用の直交メモリにおいて、ツーポートＣＡＭセルを用いており、半導体信号処理装置において、データ検索機能を持たせることができる。
【０２９３】
この直交メモリ２２５は、基本演算ブロックそれぞれに対して設けられてもよく、また、複数の基本演算ブロックに共通に設けられてもよい。
【産業上の利用可能性】
【０２９４】
この発明に従う半導体信号処理装置は、大量のデータを処理する処理システムに適用することができ、たとえば画像データまたは音声データなどを高速で処理する用途に適用することができる。
【図面の簡単な説明】
【０２９５】
【図１】この発明に従う半導体信号処理装置を含む処理システムの構成の一例を概略的に示す図である。
【図２】図１に示す主演算回路の演算操作を模式的に示す図である。
【図３】図２に示すメモリセルマットに含まれるメモリセルの構成の一例を示す図である。
【図４】図２に示す主演算回路の具体的演算操作を例示的に示す図である。
【図５】図１に示す主演算回路の具体的構成を示す図である。
【図６】主演算回路におけるデータセット時のデータの流れを模式的に示す図である。
【図７】この発明の実施の形態１に従う半導体信号処理装置を含む処理システムの構成を概略的に示す図である。
【図８】図７に示す直交変換回路の構成を概略的に示す図である。
【図９】図８に示す直交変換回路の動作を示すフロー図である。
【図１０】図８に示す直交変換回路を用いた際の外部と主演算回路内メモリセルマットとの間のデータの流れを模式的に示す図である。
【図１１】図８に示す直交メモリのメモリセルの構成の一例を示す図である。
【図１２】図８に示す直交変換回路の具体的構成を示す図である。
【図１３】図１２に示す直交メモリのデータの流れを模式的に示す図である。
【図１４】図１２に示す直交メモリと主演算回路内メモリセルマットとの間のデータ転送動作を示す信号波形図である。
【図１５】図１４に示す信号波形図の直交メモリのデータの流れを模式的に示す図である。
【図１６】図１２に示す直交メモリのシステムバスとの間のデータ転送動作を示す信号波形図である。
【図１７】図１６に示す信号波形図の直交メモリのデータの流れを模式的に示す図である。
【図１８】この発明の実施の形態２に従う主演算回路の構成を概略的に示す図である。
【図１９】図１８に示す主演算回路のデータセット時のデータの流れを模式的に示す図である。
【図２０】図１８に示す主演算回路の演算操作時のデータの流れを模式的に示す図である。
【図２１】図１８に示す主演算回路のデータ出力時のデータの流れを模式的に示す図である。
【図２２】図１８に示す主演算回路のメモリセルマットに対するアドレスの発生する部分の構成の一例を概略的に示す図である。
【図２３】図２１に示す主演算回路を利用する場合のシステム構成の一例を示す図である。
【図２４】図１８に示す主演算回路を用いる際のシステム構成の他の例を概略的に示す図である。
【図２５】この発明の実施の形態３に従う主演算回路の構成を概略的に示す図である。
【図２６】図２５に示す主演算回路の直交２ポートメモリセルマットへのデータセット時の動作を示すフロー図である。
【図２７】図２５に示す主演算回路のセンスアンプおよびライトドライバとビット線対の対応を概略的に示す図である。
【図２８】図２５に示す主演算回路の演算結果データ出力時の動作を示すフロー図である。
【図２９】この発明の実施の形態４に従う半導体信号処理装置の構成を概略的に示す図である。
【図３０】この発明の実施の形態５に従う半導体信号処理装置の構成を概略的に示す図である。
【図３１】図３０に示すスイッチマクロの構成の一例を概略的に示す図である。
【図３２】この発明の実施の形態６に従う直交メモリのデータ格納状況を概略的に示す図である。
【図３３】図３２に示す直交メモリへのアドレス発生部の構成を概略的に示す図である。
【図３４】図３２に示す直交メモリのデータ格納時の他の格納状況を概略的に示す図である。
【図３５】（Ａ）および（Ｂ）は、この発明の実施の形態５に従う直交メモリの内部の構成を概略的に示す図である。
【図３６】図３５（Ａ）および（Ｂ）に示す直交メモリのデータの流れを模式的に示す図である。
【図３７】（Ａ）−（Ｃ）は、この発明の実施の形態７に従う半導体信号処理装置のデータ転送を模式的に示す図である。
【図３８】図３７（Ａ）−（Ｃ）におけるデータ転送を行なう際のアドレス発生部の構成を概略的に示す図である。
【図３９】この発明の実施の形態８に従う半導体信号処理装置の構成を概略的に示す図である。
【図４０】図３９に示す直交メモリのデータ転送動作を示す図である。
【図４１】図３９に示すシステムの直交メモリと主演算回路（演算アレイマット）の間のデータ転送を模式的に示す図である。
【図４２】この発明の実施の形態９に従う直交メモリセルの構成を示す図である。
【図４３】この発明の実施の形態９に従う直交メモリの全体の構成を概略的に示す図である。
【図４４】図４３に示す直交メモリのデータ検索時の動作を示す信号波形図である。
【符号の説明】
【０２９６】
１  半導体信号処理装置、１０  入出力回路、２０  主演算回路、２１  コントローラ、５  システムバス、１２  グローバルデータバス、ＦＢ１−ＦＢｎ  基本演算ブロック、ＥＲＹ  エントリ、３２  演算処理ユニット群、３４  演算処理ユニット、４０  センスアンプ群、４２  ライトドライバ群、４６  ロウデコーダ、７０  システムバスＩ／Ｆ、７２  直交変換回路、７４  切換回路、５４  システムバス、８０  直交メモリ、８４  メモリセルマット／直交変換回路Ｉ／Ｆ、８２  システムバス／直交変換回路Ｉ／Ｆ、ＰＱ１，ＰＱ２  ＰチャネルＭＯＳトランジスタ、ＮＱＨ１，ＮＱＨ２，ＮＱＶ１，ＮＱＶ２，ＮＱ１，ＮＱ２  ＮチャネルＭＯＳトランジスタ、９０  メモリセルマット、９２ｖ，９２ｈ  ロウデコーダ、９４ｖ，９４ｈ  センスアンプ群、９６ｖ，９６ｈ  ライトドライバ群、９８ｖ，９８ｈ  入出力回路、９５  メモリセルマット、１３０  直交２ポートメモリセルマット、１３２  Ｖロウデコーダ、１３８  Ｈロウデコーダ、１３４  センスアンプ・ライトドライバ群、１３６  入出力回路、ＡＭ♯Ａ−ＡＭ♯Ｈ  演算アレイマット、３０ｌ，３０ｒ  メモリセルマット、１４１ｌ，１４１ｒ  センスアンプ群／ライトドライバ群、２０Ａ−２０Ｈ  主演算回路、１４０  システムバスＩ／Ｆ、１４５  スイッチマクロ、１５０  直交メモリ、１５５ａ，１５５ｂ  接続回路、１６０  直交メモリ、１６８  Ｖデコーダ、１６９Ｈデコーダ、ＤＷＬＶ００−ＤＷＬＶｓｔ，ＤＷＬＨ００−ＤＷＬＨｖｕ  分割ワード線、２００  直交メモリ、２０２ａ，２０２ｂ  直交２ポートメモリ、２２０  システムバスＩ／Ｆ、ＣＭＣ  ＣＭセル、２３０  ＣＭメモリセルマット、２３２  サーチ線ドライバ群、２３６  マッチ線アンプ、２２５  直交メモリ。
【図１】
2006164183.tif 000003
【図２】
2006164183.tif 000004
【図３】
2006164183.tif 000005
【図４】
2006164183.tif 000006
【図５】
2006164183.tif 000007
【図６】
2006164183.tif 000008
【図７】
2006164183.tif 000009
【図８】
2006164183.tif 000010
【図９】
2006164183.tif 000011
【図１０】
2006164183.tif 000012
【図１１】
2006164183.tif 000013
【図１２】
2006164183.tif 000014
【図１３】
2006164183.tif 000015
【図１４】
2006164183.tif 000016
【図１５】
2006164183.tif 000017
【図１６】
2006164183.tif 000018
【図１７】
2006164183.tif 000019
【図１８】
2006164183.tif 000020
【図１９】
2006164183.tif 000021
【図２０】
2006164183.tif 000022
【図２１】
2006164183.tif 000023
【図２２】
2006164183.tif 000024
【図２３】
2006164183.tif 000025
【図２４】
2006164183.tif 000026
【図２５】
2006164183.tif 000027
【図２６】
2006164183.tif 000028
【図２７】
2006164183.tif 000029
【図２８】
2006164183.tif 000030
【図２９】
2006164183.tif 000031
【図３０】
2006164183.tif 000032
【図３１】
2006164183.tif 000033
【図３２】
2006164183.tif 000034
【図３３】
2006164183.tif 000035
【図３４】
2006164183.tif 000036
【図３５】
2006164183.tif 000037
【図３６】
2006164183.tif 000038
【図３７】
2006164183.tif 000039
【図３８】
2006164183.tif 000040
【図３９】
2006164183.tif 000041
【図４０】
2006164183.tif 000042
【図４１】
2006164183.tif 000043
【図４２】
2006164183.tif 000044
【図４３】
2006164183.tif 000045
【図４４】
2006164183.tif 000046