KR102424962B1 - 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 - Google Patents

병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 Download PDF

Info

Publication number
KR102424962B1
KR102424962B1 KR1020170152504A KR20170152504A KR102424962B1 KR 102424962 B1 KR102424962 B1 KR 102424962B1 KR 1020170152504 A KR1020170152504 A KR 1020170152504A KR 20170152504 A KR20170152504 A KR 20170152504A KR 102424962 B1 KR102424962 B1 KR 102424962B1
Authority
KR
South Korea
Prior art keywords
memory device
hbm
data
memory
die
Prior art date
Application number
KR1020170152504A
Other languages
English (en)
Other versions
KR20190055608A (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 삼성전자주식회사
Priority to KR1020170152504A priority Critical patent/KR102424962B1/ko
Priority to US16/034,688 priority patent/US10642612B2/en
Priority to CN201811000516.0A priority patent/CN109783410B/zh
Publication of KR20190055608A publication Critical patent/KR20190055608A/ko
Application granted granted Critical
Publication of KR102424962B1 publication Critical patent/KR102424962B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)
  • Image Processing (AREA)

Abstract

병렬 연산 처리를 수행하는 메모리 장치, 이를 포함하는 메모리 모듈이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 모듈은, 하드웨어 가속기로부터 연산 처리가 수행될 데이터 및 제1 정보를 수신하고, 상기 수신된 데이터 및 제1 정보를 이용한 연산 처리를 수행함으로써 연산 결과를 생성하며, 적어도 하나의 다른 메모리 장치와의 인터페이스를 통해 상기 연산 결과를 출력하는 제1 메모리 장치 및 상기 하드웨어 가속기를 경유함이 없이 제1 메모리 장치로부터 상기 연산 결과를 수신하고, 상기 수신된 연산 결과를 저장하는 제2 메모리 장치를 구비하는 것을 특징으로 한다.

Description

병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈{Memory Device performing parallel arithmetic process and Memory Module having the same}
본 개시의 기술적 사상은 메모리 장치에 관한 것으로서, 상세하게는 병렬 연산 처리를 수행하는 메모리 장치, 이를 포함하는 메모리 모듈에 관한 것이다.
고성능 전자 시스템에 널리 사용되고 있는 반도체 메모리 장치(semiconductor memory device)는 그 용량 및 속도가 증가하고 있다. 반도체 메모리 장치의 일 예로서 DRAM(Dynamic Random Access Memory)은 휘발성 메모리(volatile-memory)로서, 커패시터에 저장되어 있는 전하(charge)에 의해 데이터를 판정하는 메모리이다.
DRAM은 다양한 용도로 이용될 수 있으며, 일 예로서 다양한 종류의 연산 처리에 이용되는 데이터를 저장하거나 연산 처리 결과를 저장하기 위해 이용될 수 있다. 이 때, 뉴럴 네트워크(neural network) 연산 등과 같은 방대한 양의 연산을 처리함에 있어서 DRAM이 효율적으로 이용될 필요가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 연산 처리 기능을 포함함으로써 방대한 양의 연산을 병렬 처리할 수 있는 메모리 장치 및 이를 포함하는 메모리 모듈을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 모듈은, 하드웨어 가속기로부터 연산 처리가 수행될 데이터 및 제1 정보를 수신하고, 상기 수신된 데이터 및 제1 정보를 이용한 연산 처리를 수행함으로써 연산 결과를 생성하며, 적어도 하나의 다른 메모리 장치와의 인터페이스를 통해 상기 연산 결과를 출력하는 제1 메모리 장치 및 상기 하드웨어 가속기를 경유함이 없이 제1 메모리 장치로부터 상기 연산 결과를 수신하고, 상기 수신된 연산 결과를 저장하는 제2 메모리 장치를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 다른 일측면에 따른 메모리 모듈은, 신호 전달을 위한 배선이 형성된 인터포저와, 상기 인터포저 상에 장착되는 다수 개의 HBM(high bandwidth memory)들을 구비하고, 상기 다수 개의 HBM들 각각은, 외부와 통신하는 버퍼 다이와, 각각 메모리 셀 어레이 및 연산 처리를 수행하는 연산 회로를 포함하는 다수의 코어 다이들을 포함하고, 상기 다수 개의 HBM들 중 제1 HBM은, 버퍼 다이를 통해 메모리 컨트롤러로부터 데이터를 수신하고, 상기 다수의 코어 다이들에서 상기 수신된 데이터를 이용한 연산 처리를 병렬하게 수행하며, 상기 제1 HBM의 버퍼 다이와 상기 다수 개의 HBM들 중 제2 HBM의 버퍼 다이 사이의 데이터 통신을 통해, 상기 제1 HBM으로부터의 연산 결과가 상기 제2 HBM으로 제공되는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 메모리 장치는, 외부의 메모리 컨트롤러와 외부의 메모리 장치와 각각 인터페이스를 수행하는 제1 다이와, 상기 버퍼 다이 상에 적층되고, 각각 메모리 셀 어레이를 포함하는 다수의 제2 다이들 및 상기 제1 다이와 상기 다수의 제2 다이들 사이에서 신호를 송수신하는 스루 실리콘 비아(TSV) 영역을 구비하고, 상기 다수의 제2 다이들 각각은 다수의 채널들을 포함하고, 상기 다수의 채널들 각각은 상기 메모리 컨트롤러로부터 제공된 데이터를 이용한 연산 처리를 수행하는 연산 회로를 포함하며, 상기 제1 다이는, 상기 메모리 컨트롤러와 통신함으로써 상기 데이터 및 연산 명령을 수신하고, 상기 TSV 영역을 통해 상기 데이터를 상기 제2 다이들로 전달하는 제1 인터페이스 회로 및 상기 TSV 영역을 통해 상기 제2 다이로부터 연산 결과를 수신하고, 상기 외부의 메모리 장치와 통신함으로써 상기 연산 결과를 출력하는 제2 인터페이스 회로를 포함하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 장치 및 이를 포함하는 메모리 모듈에 따르면, 뉴럴 네트워크 등 방대한 양의 연산을 필요로 하는 동작에서 다수의 메모리 장치들에 의해 연산이 분산 수행될 수 있으며, 또한 연산 결과가 하드웨어 가속기를 경유함이 없이 메모리 장치들 사이에서 송수신될 수 있으므로, 데이터 전달 레이턴시를 감소할 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 2a,b,c는 본 발명의 예시적인 실시예에 따른 메모리 장치 간 데이터 통신의 일 예를 나타내는 블록도이다.
도 3은 데이터 처리 시스템 내의 메모리 모듈의 일 구현 예를 나타내는 도면이다.
도 4는 도 3의 HBM의 일 구현 예를 나타내는 도면이다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 6은 본 발명의 다른 예시적인 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 7은 본 발명의 예시적인 실시예에 따른 메모리 모듈을 포함하는 데이터 처리 시스템의 동작방법을 나타내는 플로우차트이다.
도 8은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 일 동작 예를 나타내는 블록도이다.
도 9는 연산 처리 동작의 일 예를 나타내는 블록도이다.
도 10은 본 발명의 예시적인 실시예에 따른 HBM의 일 구현 예를 나타내는 블록도이다.
도 11 및 도 12는 데이터 처리 시스템의 다양한 동작 예를 나타내는 블록도이다.
도 13는 본 발명의 예시적인 실시예들에 따른 HBM들을 포함하는 데이터 처리 시스템이 뉴럴 네트워크 연산을 수행하는 일 예를 나타내는 도면이다.
도 14는 HBM에 구비되는 멀티 포트에서의 신호 전송 예를 나타내는 블록도이다.
도 15는 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 모바일 장치의 일 구현 예를 나타내는 블록도이다.
도 16은 본 발명의 실시예에 따른 데이터 처리 시스템을 포함하는 서버 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(100)은 중앙 처리 유닛(Central Processing Unit, CPU(110)), 하나 이상의 하드웨어 가속기들(120_1 ~ 120_A) 및 하나 이상의 메모리 모듈들(130_1 ~ 130_B)을 포함할 수 있다. 또한, 데이터 처리 시스템(100)은 컴포넌트들 사이의 통신을 위한 버스(BUS)를 더 포함할 수 있다. 일 예로서, 버스(BUS)는 PCI(peripheral Component Interconnect), PCIe(PCIExpress), BlueLink, QPI(QuickPath Interconnect) 등 다양한 종류의 프로토콜을 통해 버스(BUS)에 접속된 컴포넌트들 사이의 통신을 지원할 수 있다. 중앙 처리 유닛(110)은 하드웨어 가속기들(120_1 ~ 120_A)과 버스(BUS)를 통해 서로 통신할 수 있다.
일 실시예에 따라, 데이터 처리 시스템(100)은 데이터를 처리하여 메모리 모듈들(130_1 ~ 130_B)에 기록하거나, 메모리 모듈들(130_1 ~ 130_B)로부터 독출된 데이터를 처리하는 다양한 종류의 시스템일 수 있다. 일 예로서, 데이터 처리 시스템(100)은 PC(personal computer), 데이터 서버, 클라우드 시스템, 인공 지능 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 또한, 데이터 처리 시스템(100)이 휴대용 전자 기기인 경우, 데이터 처리 시스템(100)은 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
중앙 처리 유닛(110)은 데이터 처리 시스템(100)의 전반적인 동작을 제어할 수 있다. 일 예로서, 중앙 처리 유닛(110)은 명령어(instruction)를 하드웨어 가속기들(120_1 ~ 120_A)로 제공함으로서 하드웨어 가속기들(120_1 ~ 120_A)의 동작을 제어할 수 있다. 일 실시예에 따라, 데이터 처리 시스템(100)은 명령어들을 저장하는 동작 메모리(미도시)를 포함할 수 있으며, 중앙 처리 유닛(110)은 동작 메모리를 억세스할 수 있다.
하드웨어 가속기들(120_1 ~ 120_A)은 다양한 종류의 보조 프로세서에 해당할 수 있다. 일 예로서 하드웨어 가속기들(120_1 ~ 120_A) 각각은 FPGA(Field-programmable gate array), MPPA(Massively parallel processor array), GPU(Graphics processing unit), ASIC(Application-Specific Integrated Circuit), NPU(Neural processing unit), TPU(Tensor Processing Unit) 및 MPSoC(Multi-Processor System-on-Chip) 등의 다양한 종류의 가속기일 수 있다.
메모리 모듈들(130_1 ~ 130_B) 각각은 하나 이상의 메모리 장치(MD)들을 포함할 수 있다. 일 예로서, 메모리 모듈들(130_1 ~ 130_B)은 하드웨어 가속기들(120_1 ~ 120_A)에 대응하여 배치될 수 있다. 예컨대, 제1 메모리 모듈(130_1)은 다수의 메모리 장치(MD)들을 포함하고, 제1 하드웨어 가속기(120_1)는 제1 메모리 모듈(130_1)에 대해 호스트로서 동작할 수 있다. 제1 메모리 모듈(130_1)은 제1 하드웨어 가속기(120_1)로부터의 커맨드 및 어드레스에 응답하여, 선택되는 메모리 장치(MD)에 데이터를 기록하거나, 또는 선택되는 메모리 장치(MD)로부터 독출된 데이터를 제1 하드웨어 가속기(120_1)로 제공할 수 있다.
데이터 처리 시스템(100) 내에서 하드웨어 가속기들(120_1 ~ 120_A) 및 메모리 모듈들(130_1 ~ 130_B)은 다양한 형태로 구현될 수 있다. 일 예로서, 메모리 모듈들(130_1 ~ 130_B) 각각은 모듈 보드 상에 장착된 다수의 메모리 장치(MD)들을 포함하는 SIMM(single in-line memory module) 또는 DIMM(dual inline memory module) 형태의 메모리 모듈일 수 있다. 또는, 다수의 메모리 장치(MD)들 각각은 고 대역폭 메모리(high bandwidth memory, HBM)를 포함할 수 있으며, 이 때 메모리 모듈은 HBM 모듈로 지칭될 수 있다. HBM 모듈은 인터포저(Interposer) 상에 장착된 다수의 HBM들 및 하나 이상의 하드웨어 가속기를 포함할 수 있다.
또한, 도 1에 도시된 바와 같이, 메모리 모듈들(130_1 ~ 130_B) 각각은 다수의 메모리 장치들을 포함하는 구성인 것으로 정의될 수 있으며, 변형 가능한 실시예로서 메모리 모듈들(130_1 ~ 130_B) 각각은 메모리 동작을 제어하기 위한 컨트롤러(미도시)를 더 포함하는 것으로 정의될 수도 있을 것이다. 또한, 도 1에서는 하드웨어 가속기가 메모리 모듈의 외부에 배치되는 구성인 것으로 도시되었으나, 하드웨어 가속기는 메모리 모듈 내에 구비되는 구성으로 정의될 수도 있을 것이다. 예컨대, 제1 하드웨어 가속기(120_1)는 제1 메모리 모듈(130_1) 내에 배치되는 것으로 정의될 수도 있을 것이다.
또한, 도 1에는 A 개의 하드웨어 가속기들(120_1 ~ 120_A)과 B 개의 메모리 모듈들(130_1 ~ 130_B)이 도시되나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 하드웨어 가속기들(120_1 ~ 120_A)과 메모리 모듈들(130_1 ~ 130_B)은 데이터 처리 시스템(100) 내에서 동일한 개수가 구비될 수도 있을 것이다.
일 실시예에 따라, 데이터 처리 시스템(100)은 하드웨어 가속기들(120_1 ~ 120_A)과 메모리 모듈들(130_1 ~ 130_B)을 보드(또는, 메인 보드) 상에 삽입되는 카드 형태로서 포함할 수 있다. 예컨대, 하나 이상의 하드웨어 가속기와 하나 이상의 메모리 모듈을 포함하는 애드-인 형태의 카드가 보드 상의 확장 슬롯에 장착될 수 있다. 일 예로서, 확장 슬롯에 장착되는 카드는 하나의 하드웨어 가속기와 하나의 메모리 모듈을 포함할 수 있으며, 도 1에는 제1 하드웨어 가속기(120_1)와 제1 메모리 모듈(130_1)이 하나의 카드에 포함되는 구성이 예시된다. 변형 가능한 실시예로서, 카드는 하나의 하드웨어 가속기와 다수의 메모리 모듈들을 포함할 수 있다. 또는, 카드는 다수 개의 하드웨어 가속기들과 다수 개의 메모리 모듈들을 포함할 수 있다.
한편, 전술한 버스가 PCI 프로토콜에 따른 통신을 지원하는 경우, 상기 카드는 PCI 카드에 해당할 수 있으며, 또한 카드가 하드웨어 가속기를 포함하는 경우 상기 카드는 그래픽 카드 또는 가속기 카드로 지칭될 수 있다. 이 때, 도 1에 도시된 데이터 처리 시스템(100)은 보드 상에 장착되는 중앙 처리 유닛(110)과 다수 개의 카드들을 포함하는 것으로 정의될 수 있을 것이다.
한편, 메모리 모듈들(130_1 ~ 130_B) 각각에 구비되는 메모리 장치(MD)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등과 같은 DRAM 일 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 일 예로서 메모리 장치(MD)는 플래시(flash) 메모리, MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM) 및 ReRAM(Resistive RAM) 등의 불휘발성 메모리로 구현되어도 무방하다.
이하, 본 발명의 예시적인 실시예들에 따른 메모리 장치(MD) 및 메모리 모듈의 동작 예를 설명하면 다음과 같다. 하드웨어 가속기는 하나 이상의 메모리 모듈들을 제어할 수 있으며, 일 예로서 제1 하드웨어 가속기(120_1)는 제1 메모리 모듈(130_1)를 억세스하고, 제A 하드웨어 가속기(120_A)는 제(B-1) 메모리 모듈(130_(B-1)) 및 제B 메모리 모듈(130_B)을 억세스하는 것으로 가정된다.
중앙 처리 유닛(110)의 제어에 기반하여, 제1 하드웨어 가속기(120_1)는 기록 데이터를 제1 메모리 모듈(130_1)로 제공할 수 있으며, 또한 제1 메모리 모듈(130_1)로부터 데이터를 독출할 수 있다. 또한, 제A 하드웨어 가속기(120_A)는 기록 데이터를 제(B-1) 메모리 모듈(130_(B-1)) 및 제B 메모리 모듈(130_B)로 제공할 수 있으며, 또한 제(B-1) 메모리 모듈(130_(B-1)) 및 제B 메모리 모듈(130_B)로부터 데이터를 독출할 수 있다.
본 발명의 예시적인 실시예에 따라, 메모리 장치(MD) 각각에는 메모리 장치(MD)들 사이에서의 데이터 통신의 수행을 지원하는 인터페이스 회로가 제공되며, 또한 각각의 메모리 장치(MD)는 데이터를 이용한 연산 처리를 수행하는 연산 회로(미도시)를 포함할 수 있다. 일 예로서, 어느 하나의 메모리 장치(MD)는 대응하는 하드웨어 가속기의 제어에 기반하여 연산 처리를 수행하고, 연산 결과를 다른 메모리 장치(MD)로 제공할 수 있다. 일 예로서, 제1 메모리 모듈(130_1) 내의 제1 메모리 장치(131) 및 제2 메모리 장치(132)를 참조하면, 제1 하드웨어 가속기(120_1)의 제어에 기반하여 제1 메모리 장치(131)는 데이터를 이용한 연산 처리를 수행하고, 그 연산 처리 결과를 제1 하드웨어 가속기(120_1)를 경유하지 않고 제2 메모리 장치(132)로 제공할 수 있다. 즉, 제1 메모리 장치(131)의 연산 결과가 제1 하드웨어 가속기(120_1)로 제공될 필요 없이, 제2 메모리 장치(132)로 직접 제공될 수 있다.
변형 가능한 실시예에 따라, 메모리 장치들 사이의 데이터 통신은 다른 메모리 모듈 사이에서도 수행될 수 있다. 일 예로서, 제A 하드웨어 가속기(120_A)는 제(B-1) 메모리 모듈(130_(B-1)) 및 제B 메모리 모듈(130_B)을 제어하고, 또한 제A 하드웨어 가속기(120_A)와 제(B-1) 메모리 모듈(130_(B-1)) 및 제B 메모리 모듈(130_B)은 하나의 카드를 구성할 수 있으며, 카드에 형성되는 배선을 통해 제(B-1) 메모리 모듈(130_(B-1))과 제B 메모리 모듈(130_B)이 서로 통신할 수 있다. 이 때, 제A 하드웨어 가속기(120_A)의 제어에 기반하여 제(B-1) 메모리 모듈(130_(B-1))의 제3 메모리 장치(133)가 연산을 수행하고, 연산 결과가 제A 하드웨어 가속기(120_A)로 제공될 필요 없이, 제B 메모리 모듈(130_B)의 제4 메모리 장치(134)로 직접 제공될 수 있다.
상기와 같은 동작을 통해, 방대한 양의 연산 처리 과정에서 적어도 일부의 연산 처리가 메모리 모듈들(130_1 ~ 130_B)에 분산되어 수행될 수 있다. 예컨대, 적어도 일부 또는 전체 연산 처리가 메모리 모듈들(130_1 ~ 130_B)에서 병렬하게 수행될 수 있다. 이와 함께, 연산 처리 과정의 다른 일부는 기존과 같이 하드웨어 가속기에 의해 수행될 수도 있다. 만약, 제1 하드웨어 가속기(120_1)에 의해 연산 처리가 수행되고, 연산 결과가 제B 메모리 모듈(130_B) 내의 메모리 장치(MD)에 저장되는 경우, 제1 하드웨어 가속기(120_1)는 연산 결과를 제A 하드웨어 가속기(120_A)로 제공하고, 제A 하드웨어 가속기(120_A)는 수신된 연산 결과를 제B 메모리 모듈(130_B) 내의 메모리 장치(MD)에 저장할 수 있다.
상기와 같은 본 발명의 예시적인 실시예에 따르면, 메모리 장치(MD)가 데이터 통신을 위한 멀티 포트(Multiport)를 채용하고, 메모리 장치(MD)들 사이의 다양한 방식의 통신(예컨대, P2P 통신)을 지원함으로써 데이터의 양방향 통신이 가능하며, 이에 따라 하드웨어 가속기 등의 프로세싱 유닛을 통함이 없이 메모리 장치(MD)들 사이에서 직접 통신이 가능하므로 데이터 처리 동작에 있어서 로우 레이턴시(low latency) 특성을 가질 수 있다. 또한, 뉴럴 네트워크 연산 등과 같이 방대한 양의 연산 처리가 필요로 되는 경우, 하드웨어 가속기를 이용한 연산 이외에도 다수의 메모리 장치(MD)들을 이용한 병렬 연산 처리 동작이 가능하므로 그 연산 처리 속도가 향상될 수 있으며, 또한 뉴럴 네트워크 시스템의 구현 비용이 감소될 수 있다. 또한, 연산 처리가 다수의 메모리 장치(MD)들에서 분산되어 수행되므로, 전력 분산에 유리할 수 있다. 또한, 다수의 메모리 장치(MD)들이 다양한 종류의 연결 구조를 가질 수 있으며, 메모리 장치(MD)들이 P2P 완전 연결 구조를 갖는 경우 대역폭(Bandwidth)이 유리한 특성을 가질 수 있다.
이하, 본 발명의 다양한 실시예들 및 이의 동작 예들을 설명하면 다음과 같다. 다음의 실시예들에서는 하드웨어 가속기로서 GPU가 예시될 것이나, 본 발명의 실시예들은 이에 국한될 필요가 없이 다양한 종류의 하드웨어 가속기가 적용되어도 무방할 것이다.
도 2a,b,c는 본 발명의 예시적인 실시예에 따른 메모리 장치 간 데이터 통신의 일 예를 나타내는 블록도이다.
도 2a를 참조하면, 데이터 처리 시스템(200A)은 GPU(211A)를 포함하며, 또한 GPU(211A)의 제어에 기반하여 데이터가 억세스되는 제1 메모리 장치(221A) 및 제2 메모리 장치(222A)를 포함할 수 있다. 일 실시예에 따라, 제1 메모리 장치(221A) 및 제2 메모리 장치(222A)는 메모리 모듈에 포함되는 구성이고, GPU(211A)는 메모리 모듈의 외부에 배치되는 구성일 수 있다.
제1 메모리 장치(221A)와 제2 메모리 장치(222A) 각각은 멀티 포트 옵션을 지원하고 양방향 통신을 수행하며, 연산 처리 동작을 수행할 수 있다. 일 예로서 제1 메모리 장치(221A)와 제2 메모리 장치(222A) 각각은 외부로부터 제공된 데이터 또는 그 내부에서 독출된 데이터를 이용한 연산 처리를 수행하고, 제1 메모리 장치(221A)로부터의 연산 결과(Data_Ari)가 제2 메모리 장치(222A)로 제공되거나, 제2 메모리 장치(222A)로부터의 연산 결과(Data_Ari)가 제1 메모리 장치(221A)로 제공될 수 있다.
일 동작 예로서, GPU(211A)는 데이터 처리 시스템(200A) 내의 중앙 처리 유닛(미도시)에 의해 제어될 수 있으며, GPU(211A)는 제1 메모리 장치(221A)에 연산 처리를 지시하는 커맨드(CMD)를 제공할 수 있다. 제1 메모리 장치(221A)는 내부의 셀 코어로부터 독출된 데이터 또는 외부로부터 제공된 데이터를 이용한 연산 처리를 수행하고, 내부의 인터페이스 회로(I/F)를 통하여 연산 결과(Data_Ari)를 직접 제2 메모리 장치(222A)로 제공할 수 있다. 또한, GPU(211A)는 제2 메모리 장치(222A)에 데이터 저장을 지시하는 커맨드(CMD)를 제공할 수 있으며, 제2 메모리 장치(222A)는 제1 메모리 장치(221A)로부터 제공된 연산 결과(Data_Ari)를 커맨드(CMD)에 응답하여 내부의 셀 코어에 저장할 수 있다.
한편, 도 2b를 참조하면, 데이터 처리 시스템(200B)은 GPU(211B)를 포함하고, 또한 GPU(211B)에 의해 제어되는 제1 메모리 장치(221B) 및 제2 메모리 장치(222B)를 포함할 수 있다. GPU(211B)와 제1 메모리 장치(221B) 및 제2 메모리 장치(222B)는 동일한 메모리 모듈에 포함되는 구성일 수 있다. 중앙 처리 유닛(미도시)의 제어에 기반하여 GPU(211B)는 다양한 메모리 동작을 지시하기 위한 커맨드(CMD)를 제1 메모리 장치(221B) 및 제2 메모리 장치(222B)로 제공할 수 있다. 도 2a에서 설명된 실시예에서와 유사하게, 제1 메모리 장치(221B)는 커맨드(CMD)에 응답하여 연산 처리 동작을 수행하고, 연산 결과(Data_Ari)를 제2 메모리 장치(222B)로 제공할 수 있으며, 제2 메모리 장치(222B)는 커맨드(CMD)에 응답하여 연산 결과(Data_Ari)를 내부의 셀 코어에 저장할 수 있다.
한편, 도 2c를 참조하면 데이터 처리 시스템(200C)은 GPU(211C)를 포함하고, 또한 하나 이상의 메모리 모듈들로서 제1 메모리 모듈(221C) 및 제2 메모리 모듈(222C)을 포함할 수 있다. 일 예로서, GPU(211C), 제1 메모리 모듈(221C) 및 제2 메모리 모듈(222C)은 동일한 카드에 배치되는 구성일 수 있으며, 제1 메모리 모듈(221C) 및 제2 메모리 모듈(222C)은 서로 배선(예컨대, 카드 상에 배치되는 배선)을 통해 서로 신호를 송수신할 수 있다. GPU(211C)는 다수의 메모리 모듈들에 포함된 메모리 장치들(MD)의 메모리 동작을 제어하기 위한 커맨드(CMD)를 제공할 수 있다. 또한, 전술한 실시예들에서와 같이 연산 결과(Data_Ari)는 메모리 장치(MD)들 사이에서 직접 송수신될 수 있으며, 일 예로서 제1 메모리 모듈(221C)의 메모리 장치(221C_1)로부터의 연산 결과(Data_Ari)는 GPU(211C)를 경유함이 없이 제2 메모리 모듈(222C)의 메모리 장치(222C_1)로 제공될 수 있다.
도 2a,b,c에 도시된 실시예에 따르면, 하드웨어 가속기와 메모리 장치 사이에서의 데이터 통신이 필요로 됨이 없이, 메모리 장치들 사이에서 데이터가 고속으로 송수신될 수 있다. 즉, 연산 처리가 다수의 메모리 장치들에 분산되어 수행되며, 연산 결과가 메모리 장치들 사이에서 직접 전송될 수 있다.
도 3은 데이터 처리 시스템 내의 메모리 모듈의 일 구현 예를 나타내는 도면이다. 도 3에서는 메모리 컨트롤러와 하나 이상의 메모리 장치를 포함하는 메모리 모듈로서 반도체 패키지가 예시된다. 일 구현 예로서, 하나 이상의 반도체 패키지가 하나의 카드(예컨대, 그래픽 카드)에 장착될 수 있으며, 상기 메모리 장치는 HBM에 해당하는 예가 도시된다.
도 3을 참조하면, 반도체 패키지(300)는 다수의 HBM(310)들, 메모리 컨트롤러(320), 인터포저(Interposer, 330) 및 패키지 기판(340)을 포함할 수 있다. 다수의 HBM(310)들 및 메모리 컨트롤러(320)는 인터포저(330) 상에 장착되고, 인터포저(330)에 형성된 배선들을 통해 서로 신호를 송수신할 수 있으며, 인터포저(330)는 실리콘(TSV) 형태, PCB 형태의 오가닉(Organic) 또는 Non-TSV 방식인 EMIB(embedded multi-die interconnect bridge) 등의 배선을 포함할 수 있다.
변형 가능한 예로서, 반도체 패키지(300)는 메모리 컨트롤러(320)를 포함함이 없이 다수의 HBM(310)들만을 포함할 수도 있다. 예컨대, 반도체 패키지(300)는 외부의 메모리 컨트롤 유닛의 제어에 기반하여 데이터 억세스 동작을 수행할 수도 있으며, 일 예로서 도 3에 도시된 바와 같이 외부의 하드웨어 가속기(예컨대, GPU(301))의 제어에 기반하여 다수의 HBM(310)들에 대한 데이터 억세스 동작이 제어될 수도 있다.
한편, 다른 변형 가능한 예로서, 메모리 컨트롤러(320) 대신에 다른 다양한 종류의 반도체 칩이 반도체 패키지(300)에 장착될 수도 있을 것이다. 예컨대, 도 3에 도시된 GPU(301)가 반도체 패키지(300)에 장착될 수 있을 것이며, 또는 메모리 컨트롤 기능을 갖는 장치(예컨대, IP(intellectual property) 블록)를 포함하는 어플리케이션 프로세서(AP)가 반도체 패키지(300)에 장착될 수도 있을 것이다.
도 3에 도시된 다수의 HBM(310)들은 전술한 실시예들에 따른 통신을 수행할 수 있다. 일 구현 예로서, 인터포저(330)에는 다수의 HBM(310)들 사이의 신호의 전달 경로에 해당하는 배선들이 배치되고, 어느 하나의 HBM으로부터 다른 하나 이상의 HBM으로 데이터가 전송될 수 있다. 또한, 일 예로서, 전술한 바와 같이 다수의 HBM(310)들 각각은 연산 회로를 포함하고, GPU(301)의 제어에 기반하여 HBM(310)들 각각은 연산 처리를 수행하고, 그 연산 처리 결과를 다른 HBM으로 전송할 수 있다. 일 실시예에 따라, HBM(310)들 각각은 메모리 동작의 제어를 위한 주변 회로로서 컨트롤 로직을 포함하는 버퍼 다이(또는, 로직 다이)와, 메모리 셀 어레이를 포함하는 하나 이상의 코어 다이들을 포함할 수 있으며, 각각의 HBM에서 연산 회로는 코어 다이들 각각에 배치될 수 있다.
도 4는 도 3의 HBM의 일 구현 예를 나타내는 도면이다. 어느 하나의 HBM(310)을 이용하여 그 구조를 설명하면 다음과 같다.
HBM(310)는 서로 독립된 인터페이스를 갖는 다수의 채널들을 포함함으로써 증가된 대역폭(Bandwidth)을 가질 수 있다. 도 4를 참조하면, HBM(310)는 다수 개의 다이들을 포함할 수 있으며, 일 예로서 버퍼 다이(또는, 로직 다이(312))와 이에 적층된 하나 이상의 코어 다이들(311)을 포함할 수 있다. 도 4의 예에서는, 제1 내지 제4 코어 다이들이 HBM(310)에 구비되는 예가 도시되었으나, 상기 코어 다이들(311)의 개수는 다양하게 변경될 수 있다.
또한, 코어 다이들(311) 각각은 하나 이상의 채널을 포함할 수 있으며, 도 4의 예에서는 코어 다이들(311) 각각이 두 개의 채널을 포함함에 따라 HBM(310)가 8 개의 채널들(CH1 ~ CH8)을 갖는 예가 도시된다. 예컨대, 제1 코어 다이가 제1 채널 및 제3 채널(CH1, CH3)을 포함하고, 제2 코어 다이가 제2 채널 및 제4 채널(CH2, CH4)을 포함하며, 제3 코어 다이가 제5 채널 및 제7 채널(CH5, CH7)을 포함하며, 제4 코어 다이가 제6 채널 및 제8 채널(CH6, CH8)을 포함할 수 있다.
버퍼 다이(312)는 외부의 메모리 컨트롤러(또는, 하드웨어 가속기)와 통신하고, 메모리 컨트롤러로부터 커맨드, 어드레스 및 데이터를 수신할 수 있으며, 수신된 커맨드, 어드레스 및 데이터를 코어 다이들(311)로 제공할 수 있다. 버퍼 다이(312)는 그 외면에 형성된 범프 등의 도전 수단(미도시)을 통해 메모리 컨트롤러와 통신할 수 있다. 버퍼 다이(312)는 커맨드, 어드레스 및 데이터를 버퍼링하며, 이에 따라 메모리 컨트롤러는 버퍼 다이(312)의 로드(load)만을 구동함으로써 코어 다이들(311)과 인터페이스할 수 있다.
또한, HBM(310)는 다이들을 관통하는 다수 개의 스루 실리콘 비아(TSV)들을 포함할 수 있다. TSV 들은 다수의 채널들(CH1 ~ CH8)에 대응하여 배치될 수 있으며, 각각의 채널이 128 비트의 대역폭(Bandwidth)을 갖는 경우, TSV 들은 1024 비트의 데이터 입출력을 위한 구성들을 포함할 수 있다.
일 실시예에 따라, HBM(310)는 연산 처리를 수행할 수 있으며, 연산 회로(311_1)는 버퍼 다이(312) 및/또는 코어 다이들(311)에 구비될 수 있다. 일 구현 예로서, 연산 회로는 코어 다이들(311) 각각에 구비되고, 이에 따라 HBM(310)에서 수행되는 다수의 연산 처리 동작은 코어 다이들(311)에 분산되어 수행될 수 있다. 도 4에서는 도시의 편의상 연산 회로(311_1)가 제4 코어 다이의 제8 채널(CH8)에 배치된 예가 도시되었으나, 상기 연산 회로(311_1)는 코어 다이들(311) 또는 채널들(CH1 ~ CH8) 각각에 배치될 수 있다.
버퍼 다이(312)는 컨트롤 로직(312_1), TSV 영역(312_2), 물리(PHY) 영역(312_3) 및 다이렉트 억세스 영역(DA, 312_4)을 포함할 수 있다. 컨트롤 로직(312_1)은 HBM(310) 내의 전반적인 동작을 제어하며, 일 예로서 외부의 메모리 컨트롤러로부터의 커맨드에 응답하여 내부 제어 동작을 수행할 수 있다. 예컨대, 코어 다이들(311) 각각은 컨트롤 로직(312_1)의 제어에 기반하여 연산 처리 동작을 수행함과 함께, 연산 결과를 전달하는 동작을 수행할 수 있다.
한편, TSV 영역(312_2)은 코어 다이들(313)과의 통신을 위한 TSV가 형성되는 영역이다. 또한, 물리(PHY) 영역(312_3)은 외부의 메모리 컨트롤러와의 통신을 위해 다수의 입출력 회로를 포함할 수 있으며, 또한 다른 HBM과의 통신을 위해 다수의 입출력 회로를 포함할 수 있다. 일 예로서, 물리(PHY) 영역(312_3)은 다수 개의 포트들을 포함하고, 어느 하나의 포트는 외부의 메모리 컨트롤러와 통신을 수행하고, 다른 하나의 포트는 다른 HBM과의 통신을 수행할 수 있다.
한편, 다이렉트 억세스 영역(312_4)은 HBM(310)에 대한 테스트 모드에서 HBM(310)의 외면에 배치되는 도전 수단을 통해 외부의 테스터와 직접 통신할 수 있다. 테스터로부터 제공되는 각종 신호들은 다이렉트 억세스 영역(312_4) 및 TSV 영역(312_3)을 통해 코어 다이들(311)로 제공될 수 있다. 또는, 변형 가능한 실시예로서, 테스터로부터 제공되는 각종 신호들은 다이렉트 억세스 영역(312_4), 물리(PHY) 영역(312_3) 및 TSV 영역(312_2)을 통해 코어 다이들(311)로 제공될 수도 있다.
상기와 같은 실시예들에 따르면, 연산 결과가 HBM들 사이에서 전송됨에 있어서 HBM의 채널 당 대역폭을 이용할 수 있으므로, 대용량의 연산에서 상기 채널들의 대역폭이 효율적으로 이용되고 데이터 레이턴시가 감소될 수 있다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다. 도 5에서는 어느 하나의 메모리 장치(예컨대, 제1 메모리 장치)의 동작 방법이 예시된다.
도 5를 참조하면, 제1 메모리 장치는 외부의 메모리 컨트롤러(또는, 하드웨어 가속기의 일 예로서 GPU)의 제어에 기반하여 메모리 동작을 수행할 수 있으며, 또한 전술한 실시예에 따라 그 내부에 연산 회로가 구비됨에 따라 연산 처리 동작을 수행할 수 있다. 또한, 제1 메모리 장치는 다른 하나 이상의 메모리 장치들과 통신할 수 있으며, 일 예로서 제2 메모리 장치와 데이터를 통신할 수 있다.
제1 메모리 장치는 입력 포트 및 출력 포트를 포함하고, 입력 포트를 통해 GPU로부터 커맨드 및 데이터를 수신할 수 있다(S11). 일 실시예에 따라, 제1 메모리 장치는 다수의 인터페이스 회로들을 포함하고, 어느 하나의 인터페이스 회로의 포트를 상기 입력 포트로서 이용하고, 다른 인터페이스 회로의 포트를 상기 출력 포트로서 이용할 수 있다. 또한, 제1 메모리 장치는 다양한 종류의 커맨드에 응답하여 연산 처리를 수행할 수 있으며, 기 정의되는 커맨드(예컨대, 기록 커맨드 등)에 응답하여 연산 처리 동작을 수행하거나, 또는 새로이 정의되는 커맨드에 응답하여 연산 처리 동작을 수행할 수 있다. 제1 메모리 장치는 GPU로부터 제공된 데이터를 이용하여 연산 처리 동작을 수행할 수 있다(S12).
또한, GPU의 제어에 기반하여 상기 연산 처리 결과는 제1 메모리 장치의 외부의 제2 메모리 장치에 저장될 수 있다. 이 때, 제1 메모리 장치는 제2 메모리 장치와 데이터 통신을 수행할 수 있으며, 상기 연산 처리 결과는 제1 메모리 장치의 출력 포트를 통해 제2 메모리 장치로 직접 전송될 수 있다(S13).
도 6은 본 발명의 다른 예시적인 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다. 도 6에서는 메모리 장치로서 HBM이 예시되고, HBM이 GPU 등의 하드웨어 가속기의 제어에 기반하여 뉴럴 네트워크 연산을 수행하는 예가 도시된다.
도 6을 참조하면, 제1 HBM은 GPU로부터 뉴럴 네트워크 연산에 이용되는 데이터 및 제1 가중치 정보를 수신할 수 있다(S21). 또한, 전술한 예에서와 유사하게, 제1 HBM은 GPU로부터 연산 수행을 위한 커맨드를 더 수신할 수 있다.
제1 HBM은 버퍼 다이와 하나 이상의 코어 다이들을 포함하고, 뉴럴 네트워크 연산은 동일한 데이터에 대해 다수의 가중치들을 이용한 병렬 연산을 포함할 수 있다. 이 때, 상기 GPU로부터 수신된 데이터와 제2 가중치 정보를 이용한 연산 처리가 제2 HBM에서 수행될 때, 제1 HBM은 버퍼 다이를 통해 상기 데이터를 제2 HBM으로 전송(또는, 바이패스)할 수 있다(S22).
한편, 제1 HBM은 GPU로부터 수신된 데이터와 제1 가중치 정보를 하나 이상의 코어 다이들로 전달하고(S23), 상기 제1 HBM의 코어 다이들은 데이터와 제1 가중치 정보를 이용한 뉴럴 네트워크 연산을 수행할 수 있으며(S24), 또한 뉴럴 네트워크 연산 결과를 제1 HBM의 버퍼 다이로 전달할 수 있다. 제1 HBM은 버퍼 다이를 통해 상기 연산 결과를 제3 HBM으로 전송할 수 있다(S25).
도 7은 본 발명의 예시적인 실시예에 따른 메모리 모듈을 포함하는 데이터 처리 시스템의 동작방법을 나타내는 플로우차트이다. 전술한 실시예에서와 같이, 데이터 처리 시스템은 다수의 HBM들을 포함하는 메모리 모듈과, HBM들을 제어하는 하드웨어 가속기로서 GPU를 포함할 수 있다.
도 7을 참조하면, GPU는 뉴럴 네트워크 연산을 위한 커맨드와 함께 제1 데이터를 제1 HBM으로 제공할 수 있다(S31). 또한, GPU는 제1 데이터와 함께 연산에 이용될 제1 가중치 정보를 제1 HBM으로 제공할 수 있다(S32). 또한, 전술한 실시예들에 따라, HBM 들은 상호 데이터 통신을 수행하고, 제1 HBM에서의 뉴럴 네트워크 연산 결과가 제1 HBM으로부터 제2 HBM으로 제공되며, 상기 연산 결과는 제2 HBM 내에 저장될 수 있다.
또는, 제1 HBM에서의 뉴럴 네트워크 연산 결과는 제2 HBM을 통해 GPU로 제공될 수 있다. GPU는 제1 데이터 및 제1 가중치 정보를 이용한 뉴럴 네트워크 연산 결과를 수신하기 위한 커맨드를 제2 HBM로 제공할 수 있으며(S33), GPU는 제2 HBM로부터 제1 데이터 및 제1 가중치 정보를 이용한 뉴럴 네트워크 연산 결과(예컨대, 제1 연산 결과)를 수신할 수 있다(S34). 변형 가능한 실시예에 따라, 제2 HBM은 GPU로부터 제2 가중치 정보를 수신하고, 제1 연산 결과와 제2 가중치 정보를 이용한 뉴럴 네트워크 연산을 수행하여 제2 연산 결과를 생성할 수 있으며, GPU는 제2 HBM으로부터 제2 연산 결과를 수신할 수도 있다.
도 8은 본 발명의 예시적인 실시예에 따른 데이터 처리 시스템의 일 동작 예를 나타내는 블록도이다. 도 8에서는 데이터 처리 시스템(400)이 하나의 하드웨어 가속기(410)와, 이에 대응하는 다수 개의 HBM들을 포함하는 메모리 모듈(420)을 구비하는 예가 도시된다. 또한, 도 8에서는 데이터(Data)와 가중치(Weight)를 이용한 연산(예컨대, 곱셈 연산)이 수행되는 예가 도시되며, 일 예로서 상기 가중치(Weight)를 이용한 연산은 뉴럴 네트워크 연산에 해당할 수 있다.
도 8을 참조하면, 하드웨어 가속기(410)는 커맨드 컨트롤러(411) 및 하나 이상의 캐시들(412 ~ 414)을 포함할 수 있다. 캐시들(412 ~ 414)은 다양한 종류의 캐시에 해당할 수 있으며, 일 예로서 L2 캐시가 적용된 예가 도시된다. 제1 캐시(412)는 연산 대상의 데이터(Data)를 저장하는 용도로 이용되고, 제2 캐시(413)는 가중치(Weight)를 저장하는 용도로 이용될 수 있다. 또한, 제3 캐시(414)는 데이터(Data)와 가중치(Weight)를 이용한 연산 결과를 저장하는 용도로 이용될 수 있다.
메모리 모듈(420)의 다수의 HBM들은 다양한 구조에 의해 연결되어 상호 통신할 수 있다. 도 8에서는 커맨드 컨트롤러(411)의 제어에 기반하여 어느 하나의 HBM이 인접한 HBM으로 신호를 전송하는 시스톨릭(systolic) 구조가 예시되나, 다수의 HBM들은 링 연결(Ring Connection) 구조, 부분 연결(Partially Connected) 구조, 완전 연결(Fully Connected) 구조, 토러스 네트워크(torus network) 구조 및 크로스바 스위치(crossbar switch) 구조 등 다양한 연결 구조를 가질 수도 있을 것이다. 또한, 도 8에서는 다수의 HBM들이 3 개의 행들 및 3 개의 열들에 따라 배치되는 예가 도시된다.
메모리 모듈(420)의 제1 내지 제5 HBM들(421 ~ 425)을 참조하여 도 8의 데이터 처리 시스템(400)의 동작 예를 설명하면 다음과 같다.
커맨드 컨트롤러(411)로부터의 커맨드에 응답하여 제1 캐시(412)로부터 데이터(Data)가 제1 HBM(421)로 제공되고, 또한 제2 캐시(413)로부터 가중치(Weight)가 제1 HBM(421)로 제공될 수 있다. 제1 HBM(421)은 버퍼 다이(421_1)와 다수의 코어 다이들(421_2)을 포함하고, 데이터(Data) 및 가중치(Weight)는 버퍼 다이(421_1)를 통해 다수의 코어 다이들(421_2)로 제공될 수 있다. 예컨대, 연산에 이용되는 다수의 데이터(Data)와 다수의 가중치(Weight)가 다수의 코어 다이들(421_2)로 분산되어 제공될 수 있다. 제1 HBM(421)의 내부 제어 동작을 통해, 다수의 코어 다이들(421_2) 각각이 데이터(Data)와 가중치(Weight)를 이용한 연산 처리 동작(예컨대, 곱셈 연산)을 수행할 수 있다.
또한, 제1 캐시(412)로부터의 데이터(Data)는 제1 HBM(421)을 통해 제2 HBM(422)으로 제공될 수 있으며, 또한 제2 HBM(422)은 제2 캐시(413)로부터 가중치(Weight)를 수신할 수 있다. 제2 HBM(422) 내의 다수의 코어 다이들은 수신된 데이터(Data) 및 가중치(Weight)를 이용하여 연산 처리 동작을 수행할 수 있다. 또한, 제2 HBM(422)은 제1 HBM(421)을 통해 수신된 데이터(Data)를 동일한 행에 위치하는 다른 HBM(예컨대, 우측으로 인접한 HBM)으로 전달(또는, 바이패스)할 수 있다.
한편, HBM 사이에서의 연산 결과의 전달은 하드웨어 가속기(410)를 통할 필요 없이, HBM들 사이의 통신을 통해 직접 전달될 수 있다. 일 예로서, 제1 HBM(421)와 제3 HBM(423) 각각은 상호 인터페이스를 통해 통신을 수행하고, 제1 HBM(421)은 전술한 연산 결과를 제3 HBM(423)으로 제공할 수 있다. 일 실시예에 따라, 제1 HBM(421)의 코어 다이들(421_2)에서의 연산 결과는 버퍼 다이(421_1)로 제공되고, 제1 HBM(421)의 버퍼 다이(421_1)와 제3 HBM(423)의 버퍼 다이 사이의 통신을 통해 상기 연산 결과가 제3 HBM(423)으로 제공될 수 있다.
상기 연산 결과는 다양한 위치의 HBM에 저장될 수 있다. 일 예로서, 제1 HBM(421)에서의 연산 결과는 전술한 통신을 통해 제3 HBM(423)으로 제공되고, 제3 HBM(423) 내의 코어 다이의 셀 어레이에 저장될 수 있다. 또는, 제1 HBM(421)에서의 연산 결과는 제3 HBM(423)을 통해 제5 HBM(425)로 제공될 수 있으며, 연산 결과는 제5 HBM(425) 내의 코어 다이의 셀 어레이에 저장될 수 있다. 또한, 연산 결과가 하드웨어 가속기(410)로 제공되는 경우, 연산 결과는 제5 HBM(425)를 통해 하드웨어 가속기(410)의 제3 캐시(예컨대, 처리 결과 캐시(414))에 제공될 수 있다.
앞선 실시예에서는 메모리 모듈(420)의 첫 번째 행의 HBM들에서 연산 처리가 수행되는 예가 설명되었으나, 이외에도 메모리 모듈(420)의 HBM들은 다양한 방식을 통해 연산 처리를 수행할 수 있다. 예컨대, 두 번째 행의 HBM들은 전술한 방식과 동일 또는 유사하게 제1 캐시(412)로부터 데이터(Data)를 수신하고, 또한 제2 캐시(413)로부터의 가중치(Weight)를 첫 번째 행의 HBM들을 통해 수신할 수 있으며, 수신된 데이터(Data)와 가중치(Weight)를 이용한 연산 처리를 수행할 수 있다. 또한, 연산 결과는 다른 위치의 HBM들에 저장될 수 있으며, 또한 세 번째 행의 HBM들을 통해 하드웨어 가속기(410)의 제3 캐시(414)로 제공될 수 있다.
또는, 메모리 모듈(420)의 두 번째 행의 HBM들은 첫 번째 행의 HBM들로부터 연산 결과를 수신하고, 또한 두 번째 행의 HBM들은 첫 번째 행의 HBM들로부터의 연산 결과와 제2 캐시(413)으로부터 제공된 가중치(Weight)를 이용한 연산을 수행할 수 있다. 또한, 두 번째 행의 HBM들의 연산 결과는 다른 위치의 HBM들에 저장될 수 있으며, 또한 세 번째 행의 HBM들을 통해 하드웨어 가속기(410)의 제3 캐시(414)로 제공될 수 있다.
도 8에 도시된 실시예에 따르면, 뉴럴 네트워크 등에서 처리되는 방대한 양의 연산이 다수의 HBM들에 분산되어 처리될 수 있으므로 그 연산 속도가 빨라질 수 있으며, 또한 연산 처리 결과를 저장함에 있어서 외부의 하드웨어 가속기(410)를 이용함이 없이 다수의 HBM들 사이에서의 데이터 통신을 통해 다양한 위치의 HBM에 저장될 수 있다.
한편, 도 8에 도시된 바와 같이, 다수의 HBM들은 서로 양방향 통신을 수행할 수 있으며, 이에 따라 어느 하나의 HBM에 기 저장된 연산 결과는 외부의 하드웨어 가속기(410)를 거치지 않고 다른 HBM으로 제공될 수 있다. 일 동작 예로서, 뉴럴 네트워크 연산 중 딥 러닝 방법의 일 예로서 RNN(Recurrent Neural Network) 연산이 수행될 수 있으며, 이 때 기 처리되어 저장된 연산 결과가 리커런트 데이터(Recurrent Data)로서 이용될 수 있다. 예컨대, 하드웨어 가속기(410)의 제어에 기반하여 HBM들에 저장된 기존의 연산 결과가 다른 HBM들로 제공되고, 기존의 연산 결과를 이용한 연산(예컨대, 기존의 연산 결과와 가중치의 곱셈 연산)이 수행될 수 있다. 만약 제3 HBM(423)에 기존의 연산 결과가 저장된 경우, 하드웨어 가속기(410)의 제어에 기반하여 제3 HBM(423)으로부터 기존의 연산 결과가 독출되어 제1 HBM(421)로 제공될 수 있다. 또한, 제1 HBM(421)은 수신된 연산 결과와 함께 가중치(Weight)를 수신하고 수신된 정보에 따라 연산 처리 동작을 수행할 수 있다.
도 8에 도시된 연결 구조에 이외에도, 전술한 바와 같이 다수의 HBM들은 다양한 구조에 따라 연결되고, 연결 구조를 통해 데이터, 연산 결과 및 가중치가 HBM들 사이에서 송수신될 수 있다. 이에 따라, 뉴럴 네트워크 연산이 상기 다수의 HBM들에 의해 분산되어 수행되고, 그 연산 결과가 상기 다수의 HBM들 중 적어도 일부로 제공될 수 있으며, 이와 같은 연산 처리 동작의 반복을 통해 뉴럴 네트워크 처리 결과가 발생될 수 있다.
도 9는 연산 처리 동작의 일 예를 나타내는 블록도이다. 도 9에서는 도 8에 도시된 제1 HBM(421)의 버퍼 다이(421_1)와 어느 하나의 코어 다이(421_2)가 예시된다. 도 9의 동작 예에서, 버퍼 다이(421_1)는 외부의 하드웨어 가속기로부터 데이터(Data) 및 가중치(Weight)를 수신하는 것으로 가정된다.
도 8 및 도 9를 참조하면, 버퍼 다이(421_1)는 소정의 클록 신호에 응답하여 데이터(Data) 및 가중치(Weight)를 수신하며, 일 예로서 기록 커맨드(W)에 응답하여 데이터(Data) 및 가중치(Weight)를 수신하는 플립플롭들을 포함할 수 있다. 또한, 수신된 데이터(Data)는 인접한 다른 HBM으로 제공될 수 있으며, 일 예로서 버퍼 다이(421_1)는 상기 플립플롭을 통해 출력되는 데이터(Data')를 제2 HBM(422)으로 제공할 수 있다.
또한, 버퍼 다이(421_1)는 수신된 데이터(Data) 및 가중치(Weight)를 코어 다이(421_2)로 제공할 수 있다. 일 예로서, 버퍼 다이(421_1)와 코어 다이(421_2) 사이에서 전송되는 데이터(Data) 또는 연산 결과(Data_Ari)에 대해 직렬-병렬 변환 처리가 수행될 수 있으며, 버퍼 다이(421_1) 내에는 변환기(SERDES)가 구비될 수 있다. 예컨대, 버퍼 다이(421_1)로부터의 데이터(Data) 및 가중치(Weight)는 변환기(SERDES)를 통해 코어 다이(421_2)로 제공될 수 있다. 상기 변환기(SERDES)는 직렬-병렬 변환 처리를 통해 직렬 데이터를 병렬 데이터로 변환하거나, 병렬 데이터를 직렬 데이터로 변환할 수 있다.
한편, 코어 다이(421_2)로부터의 연산 결과(Data_Ari)가 버퍼 다이(421_1)로 제공될 수 있으며, 일 예로서 연산 결과(Data_Ari)는 변환기(SERDES)를 통해 버퍼 다이(421_1)로 제공될 수 있다. 또한, 상기 연산 결과(Data_Ari)는 다른 HBM에 저장될 수 있다. 또한, 기 저장된 연산 결과를 이용함에 있어서, 하드웨어 가속기의 제어(예컨대, 독출 커맨드(RNN))에 응답하여 다른 HBM으로부터 상기 연산 결과(Data_Ari)가 독출되어 버퍼 다이(421_1)로 제공될 수 있다. 코어 다이(421_2)는 버퍼 다이(421_1)를 통해 연산 결과(Data_Ari)와 가중치(Weight)를 수신하고, 이를 이용한 연산 처리를 수행할 수 있다. 또한, 전술한 바와 같이, 연산 결과(Data_Ari)와 가중치(Weight)를 이용한 연산 결과는 하드웨어 가속기를 통함이 없이 다른 HBM으로 직접 제공될 수 있다.
또한, 버퍼 다이(421_1)를 통해 수신된 가중치(Weight)는 다른 HBM으로 전송(또는, 바이패스)될 수 있으며, 도 9에서는 가중치(Weight)가 플립플롭을 통해 외부의 다른 HBM으로 제공되는 예가 도시된다.
도 10은 본 발명의 예시적인 실시예에 따른 HBM의 일 구현 예를 나타내는 블록도이다. 도 10에는 버퍼 다이와 함께, 이에 적층된 두 개의 코어 다이들이 예시된다. 또한, 도 9에 도시된 데이터 및 가중치를 전달하기 위해 이용되는 플립플롭 등의 구성은 도 10의 인터페이스 회로들에 포함되는 구성일 수 있다.
HBM(500)의 코어 다이들(510, 520) 각각은 셀 코어 및 독출/기록 제어회로를 포함할 수 있으며, 또한 전술한 실시예들에 따라 연산 회로를 포함할 수 있다. 예컨대, 제1 코어 다이(510)는 다수의 메모리 셀들을 포함하는 셀 코어(511), 셀 코어(511)와 버퍼 다이(530) 사이의 데이터 전달 경로를 제어하는 독출/기록 제어회로(512) 및 연산 회로(513)를 포함할 수 있다. 버퍼 다이(530)는 두 개 이상의 인터페이스들을 포함할 수 있으며, 일 예로서 외부의 프로세싱 유닛(예컨대, 하드웨어 가속기)과 통신하는 제1 인터페이스 회로(532)와 다른 HBM과 통신하는 제2 인터페이스 회로(533)를 포함할 수 있다.
또한, 버퍼 다이(530)는 HBM(500)의 전반적인 동작을 제어하는 컨트롤 로직(531)과, 코어 다이들(510, 520)로 제공될 신호들의 경로나 코어 다이들(510, 520)로부터 수신되는 신호들의 경로를 전달하는 경로 제어회로(534, 535)를 포함할 수 있다. 컨트롤 로직(531)은 외부의 프로세싱 유닛으로부터의 커맨드에 기반하여 경로 제어회로(534, 535)를 제어할 수 있으며, 외부의 프로세싱 유닛으로부터 제공된 데이터(Data) 및 가중치(Weight)가 경로 제어회로(534)를 통해 코어 다이들(510, 520)로 제공되도록 제어하며, 또한 코어 다이들(510, 520)로부터의 연산 결과(Data_Ari)가 경로 제어회로(535) 및 제2 인터페이스 회로(533)를 통해 외부의 다른 HBM으로 제공될 수 있도록 제어 동작을 수행할 수 있다. 또한, 컨트롤 로직(531)의 제어에 기반하여, 제1 인터페이스 회로(532)를 통해 수신된 신호가 코어 다이들(510, 520)로 제공됨이 없이 제2 인터페이스 회로(533)를 통해 외부로 바이패스(bypass) 되도록 신호 경로가 제어될 수도 있을 것이다.
도 11 및 도 12는 데이터 처리 시스템의 다양한 동작 예를 나타내는 블록도이다. 도 11 및 도 12에서는 실시간 데이터 처리에 따라 하드웨어 가속기가 데이터를 HBM으로 제공하는 예가 도시된다.
도 11을 참조하면, 데이터 처리 시스템(600)은 하드웨어 가속기로서 GPU(610)를 포함하며, 또한 다수의 HBM들(620, 630)을 포함할 수 있다. 이 때, 제1 HBM(620)은 데이터(Data) 및 가중치(Weight)를 이용한 연산 처리를 수행하고, 그 연산 결과(Data_Ari)를 제2 HBM(630)으로 제공할 수 있다.
GPU(610)는 연산 처리를 지시하기 위한 커맨드(CMD_A)를 제1 HBM(620)으로 제공하고, 또한 데이터(Data) 및 가중치(Weight)를 제1 HBM(620)으로 제공할 수 있다. 제1 HBM(620)은 커맨드(CMD_A)에 응답하여 연산 처리를 수행할 수 있으며, 일 예로서 제1 HBM(620) 내의 다수의 코어 다이들에 구비되는 연산 회로가 데이터(Data) 및 가중치(Weight)를 이용한 연산 처리를 수행할 수 있다. 또한, 제1 HBM(620)는 연산 처리 결과(Data_Ari))를 제2 HBM(630)으로 제공할 수 있다.
GPU(610)는 제2 HBM(630)에 연산 처리 결과(Data_Ari)를 저장하기 위한 커맨드(CMD_W)를 제공할 수 있다. 또한, GPU(610)는 연산 처리 결과(Data_Ari)가 저장될 위치를 나타내는 어드레스(ADD)를 제2 HBM(630)에 제공할 수 있다. 제2 HBM(630)은 GPU(610)로부터의 커맨드(CMD_W) 및 어드레스(ADD)에 응답하여 데이터 기록 동작을 수행할 수 있으며, 일 예로서 제2 HBM(630)은 제1 HBM(620)과의 데이터 통신을 통해 수신한 연산 결과(Data_Ari)를 어드레스(ADD)가 지시하는 위치에 저장할 수 있다.
한편, 도 12를 참조하면, 데이터 처리 시스템(700)은 가속기로서 GPU(710)를 포함하며, 또한 다수의 HBM들(720, 730)을 포함할 수 있다. 도 12에서는, 제1 HBM(720)에 구비되는 버퍼 다이와 제2 HBM(730)에 구비되는 버퍼 다이가 도시된다.
GPU(710)는 연산 처리를 지시하기 위한 커맨드(CMD_A)와 함께, 데이터(Data) 및 가중치(Weight)를 제1 HBM(720)으로 제공할 수 있다. 제1 HBM(720)의 컨트롤 로직(721)의 제어 하에서 제1 HBM(720)의 코어 다이에서 데이터(Data) 및 가중치(Weight)를 이용한 연산 처리가 수행될 수 있다. 또한, 제1 HBM(720)의 버퍼 다이는 연산 결과(Data_Ari)를 코어 다이로부터 수신할 수 있다.
컨트롤 로직(721)은 제2 HBM(730)의 데이터 기록/독출 동작을 제어하기 위한 커맨드/어드레스 생성기(721_1)를 포함할 수 있다. 커맨드/어드레스 생성기(721_1)는 제2 HBM(730)이 연산 결과(Data_Ari)를 저장하도록 기록 커맨드(CMD_W)를 생성할 수 있으며, 또한 연산 결과(Data_Ari)가 저장되는 위치를 지시하기 위한 어드레스(ADD)를 생성할 수 있다. 컨트롤 로직(721)은 인터페이스 회로(722)를 제어함으로써, 제1 HBM(720)에서 생성된 연산 결과(Data_Ari)와 커맨드(CMD_W) 및 어드레스(ADD)를 제2 HBM(730)으로 전송할 수 있다.
도 13는 본 발명의 예시적인 실시예들에 따른 HBM들을 포함하는 데이터 처리 시스템이 뉴럴 네트워크 연산을 수행하는 일 예를 나타내는 도면이다. 도 14에서는 하나의 가속기와 함께 다수 개(예컨대, 4 개)의 HBM들(HBM1 ~ HBM4)을 이용한 뉴럴 네트워크 연산 예가 도시된다.
뉴럴 네트워크 연산은 다양한 모델들에 따른 연산을 수행할 수 있으며, 일 예로서 뉴럴 네트워크 모델은 Convolutional Neural Networks(CNN), Recurrent Neural Networks(RNN), Deep Belief Networks, Restricted Boltzman Machines 등 다양한 종류의 모델들을 포함할 수 있다. 일 예로서, 뉴럴 네트워크 연산은 도 13에 도시된 노드들에서 수행될 수 있다. 또한, 일 노드에서 수행된 연산 결과는 하나 이상의 다른 노드들로 제공될 수 있다.
연산을 수행하는 노드들은 HBM들(HBM1 ~ HBM4)의 다수의 코어 다이들 또는 채널들에 해당할 수 있으며, 상기 노드에서의 연산은 코어 다이(또는, 채널)에 구비되는 연산 회로에 의해 수행될 수 있다. 또한, 도 13에 도시된 노드들은 뉴럴 네트워크 연산에 관련된 레이어들을 구성할 수 있으며, 일 예로서 도 13에 도시된 노드들은 입력 레이어(Input Layer), 하나 이상의 히든 레이어들(Hidden Layer) 및 출력 레이어(Output Layer) 등을 구성할 수 있다.
도 13을 참조하면, 하드웨어 가속기의 제어에 기반하여 HBM들(HBM1 ~ HBM4)에서 전체 뉴럴 네트워크 연산 중 적어도 일부가 수행될 수 있다. 예컨대, HBM들(HBM1 ~ HBM4) 각각은 다수 개의 코어 다이들을 포함하고, 각각의 코어 다이는 하나 이상의 채널들을 포함할 수 있으며, 전체 뉴럴 네트워크 연산 중 적어도 일부가 HBM들(HBM1 ~ HBM4)의 채널들에 분산되어 수행될 수 있다. 또한, 하드웨어 가속기는 전체 뉴럴 네트워크 연산 중 다른 일부를 수행할 수도 있다.
HBM들(HBM1 ~ HBM4)은 다양한 연결 구조를 통해 서로 인터페이스를 수행할 수 있으며, 일 예로서 완전 연결 구조를 갖는 경우 어느 하나의 HBM은 다른 모든 HBM들과 통신을 수행할 수 있다. 반면에, HBM들(HBM1 ~ HBM4)이 부분 연결 구조를 갖는 경우, 어느 하나의 HBM은 다른 HBM들 중 일부의 HBM과 통신을 수행할 수 있다. 일 예로서, 다수의 뉴럴 네트워크 연산들 중 일부는 그 연산 결과가 어느 하나의 HBM으로부터 다른 하나 이상의 HBM들로 제공될 수 있으며, 다른 일부는 그 연산 결과가 다른 HBM으로 제공됨이 없이 동일한 HBM의 다른 코어 다이나 다른 채널로 제공될 수도 있을 것이다.
도 14는 HBM에 구비되는 멀티 포트에서의 신호 전송 예를 나타내는 블록도이다.
도 14를 참조하면, 데이터 처리 시스템(800)은 하드웨어 가속기로서 GPU(810) 및 다수 개의 HBM들(820, 830)을 포함할 수 있다. 일 예로서, 제1 HBM(820)은 제1 인터페이스 회로(821) 및 제2 인터페이스 회로(822)를 포함하고, 제1 인터페이스 회로(821)를 통해 GPU(810)와 통신할 수 있으며, 또한 제2 인터페이스 회로(822)를 통해 제2 HBM(830)와 통신할 수 있다. 또한, 제1 HBM(820)은 제1 인터페이스 회로(821)를 통해 수신된 데이터(Data) 및 가중치(Weight)에 대한 연산 처리 동작을 수행하고, 제2 인터페이스 회로(822)를 통해 연산 결과(Data_Ari)를 제2 HBM(830)로 전송할 수 있다. 일 실시예에 따라, 제1 HBM(820)은 GPU(810)로부터 신호 입력 동작을 일련하게 수행하고, 제2 HBM(830)로 신호 출력 동작을 일련하게 수행할 수 있으며, 제1 HBM(820)에서의 입출력 동작은 동시에 수행될 수 있다.
제1 HBM(820)은 그 외면에 형성되는 다수의 핀들을 통해 데이터(Data), 가중치(Weight) 및 연산 결과(Data_Ari)를 통신할 수 있다. 이 때, 제1 HBM(820)가 전체의 핀들 중 일부의 데이터 핀들을 통해 연산 결과(Data_Ari)를 전송할 수 있으며, 이 경우 데이터 전송 대역폭이 감소될 수 있다.
본 발명의 일 실시예에 따르면, 연산 결과(Data_Ari)의 전송 속도를 향상하기 위해, 제2 인터페이스 회로(822)를 통한 연산 결과(Data_Ari) 전송 방식을 제1 인터페이스 회로(821)와 다르게 설정할 수 있다. 일 예로, 제2 인터페이스 회로(822)를 통해 연산 결과(Data_Ari)와 함께 클록 신호가 제2 HBM(830)로 제공될 수 있으며, 이 때 연산 결과(Data_Ari)는 클록 신호의 라이징 에지 및 폴링 에지에 동기하여 제2 HBM(830)로 제공될 수 있다. 즉, 상기 연산 결과(Data_Ari)는 DDR(Double Data Rate) 방식에 기반하여 제2 HBM(830)로 제공될 수 있다. 반면에, 제1 인터페이스 회로(821)는 클록 신호의 라이징 에지에 응답하여 데이터(Data) 및 가중치(Weight)를 수신할 수 있다.
상기와 같은 실시예에 따르면, HBM에 멀티 포트가 구비되고, 어느 하나의 포트를 이용하여 연산 결과(Data_Ari)를 통신하더라도, 전술한 바와 같은 데이터 전송 방식의 설정을 통해 연산 결과(Data_Ari)의 전송 속도를 향상시킬 수 있다.
도 15는 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 모바일 장치의 일 구현 예를 나타내는 블록도이다.
모바일 장치(900)은 데이터 처리 시스템에 해당하고, 어플리케이션 프로세서(Application Processor, 910)와 메모리 장치(920)를 포함할 수 있다. 어플리케이션 프로세서(910)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property)들을 포함할 수 있다. 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.
어플리케이션 프로세서(910)는 전술한 실시예들에서 설명된 중앙 처리 장치(911)와 하드웨어 가속기(914)를 포함할 수 있다. 도 15에는 하나의 하드웨어 가속기(914)가 예시되어 있으나, 어플리케이션 프로세서(910)는 두 개 이상의 다양한 종류의 하드웨어 가속기들을 포함할 수도 있다. 또한, 어플리케이션 프로세서(910)는 모바일 장치(900)의 전반적인 동작을 제어하기 위한 명령어들을 저장하는 메모리(912)를 더 포함할 수 있다. 또한, 어플리케이션 프로세서(910)는 모뎀 통신 기능을 제어하는 구성으로서 모뎀 프로세서(913)를 더 구비할 수도 있으며, 이 때 상기 어플리케이션 프로세서(910)는 ModAP으로 지칭될 수도 있다.
메모리 장치(920)는 다수의 DRAM 칩들을 포함할 수 있다. 일 예로서, 메모리 장치(920)는 하나 이상의 메모리 모듈들을 포함하고, 각각의 메모리 모듈은 다수의 DRAM 칩들을 포함할 수 있다. 또한, 메모리 장치(920)는 다수 개의 HBM들을 포함할 수 있으며, 일 예로서 다수의 HBM들이 장착된 HBM 모듈을 하나 이상 구비할 수 있다.
전술한 실시예들에 따라, 하드웨어 가속기(914)는 메모리 장치(920)를 제어할 수 있으며, 메모리 장치(920) 내의 다수의 DRAM 칩들은 서로 데이터 통신을 위한 인터페이스를 수행할 수 있다. 일 예로서, 어느 하나의 DRAM 칩은 하드웨어 가속기(914)의 제어에 기반하여 연산 처리를 수행할 수 있으며, 어느 하나의 DRAM 칩으로부터의 연산 결과는 가속기(914)를 통하지 않고 다른 DRAM 칩으로 직접 전송될 수 있다.
한편, 도 15에 도시된 구성 이외에, 모바일 장치(900)는 어플리케이션 프로세서(910)의 외부에 배치되는 추가의 하드웨어 가속기를 포함할 수 있으며, 메모리 장치(920)는 추가의 하드웨어 가속기에 의해 제어될 수도 있을 것이다.
도 16은 본 발명의 실시예에 따른 데이터 처리 시스템을 포함하는 서버 시스템을 나타내는 블록도이다.
도 16을 참조하면, 서버 시스템(1000)은 관리자(710) 및 복수의 서버들(1020_1 ~ 1020_K)을 포함할 수 있다. 복수의 서버들(1020_1 ~ 1020_K) 각각은 도 1 내지 도 15에서 설명된 데이터 처리 시스템에 해당할 수 있다. 복수의 서버들(1020_1 ~ 1020_K)은 소정의 프로토콜(예컨대, PCI, PCIe 등)을 지원하는 버스를 통해 서로 연결되고, 일 예로서 복수의 서버들(1020_1 ~ 1020_K)은 관리자(710)의 제어에 기반하여 P2P 연결 구조를 통해 서로 통신할 수 있다.
어느 하나의 서버(예컨대, 제1 서버(1020_1))를 참조하면, 제1 서버(1020_1)는 전술한 실시예들에 따른 중앙 처리 유닛, 하드웨어 가속기 및 다수의 메모리 장치들을 포함하고, 서버의 기능에 따른 다양한 종류의 연산 처리를 수행하고 그 처리 결과를 저장할 수 있다. 일 실시예에 따라, 서버 시스템(1000)은 뉴럴 네트워크 서버 시스템에 해당하고, 제1 서버(1020_1)는 중앙 처리 유닛 및 하드웨어 가속기의 제어에 기반하여 다수의 메모리 장치들 내에서 뉴럴 네트워크 연산이 수행될 수 있다. 또한 다수의 메모리 장치들 내에서의 연산 결과들에 근거하여 뉴럴 네트워크 처리 결과가 생성되고, 처리 결과는 서버 시스템(1000)의 클라이언트에게 제공될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 하드웨어 가속기로부터 연산 처리가 수행될 데이터 및 제1 정보를 수신하고, 상기 수신된 데이터 및 제1 정보를 이용한 연산 처리를 수행함으로써 연산 결과를 생성하며, 적어도 하나의 다른 메모리 장치와의 인터페이스를 통해 상기 연산 결과를 출력하는 제1 메모리 장치; 및
    상기 연산 결과를 상기 하드웨어 가속기를 경유함이 없이 상기 제1 메모리 장치로부터 수신하고, 상기 수신된 연산 결과를 저장하는 제2 메모리 장치를 구비하고,
    상기 제1 메모리 장치는, 외부와 통신하는 제1 다이와, 각각 메모리 셀 어레이 및 상기 연산 처리를 수행하는 연산 회로를 포함하는 다수의 제2 다이들을 포함하며,
    상기 제1 다이는, 상기 하드웨어 가속기와의 데이터 통신을 위한 제1 인터페이스 회로와, 상기 제2 메모리 장치와의 연산 결과 통신을 위한 제2 인터페이스 회로를 포함하는 것을 특징으로 하는 메모리 모듈.
  2. 제1항에 있어서,
    상기 데이터를 이용한 연산 처리는 상기 다수의 제2 다이들에 의해 분산되어 병렬하게 수행되는 것을 특징으로 하는 메모리 모듈.
  3. 제1항에 있어서,
    상기 하드웨어 가속기는, FPGA(field-programmable gate array), MPPA(massively parallel processor array), GPU(graphics processing unit), ASIC(Application-Specific Integrated Circuit), NPU(neural processing unit), TPU(Tensor Processing Unit) 및 MPSoC(Multi-Processor System-on-Chip) 중에서 선택된 하나 이상의 가속기들을 포함하는 것을 특징으로 하는 메모리 모듈.
  4. 삭제
  5. 제1항에 있어서,
    상기 제1 인터페이스 회로는 클록 신호의 상승 에지 및 하강 에지 중 어느 하나의 에지에 응답하여 상기 데이터를 수신하고,
    상기 제2 인터페이스 회로는 클록 신호의 상승 에지 및 하강 에지에 응답하여 상기 연산 결과를 출력하는 것을 특징으로 하는 메모리 모듈.
  6. 제1항에 있어서,
    상기 제1 메모리 장치는 제1 HBM(high bandwidth memory)이고, 상기 제2 메모리 장치는 제2 HBM이며,
    상기 제1 다이는 버퍼 다이이고, 상기 다수의 제2 다이들 각각은 상기 버퍼 다이에 적층되는 코어 다이인 것을 특징으로 하는 메모리 모듈.
  7. 제1항에 있어서,
    상기 제1 메모리 장치는, 뉴럴 네트워크 연산을 위해 상기 하드웨어 가속기로부터 가중치를 상기 제1 정보로서 수신하고, 상기 수신된 데이터와 가중치를 이용한 뉴럴 네트워크 연산 처리 결과를 상기 연산 결과로서 생성하는 것을 특징으로 하는 메모리 모듈.
  8. 제1항에 있어서,
    상기 제2 메모리 장치는 상기 하드웨어 가속기로부터 커맨드 및 어드레스를 수신하고, 상기 제1 메모리 장치로부터 수신된 상기 연산 결과를 상기 어드레스가 지시하는 위치에 저장하는 것을 특징으로 하는 메모리 모듈.
  9. 제1항에 있어서,
    상기 제1 메모리 장치는 커맨드 및 어드레스 생성기를 구비하고, 상기 연산 결과에 대한 저장을 요청하는 커맨드 및 상기 연산 결과가 저장될 위치를 나타내는 어드레스를 상기 제2 메모리 장치로 더 전송하고,
    상기 제2 메모리 장치는 상기 제1 메모리 장치로부터의 커맨드 및 어드레스에 응답하여 상기 연산 결과를 저장하는 것을 특징으로 하는 메모리 모듈.
  10. 제1항에 있어서,
    상기 제2 메모리 장치와 통신하는 제3 메모리 장치를 더 구비하고,
    상기 제3 메모리 장치는 상기 하드웨어 가속기의 제어에 기반하여 상기 제2 메모리 장치로부터 상기 연산 결과를 수신하고, 상기 연산 결과를 상기 하드웨어 가속기로 제공하는 것을 특징으로 하는 메모리 모듈.
  11. 제1항에 있어서,
    상기 하드웨어 가속기는 상기 메모리 모듈 내에 배치되는 것을 특징으로 하는 메모리 모듈.
  12. 신호 전달을 위한 배선이 형성된 인터포저; 및
    상기 인터포저 상에 장착되는 다수 개의 HBM(high bandwidth memory)들을 구비하고,
    상기 다수 개의 HBM들 각각은, 외부와 통신하는 버퍼 다이와, 각각 메모리 셀 어레이 및 연산 처리를 수행하는 연산 회로를 포함하는 다수의 코어 다이들을 포함하고,
    상기 다수 개의 HBM들 중 제1 HBM은, 버퍼 다이를 통해 메모리 컨트롤러로부터 데이터를 수신하고, 상기 다수의 코어 다이들에서 상기 수신된 데이터를 이용한 연산 처리를 병렬하게 수행하며,
    상기 제1 HBM의 버퍼 다이와 상기 다수 개의 HBM들 중 제2 HBM의 버퍼 다이 사이의 데이터 통신을 통해, 상기 제1 HBM으로부터의 연산 결과가 상기 제2 HBM으로 제공되는 것을 특징으로 하는 메모리 모듈.
  13. 제12항에 있어서,
    상기 메모리 컨트롤러는 상기 메모리 모듈의 외부에 배치되고, 뉴럴 네트워크 연산을 제어하는 하드웨어 가속기인 것을 특징으로 하는 메모리 모듈.
  14. 제13항에 있어서,
    상기 제1 HBM는 상기 버퍼 다이를 통해 상기 하드웨어 가속기로부터 가중치를 더 수신하고, 상기 제1 HBM의 다수 개의 코어 다이들 각각은 상기 데이터 및 가중치를 이용한 뉴럴 네트워크 연산 처리를 수행하는 것을 특징으로 하는 메모리 모듈.
  15. 제14항에 있어서,
    상기 다수 개의 HBM들은 A 행 및 B 열에 따라 배치되는 HBM 들을 포함하고(단, A 및 B는 각각 2 이상의 정수), 상기 제1 HBM과 상기 제2 HBM은 동일한 열에 위치하며,
    동일한 행에 위치하는 B 개의 HBM 들은 상기 메모리 컨트롤러로부터 서로 다른 가중치들을 병렬하게 수신하고, 상기 하드웨어 가속기로부터의 데이터는 일 방향으로 상기 B 개의 HBM 들에 순차적으로 전달되며,
    상기 B 개의 HBM 들 각각은 수신된 데이터 및 가중치에 따른 뉴럴 네트워크 연산을 수행하는 것을 특징으로 하는 메모리 모듈.
  16. 제15항에 있어서,
    상기 하드웨어 가속기로부터의 가중치는 일 방향으로 동일한 열의 A 개의 HBM 들에 순차적으로 전달되는 것을 특징으로 하는 메모리 모듈.
  17. 제13항에 있어서,
    상기 다수 개의 HBM들에 구비되는 전체 코어 다이들 중 일부는 상기 뉴럴 네트워크에서 입력 레이어를 구성하고, 다른 일부는 상기 뉴럴 네트워크에서 하나 이상의 히든 레이어들을 구성하며, 또 다른 일부는 상기 뉴럴 네트워크에서 출력 레이어를 구성하는 것을 특징으로 하는 메모리 모듈.
  18. 외부의 메모리 컨트롤러와 외부의 메모리 장치와 각각 인터페이스를 수행하는 제1 다이;
    상기 제1 다이 상에 적층되고, 각각 메모리 셀 어레이를 포함하는 다수의 제2 다이들; 및
    상기 제1 다이와 상기 다수의 제2 다이들 사이에서 신호를 송수신하는 스루 실리콘 비아(TSV) 영역을 구비하고,
    상기 다수의 제2 다이들 각각은 다수의 채널들을 포함하고, 상기 다수의 채널들 각각은 상기 메모리 컨트롤러로부터 제공된 데이터를 이용한 연산 처리를 수행하는 연산 회로를 포함하며,
    상기 제1 다이는,
    상기 메모리 컨트롤러와 통신함으로써 상기 데이터 및 연산 명령을 수신하고, 상기 TSV 영역을 통해 상기 데이터를 상기 제2 다이들로 전달하는 제1 인터페이스 회로; 및
    상기 TSV 영역을 통해 상기 제2 다이로부터 연산 결과를 수신하고, 상기 외부의 메모리 장치와 통신함으로써 상기 연산 결과를 출력하는 제2 인터페이스 회로를 포함하는 것을 특징으로 하는 메모리 장치.
  19. 제18항에 있어서,
    상기 메모리 장치는 HBM(high bandwidth memory)이고,
    상기 제1 다이는 버퍼 다이이고, 상기 다수의 제2 다이들 각각은 코어 다이인 것을 특징으로 하는 메모리 장치.
  20. 제18항에 있어서,
    상기 제2 인터페이스 회로는 상기 외부의 메모리 장치로부터 상기 연산 결과를 수신하고,
    상기 연산 회로는, 상기 메모리 컨트롤러로부터 제공되는 정보와 상기 제2 인터페이스 회로를 통해 수신된 상기 연산 결과를 이용한 연산 처리를 수행하는 것을 특징으로 하는 메모리 장치.
KR1020170152504A 2017-11-15 2017-11-15 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 KR102424962B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170152504A KR102424962B1 (ko) 2017-11-15 2017-11-15 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
US16/034,688 US10642612B2 (en) 2017-11-15 2018-07-13 Memory device performing parallel arithmetic processing and memory module including the same
CN201811000516.0A CN109783410B (zh) 2017-11-15 2018-08-30 执行并行运算处理的存储器设备和包括其的存储器模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170152504A KR102424962B1 (ko) 2017-11-15 2017-11-15 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈

Publications (2)

Publication Number Publication Date
KR20190055608A KR20190055608A (ko) 2019-05-23
KR102424962B1 true KR102424962B1 (ko) 2022-07-25

Family

ID=66432063

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170152504A KR102424962B1 (ko) 2017-11-15 2017-11-15 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈

Country Status (3)

Country Link
US (1) US10642612B2 (ko)
KR (1) KR102424962B1 (ko)
CN (1) CN109783410B (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210006120A (ko) * 2019-07-08 2021-01-18 에스케이하이닉스 주식회사 데이터 저장 장치, 데이터 처리 시스템 및 이를 위한 가속 장치
US20210064971A1 (en) 2019-08-29 2021-03-04 Micron Technology, Inc. Transfer data in a memory system with artificial intelligence mode
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
KR102491202B1 (ko) * 2019-09-10 2023-01-25 주식회사 모빌린트 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
US20210081353A1 (en) * 2019-09-17 2021-03-18 Micron Technology, Inc. Accelerator chip connecting a system on a chip and a memory chip
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
US11397694B2 (en) 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
KR102518066B1 (ko) * 2019-10-02 2023-04-04 포항공과대학교 산학협력단 라운드 로빈 데이터 전달 방식의 뉴럴 네트워크 회로
KR20210063496A (ko) * 2019-11-22 2021-06-02 삼성전자주식회사 프로세싱 회로를 포함하는 메모리 장치, 그리고 시스템 온 칩과 메모리 장치를 포함하는 전자 장치
EP4081954A4 (en) * 2019-12-27 2023-04-05 Micron Technology, Inc. NEUROMORPHIC STORAGE DEVICE AND METHOD
US11720354B2 (en) * 2020-01-07 2023-08-08 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
KR20210093521A (ko) 2020-01-20 2021-07-28 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템
KR20210098728A (ko) * 2020-02-03 2021-08-11 삼성전자주식회사 적층형 메모리 장치 및 상기 적층형 메모리 장치의 동작 방법
KR102349810B1 (ko) * 2020-08-07 2022-01-10 금오공과대학교 산학협력단 오토 디코더를 활용한 고속의 rm 부호 디코딩 방법
US20220051089A1 (en) * 2020-08-17 2022-02-17 Google Llc Neural Network Accelerator in DIMM Form Factor
JP2022050191A (ja) 2020-09-17 2022-03-30 キオクシア株式会社 半導体記憶装置及び情報処理装置
US11748061B2 (en) 2020-10-15 2023-09-05 Gigantor Technologies Inc. Custom mass multiplication circuits
KR102383962B1 (ko) * 2020-11-19 2022-04-07 한국전자기술연구원 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치
US20220358069A1 (en) * 2021-05-07 2022-11-10 Chronos Tech Llc ADVANCED CENTRALIZED CHRONOS NoC
KR102371451B1 (ko) 2021-05-27 2022-03-07 충남대학교 산학협력단 멀티포트 메모리를 이용한 병렬 곱셈장치
TWI798817B (zh) * 2021-09-08 2023-04-11 鯨鏈科技股份有限公司 積體電路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148482A1 (en) * 2003-01-13 2004-07-29 Grundy Kevin P. Memory chain
US20160379115A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US20170255397A1 (en) * 2016-03-07 2017-09-07 Advanced Micro Devices, Inc. Efficient implementation of queues and other data structures using processing near memory

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7296112B1 (en) 2002-12-10 2007-11-13 Greenfield Networks, Inc. High bandwidth memory management using multi-bank DRAM devices
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7246215B2 (en) 2003-11-26 2007-07-17 Intel Corporation Systolic memory arrays
US7796462B2 (en) 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US7861014B2 (en) 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US8799914B1 (en) * 2009-09-21 2014-08-05 Tilera Corporation Managing shared resource in an operating system by distributing reference to object and setting protection levels
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
GB2511672B (en) * 2011-11-04 2020-04-15 Univ Waseda Processor system and accelerator
KR101867286B1 (ko) * 2012-02-27 2018-06-15 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
US9442854B2 (en) * 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
CN105378651B (zh) 2013-05-24 2018-09-18 相干逻辑公司 具有可编程优化的存储器-网络处理器
US9361973B2 (en) 2013-10-28 2016-06-07 Cypress Semiconductor Corporation Multi-channel, multi-bank memory with wide data input/output
KR102273023B1 (ko) * 2014-10-16 2021-07-05 삼성전자주식회사 화질 개선 알고리즘 처리 방법 및 장치
EP3035204B1 (en) * 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US10996959B2 (en) * 2015-01-08 2021-05-04 Technion Research And Development Foundation Ltd. Hybrid processor
CN104794100B (zh) * 2015-05-06 2017-06-16 西安电子科技大学 基于片上网络的异构多核处理系统
US10192162B2 (en) 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
US9805303B2 (en) 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US9934842B2 (en) 2015-11-12 2018-04-03 Intel Corporation Multiple rank high bandwidth memory
US9892058B2 (en) * 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
US10032695B2 (en) 2016-02-19 2018-07-24 Google Llc Powermap optimized thermally aware 3D chip package
US10416896B2 (en) * 2016-10-14 2019-09-17 Samsung Electronics Co., Ltd. Memory module, memory device, and processing device having a processor mode, and memory system
US20180115496A1 (en) * 2016-10-21 2018-04-26 Advanced Micro Devices, Inc. Mechanisms to improve data locality for distributed gpus
US10810492B2 (en) * 2017-01-27 2020-10-20 Hewlett Packard Enterprise Development Lp Memory side acceleration for deep learning parameter updates
US11687759B2 (en) * 2018-05-01 2023-06-27 Semiconductor Components Industries, Llc Neural network accelerator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148482A1 (en) * 2003-01-13 2004-07-29 Grundy Kevin P. Memory chain
US20160379115A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US20170255397A1 (en) * 2016-03-07 2017-09-07 Advanced Micro Devices, Inc. Efficient implementation of queues and other data structures using processing near memory

Also Published As

Publication number Publication date
US20190146788A1 (en) 2019-05-16
CN109783410A (zh) 2019-05-21
CN109783410B (zh) 2024-01-30
KR20190055608A (ko) 2019-05-23
US10642612B2 (en) 2020-05-05

Similar Documents

Publication Publication Date Title
KR102424962B1 (ko) 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
JP7317478B2 (ja) 積層型メモリ装置及びメモリシステム
US10410685B2 (en) Memory device for performing internal process and operating method thereof
CN109840223B (zh) 存储器装置、包括其的电子装置和电子装置的操作方法
US11194579B2 (en) Memory device supporting skip calculation mode and method of operating the same
US20210232513A1 (en) Memory device for adjusting memory capacity per channel and memory system including the same
CN111694514A (zh) 用于处理运算的存储器设备及操作该存储器设备的方法
US10884958B2 (en) DIMM for a high bandwidth memory channel
US11474950B2 (en) Memory controller including plurality of address mapping tables, system on chip, and electronic device
US11276459B2 (en) Memory die including local processor and global processor, memory device, and electronic device
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
US10922258B2 (en) Centralized-distributed mixed organization of shared memory for neural network processing
US10963404B2 (en) High bandwidth DIMM
US11281397B2 (en) Stacked memory device performing function-in-memory (FIM) operation and method of operating the same
US20200293452A1 (en) Memory device and method including circular instruction memory queue
EP4156186A2 (en) Memory device for reducing timing parameters and power consumption for internal processing operation and method of implementing the same
TWI757300B (zh) 用於執行內部程序之記憶體裝置及其操作方法
US20240079036A1 (en) Standalone Mode
US12001699B2 (en) Memory device performing configurable mode setting and method of operating the same
US20170031633A1 (en) Method of operating object-oriented data storage device and method of operating system including the same
KR102345539B1 (ko) 내부 프로세스를 수행하는 메모리 장치 및 그 동작방법

Legal Events

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