JP4989900B2 - 並列演算処理装置 - Google Patents

並列演算処理装置 Download PDF

Info

Publication number
JP4989900B2
JP4989900B2 JP2006023054A JP2006023054A JP4989900B2 JP 4989900 B2 JP4989900 B2 JP 4989900B2 JP 2006023054 A JP2006023054 A JP 2006023054A JP 2006023054 A JP2006023054 A JP 2006023054A JP 4989900 B2 JP4989900 B2 JP 4989900B2
Authority
JP
Japan
Prior art keywords
data
memory
arithmetic processing
bit
circuit
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.)
Expired - Fee Related
Application number
JP2006023054A
Other languages
English (en)
Other versions
JP2007206849A (ja
Inventor
隆幸 行天
勝己 堂阪
英行 野田
哲志 谷崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006023054A priority Critical patent/JP4989900B2/ja
Priority to US11/698,188 priority patent/US7505352B2/en
Publication of JP2007206849A publication Critical patent/JP2007206849A/ja
Application granted granted Critical
Publication of JP4989900B2 publication Critical patent/JP4989900B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)

Description

この発明は、並列演算処理装置に関し、特に、半導体メモリと演算器とが集積化された並列演算処理装置の構成に関する。
携帯機器分野および画像処理用途などにおいては、近年、その高性能化により、大量の音声または画像データを高速で処理することが要求されている。この大量のデータを処理する場合、一般に専用のDSP(デジタル・シグナル・プロセッサ)が用いられることが多い。しかしながら、この専用のDSPを用いた場合、そのハードウェアが固定的に設定され、データビット幅および処理内容が限定される。そこで、種々の用途に柔軟に対応するように、ソフトウェアにより機能を変更することができるプログラマブルプロセッサを用いて、これらの処理を実行することが要求されてきている。特に、このようなデータ処理システムは、小型化の観点から、小面積かつ低消費電力で高速処理を実現することが重要となってきている。
音声データおよび画像データなどの処理においては、複数組のデータに対し、同じ演算処理を実行することが多い。したがって、このような処理用途において、SIMD型(シングル・イントラクション・ストリーム・マルチプル・データ・ストリーム:Single Instruction Stream Multiple Data Stream)プロセッサが用いられることが多い。このSIMD型プロセッサにおいては、各々がレジスタファイルと演算器とで構成されるプロセッサエレメントを並列に設け、各プロセッサエレメントを同一命令で並列に動作させる。このプロセッサエレメントは、たとえば、特許文献1(特開2003−186854号公報)に示されるように、256個が並列に設けられ、256組のデータについて並列演算処理を行なうことができる。
特開2003−186854号公報
SIMD型プロセッサにおいては、各プロセッサエレメントにおいて多ビットデータをレジスタファイルに格納する。レジスタからの多ビットデータを対応の演算器で受けて演算処理を実行する。この演算結果は、対応のレジスタファイルのレジスタに格納される。したがって、演算データのビット幅は、演算器またはレジスタのビット幅で決定される。上述の特許文献1に示されるように、レジスタファイルにおいて演算に利用するレジスタの数を変更することにより、演算データのビット幅の変更に対応することが可能である。しかしながら、たとえば8ビットレジスタを用いて16ビット演算データを格納する場合、上位ビットレジスタおよび下位ビットレジスタを設定し、順次レジスタを切換えて演算処理を行なう必要がある。したがって、たとえば、ブースアルゴリズムに従って乗算処理を行なう場合、部分積を求め、次いで部分析を加算して最終積を求める操作を実行する際に、演算データの桁位置を合わせるためにレジスタの切換が極めて煩雑となるという問題が生じる。
また、レジスタの切換の有無に応じて処理手順を変更する必要がある。従って、演算データのビット幅に応じて処理手順を変更する必要が生じ、ビット幅変更に対して柔軟に対応することができなくなる。
また、SIMD型プロセッサにおいては、多ビットデータの並列演算処理が行なわれており、演算器は、多ビット演算器であり、その占有面積が大きくなり、小型化に対する障害となる。
上述のようなSIMD型プロセッサの問題を解消するために、本願発明者のグループは、先に、高速演算処理を実現する並列演算処理装置を提案している(たとえば特願2004−171658号)。この並列演算処理装置においては、基本構成として、メモリセルアレイを複数のエントリに分割し、エントリに対応して、1ビット演算器を配置する。各エントリに、演算データを格納する。各演算器において、ビットシリアルに、演算処理を実行する。たとえば、演算器の両側のメモリセルアレイのエントリ各々からデータビットを読出して、対応の演算器へ転送し、演算器において演算を実行し、その実行結果を、所定のエントリに格納する。
演算処理は、複数ワードについてビットシリアルに行なわれる(ワードパラレル・ビットシリアル)。したがって、個々のデータの演算には時間を要するものの、エントリ数を多くして演算の並列度を高くすることにより、高速処理が実現される。たとえば、データビットの読出、書込および演算各々に1マシンサイクルが必要とされる動作環境においては、1ビット演算処理に3マシンサイクルが必要となる。したがって、8ビットデータの処理には3・8=24マシンサイクルが必要となる。しかしながら、エントリ数がたとえば1024であれば、24マシンサイクルで1024組のデータ処理が完了する。演算データのビット幅は、32ビットまたは64ビットである。従って、エントリの数を増大させることにより、高速演算が実現される。
また、演算処理が、ビットシリアル態様で行なわれるため、演算データのビット幅の変更に対しては、エントリのアクセスするアドレス範囲を変更することにより対応することができる。レジスタ切換などの処理手順の変更は不要であり、演算データのビット幅の変更に対して容易に対応することができる。
また、演算器は1ビット演算器であり、そのレイアウト面積は小さくすることができる。また、メモリセルアレイのビット線をエントリとして利用する場合、エントリに対応して演算器を配置することができ、レイアウト面積が小さく演算の並列度の極めて高い並列演算処理装置を実現することができる。
より演算の並列度を上げるためには、より効率的に演算器およびメモリセルアレイの周辺回路を配置する必要がある。しかしながら、この演算器および周辺回路の配置領域は、メモリセルのピッチに従って決定される。メモリセルアレイにおけるレイアウトルールおよびメモリセルのピッチが予め設定されているため、より効率的にレイアウト面積を低減して演算器および周辺回路を配置するためには、さらなる工夫を必要とする。
また、メモリセルアレイは、リフレッシュが不要なたとえばSRAM(スタティック・ランダム・アクセス・メモリ)で構成される。データがビットシリアルに演算処理されるため、高速処理のために、データの読出と演算結果の書込を同一サイクルで行うリードモディファイを行う場合、データの読出および書込を1マシンサイクルで行なうSRAMの方が、演算器よりも動作周波数が高くなる。この結果、このSRAMの動作周波数により並列演算処理装置全体の動作速度が律速され、より高速演算処理を実現するためには、また、SRAMの動作方式に対してさらに工夫が必要となる。
また、動作周波数を高くした場合、消費電力が増大する。また、高速化のためには、素子のレイアウト面積を大きくして、電流駆動力を高くする必要があり、消費電力が増大する。さらに、演算の並列度を高くするためには、エントリの数を増大させる必要があり、この場合、並行して動作する回路の数が増大し、消費電力が増大する。したがって、演算の並列度および動作速度を消費電力を増大させることなく高くするためには、この点からもさらなる工夫が必要となる。
それゆえ、この発明の目的は、低消費電力で高速動作および超高並列演算を実現することのできる並列演算処理装置を提供することである。
この発明に係る並列演算処理装置は、行列状に配列される複数のメモリセルと、メモリセル各列に対応して配置される複数のビット線とを各々が有する複数のメモリブロックと、これらの複数のメモリブロックの間に配置され、各々が、それぞれ与えられたデータに対して演算処理を実行する複数の演算器を有する複数の演算処理ユニットと、メモリブロック各々においてビット線の両側に交互に配置され、隣接する演算処理ユニットの演算器との間でデータを転送する複数のデータ書込/読出回路を含むデータ転送回路とを備える。複数のメモリブロックは、各々が、一方向に整列するメモリブロックを含む複数のメモリマットに分割され、データ転送回路および演算処理ユニットの動作を制御するローカル制御回路は、メモリマットの間の領域に配置される。
各メモリブロックにおいてビット線の両側にデータ転送回路のデータ書込/読出回路が交互に配置される。これにより、データ転送回路および演算処理ユニットの演算器のピッチ条件が緩和され、効率的に余裕を持ってこれらの回路要素を配置することができる。また、1つのデータ転送回路において配置されるデータ書込/読出回路の数が低減され、入出力データ1ビットあたりの列(ビット線)の数が低減され、レイアウト面積が低減され、また、動作する回路の数も低減され消費電力が低減される。
また、メモリブロックの間には、演算処理ユニットが配置されるため、メモリブロック間の、ダミーセル等を配置する分離領域が不要となり、メモリセルアレイの面積を低減することができる。
さらに、メモリブロックにおいて、1本のワード線を選択することにより、メモリブロック両側の演算回路へ転送するデータを並行して選択することができる。したがって、各メモリブロックをバンクとして利用して並列演算を行なう場合、2つのバンクの演算データを1つのワード線の選択で読出/書込を行なうことができ、選択ワード線の本数を低減でき、応じてワード線選択に要する消費電力を低減することができる。
[出発構成]
図1は、この発明に従う並列演算処理装置を利用するシステムの概念的構成を示す図である。この発明に従う並列演算処理装置は、図1に示す演算装置をチップ上に実現する。先ず、この発明に従う並列演算処理装置の動作および機能を明確にするために、図1を参照して、並列演算処理装置を利用する処理システムの概念的構成および演算操作について説明する。
図1において、演算処理システムは、並列演算を実行する半導体演算装置1と、この半導体演算装置1における処理の制御、システム全体の制御およびデータ処理を行なうホストCPU2と、システムの主記憶として利用されて必要な種々のデータを格納するメモリ3と、ホストCPU2を介することなくメモリ3に直接アクセスするDMA(ダイレクト・メモリ・アクセス)回路4とを含む。DMA回路4の制御により、メモリ3と半導体演算装置1の間でデータ転送を行なうことができ、また半導体演算装置1へ直接アクセスすることができる。
ホストCPU2、メモリ3、DMA回路4、および半導体演算装置1は、システムバス5を介して相互接続される。半導体演算装置1は、複数の並列に設けられる基本演算ブロックFB1−FBnと、システムバス5との間でデータ/命令を転送する入出力回路10と、半導体演算装置1内部での動作処理を制御する集中制御回路15を含む。
基本演算ブロックFB1−FBnは、内部データバス(グローバルデータバス)12に結合され、また集中制御ユニット15、入出力回路10および基本演算ブロックFB1−FBnは、内部バス14に結合される。基本演算ブロックFB(FB1−FBnを総称的に示す)の間には、ブロック間データバス16が設けられる(図1において、基本演算ブロックFB1およびFB2の間に配置される隣接ブロック間データバス16を代表的に示す)。
基本演算ブロックFB1−FBnを並列に設け、この半導体演算装置1の内部で並列に同一または異なる演算処理を実行する。これらの基本演算ブロック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それぞれにおいて実行する処理内容を変更することができ、基本演算ブロックFB1−FBnにおいてそれぞれ演算実行される処理内容を変更することができる。
隣接ブロック間データバス16が、基本演算ブロックFB1−FBnの間のデータ転送を行なうために設けられる。この隣接ブロック間データバス16は、内部データバス(グローバルデータバス)を占有することなく基本演算ブロック間の高速データ転送を可能とする。したがって、たとえば、ある基本演算ブロックに内部データバス12を介してデータを転送している間に、別の基本演算ブロック間でデータ転送を行なうことができる。
集中制御ユニット15は、制御用CPU25と、この制御用CPUが実行する命令を格納する命令メモリ26と、制御用CPU25のワーキングレジスタまたはポインタ格納用のレジスタを含むレジスタ群27と、マイクロプログラムのライブラリを格納するマイクロプログラムライブラリ格納メモリ28を含む。集中制御ユニット15は、内部バス14を介してホストCPU2から制御権を手渡され、内部バス14を介して基本演算ブロックFB1−FBnの処理動作を制御する。
このマイクロプログラムライブラリ格納メモリ28に、各種シーケンス処理がコード化されたマイクロプログラムをライブラリとして格納することにより、集中制御ユニット15から必要なマイクロプログラムを選択して、基本演算ブロックFB1−FBnのマイクロプログラム格納メモリ23に格納されるマイクロプログラムを変更することができ、処理内容の変更に柔軟に対応することができる。
ヒューズ回路24は、この基本演算ブロックFB1−FBnそれぞれにおいて、不良が発生した場合冗長置換を用いて不良救済を行ない、これにより、歩留まりを改善する。
図2は、図1に示す主演算回路20の基本的な構成を概略的に示す図である。図2において、主演算回路20は、メモリセルマット30Aおよび30Bと、これらのメモリセルマット30Aおよび30Bの間に配置される演算処理ユニット32を備える。
メモリセルマット30Aおよび30Bは、基本的にそれぞれm個のエントリERYに分割される。エントリERYは、nビットのビット幅を有する。このメモリセルマットの詳細構成については後に説明する。メモリセルマット30Aおよび30Bにおいて、各エントリERYを構成するメモリセルMCは、スタティック・ランダム・アクセス・メモリセルで構成される。
この演算処理ユニット32は、メモリセルマット30Aおよび30BのエントリERYに対応して設けられる演算器(ALU)34を含む。図2においては、演算器(以下、単にALUと称す)34は、1ビット演算処理を実行するように示される。しかしながら、このALUは、2ビット演算処理を実行してもよい。この演算処理ユニット32においてALU34が、それぞれ対応のエントリのデータに対して指定された演算処理を行なう。このALU34は、加算、減算、論理積、排他的論理和などの演算を実行することができる。
二項演算をALU34が行なう場合、メモリセルマット30Aおよび30Bに、各項の演算対象データを格納し、その演算処理結果を、メモリセルマット30Aおよび30Bの一方に格納する。ALU34に対しエントリERYの演算対象データのビットが逐次読出され、ビットシリアルに演算が実行される。図2においては、メモリセルマット30Aおよび30Bそれぞれに対し、メモリセルMCのデータを読出してALU34へ転送し(ロードし)、その演算結果がメモリセルに格納される(ストアされる)ように示す。
メモリセルマット30Aおよび30Bは、各々演算対象の組のデータをともに格納することは要求されず、1つのメモリセルマットに格納するデータ量を低減することができる。応じて、ビット線(エントリERYがビット線延在方向に沿って形成される)の長さを短くすることができ、高速データ転送を実現する。
図3は、図1に示す隣接ブロック間データバス16の具体的接続態様を、主演算回路の具体的配置とともに併せて示す図である。図3において、主演算回路20A−20Dが図1に示す内部データバス12に対応するグローバルデータバスGBSに並列に結合される。これらの主演算回路20A−20Dの各々は、メモリセルマット30Aおよび30Bと、これらのメモリセルマット30Aおよび30Bの間に配設されるALU群(演算処理ユニット)を含む。図3においては、このALU群は示していない。各主演算回路においてALU群のALU(34)を相互接続するためのALU間相互接続用スイッチ回路ECMが設けられる。このALU間相互接続用スイッチ回路ECMにより、物理的に離れた位置のエントリのデータに対して演算処理を実行することができる。
メモリセルマット30Aおよび30Bは、各々、複数のエントリERYに分割されており、ALU間相互接続用スイッチ回路ECM内において、エントリERYそれぞれに対して、ALU間相互接続回路が設けられる。
図1に示す隣接ブロック間データバス16は、隣接する主演算回路のALU間接続回路(ALU間相互接続用スイッチ回路ECM内)を相互接続する隣接ブロックエントリ相互接続線40を含む。隣接ブロックエントリ相互接続線40は、隣接する基本演算ブロックの主演算回路20(20A−20D)の同一位置のエントリを相互接続する。
グローバルデータバスGBSは、入出力回路10を介して外部のシステムバス5に結合される。図3においては、外部システムバス5が一例として32ビット幅の場合を示す。グローバルデータバスGBSに関して同一側に配置される隣接主演算回路20Aおよび20Bは、同一位置のエントリのALUが、隣接ブロックエントリ相互接続バスNBAaを介して相互接続される。この隣接ブロックエントリ相互接続バスNBAaは、隣接する主演算回路20Aおよび20Bの同一位置のエントリERYに対して設けられALUおよびALU間接続回路を相互接続する隣接ブロックエントリ接続線40を含む。
また、グローバルデータバスGBSの他方側において配置される隣接主演算回路20Cおよび20Dにおいても、隣接ブロックエントリ接続バスNBAbが配置される。この隣接ブロックエントリ相互接続バスNBAbは、主演算回路20Cおよび20Dの同一位置にエントリERYに対して設けられるALUおよびALU間相互接続回路を接続する隣接ブロックエントリ相互接続線40を含む。
隣接ブロック間相互接続バス(隣接ブロック間データバス16)は、さらに、グローバルデータバスBGSに対して対向する位置の主演算回路20Aおよび20Cの対応するエントリERYに対して設けられるALUおよびALU間相互接続回路を接続する隣接ブロックエントリ相互接続バスNBBaを含む。この隣接ブロックエントリ相互接続バスNBBaは、主演算回路20Aおよび20Cの対応の位置のエントリに対して設けられるALUユニットおよびALU間接続回路相互接続する配線42aを含む。
同様に、主演算回路20Bおよび20Dの対応の位置のエントリERYに対して配置されるALUおよびALU間接続回路が、隣接ブロック相互接続バスNBBbより相互接続される。この隣接ブロックエントリ相互接続バスNBBbは、各ALUおよびALU間接続回路に対して配設される配線42bを含む。
この図3に示すように、基本演算ブロックFBi(主演算回路20A−20D)が配設され、グローバルデータバスGBSの一方側の両端の主演算回路およびグローバルデータバスの他方側の主演算回路のALUおよびALU間接続回路を相互接続することにより、これらの主演算回路20A−20Dをリング状に相互接続することができ、任意の主演算回路間でデータ転送を行なうことができる。また、アレイ状に主演算回路のメモリセルマットを配置することにより、効率的にメモリセルマットを配置することができる。
図3に示すように、隣接ブロック相互接続バスNBBaおよびNBBbにおいて、対向して配置される主演算回路の同一位置のエントリERYに対して設けられるALUおよびALU間相互接続回路が、配線42aおよび42bにより相互接続されている。したがって、その相互接続配線42aおよび42bは、それぞれのバスNBBaおよびNBBbにおいて同じ長さとなり、信号伝搬遅延を同一とすることができ、信号のスキューを低減でき、高速転送を実現することができる。
また、隣接ブロックエントリ相互接続バスNBBaおよびNBBbは、それぞれメモリセルマット30Aおよび30B上に延在される第1の配線部分と、グローバルデータバスBGSに関して対向する主演算かリロードのメモリセルマット上を第1の配線部分と直交する方向に延在する第2の配線部分とで構成される。これらの第1の配線部分および第2の配線部分をメモリセルマット上で相互接続することにより、グローバルデータバスに対して対向するメモリマット間の相互接続配線をコンパクトに配置することができ、配線面積増大によるアレイ面積の増大を抑制することができる。
なお、図3において、ALU間相互接続用スイッチ回路ECMの内部構成は示していない。ALU間相互接続用スイッチ回路ECMにおいては、ALUおよびALU間接続回路がエントリに対応して配置されており、各ALUおよびALU間接続回路が、対応の配線40、42aまたは42bにより接続される。
本発明は、これらの図1から図3に示す構成を基本構成として、半導体チップ上に主演算回路(基本演算ブロック)を効率的に集積化して、低消費電力で高速で動作する並列演算処理装置を実現する。
[実施の形態1]
図4は、この発明の実施の形態1に従う並列演算処理装置の全体の構成を概略的に示す図である。図4において、並列演算処理装置50は、半導体チップ上に集積化され、2つのメモリマット55Aおよび55Bを含む。この図4に示す並列演算処理装置50は、1つの基本演算ブロックを構成してもよく、また図3に示すように、複数の主演算回路を含んでもよい。
また、この並列演算処理装置50は、半導体チップ単体で構成されてもよく(領域50がチップに対応)、また、他の装置と同一チップ上に集積化されてシステムLSIを構成しても良い(領域50が、いわゆるマクロに対応)。
メモリマット55Aは、メモリブロックMA0−MAmを含み、メモリマット55Bは、メモリブロックMB0−MBmを含む。メモリマット55Aにおいて、メモリブロックの間に、演算処理ユニットPA0−PAm−1が配設される。これらの演算処理ユニットPA0−PAm−1は、両側に設けられるデータ転送回路を構成するセンスアンプ/ライトドライバT帯XA0−TXAk−1を介して隣接メモリブロックと結合される。メモリマット55Bにおいても、同様、メモリブロックMB0−MBmの間に、演算処理ユニットPB0−PBm−1が配設される。演算処理ユニットPB0−PAm−1と各メモリブロックとの間には、センスアンプ/ライトドライバTXB0−TXBk−1帯がそれぞれ配置される。センスアンプ/ライトドライバ帯TXA0−TXAk−1およびTXB0−TXBk−1は、各々、センスアンプおよびライトドライバを含む。
これらのメモリマット55Aおよび55Bの間の領域に、メモリブロックMA0−MAmおよびMB0−MBmに対応してSRAM周辺回路SH0−SHmが配置される。また、メモリマット55Aおよび55Bの演算処理ユニットPA0−PAm−1およびPB0−PBm−1の間の領域にローカル制御回路LK0−LKm−1が配置される。
メモリブロックMA0−MAmおよびMB0−MBmは、各々SRAMセルで構成され、メモリブロックにおけるメモリセルのデータの書込および読出を行なうためのロウデコーダ、ワード線ドライブ回路およびワード線選択タイミングの制御を行う制御回路などの周辺回路が、SRAM周辺回路内SH0−SHmに配置される。
ローカル周辺回路LK0−LKm−1は、対応の演算処理ユニットにおける演算処理動作を制御するとともに、対応のセンスアンプ/ライトドライバ帯のセンスアンプおよびライトドライバの動作を制御する。
メモリマット55Aおよび55Bの間に、SRAM周辺回路SH0−SHmおよびローカル制御回路LK0−LKm−1を配置することにより、蝋アドレスを精製するアドレスポインタおよびロウアドレスデコード回路などの周辺回路を、メモリマット55Aおよび55Bで共有することができる。これにより、SRAM周辺回路のレイアウト面積を低減することができる。
また、ローカル制御回路LK0−LKm−1においても、マット特定信号を除いて、内部制御信号を生成する回路部分を、メモリマット間で共有することができる。また、これらの演算処理ユニットが、並列に同一の演算を実行する場合には、ローカル制御回路において演算制御を行う回路部分をメモリマット55Aおよび55B間で共有することができ、応じて、レイアウト面積を低減することができる。
メモリブロックの内部構成については、後に詳細に説明するが、1つのメモリブロックMAiおよびMBi(i=0−m)は、各々、その両側の演算処理ユニットにより用いられる。すなわち、図3に示すように、演算処理回路(回路ECMで表わす回路部分)が、その両側のメモリセルマットで共有されるのではなく、図4に示す構成においては、演算処理ユニットがメモリブロックを共有する。したがって、図3に示すように、主演算回路の間のメモリセルマット間の領域において、演算処理ユニットが配置される構成となり、ダミーセルなどの回路領域等のSRAMブロックを分離する領域が不要となり、レイアウト面積を低減することができる。
また、メモリマット55Aおよび55Bにおいては、各々のメモリブロックに対して共通にグローバルデータバスが配置され、このグローバルデータバスと装置外部とのインターフェースをとるために、グローバルバスインタフェース60aおよび60bが、メモリマット55Aおよび5Bの端部にそれぞれ配置される。このグローバルバスインターフェース60aおよび60bは、図1に示す入出力回路であっても良く、また、この入出力回路と並列演算装置との間のバスのインターフェースを取る回路であっても良い。
図5は、図4に示す並列演算処理装置50の等価的構成および内部バス配置を示す図である。図5において、メモリマット55Aにバンク♯0−♯M+1が配設され、また、メモリマット55Bにおいてバンク♯M+2−♯Nが配設される。
これらのバンク♯0−♯M+2の各々は、演算処理ユニット(ビット演算ユニット群PEs)と両側のメモリブロック(SRAM)とで構成される。したがって、演算処理は、バンク♯0−♯Nそれぞれにおいて個々に実行される。
バンク♯0−♯M+1に対してグローバルデータバスBGSaが配設され、また、バンク♯M+2−♯Nに対しグローバルデータバスBGSbが配設される。これらのグローバルデータバスBGSaおよびBGSbが、先の図1に示すグローバルデータバスBGSに対応する。このグローバルデータバスBGSは、上述のように、図4に示すグローバルバスインターフェイス60aおよび60bを介して図1に示す入出力回路に結合されても良く、また、グローバルインターフェース60aおよび60bを介してシステムバスに結合されても良い。また、グローバルデータバスBGSが、図4に示すグローバルバスインターフェイス60aおよび60bにおいて、よりビット幅調整が行なわれ、図1に示す内部バスに結合され、次いで図1に示す入出力回路に結合されてもよい。
この図5に示すように、並列演算処理装置50においては、バンク♯0−♯Nにおいて個々に演算処理が実行される。バンク♯0−♯Nは、ALU間相互接続配線NBにより、リング状にその演算器(ALU)に対応するビット演算ユニット群に結合される。ビット演算ユニットの用語は、以下の理由から用いる。後に説明するように、本実施の形態においては、2ビット並列演算処理が実行される。したがって、1ビット演算処理を実行する演算器(ALU)に代えて、この構成上の違いを明確にするために、ビット演算ユニットPEの符号を用いる(この構成については後に説明する)。
この図5に示すように、バンク♯0−♯Nそれぞれにおいて、演算処理ユニット(PEs)は、両側のメモリブロック(SRAM)の記憶データを用いて演算処理を実行する。バンクそれぞれにメモリブロックを個々に配置すると、図5に概念的に示すように、隣接バンクにおいて、メモリブロック(SRAM)を分離するための、ダミー回路を配置するSRAM境界領域を設ける必要がある。隣接するメモリブロック(SRAM)を両側の演算処理ユニットで共有することにより、この空き領域を削減する。
この並列演算処理装置50においては、SIMD制御信号によりバンク♯0−♯Nに共通の演算命令が与えられ、内部制御信号に従って、メモリセルのデータの転送、およびアドレスの更新などを行って、これらのバンク♯0−♯Nが並列に演算を実行する。バンク♯0−♯Nが、各々図1に示す基本演算ブロックに対応し、演算処理ユニットメモリおよび両側のメモリブロックとが、図1に示す主演算回路に対応する。
SIMD制御信号および内部制御信号は、それぞれ、図1に示す集中制御ユニット15から各バンクを構成する基本演算ブロックへ与えられる。このSIMD制御信号に従って、バンク♯0−♯Nが、並列に同一命令に従って同じ演算を実行する(バンクアドレスにより、演算を実行するバンクが指定されても良い)。したがって、この場合、図1に示す各基本演算ブロック内におけるコントローラ21が、ローカル制御回路として機能し、対応のバンク(基本演算ブロック)の内部動作を制御する。SIMD制御信号に従って、演算処理ユニット内における演算器(ビット演算ユニット)の演算内容が設定されるため、マイクロプログラム格納メモリ23は特に設ける必要はない。レジスタ群は、アドレスポインタの生成のために、各バンクにおいて設けられていても良い。
また、演算内容の設定および内部制御信号の生成が、各ローカル制御回路で個々別々に行なわれても良い(この場合には、各バンクで異なる演算を実行することができる)。
図6は、この図4に示す並列演算処理装置のメモリマットの構成をより具体的に示す図である。図6においては、バンク♯1、♯2および♯3に対応する部分の構成を代表的に示す。
図6において、メモリブロックMA1♯1の偶数サブエントリERYeがバンク♯1の演算データ格納領域として利用され、メモリブロックMA♯1およびMA♯2の奇数サブエントリERYoが、バンク♯2の演算データ格納領域として利用される。メモリブロックMA♯2の偶数サブエントリERYeは、バンク♯3の演算データ格納領域として利用される。サブエントリERYeおよびERYoは、各々、対応のメモリブロックの1列のメモリセルで構成され、各サブエントリは、ビット線対を介して内部データを転送する。
2つのサブエントリにより、1つのエントリが構成され、1エントリに演算データが格納される。2つのサブエントリに対して演算データの偶数アドレスのビットおよび奇数アドレスのビットをそれぞれ格納する。1本のワード線選択により、演算データの奇数アドレスビットおよび偶数アドレスビットを並列に読出して、ビット演算ユニットPEが2ビット並列演算を実行する。
このバンク♯1においては、図示しないメモリブロックに対して設けられるデータ転送回路を構成するセンスアンプ/ライトドライバ帯TXA♯1と、メモリブロックMA♯1の偶数サブエントリERYeに対して設けられるセンスアンプ/ライトドライバを含むセンスアンプ/ライトドライバ帯TXA♯2と、これらのセンスアンプ/ライトドライブ帯TXA♯1およびTXA♯2の間の演算処理ユニットPA♯1を含む。この演算処理ユニットPA♯1においては、2つのエントリに対して1つのビット演算ユニットPEが設けられる。したがって、ビット演算ユニットPEは、4サブエントリ(ビット線対)あたり1つ配置される。
バンク♯2も、同様、メモリブロックMA♯1およびMA♯2の奇数サブエントリERYoとの間でデータを転送するセンスアンプ/ライトドライバ帯TXA♯2およびTXA♯3と、これらのセンスアンプ/ライトドライブ帯TXA♯2およびTXA♯3の間の演算処理ユニットPA♯2を含む。
バンク♯3は、メモリブロックMA♯2および図示しないメモリブロックの偶数サブエントリERYeのデータを転送するセンスアンプ/ライトドライバ帯TXA♯4およびTXA♯5と、これらのセンスアンプ/ライトドライバ帯TXA♯4およびTXA♯5の間の演算処理ユニットPA♯3を含む。これらのバンク♯2およびバンク♯3において、演算処理ユニットPA♯2およびPA♯3においても、それぞれ、2つのエントリ(4サブエントリ)に対して1つのビット演算ユニットPEが設けられる。
バンク♯1、♯2および♯3それぞれにおいて、データの書込/読出および演算処理を制御するローカル制御回路LK♯1、LK♯2およびLK♯3が、それぞれ演算処理ユニットおよびセンスアンプ/ライトドライバ帯に対応して設けられる。これらのローカル制御回路LK♯1、LK♯2およびLK♯3は、対応のバンク♯1−♯3の選択時に活性化されて、データの書込/読出および演算処理の内部タイミングを設定し、また、SIMD制御信号に従ってビット演算ユニットPEの演算内容を設定する。
SRAM周辺回路SH♯1およびSH♯2に含まれる行デコーダは、それぞれメモリブロックを共有するバンクにより共有され、活性化時、与えられたワード線アドレスに従ってアドレス指定されたワード線を選択状態に駆動する。行デコーダが、隣接バンクで共有されており、各バンクは、従って、同一アドレスのデータビットに対して演算処理を実行する。
この図6に示すように、センスアンプSAおよびライトドライバWDの組は、2つのサブエントリ(2つのビット線対)に対応して配置される。したがって、4列のメモリセルに対して各列それぞれにセンスアンプおよびライトドライバを配置する構成に比べて、センスアンプSAおよびライトドライバWDのピッチ条件を緩和することができる。
図7は、センスアンプSAおよびライトドライバWDの配置をより具体的に示す図である。図7においては、4つのビット線対BLP0−BLP3を示す。ビット線対BLP0−BLP3とワード線WLの交差部に対応してメモリセル(SRAMセル)MCが配置される。ビット線対BLP0がその左側端部においてセンスアンプSA0およびライトドライバWD0に結合され、また、ビット線対BLP2がその左側端部においてセンスアンプSA2およびライトドライバWD2に結合される。一方、ビット線対BLP1が、その右側端部においてセンスアンプSA1およびライトドライバWD1に結合され、ビット線対BLP3がその右側端部においてセンスアンプSA3およびライトドライバWD3に結合される。
センスアンプSA0,SA2およびライトドライバWD0,WD2が、左側に設けられたビット演算ユニットPElに結合され、また,センスアンプSA1,SA3およびライトドライバWD1,WD3が、右側に設けられたビット演算ユニットPErに結合される。
ビット線対BLP0,BLP2が、各々偶数サブエントリERYeのデータ転送線を形成し、ビット線対BLP1,BLP3が、奇数サブエントリERYoのデータ転送線を構成する。左側のビット演算ユニットPElは、偶数サブエントリERYeのビット線対BLP0およびBLP2に接続されるメモリセルのデータに対して演算処理を行ない、ビット演算ユニットPErが、奇数サブエントリERYoを構成するビット線対BLP1,BLP3上のメモリセルのデータについて演算処理を実行する。
1エントリは、2つのビット線対BLPで構成される。ビット演算ユニットPElおよびPErは、各々、4つのビット線対BLP0−BLP3に対応して配置されるため、十分に余裕を持ってビット演算ユニットPElを配置することができる。センスアンプSA(SA0−SA3)およびライトドライバWA(WD0−WD3)は、これらのビット線対BLP0−BLP3の端部に、交互に配置される。したがって、ビット線対のピッチがLの場合(ビット線ピッチがL/2の場合)、センスアンプSAおよびライトドライバWDのピッチは2・Lに緩和することができる。また、1つのセンスアンプ/ライトドライバ帯において配置されるセンスアンプおよびライトドライバの数は低減されるため、このセンスアンプ/ライトドライバ等の周辺回路の面積を低減することができる。
また、1本のワード線WLの選択で2バンクに対するメモリセルのデータをアクセスすることができる。従って、図5に概念的に示す構成に較べて選択ワード線の数を低減することができる。すなわち、各バンクにおいてメモリブロックが2つ設けられる場合、データアクセス時には、バンクの数の2倍のワード線を選択する必要がある。しかしながら、図6および7に示す構成の場合、データアクセス時には、バンクの数+1のワード線を選択するだけで各バンクのデータを書込/読出することができ、応じて。ワード線選択時の消費電力を低減することができる。
図8は、図6に示すビット演算ユニットPEの構成の一例を示す図である。図8において、ビット演算ユニットPEは、2つの並列に設けられるレジスタ(Xレジスタ;上位ビットレジスタXHおよび下位ビットレジスタXL)65aおよび65bと、レジスタ65aおよび65bからの2ビットデータを受ける入力IN1と、別のメモリブロックから読出された2ビットデータを受ける入力IN2を有し、与えられたデータに演算処理を行なう演算回路67を含む。この演算回路67の出力OUTは、対応のメモリブロックのいずれかに転送される(図示しないビット演算器内の内部データ転送路を介して)。
この場合、1つのメモリブロックから、2つのサブエントリERYeまたはERYoから、2ビットデータ、たとえば、A[0],A[1]が読出され、レジスタ65a,65bに格納される。これと並行して、別のメモリブロックから2ビットデータB[0]およびB[1]が読出され演算回路67の入力IN2へ与えられる。ついで、レジスタ65aおよび65bに格納された2ビットと演算回路67の入力IN2に与えられた2ビットデータの演算処理が実行される。たとえば加算時においては、下位ビット側から順次加算が行なわれ、その加算結果が、いずれかのメモリブロックに書込まれる(ストアされる)。
この2ビット演算処理を実行することにより、たとえば本願発明者のグループが既に提案している(特願2005‐143109号)並列演算処理装置に示されるように、2ビット乗算処理を2次のブースアルゴリズムに従って、高速で実行することができる。
ビット演算ユニットPEにおいては、またXレジスタ65aおよび65bの入力の接続経路を切換えることにより、1ビット演算操作を行なうことができる(この場合、演算回路67において、1ビット演算処理を行なうようにその入力IN2の接続経路が切換えられる。また、出力OUTについても内部で1ビットデータの演算処理結果を出力するように経路が切換えられる)。
この2ビット演算操作時においても、単に、ワード線アドレスのポインタを切換えることにより、2ビットデータを順次読出すことができる(偶数アドレスおよび奇数アドレスのデータビットは、同じメモリブロック内の同一ワード線アドレスに格納されている)。したがって、2ビット並列演算処理の場合には、2つのサブエントリで1つのエントリERYが構成される。
1つのエントリのデータに対して、1ビットずつ逐次演算処理を実行する場合には、1つのXレジスタ65aまたは65bとメモリブロックのセンスアンプ/ライトドライバの接続を逐次切換える(またはXレジスタ66a,66bの出力と演算回路の入力IN1の接続を順次切換える)。
メモリブロックのデータをグローバルデータバスを介して転送する場合、ビット演算ユニットあたり1ビットのデータを転送する。この1ビットのデータをグローバルデータバスを介して転送する部分の構成を図9に示す。
図9において、ビット演算ユニットPIに対して、センスアンプ/ライトドライバSWL0,SWL1が一方側に配置され、他方側にセンスアンプ/ライトドライバSWR0およびSWR1が配置される。センスアンプ/ライトドライバSWR0およびSWR1は、それぞれ、ビット線対BLPR0およびBLPR1に結合される。また、センスアンプ/ライトドライバSWL0,SWL1は、それぞれ、ビット線対BLPL0,BLPL1に結合される。ビット線対BLPL0およびBLPL1の間にビット線対BLPが設けられ、これらのビット線対BLPが、図示しないバンクのセンスアンプ/ライトドライバに結合される。同様、ビット線対BLPR0,BLPR1についても、ビット線対BLPが設けられて、図示しないバンクのセンスアンプ/ライトドライバに結合される。
センスアンプ/ライトドライバSWL0,SWL1は、それぞれ、列選択信号CSL0,CSL1に応答して選択的に導通する列選択ゲートYGL0,YGL1を介してグローバルデータ線GBLに結合される。また、センスアンプ/ライトドライバSWR0,SWR1は、それぞれ、列選択信号CSR0,CSR1に応答して選択的に導通する列選択ゲートYGR0,YGR1を介してグローバルデータ線GBLに結合される。グローバルデータ線GBLは、グローバルデータバスGBSに含まれる1ビットデータ転送線である。
したがって、1つのセンスアンプ/ライトドライ帯を配置する領域においては、入出力データ1ビット当り4本のビット線対が設けられる。しかしながら、ライトドライバおよびセンスアンプは、入出力データ1ビット当り2つ設けられるだけである。したがって、このセンスアンプ/ライトドライバの交互配置により、メモリセルのピッチを変更することなく、入出力データ1ビット当りの列線(ビット線対)の数CPB(コラムパービット)を低減することができる。
図10は、図4に示す並列演算処理装置のメモリマットの端部に配置されるメモリブロックおよび対応の回路の概略レイアウトを示す図である。図10において、メモリブロックM♯EDが1つのメモリマットの端部に配置され、このメモリブロックM♯EDに隣接して、センスアンプ/ライトドライバ帯TX♯EDが設けられる。このセンスアンプ/ライトドライバ帯TX♯EDに隣接して、ビット演算ユニットPEを含む演算処理ユニットP♯EDが設けられる。この演算処理ユニットP♯EDに隣接して、データ転送回路を構成するセンスアンプ/ライトドライバ帯TX♯NHが設けられ、センスアンプ/ライトドライバ帯TX♯NHに隣接して、メモリブロックM♯NHが設けられる。
メモリブロックM♯NHにおいては、ワード線がN本設けられ、また、偶数サブエントリERYeおよび奇数サブエントリERYoが交互に配置され、それぞれ異なるバンクにより使用される。
一方、メモリブロックM♯EDにおいては、ワード線WLが、メモリブロックM♯NHのワード線数の1/2倍、すなわちN/2本設けられる。偶数サブエントリERYeおよび奇数サブエントリERYoはともに共通のバンクにより使用され、センスアンプ/ライトドライバ帯TX♯EDに設けられるセンスアンプSAおよびライトドライバWDにそれぞれ結合される。
この終端部のメモリブロックM♯EDに対応するセンスアンプ/ライトドライバ帯TX♯EDにおいては、各サブエントリごとにセンスアンプSAおよびライトドライバWDが設けられる。一方、メモリブロックM♯NHに対して設けられるセンスアンプ/ライトドライバ帯TX♯NHにおいては、2つのサブエントリごとにセンスアンプSAおよびライトドライバWDが設けられる。演算処理ユニットP♯EDにおいては、4つのサブエントリ(4列のメモリセル)に対して1つのビット演算ユニットPEが設けられる。
メモリマット端部に配置されるメモリブロックM♯EDにおいては、一方側にのみ、演算処理ユニットP♯EDが設けられる。したがって、この終端部のメモリブロックM♯EDを、メモリブロックM♯NHと同一構成とした場合、図10に示す構成においては、奇数サブエントリERYoに対応するビット線対が不使用状態となり、メモリセルの利用効率が低下する。そこで、終端部のメモリブロックに対しては、各ビット線対をすべて同一バンクのサブエントリまたはエントリとして利用し、それに合わせて、ワード線WLの数を半減する。
図11は、この図10に示すメモリブロックM♯EDおよびM♯NHにおける4列(4ビット線対)に関連する部分の構成を概略的に示す図である。
メモリブロックM♯EDにおいては、ビット線対BLP0−BLP3が設けられる。これらのビット線対BLP0−BLP3それぞれに対応して、センスアンプ/ライトドライバSWED0−SWED3が設けられる。センスアンプ/ライトドライバSWED0およびSWED2は、活性化信号ENeの活性化時活性化され、センス動作またはライト動作を実行する。一方、センスアンプ/ライトドライバSWED1およびSWED3は、活性化信号ENoの活性化時活性化され、センス動作またはライト動作を実行する。
センスアンプ/ライトドライバSWED0およびSWED1がビット演算ユニットPEの共通の1ビット入力IN1eに結合され、センスアンプ/ライトドライバSWED2およびSWED3が、ビット演算ユニットの共通の1ビット入力INI1oに結合される。
一方、メモリブロックM♯NHにおいては、ビット線対BLP0−BLP3のうち、ビット線対BLP0およびBLP2に対しセンスアンプ/ライトドライバSWNH0およびSWNH1が設けられる。これらのセンスアンプ/ライトドライバSWNH0およびSWNH1は活性化信号ENの活性化センス動作またはライト動作を行なう。センスアンプ/ライトドライバSWNH0およびSWNH1は、それぞれ、ビット演算ユニットPEの1ビット入力IN2eおよびIN2oに結合される。
メモリブロックM♯EDにおいて、ワード線WLとビット線対BLP0−BLP3の交差部にメモリセルMC(MCe,MCo)が設けられる。メモリブロックM♯EDにおいては、ワード線WLの数は、N/2本であり、ワード線アドレスビットAn−A0のうち、アドレスビットAn−A1を用いてワード線WLの選択が行なわれる。残りのワード線アドレスビット(最上位または最下位)A0は、活性化信号ENeおよびENoを選択するために用いられる。
一方、メモリブロックM♯NHにおいては、ワード線WLと各ビット線対の交差部にメモリセルMC(MCe,MCo)が設けられる。ワード線WLは、メモリブロックM♯NHにおいては、ワード線アドレスビットAn−A0の全ビット用いて、アドレス指定が行なわれる。
この図11に示す構成の場合、メモリブロックM♯EDにおいてワード線WLの選択時、そのワード線アドレスAn−A0が偶数アドレスの場合、たとえば、活性化信号ENeが活性化され、ビット線対BLP0およびBLP2のメモリセルMCeに対するデータの読出または書込が実行される。一方、ワード線WLのアドレスAn−A0が奇数アドレスの場合には、活性化信号ENoが活性化され、ビット線対BLP1およびBLP3のメモリセルMCoに対するデータの読出または書込が実行される。
メモリブロックM♯NHにおいては、ワード線WLの選択時、ビット線対BLP0およびBLP2が偶数サブエントリERYeであり、メモリセルMCeに対するデータの書込/読出が行なわれる。ビット線対BLP1,BLP3は、奇数サブエントリERYoであり、図示しない別のバンクにおいて利用される。
メモリマットの終端部のメモリブロックM♯EDにおいて一方側にのみ演算処理ユニット(ビット演算ユニット)が設けられる場合、そのワード線WLの数を他のメモリブロックに比べて1/2倍とする。しかしながら、使用されるビット線対の数が、2倍とされているため、用いられるメモリセルの数は全メモリブロックにおいて同じとなる。すなわち、ビット線対BLPの数が、M本であれば、メモリブロックM♯EDにおいては、メモリセルMCは、(N/2)・M個設けられ、一方、メモリブロックM♯NHにおいては、N・(M/2)のメモリセルが利用される。したがって、図10に示す演算処理ユニットP♯EDにおいて演算処理を実行されるデータを格納するメモリセルの数は、メモリブロックM♯EDおよびM♯NHにおいて同じとなる。
終端部のメモリブロックM♯EDにおいてビット線対BLP1おびBLP3も利用することにより、この端部のメモリブロックM♯EDにおいて効率的にメモリセルを利用することができ、メモリマットのレイアウト面積を低減することができる。
なお、この終端部部のメモリブロックM♯EDに対して、各ビット線対ごとにセンスアンプ/ライトドライバSWED(SWED0−SWED3)を設ける必要があり、センスアンプ/ライトドライバのピッチ条件が他のメモリブロックに対するセンスアンプ/ライトドライバに比べて厳しくなる。しかしながら、この終端部のメモリブロックM♯EDにおいては、ワード線WLの数は半減されているため、ビット線延在方向において面積的な余裕がある。したがって、センスアンプ/ライトドライバを、2列に整列して配置することにより、または、その位置を列方向(ビット線延在方向)においてずらせて交互にジグザグ状に配置することにより、センスアンプ/ライトドライバのピッチ条件は、他のメモリブロックと同じとすることができ、このセンスアンプ/ライトドライバに対するピッチ条件に対する制約は解消することができる。
また、メモリブロックM♯EDにおいては、各ビット線に対して列選択ゲートが配置される。列グローバルデータバスとの間でのデータ転送時、メモリブロックM♯EDにおいては、アドレスビットA0を用いて列選択を実行する。これにより、終端部のメモリブロックM♯EDにおいてCPBが、他のメモリブロックに較べて2倍となっても、正確に列選択を実行してデータの入出力を実行することができる。
この構成は、次のような構成により実現することができる。すなわち、SRAM周辺回路において、終端部のメモリブロックの行デコーダに対して、ワード線アドレスビットA0を縮退状態とし、他のメモリブロックの行デコーダに対しては全ワード線アドレスビットAn−A0を有効状態とする。また、全メモリブロックの列デコーダに対してビット線アドレスビットとアドレスビットA0とを供給し、終端部のメモリブロックにおいては、列デコーダに対するアドレスビットA0を有効状態とする。他のメモリブロックにおいては、この列デコーダに供給されるアドレスビットA0を縮退状態に設定する。これにより、全メモリブロックにおいてSRAM周辺回路の構成を同一として、終端部のメモリブロックにおいて、ワード線の数を半減してかつCPBを2倍に設定することができる。
以上のように、この発明の実施の形態1に従えば、メモリブロックと演算処理ユニットとを交互に配置し、1つのメモリブロックをその両側の演算処理ユニットで共有するように構成している。したがって、SRAMアレイ境界領域が存在せず、メモリマットのレイアウト面積を低減することができる。
また、各メモリブロックおよび演算処理ユニットおよびデータ転送を制御する回路を、2つのメモリマットの間の中央領域に配置することにより、内部制御タイミング信号を発生する回路部分などの周辺回路を、2つのメモリマットで共有することができ、周辺回路のレイアウト面積を、低減することができる。
さらに、1つのメモリブロックが両側の演算処理ユニットで共有される構成を用いることにより、1つのメモリブロック選択時、両側の演算処理ユニットへデータを転送することができる。これらのメモリブロックの両側の演算処理ユニットが異なるバンクの構成要素の場合、1つのワード線選択で、2つのバンクとの間でデータ転送を行なうことができ、ワード線選択回数を低減でき、応じて消費電力を低減することができる。
[実施の形態2]
図12は、この発明の実施の形態2において用いられるビット演算ユニットPEの内部接続の構成の一例を概略的に示す図である。図12において、ビット演算ユニットPEは、センスアンプ/ライトドライバ対SWLPを、Xレジスタ65および演算回路67の2ビット入力IN2の一方に結合するマルチプレクサ70と、他方のメモリブロックのセンスアンプ/ライトドライバ対SWRPを演算回路67の2ビット入力IN2およびXレジスタ65の一方に結合するマルチプレクサ72と、演算回路67の出力OUTを、センスアンプ/ライトドライバ対SWLPおよびSWRPの一方に結合するマルチプレクサ74を含む。
Xレジスタ65は、図8に示すXレジスタ65aおよび65bを含み、クロック信号CLKAに従って、与えられた信号を取込み、演算回路67の入力IN1へ取込んだ信号を伝達する。
センスアンプ/ライトドライバ対SWLPおよびSWRPは、各々、2つのセンスアンプおよび2つのライトドライバを含み、2ビットのデータを転送する。
マルチプレクサ70は、選択信号SELが“0”のときに、センスアンプ/ライトドライバ対SWLPを演算回路67の入力IN2に結合し、選択信号SELが“1”のときに、センスアンプ/ライトドライバ対SWLPをXレジスタ65に結合する。
マルチプレクサ72は、選択信号SELが“1”のときに、センスアンプ/ライトドライバ対SWRPを演算回路67の入力IN2に結合し、選択信号SELが“0”のときに、センスアンプ/ライトドライバ対SWRPをXレジスタ65に結合する。
マルチプレクサ74は、選択信号SELが“1”のときに、演算回路67の出力OUTをセンスアンプ/ライトドライバ対SWRPに結合し、選択信号SELが“0”のときに、演算回路67の出力OUTをセンスアンプ/ライトドライバ対SWLPに結合する。
この選択信号SELにより、データ書込を行なうメモリブロックを特定することができる。選択信号SELは、対応のローカル制御回路から生成される。いずれのメモリブロックに対して演算結果データを書込むかは、一例として、プライオリティエンコーダなどを用いて決定され、優先順位の低いデータを格納するメモリブロックに対してデータの書込を実行する。例えば、フィルタ処理などにおいて、係数データと演算データとを格納する場合、係数データを格納するメモリブロックを優先順位の高いメモリブロックとして、演算データを格納するメモリブロックに対して演算結果データを格納する。
この図12に示すビット演算ユニットPEの構成の場合、入力IN1およびIN2それぞれに、データを2つの両側のメモリブロックから読出して、演算処理を行なうことができる。Xレジスタ65は、与えられたデータを取込み、次のクロックサイクルにおいてクロック信号CLKAの立上がりでその信号を出力する。したがって、Xレジスタ65を介して演算回路67へデータを転送する場合、演算回路67における演算処理の前のサイクルでXレジスタ67へデータを読出す(ロードする)必要がある。
図13は、この図12に示すビット演算ユニットを用いる場合の通常の演算操作シーケンスの一例を示す図である。図13においては、二項加算演算を行なう場合のシーケンスを示す。クロックサイクルは、ビット演算ユニットPEに対するクロック信号CLKAにより決定される。
クロックサイクルkにおいて、右側のメモリブロックからデータビットb[i,i+1]の2ビットデータが読出される(ロードされる)。このデータが、Xレジスタ67に転送される。
次のクロックサイクルk+1において、左側のメモリブロックからデータビットa[i,i+1]が読出される。このサイクルにおいては、Xレジスタ67の出力ビットも確定状態にあり、これらのデータビットに対して二項加算が行なわれる。
次いで、クロックサイクルk+2において、この演算結果c[i,i+1]が左側メモリブロックへ転送されて格納される(ストアされる)。このクロックサイクルk+2において、右側のメモリブロックにおいて2ビットデータb[i+2,i+3]が読出され、Xレジスタ67に転送される。
クロックサイクルk+3において、2ビットデータa[i+2,i+3]を読出して二項加算を行ない、クロックサイクルk+4において、その演算結果c[i+2,i+3]を左のメモリブロックに転送して格納する(ストアする)。このクロックサイクルk+4にいて、右側メモリブロックにおいて次のデータビットb[i+4,i+5]を読出してXレジスタ67に転送する。
この図13に示す演算シーケンスの場合、左側メモリブロックに対してデータの書込の
行なう場合、右側のメモリブロックに対して、データの読出を行なう操作が行なわれる。この場合、ローカル制御回路においては、これらのメモリブロックに対し、センスアンプおよびライトドライバを個々に制御する回路が必要となり、回路構成が複雑化し、また回路のレイアウト面積が増大する可能性がある。
そこで、クロックサイクルk+1およびk+2において行われるデータの読出および書込を、1つのクロックサイクルKとして実行する。これにより、左側メモリブロックおよび右側メモリブロックにおいて同じタイミングでデータの読出を行なうことができる。同様に、クロックサイクルk+3およびk+4を1つのクロックサイクルK+1として書込および読出を行なう。
この読出および書込を1クロックサイクルで行なうためには、図12に示すように、いわゆるリードモディファイライトを行ない、同じワード線アドレスに対して演算データの読出および演算後のデータの書込を実行する。
図14は、ロード/ストア命令を用いてリードモディファイライトを行なう際の動作タイミングを示す信号波形図である。クロック信号CLKAにより、ビット演算ユニットPEの動作サイクルが規定され、クロック信号CLKSにより、メモリブロックの動作サイクルが規定される。
図14に示すように、メモリクロック信号CLKSの立上がりに従って、ワード線WLが選択状態へ駆動され、ビット線対BLP上にメモリセルデータが読出される。次いで、クロック信号CLKSの立下がりに同期してセンスアンプ活性化信号SAEを活性化し、ビット線対BLP(センスノード)の電位を差動増幅する。このセンス動作により、ビット演算ユニットへのデータの読出が完了する。読出完了後、一旦、ワード線WLを非選択状態へ駆動する。
なお、図14においては、ビット線対BLPの電位がセンス時にフルスイングしている。これは、センスアンプが、交差型センスアンプであり、ビット線電位を差動増幅してラッチするためである。センスアンプが、電荷閉込め方式のセンスアンプであり、センス時には、センスノードとビット線とが分離される場合には、ビット線の電位は、メモリセルからの読出電位に応じた電位レベルとなる。センスアンプの構成に応じてビット線の電位変化波形は異なるものの、ここでは、ビット線のセンス動作を強調するために、センス時にビット線電位がフルスイングするように示す。
クロック信号CLKSが、クロック信号CLKAの立下がりに同期して、立上がると、再びワード線WLを選択状態へ駆動し、ビット線対BLPに再びメモリセルデータを読出す。次いで、クロック信号CLKSの立上がりに同期してライトドライバイネーブル信号WEを活性化し、ビット線対BLPに、ライトドライバを介してビット演算ユニットの演算結果データを転送し、演算結果データの書込を実行する。
書込が完了すると、ワード線WLを非選択状態へ駆動することにより、リードモディファイライト動作が完了する。
したがって、ロード/ストア命令のみを利用する場合には、ビット演算ユニットに対するクロック信号CLKAの1サイクル期間内に、メモリクロック信号CLKSは2回トグルさせる。これにより、ロード/ストア命令のみを用いて、擬似的にリードモディファイライトを実現することができる。
しかしながら、この場合、メモリブロックの動作周波数が、ビット演算ユニットの動作周波数の2倍の周波数であり、消費電力が高くなる。また、メモリブロックの動作サイクルにより、ビット演算ユニットのサイクル長さが律速され、高速動作ができなくなる可能性がある。
一方の演算データをXレジスタに格納して、演算を次のサイクルで実行するのは以下の理由による。両側のメモリブロックから並行してデータを読出し、Xレジスタをバイパスして演算回路で演算を実行する。この場合、演算回路に到達するデータの確定タイミングが、データ間のスキューにより遅くなり、演算結果データが確定するのが遅くなる。一方の演算データをXレジスタに格納すると、次のサイクルにおいては、一方の演算データは確定状態にある。演算データのスキューは、現演算サイクルで読出される他方の演算データのクロック信号に対するスキューのみであり、演算データの確定タイミングのバラツキを小さくすることができ、応じて、演算結果データの確定タイミングも早くなり、演算サイクルを短くすることができる。従って、演算時には、Xレジスタは、バイパスすることなく利用して、演算を実行する。
そこで、このリードモディファイライトを高速かつ低消費電力で実現するために、新たに、ロード/ストア命令に加えて、リードモディファイライト命令を準備する。
図15は、リードモディファイライト命令実行時の動作を示す信号波形図である。図15に示すように、演算用のクロック信号CLKAとアクセス用のメモリクロック信号CLKSは、同じ周波数で同相で変化する。したがって、リードモディファイライト動作時においても、ビット演算ユニットの1クロックサイクル期間と、メモリブロックの1クロックサイクル期間は同じサイクル期間である。
メモリクロック信号CLKSの立上がりに従って、ワード線WLを選択状態へ駆動する。これにより、ビット線対BLPのビット線BLおよび/BLにメモリセルデータに応じた電位差が生じる。次いで、クロック信号CLKSと非同期で、センスアンプ活性化信号SAEを活性化し、ビット線対BLP上に読出されたメモリセルデータの読出(検知、増幅、転送)を行なう。
次いで、このワード線WLを選択状態に維持した状態で、ライトドライバイネーブル信号WEを活性化し、ビット線対BLP上に、ビット演算ユニットからのデータを転送して書込む。この書込完了後、ワード線WLを非選択状態へ駆動する。このセンスアンプ活性化信号SAEおよびライトドライバ活性化信号WEは、ともに、クロック信号CLKSと非同期で活性/非活性化させる。これにより、メモリクロック信号CLKSの1つのサイクル内において、ワード線WLを選択状態に維持した状態で、読出動作(センスアンプの活性化)および書込動作(ライトドライバの活性化)を順次行なうことができる。
このセンスアンプ活性化信号SAEの活性化に続いて、ライトドライバイネーブル信号WEが活性化される。このライトドライバイネーブル信号WEは図15において破線で示すように、センスアンプ活性化信号SAEの非活性化に応答して活性状態とされてもよい。このタイミング関係は、センスアンプの回路構成に応じて適宜定められる。
ライトドライバによるデータの書込完了後、ワード線を非選択状態に駆動する。ワード線の非選択状態への駆動タイミングは、通常のロードまたはストア命令実行時のワード線非選択タイミングと同様のタイミングに定められれば良い。
この図15に示す動作波形図の場合、メモリブロックの動作周波数を、ビット演算ユニットのクロック信号CLKAと同じ周波数に設定することができ、メモリブロックの高速動作が容易となる(メモリブロックおよびビット演算ユニットの動作速度を同じとすることができる)。
また、クロック信号CLKAの1サイクル内においてワード線WLが1回活性化および非活性化されるだけであり、図14に示す構成に比べ、ワード線の選択回数およびビット線のプリチャージ回数を半減することができ、消費電力を低減することができる。
図16は、右側のメモリブロックに対してリードモディファイライトを行なう場合の経路を、センスアンプ/ライトドライバ回路SWの構成とともに具体的に示す図である。
右側のメモリブロックにおいて、ワード線WLとビット線BL、/BLの交差部に対応してメモリセルMCが配置される。このメモリセルMCは、SRAMセルであり、6個のトランジスタ(T)で構成されるフルCMOS構成を有する。
図16において、センスアンプ/ライトドライバ回路SWは、プリチャージ指示信号ZPRCの活性化時、ビット線BLおよび/BLを電源電圧レベルにプリチャージするビット線プリチャージ/イコライズ回路EQと、センスアンプ活性化信号SAEの活性化時、センスノードSNaおよびSNb上の信号電位を差動的に増幅しかつラッチする交差結合型センスアンプ回路SAKと、センスアンプ活性化信号SAEの活性化時、センスノードSNaおよびSNbとビット線BLおよび/BLとを分離する電荷閉込ゲートCFGと、センスノードSNaおよびSNb上の信号をラッチして、ビット演算ユニットPEへ転送するNAND型フリップフロップFFと、書込指示信号WENとビット演算ユニットPEからの書込マスク指示信号WMQとに従って、ビット演算ユニットPEからの演算結果データを、ビット線BLおよび/BLへ書込むライトドライブ回路WDKを含む。
ビット線プリチャージ/イコライズ回路EQは、PチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)で構成され、プリチャージ指示信号ZPRCがLレベルの活性状態のときに、これらのMOSトランジスタが導通し、ビット線BLおよび/BLを電源電位にプリチャージしかつイコライズする。
センスアンプ回路SAKは、交差結合されるPチャネルMOSトランジスタおよび交差結合されるNチャネルMOSトランジスタを含み、活性化時、高電位のセンスノードの電位を電源電圧レベルに、定電圧レベルのセンスノードを接地電圧レベルに駆動しかつラッチする。NAND型フリップフロップFFにより、センスアンプ回路SAKにより検知増幅されたデータをビット演算ユニットPEに対して一方方向に転送する。
ライトドライブ回路WDKは、ビット演算ユニットPEからの書込マスク信号WMQと書込イネーブル信号WEとを受けるANDゲートAGと、ANDゲートAGの出力信号を反転するインバータIV0と、ビット演算ユニットPEからの出力を受けるバッファ回路BUFと、ビット演算ユニットPEからの演算結果データを受けるインバータIV1と、ANDゲートAGおよびインバータIV0の出力信号に従って選択的に導通し、バッファ回路BUFおよびインバータIV1の出力信号をそれぞれビット線BLおよび/BLへ転送するトランスミッションゲートTG0およびTG1を含む。
ビット演算ユニットPEは、選択信号SELに従って、フリップフロップFFの出力信号を、Xレジスタ65および演算回路67の入力の一方に転送するマルチプレクサ(MUX;セレクタ)70と、書込マスク設定指示信号MSKMに従ってXレジスタ65および演算回路67からのデータそれぞれを取込みラッチするVレジスタ80およびNレジスタ81を含む。
通常の演算処理において、Nレジスタ81には、定数などの数値データが格納される。レジスタ80および81の格納データがともに“1”(Hレベル)に設定されたときに、ANDゲートAG(ライトドライブ回路WDK内)がバッファ回路として動作する。それ以外、書込マスク指示信号WMQがLレベルのときには、ライトドライブ回路WDKは非活性状態(出力ハイインピーダンス状態)に設定され、ビット演算ユニットPEからのデータのメモリブロックへの書込は禁止される。
リードモディファイライト時においては、Xレジスタ65に、図示しないメモリブロック(左側メモリブロック)からのデータビットが与えられ、右側のメモリブロックからのデータは、マルチプレクサ(MUX)70によりXレジスタをバイパスして演算回路67に転送される。
リードモディファイライトモードは、たとえば、読出を指示するリードイネーブル信号および書込を指示するライトイネーブル信号をともに活性状態に設定することにより、指定される。
スタンバイ状態において、プリチャージ指示信号ZPRCはLレベルであり、ビット線プリチャージ/イコライズ回路EQが活性化され、そのPチャネルMOSトランジスタにより、ビット線BLおよび/BLが、電源電圧レベルにプリチャージされかつイコライズされる。この状態において、センスアンプ活性化信号SAEは非活性状態にあり、センスアンプ回路SAKは非活性状態であり、また、電荷閉込ゲートCFGは導通状態にあり、センスノードSNaおよびSNbは、ビット線BLおよび/BLに結合される。フリップフロップFFは、その両入力がともに電源電圧レベルであり、前の状態を維持する。
リードモディファイライトサイクルが始まると、まず、ビット線プリチャージ指示信号ZPRCがHレベルに立上がり、ビット線プリチャージ/イコライズ回路EQが非活性化され、ビット線BLおよび/BLが電源電圧レベルでフローティング状態となる。次いで、ワード線WLが選択状態へ駆動され、メモリセルMCの記憶データがビット線BLおよび/BLに読出される(ビット線BLおよび/BL間に電位差が生じる)。このビット線BLおよび/BLの電位差は、センスノードSNaおよびSNbに伝達される。このセンスノードSNaおよびSNbの電位差が十分に拡大されるタイミングで、センスアンプ活性化信号SAEが活性化される。応じて、電荷閉込ゲートCFGが非導通状態となり、センスノードSNaおよびSNbは、ビット線BLおよび/BLと分離される。センスアンプ回路SAkが、このセンスノードSNaおよびSNbの電位差を差動増幅しかつラッチする。センスノードSNaおよびSNbの電位が、読出されたデータに応じて電源電圧および接地電位レベルに設定されると、フリップフロップFFの出力信号も対応した状態となる。
フリップフロップFFの出力信号が、マルチプレクサ70を介して演算回路67へ与えられ、演算回路67において演算処理が実行される。次いで、ワード線WLを選択状態に維持した状態で、ライトドライバイネーブル信号WENが活性化される。書込マスク指示信号WMQがHレベルの場合には、ANDゲートAGの出力信号が、応じて、Hレベルとなり、トランスミッションゲートTG0およびTG1が導通する。バッファ回路BUFおよびインバータIV1からの相補データが、これらのトランスミッションゲートTG0およびTG1を介してビット線BLおよび/BL上に伝達され、選択状態のワード線WLに接続されるメモリセルMCへデータが書込まれる。これにより、リードモディファイライトが完了する。このリードモディファイライト動作完了後、ワード線WLが非選択状態へ駆動され、センスアンプ活性化信号SAEが非活性化され、次いでビット線プリチャージ指示信号ZPRCがLレベルへ駆動される。
データの読出が行なわれる左側メモリブロックにおいては、データの書込が行なわれず、ライトドライバイネーブル信号WENが非活性状態に維持される。データの読出が、センスアンプ活性化信号SAEの活性化に応じて右側のメモリブロックと同様に行なわれる。この左側のメモリブロックにおけるワード線WLの非活性状態への駆動タイミングとしては、左側および右側のメモリブロックにおいて同じであってもよく、また、センスアンプ活性化信号SAEの非活性化に従ってワード線WLが非選択状態へ駆動されてもよい。
図17は、ローカル制御回路LKiの構成の一例を概略的に示す図である。図17において、ローカル制御回路LKiは、装置外部からの動作モード指示RE♯およびWE♯をクロック信号CLKS(またはCLKA)に従ってデコードし、指定された動作モードを示す内部動作モード指示信号RMW、REおよびWEを生成するコマンドデコーダ100と、コマンドデコーダ100からの内部動作モード指示信号と書込対象メモリブロック特定信号WTMとに従って対応のメモリブロックに対するワード線活性化信号WLERおよびWLELを生成するメインタイミング信号発生回路102とを含む。
コマンドデコーダ100からの内部動作モード指示信号RMWは、リードモディファイライトモードを指定する信号であり、内部動作モード指定信号REは、データの読出を行なう動作モードを示し、内部動作モード指示信号WEは、データの書込を行なう書込モードを示す信号である。
メインタイミング信号発生回路102は、リードモディファイライトモード指示信号RMW、読出モード指示信号REまたは書込モード指示信号WEの活性化時、ワード線活性化信号WLERおよびWLELを所定期間活性状態に駆動する。これらのワード線活性化信号WLERおよびWLELは、隣接メモリブロックの行デコーダへそれぞれ与えられる。隣接メモリブロックの行デコーダにおいては、ローカル制御回路における図示しないアドレスポインタレジスタからのアドレスポインタに従って行選択を行なう。1つのメモリブロックは異なるバンクにより共有されており、行デコーダは、その両側のローカル制御回路からのワード線活性化信号に従って行選択(ワード線選択)を行っても良く、また、一方のローカル制御回路からのワード線活性化信号に従って行選択動作が制御されても良い(この場合、1つのメモリマットにおいて全バンクが並列に動作する)。
また、データ書込モード指示信号WEが活性化され、書込対象メモリブロック特定信号WTMが活性化され、1つのメモリブロックに対するデータ書込のみが行なわれる動作が指定されたときには、SRAM周辺回路に含まれる行デコーダは、書込対象メモリブロックに対してのみ行選択を行なうように構成されてもよい。
ローカル制御回路LKiは、さらに、ワード線活性化信号WLELおよびWLERの活性化に従ってビット線プリチャージ指示信号ZPRCLおよびZPRCRをそれぞれ非活性状態へ駆動するプリチャージ活性化回路104lおよび104rと、読出モード指示信号REの活性化時、ワード線活性化信号WLELおよびWLERの活性化に従って所定のタイミングでセンスアンプ活性化信号SAELおよびSAERを活性化するセンスアンプ活性化回路106lおよび106rを含む。
参照符号の末尾の符号r、l、R、Lは、右側および左側のメモリブロックに対する回路および信号を示す。
読出モード指示信号REおよび書込モード指示信号WEは、また、リードモディファイライトモード指示信号RMWの活性化時活性化される。
ローカル制御回路LKiは、さらに、リードモディファイライトモード指示信号RMWに従って、ワード線活性化信号WLELとセンスアンプ活性化信号SAELの一方を選択するセレクタ108lと、リードモディファイライトモード指示信号RMWに従ってワード線活性化信号WLERおよびセンスアンプ活性化信号SAERの一方を選択するセレクタ108rと、セレクタ108lの出力信号と書込モード指示信号WEと書込対象メモリブロック特定信号WTMとに従ってライトドライバ活性化信号WENLを活性化するライトドライバ活性化回路110lと、セレクタ108rの出力信号と書込モード指示信号WEと書込対象メモリブロック特定データWTMとに従ってライトドライバ活性化信号WENRを活性化するライトドライバ活性化回路110rを含む。
セレクタ108rは、リードモディファイライトモード指示信号RMWの活性化時、センスアンプ活性化回路106lからのセンスアンプ活性化信号SAELを選択し、それ以外、ワード線活性化信号WLELを選択する。セレクタ108rは、リードモディファイライトモード指示信号RMWの活性化時センスアンプ活性化信号SAERを選択し、それ以外、ワード線活性化信号WLERを選択する。
センスアンプ活性化回路106rおよび106lは、各々、通常のデータ読出モード時には、クロック信号の立下りに同期してセンスアンプ活性化信号SAERおよびSAELを活性化し、リードモディファイ動作時には、ワード線活性化信号WLERおよびWLELの活性化に従ってセンスアンプ活性化信号SAERおよびSAELを活性化するように構成されても良い。また、これに代えて、センスアンプ活性化回路106rおよび106lは、通常のデータ読出モード時(ロード命令実行時)およびリードモディファイ動作時において同じタイミングでセンスアンプ活性化信号を活性化しても良い。
ライトドライバ活性化回路110lおよび110rについては、リードモディファイライトモード時書込モード指示信号WEが活性化されるため、書込対象メモリブロックに対するライトドライバ活性化回路が活性化され、ライトドライバ活性化信号WENLまたはWENRが活性化される。
なお、ライトドライバ活性化回路108rおよび108lにおいても、通常のデータ書込モード時(ストア命令実行時)には、クロック信号の立下りに同期してライトドライバ活性化信号WENRおよびWENLを活性化するように構成されても良い。
上述の構成においては、リードモディファイライトモード時には、ライトドライバ活性化回路110lまたは110rは、センスアンプ活性化信号SAELまたはSAERの活性化に従って所定時間経過後にライトドライバイネーブル信号WENLまたはWENRを活性化し、クロック信号と非同期でデータの読出および書込をリードモディファイ動作時実行する。これにより、メモリクロック信号CLKSの1クロックサイクル内において、データの読出および書込を実行することができる(ただし、リードモディファイライトモードであり、同じアドレスに対してデータの読出および書込が実行される)。
なお、図17に示すローカル制御回路LKiの構成において、センスアンプ活性化回路106l,106rおよびライトドライバ活性化回路110l,110rは、このリードモディファイライトモード指示信号RMWの非活性化時、読出モード指示信号REおよび書込モード指示信号WEとメモリクロック信号CLKSとに従ってクロック信号CLKSに同期して、これらのセンスアンプ活性化信号SAEL,SAERまたは書込ライトドライバイネーブル信号WENL,WENRを活性化するように構成する場合、以下のように構成が用いられる。すなわち、センスアンプ活性化回路106rおよび106lにおいては、リードモディファイライト指示信号RMWの活性/非活性に従って、クロック信号CLKSおよびワード線イネーブル信号WLELおよびWLERを選択し、セレクタ108rおよび108lが、リードモディファイライト指示信号RMWに従ってセンスアンプ活性化信号SAERおよびSAELとクロック信号CLKSのいずれかを選択する。
図18は、このリードモディファイライト時の、書込時のメモリブロックの動作状態を模式的に示す図である。図18において、メモリブロックMB♯a−MB♯cの間に、演算処理ユニットP♯aおよびP♯bが設けられる。演算処理ユニットP♯aおよびP♯bが、それぞれのバンクにおいて用いられ、一方、メモリブロックMB♯a−MB♯cは、各々2つのバンクにより共有される。
したがって、演算処理ユニットP♯aにおいては、リードモディファイライトを行なう場合、その書込対象メモリブロックは、メモリブロックMB♯bと設定された場合、このメモリブロックMB♯bは、演算処理ユニットP♯bに対する書込対象メモリブロックとしても用いられる。メモリブロックMB♯aは、演算処理ユニットP♯aに対するデータ読出メモリブロックとして用いられ、メモリブロックMB♯cは、演算処理ユニットP♯bに対してデータを読出す読出メモリブロックとして用いられる。
したがって、演算処理ユニットP♯aおびP♯bにおいて、書込対象メモリブロックは、一方の演算処理ユニットにおいては、上側(右側)のメモリブロック、他方の演算処理ユニットにおいては下側(左側)のメモリブロックとなり、書込対象のメモリブロックの位置関係が、順次交換される。単に、書込対象メモリブロック特定信号WTMに従って決定される書込対象メモリブロックの位置を、各演算処理ユニットまたはローカル制御回路ごとに順次切換えるようにその論理を構成する(書込対象メモリブロック特定信号を反転する)ことにより容易に実現される。
以上のように、この発明の実施の形態2に従えば、メモリクロック信号と非同期でデータの読出および書込を行なうように構成してリードモディファイライトを実現している。これにより、ワード線を立上げた状態で、データの読出および書込を行なうことが可能となり、ワード線選択回数を低減することができ、ワード線選択およびビット線プリチャージによる消費電流を低減することができる。また、演算用のクロック信号を同じ動作周波数でリードモディファイライトを実現することができ、メモリブロックの動作周波数を高くすることができる。
また、リードモディファイライトにおいては、単にビット演算ユニット毎のレジスタを利用しているだけであり、リードモディファイライトを実現するための余分の回路要素は不要であり、面積増大は抑制することができる。また、メモリブロックにおける動作周波数を半減することができ、高速動作化のための回路定数を低減することができ、トランジスタサイズを低減でき、周辺回路(SRAM周辺回路およびローカル制御回路)の面積を低減することができる。
なお、実施の形態1および2を組合わせて用いることにより、これらの実施の形態1および2の効果を奏する低消費電力で高速で動作する小占有面積の並列演算処理装置を実現することができる。
また、演算処理ユニットにおいて、SRAMアレイの各列が1エントリを構成し、各エントリに対応して演算器が設けられ、各演算器が対応のエントリの1ビットデータを逐次処理する構成が用いられても良い。
この発明は、メモリセルアレイと演算処理ユニットとが同一半導体チップ上に集積化されるSIMD型演算装置に対して適用することができる。特に、大量のデータを処理する並列演算処理装置に適用することにより、高速かつ低消費電力で大量のデータを処理することのできる演算処理装置を実現することができる。
この発明に従う並列演算処理装置の概念的構成を概略的に示す図である。 図1に示す主演算回路の内部構成を概略的に示す図である。 図1に示す並列演算処理装置の基本演算ブロックの内部配置の概念的構成を示す図である。 この発明の実施の形態1に従う並列演算処理装置の全体のレイアウトを概略的に示す図である。 図4に示す並列演算処理装置の機能的構成を示す図である。 図4に示すレイアウトのメモリブロックおよび演算処理ユニットの構成をより具体的に示す図である。 図6に示すメモリブロックと演算処理ユニットの内部構成を概略的に示す図である。 図6に示すビット演算ユニットの内部構成を概略的に示す図である。 図6に示すセンスアンプ/ライトドライバとグローバルデータバスとの接続の構成の一例を示す図である。 図4に示すメモリマット両端のメモリブロックおよび関連の回路の構成を概略的に示す図である。 図10に示すビット演算ユニットとメモリブロックの構成を概略的に示す図である。 この発明の実施の形態2に従うビット演算ユニットの構成の一例を概略的に示す図である。 図12に示すビット演算ユニットにおけるデータ演算のシーケンスの一例を示す図である。 図13に示すリードモディファイライト時の内部動作の信号波形の一例を示す図である。 この発明の実施の形態2に従うリードモディファイライト時の動作を示す信号波形図である。 この発明の実施の形態2におけるセンスアンプ/ライトドライバおよびビット演算ユニットの構成の具体例を示す図である。 この発明の実施の形態2におけるローカル制御回路の構成を概略的に示す図である。 この発明の実施の形態2における書込対象メモリブロックの配置を概略的に示す図である。
符号の説明
50 並列演算処理装置、55A,55B メモリマット、MA0−MAm,MB0−MBm メモリブロック、TXA0−TXAk−1,TXB0−TXBk−1 センスアンプ/ライトドライバ、PA0−PAm−1,PB0−PBm−1 演算処理ユニット、SH0−SHm SRAM周辺回路、LK0−LKm−1 ローカル制御回路、BGS,BGSb,BGSa グローバルデータバス、PE ビット演算ユニット、SA センスアンプ、WD ライトドライバ、SWED0−SWED3,SWNH0−SWNH1 センスアンプ/ライトドライバ、SH♯ED 周辺制御回路、LK♯ED ローカル制御回路、P♯ED 演算処理ユニット、M♯ED,M♯NH メモリブロック、TX♯ED,TX♯NH センスアンプ/ライトドライバ回路、65 Xレジスタ、67 演算回路、70,72,74 マルチプレクサ、SW センスアンプ/ライトドライバ、EQ ビット線プリチャージ/イコライズ回路、SAK センスアンプ回路、CFG 電荷閉込ゲート、FF フリップフロップ、70 マルチプレクサ、80 Vレジスタ、81 Nレジスタ、82 ANDゲート、WDK 書込ライトドライブ回路、100 コマンドデコーダ、102 メインタイミング信号発生回路、104l,104r プリチャージ活性化回路、106l,106r センスアンプ活性化回路、108l,108r セレクタ、110l,110r ライトドライバ活性化回路、MB♯a−MB♯c メモリブロック、P♯a,P♯b 演算処理ユニット。

Claims (5)

  1. 行列状に配列される複数のメモリセルと、メモリセル各列に対応して配置される複数のビット線とを各々が有する複数のメモリブロック、
    前記複数のメモリブロックの間に配置され、各々が与えられたデータに対して演算処理を実行する複数の演算器を有する複数の演算処理ユニット、および
    前記メモリブロック各々においてビット線の両側に交互に配置され、隣接する演算処理ユニットの演算器との間でデータを転送する複数のデータ書込/読出回路を含むデータ転送回路を備え
    前記複数のメモリブロックは、各々が、一方向に整列するメモリブロックを含む複数のメモリマットに分割され、
    前記データ転送回路および前記演算処理ユニットの動作を制御するローカル制御回路は、前記メモリマットの間の領域に配置される、並列演算処理装置。
  2. 各前記メモリブロックは、メモリセル各行に対応して配置される複数のワード線をさらに有し、
    前記データ転送回路のデータ書込/読出回路は、各対応のビット線と対応の演算器との間でデータを転送し、
    前記複数のメモリブロックのうち両端に配置される終端部のメモリブロックは、各々、演算処理ユニットにより共有されるメモリブロックと比べて、そのワード線数が1/2倍に設定される、請求項1記載の並列演算処理装置。
  3. 前記データ転送回路は、前記終端部のメモリブロックの各ビット線の一方側に配置されて、共通の演算処理ユニットに結合されるデータ書込/読出回路を含む、請求項記載の並列演算処理装置。
  4. 各前記メモリブロックは、メモリセル各行に対応して配置される複数のワード線を有し、
    前記並列演算処理装置は、さらに、前記演算処理ユニットに対応して設けられ、対応のデータ転送回路および対応の演算処理ユニットの動作を制御する複数のローカル制御回路を備え、前記ローカル制御回路は、演算結果を格納するメモリブロックに対して設けられるデータ書込/読出回路に対しては、対応のメモリブロックにおいてワード線を選択状態に維持した状態で、対応の演算器との間でのデータの読出および書込を順次実行するように対応のメモリブロックおよびデータ書込/読出回路を制御する、請求項1記載の並列演算処理装置。
  5. 前記演算処理ユニットの処理サイクルはクロック信号により決定され、
    各前記ローカル制御回路は、前記データ書込/読出回路が有するセンスアンプおよびライトドライバを前記クロック信号と非同期で活性化させるようにデータ読出活性化信号およびデータ書込活性化信号を生成して対応のデータ書込/読出回路へ供給する、請求項記載の並列演算処理装置。
JP2006023054A 2006-01-31 2006-01-31 並列演算処理装置 Expired - Fee Related JP4989900B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006023054A JP4989900B2 (ja) 2006-01-31 2006-01-31 並列演算処理装置
US11/698,188 US7505352B2 (en) 2006-01-31 2007-01-26 Parallel operational processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006023054A JP4989900B2 (ja) 2006-01-31 2006-01-31 並列演算処理装置

Publications (2)

Publication Number Publication Date
JP2007206849A JP2007206849A (ja) 2007-08-16
JP4989900B2 true JP4989900B2 (ja) 2012-08-01

Family

ID=38323360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006023054A Expired - Fee Related JP4989900B2 (ja) 2006-01-31 2006-01-31 並列演算処理装置

Country Status (2)

Country Link
US (1) US7505352B2 (ja)
JP (1) JP4989900B2 (ja)

Families Citing this family (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090005786A (ko) * 2007-07-10 2009-01-14 삼성전자주식회사 메모리 사용확장 기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치 및 그에 따른 메모리 사용확장 방법
JP2009098861A (ja) * 2007-10-16 2009-05-07 Renesas Technology Corp 並列演算処理装置
US7882325B2 (en) * 2007-12-21 2011-02-01 Intel Corporation Method and apparatus for a double width load using a single width load port
KR100915807B1 (ko) * 2008-01-02 2009-09-07 주식회사 하이닉스반도체 입출력 제어회로를 가지는 반도체 메모리장치 및 그제어방법
US8238173B2 (en) * 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US8473695B2 (en) * 2011-03-31 2013-06-25 Mosys, Inc. Memory system including variable write command scheduling
US9911470B2 (en) 2011-12-15 2018-03-06 Nvidia Corporation Fast-bypass memory circuit
CN103632712A (zh) 2012-08-27 2014-03-12 辉达公司 存储单元和存储器
US9378181B2 (en) * 2012-11-09 2016-06-28 Intel Corporation Scalable computing array
US9685207B2 (en) 2012-12-04 2017-06-20 Nvidia Corporation Sequential access memory with master-slave latch pairs and method of operating
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9418730B2 (en) 2013-06-04 2016-08-16 Nvidia Corporation Handshaking sense amplifier
US20140355362A1 (en) * 2013-06-04 2014-12-04 Nvidia Corporation Pipelined one cycle throughput for single-port 6t ram
US10141930B2 (en) 2013-06-04 2018-11-27 Nvidia Corporation Three state latch
US9418714B2 (en) 2013-07-12 2016-08-16 Nvidia Corporation Sense amplifier with transistor threshold compensation
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) * 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) * 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9779019B2 (en) * 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10656992B2 (en) * 2014-10-22 2020-05-19 Cavium International Apparatus and a method of detecting errors on registers
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
WO2016126478A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for memory device as a store for program instructions
EP3254286B1 (en) 2015-02-06 2019-09-11 Micron Technology, INC. Apparatuses and methods for parallel writing to multiple memory device locations
WO2016126472A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for scatter and gather
WO2016144724A1 (en) 2015-03-10 2016-09-15 Micron Technology, Inc. Apparatuses and methods for shift decisions
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
EP3268965A4 (en) 2015-03-12 2018-10-03 Micron Technology, INC. Apparatuses and methods for data movement
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9959066B2 (en) * 2016-02-12 2018-05-01 Knuedge Incorporated Memory-attached computing resource in network on a chip architecture to perform calculations on data stored on memory external to the chip
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US9978444B2 (en) * 2016-03-22 2018-05-22 Qualcomm Incorporated Sense amplifier enabling scheme
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
US10373666B2 (en) 2016-11-08 2019-08-06 Micron Technology, Inc. Apparatuses and methods for compute components formed over an array of memory cells
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US20210018952A1 (en) * 2017-06-02 2021-01-21 Ultramemory Inc. Semiconductor module
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10642951B1 (en) * 2018-03-07 2020-05-05 Xilinx, Inc. Register pull-out for sequential circuit blocks in circuit designs
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
KR20210156058A (ko) 2020-06-17 2021-12-24 삼성전자주식회사 인-메모리 프로세싱을 수행하는 메모리 디바이스
JP6983952B1 (ja) * 2020-07-07 2021-12-17 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 人工知能操作用のメモリ装置
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory
TWI773106B (zh) 2021-01-28 2022-08-01 華邦電子股份有限公司 具有運算功能的記憶體裝置及其操作方法
WO2023101907A1 (en) * 2021-12-03 2023-06-08 Microchip Technology Incorporated Accelerated read, modify, write operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04295953A (ja) * 1991-03-25 1992-10-20 Nippon Telegr & Teleph Corp <Ntt> 要素プロセッサの2次元アレイを内蔵する並列データ処理装置および要素プロセッサのサブアレイユニット
JPH08172169A (ja) * 1994-12-16 1996-07-02 Toshiba Microelectron Corp 半導体記憶装置
JPH0936328A (ja) * 1995-07-14 1997-02-07 Hitachi Ltd ダイナミック型ram
JP2001273788A (ja) * 2000-03-29 2001-10-05 Hitachi Ltd 半導体記憶装置
JP2003186854A (ja) * 2001-12-20 2003-07-04 Ricoh Co Ltd Simd型プロセッサ及びその検証装置
US7079148B2 (en) * 2003-07-23 2006-07-18 Hewlett-Packard Development Company, L.P. Non-volatile memory parallel processor
US6975552B2 (en) * 2003-08-19 2005-12-13 Micron Technology, Inc. Hybrid open and folded digit line architecture
JP4028499B2 (ja) * 2004-03-01 2007-12-26 株式会社東芝 半導体記憶装置

Also Published As

Publication number Publication date
JP2007206849A (ja) 2007-08-16
US7505352B2 (en) 2009-03-17
US20070180006A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
JP4989900B2 (ja) 並列演算処理装置
US11513945B2 (en) Apparatuses and methods for transferring data using a cache
US11755206B2 (en) Bank to bank data transfer
US10482948B2 (en) Apparatuses and methods for data movement
US20200364138A1 (en) Apparatuses and methods for write address tracking
TWI622991B (zh) 用於快取操作之裝置及方法
US11693561B2 (en) Apparatuses and methods for simultaneous in data path compute operations
US7562198B2 (en) Semiconductor device and semiconductor signal processing apparatus
US11011220B2 (en) Apparatuses and methods for compute in data path
CN109003640B (zh) 存储器中子阵列之间的数据传送
JP6791522B2 (ja) インデータパス計算動作のための装置及び方法
US11514957B2 (en) Bank to bank data transfer
EP4022522A1 (en) Memory with artificial intelligence mode
US20180301173A1 (en) Element value comparison in memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081111

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: 20120221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120501

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees