JP2006164183A - 半導体信号処理装置 - Google Patents

半導体信号処理装置 Download PDF

Info

Publication number
JP2006164183A
JP2006164183A JP2004358719A JP2004358719A JP2006164183A JP 2006164183 A JP2006164183 A JP 2006164183A JP 2004358719 A JP2004358719 A JP 2004358719A JP 2004358719 A JP2004358719 A JP 2004358719A JP 2006164183 A JP2006164183 A JP 2006164183A
Authority
JP
Japan
Prior art keywords
data
memory
bit
orthogonal
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004358719A
Other languages
English (en)
Inventor
Hideyuki Noda
英行 野田
Kazutami Arimoto
和民 有本
Katsumi Dosaka
勝己 堂阪
Kazunori Saito
和則 齊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004358719A priority Critical patent/JP2006164183A/ja
Priority to US11/282,714 priority patent/US20060143428A1/en
Publication of JP2006164183A publication Critical patent/JP2006164183A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)

Abstract

【課題】 並列演算処理を行う信号処理装置において、演算の並列性を損なうことなく、データ転送効率を高くする。
【解決手段】 システムバスインターフェイスと演算用データを格納するメモリセルマットの間に、システムバスデータ(DTV)と演算用データ(DTH)の配列を変換する直交メモリ(80)を設ける。この直交メモリは、2ポートメモリセル(MCS)を含で構成され、ビットパラレルかつワードシリアルに転送されたデータ(DTV)をワードパラレルかつビットシリアなデータ(DTH)に変化する。
【選択図】 図12

Description

この発明は、半導体信号処理装置に関し、特に、半導体メモリを用いて大量のデータの演算処理を高速で行なうことのできる信号処理用集積回路装置の構成に関する。より特定的には、この発明は、演算データ格納用の半導体メモリとの間で効率的に転送を行なうための構成に関する。
近年、携帯端末機器の普及に伴い、音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このようなデジタル信号処理には、一般に、専用の半導体装置としてDSP(デジタル・シグナル・プロセッサ)が用いられる。音声および画像データに対するデジタル信号処理においては、フィルタ処理などのデータ処理が行なわれ、このような処理においては、積和演算を繰返す演算処理が多い。したがって、一般に、DSPの構成においては、乗算回路、加算回路および演算前後のデータの格納用のレジスタが設けられる。このような専用のDSPを用いると、積和演算を1マシンサイクルで実行することが可能となり、高速演算処理が可能となる。
このような積和演算を行なう際に、レジスタファイルを利用する構成が、特許文献1(特開平6−324862号公報)に示されている。この特許文献1に示される構成においては、レジスタファイルに格納された2項のオペランドデータを読出して演算器で加算し、加算結果データを書込データレジスタを介してレジスタファイルに書込む。レジスタファイルに対して書込アドレスおよび読出アドレスを同時に与えてデータの書込およびデータの読出を並行して行なうことにより、データの書込サイクルおよびデータの読出サイクルを別々に設けて演算処理する構成に比べて処理時間を短縮することを図る。
また、大量のデータを高速で処理することを意図する構成が、特許文献2(特開平5−197550号公報)に示されている。この特許文献2に示される構成においては、複数の演算装置を並列に配置し、それぞれの演算装置にメモリを内蔵する。各演算装置において個々にメモリアドレスを生成することにより並列演算を高速で行なうことを図る。
また、画像データのDCT変換(離散コサイン変換)などの処理を高速に行なうことを目的とする信号処理装置が、特許文献3(特開平10−74141号公報)に示されている。この特許文献3に示される構成においては、画像データがビットパラレルかつワードシリアルなシーケンスで、すなわちワード(画素データ)単位で入力されるため、直列/並列変換回路を用いてワードパラレルかつビットシリアルなデータ列に変換してメモリアレイに書込む。メモリアレイに対応して配置される演算器(ALU)へデータを転送して並列処理を実行する。メモリアレイは、画像データブロックに応じてブロックに分割されており、各ブロックにおいて対応の画像ブロックを構成する画像データがメモリアレイの行ごとにワード単位で格納される。
この特許文献3に示される構成においては、メモリアレイと対応の演算器との間でワード(1つの画素に対応するデータ)単位でデータを転送する。各ブロック個々に対応の演算器において転送されたワードに対して同一処理を実行することにより、DCT変換などのフィルタ処理を高速で実行することを図る。演算処理結果は、再びメモリアレイに書込み、再度並列/直列変換を行なってビットシリアルかつワードパラレルデータをビットパラレルかつワードシリアルなデータに変換して1ラインごとのデータを順次出力する。通常の処理においては、データのビット位置の変換は行なわれず、演算器において通常の演算処理を複数のデータに対して並列に実行する。
また、複数の異なる演算処理を並行して実行することを目的とするデータ処理装置が、特許文献4(特開2003−114797号公報)に示されている。この特許文献4に示される構成においては、各々その機能が限定された複数の論理モジュールをマルチポート構成のデータメモリに接続する。これらの論理モジュールとマルチポートデータメモリとの接続においては、論理モジュールが接続されるマルチポートデータメモリのポートおよびメモリが制限されており、各論理モジュールがマルチポートデータメモリへアクセスしてデータの読出および書込を行なうことのできるアドレス領域が制限される。各論理モジュールで演算を行なった結果は、アクセスが許可されたメモリに書込み、これらのマルチポートメモリを介して順次データを論理モジュールを介して転送することにより、パイプライン的にデータ処理を行なうことを図る。
特開平6−324862号公報 特開平5−197550号公報 特開平10−74141号公報 特開2003−114797号公報
処理対象のデータ量が非常に多い場合には、専用のDSPを用いても性能を飛躍的に向上させることは困難である。たとえば、演算対象のデータが1万組ある場合、1つ1つのデータに対する演算を1マシンサイクルで実行することができたとしても、最低でも1万サイクルが演算に必要となる。したがって、特許文献1に示されるようなレジスタファイルを用いて積和演算を行なうような構成の場合、1つ1つの処理は高速であるものの、データ処理が直列に行なわれるため、データ量が多くなるとそれに比例して処理時間が長くなり、高速処理を実現することができない。また、このような専用のDSPを利用する場合、処理性能は動作周波数に大きく依存することになるため、高速処理を優先した場合、消費電力が増大することになる。
また、この特許文献1に示されるようなレジスタファイルおよび演算器を利用する構成の場合、ある用途に特化して設計されることが多く、演算ビット幅および演算回路の構成等が固定される。したがって、他の用途に転用する場合には、そのビット幅および演算回路の構成を再設計する必要があり、複数の演算処理用途に柔軟に対応することができなくなるという問題が生じる。
また、特許文献2に示される構成においては、演算装置個々にメモリが内蔵されており、各演算装置において異なるメモリアドレス領域をアクセスして処理を行なう。しかしながら、データメモリと演算装置とは別々の領域に配置されており、論理モジュール内において演算装置とメモリとの間でアドレスを転送してデータアクセスを行なう必要があり、データ転送に時間を要し、このため、マシンサイクルを短縮することができなくなり、高速処理を行なうことができなくなるという問題が生じる。
特許文献3に示される構成において、画像データのDCT変換などの処理を高速化することを図っており、画面1ラインの画素データを1行のメモリセルに格納して行方向に整列する画像ブロックに対して並列に処理を実行する。したがって、画像の高精細化のために1ラインの画素数が増大した場合、メモリアレイが膨大なものとなる。たとえば、1画素のデータが8ビットで1ラインの画素数が512個の場合でも、メモリアレイの1行においては、メモリセルの数が8・512=4Kビットとなり、1行のメモリセルが接続される行選択線(ワード線)の負荷が大きくなり、高速でメモリセルを選択してデータを演算部とメモリセルとの間で転送することができなくなり、応じて高速処理を実現することができなくなるという問題が生じる。
また、この特許文献3においては、メモリセルアレイを演算回路群両側に配置する構成が示されているものの、具体的なメモリセルアレイの構造は示されておらず、また演算回路において演算器をアレイ状に配置することは示されているものの、どのように演算器群を配置するのかの詳細については何ら示されていない。
また、特許文献4に示される構成においては、複数のマルチポートデータメモリと、これらのマルチポートデータメモリに対してアクセス領域が占有される複数の低機能の演算器(ALU)とが設けられる。しかしながら、この演算器(ALU)とメモリとは別の領域に配置されており、配線容量およびインターフェイスでのゲート遅延などにより、高速でデータを転送することができず、パイプライン処理を実行しても、このパイプラインのマシンサイクルを短縮することができなくなるという問題が生じる。
また、これらの特許文献1から4においては、演算処理対象のデータの語構成が異なる場合、どのように対応するかについては何ら検討していない。
本願発明者らは、この演算処理対象のデータの語構成が異なる場合においても、高速に演算処理を行なう構成を既に考案している(特願2004−171658号、特願2004−282014号)。この信号処理装置においては、メモリアレイの各列(ビット線延在方向;エントリ)に対応して演算器を配置し、各エントリに処理対象のデータを格納し、演算器それぞれにおいてビットシリアル態様で演算処理を行なう。
この構成の場合、各列に対応するエントリにおいては、処理対象データが格納されビットシリアル態様で演算処理が実行されるため、データのビット幅が異なる場合においても、演算処理時間が長くなるだけであり、容易に語構成の異なるデータの処理を行なうことができる。
また、並列に各演算器において処理を実行する構成とされており、エントリ(列)の数の演算器が同時に並列処理を実行するため、各データをシーケンシャルに処理する場合に比べて処理時間を短縮することができる。例えば、エントリ数が1024であり、8ビットデータの2項演算処理を行う場合、2項データの転送、演算および演算結果の格納にそれぞれ1マシンサイクルが必要とすると、ぞれぞれ、8x2、8、および8サイクルを要するため、32サイクル(キャリの格納にさらに1サイクルが必要となる)の演算サイクルが必要となる。しかしながら、1024エントリにおいて並列演算処理を実行するため、1024個のデータを逐次演算処理する構成に比べて大幅に演算に要する時間を短縮することができる。
しかしながら、このような処理の並列性という特徴を効果的に利用して高速処理を実現するためには、演算前後のデータを格納するメモリ領域に対して効率的にデータ転送を行なうことが要求される。また、このようなデータ転送を行なう回路には、小占有面積かつ低消費電力の条件が要求される。これらの観点から、この本願発明者らのグループの並列演算信号処理装置は、まだ、改善の余地があると言える。
それゆえ、この発明の目的は、効率的に演算処理を行なうことのできる半導体信号処理装置を提供することである。
この発明の他の目的は、メモリアレイと演算器群とが集積化された半導体信号処理装置において、演算データの転送をそのメモリ領域に対して効率的に行なうことのできる半導体信号処理装置を提供することである。
この発明の第1の観点に係る半導体信号処理装置は、各々が第1の方向に整列して配置される複数のメモリセルを有する複数のエントリに分割されるメモリセルマットと、このメモリセルマットのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行なってその演算結果を対応のエントリに格納することのできる複数の演算器とを含む基本ブロックを備える。1つのエントリには同一データの各ビットが格納される。
この発明の第1の観点に係る半導体信号処理装置は、さらに、この基本演算ブロックののメモリアレイとの間でデータを転送する内部データ転送バスと、装置外部に対するインターフェイスを与えるインターフェイス部と、このインターフェイス部と内部データバスとの間に配置され、インターフェイス部と内部データバスとの間でデータの並び替えを行なうデータ配列変換回路を備える。内部データ転送バスは、装置外部の転送データのビット幅よりも広いビット幅を有する。
データ配列変換回路は、各エントリが延在する第1の方向に延在して配置される複数の第1のワード線と、第1の方向と交差する第2の方向に延在して配置される複数の第2のワード線と、第2の方向に延在して配置される複数の第1のビット線対と、第1の方向に延在して配置される複数の第2のビット線対と、第1および第2の方向に整列してアレイ状に配列され、それぞれ第1のワード線と第1のビット線対の交差部および第2のワード線と第2のビット線対の交差部に対応して配置される複数のSRAMセルを備える。第1のワード線は第2のビット線対に対応して配置され、かつ第2のワード線は前記第1のビット線対に対応して配置される。
データ配列変換回路は、さらに、インターフェイス部との間のデータ転送時、第1のワード線および前記第1のビット線対を選択する第1のセル選択手段と、グローバルデータバスとの間でデータ転送時、第2のワード線および前記第2のビット線対を選択する第2のセル選択手段を備える。
この発明の第2の観点に係る半導体信号処理装置は、各々が第1の方向に整列して配置される複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、このメモリアレイのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行ないかつ該演算結果を対応のエントリに格納することのできる複数の演算器とを含む基本演算ブロックを備える。1つのエントリには同一データの各ビットが格納される。
この発明の第2の観点に係る半導体信号処理装置は、さらに、メモリセルマットに対応して配置され、内部データ転送バスとメモリセルマットとの間でデータの並べ替えを行なうデータ配列変換回路を備える。
このデータ配列変換回路は、各エントリに対応して配置される複数の第1のワード線と、この第1の方向と直交する第2の方向に延在して配置される複数の第2のワード線と、第2の方向に延在して配置される複数の第1のビット線対と、第1の方向に延在して各エントリに対応して配置される複数の第2のビット線対と、第1および第2の方向に整列してアレイ状に配列され、それぞれ第1のワード線と第1のビット線対の交差部および第2のワード線と第2のビット線対の交差部に対応して配置される複数のSRAMセルを備える。第1のワード線は第2のビット線対に対応して配置され、かつ第2のワード線は第1のビット線対に対応して配置される。第2のビット線は、メモリセルマットのビット線と交通に配置される。
このデータ配列変換回路は、さらに、内部データバスとの間でのデータ転送時、第1のワード線および第1のビット線対を選択する第1のセル選択手段と、エントリとの間でのデータ転送時、第2のワード線および第2のビット線対を選択する第2のセル選択手段と、このエントリと対応の第2のビット線対との間でデータを転送するデータ転送手段とを備える。
第1および第2のワード線は互いに直交しており、従って、第1のワード線選択時のデータ配列と第2のワード線選択時のデータ配列を直交的に変換することができ、メモリセルマットとの間でのデータ転送時、データワードを、ビットシリアルでデータワードパラレルの態様でデータを転送することができ、また装置外部または内部データバスとの間でのデータ転送時、ビットパラレルかつデータワードシリアルの態様でデータを転送することができる。これにより、データ転送を外部と内部で整合を取って行うことができ、高速データ転送を実現することができ、メモリセルマットとの間でのデータ転送に要する時間を短縮することができる。
また、データ配列変換に、SRAMセルを利用することにより、小占有面積で高速アクセスすることのできるデータ配列変換回路を実現することができる。
[発明が適用される演算モジュールの全体構成]
図1は、この発明が適用される演算機能モジュールの構成を概略的に示す図である。この演算機能モジュール1の詳細構成については、先に、本願発明者のグループにより既に出願しており、当該先願明細書中において詳細に記載されているものの、以下では、本発明のデータ転送部の構成および機能の理解を容易とするために、簡単に、本発明が適用される演算機能モジュール(演算装置)の構成および動作について説明する。
図1において、演算機能モジュール1は、システムバス5を介してホストCPU(中央演算処理装置)2、DMA回路(ダイレクト・メモリ・アクセス・コントロール回路)4およびメモリ3に結合されて信号処理システムを構成する。ホストCPU2は、この演算機能モジュール1における処理の制御、システム全体の制御およびデータ処理を行なう。メモリ3は、このシステムの主記憶として利用されて、必要な種々のデータを格納する。後に詳細に説明するように、このメモリ3は、大記憶容量のメモリ、高速のメモリおよび副はつ性のメモリを含む。
DMA回路4は、ホストCPU2を介することなく直接メモリ3へアクセスするために用いられ、このDMA回路4の制御により、メモリ3と演算機能モジュール1との間でデータ転送を行なうことができ、また、演算機能モジュール1へ直接アクセスすることができる。
演算機能モジュール1は、複数の並列に設けられる基本演算ブロックFB1−FBnと、システムバス5との間でデータ/命令を転送する入出力回路10と、この演算機能モジュール1内部での動作処理を制御する集中制御ユニット15を含む。
基本演算ブロックFB1−FBnおよび入出力回路10は、グローバルデータバス10に結合され、集中制御ユニット15、入出力回路10および基本演算ブロックFB1−FBnは、また、制御バス14に結合される。基本演算ブロックFB(FB1−FBnを総称的に示す)の間には、隣接ブロック間データバス16が設けられる(図1においては、基本演算ブロックFB1およびFB2の間に配置される隣接ブロック間データバス16を代表的に示す)。
基本演算ブロックFB1−FBnが並列に配置され、この演算機能モジュール内部で、並列に同一または異なる演算処理を実行する。基本演算ブロックFB1−FBnは同一構成を有するため、図1においては、基本演算ブロックFB1の構成を代表的に示す。
基本演算ブロックFB1は、メモリセルアレイおよび演算器を含む主演算回路20と、マイクロコード化された実行プログラムを格納するマイクロプログラム格納メモリ23と、基本演算ブロックFB1の内部動作を制御するコントローラ21と、アドレスポインタ等として用いられるレジスタ群22と、主演算回路20における不良の救済等を行なうためのヒューズプログラムを実行するためのヒューズ回路24を含む。
コントローラ21は、ホストCPU2からシステムバス5および入出力回路10を介して与えられる制御命令により制御が手渡されて、基本演算ブロックFB1−FBnの動作を制御する。これらの基本演算ブロックFB1−FBnにマイクロプログラム格納メモリ23を設け、コントローラ21が、このマイクロプログラム格納メモリ23内に実行プログラムを格納することにより、基本演算ブロックFB1−FBnそれぞれにおいて実行する処理内容を変更することができる。
隣接ブロック間データバス16を用いて基本演算ブロックFB1−FBnの間のデータ転送を行なうことにより、グローバルデータバス12を占有することなく基本演算ブロック間の高速データ転送が可能となり、またある基本演算ブロックにグローバルデータバス12を介してデータ転送を行なっている間に、別の基本演算ブロック間でデータ転送を行なうことができる。
集中制御ユニット15は、制御用CPU25と、この制御用CPU25が実行する命令を格納するメモリ命令26と、制御用CPU25のワーキングレジスタまたはポインタ格納用のレジスタを含むレジスタ群27と、マイクロプログラムのライブラリを格納するマイクロプログラムライブラリ格納メモリ28を含む。この集中制御ユニット15は、制御バス14を介してホストCPU2から制御権を手渡され、この制御バス14を介して基本演算ブロックFB1−FBnの処理動作を制御する。
マイクロプログラムライブラリ格納メモリ23に各種シーケンス処理がコード化されたマイクロプログラムをライブラリとして格納する。集中制御ユニット15から必要なマイクロプログラムを選択して基本演算ブロックFB1−FBnのマイクロプログラム格納メモリ23に格納されるマイクロプログラムを変更することことにより、処理内容の変更に柔軟に対応することができる。
また、ヒューズ回路24を利用することにより、基本演算ブロックFB1−FBnのそれぞれにおいて不良発生時、冗長置換を用いて不良救済を行なうことにより歩留りを改善する。
図2は、図1に示す基本演算ブロックFB1−FBnそれぞれに含まれる主演算回路20の要部の構成を概略的に示す図である。図2において、主演算回路20は、メモリセルMCが行列状に配列されるメモリセルマット30と、このメモリセルマット30の一方端に配列される演算処理ユニット(ALU)群32を含む。
メモリセルマット30においては、行列状に配列されるメモリセルMCが、m個のエントリERYに分割される。エントリERYは、nビットのビット幅を有する。1つのエントリERYは、ビット線延在方向の1列のメモリセルで構成される。
演算処理ユニット群32は、エントリERYそれぞれに対して設けられる演算処理ユニット(ALU)34を含む。演算処理ユニット34は、加算、論理積、一致検出(EXOR)、および反転(NOT)などの演算を実行することができる。
エントリERYと対応の演算処理ユニット34との間でデータのロードおよびストアを行なって演算処理を実行する。
エントリERYには、それぞれ、演算処理対象のデータが格納され、演算処理ユニット(ALU)34は、ビットシリアル態様(データワードをビット単位で順次処理する態様)で演算処理を実行する。したがって、演算処理ユニット群32においては、ビットシリアルかつエントリパラレルな態様でデータの演算処理が実行される。ここで、エントリパラレルな態様は、複数のエントリが並行して処理される態様を示す。
演算処理ユニット34においてビットシリアル態様で演算処理を実行することにより、演算対象のデータのビット幅が用途に応じて異なる場合においても、単に演算サイクル数がデータワードのビット幅に応じて変更されるだけであり、その処理内容は変更されず、語構成の異なるデータ処理に対しても容易に対応することができる。
また、複数のエントリERYのデータを、演算処理ユニット群32において同時に処理することができ、エントリ数mを大きくすることにより、大量のデータを一括して演算処理することができる。一例として、エントリ数mは1024であり、1エントリERYのビット幅nは512ビットである。
図3は、図2に示すメモリセルMCの構成の一例を示す図である。図3において、メモリセルMCは、電源ノードとストレージノードSN1の間に接続されかつそのゲートがストレージノードSN2に接続されるPチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)PQ1と、電源ノードとストレージノードSN2の間に接続されかつそのゲートがストレージノードSN1に接続されるPチャネルMOSトランジスタPQ2と、ストレージノードSN1と接地ノードの間に接続されかつそのゲートがストレージノードSN2に接続されるNチャネルMOSトランジスタNQ1と、ストレージノードSN2と接地ノードの間に接続されかつそのゲートがストレージノードSN1に接続されるNチャネルMOSトランジスタNQ2と、ワード線WL上の電位に応答してストレージノードSN1およびSN2を、それぞれ、ビット線BLおよび/BLに接続するNチャネルMOSトランジスタNQ3およびNQ4を含む。
図3に示すメモリセルMCは、SRAM(スタティック・ランダム・アクセス・メモリ)セルであり、高速アクセスを行ってデータの転送を行うことができる。また、データの定期的なリフレッシュは不要であり、データに対する演算処理の制御を簡略化することができる。
ビット線BLおよび/BLが図2に示すエントリERYの延在方向に沿って配置され、ワード線WLが、エントリERYと直交する方向に配設される。
図2において、主演算回路20において演算を行なう場合には、まずエントリERYそれぞれに、演算対象データが格納される。次いで、格納されたデータのある桁のビットを、すべてのエントリERYについて並列に読出して、対応の演算処理ユニット34へ転送(ロード)する。すなわち、図3に示すワード線WLを選択状態へ駆動することにより、選択ワード線に接続されるメモリセルMCのデータが対応のビット線BLおよび/BL上に読出されて、この読出したデータが対応の演算処理ユニット34へ転送される。
2項演算を行なう場合には、エントリERYそれぞれにおいて別のデータワードのビットに対して同様の転送動作を行なった後、演算処理ユニット34各々が、2入力演算を行なう。この演算処理結果は、演算処理ユニット34から対応のエントリERY内の所定領域に再書込(ストア)される。
図4は、図2に示す主演算回路20における演算操作を例示的に示す図である。図2において、2ビット幅のデータワードaおよびbの加算を行なって、データワードcを生成する。エントリERYには、演算対象の組をなすデータワードaおよびbがともに格納される。
図4において、第1行目のエントリERYに対する演算処理ユニット34においては、10B+01Bの加算が行なわれ、2行目のエントリに対する演算処理ユニット34においては、00B+11Bの演算が行なわれる。ここで、“B”は、二進数を示す。3行目のエントリに対する演算処理ユニットにおいては、11B+10Bの演算が行なわれる。以下、同様に、各エントリに格納されたデータワードaおよびbの加算演算が実行される。
演算は、下位側ビットから順にビットシリアル態様で行なわれる。まず、エントリERYにおいてデータワードaの下位ビットa[0]を対応の演算処理ユニット34へ転送する。次にデータワードbの下位ビットb[0]を対応の演算処理ユニット34へ転送する。演算処理ユニット(ALU)34においては、それぞれ、与えられた2ビットデータを用いて加算演算を行なう。この加算演算結果a[0]+b[0]は、データワードcの下位ビットc[0]の位置に書込まれる(ストアされる)。たとえば、第1行目のエントリERYにおいては、“1”がc[0]の位置に書込まれる。
この加算器処理が、次いで上位ビットa[1]およびb[1]に対しても行なわれ、その演算結果a[1]+b[1]が、ビットc[1]の位置に書込まれる。
加算演算においては、桁上がりが生じる可能性があり、この桁上がり(キャリ)値が、ビットc[2]の位置に書込まれる。このように、データワードaおよびbの加算がすべてのエントリERYにおいて完了し、その結果が、データcとしてエントリERYそれぞれにおいて格納される。1024個のエントリが設けられる場合、1024組のデータの加算を並列に実行することができる。
メモリセルマット30と演算処理ユニット34との間でのデータビットの転送にそれぞれ1マシンサイクル必要とされ、また演算処理ユニット34において1マシンサイクルの演算サイクルが必要とされる構成の場合、2ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。しかしながら、メモリセルマット30を複数のエントリERYに分割し、各エントリERYに演算対象データの組をそれぞれ格納し、対応の演算処理ユニット34においてビットシリアル態様で演算処理を行なう構成において以下の特徴が実現される。すなわち、1つ1つのデータの演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより、高速データ処理を実現することができる。また、ビットシリアル態様で演算処理を行なっており、処理されるデータのビット幅は固定されないため、種々のデータ構成を有するアプリケーションに容易に適応することができる。
図5は、主演算回路20の構成をより具体的に示す図である。メモリセルマット30においては、メモリセルMCの各行に対応してワード線WLが配置され、メモリセル列それぞれに対応してビット線対BLPが配置される。メモリセルMCは、これらのワード線WLおよびビット線対BLPの交差部に対応して配置され、対応のワード線WLおよびビット線対BLPに接続される。
エントリERYは、各ビット線対BLPに対応して設けられる。図5においては、メモリセルマット30においてビット線対BLP0からBLP(m−1)それぞれに対応してエントリERY0−ERY(m−1)が配置される。ビット線対BLPが、対応のエントリERYと対応の演算処理ユニット34との間のデータ転送線として利用される。
メモリセルマット30のワード線WLに対してはロウデコーダ46が設けられる。このロウデコーダ46は、図1に示すコントローラ21からのアドレス信号に従って、演算対象のデータビットを格納するメモリセルが接続されるワード線WLを選択状態へ駆動する。ワード線WLには、エントリERY0−ERY(m−1)の同一位置のメモリセルが接続されており、ロウデコーダ46により、エントリERYそれぞれにおいて同一位置のデータビットが選択される。
演算処理ユニット群(ALU群)32においては、演算処理ユニット34が、ビット線対BLP0−BLP(m−1)に対応して配置される(図5においては明確に示していない)。この演算処理ユニット群32とメモリセルマット30との間に、データのロード/ストアを行なうためのセンスアンプ群40およびライトドライバ群42が設けられる。
センスアンプ群40は、ビット線対BLPに対応して設けられるセンスアンプを含み、対応のビット線対BLPに読出されたデータを増幅して演算処理ユニット群32の対応の演算処理ユニット34に伝達する。
ライトドライバ群42も同様、ビット線対BLPそれぞれに対応して配置されるライトドライバを含み、対応の演算処理ユニット34からのデータを増幅して対応のビット線対BLPへ転送する。
これらのセンスアンプ群40およびライトドライバ群42に対し、図1に示す入出力回路10との間のデータ転送を行なうためのグローバルデータバス12が配置される。図5においては、このグローバルデータバス12は、センスアンプ群40およびライトドライバ群42にそれぞれ別々に接続されるバス線を含むように示されるものの、これらのセンスアンプ群40およびライトドライバ群42へは、同じデータバス線が接続されてもよい。また、グローバルデータバス12とセンスアンプ群40およびライトドライバ群42との間にデータ入出力用のインターフェイスが配置されていても良い。
演算処理ユニット群32に対して、さらに、ALU間相互接続用スイッチ回路44が設けられる。このスイッチ回路44は、演算処理ユニット34間の相互接続経路を、図1に示すコントローラ21からの制御信号に基づいて設定する。これにより、バレルシフタなどと同様に、隣接演算処理ユニット間でのデータ転送のみならず、物理的に遠くに離れた演算処理ユニット間でのデータ転送を行なうことができる。このALU間相互接続用スイッチ回路44は、たとえば、FPGA(フィールド・プログラマブル・ゲート・アレイ)などを用いたクロスバースイッチで実現される。
また、演算処理ユニット群32の各演算処理ユニット34は、図1に示すコントローラ21からの制御信号に従ってその演算処理動作タイミングおよび演算操作内容が決定される。
図6は、この主演算回路20のメモリセルマット30におけるデータDATAの格納と外部データの配列を概略的に示す図である。メモリセルマット30においては、エントリERYそれぞれに、処理対象のデータDATAの組が格納される。図6においては、メモリセルマット30の2つの領域RGAおよびRGBにおいてそれぞれ、演算処理対象のデータが格納される状態を一例として示す。
演算処理ユニット群32を用いて演算処理を行なう場合、エントリERYの各データビットを対応の演算処理ユニット(ALU)34に転送する。したがって、演算処理を行なう場合、データ転送に先立って、ロウデコーダ46により、ワード線WLを選択する。このワード線WLには、メモリセルマット30の各エントリERYのメモリセルが接続されており、演算処理対象のデータをビットシリアル態様で対応の演算処理ユニット(ALU)34との間で転送を行なう。
一方、システムバス5上を転送されるデータDATAは、1アドレス(CPUアドレス)のデータワードであり、このデータDATAの各ビットが並列にシステムバス5上を転送される。
したがって、このシステムバス5上を転送されるデータDATAを、未変換でビットパラレルなデータDATAAとしてメモリセルマット30に格納する場合、異なるエントリにデータDATAのビットが分散されるため、1つのエントリERY内にデータDATAの各ビットを格納することはできない。したがって、このシステムバス5上を転送されるデータDATAのビット配列順序を変換して、ビットシリアルなデータDATABに変換し、各ビット毎にメモリセルマット30に異なるワード線を選択して格納することが要求される。データDATAが、たとえば16ビットデータの場合、1つのデータDATAの格納をビットシリアル態様で行なった場合、高速でデータの転送を、この主演算回路外部との間で行なうことができなくなり、並列演算処理による高速処理という特徴が損なわれる。
そこで、このシステムバス5上を転送されるデータDATAの配列を変換して、データワードパラレルでかつビットシリアルな配列に変換して複数のエントリに同時にデータを書込むまたは読出すデータ配列変換回路が必要となる。本発明は、この外部のシステムバス等とメモリセルマットとの間でのデータ転送を高速かつ効率的に行なうためのデータ配列変換の構成を提供する。以下、各実施の形態について説明する。
[実施の形態1]
図7は、この発明の実施の形態1に従う半導体信号処理装置が用いられる信号処理システムの全体の構成を概略的に示す図である。図7において、信号処理システム50は、各種処理を実行する演算機能を実現するシステムLSI52と、システムLSI52と外部システムバス56を介して接続される外部メモリとを含む。
外部メモリは、大容量メモリ66と、高速メモリ67と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ(リード・オンリ・メモリ:RAM)68を含む。大容量メモリ66は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)で構成され、高速メモリ67は、たとえばスタティック・ランダム・アクセス・メモリ(SRAM)で構成される。
システムLSI52は、例えば、SOC(システム・オン・チップ)構成を有し、内部システムバス54に並列に結合される基本演算ブロックFB1−FBnと、これらの基本演算ブロックFB1−FBnの処理動作を制御するホストCPU2と、システム50外部からの入力信号INを内部処理用データに変換する入力ポート59と、内部システムバス54から与えられた出力データを受けて、システム外部への出力信号OUTを生成する出力ポート58を含む。これらの入力ポート59および出力ポート58は、たとえばライブラリ化されたIP(インテレクチュアル・プロパティ)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。
システムLSI52は、さらに、基本演算ブロックFB1−FBnからの割込信号を受付け、ホストCPU2に対して割込を通知する割込コントローラ61と、ホストCPU2の各処理に必要な制御動作を行なうCPU周辺62と、基本演算ブロックFB1−FBnからの転送要求に従って外部メモリに対するデータ転送を行なうDMAコントローラ63と、ホストCPU2またはDMAコントローラ63からの指示に従って外部システムバス56に接続されるメモリ66−68に対するアクセス制御を行なう外部バスコントローラ64と、ホストCPU2のデータ処理を補助する専用ロジック65を含む。
CPU周辺62は、タイマおよびシリアルIO(入出力)等のホストCPU2におけるプログラムおよびデバッグの用途に必要な機能を備える。専用ロジック65は、たとえばIPブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。これらの機能ブロック58、59、61−65およびホストCPU2が並列に、内部システムバス54に結合される。このDMAコントローラ63は、図1に示すDMA回路4に相当する。
DMAコントローラ63は、基本演算ブロックFB1−FBnからのDMA要求信号に従って外部メモリ66−68に対するデータ転送を実行する。
基本演算ブロックFB1−FBnは、先に説明したように同一の構成を有しており、図7においては基本演算ブロックFB1の構成を代表的に示す。
基本演算ブロックFB1は、主演算回路20と、マイクロ命令メモリ23と、コントローラ21と、コントローラ21の中間処理データまたは作業用データを格納するワークデータメモリ76と、基本演算ブロックFB1内部と内部システムバス54との間でのデータ/信号の転送を行なうシステムバスインターフェイス(I/F)70を含む。
図1に示す入出力回路10は、各基本演算ブロックに対応して配置されるシステムバスインターフェイス(I/F)70に対応する。
主演算回路20は、先に図1を参照して説明したように、メモリセルマット30と、演算処理ユニット34と、ALU間相互接続用スイッチ回路44を含む。この図7に示す構成においては、基本演算ブロックFB1においては、図1に示すレジスタ群は示されていない。しかしながら、このレジスタ群は、コントローラ21内に内蔵されており、必要なデータが、このレジスタ群の各レジスタに格納される。
システムバスI/F70により、ホストCPU2またはDMAコントローラ63が、メモリセルマット30、コントローラ21内の制御レジスタ、マイクロ命令メモリ23およびワークデータメモリ76へアクセスすることが可能となる。
基本演算ブロックFB1−FBnには、異なるアドレス領域(CPUアドレス領域)が割付けられる。同様、基本演算ブロックFB1−FBn内のメモリセルマット30、コントローラ21内の制御レジスタ、マイクロ命令メモリ23およびワークデータメモリ76についても、それぞれ異なるアドレス(CPUアドレス)が割付けられる。各割付けられたアドレスに従って、ホストCPU2およびDMAコントローラ63が、アクセス対象の基本演算ブロックFB(FB1−FBn)を識別し、アクセス対象の基本演算ブロックに対するアクセスを実行する。
この基本演算ブロックFB1は、さらに、システムバスI/F70との間でのデータ配列を変換する直交変換回路72と、直交変換回路72およびシステムバスI/F70の一方を選択して主演算回路20に結合する切換回路74を含む。
直交変換回路72は、システムバスI/F70からビットパラレルかつワードシリアルな態様で転送されるデータを、ワードパラレルかつビットシリアルな態様で転送して、切換回路74を介して主演算回路20のメモリセルマット30の各エントリに異なるデータワードの同一位置のビットを並列に書込む。また、直交変換回路72は、主演算回路20のメモリセルマット30からワードパラレルかつビットシリアルに転送されるデータ列を直交変換して、ビットパラレルかつワードシリアルな態様で転送する。これにより、システムバス54とメモリセルマット30におけるデータ転送の整合性を維持する。
ここで直交変換は、ビットシリアルかつワードパラレルデータとビットパラレルかつワードシリアルデータの間の変換を示す。
この切換回路74は、コントローラ21からのワークデータを選択して主演算回路20に転送するように構成されてもよい。この場合、メモリセルマット30をワークデータ格納領域として利用することができ、ワークデータメモリ76が不要となる。また、演算対象データを直交変換する必要のない場合には、切換回路74は、システムバスI/F70を、主演算回路20に結合する。
基本演算ブロックFB1−FBnそれぞれにおいて、図1に示す入出力回路10に対応する機能を分散して配置することにより、各基本演算ブロック単位で、データの直交変換の有無を決定することができ、基本演算ブロックそれぞれの処理内容に応じて柔軟にデータ配列を設定することができる。
図8は、図7に示す直交変換回路72の構成を概略的に示す図である。図8において、直交変換回路72は、L行L列に配列される記憶素子を有する直交メモリ80と、直交メモリ80とシステムバスI/F70の間のインターフェイスをとるシステムバス/直交変換回路インターフェイス(I/F)82と、メモリセルマット30に対して設けられる入出力インターフェイス部(I/F)に対するインターフェイスをとるメモリセルマット/直交変換回路I/F84と、システムバスと直交メモリ80との間でのデータ転送を制御する対外部転送制御回路88と、メモリセルマット入出力I/Fと直交メモリ80の間でのデータ転送を制御する対内部転送制御回路86を含む。この直交変換回路72とシステムバス54との間でLビット単位でデータの転送が行なわれ、また直交変換回路72とメモリセルマットの間でLビット単位でのデータ転送が行なわれる。この転送データビット幅Lは、内部システムバス54を転送されるデータワードのビット幅と同一であってもよく、またシステムバスI/Fにおいてビット幅変換が行われ、複数ワードデータが並列にシステムバスI/F54と直交変換回路72との間で転送されても良い。
対内部転送制御回路86は、メモリセルマットと直交変換回路72との間でのデータ転送時、この直交メモリ80に対するアドレスの生成およびメモリセルマットに対するアドレスの生成を行なうとともに、メモリセルマット/直交変換回路I/F84におけるバッファ処理を制御する。この対内部設定制御回路86が動作して、メモリセルマットとの間でのデータ転送が行なわれている場合、対内部転送制御回路86は対外部転送制御回路88の動作を制御し、システムバス54との間でのデータ転送にウエイトをかける。また、対内部転送制御回路86は、このメモリセルマットへのデータ転送時、直交メモリ80のエントリ位置情報およびビット位置情報に基づいてアドレス計算を行なって主演算回路に計算したアドレスを転送する。
対内部転送制御回路88は、システムバス54との間でのデータ転送時、順次X方向のアドレスを生成して、この直交メモリ80にX方向に沿って順次データアクセスを行う(データの書込または読出を行う)ように制御を行う。一方、対内部転送制御回路86は、メモリセルマットとの間でのデータ転送時、Y方向に沿ったアドレスを生成して直交メモリ80のY方向沿って順次データアクセスを行うように制御を行う。
直交メモリ80は、2ポートメモリであり、システムバス/直交変換回路I/F82との間でエントリ単位のデータDTEを転送し、また、メモリセルマット/直交変換回路I/F84との間で、複数エントリにわたるビット単位のデータDTBを転送する。
直交メモリ80において、Y方向に整列するデータDTEが、外部アドレス(CPUアドレス)単位のデータであり、メモリセルマットにおいては同一のエントリに格納されるエントリ単位のデータである。したがって、外部アドレスから見た場合、メモリセルマットとの間でのデータ転送時、X方向に整列するビットの転送が行なわれるため、ワードパラレルかつビットシリアルの態様でデータの転送が行なわれる。このビット単位のデータDTBは、主演算回路のメモリセルマットにおいて複数のエントリの同一位置のビットで構成される主演算回路のメモリセルマットのアドレス単位のデータを表わす。
この直交メモリ80において、システムバスとのデータ転送を行なうポートとメモリ内部バスとの間のデータ転送を行なうポートを別々に設けることにより、X方向データおよびY方向データを並べ替えてデータ転送を行なうことができる。システムバスからの多ビットデータ(エントリ単位の多ビットデータ)のメモリセルマットへの転送時、ビット単位の多ビットデータ)に変換して転送する。したがって、この直交メモリ80において、データの並びについて、ワードパラレルかつビットシリアルとワードシリアルかつビットパラレルの間での変換が行なわれる。この変換処理は、前述の如くデータの直交変換と定義される。
図9は、この図8に示す直交変換回路72のメモリセルマットへのデータ転送時の動作を示すフロー図である。以下、この直交変換回路72の動作について図1および図9を参照して説明する。このデータ転送時においては、システムバス54上のデータと同一ビット幅のデータが直交変換回路から主演算回路のメモリセルマットに転送される。すなわち、データの直交変換が行われるもののデータビット幅についての変換は行われない。すなわち、ビット幅Lがシステムバス54上のデータのビット幅に等しい場合の転送動作フローを示す。
主演算回路のメモリセルマットの書込対象の先頭のビット位置(ワード線アドレス)およびエントリ位置(ビット線アドレス)をそれぞれ、対内部転送制御回路86の図示しないレジスタに設定し、また対内部転送制御回路86をデータ読出モードに設定し、対外部転送制御回路88をデータ書込モードに設定する。また、直交メモリ80に対するアドレスを初期アドレスに設定する。これらの一連の処理により、直交変換回路72における初期設定が完了する(ステップSP1)。
次に、システムバスI/Fからシステムバス/直交変換回路I/F82経由で直交メモリ80に対し、転送データが対外部転送制御回路88の制御の下に書込まれる。この直交メモリ80への書込データは、Y方向に整列するエントリ単位の多ビットデータDTEとしてこの直交メモリ80のX方向についての先頭行から順に格納される。この直交メモリ80に対するデータ書込ごとに、対外部転送制御回路88は、書込回数をカウントし、直交メモリ80のアドレスを更新する(ステップSP2)。
この直交メモリ80の記憶内容がフル状態となるまで、すなわち、この直交メモリ80へのシステムバス54からのデータ書込回数が、主演算回路のメモリセルマットに対する転送データビット幅Lに到達するまで、データの書込が行なわれる(ステップSP3)。
直交メモリ80に対して、システムバス54からシステムバス/直交変換回路I/F82を介してL回データ書込が行なわれると、直交メモリ80から主演算回路のメモリセルマットへのデータ転送を行なうために、対内部転送制御回路86が、システムバス54に対するウエイト制御信号をアサートし、対外部転送制御回路88を、後続のデータ書込を待機させる状態に設定する(ステップSP4)。直交メモリ80の記憶状況がフル状態であるかは、この対外部部転送制御回路88が、直交メモリ80に対してデータを書込んだ回数をカウントすることによりモニタされる。このモニタ結果が、対外部転送制御回路88から対内部転送制御回路86に報知されて、直交メモリ80の記憶状況が対内部転送制御回路86により把握される。対内部転送制御回路86からのウェイト制御信号のアサートにより、対外部転送制御回路88がシステムバス/直交変換回路I/Fをウェイと状態に設定し、応じて、システムバスI/F70がウェイト状態に設定される。
この対外部転送制御回路88に対するウエイトをかけるとともに、メモリセルマット/直交変換回路I/F84が、対内部転送制御回路86により活性化され、対内部転送制御回路86の制御の下に、直交メモリ80のY方向についての先頭アドレスから順次データを読出し、メモリセルマット/直交変換回路I/F84を介して主演算回路のメモリセルマットへデータを転送する(ステップSP5)。
この主演算回路のメモリセルマットへのデータ転送により直交メモリ80の記憶データがすべて転送されたかの判定が各転送毎に行なわれる(ステップSP6)。すなわち、対内部転送制御回路86が、直交メモリ80からデータを読出して転送を行なった回数をカウントし、そのカウント値がLに到達するかをモニタする。このカウント値がLとなるまで、直交メモリ80からメモリセルマット/直交変換回路I/F84を介してのLビット単位のデータ転送が継続される。
ステップSP6において直交メモリ80のデータがすべて転送されたと判定される。次いで、演算対象のデータがすべて転送されたかの判定が行なわれる(ステップSP7)。演算対象の転送データが残っている場合には、再び、直交メモリ80へのデータ格納を行なうため、直交メモリ8に対するアドレスを初期値に更新し、またデータ転送回数を初期化し(ステップSP8)、再びステップSP2からの処理を開始する。
このステップSP8からステップSP2へ戻った場合には、アドレス更新処理により、メモリセルマットにおけるエントリ位置を表わすアドレスがL加算されて対内部転送制御回路86において、直交メモリ80に格納されるデータのメモリセルマットにおける先頭エントリ位置が更新される。
このエントリ位置情報が、主演算回路のメモリセルマットにおけるエントリ数を超えた場合には、メモリセルマットにおいて次のワード線を選択して、次のビット位置にデータを書込む必要があり、このエントリ位置情報が初期値の0に設定され、またメモリセルマットにおいて次のワード線を選択するため、ワード線アドレス(ビット位置情報)が1増分される。
対内部転送制御回路86は、対外部転送制御回路88に対し、システムバス54へのウェイトを解除し、再び、システムバス54から対外部転送制御回路88が、直交メモリ80に対するデータの書込を再開する。
このステップSP2からSP8の動作が、演算対象のデータがすべて転送されるまで繰返し実行される。
ステップSP7において、すべてのデータ転送が完了したと判定されると(システムバスI/Fからの転送要求がデアサートされることにより判定される)、データ転送が終了する。これらの一連の処理により、外部からのワードシリアルに転送されるデータをビットシリアルかつワードパラレルなデータに変換してメモリセルマットに転送することができる。
図10は、この図8に示す大容量メモリ(SDRAM)66からメモリセルマット30へのデータ転送を模式的に示す図である。図10においては、このメモリセルマットに対するデータのビット幅Lが4ビットの場合のデータ転送が、一例として示される。
図10において、4ビットデータ(ビットA3−A0)ないしI(ビットI3−I0)がSDRAM64に格納される。SDRAM64から内部システムバス54を介して4ビットデータDTE(データI:ビットI3−I0)が直交メモリ80へ転送されて格納される。SDRAM64からのデータDTEは、同一エントリに格納されるエントリ単位のデータであり、直交メモリ80においては、Y方向にデータビットが整列して格納される。図10においては、データE−Hが格納された状態が一例として示される。
直交メモリ80からメモリセルマット30へのデータ転送時においては、直交メモリ80のX方向に整列するデータDTBの各ビットが並行して読出される。データビットE1、F1、D1、およびH1からなるメモリセルマットのアドレス単位のデータDTBがメモリセルマット30のエントリ位置情報および書込ビット位置情報が示す位置に格納される。このビット位置情報が、メモリセルマット30のワード線アドレスとして用いられ、エントリ位置情報が、メモリセルマット30のビットアドレスとして用いられる。これらのビット位置情報およびエントリ位置情報が、先の図8に示される対内部転送制御回路86内のレジスタに格納され、アドレス情報として、転送される。このメモリセルマット30における実際のデータの書込位置を示す書込ビット位置情報は、このメモリセルマット30へのアクセス回数とエントリ位置情報とビット位置情報とに基づいて生成される。
直交メモリ80を用いてY方向に同時にデータビットを格納し、ついでX方向に整列データビットを読出すことにより、SDRAM64からワードシリアルかつビットパラレルで読出されるエントリ単位のデータDTEを、ワードパラレルかつビットシリアルのアドレス単位のデータDTBに変換してメモリセルマット30に格納することができる。
メモリセルマット30からデータを読出して内部システムバス54へ転送する場合には、そのデータの転送方向が逆となるものの、直交メモリ80の動作は、メモリセルマット30へのデータ書込時と同じである。対内部転送制御回路86により、メモリセルマットから読出されたデータが順次直交メモリ80にY方向の先頭位置から格納される。次いで直交メモリ80から、この対外部転送制御回路88により、X方向の先頭位置からデータを順次読出すことにより、メモリセルマット30からワードパラレルかつビットシリアル態様で読出されたデータをワードシリアルかつビットパラレルのデータに変換して転送することができる。
図11は、直交メモリ80に含まれるメモリセルの構成の一例を示す図である。この直交メモリ80に含まれるメモリセルはデュアルポートSRAMセルで構成される。図11において、直交メモリセルは、交差結合される負荷PチャネルMOSトランジスタPQ1およびPQ2と、交差結合されるデータ記憶用のドライブNチャネルMOSトランジスタNQ1およびNQ2を含む。この直交メモリセルは、通常のSRAMセルと同様に、インバータラッチをデータ記憶素子として備え、このインバータラッチ(フリップフロップ素子)により、ストレージノードSN1およびSN2に相補データを記憶する。
直交メモリセルは、さらに、ワード線WLH上の信号電位に応答してストレージノードSN1およびSN2をそれぞれビット線BLHおよび/BLHに結合するNチャネル型MOSトランジスタNQH1およびNQH2と、ワード線WLV上の信号電位に応答してストレージノードSN1およびSN2をビット線BLVおよび/BLVに結合するNチャネル型MOSトランジスタNQV1およびNQV2を含む。ワード線WLHおよびWLVが直交して配列され、ビット線BLHおよび/BLHがビット線BLVおよび/BLVと直交して配列される。
ワード線WLHおよびビット線BLHおよび/BLHで構成される第1のポート(トランジスタNQH1,NQH2)とワード線WLVおよびビット線BLVおよび/BLVで構成される第2のポート(トランジスタNQV1,NQV2)をそれぞれ別々の直交メモリインターフェイス部に結合される。たとえば、第1のポート(ワード線WLH,ビット線BLH,/BLH)を、メモリデータバスへのポートとして利用して、対内部転送制御回路の制御の下に選択する。第2のポート(ワード線WLVおよびビット線BLV,/BLV)は、内部システムバス54とのインターフェイス用ポートとして利用して、対外部転送制御回路88により選択する。これにより、直交メモリにおいて行および列の変換を行なってデータアクセスを行なうことができる。
上述のような直交変換回路72を利用することにより、システムバスとメモリセルマット間のデータ転送時に、多ビット幅のデータの転置を行なうことができ、メモリセルマットに対するデータ転送時に必要とされるメモリセルマットへのアクセス回数を低減することができ、応じてデータ転送に要する時間を短縮することができ、高速処理が実現される。
この直交メモリ80を、SRAMセルで構成することにより、Dフリップフロップなどの回路素子を用いる構成に比べて占有面積を低減することができ、小占有面積で大量のデータの直交変換を行なうことができる。
しかしながら、上述の直交メモリ80においては、転送データのビット幅は、システムバス上のデータのビット幅と同じである。従って、画像データなどの大量のデータ格納時にリアルタイムでデータの転送を行うのが困難となる場合が考えられる。そこで、大量のデータをより効率的に主演算回路のメモリセルマットとの間で転送する構成について説明する。
図12は、この発明に従う直交メモリ80の具体的構成を概略的に示す図である。図12において、直交メモリ80は、行列状に配列されるSRAMセルMCSを有するメモリセルマット90を含む。このメモリセルマット90においては、その水平方向Hに整列するSRAMセルMCSに対応して水平方向ビット線対BLHPおよび垂直方向ワード線WLVが配置され、この図12に示す垂直方向Vに整列するSRAMセルMCSに対応して、水平方向ワード線WLHおよび垂直方向ビット線対BLVPが配置される。これらのワード線WLVおよびビット線対BLHPは対応して配置され、また、ワード線WLHおよびビット線対BLVPが対応して配置される。このSRAMセルMCSは、ワード線WLVおよびWLHと、ビット線対BLHPおよびBLVPに接続される。SRAMセルMCSは、図11に示す構成を備える。
直交メモリ80は、さらに、垂直方向ワードアドレスADVに従ってメモリセルマット90の垂直方向ワード線WLVを選択するロウデコーダ92vと、垂直方向ビット線対BLVP上に読出されたメモリセルデータを検知し増幅するセンスアンプ群94vと、垂直方向ビット線対BLVP上のメモリセルへデータを書込むライトドライバ群96vと、垂直方向データDTVを入出力する入出力回路98vを含む。
直交メモリ80は、さらに、水平方向ワードアドレスADHをデコードして、メモリセルマット90の水平方向ワード線WLHを選択するロウデコーダ92hと、水平方向ビット線対BLHP上に読出されたメモリセルデータを検知し増幅するセンスアンプ群94hと、水平方向ビット線対BLHP上のメモリセルにデータを書込むライトドライバ群96hと、これらのセンスアンプ群94hまたはライトドライバ群96hとデータの入出力を行なう入出力回路98hを含む。
この入出力回路98vおよび98hの一方が、システムバスとの間でデータの転送を行ない、他方が、メモリセルマットとの間でのデータ転送を行なう。以下の説明においては、垂直方向Vに沿ってエントリ単位のデータが順次格納され、水平方向に沿ってビット単位のデータが順次格納される場合を想定する。垂直方向Vには、主演算回路のメモリセルマットのエントリに等しい数mのワード線WLVが配置される。水平方向Hには、1エントリに格納されるデータのビット数以上のワード線WLHが配設される。メモリセルマットとの間で、全エントリのビットを転送するために、入出力回路98hは、mビットデータの入出力を行う。全エントリにデータが格納された後に、直交メモリ80から、主演算回路のメモリセルマットへデータの転送が行われる。
したがって、ロウデコーダ92vおよび92hにより、ワード線WLVおよびWLHが選択されたとき、転送データビットがすべて選択されるため、列選択を行なうコラムデコーダは特に設けられていない。
このロウデコーダ92vおよび92hへ与えられるアドレスADVおよびADHは、その直交メモリ80に対するアクセス回数をカウントすることにより生成され、先の図8に示す対内部転送制御回路86または対外部転送制御回路88により生成される。
ワード線WLH、およびビット線対BLHPが1つのデータアクセスポート(主演算回路との間のポート)を構成し、またワード線WLVおよびビット線対BLVPが、他方のデータアクセスポート(システムバスI/Fとの間のポート)を構成する。
図13は、この図12に示す直交メモリ80の格納データの配列の一例を示す図である。メモリセルマット90は、m個のエントリを有し、1エントリはkビット幅を有する。1エントリが、垂直方向ワード線WLVにより選択され、この選択エントリに対してセンスアンプ群94vおよびライトドライバ群96vを介してkビットのデータDTVが入出力される。このデータDTVは、システムバスI/Fを介してシステムバスとの間で転送される。
一方、エントリと直交する方向に水平方向ワード線WLHが配置され、水平方向ワード線WLHにより選択されたメモリセルに対し、センスアンプ群94hまたはライトドライバ群96hにより、mビットのビットのデータDTHが入出力される。このmビット幅のデータDTHが、対応の主演算回路内のメモリセルマットに並列に格納される。
図14は、この図13に示す直交メモリ80における水平方向データDTHのアクセス動作を示す信号波形図である。以下、図14を参照して、主演算回路との間でのデータ転送時の直交メモリの動作について説明する。
この直交メモリから主演算回路へのデータDTHを転送する場合には、図12に示すロウデコーダ92hにより、水平方向ワード線WLHが選択される。ワード線WLHが選択状態へ駆動されると、水平方向ビット線BLHおよび/BLHに、メモリセルデータが読出される。このメモリセルデータは、センスアンプ群94hにより検知増幅され、続いて入出力回路を介してデータDTHが出力される。図14においては、1ビットのデータを示し、ビット線BLHがHレベルであり、データ“1”が読出される場合を一例として示す。
このデータ読出後、ビット線BLHおよび/BLHは、初期状態に復帰する。
一方、メモリセルマット90へのデータDTHの書込時においては、データDTHに従ってライトドライバ群96hが動作し、ワード線WLHの選択と並行して、ビット線BLHおよび/BLHに書込データを転送する。図14においては、書込データが“0”であり、ビット線/BLHがHレベル、ビット線BLHがLレベルに駆動される状態を一例として示す。
このデータ書込完了後、ワード線WLHが非選択状態へ駆動され、また、ビット線/BLHおよびBLHも、初期状態に復帰する。この図14に示すデータの書込および読出動作は通常のSRAMのデータアクセス時の動作と同様である。
図15は、このデータDTHの入出力時のデータの流れを概略的に示す図である。この図15に示すように、ワード線WLHを選択し、m個のエントリのデータDATAの同一ビット位置のデータを並列に読出し、mビットのデータDTHの入出力を行なう。したがって、主演算回路のメモリセルマットがエントリ数がmの場合、1回のデータ転送サイクルで、各エントリの同一ビット位置のデータを転送することができる。この場合、たとえばエントリ数mが、1024であっても、メモリセルマットに対する内部データバスはチップ上内部配線であり、ピン端子などの影響を受けることはなく、十分に、メモリセルマットに対する内部データバスを配置することができる。
図16は、この図13に示す直交メモリのシステムバスとの間のデータ転送時のデータ入出力動作を示すタイミング図である。以下、図16を参照して、この図13に示す直交メモリの垂直方向データDTVの入出力動作について説明する。
この図16に示すように、データDTVを入出力する場合、ワード線WLVを、図12に示すロウデコーダ92vにより選択状態へ駆動する。これにより、1つのエントリにおけるkビットが並列に、対応のビット線BLVおよび/BLV上に読出される。この図16においても、1ビットのデータの読出波形を示し、ビット線BLVおよび/BLVが、それぞれ、HレベルおよびLレベルに駆動され、データ“1”が読出される動作を一例として示す。
データの書込時においては、同様、ワード線WLVを選択状態へ駆動し、書込データを、ビット線BLVおよび/BLV上にライトドライバ群96vを介して伝達する。図16においては、データ“0”が書込まれ、ビット線BLVがLレベルに駆動される場合が一例として示される。
図17は、このデータDTVの書込時のデータの流れを概略的に示す図である。図17に示すように、メモリセルマット90においてワード線WLVが選択され、センスアンプ群94vまたはライトドライバ群96vを介してデータDTVの入出力が行なわれる。この場合、データDTVは、kビットデータであり、システムバスに対しkビットのデータが転送される。
この直交メモリは、データDTVおよびDTHを入出力するポートいずれへも、通常のSRAMと同様の動作が行なわれてデータの入出力が行なわれる。したがって、エントリ数mが大きい場合においても、メモリセルマット90の占有面積を比較的小さくして、演算対象データを格納して配列の変換を行なうことができる。
また、演算データのビット幅が異なる場合、データビット幅kビットを最大可能値に設定し、水平ワード線WLHの選択範囲(水平方向アドレスADHの変化範囲)を演算データビット幅に応じて設定することにより、容易に対応することができる。
以上のように、この直交メモリとして、SRAMセルを用い、2ポートメモリを利用することにより、ビットシリアルかつエントリパラレルな態様でデータに対し演算処理を行なう演算回路と、この演算回路外部のバス(システムバス等)との間のデータ配列の変換を、コンパクトな回路構成で容易に実現することができる。
また、直交変換回路と主演算回路の間のデータ転送を主演算回路のメモリセルマットのエントリ数に等しいビット幅に設定することにより、高速でデータの転送を行うことができる。
[実施の形態2]
図18は、この発明の実施の形態2に従う主演算回路20の構成を概略的に示す図である。この主演算回路20においては、メモリセルマット95において、2ポートSRAMセルMCSが行列状に配列される。この2ポートSRAMセルMCSは、図11に示す構成と同様の構成を備える。
メモリセルマット95においては、ワード線WLVおよびWLHが互いに直交する方向に配置され、また、ビット線対BLHPがワード線WLVに対応してかつ並行して配置され、またビット線対BLVPが、ワード線WLHに対応してかつ並行して配置される。
ワード線WLHは、ロウデコーダ100により選択され、ワード線WLVが、ロウデコーダ102により選択される。ワード線WLVおよびビット線対BLHPには、エントリERYに含まれるSRAMセルMCSが接続される。
エントリERYに対応してセンスアンプ群40のセンスアンプおよびライトドライバ群のライトドライバが配置され、またALU群(演算処理ユニット群)32の演算処理ユニット(ALU)が配置される。この演算処理ユニット群32に隣接して、またALU間相互接続用スイッチ回路44が配置される。このセンスアンプ群40、ライトドライバ群42、演算処理ユニット群32およびALU間相互接続用スイッチ回路44の構成は、先の図5に示す主演算回路の構成と同じである。
ロウデコーダ100も、先の図5に示すロウデコーダ46に対応し、コントローラ21からのアドレス信号に従ってワード線WLHを選択する。同様、コントローラ21からの制御信号が、演算処理ユニット群(ALU群)32およびALU間相互接続用スイッチ回路44へ与えられる。
この主演算回路20は、さらに、ワード線WLVをコントローラ21からのアドレス信号に従って選択するロウデコーダ102と、ビット線対BLVH上のメモリセルデータを読出すセンスアンプ群104と、ビット線対BLVP上のメモリセルへデータを書込むライトドライバ群106と、これらのセンスアンプ群104およびライトドライバ群とメモリ内部データバスとの間でデータの入出力を行なう入出力回路108を含む。
メモリ内部データバスは、先の図1に示すグローバルデータバスであってもよく、また先のシステムバスI/Fに接続されるデータバスであってもよい。本実施の形態2に置いては、先の実施の形態1における直交変換回路は用いられない。メモリ内部データバス上にはシステムバス上のデータと同一ビット配列のデータが転送される。
メモリセルマット95と入出力回路108との間でのデータ転送時にはロウデコーダ102によりワード線WLVを選択し、エントリ単位のデータが入出力される。演算処理ユニット群(ALU群)32を用いて演算処理を行なう場合には、ロウデコーダ100によりワード線WLHを選択し、複数のエントリと同一位置のビットを選択して(ビット単位データを選択して)、エントリパラレル態様で演算処理を実行する。
図19は、図18に示す主演算回路20のメモリセルマット95へのデータ書込時のデータの流れを模式的に示す図である。図19において、この主演算回路20外部からの書込データDINがライトドライバ群106へ与えられる。ロウデコーダ102は、エントリアドレスERADに従って、ワード線WLVを選択する。ライトドライバ群106は、ブロックアドレスBSADに従ってライトドライバが選択的に活性化され、この書込データDINを、メモリセルマット95の選択ワード線上のブロックアドレスBSADが指定する領域に書込む。このエントリアドレスERADを順次更新してロウデコーダ102によりワード線WLVを順次選択し、ライトドライバ群106を各ブロック(演算対象データ格納領域)単位で選択的に活性化して書込データDINを書込む。これにより、各エントリにおいてブロックアドレスBSADが指定する領域ごとに、データを格納することができる。
図20は、この図18に示す主演算回路20における演算処理時のデータの流れを模式的に示す図である。演算処理実行時においては、ロウデコーダ100が、ビットアドレスBTADに従ってワード線WLHを選択し、演算対象データのビットをシリアルに読出し、センスアンプ群40により、演算処理ユニット群32へ各ビットデータが転送される。この演算処理ユニット群32における演算処理結果は、ライトドライバ群42に含まれるライトドライバ(WD)を介してロウデコーダ100が選択するワード線WLH上に格納される。
このロウデコーダ100に対してビットアドレスBTADを演算処理対象データごとにそれぞれ順次更新することにより、演算処理ユニット群32においてビットシリアル態様でかつエントリパラレルに演算処理を実行することができる。
図21は、この演算処理結果データを主演算回路外部へ読出す際のデータの流れを模式的に示す図である。この場合、ロウデコーダ102が、エントリアドレスERADに従ってワード線WLVを選択し、ブロックアドレスBSADに従ってセンスアンプ群104がブロック単位で選択的に活性化され、演算処理結果データを増幅して読出データDOUTを生成する。
この演算処理結果データ読出時においては、エントリアドレスERADを順次更新することにより、演算処理結果データDOUTを、ワードシリアルかつビットパラレルに読出すことができる。
図22は、図19から図21に示すアドレスERAD、BSADおよびBTADを発生する部分の構成の一例を概略的に示す図である。図22において、アドレス発生部は、主演算回路外部とのデータ転送回数をカウントし、エントリアドレスERADを生成するエントリカウンタ110と、処理データAのブロックアドレスを格納するAレジスタ111と、処理データBの格納ブロック領域のブロックアドレスを格納するBレジスタ112と、演算処理結果データCを格納するブロック領域のアドレスを格納するCレジスタ113と、レジスタ111−113の格納値を選択してブロックアドレスBSADを生成するマルチプレクサ114と、Aレジスタ111の格納値に従って初期値が設定され、演算処理時処理データAの選択回数をカウントするAカウンタ115と、Bレジスタ112の格納値に初期値が設定され、処理データBの各ビット選択時そのカウント値が増分されるBカウンタ116と、Cレジスタ113の格納値従ってその初期値が設定され、演算処理結果データのビットの格納ごとにそのカウント値が増分されるCカウンタ117と、これらのカウンタ115−117の出力カウントを選択してビットアドレスBTADを生成するマルチプレクサ118を含む。
エントリカウンタ110が、そのメモリセルマット95に対するデータの入出力時初期値に設定され、エントリの先頭値から順次エントリアドレスERADを生成する。レジスタ111−113は、データビット幅および演算処理内容に応じて、それぞれのブロックアドレスが決定される。演算対象データA、Bの格納時には、マルチプレクサ114が、これらのレジスタ111または112の格納値を選択して、ブロックアドレスBSADを生成する。演算処理結果データCを出力する場合には、マルチプレクサ114が、Cレジスタ113の格納値を選択して、ブロックアドレスBSADを生成する。
カウンタ115−117は、それぞれ、レジスタ111−113の格納値に従ってその初期値が、各ブロックにおける最下位ビット格納位置を指定するアドレスに設定される。マルチプレクサ118は、演算対象データAまたはBを選択するときには、Aカウンタ115またはBカウンタ116のカウント値を選択してビットアドレスBTADを生成する。演算処理結果データを格納する場合には、マルチプレクサ118がCカウンタ117のカウント値を選択してビットアドレスBTADを生成する。
この図22に示すアドレス発生部の格納値に基づいて、コントローラ21が、マイクロプログラム命令メモリに格納された命令に従って順次処理を実行する。
図23は、この発明の実施の形態2におけるシステム構成の一例を示す図である。図23においては、システムバス54に基本演算ブロックFBが接続される。複数の基本演算ブロックFBが配置されるが、図23においては1つの基本演算ブロックを代表的に示す。
基本演算ブロックFBにおいては、主演算回路20がバスインターフェイス部(I/F)70を介してシステムバス54に結合される。このバスI/F70と主演算回路20内の入出力回路108の間に、図18に示すメモリ内部データバス120が配置される。したがって、この場合には、基本演算ブロックFB個々に、バスインターフェイス部(I/F)70が設けられ、メモリ内部データバス120においてデータ配列の変換を行なうことなく、システムバス54とメモリセルマット95の間でデータの転送をワードシリアルな態様で行なうことができる。
図24は、この発明の実施の形態2におけるシステム構成の他の例を示す図である。図24においては、グローバルデータバス12に、主演算回路20a−20hが並列に結合される。この主演算回路20a−20hは同一構成を有しており、図24においては、主演算回路20aの構成を代表的に示す。主演算回路20aにおいては、入出力回路108が、グローバルデータバス12に結合され、このグローバルデータバス12が、図18に示すメモリ内部データバスに対応する。このグローバルデータバス12は、入出力回路10(図1参照)を介してシステムバス5に結合される。
この図24に示すシステム構成においても、主演算回路20aにおいて、メモリセルマット95が2ポート構成であり、入出力回路10においては、データ配列の変換を行なうことは要求されず、システムバス5と主演算回路20aの入出力回路108との間で、ワードシリアル態様でデータ転送を行なって、メモリセルマット95に対してデータ転送を行なうことができる。
この主演算回路におけるメモリセルマット95を、2ポート構成とすることにより、ビットシリアル/エントリパラレルの態様で演算を行なう主演算回路に対しても、外部とのデータ転送時および演算処理時どちらに対しても、動作内容に応じたデータ転送を行なうことができる。この場合、バスに対してデータ配列を変換するための直交変換回路は、特に必要とされず、基本演算ブロックの占有面積を低減することができる。
[実施の形態3]
図25は、この発明の実施の形態3に係る主演算回路20の構成を概略的に示す図である。この図25に示す主演算回路20においては、メモリセルマット30に隣接して直交2ポートメモリセルマット130が配置される。メモリセルマット30においては、シングルポートのメモリセルMCが行列状に配列され、メモリセル行に対応してワード線WLが配置され、メモリセル列に対応して、メモリセルマット30および130で共有される共有ビット線対CBLP0−CBLP(m−1)が配置される。
直交2ポートメモリセルマット130において、共有ビット線CBLP0−CBLP(m−1)と直交する方向にビット線BLVPが配置される。また、共有ビット線対CBLP0−CBLP(m−1)に対応してかつ並行してワード線WLVが配置され、ビット線対BLVPに対応してかつ並行してワード線WLHが配置される。この直交2ポートメモリセルマット130においては、2ポートメモリセルMCSが配置される。
この直交2ポートメモリセルマット130に対して、ワード線WLVを選択するためのVロウデコーダ132と、ビット線対BLVPを介して、Vロウデコーダ132により選択されたワード線WLV上のメモリセルとデータの転送を行なうセンスアンプ・ライトドライバ群134と、センスアンプ・ライトドライバ群134と内部データバスとの間でデータの転送を行なう入出力回路136と、ワード線WLHを選択するHロウデコーダ138が設けられる。
演算データを格納する演算用のメモリセルマット30に対しては、センスアンプ群40、ライトドライバ群42、演算処理ユニット群32およびALU間相互接続用スイッチ回路44が設けられる。
この図25に示す主演算回路20の構成においては、直交2ポートメモリセルマット130を介して主演算回路20の外部との間でのデータ転送を行ない、演算データをメモリセルマット30に転送した後、このメモリセルマット30と演算処理ユニット群32との間で演算処理を行なう。直交2ポートメモリセルマット130は、この主演算回路20外部との間のデータ転送のために用いられるだけであり、その占有面積を低減することができる。
図26は、この図25に示す主演算回路20のメモリセルマット30への演算処理データセット時の動作を示すフロー図である。以下、図26を参照して、この図25に示す主演算回路20の演算処理データセット動作について説明する。
まず、この主演算回路20に対するデータ転送要求が発行され、図示しないコントローラ(21)により、Vロウデコーダ130およびHロウデコーダ138に対するアドレスが初期設定される(ステップSP10)。
この初期設定の後、Vロウデコーダ132が、与えられたエントリアドレスに従ってワード線WLVを選択状態へ駆動する。また、これにと並行して、内部データバスを介して与えられるデータを入出力回路136で受け、データ書込モードに設定して、センスアンプ・ライトドライバ群134のライトドライバ群を活性化し、ビット線対BLVP上に書込データを転送する(ステップSP11)。
次いで、ワード線WLVを非選択状態へ駆動した後、次いで、この選択ワード線WLVに対するエントリアドレスが、最終エントリ番号MAXに到達しているかの判定が行なわれる(ステップSP12)。この最終エントリ番号MAXは、最大エントリ番号または最小エントリ番号である。直交2ポートメモリセルマット130において、エントリが最終値に到達していないと判定された場合には、エントリアドレスを更新し(ステップSP13)、再び、ステップSP11へ戻り、データの書込を最終エントリに到達するまで繰返し実行する。
ステップSP12において、データ書込が最終エントリMAXに対して実行されたと判定されると、直交2ポートメモリセルマット130への演算処理対象データの格納が完了し、次いで、直交2ポートメモリセルマット130からメモリセルマット30へのデータ転送が行なわれる。このデータ転送時において、Hロウデコーダ138により、ワード線WLHを選択し、共有ビット線CBLP0−CBLP(m−1)において、この直交2ポートメモリセルマット130により読出されるデータを、センスアンプ群40で増幅し、ライトドライバ群42でさらに増幅して、共有ビット線対CBLP0−CPLP(m−1)上に転送する。この後、ロウデコーダ46によりワード線WLを選択状態へ駆動することにより、直交2ポートメモリセルマット130からメモリセルマット30へのデータ転送を、ワード線単位で(ビット単位データ毎に)実行することができる(ステップSP14)。
データ転送完了後、ワード線WLおよびWLHを非選択状態へ駆動して、またセンスアンプ群40およびライトドライバ群42を非選択状態へ駆動する。この後、データの最上位ビットまたは最下位ビットの転送が行なわれたかの判定が行なわれる(ステップSP15)。最下位ビットからデータが順次転送される場合には、データが最上位ビットであるかの判定を行ない、データの最上位ビット側から転送される場合には、転送データが最下位ビットであるかの判定が行われる。図26においては、両者のシーケンスに対する判定処理を示す。
データの全ビットが転送されていないと判定された場合には、ビットアドレスを更新してロウデコーダ46へ与え(ステップSP16)、再び、ステップSP14からの動作を繰返し実行する。この直交2ポートメモリセルマット130に格納されたデータの全ビットが転送されたとステップSP15において判定されると、次いで、演算処理に必要な全データが転送されたかの判定が行なわれる(ステップSP17)。必要データがすべて転送されていない場合には、次の演算対象データを設定するため、再びステップSP10へ戻り、Vロウデコーダ132およびHロウデコーダ138の初期アドレスを初期設定し、またロウデコーダ46のビットアドレスを、次の演算処理対象のデータ格納領域の初期アドレスに設定し、再び直交2ポートメモリセルマット130への次の演算処理対象データの格納を繰返し実行する。
ステップSP17において、演算処理に必要な全データが転送されたと判定されると、データのロードが完了し、演算処理ユニット群32を用いて演算操作が実行される(ステップSP18)。
図27は、そのセンスアンプ群40およびライトドライバ群42に含まれるセンスアンプおよびライトドライバと共有ビット線対との接続を概略的に示す図である。図27において、共有ビット線対CBLPと演算処理ユニット(ALU)34の間に、センスアンプSAとライトドライバWDが並列に配置される。センスアンプSAは、図25に示すセンスアンプ群40に含まれ、ライトドライバWDは、図25に示すライトドライバ群42に含まれる。演算処理ユニット(ALU)34は、図25に示す演算処理ユニット群(ALU群)32に含まれる。
図25に示すように、エントリERY(ERY0−ERY(m−1))それぞれにおいてセンスアンプSAおよびライトドライバWDが配置される(図25において黒丸印で示す)。したがって、この直交2ポートメモリセルマット130とメモリセルマット30の間のデータ転送時、センスアンプSAにより共有ビット線対CBLP上のデータを増幅し、ライトドライバWDを介して再び共有ビット線対CBLPにデータを転送することにより、直交2ポートメモリセルマット130におけるメモリセルデータを、メモリセルマット30のワード線WLに接続されるメモリセルへ書込むことができる。
この演算処理用のセンスアンプ群40およびライトドライバ群42を、メモリセルマット間データ転送手段として利用することにより、このデータセット用に専用の転送回路を設ける必要がなく、回路占有面積を低減することができる。
しかしながら、メモリセルマット30および130の間に、各共有ビット線対CBLPにおいてセンスアンプおよびライトドライバと同様の構成の双方向データ転送回路が配置されても良い。メモリセルマット130からメモリセルマットへのデータ転送時、双方向データ転送回路においてセンスアンプを活性化することが必要とされ、消費電流を低減することができる(SRAMセルはデータが非破壊読出であり、データの再書き込みは必要とされない)。また、ワード線WLHおよびWLを並行して選択状態へ駆動することができ、データ転送時のサイクルタイムを短縮することができる。
図28は、メモリセルマット30における演算処理後のデータを入出力回路136を介して主演算回路外部へ転送する際の動作を示すフロー図である。以下、図28を参照して、演算処理後のデータの転送動作について説明する。
まず、演算操作が完了すると、演算処理後のデータ転送のための初期設定が行なわれる(ステップSP20)。この初期設定時においては、ロウデコーダ46において、演算処理後のデータ格納領域の初期ビットアドレスが設定される。またVロウデコーダ132および138も、そのアドレスが初期値に設定される。
次いで、メモリセルマット30においてロウデコーダ46によりワード線WLを選択し、センスアンプ群40およびライトドライバ群42を介してこのワード線WLに接続されるメモリセルデータを増幅して共有ビット線対CBLP0−CPLP(m−1)をフルスィングさせる。次いで、Hロウデコーダ138により、ワード線WLHを選択状態へ駆動し、この共有ビット線対CBLP0−CBLP(m−1)上にライトドライバ群42により伝達されたデータを、各メモリセルに格納する(ステップSP21)。
この転送動作完了後、すなわちワード線WLおよびWLHが非選択状態へ駆動された後、メモリセルマット30から直交2ポートメモリセルマット130へのデータ転送回数が、この演算処理後のデータのビット幅に等しいかの判定が行なわれる(ステップSP22)。この判定動作においては、ロウデコーダ46による選択動作回数がカウントされてもよく、また、単にコントローラ(21)により、この転送サイクル数がカウントされてもよい。
転送回数が、演算処理後のデータのビット幅に到達していない場合には、ビットアドレスを更新し(ステップSP23)、再びステップSP21からの処理を繰返し実行する。このビットアドレスに従ってロウデコーダ46が次の演算処理データビットに対応するワード線WLを選択状態へ駆動し、またはHロウデコーダ138が、その初期値から次のカウント値に対応するワード線WLHを選択状態へ駆動する。
ステップSP22において、転送回数が、演算処理後のデータビット幅に等しいと判定されると、次いで直交2ポートメモリセルマット130から入出力回路136を介してデータの読出が行なわれる(ステップSP24)。この場合、Vロウデコーダ132により、ワード線WLVを選択し、センスアンプ・ライトドライバ群134のセンスアンプ群を活性化して、入出力回路136を介して内部データバス上に、演算処理後のデータを読出す。
このVロウデコーダ132によりワード線WLVの選択が行われて、データの読出が行なわれ、この直交2ポートメモリセルマット130におけるエントリの番号が最終値(MAX)に到達したか否かの判定が行なわれる(ステップSP25)。またエントリ番号が最終値に到達していない場合には、エントリアドレスを更新し(ステップSP26)、再び、ステップSP24からの処理を実行し、ワード線WLVを順次選択状態へ駆動する。
直交2ポートメモリセルマット130において、演算処理後のデータが格納されるエントリの最終値に到達したと判定されると、演算処理後のデータがすべて読出されたと判定され、転送動作が終了する。
この図25に示す回路構成においても、各初期アドレスは、先の図22に示すレジスタを利用することにより、ビットアドレスおよびエントリアドレスを設定することができる。
また、内部データバスは、グローバルデータバスであってもよく、また基本演算ブロック個々に設けられるシステムバスインターフェイス(I/F)に接続されるバスであってもよい(図23および図24参照)。
また、このメモリセルマット30からメモリセルマット130へのデータ転送時においても、メモリセルマット30および130の間に各共有ビット線対CBLPに双方向データ転送回路が設けられている場合には、この双方向データ転送回路のライトドライバを活性化することにより、ワード線WLおよびWLHを平衡して選択状態へ駆動してデータの転送を行うことができる。
以上のように、この発明の実施の形態3に従えば、主演算回路のメモリセルマットに隣接して、直交2ポートメモリセルアレイを配置しており、必要最小限のビット幅の2ポートメモリセルを配置するだけでよく、面積の増大を抑制して、ビットシリアルかつエントリパラレルな演算を行なうメモリセルマットに対し、この主演算回路外部との間でのデータ入出力を効率的に行なうことができる。
[実施の形態4]
図29は、この発明の実施の形態4に従う半導体信号処理装置(演算機能モジュール)1の要部の構成を概略的に示す図である。この図29においては、半導体信号処理装置(演算機能モジュール)1は、並列に設けられる主演算回路20A−20Hを含む。これらの主演算回路20A−20Hは、それぞれ、演算処理を行なうための演算アレイマットAM♯A−AM♯Hを含む。これらの演算アレイマットAM♯A−AM♯Hは、同一構成を有するため、図29においては、演算アレイマットAM♯Aについてのみ、その構成要素に対し参照番号を付す。
演算アレイマットAM♯Aは、それぞれが、行列状に配列されるメモリセルとビット線対とワード線とを含むメモリセルマット30lおよび30rと、メモリセルマット30lおよび30rそれぞれに対応して設けられるセンスアンプ/ライトドライバ帯141lおよび141rと、これらのセンスアンプ/ライトドライバ帯141lおよび141rの間に配置される演算処理ユニット群(ALU群)32を含む。メモリセルマット30lおよび30rのメモリセルは、シングルポートメモリセルであり、また、各エントリに対応してビット線対が配置される。
演算処理ユニット群32をメモリセルマット30lおよび30rの間に配置することによりビット線対の長さを短くして、ビット線負荷を軽減する。
センスアンプ/ライトドライバ帯141lおよび141rは、それぞれ、メモリセルマット30lおよび30rのビット線対に対応して設けられるセンスアンプSAおよびライトドライバWDを含む。演算処理ユニット群32においては、このセンスアンプ/ライトドライバ帯141lおよび141rと双方向にデータの転送を行なって演算処理を行なう演算処理ユニット(ALU)がそれぞれ各エントリ(ビット線対、またはセンスアンプ/ライトドライバ)に対応して配置される。
演算アレイマットAM♯A−AM♯Hに共通に、内部データバスとして、グローバルデータバス12が配置される。このグローバルデータバス12は、演算アレイマットAM♯A−AM♯Hのエントリそれぞれに対応して配置されるバス線を含み、演算アレイマットAM♯A−AM♯Hのライトドライバの入力およびセンスアンプの出力にそれぞれ結合される。
グローバルデータバス12を、演算アレイマットAM♯A−AM♯Hの上層に配置することにより、グローバルデータバス12を配設するために必要とされる平面レイアウト面積を、演算アレイマットの平面レイアウト面積で隠すことができ、演算モジュールのチップ占有面積を低減することができる。
このグローバルデータバス12は、直交メモリ80に結合される。直交メモリ80は、図12に示す構成と同様の構成を備え、データ配列の直交変換(行/列の変換)を行なう。この直交メモリ80が、システムバスI/F140を介してシステムバス54に結合される。
主演算回路20A−20Hには、それぞれ固有のアドレスが割当てられており、対応のコントローラ(21)が、与えられたアドレスに従って対応の演算アレイマットのメモリセルマットとグローバルデータバス12との間でデータ転送を行なう制御を実行する。
この直交メモリ80と演算アレイマットAM♯A−AM♯Hとの間のデータ転送動作は、先の実施の形態3または4において説明したものと同様である。すなわち、演算アレイマットAM♯A−AM♯Hへ演算処理対象データを格納する場合には、まずシステムバスI/F140を介してデータが直交メモリ80に順次格納される。この直交メモリ80においてデータが格納されると、次いで直交メモリ80が、グローバルデータバス12上に、順次ビットシリアルかつワードパラレル(エントリパラレル)態様でデータを転送する。アドレス指定された主演算回路内のコントローラの制御の下に、選択演算アレイマットAM♯(AM♯A−AM♯Hのいずれか)においてメモリセルマット30lおよび30rに対するデータの格納が行なわれる。
この主演算回路20A−20Hを特定するアドレスを順次切換えることにより、主演算回路20A−20Hに対し、演算処理対象データを格納することができる。
この演算アレイマットAM♯A−AM♯Hからのシステムバス54へのデータ転送時においては、主演算回路20A−20Hに含まれるコントローラが、バスリクエストを生成して、図7に示す割込コントローラ(61)またはDMAコントローラ(63)へ与える。このバスリクエスト情報とともに、主演算回路20A−20Hのコントローラが自身が特定するアドレスを送出し、直交メモリ80内の対内部転送制御回路が外部コントローラの制御のもとに起動され、主演算回路から直交メモリへのデータ転送が行われる。このデータの直交メモリへの転送後、直交メモリ80の対外部転送制御回路がシステムバスI/F140を介して、外部のコントローラの制御の下に活性化され、データを、順次システムバスI/F140を介してシステムバス54上に転送する。
この転送制御時においては、システムバスI/F140に含まれる制御回路により、バスリクエストおよびバス転送ウェイトの制御が行なわれてもよい。また、ホストCPUの制御のもとに主演算回路が指定され、この指定された主演算回路からのデータ転送がホストCPUから制御件を手渡された基本演算ブロック内のコントローラの制御のもとに行われても良い。この場合、直交メモリ80はシステムバスI/F内のコントローラにより対内部及び対外部転送制御回路が起動される。このとき、主演算回路を特定するアドレスは、図1に示す配置において、入出力回路10またはシステムバスI/F140から、図1に示す制御バス14を介して、各主演算回路に対応する基本演算ブロック内のコントローラ(21)へ与えられる。
直交メモリ80と選択主演算回路との間のデータ転送動作は、先の実施の形態3の場合と同様である。
以上のように、この発明の実施の形態4に従えば、複数の主演算回路(基本演算ブロック)に共通に、データ配列を変換するための直交メモリを配置しており、個々の基本演算ブロック内に直交変換用のメモリ回路を配置する必要がなく、半導体信号処理装置の占有面積を低減することができる。
[実施の形態5]
図30は、この発明の実施の形態5に従う半導体信号処理装置(演算機能モジュール)1の構成を概略的に示す図である。この図30に示す半導体信号処理装置(演算機能モジュール)1の構成は、以下の点で、図29に示す半導体信号処理装置とその構成が異なる。すなわち、グローバルデータバス12が、バス幅を変換するスイッチマクロ145に結合され、このスイッチマクロ145がバス152を介して直交メモリ150に結合される。この直交メモリ150は、システムバスI/F140を介してシステムバス54に結合される。
この図30に示す半導体信号処理装置1の他の構成は、図29に示す半導体信号処理装置(演算機能モジュール)1の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
直交メモリ150は、そのバス幅がjビットであるバス152を介してスイッチマクロ145とデータの転送を行なう。この直交メモリ150の内部構成は、エントリ数が異なることを除いて、先の図12に示す直交メモリ80の構成と同じである。
スイッチマクロ145により、バス幅を変換することにより、直交メモリ150の規模を低減することができる。
図31は、図30に示すスイッチマクロ145の構成の一例を示す図である。この図31においては、演算アレイマットAM♯iにおけるメモリセルマット30(30rまたは30l)とセンスアンプ/ライトドライバ群141(141rまたは141l)を示す。この演算アレイマットAM♯iにおいて、メモリセルマット30は、エントリERY0−ERY(m−1)を含み、各エントリに対応して、グローバルデータバス12のバス線GBS[0]−GBS[m−1]が配設される。これらのグローバルデータバス12のバス線GBS[0:m−1]は、それぞれ、センスアンプ/ライトドライバ群141のセンスアンプSAおよびライトドライバWDに結合される。
直交メモリ150は、2ポートメモリセルが行列状に配列される2ポートメモリセルマット150aと、データバス152との間でデータの転送を行なうインターフェイス(I/F)150bを含む。このインターフェイス150bは、センスアンプ、ライトドライバおよび入出力バッファを含む。
2ポートメモリセルマット150aは、エントリENT0−ENT(m/2−1)に分割される。エントリENT0−ENT(m/2−1)それぞれに対応して、データバス152のバス線TBS[0]−TBS[m/2−1]が配設される。
スイッチマクロ145は、グローバルデータバス12のバス線GBS[0]−GBS[m/2−1]とデータバス線TBS[0]−TBS[m/2−1]の間でデータの転送を行なう接続回路155aと、グローバルデータバス線GBS[m/2]−GBS[m−1]とデータバス線TBS[0]−TBS[m/2−1]の間でデータの転送を行なう接続回路155bを含む。
メモリセルマット30へのデータロード時には以下の動作が行われる。まず、直交メモリ150のエントリENT0−ENT(m/2−1)に順次、図示しないシステムバスからのデータが格納される。直交メモリ150においてデータ格納状況がフル(満杯)状態となると、インターフェイス(I/F)150bを介してデータの転送が行なわれる。この場合、スイッチマクロ145において、まず接続回路155aを活性化し、データバス線TBS[0:m/2−1]を、グローバルデータバス線GBS[0:m/2−1]に接続する。この状態では、直交メモリ150に格納されたデータが、メモリセルマット30のエントリERY0−ERY(m/2−1)に転送されて、対応のメモリセルに格納される。接続回路155bは非活性状態であり、エントリERY(m/2)−ERY(m−1)に対するデータの書込は行なわれない。
次いで、再び直交メモリ150に対し、次の演算処理データを転送して格納する。直交メモリ150においてエントリENT0−ENT(m/2−1)にデータが格納されると、次いで、接続回路155bを活性状態、接続回路155aを非活性状態として、グローバルデータ線GBS[m/2:m−1]を、データバス線TBS[0:m/2−1]に結合する。これにより、直交メモリ150のデータが、メモリセルマット30のエントリERY(m/2)−ERY(m−1)に転送されて格納される。
メモリセルマット30から直交メモリ150へのデータ転送時には、逆方向のデータ転送動作が行なわれ、接続回路155aを活性化して、エントリERY0−ERY(m/2−1のデータを、直交メモリ150に格納し、次いでシステムバスへ転送する。直交メモリ150からシステムバスへのデータ転送完了後、次いで、接続回路155bを活性化して、メモリセルマット30のエントリERY(m/2)−ERY(m−1)のデータを直交メモリ150に格納する。
このデータ転送時において、センスアンプ/ライトドライバ群141において、選択エントリに応じて、対応の活性状態の接続回路に対応して配置されるセンスアンプまたはライトドライバをブロック選択信号に従って、活性化する構成が用いられてもよい。
また、メモリセルマット30において中央部にロウデコーダを配置し、直交メモリとの間ではブロック分割動作を行って、活性状態の接続回路に対応するメモリセルマットブロックを活性化し、演算処理ユニットとの間でのデータ転送時には、メモリセルマットのブロック分割動作を停止して、メモリセルマット30の全エントリのデータを選択する構成が利用されてもよい。
この接続回路155aおよび155bの活性/非活性の制御信号は、先の図8に示す直交変換回路に含まれる対内部転送制御回路(86)の制御の下に転送要求に従って生成される。
以上のように、この発明の実施の形態5に従えば、演算アレイマットに共通に配置されるグローバルデータバスと直交メモリの入出力ポートとの間に、バス幅を変換するスイッチマクロを設けており、直交メモリの規模を低減することができる。
[実施の形態6]
図32は、この発明の実施の形態6に従う直交メモリの格納データの配列の一例を示す図である。図32において、直交メモリ160は、一例として、8個のエントリENT0−ENT7を含む。直交メモリ160は、先の図31または図12に示す直交メモリ80に対応する。この直交メモリ160へは、システムバスI/Fからのデータ転送時、順次所定ビット幅のデータa0、a1、…a7がシリアルに転送される。このとき、直交メモリ160において、最初のデータa0をエントリENT7に格納し、次いで、エントリENT0からENT6に、順次データa1、…、a7を順次格納する。
演算アレイマットへのデータ転送時においては、エントリENT0−ENT7から順次ビットシリアルかつエントリパラレルの態様でデータが転送され、演算アレイマットのインターフェイス部(センスアンプ/ライトドライバ群)を介して対応のメモリセルマットに格納される。
したがって、演算アレイマットにおける演算データの格納位置(エントリアドレス)と、システムバスから転送されるデータの転送順序(CPUアドレス)が異なり、この外部演算データのアドレスを変換して、演算アレイマット内へ格納することができる。
図33は、この発明の実施の形態6におけるアドレスを発生する部分の構成の一例を示す図である。図33において、アドレス発生部は、初期アドレスを設定する初期アドレス設定回路165と、アドレスの選択順序を指定するアドレスシーケンス設定回路166と、これらの初期アドレス設定回路165からの初期アドレスとアドレスシーケンス設定回路166からのアドレスシーケンス情報とに従ってアドレスRADを生成するアドレス発生回路167を含む。このアドレス発生回路167からのアドレスRADは、直交メモリ160の垂直方向ワード線WLVを選択するロウデコーダへ与えられる。
初期アドレス設定回路165は、たとえば、レジスタ回路で構成され、最初のデータに格納するエントリを指定するアドレスが格納される。
アドレスシーケンス設定回路166は、+1加算、+2加算、および終端部から中央部へのアドレス更新などのシーケンス等の情報を生成する。このアドレスシーケンス設定回路166は、マイクロプログラム命令に基づいて、順次、更新アドレスシーケンスを設定してもよい。
アドレス発生回路167は、この初期アドレス設定回路165からの初期アドレスに、アドレスシーケンス設定回路166が指定する更新アドレスシーケンス情報に従ってアドレス値の加算または減算を行って、エントリアドレスRADを生成する。
この図33に示すアドレス発生部は、直交メモリ内部に設けられてもよい。また、これに代えて、データ転送を要求する基本演算ブロック内のコントローラから、アドレスが算出されて、その直交メモリへ与えられるように構成されてもよい。
以上のように、直交メモリ内においてアドレスシーケンスを変更して、システムバスから転送されるデータと演算アレイマット内における格納データのマッピングを異ならせるように構成することにより、演算アレイマットおよび直交メモリを用いてデータシーケンス変更操作を容易に実現することができる。
[変更例1]
図34は、この発明の実施の形態6の変更例の直交メモリにおけるデータ格納状態の一例を示す図である。この図34に示す直交メモリ160は、一例として8個のエントリENT0−ENT7を含む。エントリENT0−ENT7は、各々、8個のデータを格納することのできるビット幅を有し、エントリENT0−ENT7それぞれに対応して垂直方向ワード線WLVが配置され、エントリENT0−ENT7と直交する方向に、かくデータビットそれぞれに対応して水平方向ワード線WLHが配置される。
システムバスからデータa0、…、a7が順次転送されるとき、この直交メモリ160において、データ列a0−a7を、それぞれエントリENT7からENT0−ENT6に順次格納する。このとき、各エントリENT0−ENT7においては、このデータ格納領域がエントリ延在方向に沿って順次ずらされる。
したがって、この場合においても、システムバスから転送されるデータa0−a7の演算アレイマットにおけるマッピングが変更される。この直交メモリ160において、転送データがすべて格納されると、すなわち、64個のデータが格納されると、次いで、この直交メモリ160からは、水平方向ワード線WLHを順次選択してデータを演算アレイマットのメモリセルマットへ転送する。演算アレイマットにおいては、8エントリの各データビット位置に転送データを書込む。
したがって、この図34に示すデータのマッピングの場合、直交メモリ160におけるデータ格納状況と同様のメモリ格納状況が、演算アレイマットのメモリセルマットにおいて実現され、システムバスを転送されるデータのメモリセルマットへのマッピングを自由に変更することができる。
この図34に示す直交メモリ160へのデータの書込およびデータの演算アレイマットへの転送時のアドレスは、図33に示すアドレス発生部の構成を利用することができ、この図33に示すアドレス発生回路167において、ロウアドレスおよびコラムアドレスを発生する。この場合、コラムアドレスは、単にその活性化されるワードドライバ群が順次グループ単位で(データビット幅のワードドライバ単位で)活性化する構成が利用されてもよい。この構成の場合、コラムアドレスは発生する必要がない。
また、水平方向ワード線WLHを、活性化する順序を変更することにより、このエントリENT0−ENT7に格納されるデータを演算アレイマットのメモリセルマットに格納する場合、さらにこの演算アレイマットのメモリセルマットにおけるデータの各エントリ内における可能順序を変更することができ、より柔軟に、マッピングを変更することができる。
[変更例2]
図35(A)および(B)は、この発明の実施の形態6の第2の変更例に従う直交メモリのアレイ構成を概略的に示す図である。図35(A)において、垂直方向ワード線WLVは、各行(エントリ)において、複数の分割ワード線DWLVに分割される。図35(A)において、各行に(s+1)本の分割ワード線が配置され、分割ワード線DWLV00−DWLVs0、DWLV01−DWLVs1、…、およびDWLV0t−DWLVstを代表的に示す。
これらの分割ワード線は、それぞれ、Vデコーダ168からの選択信号に従って選択状態へ駆動される。このVデコーダ168は、各行(エントリ)において、1つの分割ワード線を選択状態へ駆動する。分割ワード線DWLV00−DWLVst各々に、複数の2ポートメモリセルが接続されてもよく、また1ビットの2ポートメモリセルが接続されてもよい。
図35(B)において、この直交メモリ160においても、同様、垂直方向に、ワード線DWLHが複数の分割ワード線にDWLHに分割される。図35(B)においては、分割ワード線DWLH00−DWLH0u、…DWLHv0−DWLHvuを代表的に示す。これらの分割ワード線DWLH00−DWLHvuは、Hデコーダ169からの選択信号に従って選択状態へ駆動される。このHデコーダ169は、各列において(ビット線対BLH対の延在方向)において、1つの分割ワード線DWLHを選択状態へ駆動する。1本の分割ワード線DWLHに対して1ビットの2ポートメモリセルが接続されてもよく、また、複数ビットの2ポートメモリセルが接続されても良い。
図36は、この直交メモリ160におけるデータの格納状況の一例を示す図である。図36においては、この直交メモリ160が、垂直方向に、8個のエントリENT0−ENT7に分割される場合が一例として示される。データ列a0−a7が、並列に、この直交メモリ160へ与えられる。エントリENT0−ENT7それぞれにおいては、分割ワード線DWLVが配設されており、この分割ワード線DWLVを、図35(A)に示すVデコーダ168より、選択することにより、エントリENT7に、データa0が格納され、エントリENT0−ENT6のそれぞれ異なるビットアドレス位置に、データa1−a7が格納される。
この主演算回路(演算アレイマット)上のデータ転送時、図35(B)に示すHデコーダ169により、分割ワード線DWLHを選択状態へ駆動することにより、データ列a1−a7およびa0を、ビットシリアルに順次読出すことができる。したがってこの直交メモリ160のメモリアレイにおいてワード線を分割することにより、この直交メモリ160において、データ配列を容易に変更することができる。
Vデコーダ168およびHデコーダ169へは、それぞれエントリを示すアドレスおよびエントリにおける選択ビット位置を示す情報を与えることにより、分割ワード線個々に選択状態へ駆動することができる。
この分割ワード線DWLHおよびDWLVは、それぞれ、個々の2ポートメモリセルに接続されてもよく、複数の2ポートメモリセルにそれぞれ接続されてもよい。
以上のように、直交メモリにおいて、ワード線を分割構造としており、容易にデータ配列を変換することができる。なお、この直交メモリ160において、主演算回路(または演算アレイマット)から転送されるデータ配列を変更して、システムバスへ転送する場合には、図36に示すデータの流れと逆の方向にデータが転送される。
また、アドレス発生回路としては、単に、アドレスシーケンス情報に基づいて、各エントリをエントリにおける選択ビット位置情報をコントローラ(21)により生成する構成が利用されればよい。
以上のように、この発明の実施の形態6に従えば、直交メモリにおいてデータ順序を変更しており、容易に外部データのアドレスマッピングを変更して主演算回路のメモリセルマットに格納することができる。
[実施の形態7]
図37(A)−(C)は、この発明の実施の形態7に従うデータ転送操作の一例を示す図である。この実施の形態7においては、主演算回路20のメモリセルマット30のエントリERYiのデータを、エントリERYkにコピーする。このメモリセルマット30に対してはロウデコーダ46およびセンスアンプ/ライトドライバ(SA/WD)群141が設けられる。ロウデコーダ46は、エントリと直交する方向に配列されるワード線を選択する。したがってこの主演算回路20内において、エントリERYiのデータを、エントリERYkに転送するいわゆるコピー処理を行なう場合に、直交メモリ160を利用する。
直交メモリ160は、これまでの実施の形態と同様、2ポートメモリセルが行列状に配列されるメモリセルマット170と、メモリセルマット170のエントリENTに対して配置されるワード線(WLV)を選択するVロウデコーダ171と、このエントリと直交する方向に配列されるワード線(WLH)を選択するHロウデコーダ173と、エントリ単位でデータの書込/読出を内部的に行なうVSA/WD(センスアンプ/ライトドライバ)群172と、主演算回路20との間でデータの転送を行なうインターフェイスを構成するHSA/WD(センスアンプ/ライトドライバ)群174を含む。
この直交メモリ160においては、データの入出力を行なう入出力バッファ回路は特に示していない。
まず、転送動作時において、図37(A)に示すように、主演算回路20においてコピー対象のエントリERYiのデータを転送する必要があるため、ロウデコーダ146を用いて、ワード線(図示せず)を順次選択し、内部データバスを介して直交メモリ160に転送する。直交メモリ160においては、Hロウデコーダ173が、順次ワード線を選択し、HSA/WD群174のライトドライバを介して与えられたデータを各ビット単位でエントリENTiに格納する。このビットシリアルなデータ転送動作が、エントリERYiのコピーデータ(エントリ内の全データまたは一部のデータ)が転送されるまで繰返し実行される。
直交メモリ160にコピー元のデータがすべて転送された後、次いで、図37(B)に示すように、直交メモリ160において、Vロウデコーダ171により、エントリENTiに対応するワード線を選択状態へ駆動し、VSA/WD群172のセンスアンプおよびライトドライバを順次活性化する。次いで、コピー先のエントリENTkに対応して配置されるワード線をVロウデコーダ171により選択する。これにより、VSA/WD群172により増幅されたエントリENTiのデータが、エントリENTkに格納される。
この直交メモリ160におけるデータ転送動作が完了すると、次いで、図37(C)に示すように、Hロウデコーダ173により、ワード線(WLH)を順次選択状態へ駆動し、次いでHSA/WD群174のセンスアンプ(SA)を活性化し、エントリENTkのデータをビットシリアルに主演算回路20へ転送し、この主演算回路20のメモリセルマット30へ、転送データをSA/WD群141のライトドライバ(WD)を活性化して格納する。この場合、メモリセルマット30においては、ロウデコーダ46により、ワード線が順次選択状態へ駆動され、直交メモリ160と主演算回路20との間では、ビットシリアルにデータの転送が行なわれる。
この直交メモリ160のエントリENTkのデータが主演算回路20のメモリセルマット30のエントリERYkに格納されると、主演算回路20においては、メモリセルマット30のエントリERYiのデータが、エントリERYkに転送されており、コピー操作が完了する。
この図37(A)から図37(C)に示すデータ転送動作時において、直交メモリ160と主演算回路20の間のデータ転送は内部データバスを介して行なわれ、従って、内部データバスのビット幅に応じたデータが転送される。しかしながら、このエントリERYiおよびERYkと異なるエントリのデータが転送されても、直交メモリ160から返送されるデータは、エントリERYkを除けば、元のデータと同じであり、単にデータの再書込が行なわれるだけであり、エントリの内容は変更されない(エントリERYkを除いて)。したがって、内部データバスを用いて、エントリパラレルかつビットシリアルな態様でデータ転送が行なわれても、直交メモリ160内において、コピー元とコピー先のエントリ間でのデータ転送を行なうことにより、確実に、この主演算回路20における他のエントリの記憶内容に影響を及ぼすことなく、エントリERYiのデータを、エントリERYkにコピーすることができる。
この主演算回路20から直交メモリ160へのデータ転送時、エントリERYiを含むブロックのセンスアンプ/ライトドライバ群141のセンスアンプを活性化し、HSA/WD群174においても同様のライトドライバと同様に、ブロック分割態様で活性化し、また直交メモリ160から主演算回路20への転送時には、エントリENTkおよびERYkをそれぞれ含むブロックのHSA/WD群174およびSA/WD群141においてセンスアンプおよびライトドライバを活性化してもよい。コピー動作時における消費電流を低減することができる。
図38は、図37(A)−(C)に示されるコピー操作を制御する部分の構成を概略的に示す図である。図38においては、コピー動作制御部として、コピー元のエントリアドレスを格納するソースアドレスレジスタ180と、コピー先のエントリアドレスを格納するデスティネーションアドレスレジスタ181と、コントローラのレジスタ180および181に格納されたアドレスを用いて命令メモリ23からのコピー命令に応じてアドレスADおよび制御信号CTLを生成するコントローラ21が設けられる。
基本演算ブロックFB内のコントローラ21を用いて、主演算回路(20)のセンスアンプおよびライトドライバの制御を制御信号CTLにより行ない、また、アドレス信号ADに従って、直交メモリ160のVロウデコーダ(171)のエントリ選択アドレスを設定する。このコントローラ21からの制御信号CTLにより、直交メモリ160において、また、リード/ライト動作が行なわれる。このコントローラ21は、命令メモリ23内に格納されるマイクロプログラム命令に従ってコピー操作の制御を行なう。このとき、コントローラ21は、コピー元およびコピー先のエントリアドレスを算出してソースアドレスレジスタ180およびデスティネーションアドレスレジスタ181にそれぞれ、ソースエントリアドレスおよびデスティネーションエントリアドレス格納する。
このコピー動作は、エントリERYの一部のデータ(たとえば演算処理結果データのみ)について行なわれるときには、ソースアドレスレジスタ180には、エントリアドレスおよびこのエントリ内の転送データ格納領域指定アドレスが格納される。この一部データ領域を指定するアドレスに基づいて、主演算回路20のロウデコーダ46のワード線の選択範囲が設定される。
デスティネーションアドレスレジスタ181においても、同様、このエントリアドレスおよびコピーデータ格納領域指定アドレスが格納されてもよい。
以上のように、この発明の実施の形態7に従えば、主演算回路20のメモリセルマットとデータを、直交メモリを用いて転送することにより、主演算回路のメモリセルマットの任意のデータのコピー操作を内部で実行することができる。
[実施の形態8]
図39は、この発明の実施の形態8に従う直交メモリの構成を概略的に示す図である。図39において、直交メモリ200は、互いに独立に動作する直交2ポートメモリ202aおよび202bと、この直交メモリ200とシステムバスI/F220との間でのデータ転送を制御する対外部転送制御回路204と、直交2ポートメモリ202aおよび202bと内部データバス210の間でのデータ転送を制御する対内部転送制御回路206を含む。内部データバス210は、直交2ポートメモリ202aに結合されるサブデータバス210aと、直交2ポートメモリ202bに接続されるサブデータバス210bを含む。
直交2ポートメモリ202aおよび202bは共通に、内部バス215を介してシステムバスI/F220に結合されて、システムバス54との間でのデータ転送を行なう。
直交2ポートメモリ202aおよび202bは、各々、先の図12に示す直交メモリ80と同様の構成を備える。すなわち、直交2ポートメモリ202aおよび202bは、各々、システムバスI/Fとの間でデータ転送を行なうポート(Vポート)と、サブデータバス210aおよび210bそれぞれを介して基本演算ブロック(主演算回路)とデータの転送を行なうポート(Hポート)とを含む。これらの直交2ポートメモリ202aおよび202bを、対外部データ制御回路204および対内部データ制御回路206は、インタリーブ態様で動作させる。
図40および図41は、この図39に示す直交メモリ200のデータの流れを模式的に示す図である。以下、図40および図41を参照して、この図39に示す直交メモリ200のデータ転送動作について説明する。
直交2ポートメモリ202aに、システムバスI/F220を介してデータが格納される。この直交2ポートメモリ202aがフル状態となると、次いで、直交2ポートメモリ202bのVポートが活性化され、内部データバス215を介してシステムバスI/F220からのデータが順次格納される。この直交2ポートメモリ202bへのデータ書込と並行して、直交2ポートメモリ202aのHポート(センスアンプおよび出力回路)が活性化され、サブデータバス210aを介して、主演算回路20のメモリセルマット30へデータが順次転送される。この主演算回路20においては、ワードドライバ群42におけるサブデータバス210aに対応するワードドライバ(WD)サブグループ42aが活性化され、一方、ワードドライバサブグループ42bのワードドライバWDは非活性状態に維持される。これにより、サブデータバス210aに対応するエントリに対してのみ、ワードドライバ(WD)を介して直交2ポートメモリ202aからのビットシリアルデータが順次格納される。
次いで、図41に示すように、直交2ポートメモリ202bのデータ格納状態がフル状態となり、また直交2ポートメモリ202aのデータ転送動作が完了すると、直交2ポートメモリ202aのVポートが活性化され、システムバスI/F220から内部データバス215を介して転送されるデータが順次格納される。一方、直交2ポートメモリ202bは、そのHポートが活性化され、サブデータバス210bを介して、データが主演算回路に対して転送される。主演算回路20においては、この内部サブデータバス210bに対応するワードドライバサブグループ42bのワードドライバWDが活性化され、転送データを増幅して、対応のエントリに書込む。一方、サブデータバス210aに対応するワードドライバサブグループ42aのワードドライバWDが非活性状態にあり、メモリセルマット30においてワード線が、エントリに共通に選択状態へ駆動される場合においても、確実に転送データの既に転送されたデータに悪影響を及ぼすことなく格納することができる。
以降、必要なデータを転送するまで、この直交2ポートメモリ202aおよび202bのデータ入力およびデータ転送を交互に繰返して実行する。
直交メモリを用いて演算アレイマット(主演算回路)へデータを転送する場合、ワードシリアルかつビットパラレルデータをビットシリアルかつワードパラレルデータに変換して転送する必要があり、システムバスからのデータが直交メモリに入力され、転送データがすべて直交メモリに格納された後に、演算アレイマット(主演算回路)へ転送する。上述のインタリーブ転送シーケンスの場合、直交メモリから演算アレイマット(または主演算回路)のメモリセルマット30へのデータ転送途中においても、別の直交2ポートメモリを用いてシステムバスからのデータを入力することができ、画像データなどの大量のデータが連続してシステムバスから与えられる場合においても、データ転送レートを低下させることなくデータ転送を行なうことができ、並列演算処理機能の特徴をデータ転送時間の増大により損なうのを防止することができる。
主演算回路または演算アレイマットから直交メモリ200へのデータ転送時には、メモリセルマット30の全エントリから並列に、直交2ポートメモリ202aおよび202bのHポートを介してデータが格納されて、その後に直交メモリ202aおよび202をインタリーブ態様でデータをシステムバスに転送してもよい。これに代えて、図40および図41に示すデータ転送方向と逆の方向にデータ転送が行なわれてもよい(主演算回路のメモリセルマットのセンスアンプ群をサブデータバス210aおよび2210bに対応するグループ単位で活性化する)。
この直交メモリ200の直交2ポートメモリ202aおよび202bは、互いに独立に動作することが要求されるだけであり、バンク構成が用いられてもよく、また、直交2ポートメモリ202aおよび202bをブロック分割駆動する構成が用いられても良い(ブロック単位でHポートおよびVポートをインターリーブ態様で活性化する。
また、ワードドライバWDのエントリグループ単位(サブデータバス単位)の活性/非活性の制御は、主演算回路に含まれるコントローラ(21)により、実行される。この場合、図39に示す直交メモリ200からの対内部転送制御回路206からの内部サブデータバス210aおよび210bのいずれを利用するかの情報が、コントローラ(21)に与えられてその転送サブデータバス指示情報に基づいて、ワードドライバが選択的に活性化されればよい。
またこれに代えて、メモリセルマット30への演算処理データの転送時時には、このサブデータバス210aおよび210bの利用順序が予め定められており、その順序に従って、ワードドライバWDのサブグループ単位での選択活性が行なわれてもよい。
以上のように、この発明の実施の形態8に従えば、直交メモリを、2つの互いに独立に動作する直交2ポートメモリで構成し、これらをインタリーブ態様でデータの入力およびデータの転送を行なっており、システムバスから途切れることなく連続的にデータを転送することができ、基本演算ブロックに対するデータ転送レートを高く保つことができ、演算時間を短縮することができる。
[実施の形態9]
図42は、この発明の実施の形態9に従う直交メモリにおいて用いられる直交メモリセルの構成を説明する図である。この図42に示す直交メモリセルは、図11に示す直交2ポートメモリセルの構成に加えて、さらに、記憶データの一致を検出する構成が設けられる。すなわち、この直交メモリセルのデータ検索部は、接地ノードとマッチ線MLの間に直列に接続されるNチャネルMOSトランジスタNM1およびNM2と、接地ノードとマッチ線MLの間に直列に接続されるNチャネルMOSトランジスタNM3およびNM4を含む。MOSトランジスタNM1およびNM3は、それぞれストレージノードSN2およびSN1にそのゲートが接続され、MOSトランジスタNM2およびNM4は、それぞれのゲートが、検索データを伝達するサーチ線SLおよび/SLに接続される。
この図42に示す直交メモリセルの他の構成は、図11に示す直交メモリセルの構成を同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この図42に示す直交メモリセルは、内容参照メモリセル(CAMセル)であり、ストレージノードSN1およびSN2に格納されるデータとサーチ線SLおよび/SL上に表われる検索データとが一致する場合には、MOSトランジスタNM1およびNM2の一方がオフ状態であり、またMOSトランジスタNM3およびNM4においても一方がオフ状態である。したがってマッチ線MLはプリチャージ状態(たとえばHレベル)に維持される。一方、サーチ線SLおよび/SL上に伝達される検索データと直交メモリセルのストレージノードSN1およびSN2の格納データの論理が異なる場合、MOSトランジスタNM1およびNM2がともにオン状態となるか、または、MOSトランジスタNM3およびNM4がともにオン状態となる。したがってこの場合には、マッチ線MLは、接地電圧レベルに放電される。このマッチ線MLの電圧レベルを外部で検出することにより、検索データと直交メモリセル内のデータ記憶データの一致/不一致を検出することができる。このマッチ線MLは、垂直方向ワード線WLVと平行に配列されており、したがって、直交メモリの1エントリ(垂直ワード線WLVが選択するメモリセル)の格納ビットが検索データビットとすべて一致する場合には、マッチ線MLがプリチャージ電圧レベルのHレベルに維持される。
この直交メモリセルは、また、2ポートメモリセル構造であり、データ配列を図11に示す直交メモリセルと同様に変換することができる。
したがって、この図42に示す直交メモリセルを利用する場合、直交メモリにデータ配列変換機能に加えて、CAM(内容参照メモリ)としての機能を持たせることができ、データ検索機能を実現することができる。
図43は、この発明の実施の形態9に従う直交メモリの構成を概略的に示す図である。図43において、直交メモリ225は、CAMセル(直交メモリセル)CMCが行列状に配列されるCAMメモリセルマット230を含む。X方向のCAMセルCMCに対応して配置されるワード線WLH、ビット線対BLVPおよびサーチ線対SLPと、Y方向に整列するCMセルCMCに対応して配置されるビット線対BLHP、ワード線WLVおよびマッチ線MLが、このCAMセルマット230内に設けられる。
直交メモリ220は、さらに、図12に示す直交メモリと同様、V方向ワードアドレスADVに従ってワード線WLVを選択するロウデコーダ92vと、H方向ワードアドレスADHに従ってワード線WLHを選択するロウデコーダ92hと、ビット線対BLVP上に読出されたデータを増幅して入出力回路234へ伝達するセンスアンプ群94vと、入出力回路234からの書込データに従ってビット線対BLVPをドライブするライトドライバ群96vと、入出力回路234から与えられる検索データSDTに従ってサーチ線対SLPを駆動するサーチ線ドライバ群232と、ビット線対BLP上のデータを増幅して入出力回路238へ伝達するセンスアンプ群94hと、H方向データDTHにしたがって入出力回路238から与えられたデータに従ってビット線対BLHPを駆動するライトドライバ群96hと、マッチ線ML上の信号を増幅するマッチ線アンプ236を含む。
入出力回路234へは、システムバスとの間での転送データDTVおよび検索データSDTが与えられる。これらのデータDTVおよびSDTは、別々の経路から与えられてもよく、共通の内部データバスを介して与えられてもよい。図43においては、これらのデータDTVおよびSDTが、別々の経路を介して与えられるように示す。
入出力回路238は、主演算回路(演算アレイマット)との間の転送データDTHに加えて、マッチ線アンプ236からのマッチ線信号に基づいて一致情報MIを生成する。この一致情報MIは、基本演算ブロック内に主演算回路に含まれるコントローラへ与えられてもよく、また、この直交メモリ225から外部のシステムバスを介して伝達されてもよい。
図44は、この図43に示す直交メモリ225の検索時の動作を示す信号波形図である。データDTHおよびDTVの読出時の動作は、先の図12に示す直交メモリと同じであり、通常のSRMと同様の読出動作が、H方向およびV方向データについてそれぞれ行なわれる。
図44におていは、検索データSDTとして、サーチ線SLにHレベルデータが伝達される場合の動作波形が一例として示される。
検索データSDTが入出力回路234を介してサーチ線ドライバ群232へ与えられると、このサーチ線ドライバ群のサーチ線ドライバが、対応のサーチ線対SLPをこの検索データに従って駆動する。図42に示すサーチ線SLがHレベルであり、CAMセル(直交メモリセル)の記憶データと不一致のとき(MISSのとき)、ストレージノードSN2がHレベルであり、ストレージノードSN1がLレベルである。したがって、図42に示すCAMセル(直交メモリセル)においてMOSトランジスタNM1およびNM2がともにオン状態となり、マッチ線MLが接地電圧レベルへ駆動される。このマッチ線ML上の情報は、マッチ線アンプ260で増幅され、入出力回路238へ伝達され、全マッチ線MLの電圧レベルに応じて、マッチ情報(一致/不一致情報)MIが、不一致を示すMISSを示す状態に設定される。
一方、サーチデータSDTが、このマッチ線MLに接続されるCAMセルCMCの記憶データと一致している場合、図42に示すCAMセル(直交メモリセル)において、サーチ線SLがHレベルであり、かつサーチ線/SLがLレベルである。一方、ストレージノードSN1がHレベル、ストレージノードSN2がLレベルである。したがって、MOSトランジスタNM1およびNM4がともにオフ状態となり、マッチ線MLの放電経路は存在しない。このマッチ線MLに接続されるCAMセルにおいて、全てマッチ状態の場合、このマッチ線MLの放電経路は存在せず、マッチ線MLは、検索データとの一致時(HIT時)Hレベルに維持される。応じて、マッチ線アンプ236からの情報に基づいて、入出力回路238からのマッチ情報MIは、一致を示す状態HITに設定される。
したがって、直交メモリにおいて、直交メモリセルとして、CAMセルを利用することにより、基本演算ブロックそれぞれにデータ検索機能を持たせることができる(直交メモリ225が、各基本演算ブロックに対して設けられるとき)。したがって、この場合、基本演算ブロックにおいて、直交メモリ225にサーチデータSDTと一致するデータが存在するときのみ処理を実行するまたは処理を実行しないなどの機能を実現することができ、また、たとえば直交メモリ225に演算結果データが格納される場合、この演算結果データにおいて検索データSDTと一致するデータが存在する場合にのみ、データを外部へ転送する、または別の演算処理を実行するなどの機能を実現することができる。
また、一致情報において、一致マッチ線のアドレス情報を合わせて検出することにより、直交メモリをCAMとして利用することができ、検索データに対応するエントリアドレスを出力して、外部メモリから一致アドレスのデータを読出などの処理を実現することができる。
以上のように、この発明の実施の形態9に従えば、データ列変換用の直交メモリにおいて、ツーポートCAMセルを用いており、半導体信号処理装置において、データ検索機能を持たせることができる。
この直交メモリ225は、基本演算ブロックそれぞれに対して設けられてもよく、また、複数の基本演算ブロックに共通に設けられてもよい。
この発明に従う半導体信号処理装置は、大量のデータを処理する処理システムに適用することができ、たとえば画像データまたは音声データなどを高速で処理する用途に適用することができる。
この発明に従う半導体信号処理装置を含む処理システムの構成の一例を概略的に示す図である。 図1に示す主演算回路の演算操作を模式的に示す図である。 図2に示すメモリセルマットに含まれるメモリセルの構成の一例を示す図である。 図2に示す主演算回路の具体的演算操作を例示的に示す図である。 図1に示す主演算回路の具体的構成を示す図である。 主演算回路におけるデータセット時のデータの流れを模式的に示す図である。 この発明の実施の形態1に従う半導体信号処理装置を含む処理システムの構成を概略的に示す図である。 図7に示す直交変換回路の構成を概略的に示す図である。 図8に示す直交変換回路の動作を示すフロー図である。 図8に示す直交変換回路を用いた際の外部と主演算回路内メモリセルマットとの間のデータの流れを模式的に示す図である。 図8に示す直交メモリのメモリセルの構成の一例を示す図である。 図8に示す直交変換回路の具体的構成を示す図である。 図12に示す直交メモリのデータの流れを模式的に示す図である。 図12に示す直交メモリと主演算回路内メモリセルマットとの間のデータ転送動作を示す信号波形図である。 図14に示す信号波形図の直交メモリのデータの流れを模式的に示す図である。 図12に示す直交メモリのシステムバスとの間のデータ転送動作を示す信号波形図である。 図16に示す信号波形図の直交メモリのデータの流れを模式的に示す図である。 この発明の実施の形態2に従う主演算回路の構成を概略的に示す図である。 図18に示す主演算回路のデータセット時のデータの流れを模式的に示す図である。 図18に示す主演算回路の演算操作時のデータの流れを模式的に示す図である。 図18に示す主演算回路のデータ出力時のデータの流れを模式的に示す図である。 図18に示す主演算回路のメモリセルマットに対するアドレスの発生する部分の構成の一例を概略的に示す図である。 図21に示す主演算回路を利用する場合のシステム構成の一例を示す図である。 図18に示す主演算回路を用いる際のシステム構成の他の例を概略的に示す図である。 この発明の実施の形態3に従う主演算回路の構成を概略的に示す図である。 図25に示す主演算回路の直交2ポートメモリセルマットへのデータセット時の動作を示すフロー図である。 図25に示す主演算回路のセンスアンプおよびライトドライバとビット線対の対応を概略的に示す図である。 図25に示す主演算回路の演算結果データ出力時の動作を示すフロー図である。 この発明の実施の形態4に従う半導体信号処理装置の構成を概略的に示す図である。 この発明の実施の形態5に従う半導体信号処理装置の構成を概略的に示す図である。 図30に示すスイッチマクロの構成の一例を概略的に示す図である。 この発明の実施の形態6に従う直交メモリのデータ格納状況を概略的に示す図である。 図32に示す直交メモリへのアドレス発生部の構成を概略的に示す図である。 図32に示す直交メモリのデータ格納時の他の格納状況を概略的に示す図である。 (A)および(B)は、この発明の実施の形態5に従う直交メモリの内部の構成を概略的に示す図である。 図35(A)および(B)に示す直交メモリのデータの流れを模式的に示す図である。 (A)−(C)は、この発明の実施の形態7に従う半導体信号処理装置のデータ転送を模式的に示す図である。 図37(A)−(C)におけるデータ転送を行なう際のアドレス発生部の構成を概略的に示す図である。 この発明の実施の形態8に従う半導体信号処理装置の構成を概略的に示す図である。 図39に示す直交メモリのデータ転送動作を示す図である。 図39に示すシステムの直交メモリと主演算回路(演算アレイマット)の間のデータ転送を模式的に示す図である。 この発明の実施の形態9に従う直交メモリセルの構成を示す図である。 この発明の実施の形態9に従う直交メモリの全体の構成を概略的に示す図である。 図43に示す直交メモリのデータ検索時の動作を示す信号波形図である。
符号の説明
1 半導体信号処理装置、10 入出力回路、20 主演算回路、21 コントローラ、5 システムバス、12 グローバルデータバス、FB1−FBn 基本演算ブロック、ERY エントリ、32 演算処理ユニット群、34 演算処理ユニット、40 センスアンプ群、42 ライトドライバ群、46 ロウデコーダ、70 システムバスI/F、72 直交変換回路、74 切換回路、54 システムバス、80 直交メモリ、84 メモリセルマット/直交変換回路I/F、82 システムバス/直交変換回路I/F、PQ1,PQ2 PチャネルMOSトランジスタ、NQH1,NQH2,NQV1,NQV2,NQ1,NQ2 NチャネルMOSトランジスタ、90 メモリセルマット、92v,92h ロウデコーダ、94v,94h センスアンプ群、96v,96h ライトドライバ群、98v,98h 入出力回路、95 メモリセルマット、130 直交2ポートメモリセルマット、132 Vロウデコーダ、138 Hロウデコーダ、134 センスアンプ・ライトドライバ群、136 入出力回路、AM♯A−AM♯H 演算アレイマット、30l,30r メモリセルマット、141l,141r センスアンプ群/ライトドライバ群、20A−20H 主演算回路、140 システムバスI/F、145 スイッチマクロ、150 直交メモリ、155a,155b 接続回路、160 直交メモリ、168 Vデコーダ、169Hデコーダ、DWLV00−DWLVst,DWLH00−DWLHvu 分割ワード線、200 直交メモリ、202a,202b 直交2ポートメモリ、220 システムバスI/F、CMC CMセル、230 CMメモリセルマット、232 サーチ線ドライバ群、236 マッチ線アンプ、225 直交メモリ。

Claims (11)

  1. 各々が複数のメモリセルを有する複数のエントリに分割されるメモリセルマットと、前記メモリアレイのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行なって該演算結果を対応のエントリに格納することのできる複数の演算器とを含む少なくとも1個の基本演算ブロックを備え、1つのエントリには同一データの各ビットが格納され、
    前記基本演算ブロックのメモリセルマットとの間で、装置外部の転送データよりもビット幅の広いデータを転送する内部データ転送バス、
    装置外部との間でインターフェイスをとるインターフェイス部、および
    前記インターフェイス部と前記内部データ転送バスとの間に配置され、前記インターフェイス部と前記グローバルデータバスとの間でデータの並び替えを行なうデータ配列変換回路を備え、
    前記データ配列変換回路は、
    各前記エントリが延在する第1の方向に延在して配置される複数の第1のワード線と、
    前記第1の方向と交差する第2の方向に延在して配置される複数の第2のワード線と、
    前記第2の方向に延在して配置される複数の第1のビット線対と、
    前記第1の方向に延在して配置される複数の第2のビット線対と、
    前記第1および第2の方向に整列してアレイ状に配列され、それぞれ第1のワード線と第1のビット線対の交差部および第2のワード線と第2のビット線対の交差部に対応して配置される複数のSRAMセルを有するメモリアレイを備え、前記第1のワード線は前記第2のビット線対に対応して配置され、かつ前記第2のワード線は前記第1のビット線対に対応して配置され、さらに
    前記インターフェイス部との間のデータ転送時、前記第1のワード線および前記第1のビット線対を選択する第1のセル選択手段と、
    前記グローバルデータバスとの間でデータ転送時、前記第2のワード線および前記第2のビット線対を選択する第2のセル選択手段を備える、半導体信号処理装置。
  2. 前記少なくとも1個の基本演算ブロックは、前記内部データ転送バスに並列に結合される複数の基本演算ブロックで構成される、請求項1記載の半導体信号処理装置。
  3. 前記データ配列変換回路と前記内部データ転送バスとの間に配置され、データバス幅を変更するバス幅変換回路をさらに備える、請求項1または2に記載の半導体信号処理装置。
  4. 前記第1のセル選択手段は、第1のデータビット幅のデータを選択し、
    前記第2のセル選択手段は、前記第1のデータビット幅よりも大きな第2のビット幅のデータを選択する、請求項1から3のいずれかに記載の半導体信号処理装置。
  5. 前記少なくとも1個の基本演算ブロックは複数の基本演算ブロックを備え、
    前記データ配列変換回路は、各前記基本演算ブロックに対応して配置される、請求項1記載の半導体信号処理装置。
  6. 前記少なくとも1個の基本演算ブロックは複数個の基本演算ブロックを備え、
    前記内部データ転送線は、前記複数の基本演算ブロックのメモリセルマット上に延在して前記複数の基本演算ブロックに共通に配置される、請求項1記載の半導体信号処理装置。
  7. 前記データ配列変換回路は、さらに、装置外部のデータのアドレスを変換して格納する手段を備える、請求項1記載の半導体信号処理装置。
  8. 各々が第1の方向に整列して配置される複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、前記メモリアレイのエントリに対応して配置され、各々が対応のエントリのデータに演算処理を行なって該演算結果を対応のエントリに格納することのできる複数の演算器とを含む基本演算ブロックを備え、1つのエントリには、同一データの各ビットが格納され、
    前記メモリアレイに対応して隣接して配置され、内部データバスと前記アレイとの間でデータの並べ替えを行なうデータ配列変換回路を備え、
    前記データ配列変換回路は、
    前記エントリに対応して配置される複数の第1のワード線と、
    前記第1の方向と直交する第2の方向に延在して配置される複数の第2のワード線と、
    前記第2の方向に延在して配置される複数の第1のビット線対と、
    前記第1の方向に延在して前記エントリに対応して配置される複数の第2のビット線対と、
    前記第1および第2の方向に整列してアレイ状に配列され、それぞれ第1のワード線と第1のビット線対の交差部および第2のワード線と第2のビット線対の交差部に対応して配置される複数のSRAMセルを有するメモリアレイを備え、前記第1のワード線は前記第2のビット線対に対応して配置され、かつ前記第2のワード線は前記第1のビット線対に対応して配置され、
    前記内部データバスとの間のデータ転送時、前記第1のワード線および第1のビット線対を選択する第1のセル選択手段と、
    前記グローバルデータバスとの間でのデータ転送時、前記第2のワード線および第2のビット線対を選択する第2のセル選択手段と、
    各前記エントリと対応の第2のビット線との間でデータを転送するデータ転送手段を備える、半導体信号処理装置。
  9. 前記エントリには対応の第2のビット線対が延在して配置される、請求項8記載の半導体信号処理装置。
  10. 前記複数のSRAMセルのアレイは、第1および第2のサブメモリマットに分割され、
    前記第1および第2のセル選択手段は、各々、前記第1および第2のサブメモリマットをインタリーブ態様でアクセスし、かつ前記第1および第2のセル選択手段の一方が第1のサブメモリマットを選択するときには、他方のセル選択手段は、第2のサブメモリマットを選択する、請求項1または8記載の半導体信号処理装置。
  11. 前記SRAMセルアレイは、さらに、
    各SRAMセルに対応して配置され、対応のSRAMセルの格納データと検索データとの一致/不一致を判別する複数の検出素子と、
    前記第1の方向に沿って整列する検出素子に対応して配置され、各々が対応の検出素子の検出結果に従って駆動される複数の一致線とを備える、請求項1または8記載の半導体信号処理装置。
JP2004358719A 2004-12-10 2004-12-10 半導体信号処理装置 Pending JP2006164183A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004358719A JP2006164183A (ja) 2004-12-10 2004-12-10 半導体信号処理装置
US11/282,714 US20060143428A1 (en) 2004-12-10 2005-11-21 Semiconductor signal processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004358719A JP2006164183A (ja) 2004-12-10 2004-12-10 半導体信号処理装置

Publications (1)

Publication Number Publication Date
JP2006164183A true JP2006164183A (ja) 2006-06-22

Family

ID=36613154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004358719A Pending JP2006164183A (ja) 2004-12-10 2004-12-10 半導体信号処理装置

Country Status (2)

Country Link
US (1) US20060143428A1 (ja)
JP (1) JP2006164183A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305015A (ja) * 2007-06-05 2008-12-18 Renesas Technology Corp 信号処理装置および情報処理システム
JP2009104521A (ja) * 2007-10-25 2009-05-14 Mitsubishi Electric Corp 並列処理装置
JP2010244095A (ja) * 2009-04-01 2010-10-28 Seiko Epson Corp データ処理装置、印刷システムおよびプログラム
US8402260B2 (en) 2008-06-20 2013-03-19 Renesas Electronics Corporation Data processing apparatus having address conversion circuit

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738112B2 (ja) * 2005-09-12 2011-08-03 ルネサスエレクトロニクス株式会社 半導体記憶装置
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置
RU2011118108A (ru) * 2011-05-06 2012-11-20 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи
JP6013711B2 (ja) * 2011-09-01 2016-10-25 ラピスセミコンダクタ株式会社 半導体集積回路及び半導体集積回路のデバッグ方法
US8824196B2 (en) 2012-03-30 2014-09-02 International Business Machines Corporation Single cycle data copy for two-port SRAM
US9536577B2 (en) * 2013-09-26 2017-01-03 Intel Corporation Data movement in memory devices
US9779784B2 (en) * 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US10860318B2 (en) 2016-12-06 2020-12-08 Gsi Technology, Inc. Computational memory cell and processing array device using memory cells
US10943648B1 (en) 2016-12-06 2021-03-09 Gsi Technology, Inc. Ultra low VDD memory cell with ratioless write port
US10860320B1 (en) 2016-12-06 2020-12-08 Gsi Technology, Inc. Orthogonal data transposition system and method during data transfers to/from a processing array
US11227653B1 (en) 2016-12-06 2022-01-18 Gsi Technology, Inc. Storage array circuits and methods for computational memory cells
US10891076B1 (en) 2016-12-06 2021-01-12 Gsi Technology, Inc. Results processing circuits and methods associated with computational memory cells
US10249362B2 (en) 2016-12-06 2019-04-02 Gsi Technology, Inc. Computational memory cell and processing array device using the memory cells for XOR and XNOR computations
US10854284B1 (en) 2016-12-06 2020-12-01 Gsi Technology, Inc. Computational memory cell and processing array device with ratioless write port
US10777262B1 (en) 2016-12-06 2020-09-15 Gsi Technology, Inc. Read data processing circuits and methods associated memory cells
US10847213B1 (en) 2016-12-06 2020-11-24 Gsi Technology, Inc. Write data processing circuits and methods associated with computational memory cells
US10770133B1 (en) 2016-12-06 2020-09-08 Gsi Technology, Inc. Read and write data processing circuits and methods associated with computational memory cells that provides write inhibits and read bit line pre-charge inhibits
US10847212B1 (en) 2016-12-06 2020-11-24 Gsi Technology, Inc. Read and write data processing circuits and methods associated with computational memory cells using two read multiplexers
US10614092B2 (en) 2017-01-24 2020-04-07 International Business Machines Corporation Optimizing data retrieval operation in big-data processing systems
KR102446716B1 (ko) * 2017-11-10 2022-09-26 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
KR102373315B1 (ko) 2017-10-31 2022-03-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11437120B2 (en) 2017-10-31 2022-09-06 SK Hynix Inc. Memory system for activating redundancy memory cell and operating method thereof
US11100980B2 (en) * 2018-10-31 2021-08-24 Taiwan Semiconductor Manufacturing Company, Ltd. Orthogonal dual port ram (ORAM)
FR3088767B1 (fr) * 2018-11-16 2022-03-04 Commissariat Energie Atomique Circuit memoire adapte a mettre en oeuvre des operations de calcul
US10930341B1 (en) 2019-06-18 2021-02-23 Gsi Technology, Inc. Processing array device that performs one cycle full adder operation and bit line read/write logic features
US10877731B1 (en) 2019-06-18 2020-12-29 Gsi Technology, Inc. Processing array device that performs one cycle full adder operation and bit line read/write logic features
US10958272B2 (en) 2019-06-18 2021-03-23 Gsi Technology, Inc. Computational memory cell and processing array device using complementary exclusive or memory cells
US11170843B2 (en) 2020-03-19 2021-11-09 Arm Limited Bitcell with multiple read bitlines

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553898A (ja) * 1991-08-28 1993-03-05 Nec Corp 機能メモリ
JPH07226082A (ja) * 1994-02-09 1995-08-22 Toshiba Corp パラレル・シリアル変換装置及びこれを用いた線形変換装置
JPH1050076A (ja) * 1996-08-02 1998-02-20 Nec Corp 連想メモリ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US225151A (en) * 1880-03-02 Jambs j
US148369A (en) * 1874-03-10 Improvement in pitmen
JP3084801B2 (ja) * 1991-06-27 2000-09-04 日本電気株式会社 半導体メモリ装置
US5450604A (en) * 1992-12-18 1995-09-12 Xerox Corporation Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units
US20020093508A1 (en) * 2001-01-18 2002-07-18 Lightsurf Technologies, Inc. Orthogonal memory for digital imaging devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553898A (ja) * 1991-08-28 1993-03-05 Nec Corp 機能メモリ
JPH07226082A (ja) * 1994-02-09 1995-08-22 Toshiba Corp パラレル・シリアル変換装置及びこれを用いた線形変換装置
JPH1050076A (ja) * 1996-08-02 1998-02-20 Nec Corp 連想メモリ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305015A (ja) * 2007-06-05 2008-12-18 Renesas Technology Corp 信号処理装置および情報処理システム
JP2009104521A (ja) * 2007-10-25 2009-05-14 Mitsubishi Electric Corp 並列処理装置
US8402260B2 (en) 2008-06-20 2013-03-19 Renesas Electronics Corporation Data processing apparatus having address conversion circuit
JP2010244095A (ja) * 2009-04-01 2010-10-28 Seiko Epson Corp データ処理装置、印刷システムおよびプログラム

Also Published As

Publication number Publication date
US20060143428A1 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
JP2006164183A (ja) 半導体信号処理装置
TWI622991B (zh) 用於快取操作之裝置及方法
TWI622990B (zh) 用於資料移動之裝置及方法
US10964358B2 (en) Apparatuses and methods for scatter and gather
US20200364138A1 (en) Apparatuses and methods for write address tracking
TWI620194B (zh) 用於記憶體器件之裝置及方法以作為程式化指令之一儲存
TWI666645B (zh) 用於記憶體內操作之裝置及方法
TWI656533B (zh) 用於在資料路徑中計算之裝置及方法
JP4738112B2 (ja) 半導体記憶装置
TWI575376B (zh) 用於資料移動之裝置及方法
CN109147842B (zh) 同时进行数据路径中计算操作的设备及方法
JP4989900B2 (ja) 並列演算処理装置
US7562198B2 (en) Semiconductor device and semiconductor signal processing apparatus
JP6791522B2 (ja) インデータパス計算動作のための装置及び方法
TW201802696A (zh) 庫對庫資料轉移
TWI660362B (zh) 用於記憶體內操作之裝置及方法
TWI671744B (zh) 用於在記憶體中資料切換網路的裝置及方法
CN109427384B (zh) 存储器内处理
CN110622247A (zh) 组对组数据传送
JP4854277B2 (ja) 直交変換回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071011

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110802