(57)【要約】【課題】メモリセルマットが複数のエントリに分割され、各エントリ毎に演算器が設けられる半導体演算処理装置において、エントリ間データ転送を配線レイアウト面積を増大させることなく効率的に行なう。【解決手段】各エントリ（ＥＲＹ）に対応するデータ出力部（３０５）を有する転送配線（３００）を設ける。この転送配線（３００）において、最遠端の転送部と転送データ出力部（３０５）の間に、それぞれ所定数のエントリ離れたエントリにデータ転送を行なうデータ送出部（ＸＰ１，ＸＰ２，ＸＮ１，ＸＮ２）を設ける。これらの転送配線（３００）は、第１方向において整列して、第２方向において１エントリずつずらせて配置することにより、配線レイアウト面積を低減する。演算時にデータ転送を任意のエントリ間で行なうことができる。【選択図】図１３
2007200090.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
前記複数のエントリ間でデータを転送する転送回路を備え、
前記転送回路は、
前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送される、半導体演算処理装置。
【請求項２】
前記複数の転送配線経路は、第２の方向において整列しかつ第１の方向においては１エントリ分前記データ出力部がずれるように前記第２の方向において複数列に配置される、請求項１記載の半導体演算処理装置。
【請求項３】
前記転送回路において、１つのエントリに対応して複数の転送配線経路の送出部が配置され、
各前記演算器は、レジスタ回路を含み、
前記転送回路は、さらに、
各前記エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って１つの送出部を選択し、該選択された送出部の転送配線経路上を伝達された信号に対応する信号を生成するスイッチ回路と、
対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送し、かつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する選択回路と、
前記転送指示に従って前記レジスタ回路からの保持データを対応の転送経路の出力部に伝達する伝達回路とを備える、請求項１記載の半導体演算処理装置。
【請求項４】
前記転送回路において、１つのエントリに対応して複数の転送配線経路の送出部が配置され、
各前記演算器は、レジスタ回路を含み、
前記転送回路は、さらに、
エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って１つの送出部を選択し、該選択された送出部の伝達信号に対応する信号を生成するスイッチ回路と、
前記対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送しかつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する第１の選択回路と、
前記レジスタ回路の保持データと前記対応のエントリからのデータとを受け、選択転送指示信号の活性化に従って対応のエントリからのデータを転送する第２の選択回路と、
前記転送指示に従って前記第２の選択回路から与えられたデータを対応の転送経路の出力部に伝達する伝達回路とを備える、請求項１記載の半導体演算処理装置。
【請求項５】
前記スイッチ回路は、
プリチャージ指示信号の活性化に従って内部ノードをプリチャージするプリチャージ素子と、
前記複数の送出部それぞれに対応して設けられ、エントリ選択信号と対応の送出部の信号に従って前記内部ノードを選択的に前記プリチャージ電圧と異なる電圧レベルに駆動す
る複数の選択スイッチゲートとを備える、請求項３または４に記載の半導体演算処理装置。
【請求項６】
各前記選択スイッチゲートは、前記内部ノードと基準電位を与えるノードとの間に直列に接続され、それぞれのゲートに前記エントリ選択信号および前記対応の送出部の信号を受ける第１および第２のトランジスタ素子を備える、請求項５記載の半導体演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体演算処理装置に関し、特に、複数のエントリに分割される半導体メモリと、各エントリに対応して設けられる演算器とを有する半導体演算処理装置に関する。より特定的には、この発明は、半導体演算処理装置内において演算器間のデータ転送を小占有面積で高速に行なうための構成に関する。
【背景技術】
【０００２】
近年の携帯端末機器の普及に伴い、音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このデジタル信号処理には、一般に、専用の半導体装置としてＤＳＰ（デジタル・シグナル・プロセッサ）が用いられることが多い。フィルタ演算などのデータ処理においては、積和演算を繰返す演算処理が多い。したがって、一般に、ＤＳＰの構成においては、乗算回路、加算回路および累算用のレジスタが設けられる。このような専用のＤＳＰを用いると、積和演算を１マシンサイクルで実行することが可能となり、高速演算処理が可能となる。
【０００３】
また、このような大量のデータに対し同じ演算を実行する画像処理などの用途において、ＳＩＭＤ（シングル・インストラクション・ストリーム・マルチプル・データ・ストリーム：Single Instruction Stream Multiple Data Stream）型プロセッサが用いられることも多い。このＳＩＭＤ型プロセッサにおいては、複数のプロセッサエレメントが設けられ、これらの複数のプロセッサエレメントにおいて、同一の演算処理をそれぞれ異なるデータに対して実行する。したがって複数のプロセッサエレメントが並行して演算処理を実行するため、大量のデータを高速で処理することが可能である。
【０００４】
このようなＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントに対して、異なるデータを高速で格納することを図る構成が、特許文献１（特開２００２−２０７７０７号公報に示されている。この特許文献１においては、グローバルプロセッサから、複数のデータバスを各プロセッサエレメントに対して配置する。各プロセッサエレメントは、これらの複数のデータバスのうちのどれかのデータバスを選択する信号を、プロセッサエレメント番号に従って形成し、対応のデータバスのデータを選択して、プロセッサエレメント内のＡレジスタに格納する。特許文献１においては、画像処理におけるディザ処理において、各画素列に対応するしきい値を各列ごとにプロセッサエレメント内に格納して、ディザ処理におけるしきい値との比較動作を高速化することを図る。
【０００５】
また、特許文献２（特開２００１−８４２２９号公報）においては、異なるデータビット幅に柔軟に対応してデータ処理を実行することを目的とするＳＩＭＤ型プロセッサが開示されている。この特許文献２に示される構成においては、プロセッサエレメントをアドレス指定可能とし、このアドレス指定されたプロセッサエレメントの内部レジスタとデータ転送バスとの間でデータを転送する。また、このプロセッサエレメントは、レジスタファイルのレジスタと、演算器アレイの演算器とを有し、このレジスタファイル内のレジスタの数を、処理データビット幅に応じて調整することにより、処理データのビット幅変更に対応することを図る。
【０００６】
また、特許文献３（特開２００２−２０７７０６号公報）は、少ない回路規模で、総和値演算およびピーク検出を行なうことを目的とするＳＩＭＤ型プロセッサを開示する。この特許文献３に示される構成においては、プロセッサエレメントの演算器それぞれに対応して、マルチプレクサを設け、このマルチプレクサにより、レジスタファイルの対応のレジスタおよび対応のレジスタの７隣接列のいずれかを選択する。このマルチプレクサによ
り、演算データおよび演算結果データをプロセッサエレメント間で転送する。
【０００７】
この特許文献３においては、また、演算器と、共通データバスとを設け、この共通のデータバスを、所定数単位で分割し、各分割されたグループ内のプロセッサエレメントにおいて分割共通データバスを介してデータを転送して、総和値算出およびピーク値算出などの演算を高速に実行することを図る。
【０００８】
また、特許文献４（特開２００１−２０２３５１号公報）は、画像データ処理を、高速に実行することを目的とする構成を開示する。この特許文献４に示される構成においては、プロセッサエレメントをアドレス指定可能とし、グローバルプロセッサからアドレス信号に従ってプロセッサエレメントをアドレス指定してこのプロセッサエレメント内の演算レジスタにデータを格納する。必要なプロセッサエレメントに対してのみデータ転送を行うことによりデータ転送時間を短縮することを図る。
【０００９】
また、特許文献５（特開２００３−１８６８５４号公報）は、プロセッサエレメントの内部データを外部からモニタすることを目的とするＳＩＭＤ型プロセッサを開示する。この特許文献５に示される構成においては、各プロセッサエレメントにおいて演算レジスタの内容を複写して格納するミラーレジスタを設け、プロセッサエレメントをアドレス指定することにより、このミラーレジスタに対し外部からアクセス可能とする。
【特許文献１】特開２００２−２０７７０７号公報
【特許文献２】特開２００１−８４２２９号公報
【特許文献３】特開２００２−２０７７０６号公報
【特許文献４】特開２００１−２０２３５１号公報
【特許文献５】特開２００３−１８６８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
処理対象のデータ量が非常に多い場合には、専用のＤＳＰを用いても、性能を飛躍的に向上させることは困難である。例えば、演算対象のデータが１万組ある場合、１つ１つのデータの組に対する演算を１マシンサイクルで実行することが出来たとしても、最低でも１万マシンサイクル必要となる。また、ＤＳＰを利用する場合、処理性能は動作周波数に大きく依存するため、高速処理を優先する場合、消費電力が増大する。
【００１１】
特許文献１に示されるＳＩＭＤ型プロセッサにおいては、グローバルプロセッサから延びる複数のデータバスを設け、各プロセッサエレメント内において、そのプロセッサエレメント番号に応じてデータバスを選択して、選択データバスのデータをレジスタに格納する。これにより、画素アレイの画素位置に応じたしきい値データを対応のプロセッサエレメントに格納して、所定サイズの画素マトリクスに対してフィルタ処理を行う。グローバルプロセッサからのデータを、並行してプロセッサエレメントに転送して格納して、データ転送サイクル数を低減することを図る。
【００１２】
この特許文献１において、さらに、演算処理時において、プロセッサエレメントの演算データを、異なるプロセッサエレメント間で転送する場合、マルチプレクサを用いて、所定の範囲のプロセッサエレメント（±３隣接プロセッサエレメント）の間でデータ転送を行なう構成が示されている。このマルチプレクサにより、各プロセッサエレメントにおいて、異なる列のプロセッサエレメントのレジスタのデータを選択して演算処理を行なう。データ転送時各マルチプレクサにおいて選択経路を同じとするために、各プロセッサエレメントのレジスタファイルのレジスタの出力線が結合される共通データバス線が異なる（１つの列のレジスタを、７隣接演算器で択一的に使用するために、隣接列のレジスタが異なるバス線に接続される）。このレジスタファイルの出力信号線と共通データバスの接続
に応じて、各マルチプレクサと共通データバスのバス線との接続が変更される。このため、各プロセッサエレメント内においてマルチプレクサに対する配線が複雑となり、配線が錯綜するという問題が生じる。また、ある列のレジスタのデータを転送することの出来る範囲は、固定されており、任意のプロセッサエレメント間でのデータ転送を行う構成は示されていない。
【００１３】
特許文献２においては、データ転送を高速に行なうために、各プロセッサエレメントに選択信号を与え、選択されたプロセッサエレメントに対してデータの書込／読出を行なう。この特許文献２においても、レジスタファイル内のレジスタに対するデータの書込／読出を行なう構成に加えて、異なる列のプロセッサエレメント間のデータ転送時には、特許文献１と同様にマルチプレクサが用いられる。従って、内部の配線が錯綜するという問題が生じ、また、任意のプロセッサエレメント間でデータを転送することは困難である。
【００１４】
特許文献３に示される構成においては、プロセッサエレメントに共通に設けられるデータバスを複数のセグメントに分割し、各分割データバスを介して演算器間でデータを転送する。しかしながら、この場合、１つのプロセッサエレメントから別のプロセッサエレメントに対するデータ転送が、各分割データバスにおいて実行されて、順次加算などの処理が行なわれており、各プロセッサエレメントが、有効な演算処理を各サイクルにおいて行なわれてはいない。従って、総和値演算またはピーク値演算などの処理においては適用することができるものの、通常のコピー操作などのデータ転送を行なって演算処理を行なう構成に対しては適用することは、困難である。また、この特許文献３においても、分割データバスのデータ線の選択は、マルチプレクサを用いて行なわれており、特許文献１および２と同様に、内部配線が錯綜するという問題が生じる。
【００１５】
また、特許文献４に示される構成においては、プロセッサエレメントをアドレス指定して、グローバルプロセッサのレジスタのデータを、選択されたプロセッサエレメント内のレジスタに転送している。しかしながら、この特許文献４においても、プロセッサエレメント間のデータ転送はマルチプレクサを用いて行なわれており、特許文献１から３と同良いうに内部配線が錯綜し、またデータの転送範囲が制限される。
【００１６】
特許文献５に示される構成においては、単に、レジスタファイル内にミラーレジスタを設けて、外部からこのミラーレジスタのデータを、演算処理時においてもモニタすることを図っている。プロセッサエレメント間のデータ転送は、先の特許文献１から４と同様、マルチプレクサを用いて実行されているだけであり、内部配線が錯綜し、また、データ転送範囲が制限される。
【００１７】
一般に、演算器が複数個設けられている並列演算器において、任意の演算器間でデータ転送を行なう場合、転送距離に応じて、各プロセッサエレメントの演算器にデータ転送配線を複数配置する必要があり、配線面積が増大する。この結果、上述の特許文献１から５に示されるように、レジスタファイルと演算器アレイとの間の配線占有面積が大きくなり、また配線レイアウトが錯綜するという問題が生じる。
【００１８】
それゆえ、この発明の目的は、任意の演算器間でデータを高速に転送することのできる小占有面積の転送回路を備える半導体演算処理装置を提供することである。
【００１９】
この発明の特定的な目的は、メモリアレイが複数のエントリに分割され、各エントリに対応して演算器が設けられる半導体演算処理装置において、この演算器間またはエントリ間でのデータ転送を配線面積の増大を伴うことなく高速で行なうことの出来る転送回路を実現することである。
【課題を解決するための手段】
【００２０】
この発明に係る半導体演算処理装置は、各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、これらのエントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器と、複数のエントリ間でデータを転送する転送回路を含む。この転送回路は、エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備える。各転送配線経路は、対応のエントリのデータを受けて出力するデータ出力部と、異なる複数の別のエントリに結合される複数のデータ送出部とを有する。転送データが、各転送配線経路においてデータ出力部からデータ送出部に向かって転送される。
【発明の効果】
【００２１】
エントリ間でのデータ転送に、転送経路用いる。この転送経路は、各々が、対応のエントリのデータと複数の別のエントリへのデータを転送するデータ送出部とを有する。したがって、データ送出部を各転送経路において選択することにより、複数のエントリ間において並行してデータ転送を行なうことができ、高速データ転送を実現することができる。
【００２２】
また、各転送経路においてデータ出力部とデータ送出部とを個々別々に設けることにより、マルチプレクサを用いてデータ転送経路を設定する構成に比べて配線レイアウトが簡略化される。
【００２３】
また、この転送経路を介してエントリ間で順次データを転送することにより、任意の距離はなれたエントリ間でのデータ転送を実現することが出来る。
【発明を実施するための最良の形態】
【００２４】
［全体の構成］
図１は、この発明に従う半導体演算処理装置が適用される処理システムの全体構成を概略的に示す図である。図１において、信号処理システム１は、各種処理を実行する演算機能を実現するシステムＬＳＩ２と、システムＬＳＩ２と外部システムバス３を介して接続される外部メモリとを含む。この外部メモリは、大容量メモリ４と、高速メモリ５と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ（リード・オンリー・メモリ：ＲＯＭ）６を含む。大容量メモリ４は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）で構成され、高速メモリ５は、たとえばスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）で構成される。
【００２５】
システムＬＳＩ２は、内部システムバス７に並列に結合される基本演算ブロックＦＢ１−ＦＢｈと、これらの基本演算ブロックＦＢ１−ＦＢｈの処理動作を制御するホストＣＰＵ８と、信号処理システム１の外部からの入力信号ＩＮを内部処理用データに変換する入力ポート９と、内部システムバス７から与えられた内部出力データを受けて、システム外部への出力データＯＵＴを生成する出力ポート１０を含む。これらの入力ポート９および出力ポート１０は、たとえばライブラリ化されたＩＰ（インテレクチャル・プロパティ）ブロックで構成され、データ／信号の入出力に必要な機能を実現する。
【００２６】
システムＬＳＩ２は、さらに、基本演算ブロックＦＢ１−ＦＢｈからの割込要求を受付け、ホストＣＰＵ８に対して割込を通知する割込コントローラ１１と、ホストＣＰＵ８の各処理に必要な制御動作を行なうＣＰＵ周辺１２と、基本演算ブロックＦＢ１−ＦＢｈからの転送要求に従って外部メモリに対するデータ転送を行なうＤＭＡ（ダイレクト・メモリ・アクセス）コントローラ１３と、ホストＣＰＵ８またはＤＭＡコントローラ１３からの指示に従って、外部システムバス３に接続されるメモリ４−６に対するアクセス制御を行なう外部バスコントローラ１４と、ホストＣＰＵ８のデータ処理を補助する専用ロジック１５とを含む。
【００２７】
ＣＰＵ周辺１２は、タイマおよびシリアルＩＯ（入出力）などのホストＣＰＵ８におけるプログラムおよびデバッグの用途に必要な機能を備える。専用ロジック１５は、たとえばＩＰブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。これらの機能ブロック９−１５は、内部システムバス７に接続される。また、ＤＭＡコントローラ１３には、基本演算ブロックＦＢ１−ＦＢｈからのＤＭＡ要求信号が与えられる。
【００２８】
基本演算ブロックＦＢ１−ＦＢｈは、同一構成を有するため、図１においては、基本演算ブロックＦＢ１の構成を代表的に示す。
【００２９】
基本演算ブロックＦＢ１は、実際のデータの演算処理を行なう主演算回路２０と、この主演算回路２０における演算処理を指定するマイクロ命令を格納するマイクロ命令メモリ２１と、マイクロ命令メモリ２１からのマイクロ命令に従って主演算回路２０の演算処理を制御するコントローラ２２と、コントローラ２２の中間処理データまたは作業データを格納するワークデータメモリ２３と、基本演算ブロックＦＢ１の内部と内部システムバス７との間でデータ／信号の転送を行なうシステムバスインターフェイス（Ｉ／Ｆ）２４とを含む。
【００３０】
主演算回路２０は、複数のメモリセルが行列状に配列されかつ複数のエントリに分割されるメモリセルマット３０と、メモリセルマット３０のエントリに対応して配置され、指定された演算処理を行なう演算器（ＡＬＵ）３１と、演算器３１間のデータ転送経路を設定するＡＬＵ間相互接続用スイッチ回路３２を含む。
【００３１】
基本的に、１エントリに多ビットデータの各ビットが格納される。演算器（ＡＬＵ）３１は、対応のエントリからのデータビットをシリアルに受けて演算処理を行ない、その処理結果をメモリセルマット３０の指定されたエントリ（たとえば対応のエントリ）にシリアルに格納する。
【００３２】
ＡＬＵ間相互接続用スイッチ回路３２により、演算器３１の接続経路が切換えられ、異なったエントリのデータの演算が可能となる。各エントリに異なるデータを格納し、演算器３１により並列演算処理を行なうことにより、高速にデータ処理を行なうことができる。
【００３３】
コントローラ２２は、マイクロ命令メモリ２１に格納されるマイクロ命令に従って、マイクロプログラム方式に従った動作を行なう。このマイクロプログラム動作に必要なワークデータが、ワークデータメモリ２３に格納される。
【００３４】
システムバスＩ／Ｆ２４により、ホストＣＰＵ８またはＤＭＡコントローラ１３が、メモリセルマット３０、コントローラ２２内の制御レジスタ、マイクロ命令メモリ２１およびワークデータメモリ２３へアクセスすることが可能となる。
【００３５】
基本演算ブロックＦＢ１−ＦＢｈには、異なるアドレス領域（ＣＰＵアドレス領域）が割付けられる。同様、基本演算ブロックＦＢ１−ＦＢｈ内のメモリセルマット３０、コントローラ２２内の制御レジスタ、マイクロ命令メモリ２１、およびワークデータメモリ２３についても、それぞれ異なるアドレス（ＣＰＵアドレス）が割付けられる。したがって、これらの基本演算ブロックＦＢ１−ＦＢｈそれぞれにおいて、異なる内容のマイクロ命令を格納することにより、異なる演算処理を並行して実行することができる。また、基本演算ブロックＦＢ１−ＦＢｈにおいて、異なるアドレス領域のデータについて同一の演算処理が行なわれるように、マイクロ命令メモリ２１に同一の演算内容のマイクロ命令が格納されてもよい。また、マイクロ命令メモリ２１においては、マイクロ命令が格納される
ものの、マクロ命令が格納されていても良い。
【００３６】
各割付けられたアドレスに従って、ホストＣＰＵ８およびＤＭＡコントローラ１３が、アクセス対象の基本演算ブロックＦＢｉ（ＦＢ１−ＦＢｈのいずれか）を識別し、該アクセス対象の基本演算ブロックに対するアクセスを実行する。
【００３７】
図２は、図１に示す基本演算ブロックＦＢ１−ＦＢｈそれぞれに含まれる主演算回路２０の要部の構成を概略的に示す図である。図２において、メモリセルマット３０において、メモリセルＭＣが行列状に配列される。このメモリセルマットは、ｍ個のエントリＥＲＹに分割される。エントリＥＲＹがｎビットのビット幅を有する。このメモリセルマット３０においては、ｍ個のエントリＥＲＹに共通にワード線が配設され、各エントリ個々に、ビット線が配設される。基本的に、１つのエントリＥＲＹは、この１列（ビット線延在方向）に整列するメモリセルＭＣで構成される。したがって、エントリＥＲＹの数は、メモリセルマットのビット線の数で決定される。
【００３８】
エントリＥＲＹそれぞれに対応して、演算器（ＡＬＵ）３１が、演算処理ユニット３５において配置される。この演算器３１は、加算、論理積、一致検出（ＥＸＯＲ）、および反転（ＮＯＴ）などの演算を実行することができる。
【００３９】
エントリＥＲＹと対応の演算器３１との間でのデータのロード（メモリセルマット３０から演算処理ユニット３５へのデータの転送）およびストア（演算処理ユニット３５からメモリセルマット３０へのデータの転送および格納）を行なって演算処理を実行する。エントリＥＲＹには、多ビットデータの各ビットが格納される。
【００４０】
演算器ユニット３５に対してＡＬＵ相互接続用スイッチ回路３２が配置される。このＡＬＵ相互接続用スイッチ回路３２により演算器３１間のデータ転送を実現する。
【００４１】
演算器３１は、ビットシリアルな態様（多ビットデータワードをビット単位で逐次処理する態様）で演算処理を実行する。演算処理ユニット３５においては、データワードについてビットシリアル態様でかつ複数のエントリＥＲＹのデータが並行して処理されるエントリパラレルな態様でデータの演算処理が実行される。
【００４２】
このエントリＥＲＹのビット幅を変更することにより、データワードの語構成が異なる場合においても、演算サイクル数（アドレスポインタの範囲）を変更するだけで、データ処理を実行することができる。また、エントリ数ｍを多くすることにより、大量のデータを一括して演算処理することができる。
【００４３】
メモリセルＭＣは、たとえばＣＭＯＳ（相補金属‐絶縁膜‐半導体）構成のＳＲＡＭセルで構成され、高速でデータの書込／読出を行なう。また、メモリセルＭＣとして、ＳＲＡＭセルを利用することにより、メモリセルマット３０において記憶データのリフレッシュを行なう必要がなく、動作制御が容易となり、演算処理を高速で実行することができる。
【００４４】
主演算回路２０において演算を行なう場合には、基本的に、先ず、エントリＥＲＹ各々に演算対象のデータを格納する。次いで、格納されたデータのある桁のビットをすべてのエントリＥＲＹについて並列に読出して、対応の演算器３１へ転送（ロード）する。二項演算の場合には、各エントリＥＲＹにおいて、別のデータワードのビットに対しても同様の転送を行なった後、各演算器３１において２入力演算を行なう。この演算処理結果は、演算器３１から対応のエントリＥＲＹ内の所定の領域に再書込（ストア）される。
【００４５】
図３は、図２に示す主演算回路２０における演算操作の一例を模式的に示す図である。図３において、２ビット幅のデータワードａおよびｂの加算を行なって、データワードｃを生成する。エントリＥＲＹには、演算対象の組をなすデータワードａおよびｂがともに格納される。
【００４６】
図３において、第１行目のエントリＥＲＹに対する演算器３１においては、１０Ｂ＋０１Ｂの加算が行なわれ、２行目のエントリＥＲＹに対する演算器３１においては、００Ｂ＋１１Ｂの演算が行なわれる。ここで、末尾の“Ｂ”は、２進数を示す。３行目のエントリＥＲＹに対する演算器３１においては、１１Ｂ＋１０Ｂの演算が行なわれる。同様に、エントリＥＲＹ各々に格納されたデータワードａおよびｂの加算が実行される。
【００４７】
演算は、下位側ビットから順にビットシリアル態様で行なわれる。また、エントリＥＲＹにおいてデータワードａの下位ビットａ［０］を対応の演算器３１へ転送する。次いで、データワードｂの下位ビットｂ［０］を対応の演算器３１へ転送する。演算器３１においては、これらの与えられた２ビットデータを用いて加算演算を行なう。この加算演算結果ａ［０］＋ｂ［０］は、データワードｃの下位ビットｃ［０］の位置に書込まれる（ストアされる）。すなわち、１行目のエントリＥＲＹにおいて、“１”が、ビットｃ［０］の位置に書込まれる。
【００４８】
この加算処理は、次いで、上位ビットａ［１］およびｂ［１］に対しても行ない、その演算結果ａ［１］＋ｂ［１］がビットｃ［１］の位置に書込まれる。
【００４９】
加算演算においては、桁上がりが生じる可能性がある。この桁上がり（キャリー）の値が、ビットｃ［２］の位置に書込まれる。これにより、データワードａおよびｂの加算が、すべてのエントリＥＲＹにおいて完了し、その結果が、データｃとして各エントリＥＲＹにおいて格納される。エントリとして、たとえば１０２４エントリを準備した場合、１０２４組のデータの加算を並列に実行することができる。
【００５０】
図４は、この加算演算処理時における内部タイミングを模式的に示す図である。以下、図４を参照して、加算演算の内部タイミングについて説明する。この加算演算処理においては、演算器３１に含まれる２ビット加算器（ＡＤＤ）が利用される。
【００５１】
図４において、“Read”は、メモリセルマット３０から演算対象のデータビットを読出して対応の演算器に転送する動作（ロード）または動作命令を示し、“Write”は、演算器３１の演算結果データを対応のエントリＥＲＹの対応のビット位置に書込む動作（ストア）または動作命令を示す。
【００５２】
マシンサイクルｋにおいて、データビットａ［ｉ］がメモリセルマット３０から読出され、次のマシンサイクル（ｋ＋１）で、次の演算対象のデータビットｂ［ｉ］が読出され（Read）、演算器３１の加算器（ＡＤＤ）にそれぞれ与えられる。
【００５３】
マシンサイクル（ｋ＋２）において、演算器３１の加算器（ＡＤＤ）において、読出されたデータビットａ［ｉ］およびｂ［ｉ］の加算処理が行なわれる。マシンサイクル（ｋ＋３）において、この加算結果ｃ［ｉ］が、対応のエントリの対応のビット位置に書込まれる。
【００５４】
次のマシンサイクル（ｋ＋４）および（ｋ＋５）において、次の演算対象のデータビットａ［ｉ＋１］およびｂ［ｉ＋１］が読出され、演算器３１の加算器（ＡＤＤ）へ転送される。マシンサイクル（ｋ＋６）において、演算器３１により加算処理が行なわれ、マシンサイクル（ｋ＋７）において、加算結果がビット位置ｃ［ｉ＋１］へ格納される。
【００５５】
メモリセルマット３０と演算器３１の間のデータビットの転送に、それぞれ１マシンサイクルが必要とされ、演算器３１において１マシンサイクルの演算サイクルが必要とされる。したがって、１ビットデータの加算および加算結果の格納を行なうために、４マシンサイクルが必要となる。メモリセルマット３０を、複数のエントリＥＲＹに分割し、各エントリに演算対象データの組をそれぞれ格納し、対応の演算器３１においてビットシリアル態様で演算処理を行なう方式の特徴は、１つ１つのデータ演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより高速データ処理を実現することができるということである。
【００５６】
たとえば、演算対象のデータワードのビット幅がＮの場合、各エントリの演算には、４・Ｎマシンサイクルが必要となる。演算対象のデータワードのビット幅は、８ビットから６４ビット程度である。エントリ数ｍを、たとえば１０２４と大きくすることにより、並列演算処理時に、たとえば８ビットデータの場合、３２マシンサイクルで１０２４個の演算結果を得ることができ、１０２４組のデータをシーケンシャルに処理する場合に比べて大幅に処理時間を短縮することができる。
【００５７】
また、ビットシリアル態様で演算処理を行なっており、処理されるデータのビット幅は固定されないため、種々のデータ構成を有する種々のアプリケーションに容易に適用することができる。
【００５８】
図５は、図１に示すコントローラ２２の制御態様を概略的に示す図である。このコントローラ２２に対応して、レジスタ群４０が設けられる。このレジスタ群４０においては、ポインタレジスタｒ０−ｒ３が設けられる。演算対象のデータのメモリセルマット３０内のアドレスが、これらのポインタレジスタｒ０−ｒ３に格納される。コントローラ２２は、このポインタレジスタｒ０−ｒ３に格納されるポインタに従って、主演算回路におけるエントリまたはエントリ内位置を指定するアドレスを生成して、メモリセルマット（３０）と演算処理ユニット（３５）の間のデータ転送（ロード／ストア）を制御する。また、このコントローラ２２は、ポインタレジスタｒ０−ｒ３のポインタに従って、マイクロ命令メモリ２１から転送命令が与えられたとき、この演算処理ユニット（３５）における演算器（ＡＬＵ）３１間の接続指定情報を設定する。
【００５９】
［演算器の構成１］
図６は、図１に示す演算器（３１）の構成および１つの演算器に関連する部分の構成を概略的に示す図である。図６において、演算器（ＡＬＵ）３１は、指定された演算処理を行なう算術演算論理回路５０と、対応のエントリから読出されたデータまたは算術演算論理回路５０の演算処理結果データまたは対応のエントリへ転送するデータを一時的に格納するＸレジスタ５４と、加演算処理時のキャリーまたはボローを格納するＣレジスタ５６と、この算術演算論理回路５０の演算処理の禁止を指定するマスクデータを格納するＭレジスタ５８を含む。
【００６０】
エントリと演算器の間には、センスアンプ６２およびライトドライバ６０が設けられる。これらのセンスアンプ６２およびライトドライバ６０は、対応のエントリのビット線対ＢＬＰに結合される。センスアンプ６２は、対応のエントリのメモリセルから読出されるデータを増幅し、その増幅データを内部データ転送線２００を介してＸレジスタ５４へ転送する。ライトドライバ６０は、Ｘレジスタ５４に格納されたデータをバッファ処理して、対応のエントリのメモリセルへ対応のビット線対ＢＬＰを介して書込む。
【００６１】
この算術演算論理回路５０は、加算（ＡＤＤ）、論理積（ＡＮＤ）、論理和（ＯＲ）、排他的論理和（ＥＸＯＲ）、反転（ＮＯＴ）等の演算を実行することができ、その演算内
容が、先の図５に示すコントローラ２２からの制御信号（ＡＬＵ制御）により設定される。Ｍレジスタ５８に格納されるマスクデータにより、この演算器３１における演算処理動作を選択的にイネーブル／ディスエーブルする。この演算マスク機能を利用することにより、仮に全エントリが利用されない場合においても、有効エントリに対してのみ演算を実行して、正確な処理を行なうことができる。また、不必要な演算を停止させることにより、消費電流を低減することができる。
【００６２】
Ｘレジスタ５０は、また、ＡＬＵ間相互接続スイッチ回路３２に含まれるＡＬＵ間接続回路６５を介して他の演算器（ＡＬＵ）に接続される。このＡＬＵ間接続回路６５の構成については、後に詳細に説明する。このＡＬＵ間接続回路６５の転送機能により、メモリマット内のさまざまな物理位置に格納されているデータに対する演算を実現することができ、演算の自由度を高くすることができる。
【００６３】
図７は、ＡＬＵ命令のうち、エントリ間のデータ移動（Move）を行なう命令を一覧にして示す図である。
【００６４】
命令“ecm.mv.n♯n”は、データ移動命令（Move）における移動量を数値♯ｎで規定する。したがってこの命令で、Ｘレジスタ間のデータ転送において、エントリｊ＋ｎのＸレジスタの格納値が、エントリｊのＸレジスタに格納される。一例として、エントリ移動量ｎは、０から１２８の範囲の整数値を取り、最大１２８ビット離れた位置のエントリ間でデータ移動を行なうことができる。
【００６５】
命令“ecm.mv.r rx”は、ポインタレジスタｒｘに格納された値だけエントリ間をデータ移動させる命令である。この命令が実行されると、エントリｊ＋ｒｘのＸレジスタの格納値が、エントリｊのＸレジスタに転送される。
【００６６】
このＡＬＵ命令に従って、ＡＬＵ間接続回路６５における接続経路が設定され、各エントリ対応に設けられる演算器において、Ｘレジスタを用いて並列に、データ転送が実行される。
【００６７】
［演算の構成２］
図８は、この発明において利用される演算器３１の別の構成を概略的に示す図である。この図８に示す演算器３１の構成に対しては、メモリセルマットにおいて１つのエントリＥＲＹが、偶数アドレスのデータビットＡ［２ｉ］を格納する偶数エントリＥＲＹｅと、奇数アドレスのデータＴビットＡ［２ｉ＋１］を格納する奇数エントリＥＲＹｏとで構成される。偶数エントリＥＲＹｅおよび奇数エントリＥＲＹｏの同じアドレスのデータビットに対し、並列に演算処理を実行することにより、処理の高速化を図る。
【００６８】
演算器（ＡＬＵ）３１においては、演算処理を行なうための縦続される全加算器２１０および２１１が、演算処理部として設けられる。全加算器２１０および２１１は、それぞれ入力ＡおよびＢに与えられたデータビットを加算し、サム出力Ｓおよびキャリー出力Ｃｏに演算結果を出力する。また、全加算器２１０は、Ｃレジスタ５６に格納されるデータをキャリー入力ＣＩｎに受ける。１ビット動作時には、このＣレジスタ５６のキャリーが、または全加算器２１１のキャリー入力Ｃｉｎに与えられる。２ビット並列に処理する２ビット動作時においては、全加算器２１０のキャリー出力Ｃｏが、全加算器２１１のキャリー入力Ｃｉｎに伝達される。この全加算器２１０および２１１の接続を切り替えることにより、２ビット並列演算および１ビット逐次処理を実行することが出来る。
【００６９】
この演算器３１は、対応のエントリのメモリセルからのロードデータの一時保存を行ないかつ演算途中の結果の一時保存を行なうＸレジスタ５４が設けられる。二項演算処理時
においては、Ｘレジスタ５４に第１の演算データビットが格納されたとき、次の（別の）演算データビットが、この演算器３１に直接対応のメモリセルマットのエントリから与えられて演算処理が実行される。このＸレジスタ５０は、ＡＬＵ間接続用スイッチ回路を介して他の演算器（ＡＬＵ）と接続され、異なる演算器間でデータ転送を行なうことができる。
【００７０】
演算器（ＡＬＵ）３１は、さらに、２ビットデータを並列に格納するためのＸＨレジスタ２２０およびＸＬレジスタ２２１と、Ｄレジスタ２２２の格納値に従って、レジスタ５４、２２０および２２１のデータの組の一方の２ビットを選択するセレクタ（ＳＥＬ）２２７と、Ｆレジスタ２０５の格納ビットに従ってセレクタ２２７の選択した２ビットに対する反転／非反転操作を行なう選択反転回路２１７と、Ｎレジスタ２０７とＶレジスタ２０８の格納データに従って、全加算器２１０および２１１の出力Ｓからのデータビットを選択的に出力するゲート２２３および２２４を含む。
【００７１】
選択反転回路２１７の２ビット出力は、全加算器２１０および２１１の入力Ａへそれぞれ与えられる。ＸＨレジスタ２２０およびＸＬレジスタ２２１は、それぞれ内部データ線２２６および２２８を介して奇数エントリＥＲＹｏの奇数アドレスビットおよび偶数エントリＥＲＹｅの偶数アドレスビットの転送を行なう。Ｘレジスタ５４は、２ビット／１ビット動作に従って、スイッチ回路ＳＷａおよびＳＷｂにより、内部データ線２２６および２２８の一方に選択的に接続される。
【００７２】
Ｎレジスタ２０７は、定数値を格納する。Ｖレジスタ２０８は、ゲート２２３および２２４の転送経路の遮断／接続を制御するマスクビットを格納する。
【００７３】
全加算器２１０の入力Ｂは、内部データ線２２６に結合され、全加算器２１０のサム出力Ｓを受けるゲート２２３の出力が、また内部データ線２２６に接続される。全加算器２１１の入力Ｂは、スイッチ回路ＳＷｃおよびＳＷｄにより、内部データ線２２６および２２８の一方に選択的に接続される。全加算器２１１のサム出力Ｓからのデータビットゲート２２４に与えられる。ゲート２２４の出力は、スイッチ回路ＳＷｅおよびＳＷｆに従って、内部データ線２２６および２２８の一方に選択的に接続される。これらのスイッチ回路ＳＷａ−ＳＷｆにより、２ビット並列除算処理を行なう場合の１ビット単位のビットシリアル処理を実行する。
【００７４】
ゲート２２３および２２４は、Ｖレジスタ２０８およびＮレジスタ２０７の格納値がともに“１”のときに、指定された演算処理を実行し（データ転送動作を行ない）、それ以外においては、ハイインピーダンスを出力する（出力ハイインピーダンス状態となる）。
【００７５】
全加算器２１１のキャリー入力Ｃｉｎおよび全加算器２１０のキャリー出力Ｃｏに対して設けられるスイッチ２２５は、１ビット単位での演算処理を行なう場合に、全加算器２１０のキャリー出力Ｃｏを切離し、全加算器２１１のキャリー入力ＣｉｎをＣレジスタ５６に接続する。
【００７６】
この演算器３１においては、Ｘレジスタ５４、ＸＨレジスタ２２０およびＸＬレジスタ２２１が、他のエントリの対応のレジスタとデータ転送を行なう機能を有する。
【００７７】
この変更例２の構成を利用する場合、１つの演算器が２つのエントリに対応して配置される。したがって、１ビット逐次処理に加えて、２ビット並列演算を行なって高速処理を実行することができ、また演算処理ユニットにおいて、余裕を持って演算器３１を配置することができる。
【００７８】
図９は、この図８に示す演算器（３１）の２ビット演算時におけるＡＬＵ３１の内部の接続を概略的に示す図である。この２ビット演算時、特に２次のブースアルゴリズムに従って乗算を行なう場合、Ｘレジスタ５４は、スイッチ回路ＳＷａを介して内部データ線２２６に結合される。スイッチ回路ＳＷｂは、ＸＬレジスタ５４と内部データ線２２８を切離す状態に設定される。
【００７９】
スイッチ回路ＳＷｂが、全加算器２１１の入力Ｂと内部データ線２２６とを切離す。スイッチ２２５は、全加算器２１０のキャリー出力Ｃｏと全加算器２１０のキャリー入力Ｃｉｎとを分離する。Ｃレジスタ５６が、スイッチ２２５を介して全加算器２１０のキャリー入力Ｃｉｎに結合される。ゲート回路２２４の出力はスイッチ回路ＳＷｆにより内部データ線２２８に結合される。
【００８０】
２ビット演算時においては、全加算器２１０および２１１が並列に動作し、選択反転回路２１７から与えられるデータビットをそれぞれ内部転送線２２６および２２８から転送されるデータビットと加算し、それぞれの加算結果をゲート２２３および２２４を介して内部データ線２２６および２２８へ出力する。したがって、加算結果は、ビットＡｊ［ｐｘ］およびＡｊ［ｐｘ＋１］について並列に算出する。ここで、ｐｘおよびｐｘ＋１は、ポインタレジスタのポインタ値であり、２ビット並列動作時には、メモリセルマット内において同一のワード線アドレスビットである。
【００８１】
メモリセルマットにおいては、偶数エントリＥＲＹｅおよび奇数エントリＥＲＹｏにそれぞれ、偶数アドレスＡ［２ｉ］および奇数アドレスＡ［２ｉ＋１］のデータビットが格納される。ポインタレジスタｒｘのポインタにより、これらの偶数エントリＥＲＹｅおよび奇数エントリＥＲＹｏの同一ビット位置のメモリセルが指定される。したがって、プログラム実行時においてポインタレジスタｒｘのカウント値が２増分されることにより、奇数エントリＥＲＹｏおよび偶数エントリＥＲＹｅにおいて１ビットそのビット位置が上位方向にシフトされる。このポインタレジスタｒｘのポインタに基づいてメモリセルマットのワード線を選択するアドレスが生成される場合、ワード線の切換により、ポインタレジスタｒｘのポインタを２増分する構成が実現される。
【００８２】
演算器３１において２つの全加算器２１０および２１１を設けて２ビット加算を行なうことにより、たとえばブースアルゴリズムに従う乗算操作時、２ビット単位での部分積生成および前の部分積との加算を行なうことができる。また、加算および減算も、２ビット単位で実行することができ、また１ビット単位で演算を実行することもできる。除算は、被除数のビット位置を１ずつ右シフトして減算を行なう必要があり、１ビット単位で演算を実行する。この１ビット演算を実現するために、スイッチ２２５が設けられる。
【００８３】
図１０は、１ビット演算操作時における演算器３１の内部接続の一例を概略的に示す図である。１ビット演算の接続時においては、Ｘレジスタ５４が、内部データ線２２６および２２８にスイッチ回路ＳＷａおよびＳＷｂを介してそれぞれ接続される。Ｘレジスタ５４の出力が、セレクタ２２７によりＤレジスタ２２０の格納データに従って選択される。スイッチ回路ＳＷａおよびＳＷｂの接続は、ポインタｐｘ（ポインタレジスタｒｘのポインタ）により決定される。
【００８４】
Ｆレジスタ２０５の格納ビット値に従って、選択反転回路２１７により、加算／減算が実現される。この選択反転器２１７の出力は、全加算器２１１の入力Ａに与えられる。全加算器２１０の入力Ｂは、内部データ線２２６に接続される。全加算器２１０のキャリー出力Ｃｏが、スイッチ回路２２５により全加算器２１０のキャリー入力Ｃｉｎと分離される。全加算器２１０のサム出力Ｓが、ゲート２２３を介して内部データ線２２６に結合される。全加算器２１０は、加算演算には用いられない。全加算器２１１のキャリー入力Ｃ
ｉｎが、Ｃレジスタ５６にスイッチ回路２２５を介して結合される。全加算器の入力Ｂは、ポインタｐｘによりスイッチ回路ＳＷｃおよびＳＷｄを介して内部データ線２２６または２２８に選択的に結合される。また、全加算器２１１のサム出力Ｓが、ゲート２２４およびスイッチ回路ＳＷｅおよびＳＷｆを介して選択的に内部データ線２２６および２２８に接続される。
【００８５】
減算演算を、２の補数の加算演算により行なう場合には、Ｃレジスタ５６に、初期値として“１”が格納され、Ｘレジスタ５４からのビット値が選択反転回路２１７により反転される。加算演算を行なう場合には、Ｃレジスタ５６は、初期状態として“０”にクリアされる。
【００８６】
メモリセルマット内のエントリにおいて、内部データ線２２６および２２７に接続される領域には、連続アドレスのデータビットＡ［２ｉ］およびＡ［２ｉ＋１］が格納され、内部データ線２２６および２２８を介してＸレジスタ５４に２ビットデータを並列に転送する。ポインタｐｘ［０］の値を逐次切換えることにより、アドレスＡ［２ｉ］のエントリおよびアドレスＡ［２ｉ＋１］のエントリのデータビットについて、ビットシリアル態様で、加算を行なうことができる。
【００８７】
図１１は、１ビット動作時のエントリ間データ移動（move）を行なう命令を一覧にして示す図である。このエントリ間（ＡＬＵ間）データ移動時には、ポインタレジスタｒｎが用いられる。エントリ間データ移動用ポインタレジスタｒｎの候補レジスタとして、前述のポインタレジスタｒ０−ｒ３が設けられる。
【００８８】
命令“ecm.mv.n♯n”は、定数ｎ離れたエントリａ＋ｎのＸレジスタの格納値を、エントリｊのＸレジスタに転送することを示す命令である。
【００８９】
命令“ecm.mv.r rn”は、レジスタｒｎの格納値分離れたエントリｊ＋ｒｎのＸレジスタの値が、エントリｊのＸレジスタに転送される操作を示す命令である。
【００９０】
命令“ecm.swp”は、隣接エントリｊ＋１およびｊのＸレジスタの格納値を交換する操作を指令する命令である。
【００９１】
図１２は、２ビット動作時の、演算器におけるエントリ間データ移動（move）の操作を指令する命令を一覧にして示す図である。この２ビット操作時においては、命令記述子“ecm２”が、命令記述子“ecm”に代えて用いられる。この命令記述子“ecm２”が指定されると、２ビット単位での演算処理が指定され、ＸＨレジスタおよびＸＬレジスタ間での並列のデータ転送が行なわれる。各レジスタ間の転送内容の指定には、先の１ビット動作時と同じ命令記述子“mv.n♯n”、“mv.r rn”、および“swp”が用いられる。
【００９２】
［実施の形態１］
図１３は、この発明の実施の形態１に従うＡＬＵ間相互接続スイッチ回路の配線レイアウトを概略的に示す図である。図１３において、データの移動量として、±１、±２、および±４の移動量の組を備えるエントリ間通信配線の配線レイアウトを示す。
【００９３】
図１３において、エントリｎ＋１３からエントリｎ−１３を示す。このデータ転送配線３００は、それぞれが対応のエントリからのデータを受けて出力する出力部３０５と、転送先のエントリへのデータの送出部ＸＰ１、ＸＰ２およびＸＰ４、ＸＮ１、ＸＮ２およびＸＮ４を含む。送出部ＸＰ１、ＸＰ２およびＸＰ４は、それぞれ、＋１、＋２および＋４離れたエントリに対するデータを転送する送出部であり、送出部ＸＮ１、ＸＮ２およびＸＮ４は、それぞれ−１、−２および−４離れたエントリへデータを転送する送出部である
。従って、１つのデータ転送配線３００は、９エントリにわたって延在して配置される。
【００９４】
このデータ転送配線３００は、エントリと交差する方向（第２の方向）において１列に整列して配置され、かつエントリの延在方向（第１の方向）においては、データ出力部３０５が１エントリずれるようにアレイ状に配置される。このデータ転送配線３００は、最遠のデータ送出部が、±４エントリ離れたエントリに対応する位置であり、自身を含んで９エントリごとに、データ転送配線３００が、第２の方向に整列して配置される。
【００９５】
この各エントリからのデータを受けて出力するデータ出力部および転送先のエントリにデータを与えるデータ送出部を別々に設けることにより、１つのデータ転送配線３００において複数のデータ送出部を設けることにより、１つの配線で複数種類のエントリ間で他通信を実現することが出来る。また、各エントリからのデータの出力部を各転送配線３００により、１エントリ、第１の方向においてずらせて配置することにより、効率的に、データ転送路を配線することができる。すなわち、図１３に示すように、９エントリにわたって傾斜を有する対辺を有する菱形状の平行四辺形３２０を第２の方向に順次繰返し配置することにより、配線レイアウトを低減して効率的に、エントリ間通信配線を配置配線することができる。
【００９６】
上述のように、データの転送量に応じて配線を個々に配置するのではなく、１つのデータ転送配線３００において、複数のデータ移動量の組を実現し、各エントリ対応の演算器において、選択的に送出部からの信号を取込むことにより、エントリそれぞれにおいて、並列にデータの転送を行なうことができ、また、配線レイアウト面積を低減することができる。また、このエントリ間データ移動量の組を複数個設けることにより、任意のエントリ間移動を、比較的少ないサイクル数で実現することができる。
【００９７】
たとえば、データにおいて、±４エントリ間の移動を、１サイクルで実現する場合には、この送出部ＸＰ４およびＸＮ４を選択的に利用する。この場合、図１４に示すようなサイクリックなデータ移動が実現される。ただし、図１４においては、２０４８エントリがメモリセルマットにおいて設けられるとしている。
【００９８】
例えばエントリ０のデータを＋４エントリ移動させると、エントリ２０４４に大使て設けられるＸレジスタに転送される。ここで、＋移動は、エントリ番号の小さいエントリにデータを転送する方向に設定している。また、エントリ２０４７のデータを‐４エントリ移動させると、エントリ３のＸレジスタに転送される。
【００９９】
したがって、１隣接エントリ間のデータ転送と同様に、データ転送配線３００を用いて、４エントリ離れたエントリへのデータ転送を１マシンサイクルで実現することができる。したがって、たとえば３エントリ離れた位置へのデータ転送時には、２エントリ移動および１エントリ移動を、シフトレジスタを利用して順次データを転送する場合と同様にして、行なうことにより、２サイクルで、データ転送を実現することができる。また、８エントリ離れたエントリへのデータ転送時には、４エントリ移動を２回繰返すことにより、８エントリ間移動が実現される。このシフトレジスタ態様のデータ転送を繰返すことにより、任意の距離（エントリ数）離れたエントリ間でのデータ通信が実現される。
【０１００】
配線レイアウト面積の余裕に応じて、１本のデータ転送配線３００の実現するデータ移動量の組をより多く設けることにより、任意のエントリ間データ移動を比較的少ないサイクル数で実現することができる。
【０１０１】
図１５は、このメモリセルマット端部のエントリ０−５および２０４４−２０４７に対するデータ転送配線３００の配線レイアウトを概略的に示す図である。このエントリ０−
３においては、そのデータ出力端部３０５から、＋１、＋２および＋４のデータシフト転送を行なう場合、エントリ２０４５‐２０４７方向へ、データをシフトする必要がある。したがって、この場合、プラスシフト用配線３３０ｐを用いて、各データ転送配線３００の転送経路を、エントリ端部から他方端へ配線する。これにより、エントリ０ないし３のデータ出力部３０５に対し、それぞれ、プラス方向のシフト用送出部ＸＰ１、ＸＰ２およびＸＰ４をそれぞれ配置することができる。
【０１０２】
一方、メモリセルマットの他方端のエントリ２０４５−２０４７に対して設けられるデータ転送配線３００においては、マイナス方向のデータ転送時、最初のエントリ０に戻って、データを転送する必要がある。このため、マイナスシフト用の配線３３０ｎをメモリセルマットの他方端から一方端に配設し、各データ転送配線３００のマイナス方向のデータシフトを実現する。これにより、エントリ２０４５−２０４７に対して設けられるデータ出力部３０５に対し、各マイナス方向のシフト用送出ＸＮ１、ＸＮ２およびＸＮ４を、それぞれ配置することができ、各データ転送配線３００において、±１、±２、および±４のデータ転送シフトを実現することができる。
【０１０３】
なお、このデータシフト用の配線３３０ｐおよび３３０ｎは、転送経路３００を構成する配線と別の配線層の配線で形成されてもよい。また、このシフト用配線３３０ｎおよび３３０ｐにより接続される送出部ＸＰ１、ＸＰ２、およびＸＰ４およびＸＮ１、ＸＮ２およびＸＮ４は、それぞれ、データ転送配線３００の平行四辺形領域の底部の空き領域（三角形状の領域）に配設されてもよい。
【０１０４】
いずれの場合においても、このエントリ０ないし２０４７において、リング状にデータを移動させることができ、任意の方向に向かって、任意のデータエントリ間データ移動を実現することができる。
【０１０５】
図１６は、図６に示すＡＬＵ間接続回路６５の構成を概略的に示す図である。ＡＬＵ間接続回路６５において、演算器３１のＸレジスタ５４、ＸＨレジスタ２２０およびＸＬレジスタ２２１が、それぞれ、ｎビット幅の転送配線束３４０ａ、３４０ｈおよび３４０ｌにそれぞれ結合される。このｎビット幅の転送配線束３４０ａ、３４０ｈおよび３４０ｌは、それぞれ、他のエントリのからのデータ転送配線３００の束である。これらの転送配線束３４０ａ、３４０ｈおよび３４０ｌは、それぞれ、接続部３５０ａ、３５０ｈおよび３５０ｌを介してＸレジスタ５４、ＸＨレジスタ２２０およびＸＬレジスタ２２１に結合される。
【０１０６】
一方、Ｘレジスタ５４、ＸＨレジスタ２２０およびＸＬレジスタ２２１が、それぞれ、出力ノード３０５ａ、３０５ｈおよび３０５ｌを介してデータ転送配線３００ａ、３００ｈおよび３００ｌに結合される。これらの転送配線３００ａ、３００ｈおよび３００ｌは、それぞれ、最大データ移動量のエントリ部まで延在し、その経路の途中で、他のエントリにもデータを転送する。他のエントリにおいて、この接続部３５０ａ、３５０ｈおよび３５０ｌにより、データ移動量の配線が選択される。
【０１０７】
演算器３１の構成は、先の図８に示す演算器の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１０８】
これらの接続部３５０ａ、３５０ｈおよび３５０ｌにおいて、データ移動量に応じて対応のエントリを選択する必要がある。この対応の他のエントリを選択するために、接続部３５０ａ、３５０ｈおよび３５０ｌそれぞれにおいて、スイッチ回路が設けられる。
【０１０９】
図１７は、このＡＬＵ間接続回路６５におけるスイッチ回路および関連の部分の構成の
一例を示す図である。１ビットデータ転送時においては、Ｘレジスタ５４を利用する。２ビットデータ転送時にＸＨレジスタおよびＸＬレジスタが利用される。他のエントリの演算器のＸレジスタ、ＸＨレジスタおよびＸＬレジスタそれぞれに対して、この図１７に示す構成が設けられる。しかしながら、図１７においては、図面を簡略化するために、Ｘレジスタ５４に対応する部分の構成のみを代表的に示す。
【０１１０】
図１７において、ＡＬＵ間接続回路６５は、他のエントリの選択信号ＥＣＭ＿ＥＭ＿ｋ（ｋ＝１、…２５６）に従って、対応のデータ出力配線ＥＣＭ＿ＩＮ＿ｋ上の信号に応じた信号を生成するスイッチ回路３６０と、転送イネーブル信号ＥＣＭ＿ＥＮに従って、このスイッチ回路３６０の出力信号と対応のエントリから転送されたデータの一方を選択するセレクタ３６２と、転送イネーブル信号ＥＣＭ＿ＥＮに従って、Ｘレジスタ５４の保持データに従って出力データＥＣＭ＿ＯＵＴを生成するトライステートバッファ３６４を含む。このトライステートバッファ３６４により、データ転送配線の出力段３０５（３０５ａ，３０５ｈ，３０５ｌ）が駆動される。
【０１１１】
スイッチ回路３６０は、他のエントリそれぞれに対応して設けられる選択スイッチゲートＰＳＱ２５６…ＰＳＱ１、ＮＳＱ１、…ＮＳＱ２５６を含む。これらの選択スイッチゲートＰＳＱ２５６−ＰＳＱ１，ＮＳＱ１−ＮＳＱ２５６が、それぞれ、エントリ選択信号ＥＣＭ＿ＥＮ＿ｋに従って対応のデータ転送配線上の出力信号ＥＣＭ＿ＩＮ＿ｋを選択して、この対応のデータ転送配線上の入力信号に従って内部ノードＮＤを駆動する。
【０１１２】
これらの選択スイッチングゲートＰＳＱ２５６−ＰＳＱ１、ＮＳＱ１−ＮＳＱ２５６は、それぞれ、内部ノードＮＤと接地ノードの間に直列に接続されるＮチャネルＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ）ＮＱ１およびＮＱ２を含む。ＭＯＳトランジスタＮＱ１のゲートが、対応の他のエントリからの転送入力信号ＥＣＭ＿ＩＮ＿ｋを受け、ＭＯＳトランジスタＮＱ２のゲートに、エントリ選択信号ＥＣＭ＿ＥＮ＿ｋを受ける。
【０１１３】
したがって、図１７に示すスイッチ回路３６０の構成では、データ転送配線は、最大±２５６エントリ離れた位置のエントリ間のデータ転送を行なう。このデータ転送配線の途中に設けられる中間の転送量（データ移動量）は、２のべき乗の値で順次設定されてもよい。
【０１１４】
スイッチ回路３６０は、さらに、プリチャージ指示信号／ＥＣＭ＿ＰＲＣに従って内部ノードＮＤを電源電圧レベルにプリチャージするＰチャネルＭＯＳトランジスタＰＱ１と、内部ノードＮＤ上の信号を反転するインバータＩＶ１と、インバータＩＶ１の出力信号に従って選択的に導通して、内部ノードＮＤを電源電圧レベルに駆動するＰチャネルＭＯＳトランジスタＰＱ２と、インバータＩＶ１の出力信号を反転して、このスイッチ回路３６０の出力信号を生成するインバータＩＶ２を含む。
【０１１５】
ＭＯＳトランジスタＰＱ２およびインバータＩＶ１により、いわゆる「ハーフラッチ」が形成される。内部ノードＮＤは、プリチャージ時、電源電圧レベルにプリチャージされる。選択スイッチゲートＰＳＱｋまたはＮＳＱｋ（ｋ＝１−２５６）は、選択されたときに、内部ノードＮＤを接地電圧レベルに駆動する。選択スイッチゲートＰＳＱ２５６−ＰＳＱ１、ＮＳＱ１−ＮＳＱ２５６を用いて内部ノードＮＤをいわゆるオープンドレイン方式で駆動する。内部ノードＮＤがプリチャージ電圧レベルから接地電圧レベル方向へ駆動されるだけであり、データ転送時、高速でデータ転送を行なうことができる。また、各選択スイッチゲートは、２個のトランジスタで構成され、回路のレイアウト面積を低減することができる。
【０１１６】
Ｘレジスタ５４は、クロック信号ＣＬＫＸ（内部の演算処理サイクルを決定するクロック）の立上がりに応答してラッチ状態となる。ここで、図１８においては、＋１シフト動作時の波形を示す。すなわち、エントリ番号ｉのエントリに対し、エントリ番号（ｉ＋１）のエントリのデータが転送され、隣接エントリ間でのデータ転送が行われる。
【０１１７】
図１８は、図１７に示すＡＬＵ間接続回路の動作を示すタイミング図である。以下、図１８を参照して、図１７に示すＡＬＵ間接続回路６５の動作について説明する。
【０１１８】
クロックサイクル♯１においては、転送動作は行なわれず、転送イネーブル信号ＥＣＭ＿ＥＮはＬレベルである。この状態においては、セレクタ３６２は、対応のエントリからのデータを選択する状態に設定され、また、トライステートバッファ３６４は、出力ハイインピーダンス状態にある。Ｘレジスタ５４には、データＤ［ｉ］が格納されている。
【０１１９】
クロックサイクル♯２において、転送イネーブル信号ＥＣＭ＿ＥＮが活性状態のＨレベルに設定される。応じて、セレクタ３６２が、スイッチ回路３６０の出力信号を選択する状態に設定され、また、トライステートバッファ３６４が、活性化される。これにより、Ｘレジスタ５４に保持されているデータＤ［ｉ］に従って、転送出力信号ＥＣＭ＿ＯＵＴがデータＤ［ｉ］に対応する状態に設定される。
【０１２０】
この転送出力信号ＥＣＭ＿ＯＵＴが確定すると、対応のデータ転送配線において出力部からデータが転送され、応じて、各エントリにおいて、個々の転送データ送出部のデータＥＣＭ＿ＩＮ＿ｉのデータが確定状態となる。
【０１２１】
この転送出力信号の送信時においては、プリチャージ指示信号／ＥＣＭ＿ＰＲＣは、Ｌレベルであり、スイッチ回路３６０はプリチャージ状態にある（エントリ選択信号ＥＣＭ＿ＥＮ＿＋１は、非活性状態にある）。
【０１２２】
クロックサイクル♯２において、クロック信号ＣＬＫＸの立下がりに従って、プリチャージ指示信号／ＥＣＭ＿ＰＲＣがＨレベルの非活性状態となり、また、これと並行して、エントリ選択信号ＥＣＭ＿ＥＮ＿＋１が活性化される。このエントリ選択信号ＥＣＭ＿ＥＮ＿＋１の活性化時には、既に、隣接エントリ（ｉ＋１）からトライステートバッファ３６４を介してデータ転送配線に転送された出力データＥＣＭ＿ＩＮ＿＋１が確定状態にある。従って、スイッチ回路３６０からの出力データが、転送データＥＣＭ＿ＩＮ＿＋１に対応する状態となる。
【０１２３】
すなわち、隣接エントリ（ｉ＋１）からの転送データＥＣＭ＿ＩＮ＿＋１がＨレベルのとき、選択スイッチゲートＰＳＱ１において、ＭＯＳトランジスタＮＱ１およびＮＱ２がともに導通状態となり、ノードＮＤが接地電圧レベルに駆動される。この状態においては、インバータＩＶ１の出力信号は、Ｈレベルであり、ＭＯＳトランジスタＰＱ２はオフ状態にあり、ノードＮＤはＬレベルに維持される。一方、隣接エントリ（ｉ＋１）からの転送データＥＣＭ＿ＩＮ＿＋１がＬレベルのときには、選択スイッチゲートＰＳＱ１は非導通状態であり、ノードＮＤは、プリチャージ状態の電圧レベルを維持する。ノードＮＤがＨレベルのときには、インバータＩＶ１の出力信号がＬレベルとなり、応じて、ＭＯＳトランジスタＰＱ２がオン状態となり、ノードＮＤは、電源電圧レベルに維持される。
【０１２４】
したがって、クロックサイクル♯２のクロック信号ＣＬＫＸが立下がる後半サイクルにおいて、スイッチ回路３６０において、隣接エントリ（ｉ＋１）からデータ転送配線ＥＣＭ＿ＩＮ＿＋１を介して転送されるデータＤ［ｉ＋１］に応じたデータを生成して、セレクタ３６２を介してＸレジスタ５４へ伝達する。
【０１２５】
Ｘレジスタ５４は、次のクロックサイクル♯３において、クロック信号ＣＬＫＸが立上がるとラッチ状態となり、その保持データが、転送データＤ［ｉ＋１］に応じた状態に設定される。このクロックサイクル♯３において、プリチャージ指示信号／ＥＣＭ＿ＰＲＣが再びＬレベルの活性状態とされ、スイッチ回路３６０のインバータＩＶ２からの出力信号が再びＨレベルとなる。また、転送イネーブル信号ＥＣＭ＿ＥＮが非活性状態のＬレベルとなり、トライステートバッファ３６４が出力ハイインピーダンス状態となり、また、セレクタ３６２が対応のエントリからのデータをＸレジスタ５４へ転送する状態に設定される。
【０１２６】
Ｘレジスタ５４は、通常のラッチ回路またはフリップフロップで構成され、クロック信号ＣＬＫＸが立ち上がると、内部のデータをラッチする状態に設定されれば良い。クロック信号ＣＬＫＸの立ち上がり時において、スイッチ回路３６０が、プリチャージ状態とされ、その出力信号が初期化されても、Ｘレジスタ５４には、このスイッチ回路３６０からの初期化信号の影響を受けることなく、確実に、転送データがラッチされる。
【０１２７】
この図１８に示すように、転送サイクル♯２において、エントリｉからのデータＤ［ｉ］を対応のデータ出力部から送信データＥＣＭ＿Ｏｕｔとしてデータ転送配線を介して転送し、次のクロックサイクル♯３において、隣接エントリから転送されたデータＤ［ｉ＋１］をＸレジスタ５４に保持することができる。
【０１２８】
なお、このエントリ間のデータ移動量は、隣接エントリ間のデータ移動に限定されず、１回の転送動作により、最大２５６のエントリ間のデータ移動を行なうことができる。
【０１２９】
エントリ間のデータ転送移動量が、データ転送配線において設定されたデータ移動量（たとえば±１、±２および±４…±２５６）と異なる値の場合、この転送サイクルを繰返す（シフトレジスタ態様でデータ転送を行う）ことにより、任意の距離離れたエントリ間のデータ転送（たとえばエントリ＋２５７等の奇数エントリ分離れたエントリとの間での通信）を、実現することができる。これにより、少ないサイクル数で、任意のエントリ間のデータ転送を実現することができる。
【０１３０】
また、このエントリ間のデータ転送において、各エントリが並列にデータ転送を行なってデータの取込みを行なっており、効率的なデータ転送を実現することができる。
【０１３１】
また、スイッチ回路３６０においては、オープンドレイン方式でプリチャージされた内部ノードをドライブしており、スイッチ回路３６０のトランジスタ数を低減することができ、また、高速でデータ転送を行うことが出来る。また、１本のデータ転送配線は、複数のエントリ間データ移動に対応しており、配線領域を低減することができる。
【０１３２】
［実施の形態２］
図１９は、この発明の実施の形態２に従うＡＬＵ間相互接続スイッチ回路の構成を示す図である。図１９においても、１つのエントリに対応して配置されるＡＬＵ間接続回路の構成を示す。この図１９に示すＡＬＵ間接続回路６５は、図１７に示すＡＬＵ間接続回路６５と以下の点でその構成が異なる。すなわち、Ｘレジスタ５４とトライステートバッファ３６４との間に、対応のエントリから読出されたデータとＸレジスタ５４の保持データとを受けるセレクタ３７０が設けられる。このセレクタ３７０は、転送ロードイネーブル信号ＥＣＭ＿ＬＤ＿ＥＮが活性化されると、対応のエントリから読出したデータを選択してトライステートバッファ３６４へ与える。この転送ロードイネーブル信号ＥＣＭ＿ＬＤ＿ＥＮの非活性化時、セレクタ３７０は、Ｘレジスタ５４の出力するデータを選択してトライステートバッファ３６４へ与える。
【０１３３】
図１９に示すＡＬＵ間接続回路６５の他の構成は、図１７に示すＡＬＵ間接続回路６５の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１３４】
図２０は、図１９に示すＡＬＵ間相互接続回路のデータ転送動作を示すタイミング図である。この図２０においても、隣接エントリ（ｉ＋１）からエントリｉへのデータ転送時のタイミング図を示す。以下、図２０を参照して、図１９に示すＡＬＵ間相互接続回路のデータ転送動作について説明する。
【０１３５】
クロックサイクル♯１においては、プリチャージ指示信号／ＥＣＭ＿ＰＲＣがＬレベルの活性状態であり、一方、転送イネーブル信号ＥＣＭ＿ＥＮおよび転送ロードイネーブル信号ＥＣＭ＿ＬＤ＿ＥＮは、Ｌレベルの非活性状態である。セレクタ３６０は、対応のエントリからのデータを選択する状態に設定され、また、セレクタ３７０は、Ｘレジスタ５４の保持出力データを選択する状態に設定される。スイッチ回路３６０は、プリチャージ状態にあり、ノードＮＤは電源電圧レベルである。
【０１３６】
クロックサイクル♯２において、対応のエントリからのデータの読出が実施される。この読出時においては、先の図４において説明したビットシリアル演算時と同様にして実行される。すなわち、メモリセルマットにおいてアドレスポインタに従ってワード線が選択され、ついで、センスアンプが活性化され、選択メモリセルのデータが、演算器に向かって転送される（ロード命令が実行される）。
【０１３７】
このクロックサイクル♯２において、また、データ読出と並行して、クロック信号ＣＬＫＸの立上がりと同期して、転送イネーブル信号ＥＣＭ＿ＥＮおよび転送ロードイネーブル信号ＥＣＭ＿ＬＤ＿ＥＮが活性状態に設定される。プリチャージ指示信号／ＥＭＣ＿ＰＲＣは、活性状態にある。応じて、対応のエントリから読出されたデータが、セレクタ３７０において選択され、トライステートバッファ３６４により増幅されて、転送出力データＥＣＭ＿ＯＵＴとして、対応のエントリから読出データＤ［ｉ］に対応するデータが出力される。
【０１３８】
次いで、このクロックサイクル♯２において、クロック信号ＣＬＫＸの立下がりに同期して、プリチャージ指示信号／ＥＣＭ＿ＰＲＣを非活性状態に設定し、またエントリ選択信号ＥＣＭ＿ＥＮ＿＋１を活性状態に設定する。応じて、スイッチ回路３６０がイネーブルされ、この隣接エントリ（ｉ＋１）からデータ転送配線を介して入力部ＥＣＭ＿ＩＮ＿＋１上に伝達されたデータＤ［ｉ＋１］が選択される。このとき、セレクタ３６２は、転送イネーブル信号ＥＣＭ＿ＥＮに従って、スイッチ回路３６０の出力信号を選択する状態に設定されており、セレクタ３６２を介してスイッチ回路３６０からのデータＤ［ｉ＋１］に応じたデータが、Ｘレジスタ５４へ転送される。
【０１３９】
このクロックサイクル♯２においてクロック信号ＣＬＫＸがＬレベルに立下がると、Ｘレジスタ５４は、スルー状態となり、与えられたデータを取り込む。クロックサイクル♯３において、クロック信号ＣＬＫＸがＨレベルに立上がると、Ｘレジスタ５４が、取り込んだデータをラッチし、その保持データが、データＤ［ｉ＋１］に確定する。
【０１４０】
したがって、この場合、クロックサイクル♯２において、メモリセルマットからのデータ読出と、エントリ間通信を行なったことになる。これにより、Ｘレジスタ５４に、一旦転送データを保持させる動作が不要となり、エントリ間通信に要するクロックサイクル数を低減することができる。
【０１４１】
以上のように、Ｘレジスタ５４をバイパスして、対応のエントリからのデータに従って、転送データを生成して、データ転送配線経路のデータ出力部へ転送することにより、Ｘ
レジスタに転送データを格納するサイクルが不要となり、高速のエントリ間通信を実現することができる。
【０１４２】
なお、このエントリ指定信号ＥＣＭ＿ＥＮ＿ｋおよびエントリ転送指示信号ＥＣＭ＿ＥＮおよびプリチャージ指示信号／ＥＣＭ＿ＰＲＣは、先の図１に示すコントローラ２２からプログラム命令（マイクロ命令メモリ）２１に格納された命令に従って生成される。
【０１４３】
また、演算器の構成としては、Ｘレジスタ、ＸＨレジスタおよびＸＬレジスタを含む図８に示す構成の場合、およびＸレジスタのみがデータ転送用に設けられる図６に示す構成のいずれが用いられても良い。演算器内のデータ転送用のレジスタに対して図１７または図１９に示す構成を設ける。
【０１４４】
この実施の形態２に従うＡＬＵ間接続回路の構成においても、１本のデータ転送配線の通信可能エントリ以外のエントリとの間でデータ転送を行う場合、データ転送動作を繰返し実行する。すなわち、転送エントリ選択信号ＥＣＭ＿ＥＮ＿±ｊを順次ｊを設定してデータ転送サイクル（サイクル♯２の動作）を行うことにより、転送データを順次シフトして転送して目標エントリに転送することができ、任意のエントリ間でのデータ通信を実現することができる。
【０１４５】
以上のように、このエントリ間の通信機能を利用することにより、メモリセルマットに格納されたデータを、たとえばバルブシフタを用いた場合と同様に、エントリ間をシフトさせることができ、シフトレジスタを用いたデータ転送と同様のデータ転送動作を実現することができる。このデータ転送機能を利用することにより、データのコピー操作、画像データ処理において画素マトリクスを利用するフィルタ処理等での隣接画素データを利用する演算等を高速で実行することが可能となる。
【産業上の利用可能性】
【０１４６】
この発明は、メモリセルマットが複数のエントリに分割され、エントリに対応して演算器が配置される半導体演算処理装置に適用することにより、小配線レイアウト面積で高速にデータを転送して演算処理を行なう、多機能の高速演算処理装置を実現することができる。
【０１４７】
この半導体演算処理装置は、画像データまたは音声データなどの大量のデータの処理用途に適用することにより、フィルタ処理などの、エントリ間のデータを用いて処理を行なう場合に、高速演算処理を実現することができる。
【図面の簡単な説明】
【０１４８】
【図１】この発明に従うエントリ間転送回路が適用される半導体演算処理装置の全体の構成を概略的に示す図である。
【図２】図１に示す主演算回路の構成を概略的に示す図である。
【図３】図２に示す主演算回路における演算シーケンスを模式的に示す図である。
【図４】図２に示す主演算回路における演算処理シーケンスの内部タイミングを示す図である。
【図５】図１に示すコントローラの制御態様を概略的に示す図である。
【図６】図１に示す演算器の構成の一例を示す図である。
【図７】図６に示す演算器を用いる際のエントリ間データ移動を行なう命令を一覧にして示す図である。
【図８】図１に示す演算器の他の構成を概略的に示す図である。
【図９】図８に示す演算器の２ビット演算時の接続を示す図である。
【図１０】図８に示す演算器の１ビット演算時の内部接続を示す図である。
【図１１】図８に示す主演算器を用いるエントリ間データ移動を指定する命令を一覧して示す図である。
【図１２】図８に示す演算器の２ビット動作時のエントリ間データ移動の命令を一覧して示す図である。
【図１３】この発明の実施の形態１に従うＡＬＵ間相互接続スイッチ回路の配線を概略的に示す図である。
【図１４】図１３に示す配線レイアウトにおけるＸレジスタのデータ転送時のレジスタ値を一覧にして示す図である。
【図１５】図１３に示す配線レイアウトのメモリセルマット両端部のエントリ間のデータ転送経路を概略的に示す図である。
【図１６】この発明の実施の形態１に従うＡＬＵ間相互接続スイッチ回路と演算器との配線接続の構成を概略的に示す図である。
【図１７】図１６に示すＡＬＵ間相互接続回路６５の構成を概略的に示す図である。
【図１８】図１７に示すＡＬＵ間相互接続回路の動作を示すタイミング図である。
【図１９】この発明の実施の形態２に従うＡＬＵ間接続回路（エントリ間転送回路）の構成を概略的に示す図である。
【図２０】図１９に示すＡＬＵ間相互接続回路の動作を示すタイミング図である。
【符号の説明】
【０１４９】
１  演算処理システム、２  システムＬＳＩ、ＦＢ１−ＦＢｈ  基本演算ブロック、２０  主演算回路、３０  メモリセルマット、３１  演算器（ＡＬＵ）、３２  ＡＬＵ間相互接続用スイッチ回路、２２  コントローラ、５４  Ｘレジスタ、６５  ＡＬＵ間接続回路、３００  データ転送配線、ＸＰ１，ＸＰ２，ＸＰ４，ＸＮ１，ＸＮ２，ＸＮ４  転送データ送出部、３２０  単位配線領域、３３０ｐ，３３０ｎ  メモリセルエントリ端部間シフト動作用配線、３０５ａ，３０５ｈ，３０５ｌ  転送データ出力部、３４０ａ，３４０ｈ，３４０ｌ  転送配線束、３５０ａ，３５０ｈ，３５０ｌ  転送データ入力部、３６０  スイッチ回路、３６２  セレクタ、３６４  トライステートバッファ、ＰＳＱ２５６，ＰＳＱ１，ＮＳＱ１，ＮＳＱ２５６  選択スイッチゲート、３７０  セレクタ。
【図１】
2007200090.tif 000003
【図２】
2007200090.tif 000004
【図３】
2007200090.tif 000005
【図４】
2007200090.tif 000006
【図５】
2007200090.tif 000007
【図６】
2007200090.tif 000008
【図７】
2007200090.tif 000009
【図８】
2007200090.tif 000010
【図９】
2007200090.tif 000011
【図１０】
2007200090.tif 000012
【図１１】
2007200090.tif 000013
【図１２】
2007200090.tif 000014
【図１３】
2007200090.tif 000015
【図１４】
2007200090.tif 000016
【図１５】
2007200090.tif 000017
【図１６】
2007200090.tif 000018
【図１７】
2007200090.tif 000019
【図１８】
2007200090.tif 000020
【図１９】
2007200090.tif 000021
【図２０】
2007200090.tif 000022