JP2018073413A - Dram基盤の確率論的コンピューティングシステム - Google Patents

Dram基盤の確率論的コンピューティングシステム Download PDF

Info

Publication number
JP2018073413A
JP2018073413A JP2017204581A JP2017204581A JP2018073413A JP 2018073413 A JP2018073413 A JP 2018073413A JP 2017204581 A JP2017204581 A JP 2017204581A JP 2017204581 A JP2017204581 A JP 2017204581A JP 2018073413 A JP2018073413 A JP 2018073413A
Authority
JP
Japan
Prior art keywords
dram
dpu
row
computing
rows
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
JP2017204581A
Other languages
English (en)
Other versions
JP6920169B2 (ja
JP2018073413A5 (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 JP2018073413A publication Critical patent/JP2018073413A/ja
Publication of JP2018073413A5 publication Critical patent/JP2018073413A5/ja
Application granted granted Critical
Publication of JP6920169B2 publication Critical patent/JP6920169B2/ja
Active 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/402Digital 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 with charge regeneration individual to each memory cell, i.e. internal refresh
    • G11C11/4023Digital 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 with charge regeneration individual to each memory cell, i.e. internal refresh using field effect 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/403Digital 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 with charge regeneration common to a multiplicity of memory cells, i.e. external refresh
    • G11C11/405Digital 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 with charge regeneration common to a multiplicity of memory cells, i.e. external refresh with three charge-transfer gates, e.g. MOS transistors, per cell
    • 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/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control 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/409Read-write [R-W] circuits 
    • G11C11/4097Bit-line organisation, e.g. bit-line layout, folded bit lines
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】多様な動作に対してプログラム可能であり、再構成可能であるDPU(DRAM基盤処理ユニット)を含んで、例えばディープラーニングにおけるような高度に並列化されたプロセシングを効率的に処理できるシステムを提供する。
【解決手段】システムはDPUの他に、受信命令に対応する最小のDPU演算を決定するライブラリ、受信命令に対応して決定された最少1つのDPU演算に対する最少1つのDPU命令を形成するコンパイラ、最少1つのDPU命令を最少1つのDPUに伝送するドライバを含む。DPUは最少1つの列を含むアレイに配列された複数のDRAM基盤コンピューティングセルを含む最少1つのコンピューティングセルアレイを含み、最少1つの列は論理機能を提供するために構成されたDRAM基盤コンピューティングセルの最少3つの行を含み、論理機能は最少3つの行の中で第1行及び第2行で動作し、論理機能の結果を最少3つの行の中で第3行に格納する。
【選択図】図1

Description

本発明はDRAM基盤の確率論的(stochastic)コンピューティングシステムに係る。
一般的に、GPU(Graphics Processing Unit、グラフィクスプロセッシングユニット)と、TPU(Tensor Processing Unit、テンソルプロセッシングユニット)とがディープラーニング(deep learning)プロセシングのために使用される。しかしディープラーニングプロセシングは、高度に並列化されたプロセシングを含む場合、GPU又はTPUによって効率的に処理できない。
米国特許第6,745,219号公報 米国特許第8,103,598号公報 米国特許第8,127,075号公報 米国特許第8,352,384号公報 米国特許第8,645,286号公報 米国特許第9,251,467号公報 米国特許公開第2014/0223439号明細書
KNAG, Phil et al., "A Native Stochastic Computing Architecture Enabled by Memristors", IEEE TRANSACTIONS ON NANOTECHNOLOGY, Vol. 13, No. 2, March 2014, pp. 283−293.
本発明は上述された技術的課題を解決するためのものであって、 本発明の目的はDPU(DRAM(dynamic random access memory)(−based)_Processing_Unit、DRAM(基盤)プロセシングユニット)を含んで、例えばディープラーニングにおけるような高度に並列化されたプロセシングを効率的に処理できるシステムを提供することにある。
例示的な実施形態に係るシステムは、命令を受信するインタフェイス、ライブラリ、コンパイラ、ドライバ、及びDPUを含むシステムを提供する。前記ライブラリは前記インタフェイスによって受信された命令に対応する少なくとも1つのDPU演算を決定する。前記コンパイラは前記受信された命令に対応する前記決定された少なくとも1つのDPU演算に対する少なくとも1つのDPU命令を形成する。前記ドライバは前記少なくとも1つのDPU命令を少なくとも1つのDPUに伝送する。前記DPUは少なくとも1つの列を含むアレイに配列された複数のDRAM基盤コンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを含み、前記少なくとも1つの列はDRAM基盤コンピューティングセルの少なくとも3つの行を含み、前記DRAM基盤コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される。
一実施形態で、前記少なくとも1つの列のDRAM基盤コンピューティングセルの各々は3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含み、前記少なくとも1つの列の前記DRAM基盤コンピューティングセルはNOR論理機能を提供する。
一実施形態で、前記DPUは少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルをさらに含み、前記少なくとも1つの列はDRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、前記DRAM基盤確率論的コンピューティングセルは前記少なくとも3つの行の中で第1行及び第2行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される。
一実施形態で、前記少なくとも1つの列の前記DRAM基盤確率論的コンピューティングセルの各々は3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含む。
一実施形態で、少なくとも1つのDPU演算は確率論的コンピューティング演算を含む。
例示的な実施形態に係るシステムは、少なくとも1つのDPU(DRAM(基盤)プロセシングユニット)と、ここで、
前記DPUの各々は、少なくとも1つの列を含むアレイ内に配列された複数のDRAM基盤コンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを含み、前記少なくとも1つの列は、DRAM基盤コンピューティングセルの少なくとも3つの行を含み、前記DRAM基盤コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される。
前記DPUの各々は更に、少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルを含み、前記少なくとも1つの列は、DRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、前記DRAM基盤確率論的コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成され、
命令を受信するインタフェイスと、前記受信された命令に対応する少なくとも1つのDPU演算を決定するライブラリと、前記受信された命令に対応する少なくとも1つのDPU命令を前記少なくとも1つのDPUに伝送するドライバと、を含む。
一実施形態で、前記少なくとも1つの列のDRAM基盤コンピューティングセルの各々は3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含み、前記少なくとも1つの列の前記DRAM基盤確率論的コンピューティングセルの各々は3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含む。
一実施形態で、前記少なくとも1つの列の前記DRAM基盤コンピューティングセルはNOR論理機能を提供する。
一実施形態で、前記少なくとも1つのDPU演算は確率論的コンピューティング演算を含むシステムを提供する。
例示的な実施形態は、少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルを含む少なくとも1つの確率論的コンピューティングセルアレイを含むDRAMプロセシングユニットDPUと、ここで、前記少なくとも1つの列は、DRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、前記DRAM基盤確率論的コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成され、受信された命令に対応する少なくとも1つの確率論的DPU演算を決定するライブラリと、前記受信された命令に対応する少なくとも1つの確率論的DPU命令を前記複数のDRAM基盤確率論的コンピューティングセルを含む前記少なくとも1つのDPUに伝送するドライバと、を含むシステムを提供する。
一実施形態で、前記少なくとも1つの列の前記DRAM基盤確率論的コンピューティングセルの各々は3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含む。
本発明は多様な動作に対してプログラム可能であり、再構成可能であるDPU(DRAM(−based) Processing Unit)を用いて、高度の並列動作が可能なメモリセルを使用する計算を提供できるので、本発明の実施形態によれば、高性能、エネルギ効率的であり、低コストのシステムを提供できる。
以下の説明で、本明細書の技術構成の様相が図面に図示された例示的な実施形態を参照して説明される。
本発明の実施形態に係るDPU(DRAM(Dynamic Random Access Memory) based Processing Unit)を例示的に示すブロック図である。 コンピューティングセルアレイ(cell array)内のコンピューティングセルに対して使用されることができる3つのトランジスタ、1つのキャパシタのDRAMコンピューティングセル(computing−cell)トポグラフィ(topography)の例示的な実施形態を示す。 コンピューティングセルアレイ内のコンピューティングセルに対して使用されることができる1つのトランジスタ、1つのキャパシタのDRAMコンピューティングセル(computing−cell)トポグラフィ(topography)の他の例示的な実施形態を示す。 本発明の実施形態に係るイントラマット(intra−mat、マット内)シフト(shift)アレイを例示的に示す。 本発明の実施形態に係るインタマット(inter−mat、マット間)シフトアレイを例示的に示す。 本発明の実施形態に係る左側のインタマットシフトに対する隣接するコンピューティングセルカラムで同様に配置された2つのコンピューティングセルの間のインタマットシフトインタコネクション(interconnection)構成を概念的に示す。 本発明の実施形態に係る左側のインタマットシフトに対する隣接するコンピューティングセルカラムで同一でないように配置された2つのコンピューティングセルの間のインタマットシフトインタコネクション(interconnection)構成を概念的に示す。 本発明の実施形態に係るインタマットフォワーディング(forwading)アレイを示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。 本発明の実施形態に係る確率論的データ領域を含むDPUを例示的に示すブロック図である。 ANDロジック動作に変換されることができる乗算(multiplication)動作に対する確率論的コンピューティング動作を示す。 多重化(multiplexing)動作に変換されることができる加算(addition)動作に対する確率論的コンピューティング動作を示す。 本発明の実施形態に係るDPUを含むシステム構造を示す。
以下の本文で、多様な詳細な説明は本文の理解を提供するために提示される。しかし、このような詳細な説明無しで記載された本発明の思想が当業者によって容易に具現されることはよく理解されるべきである。他の例で、広く公知された方法、手続、構成、及び回路は本文を曖昧にしないために説明されない。
詳細な説明で“1つの実施形態”又は“一実施形態”を参照することは実施形態と連関された特定な特徴、構造、又は特性が本文の少なくとも1つの実施形態に含まれることを意味する。即ち、本文の多様な位置で使用される“1つの実施形態で”又は“一実施形態で”又は“1つの実施形態に係って”又は類似な意味を有する他の表現は同一の実施形態を参照することを要求しない。さらに、特定な特徴、構造、又は特性は適切な方式に1つ以上の実施形態で組合わされることができる。これと関連して、本明細書で使用されたように、“例示的な”という単語は“例(example、instance、illustration)として提供される”ということを意味する。本明細書で“例示的な”のように記述された実施形態は他の実施形態に比べて必ず望ましいか、有利であることと考えてはならない。また、本文で言及された内容に従って、単数用語は複数の形態を含み、複数用語は単数形態を含むことができる。構成図面を含む多様な図面はただ説明の目的のために本文で言及され、図示され、定量化されない。類似に、多様な波形及びタイミング図は単純に説明の目的のために図示される。例えば、一部の構成要素は明確性のために他の構成要素と比較して誇張に図示される場合がある。追加的に、適切と考慮される場合、参照番号は対応する構成要素及び/又は類似な構成要素を示すために図面上で反複される。
本明細書で使用された用語は単なる特定な実施形態を説明するためにもちいられており、本発明を制限しようとする意図は無い。本明細書で使用されたように、文脈上で明確に異なって意味しない限り、単数形態の“1つ”は複数の形態も含むと意図される。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語が本明細書で使用される時、このような用語は定まれた特徴、整数、段階、動作、要素、及び/又は成分が存在を明示するが、1つ又はそれ以上の他の特徴、整数、段階、動作、要素、成分、及び/又はそれらのグループの追加又は存在は不可能ではない。“第1”、“第2”のような用語は先に説明された構成に対するラベルとして使用され、別の定義が無い限り特定な順序(例えば、空間的、時間的、論理的、等)を意図されていない。その上に、同一の参照番号は同一であるか、或いは類似な機能を有する部品、構成、ブロック、回路、ユニット、又はモジュールと関連された2つ以上の図面にわたって使用される場合がある。しかし、このような使用は、単に説明の簡易化のためであり、このような構成及びユニットの構成又は構造的な細部事項が全ての実施形態又は共通的に参照される部分/モジュールで同一であると意図されておらず、単に、本発明の特定実施形態を指称するための1つの手段である。
別途異なって定義されない限り、全ての用語(技術又は科学用語を含む)は本発明の装置と方法が属する分野で当業者に通常的に理解されるのと同一の意味を有する。共に、辞書的な意味として定義された用語は関連された記述及び/又は本発明の説明の状況に従って解釈されなければならず、このように定義されない限り、理想的に理解されるか、或いは過度に形式的な意味として理解されてはならない。
本明細書に記述された発明は、多様な動作に対してプログラム可能(programmable)であり、再構成可能な(reconfigurable) DPU(DRAM基盤プロセッシングユニットを提供する。例えば多様な動作は、加算、乗算、シフティング(shifting)、最大/最小(MIN/MAX)、及び比較(comparison)等を含むが、これに限定されない。一実施形態で、DPUは3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセルプロセスと構造に基づく。他の実施形態で、若干の変化と共に、DPUは1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルプロセスと構造に基づく。従って、DPUは特定のコンピューティングロジック回路(例えば、アダー(adder、加算器)のような)を含まないが、高度の並列動作を使用するメモリセルを使用する計算を提供する。一実施形態で、DPUは乗算(multiplication)動作がANDロジック動作に変換され、加算(addition)動作が多重化(multiplexing)動作に変換される確率論的コンピューティングアレイを含む。
また、本明細書に記述された発明はDPUをプログラムし、再構成するためのISA(Instruction Set Architecture)とコンパイラ(compiler)、ドライバ、ライブラリ、フレームワーク(framework)拡張(extension)を含む環境(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の内部構成は、サブアレイ(sub−array)の複数のバンクと連結されたシステムバスを含む。一実施形態で、システムバスはサブアレイのHツリー(tree)連結されたバンクを提供するように構成される。各々のサブアレイはローカルコントローラを含み、各々の独立的なサブアレイは分離的に又は同時に活性化される。一実施形態で、DRAM基盤のセルは2つのアレイ(データセルアレイとコンピューティングセルアレイ)に区分される。一実施形態で、コンピューティングセルアレイはDRAM基盤のメモリセルで具現される。他の実施形態で、コンピューティングセルアレイはロジック回路を含むDRAM基盤のメモリセルで具現される。DPU内部構造は、またデータ−シフティング(data−shifting)及びデータ−移動(data−movement)回路を含む。一部の実施形態で、確率論的データ計算のために構成される第3DRAM基盤のセルアレイがある。
図1は本発明の実施形態に係るDPU(DRAM−based Processing Unit)100を例示的に示すブロック図である。DPU100は1つ以上のバンク101a〜101mを含む。図1では、1つ以上のバンク101a〜101mの中でバンク101a、101bのみが図示されている。各バンク101は1つ以上のサブアレイ102a〜102rを含む。図1では、1つ以上のサブアレイ102a〜102rの中でサブアレイ102a、102bのみが図示されている。
また、各バンク101はバッファ103を含む。バッファ103は個別サブアレイ102と連結され、システムバス104と連結される。バッファ103はサブアレイ102内の1つのロー(row)全体を読み出し、以後、該当ローを再び同一のサブアレイ又は他のサブアレイに書き込む。バッファ103は、また該当ローデータのコピーをサブアレイ102内の複数のマット(mat)105a〜105pにブロードキャスト(broadcast、一斉通知)する。一実施形態で、バンク101とシステムバス104はHツリー連結されたバンクを提供するように構成される。
各サブアレイ102は1つ以上のマット(又はレーン)105を含む。図1では、1つ以上のマット105の中でサブアレイ102aのマット105a〜105pのみが図示されている。各マット105は、データセルアレイ106、コンピューティングセルアレイ107、及びイントラマット(intra−mat)シフトアレイ108を含むDPU100の領域である。マット105の例は破線109で囲まれるように図1で図示されている。
各マット105はデータセルアレイデコーダ110、コンピューティングセルアレイデコーダ111、インタマット(inter−mat)シフトアレイ112、及びインタマットフォワーディングアレイ113を隣接するマットと共有する。一実施形態で、データセルアレイデコーダ110、コンピューティングセルアレイデコーダ111、及びインタマットシフトアレイ112は隣接するマット105の間にサブアレイコントローラ114と交互に物理的に配置される。一実施形態で、デコーダ110、111は従来のDRAMタイプのメモリデコーダのように動作する。
一実施形態で、各マット105はサブアレイコントローラ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カラムより少ないか、或いは2Kカラムより多いカラムを含み、及び/又は、16ローより少ないか、或いは16ローより多いローを含む。
図2はコンピューティングセルアレイ(cell array)107内のコンピューティングセルに対して使用される、3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMコンピューティングセル(computing−cell)のトポグラフィ(topography)201の例示的な実施形態を示す。図2に図示されたように、ローX内の3T1Cコンピューティングセルは第1トランジスタTを含む。第1トランジスタTは書込みビットライン(Write BL)と電気的に連結されたソース端、キャパシタCの第1端及び第2トランジスタTのゲート端の双方に電気的に連結されたドレーン端、及び書込みイネーブル(WEN)ラインと電気的に連結されたゲート端を含む。キャパシタCの第2端はグラウンド(ground)ラインと電気的に連結される。第2トランジスタTはグラウンドラインと電気的に連結されたソース端、及び第3トランジスタTのソース端と電気的に連結されたドレーン端を含む。第3トランジスタTはワードラインWLと電気的に連結されたゲート端、読出しビットライン(Read BL)と電気的に連結されたドレーン端を含む。3T1Cコンピューティングセルトポグラフィ201は読出しビットライン(Read BL)と電気的に連結された入力と書込みビットライン(Write BL)と電気的に連結された出力を含むセンスアンプ(Sense Amplifier、SA)を含む。
また、ローY内のコンピューティングセルとローR内のコンピューティングセルとは双方共に、ローX内のコンピューティングセル内の配置と同様に3T1C DRAM構成に配置された3つのトランジスタT〜TとキャパシタCとを含む。図2に図示された3つのコンピューティングセル及びセンスアンプ(SA)の例はNORロジック動作(即ち、‘X NOR Y’ロジック動作)を提供するように構成される。該当NORロジック動作の結果はローRに格納される。たとえ3T1C DRAMコンピューティングセルの1つのカラムのみが図2に明示的に図示されたが、3T1Cコンピューティングセルが複数のカラム(例えば、2Kカラム)内に構成される他の実施形態が可能であることは理解されよう。また、3つ以上のローが提供される他の実施形態が可能であることも理解されよう。また、図2に図示された3T1C DRAMコンピューティングセル構成がNORロジック動作を提供するが、3T1C DRAMコンピューティングセルトポグラフィ201のNORロジック動作が多様な機能的動作を提供するために使用されることも理解されよう。例えば、機能的動作は排他ノア(XNOR)、加算(ADD)、セレクト(SET)、MAX、SIGN、多重化(MUX)、CSA(Conditional Sum Addition)ロジック、乗算、ポップカウント(popcount)、及びCOMPARE等を含む。但し、本発明はこれに限定されない。また、イントラマットシフトアレイ108とインタマットシフトアレイ112とはシフティング機能を提供する。
図3は図1のコンピューティングセルアレイ107内のコンピューティングセルに対して使用される、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMコンピューティングセル(computing−cell)トポグラフィ(topography)202の他の例示的な実施形態を示す。図3に図示されたように、1T1Cコンピューティングセルは第4トランジスタTを含む。第4トランジスタTはキャパシタC2の第1端と電気的に連結されたソース端、ビットラインBLと電気的に連結されたドレーン端、ワードラインWLと電気的に連結されたゲート端を含む。キャパシタC2の第2端はグラウンドラインと電気的に連結される。ビットラインBLはセンスアンプ(SA)の入力と電気的に連結される。センスアンプ(SA)の出力は多重化器(MUX)の第1入力、第5トランジスタTのドレーン端、及びALU(Arithmetic Logic Unit)の入力と電気的に連結される。多重化器(MUX)の出力はラッチ(LATCH)の入力と電気的に連結される。第5トランジスタTのソース端はラッチ(LATCH)の出力と電気的に連結される。ALUの出力は多重化器(MUX)の第2入力と電気的に連結される。図3で、第5トランジスタT、多重化器(MUX、マルチプレクサ)、ラッチ(LATCH)、及びALUは各々コントローラ114から制御信号CNTL〜CNTLを受信する。
一実施形態で、ALUはNOR機能を提供するように構成され、図3のビットラインBLと電気的に連結されたロジック回路がNORロジック動作を提供する。しかし、ビットラインBLと電気的に連結されたロジック回路(即ち、ALU)が他の機能動作(例えば、排他ノア(XNOR)、加算(ADD)、セレクト(SET)、MAX、SIGN、多重化(MUX)、CSA(Conditional Sum Addition)ロジック、乗算、ポップカウント(popcount)、及びCOMPARE等)を提供できることが理解されよう。但し、本発明はこれに制限されない。また、イントラマットシフトアレイ108とインタマットシフトアレイ112とはシフティング機能を提供する。図3で1つの1T1Cコンピューティングセルのみが図示され、複数のカラム及び複数のローの1T1Cコンピューティングセルが提供されることも理解されよう。
図2及び図3から分かるように、DPUのコンピューティングセルは特定、複雑なコンピューティングロジックを含まない。但し、代わりに、DPUのコンピューティングセルは複数の、多様なタイプの計算を遂行する機能(ability)を提供する再プログラム可能な性質(nature)を有する相対的に単純なトポグラフィを含む。追加的に、DPUのトポグラフィは、より多くの計算をより速く且つより効率的に遂行するために、メモリ構造に固有の大量並列処理の長所を活かすように配置される。
図4は本発明の実施形態に係るイントラマット(intra−mat、マット内)シフト(shift)アレイ108を例示的に示す。イントラマットシフトアレイ108の記述を単純化するために、例えば図4に図示されたように、コンピューティングメモリセルの4つのカラム107a〜107dからなる幅を有するマット105を考慮する。イントラマットシフティングアレイ108はアレイ内に配置された複数の第6トランジスタT(図4では、1つのトランジスタのみが代表してTと表示される)、2n本のシフトラインSL(nはマット105内のコンピューティングセルのカラムのカウントであり、図4の場合,n=4)、(n+2)本のシフトレフト(left)コントロールラインSLcL、2本のシフトライト(right)コントロールラインSRcL、及びn本のシフトマスクラインSMLを含む。
イントラマットシフトアレイ108の第6トランジスタTの一部は書込みビットライン(Write BL)と(2n)本のシフトラインSLとの間に電気的に連結され、イントラマットシフトアレイ108の他の第6トランジスタTは読出しビットライン(Read BL)と(2n)本のシフトラインSLとの間に連結される。このような第6トランジスタTのゲートは(n+2)本のシフトレフトコントロールラインSLcLと2本のシフトライトコントロールラインSRcLと電気的に連結される。イントラマットシフトアレイ108の他の第6トランジスタTはn本のシフトマスクラインSML及び(2n)本のシフトラインSLの間に電気的に連結される。イントラマットシフトアレイ108のコントロールラインはマット105と関連されたサブアレイコントローラ114と電気的に連結される。
コントロールラインSLcL、SRcL上の適切な信号によって、イントラマットシフトアレイ108はマット105内でデータをレフト(left)シフト又はライト(right)シフトする。レフトシフティングに対して、データはサイン(sign)ビットで満たされ、1つの動作毎に1ビット又は(n−1)ビットだけシフトされる。nはマット105当たりのカラム数である。ライトシフトに対して、命令による制御に従ってデータは0又は1で満たされ、データは2、2、 …、 2k−1、2と、マット当たりのカラム数2までシフトできる。2はカラムの数「n」で、本実施例ではn=4、従ってk=2である。
図5は本発明の実施形態に係るインタマット(inter−mat、マット間)シフトアレイ112を例示的に示す。インタマットシフトアレイ112の記述を単純化するために、例えば図5乃至図7に図示されたように、マット105a、105bが各々、コンピューティングセルの2つのカラム107a、107bからなる幅を有するマット構成を考慮する。即ち、各マット105a、105bはコンピューティングセルの第1カラム107aとコンピューティングセルの第2カラム107bとを含む。
インタマットシフトアレイ112はトランジスタT112a、T112bとトランジスタT112c、T112d、データシフトライン112e、112f、及びインタマットシフトコントロールラインISLcLを含む。マット内に、トランジスタT112aはコンピューティングセルの第1カラム107aの読出しビットライン(Read BL)と電気的に連結されたソース端、データシフトライン112eと電気的に連結されたドレーン端を含む。トランジスタT112bはコンピューティングセルの第2カラム107bの読出しビットライン(Read BL)と電気的に連結されたソース端、データシフトライン112fと電気的に連結されたドレーン端を含む。データシフトライン112e、112fはバッファ103と電気的に連結される。バッファ103は図5に図示されない。
相異なるマットの間にあって、トランジスタT112cは隣接するマット内のデータシフトライン112eと各々電気的に連結されたソース端及びドレーン端を含む。トランジスタT112dは隣接マット内のデータシフトライン112fと各々電気的に連結されたソース端及びドレーン端を含む。トランジスタT112c、T112dのゲートは、同一のインタマットシフトコントロールラインISLcLに連結される。一方、隣接するマット105a、105bの相異なる組の間に存在するトランジスタT112c、T112dのゲートは相異なるインタマットシフトコントロールラインISLcLと連結される。インタマットシフトコントロールラインISLcL上の適切な信号によって、インタマットシフトアレイ112は相異なるマットの間でデータをレフトシフト又はライトシフトする。インタマットシフトコントロールラインISLcLを含むインタマットシフトアレイ112のコントロールラインは、マット105と連関されたサブアレイコントローラ114と電気的に連結される。
図6は本発明の実施形態に係る、左側へのインタマットシフトに対して、隣接するマット105a、105bにおいて同一の形で明示された2つのコンピューティングセルのカラムの間(107a−107a、及び107b−107b)のインタマットシフトインタコネクション(interconnection)構成を概念的に示す。
図6のインタコネクション構成は利用されるインタコネクションノードによって概念的に図示されている。利用されるインタコネクションノードはドット‘・’により強調されて図示されている。例えば、マット105aと105bの間に配置されたトランジスタ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)と電気的に連結される。
図7は本発明の実施形態に係る、左側へのインタマットシフトに対して、マット105aとその左側に隣接する図中最左側のマット(符号なし)、及びマット105bとその右側に隣接する図中最右側マット(符号なし)において、2つのコンピューティングセルのカラムの間(107a−107a、及び107b−107b)のインタマットシフトインタコネクション(interconnection、接続)構成を概念的に示す。(本図において、最左側のマットのコンピューティングセルのカラム107aと最右側のマットのコンピューティングセルのカラム107bは明示されていないが、当業者には容易に理解できるであろう。)
図7のインタコネクション構成は利用されるインタコネクションノードによって概念的に図示されている。利用されるインタコネクションノードはドット‘・’により強調されて図示されている。例えば、最左側のマットとマット105aの間、及びマット105bと最右側のマットの間に配置されたトランジスタT112c、T112dは活性化されて導線経路が各々のトランジスタを通じて形成される。従って、最左側のマットとマット105aの間、及びマット105bと最右側のマットの間でデータシフトライン112e、112fは連結される。トランジスタT112c、T112dのゲート端は活性化されたインタマットシフトコントロールラインISLcLと電気的に連結される。
マット105aのトランジスタT112a、T112bは活性化され、従ってマット105a内のコンピューティングセルのカラム107aの読出しビットライン(Read BL)はマット105aの左側に隣接する最左側のマット内のコンピューティングセルのカラム107aの書込みビットライン(Write BL)と電気的に連結される。また、同様にして、マット105a内のコンピューティングセルのカラム107bの読出しビットライン(Read BL)はマット105aの左側に隣接する最左側のマット内のコンピューティングセルのカラム107bの書込みビットライン(Write BL)と電気的に連結される。
図8は本発明の実施形態に係るインタマットフォワーディング(forwading)アレイ113を示す。インタマットフォワーディングアレイ113の説明を単純化するために、図8に図示されたように、マット105a、105bが各々、コンピューティングセルの2つのカラム107a、107bからなる幅を有するマット構成を考慮する。即ち、各マット105a、105bはコンピューティングセルの第1カラム107aとコンピューティングセルの第2カラム107bとを含む。
マット105a、105bと共に、インタマットフォワーディングアレイ113はトランジスタT113a、T113b、トランジスタT113c、T113d、トランジスタT113e、T113f、2本のフォワーディングデータラインFDL、フォワーディングコントロールラインFCL、及び2本のフォワーディングセクションラインFSLを含む。ここで、nはマット内のコンピューティングセルのカラム数であり、mはセクションの数である。
トランジスタT113a、T113bのソース端は各々コンピューティングセルの第1カラム107aの書込みビットライン(Write BL)と読出しビットライン(Read BL)とに電気的に連結される。トランジスタT113a、T113bのドレーン端は第1データフォワーディングライン(FDL)113gに電気的に連結される。トランジスタT113c、T113dのソース端は各々コンピューティングセルの第2カラム107bの書込みビットライン(Write BL)と読出しビットライン(Read BL)に電気的に連結される。トランジスタT113c、T113dのドレーン端は第2データフォワーディングライン(FDL)113hに電気的に連結される。
トランジスタT113e、T113fのソース端は各々トランジスタT113a、T113bのゲート端に電気的に連結される。トランジスタT113e、T113fのドレーン端は全て同一のフォワーディングセクションラインFSLに連結される。トランジスタT113e、T113fのゲート端は各々、相異なるフォワーディングコントロールラインFCLに連結される。
フォワーディングコントロールラインFCL上の適切な信号によって、インタマットフォワーディングアレイ113はマットの間でデータをフォワーディングする。インタマットフォワーディングアレイ113のコントロールラインは、相互間にデータがフォワーディングされるマット105と連関されたサブアレイコントローラ114に電気的に連結される。
図9乃至図15は本発明の実施形態に係るDPUによって提供されるNORロジック基盤の動作を示す。図9乃至図15で、第1オペランド(operand)はローXに格納され、第2オペランドはローY又はローWに格納される。図9乃至図15内の矢印はコンピューティングセルの全体ローに対するNORロジック動作の入出力流れを示す。例えば、図9のローXはローXのコンピューティングセルに格納されたオペランドの全体ローを示す。ローX内に格納されたオペランド及びローY内に格納されたオペランドのNORロジック動作の結果は結果ローR内に格納される。一実施形態で、ローXとローYのオペランドは、例えば100個のカラム(例えば、x、x、…、x100及びy、y、…、y100)を含み、結果はローR(例えば、r、r、…、r100)内に格納される。即ち、x NOR y=rである。ここで、iはカラムインデックス(index)である。他の実施形態で、ローXはロー内のコンピューティングセルの選択されたグループのみを示す。
図10はプレフィックス コッゲ−ストーン アダー(prefix Kogge−Stone adder)に基づくNビット数値に対するフルアダー動作を例示的に示す。図10で、第1のNビットオペランドはローX内に格納され、第2のNビットオペランドはローY内に格納される。図10内に図示された例示的な加算動作で、中間項(intermediate term)(G、P、G、P、G、P、…、GlogN+1、PlogN+1)が計算される。図10の最上のブロックはローX及びYからの入力オペランドを利用してG及びPを決定する5個の分離された動作を示す。第1動作で、最上のブロックはローXの逆(即ち、〜X)を決定し、これはロー1に格納される。第2動作はローYの逆(即ち、〜Y)を決定し、これはロー2に格納される。第3動作は(ローX) NOR (ローY)’の動作を決定し、これはロー3に格納される。第4動作は‘G= (ロー1) NOR (ロー2)’を決定し、これはロー4に格納される。第5動作は‘P= (ロー3) NOR (ロー4)’を決定し、これはロー5に格納される。
図10の中間ブロックを参照すれば、最上ブロックからの中間結果G、Pが中間結果Gi+1、Pi+1を決定するために使用される。ここで、iはカラムインデックスである。即ち、図9の最上のブロックから決定された中間結果G、Pが中間結果G、Pを決定するために使用される。中間結果G、Pは中間結果G、Pを決定するために使用され、同一の過程によって中間結果GlogN+1、PlogN+1が決定される。図10の最下のブロックで、結果ローR1と結果ローR2は各々フルアダー(full adder)動作に対するキャリー(carry)結果と和(sum)結果を格納する。
図11は3T1C DRAMコンピューティングセルトポグラフィ201によって提供される例示的なセレクタ(selector)動作を示す。ロー1はローXの逆(即ち、〜X)の中間結果を格納する。ロー2はローYの逆(即ち、〜Y)の中間結果を格納する。ロー3はローSの逆(即ち、〜S)の中間結果を格納する。ロー4は‘(ロー1) NOR (ロー3)’の中間結果を格納する。ロー5は‘(ロー2) NOR (ローY)’の中間結果を格納する。ロー6は‘(ロー4)_NOR_(ロー5)’の中間結果を格納する。ローRはロー6の逆の結果(S? X:Y)を格納する。
図12は3T1C DRAMコンピューティングセルトポグラフィ201によって提供される他の例示的なセレクタ動作を示す。ロー1はローXの逆(即ち、〜X)の中間結果を格納する。ロー2はローSの逆(即ち、〜S)の中間結果を格納する。ロー3は‘(ロー1) NOR (ローS)’の中間結果を格納する。ロー4はローXの逆(〜X)の中間結果を格納する。ローRは‘(ロー3) NOR (ロー4)’の結果(S? X:〜X)を格納する。
図13は3T1C DRAMコンピューティングセルトポグラフィ201によって提供される例示的なMAX/MIN動作を示す。ロー1はローYの逆(即ち、〜Y)の中間結果を格納する。ロー2は(ローX)+(〜Y+1)の中間結果を格納する。ロー3は‘Cout>>n’の中間結果を格納する。ロー4は‘CoutX:Y’の中間結果を格納する。ローRは‘MAX(X:Y)’の結果を格納する。
図14は3T1CDRAMコンピューティングセルトポグラフィ201によって提供される例示的な1ビット乗算動作を示す。ロー1は‘(ローX) NOR (ローW)’の中間結果を格納する。ロー2は‘(ローX) NOR (ロー1)’の中間結果を格納する。ロー3は‘(ローW) NOR (ロー1)’の中間結果を格納する。結果ローRは‘(ロー2) NOR (ロー3)’の結果(即ち、‘(ローX) XNOR (ローW)’の結果)を格納する。
図15は3T1C DRAMコンピューティングセルトポグラフィ201によって提供される例示的な複数ビット乗算動作を示す。図15の上方のブロックで、ロー1はローWの逆(即ち、〜W)の中間結果を格納する。ロー2は2回だけレフトシフトされたローXの逆(即ち、〜X<<2)の中間結果を格納する。ここで、iはインデックスである。ロー3は‘(ロー1) NOR (ロー2)’の中間結果(PP= (〜W) NOR (〜X<<2))を格納する。図15の下方のブロックで、ロー1は‘(ローPP) SUM (ローPP)’、即ち、ΣPPの中間結果を格納する。ロー2は‘(ロー2) NOR (ローWsign)’の中間結果を格納する。ローRは‘X*W’の結果を格納する。
図16は本発明の実施形態に係る確率論的データアレイ715を含むDPU700を例示的に示すブロック図である。図1に図示されたDPU100の構成要素と同一の参照インジケータ(indicator)を有するDPU700の多様な構成要素はDPU100のそれと類似し、このような類似な構成要素の記述はここでは省略されている。DPU700のサブアレイ102は、(実際の)データセルアレイ106、コンピューティングセルアレイ107、及びイントラマットシフトアレイ108と共に、確率論的データアレイ715とコンバータ−ツー−確率論的(converter−to−stochastic)アレイ716とを含む。
確率論的データアレイ715は各々少なくとも1つのカラムと少なくとも1つのロー内に配置された1つ以上の確率論的コンピューティングセルを含む。一実施形態で、確率論的データアレイ715は2Kカラム及び16ローを含む。確率論的データアレイ715内のカラムの数はデータセルアレイ106内のカラムの数及びコンピューティングセルアレイ107内のカラムの数と各々、同一である。他の実施形態で、確率論的データアレイ715は2Kカラムより少ないか、或いは多いカラム及び/又は16ローより少ないか、或いは多いローを含む。確率論的データアレイ715内で、‘1’が存在する確率が使用され、2ビットはnビット値を示すために使用される。コンバータ−ツー−確率論的アレイ716内の乱数発生器(random_number_generator)が実数(real number)を確率論的な数に変換するために使用される。ポップカウント動作は確率論的な数を実数に逆変換するために使用される。
確率論的なコンピューティングアプローチ(approach)を使用して、加算は多重化(multiplexing)動作に変換され、乗算はANDロジック動作に変換される。例えば、図17は多重化動作として確率論的加算動作を提供する回路を図示し、図18はANDロジック動作として確率論的乗算動作を提供する回路を図示する。確率論的コンピューティングに対する従来の技術は巨大なメモリ容量を要求する。しかし、本明細書に記述された発明は高度に効率的な確率論的コンピューティングを提供するために使用される。これはDRAM基盤のDPUがAND動作及びマルチプレクス(MUX)動作を大規模且つ並列に遂行できるからである。本明細書に記述されたDPUを使用する確率論的コンピューティングは、またディープラーニングを典型的な応用として含む複雑な動作の加速を可能にする。
図19は本発明の実施形態に係るDPUを含むシステム構造900を示す。システム構造900はハードウェアレイヤ910、ライブラリ及びドライバレイヤ920、フレームワークレイヤ930、及びアプリケーションレイヤ940を含む。
ハードウェアレイヤ910は本明細書に記述されたDPUのような組み込み(embedded)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のDPU(100)及び/又は図16のDPU(700)と類似に構成される。他の実施形態で、DPUの特定コンピューティングセルアレイは図2の3T1Cコンピューティングセルトポグラフィ201又は図3の1T1Cコンピューティングセルトポグラフィ202を含むように構成される。
システム構造900のライブラリ及びドライバレイヤ920はDPUライブラリ921、DPUドライバ922、及びDPUコンパイラ923を含む。DPUライブラリ921は、アプリケーションレイヤ940で動作できる多様なアプリケーションに対するハードウェアレイヤ910内のDPU内サブアレイ各々に対する、最適のマッピング機能、リソース割当機能、及びスケジューリング機能を提供するように構成される。
一実施形態で、DPUライブラリ921は移動(move)、加算、乗算等の動作を含むフレームワークレイヤ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は、タスク(task)(例えば、バッチ(batch、一括処理)、出力チャンネル、ピクセル、入力チャンネル、コンヴォリューションカーネル)内の全ての個別又は複数の並列性(parallelism)を、チップ、バンク、サブアレイ及び/又はマットレベルにおける対応するDPU並列性にマッピングして、リソース割当を最適化するためのAPI類似機能を含む。追加的に、DPUライブラリ921は、性能(即ち、データ移動フロー(速度))と電力消費との間のトレードオフ(trade off)を図る、初期化及び/又はランタイム(runtime)の時に最適のDPU構成を提供するAPI類似機能を含む。
DPUライブラリ921によって提供される他のAPI類似機能はデザインノブ(knob)型機能を含む。例えば、デザインノブ型機能はバンク当たり活性化されたサブアレイの数、活性化されたサブアレイ当たり入力機能マップの数、機能マップのパーティショニング(partitioning)、及び/又はコンヴォリューションカーネルの再使用スキームの設定を含む。続いて、他のAPI類似機能は各サブアレイに対して特定タスク(例えば、コンヴォリューションコンピューティング、チャネル圧縮(sum up)、及び/又はデータディスパッチング(dispatching))を割当することによって、追加的なリソース割当最適化を提供する。
仮にオペランドが整数と確率論的数字との間で変換されれば、DPUライブラリ921は精度制限を満足させながらも、オーバヘッド(overhead)を最小化する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タイプのアドレスのシークェンス(sequence)の形態の命令を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)ベクトル、リード(read)オン(on)動作命令)である。
フレームワークレイヤ930はユーザが使いやすい(user−friendly)インタフェイスをライブラリ及びドライバレイヤ920とハードウェアレイヤ910とに提供するように構成される。一実施形態で、フレームワークレイヤ930は、アプリケーションレイヤ940における広範囲なアプリケーションと互換可能なユーザが使いやすいインタフェイスを提供し、DPUハードウェアレイヤ910をユーザに対して透明に(transparent)する。
他の実施形態で、フレームワークレイヤ930は、定量化(quantitation)機能を、例えばTorch7タイプアプリケーション、及びTensorFlowタイプアプリケーションのような既存の、従来の方法に追加するフレームワーク拡張を含む。但し、本発明はこれに限定されない。
一実施形態で、フレームワークレイヤ930は、トレイニング(training)アルゴリズムに定量化機能を追加することを含む。他の実施形態で、フレームワークレイヤ930は、既存の除算、乗算、平方根(square root)のバッチ(batch)正規化(normalization)方法に対して、除算、乗算、平方根のシフト近似方法による置換(override)を提供する。
他の実施形態で、フレームワークレイヤ930はユーザが計算のために使用されるビットの数を設定する拡張を提供する。他の実施形態で、フレームワークレイヤ930はDPUライブラリ及びドライバレイヤ920からフレームワークレイヤ930に多重DPU APIをラップ(wrap、一括処理)する能力を提供する。従って、ユーザはハードウェアレイヤにおいて多重GPUの使用と同様に、多重DPUを使用できる。フレームワークレイヤ930の他の機能は、ハードウェアレイヤ910においてDPU又はGPUへのユーザによる機能割当を可能にする。
アプリケーションレイヤ940は広範囲なアプリケーション(例えば、イメージタグ(tag)プロセシング、セルフ・ドライビング(自動運転)/パイロティング(piloting、自動ナビ)車両、アルファ碁型のディープマインドアプリケーション、及び/又は音声研究(speech research)等)を含むが、本発明はこれに限定されない。
当業者ならば容易に認識できるように、本明細書に記述された革新的な概念は広範囲なアプリケーションに亘って変形され、変更され得る。従って、請求された本発明の思想の範囲は上述された任意の例示的な教示に限定されず、代わりに請求の範囲によって定義される。
100、700 DPU
101、101a、101b、101c〜101m バンク
102、102a、102b、102c〜102r サブアレイ
103 バッファ
104 システムバス
105、105a〜105p マット
106 データセルアレイ
107 コンピューティングセルアレイ
107a〜107d コンピューティングセルのカラム
108 イントラマット(マット内)シフトアレイ
110 データセルアレイデコーダ、デコーダ
111 コンピューティングアレイデコーダ、デコーダ
112 インタマット(マット間)シフトアレイ
112e、112f データシフトライン
113 インタマットフォワーディングアレイ
113g 第1データフォワーディングライン(FDL)
113h 第2データフォワーディングライン(FDL)
114 サブアレイコントローラ、コントローラ
715 確率論的データアレイ
716 コンバータ−ツー−確率論的アレイ
900 システム構造
910 ハードウェアレイヤ
911 PCIe
912 DIMM
920 ライブラリ及びドライバレイヤ
921 DPUライブラリ
922 DPUドライバ
923 DPUコンパイラ
930 フレームワークレイヤ
940 アプリケーションレイヤ
BL ビットライン
DPU DRAM(基盤)プロセッシングユニット
DIMM Dual−In−line Memory Module、デュアルインライン メモリモデュール
FCL フォワーディングコントロールライン
FDL フォワーディングデータライン(2本)
FSL フォワーディングセクションライン(2本) GPU Graphics Processing Unit、グラフィクスプロセッシングユニット
ISLcL インタマット(マット内)シフトコントロールライン
MUX 多重化器、マルチプレクサ
Read_BL 読出しビットライン
SA センスアンプ
SL シフトライン
SLcL シフトレフトコントロールライン
SRcL シフトライトコントロールライン
SML シフトマスクライン
TPU Tensor Processing Unit、テンソルプロセッシングユニット
〜T トランジスタ
112a〜T112d トランジスタ
113a〜T113f トランジスタ
Write_BL 書込みビットライン

Claims (17)

  1. 命令を受信するインタフェイスと、
    前記受信された命令に対応する少なくとも1つのDPU(DRAM(dynamic random access memory)(−based)_Processing_Unit、DRAM(基盤)プロセシングユニット)演算を決定するライブラリと、
    前記受信された命令に対応する前記決定された少なくとも1つのDPU演算に対する少なくとも1つのDPU命令を形成するコンパイラと、
    前記少なくとも1つのDPU命令を少なくとも1つのDPUに伝送するドライバと、を含み、
    前記DPUは、少なくとも1つの列を含むアレイに配列された複数のDRAM基盤コンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを含み、
    前記少なくとも1つの列は、DRAM基盤コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される、ことを特徴とするシステム。
  2. 前記少なくとも1つの列のDRAM基盤コンピューティングセルの各々は、3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含み、
    前記少なくとも1つの列の前記DRAM基盤コンピューティングセルは、NOR論理機能を提供する、ことを特徴とする請求項1に記載のシステム。
  3. 前記DPUは、少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルをさらに含み、
    前記少なくとも1つの列は、DRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤確率論的コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される、ことを特徴とする請求項2に記載のシステム。
  4. 前記少なくとも1つの列の前記DRAM基盤確率論的コンピューティングセルの各々は、3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含む、ことを特徴とする請求項3に記載のシステム。
  5. 前記DPUは、少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルをさらに含み、
    前記少なくとも1つの列は、DRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤確率論的コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される、ことを特徴とする請求項1に記載のシステム。
  6. 前記ライブラリは、前記受信された命令に応答して全体コンヴォリューション階層のマッピングをさらに決定する、ことを特徴とする請求項1に記載のシステム。
  7. 前記ライブラリは、前記受信された命令に対応する前記少なくとも1つのDPU演算を遂行するように複数のDPUをマッピングする前記少なくとも1つのDPU演算内での多重並列化をさらに決定する、ことを特徴とする請求項1に記載のシステム。
  8. 前記ドライバは、前記受信された命令に基づいて前記DPUの内外へのデータ移動をさらに制御する、ことを特徴とする請求項1に記載のシステム。
  9. 少なくとも1つのDPU(DRAM(−based)_Processing_Unit、DRAM(基盤)プロセシングユニット)と、
    命令を受信するインタフェイスと、
    前記受信された命令に対応する少なくとも1つのDPU演算を決定するライブラリと、
    前記受信された命令に対応する少なくとも1つのDPU命令を前記少なくとも1つのDPUに伝送するドライバと、を含み、
    前記DPUの各々は、
    少なくとも1つの列を含むアレイ内に配列された複数のDRAM基盤コンピューティングセルを含む少なくとも1つのコンピューティングセルアレイを含み、
    前記少なくとも1つの列は、DRAM基盤コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成され、
    前記DPUの各々は更に、少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルを含み、
    前記少なくとも1つの列は、DRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤確率論的コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される、ことを特徴とするシステム。
  10. 前記少なくとも1つの列のDRAM基盤コンピューティングセルの各々は、3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含み、
    前記少なくとも1つの列の前記DRAM基盤確率論的コンピューティングセルの各々は、3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含む、ことを特徴とする請求項9に記載のシステム。
  11. 前記少なくとも1つの列の前記DRAM基盤コンピューティングセルは、NOR論理機能を提供する、ことを特徴とする請求項10に記載のシステム。
  12. 前記少なくとも1つのDPU演算は、確率論的コンピューティング演算を含む、ことを特徴とする請求項4又は9に記載のシステム。
  13. 前記少なくとも1つのDPUの少なくとも1つの行で動作する前記受信された命令に対応する単一DPU命令を形成するコンパイラをさらに含む、ことを特徴とする請求項1又は9に記載のシステム。
  14. 少なくとも1つの列を含むアレイに配列された複数のDRAM基盤確率論的コンピューティングセルを含む少なくとも1つの確率論的コンピューティングセルアレイを含むDPU(DRAM(−based)_Porcessing_Unit、DRAM(基盤)プロセシングユニット)と、
    受信された命令に対応する少なくとも1つの確率論的DPU演算を決定するライブラリと、
    前記受信された命令に対応する少なくとも1つの確率論的DPU命令を前記複数のDRAM基盤確率論的コンピューティングセルを含む前記少なくとも1つのDPUに伝送するドライバと、を含み、
    前記少なくとも1つの列は、DRAM基盤確率論的コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤確率論的コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する確率論的論理機能を提供し、前記確率論的論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成される、ことを特徴とするシステム。
  15. 前記ドライバは、前記受信された命令に基づいて前記複数のDRAM基盤確率論的コンピューティングセルを含む前記DPUの内外へのデータ移動をさらに制御する、ことを特徴とする請求項14に記載のシステム。
  16. 少なくとも1つの列を含むアレイに配列された複数のDRAM基盤コンピューティングセルを含む少なくとも1つのコンピューティングセルアレイをさらに含み、
    前記少なくとも1つの列は、DRAM基盤コンピューティングセルの少なくとも3つの行を含み、
    前記DRAM基盤コンピューティングセルは、前記少なくとも3つの行の中で第1行及び第2行で動作する論理機能を提供し、前記論理機能の結果を前記少なくとも3つの行の中で第3行に格納するように構成され、
    前記ライブラリは、第2受信された命令に対応する前記少なくとも1つのコンピューティングセルアレイに対する少なくとも1つのDPU演算をさらに決定し、
    前記ドライバは、前記複数のDRAM基盤コンピューティングセルを含む前記少なくとも1つのコンピューティングセルアレイに前記第2受信された命令に対応する少なくとも1つのDPU命令を伝送する、ことを特徴とするシステム。
  17. 前記少なくとも1つの列の前記DRAM基盤確率論的コンピューティングセルの各々は、3つのトランジスタと1つのキャパシタとからなる(3T1C)DRAMメモリセル、又は、1つのトランジスタと1つのキャパシタとからなる(1T1C)DRAMメモリセルを含む、ことを特徴とする請求項14又は16に記載のシステム。
JP2017204581A 2016-10-27 2017-10-23 Dram基盤の確率論的コンピューティングシステム Active JP6920169B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662413973P 2016-10-27 2016-10-27
US62/413,973 2016-10-27
US15/426,015 US10180808B2 (en) 2016-10-27 2017-02-06 Software stack and programming for DPU operations
US15/426,015 2017-02-06

Publications (3)

Publication Number Publication Date
JP2018073413A true JP2018073413A (ja) 2018-05-10
JP2018073413A5 JP2018073413A5 (ja) 2020-12-03
JP6920169B2 JP6920169B2 (ja) 2021-08-18

Family

ID=62021467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017204581A Active JP6920169B2 (ja) 2016-10-27 2017-10-23 Dram基盤の確率論的コンピューティングシステム

Country Status (5)

Country Link
US (1) US10180808B2 (ja)
JP (1) JP6920169B2 (ja)
KR (1) KR102268179B1 (ja)
CN (1) CN108010551B (ja)
TW (1) TWI718336B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10998040B2 (en) 2016-12-06 2021-05-04 Gsi Technology, Inc. Computational memory cell and processing array device using the memory cells for XOR and XNOR computations
US10860320B1 (en) 2016-12-06 2020-12-08 Gsi Technology, Inc. Orthogonal data transposition system and method during data transfers to/from a processing array
KR20200057475A (ko) 2018-11-16 2020-05-26 삼성전자주식회사 연산 회로를 포함하는 메모리 장치 및 그것을 포함하는 뉴럴 네트워크 시스템
US11157692B2 (en) * 2019-03-29 2021-10-26 Western Digital Technologies, Inc. Neural networks using data processing units
US11074008B2 (en) * 2019-03-29 2021-07-27 Intel Corporation Technologies for providing stochastic key-value storage
US10949214B2 (en) * 2019-03-29 2021-03-16 Intel Corporation Technologies for efficient exit from hyper dimensional space in the presence of errors
CN110275498A (zh) * 2019-06-28 2019-09-24 泉州信息工程学院 一种基于互联网与深度学习的智能制造方法和系统及设备
CN112684977B (zh) * 2019-10-18 2024-05-28 旺宏电子股份有限公司 存储器装置及其存储器内计算方法
US20220058471A1 (en) * 2020-08-19 2022-02-24 Micron Technology, Inc. Neuron using posits
CN114201421B (zh) * 2022-02-17 2022-05-10 苏州浪潮智能科技有限公司 一种数据流处理方法、存储控制节点及可读存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0689712A4 (en) * 1993-03-17 1997-05-28 Zycad Corp CONFIGURABLE FIELDS WITH DIRECT ACCESS MEMORY ARRANGEMENT
US5847577A (en) * 1995-02-24 1998-12-08 Xilinx, Inc. DRAM memory cell for programmable logic devices
JPH11338767A (ja) * 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
US6745219B1 (en) 2000-06-05 2004-06-01 Boris Zelkin Arithmetic unit using stochastic data processing
US9552047B2 (en) * 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US6507530B1 (en) * 2001-09-28 2003-01-14 Intel Corporation Weighted throttling mechanism with rank based throttling for a memory system
US8127075B2 (en) 2007-07-20 2012-02-28 Seagate Technology Llc Non-linear stochastic processing storage device
WO2009111559A2 (en) 2008-03-04 2009-09-11 Massachusetts Institute Of Technology Combinational stochastic logic
US8341362B2 (en) * 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US8103598B2 (en) 2008-06-20 2012-01-24 Microsoft Corporation Compiler for probabilistic programs
WO2011103587A2 (en) 2010-02-22 2011-08-25 Benjamin Vigoda Superscalar control for a probability computer
US8645286B2 (en) 2010-02-23 2014-02-04 Prior Knowledge, Inc. Configurable circuitry for solving stochastic problems
CN103907157B (zh) * 2011-10-28 2017-10-17 慧与发展有限责任合伙企业 进行行移位的可移位存储器
US9251467B2 (en) 2013-03-03 2016-02-02 Microsoft Technology Licensing, Llc Probabilistic parsing
KR102168652B1 (ko) * 2013-12-16 2020-10-23 삼성전자주식회사 감지 증폭기, 그것을 포함하는 반도체 메모리 장치 및 그것의 읽기 방법
US9455020B2 (en) * 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9954533B2 (en) * 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
US9697877B2 (en) * 2015-02-05 2017-07-04 The Board Of Trustees Of The University Of Illinois Compute memory
US9922696B1 (en) * 2016-10-28 2018-03-20 Samsung Electronics Co., Ltd. Circuits and micro-architecture for a DRAM-based processing unit

Also Published As

Publication number Publication date
TWI718336B (zh) 2021-02-11
US10180808B2 (en) 2019-01-15
TW201816619A (zh) 2018-05-01
KR20180046346A (ko) 2018-05-08
CN108010551B (zh) 2023-05-02
CN108010551A (zh) 2018-05-08
JP6920169B2 (ja) 2021-08-18
KR102268179B1 (ko) 2021-06-23
US20180121130A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
JP6799520B2 (ja) Dram基盤プロセシングユニット
JP6920169B2 (ja) Dram基盤の確率論的コンピューティングシステム
KR102182217B1 (ko) 디램 기반 프로세싱 유닛
Angizi et al. Redram: A reconfigurable processing-in-dram platform for accelerating bulk bit-wise operations
Talati et al. mmpu—a real processing-in-memory architecture to combat the von neumann bottleneck
US20030222879A1 (en) Multiplier-based processor-in-memory architectures for image and graphics processing
US7073039B2 (en) Providing a register file memory with local addressing in a SIMD parallel processor
US7673118B2 (en) System and method for vector-parallel multiprocessor communication
CN111656339B (zh) 存储器装置及其控制方法
CN111630487B (zh) 用于神经网络处理的共享存储器的集中式-分布式混合组织
US6754802B1 (en) Single instruction multiple data massively parallel processor systems on a chip and system using same
US6754801B1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
US20240094988A1 (en) Method and apparatus with multi-bit accumulation
Margala et al. Highly efficient digital CMOS accelerator for image and graphics processing
Bottleneck mMPU—A Real Processing-in-Memory Architecture to Combat the von
Pechanek et al. An introduction to an array memory processor for application specific acceleration
Jiang et al. Dynamic Multi-bit Parallel Computing Method Based on Reconfigurable Structure
Swarztrauber The Communication Machine
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: 20201022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201022

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210609

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210726

R150 Certificate of patent or registration of utility model

Ref document number: 6920169

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150