KR20180046846A - 디램 기반 프로세싱 유닛 - Google Patents

디램 기반 프로세싱 유닛 Download PDF

Info

Publication number
KR20180046846A
KR20180046846A KR1020170059473A KR20170059473A KR20180046846A KR 20180046846 A KR20180046846 A KR 20180046846A KR 1020170059473 A KR1020170059473 A KR 1020170059473A KR 20170059473 A KR20170059473 A KR 20170059473A KR 20180046846 A KR20180046846 A KR 20180046846A
Authority
KR
South Korea
Prior art keywords
dram
based computing
dpu
rows
row
Prior art date
Application number
KR1020170059473A
Other languages
English (en)
Other versions
KR102182217B1 (ko
Inventor
슈앙첸 리
디민 니우
크리슈나 말라디
홍종 정
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180046846A publication Critical patent/KR20180046846A/ko
Application granted granted Critical
Publication of KR102182217B1 publication Critical patent/KR102182217B1/ko

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(Dynamic Random Access Memory Processing Unit)를 포함할 수 있다. 적어도 하나의 컴퓨팅 셀 어레이는 적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함할 수 있다. 적어도 하나의 컬럼은 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함하고, 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하고 적어도 세 개의 로우의 제 3 로우 내에 로직 기능의 결과를 저장하도록 구성될 수 있다.

Description

디램 기반 프로세싱 유닛{A DYNAMIC RANDOM ACCESS MEMORY PROCESSING UNIT}
본 발명은 메모리 시스템에 관한 것으로, 좀 더 상세하게는 디램 기반 프로세싱 유닛에 관한 것이다.
일반적으로, GPU(Graphics Processing Unit)들과 TPU(Tensor Processing Unit)들이 딥 러닝(deep learning) 프로세싱을 위해 사용된다. 딥 러닝 프로세싱은 GPU들 또는 TPU들에 의해 효율적으로 처리될 수 없는 고도로 병렬화된 프로세싱을 포함한다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명은 디램 기반 프로세싱 유닛을 제공할 수 있다.
본 발명의 실시 예는 적어도 하나의 컴퓨팅 셀 어레이를 포함하는 DPU(Dynamic Random Access Memory Processing Unit)를 포함할 수 있다. 적어도 하나의 컴퓨팅 셀 어레이는 적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함할 수 있다. 적어도 하나의 컬럼은 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함하고, 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하고 적어도 세 개의 로우의 제 3 로우 내에 로직 기능의 결과를 저장하도록 구성될 수 있다.
본 발명의 다른 실시 예에 따른 DPU는 적어도 하나의 컴퓨팅 셀 어레이를 포함할 수 있다. 적어도 하나의 컴퓨팅 셀 어레이는 적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함할 수 있다. 적어도 하나의 컬럼은 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함할 수 있다. 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하고 적어도 세 개의 로우의 제 3 로우 내에 로직 기능의 결과를 저장하도록 구성될 수 있다. 적어도 하나의 데이터 셀 어레이는 적어도 하나의 컬럼 내에 배치된 적어도 하나의 DRAM 기반의 메모리 셀을 포함할 수 있다.
본 발명의 다른 실시 예에 따른 DPU는 적어도 하나의 데이터 셀 어레이, 적어도 하나의 컴퓨팅 셀 어레이, 센스 앰프, 그리고 디코더를 포함할 수 있다. 적어도 하나의 데이터 셀 어레이는 적어도 하나의 컬럼 내에 배치된 적어도 하나의 DRAM 기반의 메모리 셀을 포함할 수 있다. 적어도 하나의 컬럼은 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함하고, 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하고 적어도 세 개의 로우의 제 3 로우 내에 로직 기능의 결과를 저장하도록 구성될 수 있다. 적어도 하나의 컴퓨팅 셀 어레이는 적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함할 수 있다. 센스 앰프는 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들의 읽기 비트 라인에 전기적으로 연결된 입력(input)을 포함하고, 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들의 쓰기 비트 라인에 전기적으로 연결된 출력(output)을 포함할 수 있다. 디코더는 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들과 전기적으로 연결될 수 있다.
본 발명은 다양한 동작들에 대하여 프로그램 가능하고 재구성 가능한DPU(DRAM(Dynamic Random Access Memory) based Processing Unit)를 제공할 수 있다. 본 발명의 실시 예에 따르면, 고 성능, 에너지 효율적이고, 저가의 시스템을 제공할 수 있다.
이하의 설명에서, 본 명세서의 기술 구성의 양상들이 도면들에 도시된 예시적인 실시 예들을 참조하여 설명될 것이다.
도 1은 본 발명의 실시 예에 따른 DPU(DRAM(Dynamic Random Access Memory) based Processing Unit)를 예시적으로 보여주는 블록도이다.
도 2a는 컴퓨팅 셀 어레이(cell array) 내의 컴퓨팅 셀에 대해 사용될 수 있는 세 개의 트랜지스터, 하나의 캐패시터의 DRAM 컴퓨팅-셀(computing-cell) 토포그래피(topography)의 예시적인 실시 예를 보여준다.
도 2b는 컴퓨팅 셀 어레이 내의 컴퓨팅 셀에 대해 사용될 수 있는 하나의 트랜지스터, 하나의 캐패시터의 DRAM 컴퓨팅-셀(computing-cell) 토포그래피(topography)의 다른 예시적인 실시 예를 보여준다.
도 3은 본 발명의 실시 예에 따른 인트라-매트(intra-mat) 쉬프트(shift) 어레이를 예시적으로 보여준다.
도 4a는 본 발명의 실시 예에 따른 인터-매트(inter-mat) 쉬프트 어레이를 예시적으로 보여준다.
도 4b는 본 발명의 실시 예에 따른 왼쪽의 인터-매트 쉬프트에 대한 인접한 컴퓨팅 셀 컬럼들에서 동일하게 배치된 두 개의 컴퓨팅 셀 사이의 인터-매트 쉬프트 인터커넥션(interconnection) 구성을 개념적으로 보여준다.
도 4c는 본 발명의 실시 예에 따른 왼쪽의 인터-매트 쉬프트에 대한 인접한컴퓨팅 셀 컬럼들에서 동일하지 않게 배치된 두 개의 컴퓨팅 셀 사이의 인터-매트 쉬프트 인터커넥션(interconnection) 구성을 개념적으로 보여준다.
도 5는 본 발명의 실시 예에 따른 인터-매트 포워딩(forwading) 어레이를 보여준다.
도 6a 내지 도 6g는 본 발명의 실시 예에 따른 DPU에 의해 제공될 수 있는 노어(NOR) 로직 기반의 동작들을 보여준다.
도 7은 본 발명의 실시 예에 따른 확률적(stochastic) 데이터 영역을 포함하는 DPU를 예시적으로 보여주는 블록도이다.
도 8a 및 도 8b는 각각 앤드(AND) 로직 동작으로 변환될 수 있는 곱셈(multiplication) 동작과 다중화(multiplexing) 동작으로 변환될 수 있는 덧셈(addition) 동작에 대한 확률적(stochastic) 컴퓨팅 동작들을 보여준다.
도 9는 본 발명의 실시 예에 따른 DPU들을 포함하는 시스템 구조를 보여준다.
이하의 본문에서, 다양한 상세한 설명들은 본문의 이해를 제공하기 위하여 제시된다. 그러나 이러한 상세한 설명 없이 기재된 본 발명의 사상이 당업자에 의해 용이하게 구현될 수 있음은 잘 이해될 것이다. 다른 예에서, 잘 알려진 방법들, 절차들, 구성들, 및 회로들은 본문을 모호하게 하지 않기 위하여 설명되지 않는다.
상세한 설명에서 "하나의 실시 예" 또는 "일 실시 예"를 참조하는 것은 실시 예와 연관된 특정한 특징, 구조, 또는 특성이 본문의 적어도 하나의 실시 예에 포함될 수 있음을 의미한다. 즉, 본문의 다양한 위치에서 사용되는 "하나의 실시 예에서" 또는 "일 실시 예에서" 또는 "하나의 실시 예에 따라" 또는 유사한 의미를 갖는 다른 표현들은 동일한 실시 예를 참조하는 것을 요구하지 않는다. 더욱이, 특정한 특징들, 구조들, 또는 특성들은 적절한 방식으로 하나 또는 그 이상의 실시 예들에서 조합될 수 있다. 이와 관련하여, 본 명세서에서 사용된 것과 같이, “예시적인”이라는 단어는 “예(example, instance, illustration)로서 제공되는” 이라는 것을 의미한다. 본 명세서에서 “예시적인”과 같이 기술된 실시 예는 다른 실시 예들에 비하여 반드시 바람직하거나 유리한 것으로 생각되어서는 안 된다. 또한, 본문에서 언급된 내용에 따라, 단수 용어는 복수의 형태를 포함하고, 복수 용어는 단수 형태를 포함할 수 있다. 구성 도면들을 포함하는 다양한 도면들은 오직 설명의 목적을 위하여 본문에서 언급되고, 도시되며, 정량화되지 않는다. 유사하게, 다양한 파형들 및 타이밍도들은 단순히 설명의 목적을 위하여 도시된다. 예를 들어, 일부 구성 요소들은 명확성을 위해 다른 구성 요소들과 비교하여 과장되게 도시될 수 있다. 추가적으로, 적합한 것으로 고려되는 경우, 참조 번호들은 대응하는 구성 요소들 및/또는 유사한 구성 요소들을 나타내기 위해 도면들에서 반복되었다.
본 명세서에서 사용된 용어들은 단지 특정한 실시 예들을 설명하기 위한 것이고, 본 발명을 제한하려는 것으로 의도되지 않았다. 본 명세서에서 사용된 바와 같이, 문맥상 명백하게 다르게 뜻하지 않는 한, 단수 형태 “하나”는 복수의 형태도 포함하는 것으로 의도된다. “구성되는”, “구성되고 있는”, “포함하는”, 그리고 “포함하고 있는” 용어들이 본 명세서에서 사용될 때, 이러한 용어들은 정해진 특징들, 정수들, 단계들, 동작들, 요소들, 그리고/또는 성분들이 존재를 명시하나, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 성분들, 그리고/또는 그것들의 그룹들의 추가 또는 존재를 불가능하게 하지 않는다. "제1", "제2"와 같은 용어들은 앞서 설명된 구성에 대한 라벨로써 사용되고, 별도의 정의가 없는 한 특정한 순서(예를 들어, 공간적, 시간적, 논리적, 등)를 의도하는 것은 아니다. 더욱이, 동일한 참조 번호들은 동일하거나 또는 유사한 기능을 갖는 부분들, 구성들, 블록들, 회로들, 유닛들, 또는 모듈들을 지칭하기 위하여 둘 이상의 도면들에 걸쳐 사용될 수 있다. 그러나 이러한 사용은 단순히 설명의 간결성 및 편의를 위한 것이며, 이러한 구성들 및 유닛들의 구성 또는 구조적인 세부 사항들이 모든 실시 예들 또는 공통적으로 참조되는 부분들/모듈들에서 동일한 것으로 의도되지 않으며, 단순히, 본 발명의 특정 실시 예들을 지칭하기 위한 하나의 수단이다.
다르게 정의되지 않는 한, 모든 용어들(기술 또는 과학 용어를 포함)은 본 발명의 장치와 방법이 속하는 분야에서 당업자들에게 통상적으로 이해되는 동일한 의미를 가질 것이다. 더불어, 사전적 의미로 정의된 용어들은 관련된 기술 그리고/또는 본 발명의 설명의 상황에 따라 해석되어야 하며, 그렇게 정의되지 않는 한 이상적으로 이해되거나 과도하게 형식적인 의미로 이해되어서는 안 된다.
본 명세서에 기술된 발명은 다양한 동작들에 대하여 프로그램 가능하고(programmable) 재구성 가능한(reconfigurable) DPU(DRAM(Dynamic Random Access Memory) based Processing Unit)를 제공한다. 예를 들어, 다양한 동작들은 더하기, 곱하기, 쉬프팅(shifting), 최대/최소(MIN/MAX), 그리고 비교(COMPARISON) 등을 포함하며, 본 발명은 이에 제한되지 않는다. 일 실시 예에서, DPU는 세 개의 트랜지스터, 하나의 캐패시터(3T1C) DRAM 프로세스와 구조에 기반한다. 다른 실시 예에서, 약간의 변화들과 함께, DPU는 하나의 트랜지스터, 하나의 캐패시터(1T1C) DRAM 프로세스와 구조에 기반한다. 따라서, DPU는 특정한 컴퓨팅 로직 회로(예를 들어, 애더(adder)와 같은)를 포함하지 않는다. 하지만, 고도의 병렬 동작들을 사용하는 메모리 셀들을 사용하는 계산들을 제공한다. 일 실시 예에서, DPU는 곱셈(multiplication) 동작이 앤드(AND) 로직 동작으로 변환될 수 있고 덧셈(addition) 동작이 다중화(multiplexing) 동작으로 변환될 수 있는 확률적(stochastic) 컴퓨팅 어레이를 포함할 수 있다.
또한, 본 명세서에 기술된 발명은 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 기반의 셀들은 두 개의 어레이들(데이터 셀 어레이와 컴퓨팅 셀 어레이)로 구분될 수 있다. 일 실시 예에서, 컴퓨팅 셀 어레이는 DRAM 기반의 메모리 셀들로 구현될 수 있다. 다른 실시 예에서, 컴퓨팅 셀 어레이는 로직 회로를 포함하는 DRAM 기반의 메모리 셀들로 구현될 수 있다. DPU 내부 구조는 또한 데이터-쉬프팅(data-shifting) 및 데이터-이동(data-movement) 회로들을 포함할 수 있다. 일부 실시 예들에서, 확률적 데이터 계산들을 위해 구성될 수 있는 제 3 DRAM 기반의 셀 어레이가 있을 수 있다.
도 1은 본 발명의 실시 예에 따른 DPU(DRAM(Dynamic Random Access Memory) based Processing Unit)(100)를 예시적으로 보여주는 블록도이다. DPU(100)는 하나 이상의 뱅크(101a~101m)를 포함할 수 있다. 도 1에서는, 하나 이상의 뱅크(101a~101m) 중 뱅크들(101a, 101b) 만이 도시되었다. 각 뱅크(101)는 하나 이상의 서브 어레이(102a~102n)를 포함할 수 있다. 도 1에서는, 하나 이상의 서브 어레이(102a~102n) 중 서브 어레이들(102a, 102b) 만이 도시되었다. 각 뱅크(101)는 또한 버퍼(103)를 포함할 수 있다. 버퍼(103)는 개별 서브 어레이들(102)과 연결될 수 있고, 시스템 버스(104)와 연결될 수 있다. 버퍼(103)는 뱅크(102) 내의 전체 로우(row)를 독출할 수 있고, 이후 해당 로우를 다시 동일 뱅크 또는 다른 뱅크에 기입할 수 있다. 버퍼(103)는 또한 해당 로우 데이터의 복사본을 서브 어레이(102) 내의 복수의 매트(105a~105n)로 브로드캐스트(broadcast)할 수 있다. 일 실시 예에서, 뱅크(101)와 시스템 버스(104)는 H-트리-연결된 뱅크들을 제공하도록 구성될 수 있다.
각 서브 어레이(102)는 하나 이상의 매트(또는 레인들)(105)를 포함할 수 있다. 도 1에서는, 하나 이상의 매트(105) 중 서브 어레이(102a)의 매트들(105a~105n)만이 도시되었다. 각 매트(105)는 데이터 셀 어레이(106), 컴퓨팅 셀 어레이(107), 그리고 인트라-매트(intra-mat) 쉬프트 어레이(108)를 포함할 수 있는 DPU(100)의 영역이다. 매트(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) 중 적어도 하나에 출력으로서 디코딩된 어드레스를 제공할 수 있다. 즉, 서브 어레이 컨트롤러(114)는 연관된 데이터 셀 어레이(106)에 대한 데이터 셀 어레이 디코더(110)에 의해 디코딩된 소스/목적지(destination) (src/dst) 주소들을 출력할 수 있다. 그리고, 컴퓨팅 셀 어레이(107)의 경우, 서브 어레이 컨트롤러(114)는 컴퓨팅 셀 어레이 디코더(111)에 의해 디코딩된 동작/계산(op/calc) 어드레스들을 출력할 수 있다. 또한, 서브 어레이 컨트롤러(114)는 둘 이상의 서브 어레이 컨트롤러(114)가 조직화된 방법으로 동작할 수 있게 하는 DRAM 버스로부터의 어드레스들로서 명령들을 수신할 수 있다. 서브 어레이 컨트롤러(114)는 또한 데이터 이동 회로들을 제어할 수 있다. 예를 들어, 서브 어레이 컨트롤러(114)는 인트라 매트 쉬프트 어레이(108), 인터-매트 쉬프트 어레이(112), 그리고 인터 매트 포워딩 어레이(113)를 제어할 수 있다.
각 데이터 셀 어레이(106)는 적어도 하나의 컬럼(column)과 적어도 하나의 로우(row) 내에 배치되는 하나 이상의 DRAM 셀들을 포함할 수 있다. 일 실시 예에서, 데이터 셀 어레이(106)는 종래의 DRAM 셀 어레이와 같이 구성될 수 있다. 일 실시 예에서, 데이터 셀 어레이(106)는 2K 컬럼들 및 16 로우들을 포함할 수 있다. 다른 실시 예에서, 데이터 셀 어레이(106)는 2K 컬럼들보다 적거나 많은 컬럼들을 포함할 수 있고, 및/또는 16 로우들보다 적거나 많은 로우들을 포함할 수 있다.
각 컴퓨팅 셀 어레이(107)는 적어도 하나의 컬럼과 적어도 하나의 로우 내에 배치되는 하나 이상의 컴퓨팅 셀들을 포함할 수 있다. 컴퓨팅 셀 어레이(107) 내의 컬럼들의 수는 데이터 셀 어레이(106) 내의 컬럼들의 수와 같다. 일 실시 예에서, 컴퓨팅 셀 어레이(107)는 2K 컬럼들 및 16 로우들을 포함할 수 있다. 다른 실시 예에서, 컴퓨팅 셀 어레이(107)는 2K 컬럼들보다 적거나 많은 컬럼들을 포함할 수 있고, 및/또는 16 로우들보다 적거나 많은 로우들을 포함할 수 있다.
도 2a는 컴퓨팅 셀 어레이(cell array)(107) 내의 컴퓨팅 셀에 대해 사용될 수 있는 세 개의 트랜지스터, 하나의 캐패시터(3T1C)의 DRAM 컴퓨팅-셀(computing-cell) 토포그래피(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 구성으로 배치된 세 개의 트랜지스터들(T1~T3)과 캐패시터(C)를 포함할 수 있다. 도 2a에 도시된 세 개의 컴퓨팅 셀들 및 센스 앰프(SA)의 예는 노어(NOR) 로직 동작(즉, 'X NOR Y' 로직 동작)을 제공하도록 구성된다. 해당 노어(NOR) 로직 동작의 결과는 로우 R에 저장된다. 비록 3T1C DRAM 컴퓨팅 셀들의 하나의 컬럼 만이 도 2a에 명시적으로 도시되었지만, 3T1C 컴퓨팅 셀들이 복수의 컬럼들(예를 들어, 2K 컬럼들) 내에 구성될 수 있는 등의 다른 실시 예들이 가능하다는 것이 이해될 수 있을 것이다. 또한, 세 개 이상의 로우들이 제공될 수 있는 다른 실시 예들이 가능하다는 것이 이해될 수 있을 것이다. 또한, 도 2a에 도시된 3T1C DRAM 컴퓨팅 셀 구성이 노어(NOR) 로직 동작을 제공하지만, 3T1C DRAM 컴퓨팅 셀 토포그래피(201)의 노어(NOR) 로직 동작이 다양한 기능적인 동작들을 제공하기 위해 사용될 수 있다는 것이 이해될 수 있을 것이다. 예를 들어, 기능적인 동작들은 배타 NOR(XNOR), 덧셈(ADD), 셀렉트(SET), MAX, SIGN, 다중화(MUX), CSA(Conditional Sum Addition) 로직, 곱셈, 팝카운트(popcount), 그리고 COMPARE 등을 포함할 수 있다. 다만, 본 발명은 이에 제한되지 않는다. 또한, 인트라-매트 쉬프트 어레이(108)와 인터-매트 쉬프트 어레이(112)는 쉬프팅 기능을 제공한다.
도 2b는 도 1의 컴퓨팅 셀 어레이(107) 내의 컴퓨팅 셀에 대해 사용될 수 있는 하나의 트랜지스터, 하나의 캐패시터(1T1C)의 DRAM 컴퓨팅-셀(computing-cell) 토포그래피(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~CNTL4)를 수신한다. 일 실시 예에서, ALU는 노어(NOR) 기능을 제공하도록 구성될 수 있다. 비록 도 2b의 비트 라인(BL)과 전기적으로 연결된 로직 회로가 노어(NOR) 로직 동작을 제공한다고 해도, 비트 라인(BL)과 전기적으로 연결된 로직 회로(즉, ALU)가 다른 기능 동작들(예를 들어, 배타 NOR(XNOR), 덧셈(ADD), 셀렉트(SET), MAX, SIGN, 다중화(MUX), CSA(Conditional Sum Addition) 로직, 곱셈, 팝카운트(popcount), 그리고 COMPARE 등)을 제공할 수 있다는 것을 이해할 수 있을 것이다. 다만, 본 발명은 이에 제한되지 않는다. 또한, 인트라-매트 쉬프트 어레이(108)와 인터-매트 쉬프트 어레이(112)는 쉬프팅 기능을 제공한다. 도 2b에서 하나의 1T1C 컴퓨팅 셀만이 도시되었고, 복수의 컬럼 및 로우의 1T1C 컴퓨팅 셀들이 제공될 수 있다는 것은 이해될 수 있을 것이다.
도 2a 및 도 2b에서 볼 수 있는 것과 같이, DPU의 컴퓨팅 셀들은 특정, 복잡한 컴퓨팅 로직들을 포함하지 않는다. 다만, 대신에, DPU의 컴퓨팅 셀들은 복수의, 다양한 타입의 계산들을 수행하는 기능(ability)을 제공하는 재-프로그램 가능한 성질(nature)을 갖는 상대적으로 단순한 토포그래피를 포함한다. 추가적으로, DPU의 토포그래피는, 더 많은 계산들을 좀 더 빠르고 좀 더 효율적으로 수행하기 위해 메모리 구조에 내재되는, 대량 병렬 처리들의 이점을 갖도록 배치될 수 있다.
도 3은 본 발명의 실시 예에 따른 인트라-매트(intra-mat) 쉬프트(shift) 어레이(108)를 예시적으로 보여준다. 인트라-매트 쉬프틸 어레이(108)의 기술(description)을 단순화하기 위해, 예컨대 도 3에 도시된 것과 같이, 네 개의 컬럼의 컴퓨팅 셀들(107) 넓이의 매트(105)를 고려하자. 인트라-매트 쉬프팅 어레이(108)는 어레이 내에 배치된 복수의 제 6 트랜지스터(T6)(도 3에서 단지 한 개의 트랜지스터만이 T6으로 표시됨), 2n 쉬프트 라인들(SLs)(n은 매트(105) 내의 컴퓨팅 셀들의 컬럼들이다), n+2 쉬프트 레프트(left) 컨트롤 라인들(SLcLs), 2 쉬프트 라이트(right) 컨트롤 라인들(SRcLs), 그리고 n 쉬프트 마스크 라인들(SMLs)을 포함한다. 인트라-매트 쉬프트 어레이(108)의 제 6 트랜지스터(T6)의 일부는 쓰기 비트 라인(Write BL)들과 2n 쉬프트 라인들(SLs) 사이에 전기적으로 연결되고, 인트라-매트 쉬프트 어레이(108)의 다른 제 6 트랜지스터(T6)들은 읽기 비트 라인(Read BL)들과 2n 쉬프트 라인들(SLs) 사이에 연결된다. 이러한 제 6 트랜지스터(T6)들의 게이트들은 n+2 쉬프트 레프트 컨트롤 라인들(SLcLs)과 2 쉬프트 라이트 컨트롤 라인들(SRcLs)과 전기적으로 연결된다. 인트라-매트 쉬프트 어레이(108)의 다른 제 6 트랜지스터(T6)들은 n 쉬프트 마스크 라인들(SMLs) 및 2n 쉬프트 라인들(SLs) 사이에 전기적으로 연결된다. 인트라-매트 쉬프트 어레이(108)의 컨트롤 라인들은 매트(105)와 관련된 서브 어레이 컨트롤러(114)와 전기적으로 연결된다.
컨트롤 라인들(SLcLs, SRcLs) 상의 적합한 신호들에 의해, 인트라-매트 쉬프트 어레이(108)는 매트(105) 내에서 데이터를 래프트(left) 쉬프트 또는 라이트(right) 쉬프트할 수 있다. 래프트 쉬프팅에 대해, 데이터는 사인(sign) 비트로 채워질 수 있고, 하나의 동작 마다 1 비트 또는 (n-1) 비트들만큼 쉬프트될 수 있다. n은 매트(105) 당 컬럼들의 수이다. 라이트 쉬프트에 대해, 명령들에 의한 제어에 따라 데이터는 0 또는 1로 채워질 수 있다. 또는, 데이터는 20, 21, …, 2k-1, 2k 매트 당 컬럼들의 수 까지 쉬프트될 수 있다. 2k 는 컬럼들의 수이다.
도 4a는 본 발명의 실시 예에 따른 인터-매트(inter-mat) 쉬프트 어레이(112)를 예시적으로 보여준다. 인터-매트 쉬프트 어레이(112)의 기술(descripition)을 단순화하기 위해, 예컨대 도 4a 내지 도 4c에 도시된 것과 같이, 매트(105)가 두 개 컬럼의 컴퓨팅 셀들(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)에서 동일하게 배치된 두 개의 컴퓨팅 셀 사이의 인터-매트 쉬프트 인터커넥션(interconnection) 구성을 개념적으로 보여준다. 도 4b의 인터커넥션 구성은 이용되는 인터커넥션 노드들에 의해 개념적으로 도시되었다. 이용되는 인터커넥션 노드는 강조되어 도시되었다. 예를 들어, 트랜지스터(T112c, T112d)는 활성화 되고, 이에 따라 도선 경로가 각각의 트랜지스터 사이에 만들어진다. 이에 따라, 왼편의 컴퓨팅 셀 컬럼(105a)과 오른편의 컴퓨팅 셀 컬럼(105b) 사이에서 데이터 쉬프트 라인들(112e, 112f)은 연결된다. 트랜지스터들(T112c, T112d)의 게이트 단들은 액티브(active) 인터-매트 쉬프트 컨트롤 라인(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)에서 동일하지 않게 배치된 두 개의 컴퓨팅 셀 사이의 인터-매트 쉬프트 인터커넥션(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에 도시된 것과 같이 두 개의 컬럼의 컴퓨팅 셀들(107) 넓이의 매트(105)의 구성을 고려하자. 즉, 각 매트(105)는 컴퓨팅 셀(107a)들의 제 1 컬럼과 컴퓨팅 셀(107b)들의 제 2 컬럼을 포함한다. 매트(105)와 함께, 인터-매트 포워딩 어레이(113)는 트랜지스터들(T113a, T113b), 트랜지스터들(T113c, T113d), 트랜지스터들(T113e, T113f), 2n 포워딩 데이터 라인들(FDL), 포워딩 컨트롤 라인들(FCL), 그리고 2m 포워딩 섹션 라인들(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 개의 컬럼들(예컨대, x1, x2, … , x100 및 y1, y2, … , y100)을 포함할 수 있고, 결과는 로우 R(예컨대, r1, r2, … , r100) 내에 저장될 수 있다. 즉, xi 노어(NOR) yi = ri 이다. 여기서, i는 컬럼 인덱스(index)이다. 다른 실시 예에서, 로우 X는 로우 내의 컴퓨팅 셀들의 선택된 그룹만을 나타낸다.
도 6b는 프리픽스(prefix) Kogge-Stone 애더(Adder, 덧셈기)를 기반으로 하는 N 비트 수에 대한 풀 애더 동작을 예시적으로 보여준다. 도 6b에서, 제 1 N 비트 피연산자는 로우 X 내에 저장되고, 제 2 N 비트 피연산자는 로우 Y 내에 저장된다. 도 6b 내에 도시된 예시적인 덧셈 동작에서, 중간자(intermediate term)들(G0, P0, G1, P1, G2, P2, … , GlogN+1, PlogN+1)이 계산된다. 도 6b의 가장 위의 블록은 로우 X 및 Y로부터의 입력 피연산자들을 이용하여 G0 및 P0를 결정하는 다섯 개의 분리된 동작들을 나타낸다. 제 1 동작에서, 가장 위의 블록은 로우 X의 역(즉, ~X)을 결정하고, 이는 로우 1에 저장된다. 제 2 동작은 로우 Y의 역(즉, ~Y)을 결정하고, 이는 로우 2에 저장된다. 제 3 동작은 '로우 X 노어(NOR) 로우 Y'의 동작을 결정하고, 이는 로우 3에 저장된다. 제 4 동작은 'G0 = 로우 1 노어(NOR) 로우 2'를 결정하고, 이는 로우 4에 저장된다. 제 5 동작은 'P0 = 로우 3 노어(NOR) 로우 4'를 결정하고, 이는 로우 5에 저장된다.
도 6b의 중간 블록을 참조하면, 가장 위 블록으로부터의 중간 결과들(G0, P0)이 중간 결과들(Gi+1, Pi+1)을 결정하기 위해 사용된다. 여기서, i는 컬럼 인덱스이다. 즉, 도 6a의 가장 위 블록으로부터 결정된 중간 결과들(G0, P0)이 중간 결과들(G1, P1)을 결정하기 위해 사용된다. 중간 결과들(G1, P1)은 중간 결과들(G2, P2)을 결정하기 위해 사용되고, 동일한 과정에 의해 중간 결과들(GlogN+1, PlogN+1)이 결정된다. 도 6b의 가장 아래 블록에서, 결과 로우 R1와 결과 로우 R2는 각각 풀 애더(full adder) 동작에 대한 캐리(carry) 결과와 총합(sum) 결과를 저장한다.
도 6c는 3T1C DRAM 컴퓨팅 셀 토포그래피(201)에 의해 제공될 수 있는 예시적인 셀렉터(selector) 동작을 보여준다. 로우 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는 'CoutX:Y'의 중간 결과를 저장한다. 로우 R은 'MAX(X:Y)'의 결과를 저장한다.
도 6f는 3T1C DRAM 컴퓨팅 셀 토포그래피(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는 2i 번 레프트 쉬프트된 로우 X의 역(즉, ~X<<2i)의 중간 결과들을 저장한다. 여기서, i는 인덱스이다. 로우 3은 '로우 1 노어(NOR) 로우 2'의 중간 결과(PPi = ~W 노어(NOR) ~X<<2i)를 저장한다. 도 6g의 아래쪽 블록에서, 로우 1은 '로우 PP0 SUM 로우 PPi (∑PPi)'의 중간 결과를 저장한다. 로우 2는 '로우 2 노어(NOR) 로우 Wsign'의 중간 결과를 저장한다. 로우 R은 'X*W'의 결과를 저장한다.
도 7은 본 발명의 실시 예에 따른 확률적(stochastic) 데이터 영역(715)을 포함하는 DPU(700)를 예시적으로 보여주는 블록도이다. 도 1에 도시된 DPU(100)의 구성요소들과 동일한 참조 표시자(indicator)를 갖는 DPU(700)의 다양한 구성 요소들은 유사하고, 이러한 유사한 구성요소들의 기술은 여기서 생략되었다. DPU(700)의 서브 어레이(102)는, (실제의) 데이터 셀 어레이(106), 컴퓨팅 셀 어레이(107), 그리고 인트라-매트 쉬프트 어레이(108)와 함께, 확률적 데이터 어레이(715)와 컨버터-투-확률(converter-to-stochastic) 어레이(716)를 포함한다.
확률적 데이터 어레이(715)는 각각 적어도 하나의 컬럼과 적어도 하나의 로우 내에 배치된 하나 이상의 확률적 컴퓨팅 셀들을 포함할 수 있다. 확률적 데이터 어레이(715) 내의 컬럼들의 수는 데이터 셀 어레이(106)와 컴퓨팅 셀 어레이(107) 내의 컬럼들의 수와 동일하다. 일 실시 예에서, 확률적 데이터 어레이(715)는 2K 컬럼들 및 16 로우들을 포함할 수 있다. 다른 실시 예에서, 확률적 데이터 어레이(715)는 2K 컬럼들보다 적거나 많은 컬럼들 및/또는 16 로우들보다 적거나 많은 로우들을 포함할 수 있다. 확률적 데이터 어레이(715) 내에서, '1'이 존재할 확률이 사용되고, 2n 비트는 n 비트 값을 나타내기 위해 사용된다. 컨버터-투-확률 어레이(716) 내의 임의 숫자 생성기는 실수(real number)를 확률적 수로 변환하기 위해 사용될 수 있다. 팝카운트 동작은 확률적 수를 다시 실수로 변환하기 위해 사용될 수 있다.
확률적 컴퓨팅 접근(approach)을 사용하여, 덧셈은 다중화(multiplexing) 동작으로 변환될 수 있고, 곱셈은 앤드(AND) 로직 동작으로 변환될 수 있다. 예를 들어, 도 8a는 다중화 동작으로서의 확률적 덧셈 동작을 제공하는 회로를 도시하고, 도 8b는 앤드(AND) 로직 동작으로서의 확률적 곱셈 동작을 제공하는 회로를 도시한다. 확률적 컴퓨팅에 대한 종래의 기술들은 거대한 메모리 용량을 요구한다. 하지만, 본 명세서에 기술된 발명은 고도로 효율적인 확률적 컴퓨팅을 제공하기 위해 사용된다. 이는 DRAM 기반의 DPU들이 많은 병렬 앤드(AND) 동작 및 먹스(MUX) 동작들을 수행할 수 있기 때문이다. 본 명세서에 기술된 DPU들을 사용하는 확률적 컴퓨팅은 또한 딥 러닝이 일반적인 어플리케이션인 복잡한 동작들을 가속화하도록 만들 수 있다.
도 9는 본 발명의 실시 예에 따른 DPU들을 포함하는 시스템 구조(900)를 보여준다. 시스템 구조(900)는 하드웨어 레이어(910), 라이브러리 및 드라이버 레이어(920), 프레임워크 레이어(930), 그리고 어플리케이션 레이어(940)를 포함할 수 있다.
하드웨어 레이어(910)는 본 명세서에 기술된 DPU들과 같은 내장된 DPU들을 포함하는 하드웨어 장치들 및/또는 구성요소들을 포함할 수 있다. 장치 및/또는 구성요소의 일 실시 예는 하나 이상의 내장된 DPU들을 포함할 수 있는 PCIe 장치(911)일 수 있다. 장치 및/또는 구성 요소의 다른 실시 예는 하나 이상의 내장된 DPU들을 포함할 수 있는 DIMM(Dual In-line Memory Module, 912)일 수 있다. 시스템 구조(900)의 하드웨어 레이어(910)가 PCIe 장치들 및/또는 DIMM들에 제한되지 않고, 하드웨어 레이어(910)는 DPU들을 포함할 수 있는 SOC(System On Chip) 장치들 또는 다른 메모리 타입 장치들을 포함할 수 있다는 것은 쉽게 이해될 수 있다. 하드웨어 레벨(910)에서 장치들 및/또는 구성요소들 내에 내장될 수 있는 DPU들은 도 1의 DPU(100) 및/또는 도 7의 DPU(700)와 유사하게 구성될 수 있다. 다른 실시 예에서, DPU의 특정 컴퓨팅 셀 어레이들은 도 2a의 3T1C 컴퓨팅 셀 토포그래피(201) 또는 도 2b의 1T1C 컴퓨팅 셀 토포그래피(202)를 포함하도록 구성될 수 있다.
시스템 구조(900)의 라이브러리 및 드라이버 레이어(920)는 DPU 라이브러리(921), DPU 드라이버(922), 그리고 DPU 컴파일러(923)를 포함할 수 있다. DPU 라이브러리(921)는, 어플리케이션 레이어(940)에서 동작할 수 있는 다양한 어플리케이션들에 대한 하드웨어 레이어(910) 내의 DPU 내 서브 어레이 각각에 대한, 최적의 매핑 기능, 리소스 할당 기능, 그리고 스케쥴링 기능을 제공하도록 구성될 수 있다.
일 실시 예에서, DPU 라이브러리(921)는 이동(move), 덧셈, 곱셈 등의 동작들을 포함할 수 있는 프레임워크 레이어(930)에 대한 하이-레벨(high-level) 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 내의 하나 및/또는 두 개의 로우들 상에서 운영되는 단일 명령들(예를 들어, 벡터 명령들, 및/또는 집합(gathered) 벡터, 리드(read)-온(on)-동작 명령들)일 수 있다.
프레임워크 레이어(930)는 유저-친화적인(user-friendly) 인터페이스를 라이브러리 및 드라이버 레이어(920)와 하드웨어 레이어(910)에 제공하도록 구성될 수 있다. 일 실시 예에서, 프레임워크 레이어(930)는 어플리케이션 레이어(940)에서 광범위한 어플리케이션들과 호환 가능한 유저-친화적인 인터페이스를 제공할 수 있고, DPU 하드웨어 레이어(910)를 유저에게 투명하게(transparent) 만들 수 있다. 다른 실시 예에서, 프레임워크 레이어(930)는 정량화(quantitation) 기능들을 예컨대 Torch7 타입 어플리케이션들, 그리고 TensorFlow 타입 어플리케이션들과 같은 기존의, 종래의 방법들에 추가하는 프레임워크 확장들을 포함할 수 있다. 다만, 본 발명은 이에 제한되지 않는다. 일 실시 예에서, 프레임워크 레이어(930)는 트레이닝(training) 알고리즘에 정량화 기능들을 추가하는 것을 포함할 수 있다. 다른 실시 예에서, 프레임워크 레이어(930)는 기존의 나누기, 곱하기, 제곱근(square root)의 배치(batch)-표준화(normalization) 방법들을 나누기, 곱하기, 제곱근의 쉬프트 근사 방법들로 치환을 제공할 수 있다. 다른 실시 예에서, 프레임워크 레이어(930)는 유저가 계산을 위해 사용되는 비트들의 수를 설정하도록 하는 확장을 제공할 수 있다. 다른 실시 예에서, 프레임워크 레이어(930)는 DPU 라이브러리 및 드라이버 레이어(920)으로부터 프레임워크 레이어(930)로 다중 DPU API를 랩(wrap)하기 위한 용량을 제공한다. 이에 따라, 유저는 복수의 GPU들의 사용과 유사하게 하드웨어 레이어에서 복수의 DPU들을 사용할 수 있다. 프레임워크 레이어(930)의 다른 기능은 유저가 하드웨어 레이어(910)에서 DPU 또는 GPU에 기능들을 할당하도록 한다.
어플리케이션(940)은 광범위한 어플리케이션들(예를 들어, 이미지 태그(tag) 프로세싱, 셀프-드라이빙/파일러팅(piloting) 운송 수단, 알파고 타입 딥-마인드 어플리케이션들 및/또는 음성 연구(speech research) 등)을 포함할 수 있다. 다만, 본 발명은 이에 제한되지 않는다.
당업자가 인식할 수 있는 것과 같이, 본 명세서에 기술된 혁신적인 개념은 광범위한 어플리케이션들에 걸쳐 변형되고 변경될 수 있다. 따라서, 청구된 본 발명의 사상의 범위는 상술된 임의의 예시적인 교시에 제한되어서는 안되며, 대신에 청구 범위에 의해 정의된다.
100, 700: DPU 101: 뱅크
102: 서브 어레이 103: 버퍼
104: 시스템 버스 105: 매트
106: 데이터 셀 어레이 107: 컴퓨팅 셀 어레이
108: 인트라-매트 쉬프트 어레이 110, 111: 데이터 셀 어레이 디코더
112: 인터-매트 쉬프트 어레이 113: 인터-매트 포워딩 어레이
114: 서브 어레이 컨트롤러 715: 확률적 데이터 어레이
716: 컨버터-투-확률 어레이 900: 시스템 구조
910: 하드웨어 레이어 920: 라이브러리 및 드라이버 레이어
930: 프레임워크 레이어 940: 어플리케이션 레이어

Claims (18)

  1. DPU(Dynamic Random Access Memory Processing Unit)에 있어,
    적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함하는 적어도 하나의 컴퓨팅 셀 어레이를 포함하되,
    상기 적어도 하나의 컬럼은 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함하고,
    상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은, 상기 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하도록 구성되고, 상기 적어도 세 개의 로우의 제 3 로우 내에 상기 로직 기능의 결과를 저장하도록 구성되는 DPU.
  2. 제 1 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들 각각은 세 개의 트랜지스터, 하나의 캐패시터(3T1C)를 포함하는 DRAM 메모리 셀을 포함하는 DPU.
  3. 제 2 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들은 노어(NOR) 로직 기능을 제공하는 DPU.
  4. 제 1 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들 각각은 하나의 트랜지스터, 하나의 캐패시터(1T1C)를 포함하는 DRAM 메모리 셀을 포함하는 DPU.
  5. 제 4 항에 있어,
    상기 DRAM 기반의 컴퓨팅 셀들 각각은 상기 DRAM 기반의 컴퓨팅 셀의 비트 라인과 연결된 ALU(Arithmetic Logic Unit)를 더 포함하되,
    상기 ALU는 상기 로직 기능을 제공하는 DPU.
  6. 제 5 항에 있어,
    상기 ALU는 노어(NOR) 로직 기능을 제공하는 DPU.
  7. 제 1 항에 있어,
    적어도 하나의 컬럼 내에 배치된 적어도 하나의 DRAM 기반의 메모리 셀을포함하는 적어도 하나의 데이터 셀 어레이; 그리고
    상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들의 읽기 비트 라인에 전기적으로 연결된 입력(input)을 포함하고, 상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들의 쓰기 비트 라인에 전기적으로 연결된 출력(output)을 포함하는 센스 앰프(sense amplifier)를 더 포함하는 DPU.
  8. 적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함하는 적어도 하나의 컴퓨팅 셀 어레이; 그리고
    적어도 하나의 컬럼 내에 배치된 적어도 하나의 DRAM 기반의 메모리 셀을 포함하는 적어도 하나의 데이터 셀 어레이를 포함하되,
    상기 적어도 하나의 컴퓨팅 셀 어레이의 상기 적어도 하나의 컬럼은 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함하고,
    상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은, 상기 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하도록 구성되고, 상기 적어도 세 개의 로우의 제 3 로우 내에 상기 로직 기능의 결과를 저장하도록 구성되는 DPU.
  9. 제 8 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들 각각은 세 개의 트랜지스터, 하나의 캐패시터(3T1C)를 포함하는 DRAM 메모리 셀을 포함하는 DPU.
  10. 제 9 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들은 노어(NOR) 로직 기능을 제공하는 DPU.
  11. 제 8 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들 각각은 하나의 트랜지스터, 하나의 캐패시터(1T1C)를 포함하는 DRAM 메모리 셀을 포함하는 DPU.
  12. 제 11 항에 있어,
    상기 DRAM 기반의 컴퓨팅 셀들 각각은 상기 DRAM 기반의 컴퓨팅 셀의 비트 라인과 연결된 ALU(Arithmetic Logic Unit)를 더 포함하되,
    상기 ALU는 상기 로직 기능을 제공하는 DPU.
  13. 제 12 항에 있어,
    상기 ALU는 노어(NOR) 로직 기능을 제공하는 DPU.
  14. 적어도 하나의 컬럼 내에 배치된 적어도 하나의 DRAM 기반의 메모리 셀을포함하는 적어도 하나의 데이터 셀 어레이;
    적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들을 포함하는 적어도 하나의 컬럼을 포함하는 어레이 내에 배치된 복수의 DRAM 기반의 컴퓨팅 셀들을 포함하는 적어도 하나의 컴퓨팅 셀 어레이;
    상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들의 읽기 비트 라인에 전기적으로 연결된 입력(input), 및 상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들의 쓰기 비트 라인에 전기적으로 연결된 출력(output)을 포함하는 센스 앰프; 그리고
    상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들과 전기적으로 연결된 디코더를 포함하되,
    상기 적어도 세 개의 로우의 DRAM 기반의 컴퓨팅 셀들은, 상기 적어도 세 개의 로우의 제 1 로우 및 제 2 로우 상에서 동작하는 로직 기능을 제공하도록 구성되고, 상기 적어도 세 개의 로우의 제 3 로우 내에 상기 로직 기능의 결과를 저장하도록 구성되고,
    상기 디코더는, 상기 제 1 및 제 2 로우들 상에서 상기 로직 기능을 생성하고 상기 제 3 로우 내에 상기 로직 기능의 상기 결과를 저장하기 위해, 상기 적어도 세 개의 로우의 상기 DRAM 기반의 컴퓨팅 셀들을 선택하기 위한 명령들에 대응하는 DRAM 기반의 주소 신호들을 수신하는 DPU.
  15. 제 14 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들 각각은 세 개의 트랜지스터, 하나의 캐패시터(3T1C)를 포함하는 DRAM 메모리 셀을 포함하는 DPU.
  16. 제 15 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들은 노어(NOR) 로직 기능을 제공하는 DPU.
  17. 제 14 항에 있어,
    상기 적어도 하나의 컬럼의 상기 DRAM 기반의 컴퓨팅 셀들 각각은 하나의 트랜지스터, 하나의 캐패시터(1T1C)를 포함하는 DRAM 메모리 셀을 포함하는 DPU.
  18. 제 17 항에 있어,
    상기 DRAM 기반의 컴퓨팅 셀들 각각은 상기 DRAM 기반의 컴퓨팅 셀의 비트 라인과 연결된 ALU를 더 포함하되,
    상기 ALU는 노어(NOR) 로직 기능을 제공하는 DPU.
KR1020170059473A 2016-10-28 2017-05-12 디램 기반 프로세싱 유닛 KR102182217B1 (ko)

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 2017-02-06
US15/425,996 US9922696B1 (en) 2016-10-28 2017-02-06 Circuits and micro-architecture for a DRAM-based processing unit

Publications (2)

Publication Number Publication Date
KR20180046846A true KR20180046846A (ko) 2018-05-09
KR102182217B1 KR102182217B1 (ko) 2020-11-25

Family

ID=61598574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170059473A KR102182217B1 (ko) 2016-10-28 2017-05-12 디램 기반 프로세싱 유닛

Country Status (5)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210035304A (ko) * 2018-08-27 2021-03-31 실리콘 스토리지 테크놀로지 인크 딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템
KR20220142875A (ko) 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 인메모리 연산을 수행하는 반도체 장치 및 그 동작 방법

Families Citing this family (6)

* 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
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050024923A1 (en) * 2003-07-15 2005-02-03 International Business Machines Corporation Gain cell memory having read cycle interlock
US20100164972A1 (en) * 2008-04-02 2010-07-01 Avidan Akerib System, method and apparatus for memory with embedded associative section for computations
US20120293200A1 (en) * 2011-05-18 2012-11-22 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method of driving semiconductor device
US20150131383A1 (en) * 2009-07-16 2015-05-14 Mikamonu Group Ltd. Non-volatile in-memory computing device
US9455020B2 (en) * 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry

Family Cites Families (34)

* 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
JP3922653B2 (ja) * 1993-03-17 2007-05-30 ゲイトフィールド・コーポレイション ランダムアクセスメモリ(ram)ベースのコンフィギュラブルアレイ
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
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
WO2008077243A1 (en) * 2006-12-22 2008-07-03 Sidense Corp. A power up detection system for a memory device
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
US7643353B1 (en) * 2007-10-25 2010-01-05 Netlogic Microsystems, Inc. Content addressable memory having programmable interconnect structure
US8332580B2 (en) * 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
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
KR20140085468A (ko) * 2011-10-28 2014-07-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 행 시프팅 시프트가능 메모리
KR101990971B1 (ko) 2012-01-30 2019-06-19 삼성전자 주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US9466352B2 (en) * 2012-01-30 2016-10-11 Hewlett Packard Enterprise Development Lp Dynamic/static random access memory (D/SRAM)
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050024923A1 (en) * 2003-07-15 2005-02-03 International Business Machines Corporation Gain cell memory having read cycle interlock
US20100164972A1 (en) * 2008-04-02 2010-07-01 Avidan Akerib System, method and apparatus for memory with embedded associative section for computations
US20150131383A1 (en) * 2009-07-16 2015-05-14 Mikamonu Group Ltd. Non-volatile in-memory computing device
US20120293200A1 (en) * 2011-05-18 2012-11-22 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method of driving semiconductor device
US9455020B2 (en) * 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210035304A (ko) * 2018-08-27 2021-03-31 실리콘 스토리지 테크놀로지 인크 딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템
KR20220142875A (ko) 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 인메모리 연산을 수행하는 반도체 장치 및 그 동작 방법
US11875840B2 (en) 2021-04-15 2024-01-16 SK Hynix Inc. Semiconductor device performing in-memory processing and operation method thereof

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102139213B1 (ko) 디램 기반 프로세싱 유닛
KR102182217B1 (ko) 디램 기반 프로세싱 유닛
KR102268179B1 (ko) Dpu 연산들을 위한 소프트웨어 스택 및 프로그래밍
JP7173709B2 (ja) ニューラルネットワーク回路
US20030222879A1 (en) Multiplier-based processor-in-memory architectures for image and graphics processing
CN111338601A (zh) 用于存储器内乘法及累加运算的电路及其方法
CN110222818B (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
US11934798B2 (en) Counter-based multiplication using processing in memory
CN111985602A (zh) 神经网络计算设备、方法以及计算设备
US7073039B2 (en) Providing a register file memory with local addressing in a SIMD parallel processor
US10956813B2 (en) Compute-in-memory circuit having a multi-level read wire with isolated voltage distributions
US20220269436A1 (en) Compute accelerated stacked memory
Zhou et al. Flexidram: A flexible in-dram framework to enable parallel general-purpose computation
KR102541000B1 (ko) 인공신경망 구현을 위한 3차원 적층형 시냅스 어레이 스트링
Bottleneck mMPU—A Real Processing-in-Memory Architecture to Combat the von
CN117334234A (zh) 一种存内计算电路、方法以及半导体存储器

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant