JP2018073452A - Dram基盤のプロセシングユニット - Google Patents

Dram基盤のプロセシングユニット Download PDF

Info

Publication number
JP2018073452A
JP2018073452A JP2017193447A JP2017193447A JP2018073452A JP 2018073452 A JP2018073452 A JP 2018073452A JP 2017193447 A JP2017193447 A JP 2017193447A JP 2017193447 A JP2017193447 A JP 2017193447A JP 2018073452 A JP2018073452 A JP 2018073452A
Authority
JP
Japan
Prior art keywords
dram
rows
dpu
row
based computing
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.)
Granted
Application number
JP2017193447A
Other languages
English (en)
Other versions
JP2018073452A5 (ja
JP6785738B2 (ja
Inventor
双 辰 李
Shaungchen Li
双 辰 李
迪 民 牛
Dimin Niu
迪 民 牛
クリシュナ マラディ,
Malladi Krishna
クリシュナ マラディ,
宏 忠 鄭
Hongzhong Zheng
宏 忠 鄭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018073452A publication Critical patent/JP2018073452A/ja
Publication of JP2018073452A5 publication Critical patent/JP2018073452A5/ja
Application granted granted Critical
Publication of JP6785738B2 publication Critical patent/JP6785738B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • 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/1668Details of memory controller
    • 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
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)

Abstract

【課題】多様な動作に対してプログラム可能且つ再構成可能なDPU(DRAM(Dynamic Random Access Memory) based Processing Unit)を提供する。【解決手段】本発明のDPUは、少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを備え、少なくとも1つのカラムは、少なくとも3つのローのDRAM基盤のコンピューティングセルを含み、少なくとも3つのローのDRAM基盤のコンピューティングセルは、少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、少なくとも3つのローの第3ロー内にロジック機能の結果を格納する。【選択図】図1

Description

本発明は、メモリシステムに関し、より詳細には、DRAM基盤のプロセシングユニットに関する。
一般的に、GPU(Graphics Processing Unit)及びTPU(Tensor Processing Unit)がディープラーニング(deep learning)プロセシングのために使用される。ディープラーニングプロセシングはGPU又はTPUによって効率的に処理できない高度に並列化されたプロセシングを含む。
米国特許第5,901,095号明細書 米国特許第6,035,384号明細書 米国特許第6,195,738号明細書 米国特許第7,299,099号明細書 米国特許第8,042,082号明細書 米国特許第9,136,872号明細書 米国特許第9,197,285号明細書 米国特許第9,317,482号明細書 米国特許第9,378,181号明細書 米国特許出願公開第2007/0226567号明細書 米国特許出願公開第2011/0302366号明細書 米国特許出願公開第2012/0246380号明細書 米国特許出願公開第2015/0089166号明細書 米国特許出願公開第2015/0131383号明細書 米国特許出願公開第2016/0147667号明細書 米国特許出願公開第2016/0173102号明細書 欧州特許出願公開第1193502号明細書 欧州特許出願公開第2523352号明細書
MATAM,Kiran et al.,"Energy−Efficient Large−Scale Matrix Multiplication on FPGAs",2013 International Conference on Reconfigurable Computing and FPGAs(ReConFig),December9−11,2013(8pages). NODA,Hideyuki et al.,"A cost−efficient high−performance dynamic TCAM with pipelined hierarchical searching and shift redundancy architecture",IEEE Journal of Solid−State Circuits,Vol.40,No.1,January3,2005(10pages). SESHADRI,Vivek et al.,"Fast Bulk Bitwise AND and OR in DRAM",IEEE Computer Architecture Letters,Vol.14,No.2,May18,2015(6pages). SESHADRI,Vivek et al.,"RowClone:Ffast and Energy−Efficient In−DRAM Bulk Data Copy and Initialization",MICRO−46,Proc. of 46th IEEE/ACM Int. Symp. on Microarchitecture,December7,2013,pp.185−197. WANG,Gesan et al.,"TCAM−Based Forwarding Engine with Minimum Independent Prefix Set(MIPS) for Fast Updating",2006 IEEE International Conference on Communications,June11−15,2006(7pages).
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、DRAM基盤のプロセシングユニットを提供することにある。
上記目的を達成するためになされた本発明の一態様によるDPU(Dynamic Random Access Memory Processing Unit)は、少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを備え、前記少なくとも1つのカラムは、少なくとも3つのローのDRAM基盤のコンピューティングセルを含み、前記少なくとも3つのローのDRAM基盤のコンピューティングセルは、前記少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、前記少なくとも3つのローの第3ロー内に前記ロジック機能の結果を格納する。
上記目的を達成するためになされた本発明の他の態様によるDPU(Dynamic Random Access Memory Processing Unit)は、少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイと、少なくとも1つのカラム内に配置された少なくとも1つのDRAM基盤のメモリセルを含む少なくとも1つのデータセルアレイと、を備え、前記少なくとも1つのカラムは、少なくとも3つのローのDRAM基盤のコンピューティングセルを含み、前記少なくとも3つのローのDRAM基盤のコンピューティングセルは、前記少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、前記少なくとも3つのローの第3ロー内に前記ロジック機能の結果を格納する。
上記目的を達成するためになされた本発明の更に他の態様によるDPU(Dynamic Random Access Memory Processing Unit)は、少なくとも1つのカラム内に配置された少なくとも1つのDRAM基盤のメモリセルを含む少なくとも1つのデータセルアレイと、少なくとも3つのローのDRAM基盤のコンピューティングセルを含む少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイと、前記少なくとも3つのローのDRAM基盤のコンピューティングセルの読出しビットラインに電気的に連結された入力、及び前記少なくとも3つのローのDRAM基盤のコンピューティングセルの書込みビットラインに電気的に連結された出力を含むセンスアンプと、前記少なくとも3つのローのDRAM基盤のコンピューティングセルに電気的に連結されたデコーダーと、を備え、前記少なくとも3つのローのDRAM基盤のコンピューティングセルは、前記少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、前記少なくとも3つのローの第3ロー内に前記ロジック機能の結果を格納し、前記デコーダーは、前記第1ロー及び第2ロー上で前記ロジック機能を生成し、前記第3ロー内に前記ロジック機能の結果を格納するために、前記少なくとも3つのローのDRAM基盤のコンピューティングセルを選択するための命令に対応するDRAM基盤のアドレス信号を受信する。
本発明によれば、多様な動作に対してプログラム可能且つ再構成可能なDPUを提供することができる。また高性能、エネルギー効率的、低価格のシステムを提供することができる。
本発明の一実施形態によるDPUの一例を示すブロック図である。 コンピューティングセルアレイ内のコンピューティングセルに対して使用される3つのトランジスタ及び1つのキャパシターによるDRAMコンピューティングセルトポグラフィの一例を示す図である。 コンピューティングセルアレイ内のコンピューティングセルに対して使用される1つのトランジスタ及び1つのキャパシターによるDRAMコンピューティングセル)トポグラフィの他の例を示す図である。 本発明の一実施形態によるイントラマットシフトアレイの一例を示す図である。 本発明の一実施形態によるインターマットシフトアレイの一例を示す図である。 本発明の一実施形態による左側のインターマットシフトに対する隣接するコンピューティングセルカラムで同様に配置された2つのコンピューティングセル間のインターマットシフトインターコネクション構成を概念的に示す図である。 本発明の一実施形態による左側のインターマットシフトに対する隣接するコンピューティングセルカラムで同一でないように配置された2つのコンピューティングセル間のインターマットシフトインターコネクション構成を概念的に示す図である。 本発明の一実施形態によるインターマットフォワーディングアレイを示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。 本発明の一実施形態による確率的データアレイを含むDPUの一例を示すブロック図である。 多重化動作に変換される加算動作に対する確率的コンピューティング動作を示す図である。 ANDロジック動作に変換される乗算動作に対する確率的コンピューティング動作を示す図である。 本発明の一実施形態によるDPUを含むシステム構造を示す図である。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本明細書で、多様な詳細な説明を本文の理解を提供するために提示する。しかし、このような詳細な説明無しに記載した本発明の思想が当業者によって容易に具現されることはよく理解される。他の例で、広く公知された方法、手続、構成、及び回路は本文を曖昧にしないために説明しない。
詳細な説明で“1つの実施形態”又は“一実施形態”を参照することは、実施形態に関連する特定の特徴、構造、又は特性が本文の少なくとも1つの実施形態に含まれることを意味する。即ち、本文の多様な箇所で使用する“1つの実施形態で”又は“一実施形態で”又は“1つの実施形態によって”又は類似な意味を有する他の表現は同一の実施形態を参照することを要求しない。更に、特定の特徴、構造、又は特性は適切な方式により1つ以上の実施形態で組合される。これに関連して、本明細書で使用するように、“例示的な”という単語は“例(example、instance、illustration)として提供される”ということを意味する。本明細書で“例示的な”のように記述した実施形態は、他の実施形態に比べて必ずしも望ましいか又は有利であるものと考えてはならない。また、本文で言及する内容に従って、単数用語は複数の形態も含み、複数用語は単数形態も含む。構成図面を含む多様な図面は、説明の目的のためにのみ本文で言及し、正確な縮尺ではない。同様に、多様な波形及びタイミング図は説明の目的のためにのみ図示する。例えば、一部の構成要素は明確性のために他の構成要素と比較して誇張して図示する。更に、適切に考えられる場合、参照符号は、対応する構成要素及び/又は類似の構成要素を示すために図面で反復する。
本明細書で使用する用語は、特定の実施形態のみを説明するものであり、本発明を制限しようとするものとして意図しない。本明細書で使用するように、文脈上で明確に異なって意味しない限り、単数形態の“1つ”は複数の形態も含むものとして意図する。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語を本明細書で使用する場合、このような用語は、定まった特徴、整数、段階、動作、要素、及び/又は成分の存在を明示するが、1つ又はそれ以上の他の特徴、整数、段階、動作、要素、成分、及び/又はそれらのグループの追加又は存在を排除しない。“第1”、“第2”のような用語は、先に説明した構成に対するラベルとして使用され、別の定義が無い限り特定の順序(例えば、空間的、時間的、論理的、等)を意図するものではない。更に、同一の参照符号は、同一であるか若しくは類似の機能を有する部品、構成、ブロック、回路、ユニット、又はモジュールに関連する2つ以上の図面に亘って使用される。しかし、このような使用は、説明の簡易化のみのためであり、このような構成及びユニットの構成又は構造的な細部事項が全ての実施形態又は共通的に参照される部分/モジュールで同一なものとして意図せず、本発明の特定の実施形態のみを指称するための1つの手段である。
異なって定義しない限り、全ての用語(技術又は科学用語を含む)は本発明の装置と方法が属する分野で当業者に通常的に理解される同一な意味を有する。また、辞書的な意味として定義した用語は、関連する記述及び/又は本発明の説明の状況に従って解釈されなければならず、このように定義されない限り、理想的に理解されるか若しくは過度に形式的な意味として理解されてはならない。
本明細書に記述する発明は、多様な動作に対してプログラム可能(programmable)であり、再構成可能な(reconfigurable)DPU(DRAM(Dynamic Random Access Memory) based Processing Unit)を提供する。例えば、多様な動作は、加算、乗算、シフト、最大/最小(MIN/MAX)、及び比較(COMPARISON)等を含むが、本発明はこれに制限されない。一実施形態で、DPUは、3つのトランジスタ及び1つのキャパシター(3T1C)を含むDRAMプロセス及び構造に基づく。他の実施形態で、若干の変化と共に、DPUは、1つのトランジスタ及び1つのキャパシター(1T1C)を含むDRAMプロセス及び構造に基づく。従って、DPUは、特定のコンピューティングロジック回路(例えば、アダー(加算器)のような)を含まないが、高度の並列動作を使用するメモリセルを使用する計算を提供する。一実施形態で、DPUは、乗算(multiplication)動作がANDロジック動作に変換され、加算(addition)動作が多重化(multiplexing)動作に変換される確率的(stochastic)コンピューティングアレイを含む。
また、本明細書に記述する発明は、DPUをプログラムし、再構成するためのISA(Instruction Set Architecture)、コンパイラ、ドライバー、ライブラリ、フレームワーク拡張を有する環境(ecosystem)を含むシステム構造を提供する。
更に、本明細書に記述する発明は、データセンター及び/又はモバイルアプリケーションに適合するシステム構造を提供する。そして、システム構造は、GPU/ASIC(Application Specific Integrated Circuit)(TPU)/FPGA(Field−Programmable Gate Array)マシンラーニングアプリケーションに対して選択的に二進(binary)及び固定小数点方式(fixed point)の計算の両方に対するマシンラーニングアプリケーションのためのPIM(Processor−in Memory)ソリューションを提供する。一実施形態で、本明細書に記述する発明は、高性能、エネルギー効率的、低価格のシステムを提供する。該当システムは、例えば二進加重ニューラルネットワーク(Binary Weight Neural Network)に対する加速化されたディープラーニングを提供する。
本明細書に記述する発明は、再構成及びプログラム可能であり、DRAM技術を利用して構成されるDPUに関連する。一実施形態で、DPUは、多様な動作(例えば、加算、乗算、整列、等)を遂行するように構成されるDRAM基盤のメモリセルアレイ及びDRAM基盤のコンピューティングセルアレイを含む。
DPUの内部構成は、サブアレイの複数のバンクに連結されたシステムバスを含む。一実施形態で、システムバスはサブアレイのHツリー連結バンクを提供するように構成される。各々のサブアレイはローカルコントローラを含み、各々の独立的なサブアレイは分離的に又は同時に活性化される。一実施形態で、DRAM基盤のセルは2つのアレイ(データセルアレイ及びコンピューティングセルアレイ)に区分される。一実施形態で、コンピューティングセルアレイはDRAM基盤のメモリセルで具現される。他の実施形態で、コンピューティングセルアレイはロジック回路を含むDRAM基盤のメモリセルで具現される。DPU内部構造は、またデータシフト及びデータ移動回路を含む。一実施形態で、確率的データ計算のために構成される第3DRAM基盤のセルアレイがある。
図1は、本発明の一実施形態によるDPU(DRAM(Dynamic Random Access Memory) based Processing Unit)100の一例を示すブロック図である。DPU100は1つ以上のバンク(101a〜101m)を含む。図1では、1つ以上のバンク(101a〜101m)の中のバンク101a、101bのみを図示する。各バンク101は1つ以上のサブアレイ(102a〜102n)を含む。図1では、1つ以上のサブアレイ(102a〜102n)の中のサブアレイ102a、102bのみを図示する。また、各バンク101はバッファ103を含む。バッファ103は、個別サブアレイ102に連結され、システムバス104に連結される。バッファ103は、バンク102内の全体ロー(row)を読み出し、その後該当ローを再び同一のバンク又は他のバンクに書き込む。バッファ103は、また該当ローデータのコピーをサブアレイ102内の複数のマット(105a〜105n)にブロードキャスト(broadcast)する。一実施形態で、バンク101及びシステムバス104はHツリー連結バンクを提供する。
各サブアレイ102は1つ以上のマット(又はレーン)105を含む。図1では、1つ以上のマット105の中のサブアレイ102aのマット105a〜105nのみを図示する。各マット105は、データセルアレイ106、コンピューティングセルアレイ107、及びイントラマット(intra−mat)シフトアレイ108を含むDPU100の一領域である。マット105の例は点線109で囲まれるように図1で示される。各マット105は、データセルアレイデコーダー110、コンピューティングセルアレイデコーダー111、インターマット(inter−mat)シフトアレイ112、及びインターマットフォワーディングアレイ113を、隣接するマットと共有する。一実施形態で、データセルアレイデコーダー110、コンピューティングセルアレイデコーダー111、及びインターマットシフトアレイ112は、隣接するマット105の間にサブアレイコントローラ114と交互に物理的に配置される。一実施形態で、各デコーダー(110、111)は従来のDARMタイプのメモリデコーダーのように動作する。
一実施形態で、各マット105は通信的に(communicatively)サブアレイコントローラ114に連結される。各サブアレイコントローラ114は他のサブアレイコントローラ114から独立して構成される。サブアレイコントローラ114はアドレス(addr)として命令をDRAMアドレスバスから受信する。アドレス(即ち、アドレス信号)に応答して、サブアレイコントローラ114は、データセルアレイ106及びコンピューティングセルアレイ107の中の少なくとも1つのアレイに出力としてデコーディングされたアドレスを提供する。即ち、サブアレイコントローラ114は、関連するデータセルアレイ106に対するデータセルアレイデコーダー110によってデコーディングされたソース/目的地(destination)(src/dst)アドレスを出力する。そして、コンピューティングセルアレイ107の場合、サブアレイコントローラ114は、コンピューティングセルアレイデコーダー111によってデコーディングされた動作/計算(op/calc)アドレスを出力する。また、サブアレイコントローラ114は、2つ以上のサブアレイコントローラ114が組織化された方法で動作するDRAMバスからのアドレスとして命令を受信する。また、サブアレイコントローラ114はデータ移動回路を制御する。例えば、サブアレイコントローラ114は、イントラマットシフトアレイ108、インターマットシフトアレイ112、及びインターマットフォワーディングアレイ113を制御する。
各データセルアレイ106は、少なくとも1つのカラム(column)及び少なくとも1つのロー(row)内に配置される1つ以上のDRAMセルを含む。一実施形態で、データセルアレイ106は従来のDRAMセルアレイのように構成される。一実施形態で、データセルアレイ106は2Kカラム及び16ローを含む。他の実施形態で、データセルアレイ106は2Kカラムより少ないか又は多いカラムを含み、また16ローより少ないか又は多いローを含む。
各コンピューティングセルアレイ107は、少なくとも1つのカラム及び少なくとも1つのロー内に配置される1つ以上のコンピューティングセルを含む。コンピューティングセルアレイ107内のカラム数はデータセルアレイ106内のカラム数と同一である。一実施形態で、コンピューティングセルアレイ107は2Kカラム及び16ローを含む。他の実施形態で、コンピューティングセルアレイ107は2Kカラムより少ないか又は多いカラムを含み、また16ローより少ないか又は多いローを含む。
図2Aは、コンピューティングセルアレイ107内のコンピューティングセルに対して使用される3つのトランジスタ及び1つのキャパシター(3T1C)によるDRAMコンピューティングセルトポグラフィ(topography)201の一例を示す図である。図2Aに示すように、ローX内の3T1Cコンピューティングセルは第1トランジスタT1を含む。第1トランジスタT1は、書込みビットライン(Write BL)に電気的に連結されたソース端、キャパシターC1の第1端及び第2トランジスタT2のゲート端の両側に電気的に連結されたドレーン端、並びに書込みイネーブル(WEN)ラインに電気的に連結されたゲート端を含む。キャパシターC1の第2端はグラウンド(ground)ラインに電気的に連結される。第2トランジスタT2は、グラウンドラインに電気的に連結されたソース端、及び第3トランジスタT3のソース端に電気的に連結されたドレーン端を含む。第3トランジスタT3は、ワードラインWLに電気的に連結されたゲート端、及び読出しビットライン(Read BL)に電気的に連結されたドレーン端を含む。3T1Cコンピューティングセルトポグラフィ201は、読出しビットライン(Read BL)に電気的に連結された入力及び書込みビットライン(Write BL)に電気的に連結された出力を含むセンスアンプ(Sense Amplifier:SA)を含む。
また、ローY内のコンピューティングセル及びローR内のコンピューティングセルの両方は、ローX内のコンピューティングセルの配置と同様に、3T1C DRAM構成に配置された3つのトランジスタ(T1〜T3)及びキャパシターCを含む。図2Aに示した3つのコンピューティングセル及びセンスアンプ(SA)の一例は、NORロジック動作(即ち、‘X NOR Y’ロジック動作)を提供するように構成される。該当NORロジック動作の結果はローRに格納される。3T1C DRAMコンピューティングセルの1つのカラムのみを図2Aに明示的に示したが、3T1Cコンピューティングセルが複数のカラム(例えば、2Kカラム)内に構成される等の他の実施形態が可能である。また、3つ以上のローが提供される他の実施形態が可能である。また、図2Aに示した3T1C DRAMコンピューティングセル構成はNORロジック動作を提供するが、3T1C DRAMコンピューティングセルトポグラフィ201のNORロジック動作は多様な機能的な動作を提供するために使用される。例えば、機能的な動作は、排他ノア(XNOR)、加算(ADD)、セレクト(SET)、MAX、SIGN、多重化(MUX)、CSA(Conditional Sum Addition)ロジック、乗算、ポップカウント(popcount)、COMPARE等を含む。但し、本発明はこれに制限されない。また、イントラマットシフトアレイ108及びインターマットシフトアレイ112はシフト機能を提供する。
図2Bは、図1のコンピューティングセルアレイ107内のコンピューティングセルに対して使用される1つのトランジスタ及び1つのキャパシター(1T1C)によるDRAMコンピューティングセルトポグラフィ(topography)202の他の例を示す図である。図2Bに示すように、1T1Cコンピューティングセルは第4トランジスタT4を含む。第4トランジスタT4は、キャパシターC2の第1端に電気的に連結されたソース端、ビットラインBLに電気的に連結されたドレーン端、及びワードラインWLに電気的に連結されたゲート端を含む。キャパシターC2の第2端はグラウンドラインに電気的に連結される。ビットラインBLはセンスアンプ(SA)の入力に電気的に連結される。センスアンプ(SA)の出力は、多重化器(MUX)の第1入力、第5トランジスタT5のドレーン端、及びALU(Arithmetic Logic Unit)の入力に電気的に連結される。多重化器(MUX)の出力はラッチ(LATCH)の入力に電気的に連結される。第5トランジスタT5のソース端はラッチ(LATCH)の出力に電気的に連結される。ALUの出力は多重化器(MUX)の第2入力に電気的に連結される。図2Bで、第5トランジスタT5、多重化器(MUX)、ラッチ(LATCH)、及びALUは、それぞれコントローラ114から制御信号(CNTL1〜NTL4)を受信する。一実施形態で、ALUはNOR機能を提供するように構成される。図2BのビットラインBLに電気的に連結されたロジック回路はNORロジック動作を提供するが、ビットラインBLに電気的に連結されたロジック回路(即ち、ALU)は他の機能動作(例えば、排他ノア(XNOR)、加算(ADD)、セレクト(SET)、MAX、SIGN、多重化(MUX)、CSA(Conditional Sum Addition)ロジック、乗算、ポップカウント(popcount)、COMPARE等)を提供する。但し、本発明はこれに制限されない。また、イントラマットシフトアレイ108及びインターマットシフトアレイ112はシフト機能を提供する。図2Bで1つの1T1Cコンピューティングセルのみを図示したが、複数のカラム及びローの1T1Cコンピューティングセルが提供される。
図2A及び図2Bから分かるように、DPUのコンピューティングセルは、特定の複雑なコンピューティングロジックを含まない。但し、代わりに、DPUのコンピューティングセルは、複数の多様なタイプの計算を遂行する機能(ability)を提供する再プログラム可能な性質(nature)を有する相対的に単純なトポグラフィを含む。また、DPUのポグラフィは、より多くの計算をより速くより効率的に遂行するためにメモリ構造に内在され、大量並列処理の長所を有するように配置される。
図3は、本発明の一実施形態によるイントラマット(intra−mat)シフト(shift)アレイ108の一例を示す図である。イントラマットシフトアレイ108の記述(description)を単純化するために、図3に示すように、4つのカラムのコンピューティングメモリセルアレイ107の幅のマット105を考慮する。イントラマットシフトアレイ108は、アレイ内に配置された複数の第6トランジスタT6(図3では、1つのトランジスタのみをT6で表示する)、2シフトラインSLs(nはマット105内のコンピューティングセルのカラムである)、n+2シフトレフト(left)コントロールラインSLcLs、2シフトライト(right)コントロールラインSRcLs、及びnシフトマスクラインSMLsを含む。イントラマットシフトアレイ108の第6トランジスタT6の一部は書込みビットライン(Write BL)と2シフトラインSLsとの間に電気的に連結され、イントラマットシフトアレイ108の他の第6トランジスタT6は読出しビットライン(Read BL)と2シフトラインSLsとの間に連結される。このような第6トランジスタT6のゲートはn+2シフトレフトコントロールラインSLcLs及び2シフトライトコントロールラインSRcLsに電気的に連結される。イントラマットシフトアレイ108の他の第6トランジスタT6はnシフトマスクラインSMLsと2シフトラインSLsとの間に電気的に連結される。イントラマットシフトアレイ108のコントロールラインはマット105に関連するサブアレイコントローラ114に電気的に連結される。
コントロールライン(SLcLs、SRcLs)上の適切な信号によって、イントラマットシフトアレイ108は、マット105内でデータをレフト(left)シフト又はライト(right)シフトする。レフトシフトに対して、データは、サイン(sign)ビットで満たされ、1つの動作毎に1ビット又は(n−1)ビット程シフトされる。nはマット105当たりのカラム数である。ライトシフトに対して、命令による制御に従ってデータは0又は1で満たされる。或いは、データは2、2、…、2k−1、2マット当たりのカラム数までシフトされる。2はカラム数である。
図4Aは、本発明の一実施形態によるインターマット(inter−mat)シフトアレイ112の一例を示す図である。インターマットシフトアレイ112の記述(descripition)を単純化するために、図4A〜図4Cに示すように、マット105が2つのカラムのコンピューティングメモリセルアレイ107の幅であるマット105の構成を考慮する。即ち、各マット105はコンピューティングメモリセル107aの第1カラム及びコンピューティングメモリセル107bの第2カラムを含む。インターマットシフトアレイ112は、トランジスタT112a、T112b、トランジスタT112c、T112d、データシフトライン112e、112f、及びインターマットシフトコントロールラインISLcLsを含む。マット内で、トランジスタT112aは、コンピューティングメモリセル107aの第1カラムの読出しビットライン(Read BL)に電気的に連結されたソース端、データシフトライン112eに電気的に連結されたドレーン端を含む。トランジスタT112bは、コンピューティングメモリセル107bの第2カラムの読出しビットライン(Read BL)に電気的に連結されたソース端、データシフトライン112fに電気的に連結されたドレーン端を含む。データシフトライン(112e、112f)はバッファ103に電気的に連結される。バッファ103は図4Aに図示していない。異なるマットの間で、トランジスタT112cは、隣接マット内のデータシフトライン112eにそれぞれ電気的に連結されたソース端及びドレーン端を含む。トランジスタT112dは、隣接マット内のデータシフトライン112fにそれぞれ電気的に連結されたソース端及びドレーン端を含む。トランジスタT112c、T112dのゲートはそれぞれ異なるインターマットシフトコントロールラインISLcLsのそれぞれに連結される。インターマットシフトコントロールラインISLcLs上の適切な信号によって、インターマットシフトアレイ112は、異なるマットの間でデータをレフトシフト又はライトシフトする。インターマットシフトアレイ112のコントロールラインはマット105に関連するサブアレイコントローラ114に電気的に連結される。
図4Bは、本発明の一実施形態による左側のインターマットシフトに対する隣接するコンピューティングセルカラム(マット105a、105b)で同様に配置された2つのコンピューティングセル間のインターマットシフトインターコネクション(interconnection)構成を概念的に示す図である。図4Bのインターコネクション構成を、利用されるインターコネクションノードによって概念的に図示し、利用されるインターコネクションノードを強調して図示する。例えば、トランジスタT112c、T112dは活性化され、これに従って導線経路が各々のトランジスタの間に形成される。従って、左側のコンピューティングセルカラム(マット105a)と右側のコンピューティングセルカラム(マット105b)との間でデータシフトライン(112e、112f)は連結される。トランジスタT112c、T112dのゲート端はアクティブなインターマットシフトコントロールラインISLcLに電気的に連結される。マット105b内のトランジスタT112a、T112bは活性化され、従ってマット105b内のコンピューティングセル107aの読出しビットライン(Read BL)は、マット105bの左側であるマット105a内のコンピューティングセル107aの書込みビットライン(Write BL)に電気的に連結される。また、これに従って、マット105b内のコンピューティングセル107bの読出しビットライン(Read BL)は、マット105bの左側であるマット105a内のコンピューティングセル107bの書込みビットライン((Write BL)に電気的に連結される。
図4Cは、本発明の一実施形態による左側のインターマットシフトに対する隣接するコンピューティングセルカラム(105a、105b)で同一でないように配置された2つのコンピューティングセル間のインターマットシフトインターコネクション(interconnection)構成を概念的に示す図である。図4Cのインターコネクション構成を、利用されるインターコネクションノードによって概念的に図示し、利用されるインターコネクションノードを強調して図示する。例えば、トランジスタT112c、T112dは活性化されて導線経路が各々のトランジスタの間に形成される。従って、左側のコンピューティングセルカラム(マット105a)と右側のコンピューティングセルカラム(マット105b)との間でデータシフトライン(112e、112f)は連結される。トランジスタT112c、T112dのゲート端はアクティブなインターマットシフトコントロールラインISLcLに電気的に連結される。マット105aのトランジスタT112a、T112bは活性化され、従ってマット105a内のコンピューティングセル107aの読出しビットライン(Read BL)は、マット105aの右側であるマット105b内のコンピューティングセル107aの書込みビットライン(Write BL)に電気的に連結される。また、これに従って、マット105a内のコンピューティングセル107bの読出しビットライン(Read BL)は、マット105aの右側であるマット105b内のコンピューティングセル107bの書込みビットライン(Write BL)に電気的に連結される。
図5は、本発明の一実施形態によるインターマットフォワーディング(forwading)アレイ113を示す図である。インターマットフォワーディングアレイ113の説明を単純化するために、図5に示すように、2つのカラムのコンピューティングセルアレイ107の幅のマット105の構成を考慮する。即ち、各マット105はコンピューティングセル107aの第1カラム及びコンピューティングセル107bの第2カラムを含む。マット105と共に、インターマットフォワーディングアレイ113は、トランジスタT113a、T113b、トランジスタT113c、T113d、トランジスタT113e、T113f、2フォワーディングデータラインFDL、フォワーディングコントロールラインFCL、及び2フォワーディングセクションラインFSLを含む。ここで、nはマット内のコンピューティングセルのカラム数であり、mはセクション数である。トランジスタT113a、T113bのソース端はそれぞれコンピューティングセル107aの第1カラムの書込みビットライン(Write BL)及び読出しビットライン(Read BL)に電気的に連結される。トランジスタT113a、T113bのドレーン端は第1データフォワーディングライン(FDL)113gに電気的に連結される。トランジスタT113c、T113dのソース端はそれぞれコンピューティングセル107bの第2カラムの書込みビットライン(Write BL)及び読出しビットライン(Read BL)に電気的に連結される。トランジスタT113c、T113dのドレーン端は第2データフォワーディングライン(FDL)113hに電気的に連結される。トランジスタT113e、T113fのソース端はそれぞれトランジスタT113a、T113bのゲート端に電気的に連結される。トランジスタT113e、T113fのドレーン端は両方とも同一のフォワーディングセクションラインFSLに連結される。トランジスタT113e、T113fのゲート端はそれぞれ異なるフォワーディングコントロールラインFCLsに連結される。フォワーディングコントロールラインFCLs上の適切な信号によって、インターマットフォワーディングアレイ113は、マットの間でデータをフォワーディングする。インターマットフォワーディングアレイ113のコントロールラインは、相互間でデータがフォワーディングされるマット105に関連するサブアレイコントローラ114に電気的に連結される。
図6A〜図6Gは、本発明の一実施形態によるDPUによって提供されるNORロジック基盤の動作を示す図である。図6A〜図6Gで、第1オペランド(operand)はローXに格納され、第2オペランドはローY又はローWに格納される。図6A〜図6G内の矢印はコンピューティングセルの全体ローに対するNORロジック動作の入出力フローを示す。例えば、図6AのローXはローXのコンピューティングセルに格納されたオペランドの全体ローを示す。ローX内に格納されたオペランド及びローY内に格納されたオペランドのNORロジック動作の結果は結果ローR内に格納される。一実施形態で、ローX及びローYのオペランドは、例えば100個のカラム(例えば、x、x、…、x100及びy、y、…、y100)を含み、結果はローR(例えば、r、r、…、r100)内に格納される。即ち、‘x NOR y=r’である。ここで、iはカラムインデックスである。他の実施形態で、ローXはロー内のコンピューティングセルの選択されたグループのみを示す。
図6Bはプレフィックス(prefix)Kogge−Stoneアダー(加算器)に基づくNビット数に対するプールアダー動作を例示的に示す。図6Bで、第1NビットオペランドはローX内に格納され、第2NビットオペランドはローY内に格納される。図6B内に示した例示的な加算動作で、中間値(intermediate term)(G、P、G、P、G、P、…、GlogN+1、PlogN+1)が計算される。図6Bの最上のブロックはローX及びローYからの入力オペランドを利用してG及びPを決定する5個の分離された動作を示す。第1動作で、最上のブロックはローXの逆(即ち、〜X)を決定し、これはロー1に格納される。第2動作はローYの逆(即ち、〜Y)を決定し、これはロー2に格納される。第3動作は‘ローX NOR ローY’の動作を決定し、これはロー3に格納される。第4動作は‘G0=ロー1 NOR ロー2’を決定し、これはロー4に格納される。第5動作は‘P=ロー3 NOR ロー4’を決定し、これはロー5に格納される。
図6Bの中間ブロックを参照すると、最上ブロックからの中間結果G、Pが中間結果Gi+1、Pi+1を決定するために使用される。ここで、iはカラムインデックスである。即ち、図6Aの最上のブロックから決定された中間結果G、Pが中間結果G、Pを決定するために使用される。中間結果G、Pは中間結果G、Pを決定するために使用され、同様に中間結果GlogN+1、PlogN+1が決定される。図6Bの最下のブロックで、結果ローR1及び結果ローR2はそれぞれプールアダー(full adder)動作に対するキャリー(carry)結果及び総合(sum)結果を格納する。
図6Cは3T1C DRAMコンピューティングセルトポグラフィ201によって提供される例示的なセレクター動作を示す。ロー1はローXの逆(即ち、〜X)の中間結果を格納する。ロー2はローYの逆(即ち、〜Y)の中間結果を格納する。ロー3はローSの逆(即ち、〜S)の中間結果を格納する。ロー4は‘ロー1 NOR ロー3’の中間結果を格納する。ロー5は‘ロー2 NOR ローS’の中間結果を格納する。ロー6は‘ロー4 NOR ロー5’の中間結果を格納する。ローRはロー6の逆の結果(S?X:Y)を格納する。
図6Dは3T1C DRAMコンピューティングセルトポグラフィ201によって提供される他の例示的なセレクター動作を示す。ロー1はローXの逆(即ち、〜X)の中間結果を格納する。ロー2はローSの逆(即ち、〜S)の中間結果を格納する。ロー3は‘ロー1 NOR ローS’の中間結果を格納する。ロー4はローXの逆(〜X)の中間結果を格納する。ローRは‘ロー3 NOR ロー4’の結果(S?X:〜X)を格納する。
図6Eは3T1C DRAMコンピューティングセルトポグラフィ201によって提供される例示的なMAX/MIN動作を示す。ロー1はローYの逆(即ち、〜Y)の中間結果を格納する。ロー2はローX+(〜Y+1)の中間結果を格納する。ロー3は‘Cout>>n’の中間結果を格納する。ロー4は‘Cout?X:Y’の中間結果を格納する。ローRは‘MAX(X:Y)’の結果を格納する。
図6Fは3T1CDRAMコンピューティングセルトポグラフィ201によって提供される例示的な1ビット乗算動作を示す。ロー1は‘ローX NOR ローW’の中間結果を格納する。ロー2は‘ローX NOR ロー1’の中間結果を格納する。ロー3は‘ローW NOR ロー1’の中間結果を格納する。結果ローRは‘ロー2 NOR ロー3’の結果(即ち、‘ローX XNOR ローW’の結果)を格納する。
図6Gは3T1C DRAMコンピューティングセルトポグラフィ201によって提供される例示的な複数ビット乗算動作を示す。図6Gの上方のブロックで、ロー1はローWの逆(即ち、〜W)の中間結果を格納する。ロー2は2番目のレフトシフトされたローXの逆(即ち、〜X<<2)の中間結果を格納する。ここで、iはインデックスである。ロー3は‘ロー1 NOR ロー2’の中間結果(PP=〜W NOR 〜X<<2)を格納する。図6Gの下方のブロックで、ロー1は‘ローPP SUM ローPP(ΣPP)’の中間結果を格納する。ロー2は‘ロー2 NOR ローWsign’の中間結果を格納する。ローRは‘X*W’の結果を格納する。
図7は、本発明の一実施形態による確率的(stochastic)データアレイ715を含むDPU700の一例を示すブロック図である。図1に示したDPU100の構成要素と同一な参照インジケータ(indicator)を有するDPU700の多様な構成要素は同様であり、このような同様の構成要素の記述はここで省略する。DPU700のサブアレイ102は、(実際の)データセルアレイ106、コンピューティングセルアレイ107、及びイントラマットシフトアレイ108と共に、確率的データアレイ715及びコンバーターツー確率(converter−to−stochastic)アレイ716を含む。
確率的データアレイ715の各々は、少なくとも1つのカラム及び少なくとも1つのロー内に配置された1つ以上の確率的コンピューティングセルを含む。確率的データアレイ715内のカラム数はデータセルアレイ106及びコンピューティングセルアレイ107内のカラム数と同一である。一実施形態で、確率的データアレイ715は2Kカラム及び16ローを含む。他の実施形態で、確率的データアレイ715は2Kカラムより少ないか又は多いカラム、或いは16ローより少ないか又は多いローを含む。確率的データアレイ715内で、‘1’が存在する確率が使用され、2nビットはnビット値を示すために使用される。コンバーターツー確率アレイ716内の任意数生成器は実数(real number)を確率的な数に変換するために使用される。ポップカウント動作は確率的な数を再び実数に変換するために使用される。
確率的なコンピューティングアプローチを使用して、加算は多重化(multiplexing)動作に変換され、乗算はANDロジック動作に変換される。例えば、図8Aは、多重化動作に変換される加算動作に対する確率的コンピューティング動作を示す図であり、図8Bは、ANDロジック動作に変換される乗算動作に対する確率的コンピューティング動作を示す図である。確率的コンピューティングに対する従来の技術は巨大なメモリ容量を要求する。しかし、本明細書に記述した発明は高度に効率的な確率的コンピューティングを提供するために使用される。これはDRAM基盤のDPUが多くの並列AND動作及びマックス(MUX)動作を遂行するためである。本明細書に記述したDPUを使用する確率的コンピューティングは、またディープラーニングが一般的なアプリケーションである複雑な動作を加速化する。
図9は、本発明の一実施形態によるDPUを含むシステム構造900を示す図である。システム構造900は、ハードウェアレイヤー910、ライブラリ及びドライバーレイヤー920、フレームワークレイヤー930、及びアプリケーションレイヤー940を含む。
ハードウェアレイヤー910は、本明細書に記述したDPUのような内装されたDPUを含むハードウェア装置及び/又は構成要素を含む。装置及び/又は構成要素の一実施形態は、1つ以上の内装されたDPUを含むPCIe装置911である。装置及び/又は構成要素の他の実施形態は、1つ以上の内装されたDPUを含むDIMM(Dual In−line Memory Module)912である。システム構造900のハードウェアレイヤー910はPCIe装置及び/又はDIMMに制限されず、ハードウェアレイヤー910はDPUを含むSOC(System On Chip)装置又は他のメモリタイプ装置を含むことは容易に理解される。ハードウェアレベル910で装置及び/又は構成要素内に内装されるDPUは、図1のDPU100及び/又は図7のDPU700と同様に構成される。他の実施形態で、DPUの特定コンピューティングセルアレイは、図2Aの3T1Cコンピューティングセルトポグラフィ201又は図2Bの1T1Cコンピューティングセルトポグラフィ202を含むように構成される。
システム構造900のライブラリ及びドライバーレイヤー920は、DPUライブラリ921、DPUドライバー922、及びDPUコンパイラ923を含む。DPUライブラリ921は、アプリケーションレイヤー940で動作する多様なアプリケーションに対するハードウェアレイヤー910内のDPU内サブアレイの各々に対する最適のマッピング機能、リソース割当機能、及びスケジューリング機能を提供するように構成される。
一実施形態で、DPUライブラリ921は、移動、加算、乗算等の動作を含むフレームワークレイヤー930に対するハイレベルAPI(Application Programming Interface)を提供する。例えば、DPUライブラリ921は、また標準タイプのルーチン(routines)に対する具現を含む。標準タイプのルーチンに対する具現は、加速化されたディープラーニングプロセスに対して適用されるフォワード(forward)及びバックワード(backward)コンボリューション(convolution)、プーリング(pooling)、正規化(normalization)、及び活性化(activation)レイヤーを含む。但し、本発明はこれに制限されない。一実施形態で、DPUライブラリ921は、CNN(Convolution Neural Network)の全体コンボリューションレイヤーに対する計算をマッピングするAPI類似機能を含む。更に、DPUライブラリ921は、DPU上へのコンボリューションレイヤー計算のマッピングを最適化するためのAPI類似機能を含む。
また、DPUライブラリ921は、タスク(例えば、バッチ(batch)、出力チャンネル、ピクセル、入力チャンネル、コンボリューションカーネル)内の全ての個別又は複数の並列性(parallelism)を、チップ、バンク、サブアレイ、及び/又はマットレベルで該当DPU並列性にマッピングして、リソース割当を最適化するためのAPI類似機能を含む。更に、DPUライブラリ921は、性能(即ち、データ移動フロー)と電力消耗との間で均衡を維持(trade off)する初期化及び/又はランタイム時に最適のDPU構成を提供するAPI類似機能を含む。DPUライブラリ921によって提供される他のAPI類似機能はデザインノブ(knob)タイプ機能を含む。例えば、デザインノブタイプ機能は、バンク当たり活性化されたサブアレイの数、活性化されたサブアレイ当たりの入力機能マップの数、機能マップのパーティショニング(partitioning)、及び/又はコンボリューションカーネルの再使用スキームの設定を含む。また他のAPI類似機能は、各サブアレイに対して特定タスク(例えば、コンボリューションコンピューティング、チャンネル圧縮(sum up)、及び/又はデータディスパッチング(dispatching))を割当することによって、追加的なリソースの割当最適化を提供する。オペランドが整数と確率的数字との間で変換された場合、DPUライブラリ921は、精密度制限を満足させながらも、オーバーヘッドを最小化するAPI類似機能を含む。精密度が予想より低い場合、DPUライブラリ921は、確率的表現のための追加的なビットを使用して値を再び計算するか、又は他のハードウェア(例えば、CPU(Central Processing Unit))にタスクを分担(offload)するAPI類似機能を含む。
DPUライブラリ921は、またDPU内の活性化されたサブアレイをスケジュールすると同時にデータ移動をスケジュールして、データ移動がコンピューティング動作によって隠されるAPI類似機能を含む。
DPUライブラリ921の他の様相は追加的なDPU開発のための拡張インターフェイスを含む。一実施形態で、DPUライブラリ921は、NOR及びシフトロジックを利用して直接機能をプログラムして標準タイプ動作(例えば、加算、乗算、MAX/MIN等)及び他の動作が提供されるインターフェイスを提供する。拡張インターフェイスは、またインターフェイスを提供し、従ってDPUライブラリ921によって具体的に支援されない動作が、ライブラリ及びドライバーレイヤー920で、SoCコントローラ(図示せず)、CPU/GPU構成要素、及び/又はCPU/TPU構成要素として分担される。DPUライブラリ921の他の様相は、DPUメモリがコンピューティングのために使用されない場合に、メモリの拡張としてDPUのメモリを使用するためのAPI類似機能を提供する。
DPUドライバー922は、DPUハードウェアレイヤーをシステムに集積するために、ハードウェアレイヤー910でのDPU、DPUライブラリ921、及びより高いレイヤーでのオペレーティングシステム(OS:Operating System)との間のインターフェイス連結を提供するように構成される。即ち、DPUドライバー922はDPUをシステムOS及びDPUライブラリ921に露出する。一実施形態で、DPUドライバー922は初期化時にDPUコントロールを提供する。一実施形態で、DPUドライバー922はDRAMタイプのアドレス又はDRAMタイプのアドレスのシーケンスの形態で命令をDPUに伝送し、DPUの内外へのデータ移動を制御する。DPUドライバー922は、DPU−CPU及び/又はDPU−GPU通信を処理すると共に多重DPU通信を提供する。
DPUコンパイラ923は、DPUライブラリ921からのDPUコードを、DPUを制御するためにDPUドライバー922によって使用されるメモリアドレスの形態であるDPU命令にコンパイルする。DPUコンパイラ923によって生成されたDPU命令は、DPU内の1つ及び/又は2つのロー上で作動する単一命令(例えば、ベクトル命令、及び/又は集合(gathered)ベクトル、リードオン動作命令)である。
フレームワークレイヤー930は使いやすい(user−friendly)インターフェイスをライブラリ及びドライバーレイヤー920並びにハードウェアレイヤー910に提供するように構成される。一実施形態で、フレームワークレイヤー930は、アプリケーションレイヤー940で広範囲なアプリケーションと互換可能な使いやすいインターフェイスを提供し、DPUハードウェアレイヤー910をユーザーに透過的に(transparent)提供する。他の実施形態で、フレームワークレイヤー930は、定量化(quantitation)機能を、例えばTorch7タイプアプリケーションやTensorFlowタイプアプリケーションのような、既存の、従来の方法に追加するフレームワーク拡張を含む。但し、本発明はこれに制限されない。一実施形態で、フレームワークレイヤー930はトレーニングアルゴリズムに定量化機能を追加することを含む。他の実施形態で、フレームワークレイヤー930は、既存の割り算、乗算、平方根のバッチ正規化方法に対して、割り算、乗算、平方根の近似方法にシフトする置換を提供する。他の実施形態で、フレームワークレイヤー930は、ユーザーが計算のために使用するビット数を設定する拡張を提供する。他の実施形態で、フレームワークレイヤー930は、DPUライブラリ及びドライバーレイヤー920からフレームワークレイヤー930に多重DPU APIをラップ(wrap)するための容量を提供する。従って、ユーザーは複数のGPUの使用と同様にハードウェアレイヤーで複数のDPUを使用することができる。フレームワークレイヤー930の他の機能は、ユーザーがハードウェアレイヤー910でDPU又はGPUに機能を割当する。
アプリケーション940は、広範囲なアプリケーション(例えば、イメージタグ(tag)プロセシング、セルフドライビング/パイロッティング(piloting)運送手段、アルファ碁タイプディープマインドアプリケーション、及び/又は音声研究(speech research)等)を含む。但し、本発明はこれに制限されない。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
100、700 DPU
101a〜101m、105a〜105n バンク
102a〜102n サブアレイ
103 バッファ
104 システムバス
105、105a〜105n、109 マット(レーン)
106 データセルアレイ
107 コンピューティングセルアレイ
107a〜107d コンピューティングセル
108 イントラマットシフトアレイ
110 データセルアレイデコーダー
111 コンピューティングセルアレイデコーダー
112 インターマットシフトアレイ
112e、112f データシフトライン
113 インターマットフォワーディングアレイ
113g 第1データフォワーディングライン
113h 第2データフォワーディングライン
114 サブアレイコントローラ
201、202 DRAMコンピューティングセルトポグラフィ
715 確率的データアレイ
716 コンバーターツー確率アレイ
900 システム構造
910 ハードウェアレイヤー
911 PCIe
912 DIMM
920 ライブラリ及びドライバーレイヤー
921 DPUライブラリ
922 DPUドライバー
923 DPUコンパイラ
930 フレームワークレイヤー
940 アプリケーションレイヤー

Claims (9)

  1. DPU(Dynamic Random Access Memory Processing Unit)であって、
    少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを備え、
    前記少なくとも1つのカラムは、少なくとも3つのローのDRAM基盤のコンピューティングセルを含み、
    前記少なくとも3つのローのDRAM基盤のコンピューティングセルは、前記少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、前記少なくとも3つのローの第3ロー内に前記ロジック機能の結果を格納することを特徴とするDPU。
  2. 少なくとも1つのカラム内に配置された少なくとも1つのDRAM基盤のメモリセルを含む少なくとも1つのデータセルアレイと、
    前記少なくとも3つのローのDRAM基盤のコンピューティングセルの読出しビットラインに電気的に連結された入力、及び前記少なくとも3つのローのDRAM基盤のコンピューティングセルの書込みビットラインに電気的に連結された出力を含むセンスアンプと、を更に含むことを特徴とする請求項1に記載のDPU。
  3. DPU(Dynamic Random Access Memory Processing Unit)であって、
    少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイと、
    少なくとも1つのカラム内に配置された少なくとも1つのDRAM基盤のメモリセルを含む少なくとも1つのデータセルアレイと、を備え、
    前記少なくとも1つのカラムは、少なくとも3つのローのDRAM基盤のコンピューティングセルを含み、
    前記少なくとも3つのローのDRAM基盤のコンピューティングセルは、前記少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、前記少なくとも3つのローの第3ロー内に前記ロジック機能の結果を格納することを特徴とするDPU。
  4. DPU(Dynamic Random Access Memory Processing Unit)であって、
    少なくとも1つのカラム内に配置された少なくとも1つのDRAM基盤のメモリセルを含む少なくとも1つのデータセルアレイと、
    少なくとも3つのローのDRAM基盤のコンピューティングセルを含む少なくとも1つのカラムを含むアレイ内に配置された複数のDRAM基盤のコンピューティングセルを含む少なくとも1つのコンピューティングセルアレイと、
    前記少なくとも3つのローのDRAM基盤のコンピューティングセルの読出しビットラインに電気的に連結された入力、及び前記少なくとも3つのローのDRAM基盤のコンピューティングセルの書込みビットラインに電気的に連結された出力を含むセンスアンプと、
    前記少なくとも3つのローのDRAM基盤のコンピューティングセルに電気的に連結されたデコーダーと、を備え、
    前記少なくとも3つのローのDRAM基盤のコンピューティングセルは、前記少なくとも3つのローの第1ロー及び第2ロー上で動作するロジック機能を提供し、前記少なくとも3つのローの第3ロー内に前記ロジック機能の結果を格納し、
    前記デコーダーは、前記第1ロー及び第2ロー上で前記ロジック機能を生成し、前記第3ロー内に前記ロジック機能の結果を格納するために、前記少なくとも3つのローのDRAM基盤のコンピューティングセルを選択するための命令に対応するDRAM基盤のアドレス信号を受信することを特徴とするDPU。
  5. 前記少なくとも1つのカラムの前記DRAM基盤のコンピューティングセルの各々は、3つのトランジスタ及び1つのキャパシターを含むDRAMメモリセルを含むことを特徴とする請求項1、3、又は4に記載のDPU。
  6. 前記少なくとも1つのカラムの前記DRAM基盤のコンピューティングセルは、NORロジック機能を提供することを特徴とする請求項5に記載のDPU。
  7. 前記少なくとも1つのカラムの前記DRAM基盤のコンピューティングセルの各々は、1つのトランジスタ及び1つのキャパシターを含むDRAMメモリセルを含むことを特徴とする請求項1、3、又は4に記載のDPU。
  8. 前記DRAM基盤のコンピューティングセルの各々は、前記DRAM基盤のコンピューティングセルのビットラインに連結されたALU(Arithmetic Logic Unit)を更に含み、
    前記ALUは、前記ロジック機能を提供することを特徴とする請求項7に記載のDPU。
  9. 前記ALUは、NORロジック機能を提供することを特徴とする請求項8に記載のDPU。
JP2017193447A 2016-10-28 2017-10-03 Dram基盤のプロセシングユニット Active JP6785738B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662414426P 2016-10-28 2016-10-28
US62/414,426 2016-10-28
US15/425,996 US9922696B1 (en) 2016-10-28 2017-02-06 Circuits and micro-architecture for a DRAM-based processing unit
US15/425,996 2017-02-06

Publications (3)

Publication Number Publication Date
JP2018073452A true JP2018073452A (ja) 2018-05-10
JP2018073452A5 JP2018073452A5 (ja) 2020-10-22
JP6785738B2 JP6785738B2 (ja) 2020-11-18

Family

ID=61598574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017193447A Active JP6785738B2 (ja) 2016-10-28 2017-10-03 Dram基盤のプロセシングユニット

Country Status (5)

Country Link
US (1) US9922696B1 (ja)
JP (1) JP6785738B2 (ja)
KR (1) KR102182217B1 (ja)
CN (1) CN108022615B (ja)
TW (1) TWI713047B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10180808B2 (en) * 2016-10-27 2019-01-15 Samsung Electronics Co., Ltd. Software stack and programming for DPU operations
US10628295B2 (en) * 2017-12-26 2020-04-21 Samsung Electronics Co., Ltd. Computing mechanisms using lookup tables stored on memory
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
TWI714003B (zh) * 2018-10-11 2020-12-21 力晶積成電子製造股份有限公司 可執行人工智慧運算的記憶體晶片及其操作方法
CN110414677B (zh) * 2019-07-11 2021-09-03 东南大学 一种适用于全连接二值化神经网络的存内计算电路
US11354383B2 (en) 2019-09-27 2022-06-07 Applied Materials, Inc Successive bit-ordered binary-weighted multiplier-accumulator
US11081149B1 (en) 2020-03-31 2021-08-03 Winbond Electronics Corp. Memory device for artificial intelligence operation
KR20220142875A (ko) 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 인메모리 연산을 수행하는 반도체 장치 및 그 동작 방법

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4955020A (en) * 1989-06-29 1990-09-04 Infotron Systems Corporation Bus architecture for digital communications
EP0689712A4 (en) * 1993-03-17 1997-05-28 Zycad Corp CONFIGURABLE FIELDS WITH DIRECT ACCESS MEMORY ARRANGEMENT
US6173385B1 (en) 1993-11-19 2001-01-09 Disk Emulation Systems, Inc. Address generator for solid state disk drive
US6195738B1 (en) 1993-12-12 2001-02-27 Associative Computing Ltd. Combined associative processor and random access memory architecture
US5847577A (en) * 1995-02-24 1998-12-08 Xilinx, Inc. DRAM memory cell for programmable logic devices
US5901095A (en) 1997-12-23 1999-05-04 Lsi Logic Corporation Reprogrammable address selector for an embedded DRAM
JPH11338767A (ja) * 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
US6467020B1 (en) * 2000-05-17 2002-10-15 Neomagic Israel Ltd. Combined associate processor and memory architecture
TW514931B (en) 2000-09-29 2002-12-21 Agilent Technologies Inc Apparatus and method for performing conditional calculations
US6947348B2 (en) * 2003-07-15 2005-09-20 International Business Machines Corporation Gain cell memory having read cycle interlock
US7299099B1 (en) 2004-02-18 2007-11-20 Divelbiss Corporation Programmable logic controller contained on a chip
JP2006127460A (ja) * 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
US20070226567A1 (en) 2006-03-23 2007-09-27 Gorman Kevin W High speed bist utilizing clock multiplication
CA2645781C (en) * 2006-12-22 2011-04-12 Sidense Corp. Dual function data register
US8120989B2 (en) 2007-06-25 2012-02-21 Qualcomm Incorporated Concurrent multiple-dimension word-addressable memory architecture
US8042082B2 (en) 2007-09-12 2011-10-18 Neal Solomon Three dimensional memory in a system on a chip
US8631195B1 (en) * 2007-10-25 2014-01-14 Netlogic Microsystems, Inc. Content addressable memory having selectively interconnected shift register circuits
US8341362B2 (en) * 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US8332580B2 (en) * 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US10832746B2 (en) * 2009-07-16 2020-11-10 Gsi Technology Inc. Non-volatile in-memory computing device
US20120246380A1 (en) 2009-10-21 2012-09-27 Avidan Akerib Neighborhood operations for parallel processing
US9026714B2 (en) 2010-06-04 2015-05-05 Cisco Technology, Inc. Memory expansion using rank aggregation
TWI571058B (zh) * 2011-05-18 2017-02-11 半導體能源研究所股份有限公司 半導體裝置與驅動半導體裝置之方法
CN103907157B (zh) * 2011-10-28 2017-10-17 慧与发展有限责任合伙企业 进行行移位的可移位存储器
WO2013115778A1 (en) * 2012-01-30 2013-08-08 Hewlett-Packard Development Company, L.P. Dynamic/static random access memory (d/sram)
KR101990971B1 (ko) 2012-01-30 2019-06-19 삼성전자 주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US9317482B2 (en) 2012-10-14 2016-04-19 Microsoft Technology Licensing, Llc Universal FPGA/ASIC matrix-vector multiplication architecture
US9378181B2 (en) 2012-11-09 2016-06-28 Intel Corporation Scalable computing array
US9197285B2 (en) 2012-12-20 2015-11-24 Deere & Company Methods and apparatus for ameliorating signal reception
US9153305B2 (en) * 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9639458B2 (en) 2013-09-26 2017-05-02 Emu Solutions, Inc. Reducing memory accesses for enhanced in-memory parallel operations
US9934856B2 (en) * 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns 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
US9711206B2 (en) * 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
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
US20160147667A1 (en) 2014-11-24 2016-05-26 Samsung Electronics Co., Ltd. Address translation in memory
US9954533B2 (en) * 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
US10996959B2 (en) * 2015-01-08 2021-05-04 Technion Research And Development Foundation Ltd. Hybrid processor
US9697877B2 (en) * 2015-02-05 2017-07-04 The Board Of Trustees Of The University Of Illinois Compute memory

Also Published As

Publication number Publication date
CN108022615B (zh) 2023-03-28
US9922696B1 (en) 2018-03-20
TWI713047B (zh) 2020-12-11
JP6785738B2 (ja) 2020-11-18
TW201816785A (zh) 2018-05-01
KR20180046846A (ko) 2018-05-09
CN108022615A (zh) 2018-05-11
KR102182217B1 (ko) 2020-11-25

Similar Documents

Publication Publication Date Title
US10242728B2 (en) DPU architecture
JP6785738B2 (ja) Dram基盤のプロセシングユニット
JP6920169B2 (ja) Dram基盤の確率論的コンピューティングシステム
Angizi et al. Redram: A reconfigurable processing-in-dram platform for accelerating bulk bit-wise operations
US7167890B2 (en) Multiplier-based processor-in-memory architectures for image and graphics processing
Talati et al. mmpu—a real processing-in-memory architecture to combat the von neumann bottleneck
US5956274A (en) Memory device with multiple processors having parallel access to the same memory area
US7073039B2 (en) Providing a register file memory with local addressing in a SIMD parallel processor
CN110222818B (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
US6754802B1 (en) Single instruction multiple data massively parallel processor systems on a chip and system using same
CN111656339A (zh) 存储器装置及其控制方法
Zhou et al. Flexidram: A flexible in-dram framework to enable parallel general-purpose computation
US20230385624A1 (en) Computing in memory with artificial neurons
Bottleneck mMPU—A Real Processing-in-Memory Architecture to Combat the von
US7503046B2 (en) Method of obtaining interleave interval for two data values
신현승 McDRAM: Low Latency and Energy-Efficient Matrix Computation in DRAM
Nakano et al. Random Address Permute-Shift Technique for the Shared Memory on GPUs
Kim et al. DRAM-Based Processing-in-Memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180214

AA79 Non-delivery of priority document

Free format text: JAPANESE INTERMEDIATE CODE: A24379

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200909

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200909

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200909

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200915

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201027

R150 Certificate of patent or registration of utility model

Ref document number: 6785738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250