KR20200025200A - 전자 장치 및 전자 장치의 동작 방법 - Google Patents

전자 장치 및 전자 장치의 동작 방법 Download PDF

Info

Publication number
KR20200025200A
KR20200025200A KR1020180102183A KR20180102183A KR20200025200A KR 20200025200 A KR20200025200 A KR 20200025200A KR 1020180102183 A KR1020180102183 A KR 1020180102183A KR 20180102183 A KR20180102183 A KR 20180102183A KR 20200025200 A KR20200025200 A KR 20200025200A
Authority
KR
South Korea
Prior art keywords
feature vector
object recognition
weights
sub
data
Prior art date
Application number
KR1020180102183A
Other languages
English (en)
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 KR1020180102183A priority Critical patent/KR20200025200A/ko
Priority to US16/295,526 priority patent/US10936891B2/en
Priority to CN201910535301.7A priority patent/CN110874810B/zh
Publication of KR20200025200A publication Critical patent/KR20200025200A/ko
Priority to US17/188,166 priority patent/US11521374B2/en
Priority to US18/074,916 priority patent/US20230106073A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72522

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Multimedia (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)

Abstract

전자 장치는 그래픽 프로세서 및 적층형 메모리 장치를 포함한다. 상기 그래픽 프로세서는 학습 데이터와 가중치들을 이용하여 객체 인식 모델을 학습시켜 학습된 객체 인식 모델을 제공하는 인공 신경망 엔진을 구비한다. 상기 적층형 메모리 장치는 상기 학습 데이터와 상기 가중치들을 저장하고, 상기 학습 데이터와 상기 가중치들을 상기 그래픽 프로세서에 제공하고, 입력 데이터로부터 추출된 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터를 상기 그래픽 프로세서에 제공하고, 상기 학습된 객체 인식 모델을 상기 그래픽 프로세서로부터 수신하고, 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 제2 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 수행한다. 상기 인공 신경망 엔진은 상기 제1 연산과 병렬적으로 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 생성하는 제2 연산을 수행하고, 상기 제1 객체 인식 결과를 상기 적층형 메모리 장치에 제공한다.

Description

전자 장치 및 전자 장치의 동작 방법{Electronic devices and methods of operating electronic devices}
본 발명은 인공 지능 분야에 관한 것으로, 보다 상세하게는 성능을 높일 수 있는 전자 장치 및 전자 장치의 동작 방법에 관한 것이다.
컴퓨터, 스마트폰 등의 정보 기기의 보급으로 인하여 디지털 컴퓨터의 응용 및 디지털 신호처리 기술이 발전하게 되었다.
특히, 근래에는 인공 지능, 영상인식(Video/Motion Recognition), 딥러닝(Deep learning), 기계학습(Machine Learning) 등의 기술이 발전함으로써, 음성, 이미지, 동영상 또는 텍스트와 같은 데이터를 자동(Automation)으로 인식하여 데이터와 연관된 정보를 제공하거나 데이터와 관련된 서비스를 제공하는 지능형 서비스(Intelligent Service)가 다양한 분야에서 사용되고 있다.
또한 최근에는 지능형 서비스가 에지 디바이스(edge device)에 채택되고 있다.
본 발명의 일 목적은 인공 지능 연산을 병렬적으로 수행할 수 있는 구조를 가지는 전자 장치를 제공하는 것이다.
본 발명의 일 목적은 인공 지능 연산을 병렬적으로 수행할 수 있는 전자 장치의 동작 방법을 제공하는 것이다.
본 발명의 실시예들에 따른 전자 장치는 그래픽 프로세서 및 적층형 메모리 장치를 포함한다. 상기 그래픽 프로세서는 학습 데이터와 가중치들을 이용하여 객체 인식 모델을 학습시켜 학습된 객체 인식 모델을 제공하는 인공 신경망 엔진을 구비한다. 상기 적층형 메모리 장치는 상기 학습 데이터와 상기 가중치들을 저장하고, 상기 학습 데이터와 상기 가중치들을 상기 그래픽 프로세서에 제공하고, 입력 데이터로부터 추출된 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터를 상기 그래픽 프로세서에 제공하고, 상기 학습된 객체 인식 모델을 상기 그래픽 프로세서로부터 수신하고, 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 제2 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 수행한다. 상기 인공 신경망 엔진은 상기 제1 연산과 병렬적으로 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 생성하는 제2 연산을 수행하고, 상기 제1 객체 인식 결과를 상기 적층형 메모리 장치에 제공한다.
본 발명의 실시예들에 따른 전자 장치는 어플리케이션 프로세서, 그래픽 프로세서 및 적층형 메모리 장치를 포함한다. 상기 어플리케이션 프로세서는 학습 데이터와 웨이트들을 제공하고, 객체를 구성하는 객체 데이터로부터 추출된 특징 벡터를 제공한다. 상기 그래픽 프로세서는 상기 학습 데이터와 가중치들을 이용하여 객체 인식 모델을 학습시켜 학습된 객체 인식 모델을 제공하는 인공 신경망 엔진을 구비한다. 상기 적층형 메모리 장치는 상기 프로세서로부터 수신된 상기 학습 데이터, 상기 웨이트들 및 상기 특징 벡터들을 저장하고, 상기 학습 데이터와 상기 가중치들을 상기 그래픽 프로세서에 제공하고, 상기 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터를 상기 그래픽 프로세서에 제공하고, 상기 그래픽 프로세서로부터 수신된 상기 학습된 객체 인식 모델을 저장하고, 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 제2 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 수행한다. 상기 인공 신경망 엔진은 상기 제1 연산과 병렬적으로 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 생성하는 제2 연산을 수행하고, 상기 제1 객체 인식 결과를 상기 적층형 메모리 장치에 제공한다.
본 발명의 실시예들에 따른 인공 신경망 엔진을 구비하는 그래픽 프로세서 및 상기 그래픽 프로세서와 통신하는 적층형 메모리 장치를 구비하는 전자 장치의 동작 방법에서는 상기 인공 신경망 엔진에서 학습 데이터와 가중치들을 객체 인식 모델에 적용하여 상기 객체 인식 모델을 학습시키고, 상기 적층형 메모리 장치의 데이터 분배기에서 입력 데이터와 관련된 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제2 서브 특징 벡터를 상기 그래픽 프로세서에 제공하고, 상기 적층형 메모리 장치의 곱셈 및 누적 회로에서 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 출력하는 제1 연산을 수행하고, 상기 그래픽 프로세서의 상기 인공 신경망 엔진에서 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 출력하는 제2 연산을 수행하고, 상기 적층형 메모리 장치의 합성기에서 상기 제1 객체 인식 결과와 상기 제2 객체 인식 결과를 병합하여 병합된 객체 인식 결과를 사용자에게 제공한다. 상기 제1 연산과 상기 제2 연산은 병렬적으로 수행된다.
본 발명에 실시예들에 따르면, 입력 데이터에 상응하는 또는 입력 데이터로부터 추출된 특징 벡터를 적층형 메모리 장치에 구비되는 프로세서-인-메모리 회로에서 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 특징 벡터를 그래픽 프로세서에 제공하고, 상기 그래픽 프로세서가 제1 특징 벡터에 대하여 인공 지능 연산을 수행하는 것과 병렬적으로 적층형 메모리 장치의 프로세서-인-메모리 회로에서 제2 특징 벡터에 대하여 인공 지능 연산을 수행하여 특징 벡터에 대한 로드 밸런싱을 수행할 수 있다. 따라서, 본 발명의 실시예들에 따르면 그래픽 프로세서나 중앙 처리 장치의 변경없이 인공 지능 연산의 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 인공 지능 연산을 병렬적으로 수행할 수 있는 전자 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 도 1의 객체 인식 모델을 나타낸다.
도 3은 본 발명의 실시예들에 따른 도 1의 인공 신경망 엔진을 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 도 3의 학습 모듈을 나타내는 블록도이다.
도 5는 본 발명의 실시예들에 따른 도 3의 인식 모듈을 나타내는 블록도이다.
도 6은 본 발명의 실시예들에 따른 도 1의 전자 장치에서 적층형 메모리 장치를 나타내는 블록도이다.
도 7은 본 발명의 실시예들에 따른 도 6의 적층형 메모리 장치를 나타내는 블록도이다.
도 8은 도 7의 적층형 메모리 장치에서 인공 지능 연산의 분배가 수행되는 것을 나타낸다.
도 9는 본 발명의 실시예들에 따른 도 1의 프로세서-인-메모리 회로를 나타내는 블록도이다.
도 10은 본 발명의 실시예들에 따른 도 9의 곱셈 및 누적 회로를 나타내는 블록도이다.
도 11은 본 발명의 실시예들에 따른 도 6의 적층형 메모리 장치에 포함되는 메모리 다이들 중 하나를 나타내는 블록도이다.
도 12는 본 발명의 실시예들에 따른 도 11의 메모리 다이에서 제1 뱅크 어레이를 나타낸다.
도 13은 도 9의 프로세서-인-메모리 회로의 특징 벡터와 가중치와 관련된 커널을 나타낸다.
도 14는 도 1의 그래픽 프로세서에서의 제2 연산을 나타내고, 도 15는 프로세서-인-메모리 회로에서의 제1 연산을 나타내고, 도 16은 도 9의 병합기의 동작을 나타낸다.
도 17 및 도 18은 도 9의 데이터 분배기가 입력 데이터 또는 특징 벡터를 제1 서브 특징 벡터 및 제2 서브 특징 벡터로 분할하는 것을 나타낸다.
도 19는 본 발명의 실시예들에 따른 적층형 메모리 장치에서 데이터카피 동작이 수행되는 예를 나타내는 블록도이다.
도 20은 본 발명의 실시예들에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 21은 본 발명의 실시예들에 따른 객체 인식 장치를 포함하는 인공 지능 가속기를 나타내는 블록도이다.
도 22는 본 발명의 실시예들에 따른 적층형 메모리 장치를 포함하는 반도체 패키지의 예를 나타내는 구조도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
인공 지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
도 1은 본 발명의 실시예들에 따른 인공 지능 연산을 병렬적으로 수행할 수 있는 전자 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 전자 장치(10)는 중앙 처리 장치(central processing unit, CPU)(30), 그래픽 프로세서(GPU, 50) 및 적층형 메모리 장치(90)를 포함할 수 있다.
중앙 처리 장치(30), 그래픽 프로세서(50) 및 적층형 메모리 장치(90)는 버스(40)를 통하여 서로 통신할 수 있다.
적층형 메모리 장치(90)는 버퍼 다이(200) 및 버퍼 다이 상에 적층되며 데이터를 저장하는 복수의 메모리 다이들(300)을 포함할 수 있다. 메모리 다이들(300)은 관통 실리콘 비아(220)를 통하여 버퍼 다이(200)에 연결될 수 있다. 적층형 메모리 장치(90)는 학습 데이터(LDT), 가중치들(WDT)을 저장하고, 학습 데이터(LDT) 및 가중치들(WDT)을 그래픽 프로세서(50)에 제공할 수 있다.
그래픽 프로세서(50)는 인공 신경망 엔진(100)을 포함할 수 있다. 인공 신경망 엔진(100)은 적층형 메모리 장치(90)로부터 학습 데이터(LDT)와 가중치들(WDT)을 수신하고, 학습 데이터(LDT)와 가중치들(WDT)을 이용하여 객체 인식 모델(object recognition model, ORM)(105)을 학습시키고, 학습된 객체 인식 모델(LORM)을 적층형 메모리 장치(90)에 제공할 수 있다.
인공 신경망 엔진(100)과 적층형 메모리 장치(90)의 일부는 객체 인식 장치를 구성할 수 있다.
객체 인식 장치의 적어도 일부는 소프트웨어 모듈로 구현되거나 하드웨어 칩 형태로 제작되어 전술한 각종 전자 장치에 탑재될 수 있다. 예를 들어, 객체 인식 장치는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다. 이 때, 인공 지능을 위한 전용 하드웨어 칩은 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 기계 학습과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다.
객체 인식 장치가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
실시예에 따라서, 객체 인식 모델(105)은 복수의 네트워크 노드들 간의 연결관계 및 상기 복수의 네트워크 노드들 중 일부의 상기 선택된 가중치에 기초하여 연산을 수행하는 신경망 모델 또는 딥러닝 모델일 수 있다.
객체 인식 모델(105)은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. 데이터 인식 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다.
데이터 인식 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다. 데이터 인식 모델에는, 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network), CNN(Convolutional Neural Network)과 같은 모델들이 포함될 수 있으며, 전술한 예에 특별히 한정되지는 않는다.
인공 신경망 엔진(100)은 적층형 메모리 장치(90)로부터 입력 데이터에 관련된 제1 서브 특징 벡터(SFV1)를 수신하고, 제1 서브 특징 벡터(SFV1)와 가중치들(WDT)을 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과(ORR1)를 적층형 메모리 장치(90)에 제공하는 제2 연산을 수행할 수 있다.
적층형 메모리 장치(90)는 입력 데이터에 관련된 제2 서브 특징 벡터와 가중치들(WDT)을 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 상기 제1 연산과 병렬적으로 수행할 수 있다.
버퍼 다이(200)는 입력 데이터 또는 입력 데이터로부터 추출된 특징 벡터를 제1 서브 특징 벡터(SFV1)와 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터(SFV1)를 인공 신경망 엔진(100)에 제공하고, 상기 제1 연산을 수행하는 프로세서-인-메모리 회로(processor-in-memory circuit, 230)를 포함할 수 있다.
중앙 처리 장치(30)는 상기 프로세서-인-메모리 회로(230)를 제어하는 시스템 소프트웨어(35)를 포함할 수 있다.
도 2는 본 발명의 실시예들에 따른 도 1의 객체 인식 모델을 나타낸다.
도 2를 참조하면, 객체 인식 모델(105)은 입력 레이어(110), 히든 레이어(130), 출력 레이어(150), 제1 연결선들(120) 및 제2 연결 선들(140)을 포함할 수 있다.
입력 레이어(110)는 입력 노드들(111, 112, 113)을 포함하고, 히든 레이어(130)는 히든 노드들(131, 132)를 포함하고, 출력 레이터(151, 152, 153)을 포함할 수 있다.
입력 레이어(110)의 입력 노드들(111, 112, 113)은 학습 데이터(LDT) 또는 제1 서브 특징 벡터(SFV1)를 수신하고, 제1 가중치들(WT11~WT16)을 갖는 제1 연결선들(120)을 통하여 학습 데이터(LDT) 또는 제1 서브 특징 벡터(SFV1)를 히든 레이어(130)에 전달한다.
히든 레이어(130)의 히든 노드들(131, 132)은 입력 레이어(110)로부터 수신된 학습 데이터(LDT) 또는 제1 서브 특징 벡터(SFV1)에 대하여 연산을 수행하여 제2 가중치들(WT21~WT26)을 갖는 제2 연결선들(140)을 통하여 출력 레이어(150)에 전달한다.
출력 레이어(150)의 출력 노드들(151, 152, 153)은 히든 레이어(130)로부터 전달받은 값들에 대하여 연산을 수행하여 학습 데이터(LDT)에 상응하는 객체 인식 결과(ORR) 또는 제1 서브 특징 벡터(SFV1)에 상응하는 제1 객체 인식 결과(ORR1)을 출력할 수 있다.
도 2에서 제1 가중치들(WT11~WT16) 및 제2 가중치들(WT21~WT26)은 연결 가중치들 또는 연결 강도라 호칭될 수 있다.
도시하지는 않았지만, 객체 인식 모델(105)은 복수 개의 히든 레이어들을 포함할 수 있다. 복수 개의 히든 레이어들을 포함하는 뉴럴 네트워크는 깊은 뉴럴 네트워크(deep neural network)라고 지칭될 수 있다. 깊은 뉴럴 네트워크를 학습시키는 것은 깊은 학습(deep learning)이라고 지칭될 수 있다.
히든 레이어(130)에 제1 히든 레이어, 제2 히든 레이어, 및 제3 히든 레이어가 포함되는 경우를 가정하면, 제1 히든 레이어에 속한 히든 노드의 출력은 제2 히든 레이어에 속한 히든 노드들에 연결될 수 있다. 제2 히든 레이어에 속한 히든 노드의 출력은 제3 히든 레이어에 속한 히든 노드들에 연결될 수 있다.
예를 들어, 객체 인식 모델(105)은 각 히든 레이어에 이전 히든 레이어에 포함된 이전 히든 노드들의 출력들을 연결 가중치를 가지는 연결선들을 통해 입력할 수 있고, 이전 히든 노드들의 출력들에 연결가중치가 적용된 값들 및 활성화 함수에 기초하여 히든 레이어에 포함된 히든 노드들의 출력을 생성할 수 있다. 일 실시예에 따르면, 다음 히든 노드로 출력를 발화하기 위하여, 활성화 함수의 결과는 현재 히든 노드의 임계 값을 초과해야 한다. 이 경우, 노드는 입력 벡터들을 통하여 특정 임계 활성화 강도에 도달하기 전에는 다음 노드로 신호를 발화하지 않고, 비활성화 상태를 유지할 수 있다.
도 3은 본 발명의 실시예들에 따른 도 1의 인공 신경망 엔진을 나타내는 블록도이다.
도 3을 참조하면, 인공 신경망 엔진(100)은 학습 모듈(180), 및 인식 모듈(190)을 포함할 수 있다. 실시예에 있어서, 인공 신경망 엔진(100)은 모델 업데이트 모듈(197)을 더 포함할 수 있다.
학습 모듈(180)은 학습 데이터(LDT) 및 가중치들(WDT)을 이용하여 객체 인식 모델(ORM)을 학습시킨다. 인식 모듈(190)은 제1 서브 특징 벡터(SFV1) 및 가중치들(SWDT)을 학습된 객체 인식 모델(LORM)에 적용하여 제1 객체의 인식 결과(ORR1)를 제공한다.
모델 갱신 모듈(197)은 학습된 객체 인식 모델(LORM) 및 제1 객체 인식 결과(1ORR)에 기초하여 제1 객체 인식 결과(1ORR)의 유사도가 제1 기준값 이하인 경우에 객체 인식 모델(ORM)을 갱신할 수 있다.
도 4는 본 발명의 실시예들에 따른 도 3의 학습 모듈을 나타내는 블록도이다.
도 4를 참조하면, 학습 모듈(180)은 모델 학습부(181), 모델 저장부(183) 및 모델 평가부(185)를 포함할 수 있다.
모델 학습부(181)는 학습 데이터(LDT) 및 가중치들(SWDT)을 이용하여 객체 인식 모델(ORM)을 학습시킨다. 모델 저장부(183)는 학습된 객체 인식 모델(LORM)을 저장한다. 모델 평가부(185)는 학습된 객체 인식 모델(LORM)에 평가 데이터(LVDT)를 입력하고, 평가 데이터로부터 출력되는 유사도 신호(SS)가 일정한 기준을 만족하지 못하는 경우에 모델 학습부(181)가 객체 인식 모델(ORM)을 다시 학습하도록 할 수 있다.
모델 학습부(181)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 객체 인식 모델을 학습할 객체 인식 모델(ORM)로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 객체 인식 모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다.
실시예들에 따르면, 모델 학습부(181)는, 예로, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 객체 인식 모델(ORM)을 학습시킬 수 있다.
도 5는 본 발명의 실시예들에 따른 도 3의 인식 모듈을 나타내는 블록도이다.
도 5를 참조하면, 인식 모듈(190)은 입력부(191) 및 인식 결과 제공기(193)를 포함할 수 있다.
입력부(191)는 제1 서브 특징 벡터(SFV1)와 가중치들(WDT)를 수신하여 인식 결과 제공기(193)에 제공한다. 인식 결과 제공기(193)는 제1 서브 특징 벡터(SFV1)와 가중치들(WDT)을 학습된 객체 인식 모델(LORM)에 적용하여 제1 객체 인식 결과(ORR1)를 제공할 수 있다.
도 6은 본 발명의 실시예들에 따른 도 1의 전자 장치에서 적층형 메모리 장치를 나타내는 블록도이다.
도 6을 참조하면, 적층형 메모리 장치(90)는 버퍼 다이(200) 및 복수의 메모리 다이들(300a~300k, k는 2 이상의 자연수)을 포함할 수 있다. 적층형 메모리 장치(60)는 버퍼 다이(200) 및 복수의 메모리 다이들(200a~200k)이 각각 적층되어 패키징된 것 일 수 있다. 버퍼 다이(200) 상에 적층되는 메모리 다이들(300a~300k)은 버퍼 다이(100)와 전기적으로 연결되며, 이를 위하여 적층형 메모리 장치(90)는 버퍼 다이(200)와 메모리 다이들(300a~300k)을 전기적으로 연결하는 도전 수단을 포함할 수 있다. 실시예에 있어서, 상기 도전 수단으로 관통 실리콘 비아(Through silicon via, TSV)가 적용될 수 있다.
실시예에 있어서, 적층형 메모리 장치(90)는 버퍼 다이(200) 상에 적층되는 비휘발성 메모리(290)를 더 포함할 수 있다.
버퍼 다이(200)는 중앙 처리 장치(30) 및 그래픽 프로세서(50)와 통신할 수 있고, 메모리 다이들(300a~300k) 각각은 복수의 동적 메모리 셀들을 구비하는 DDR SDRAM (Double Data Rate Synchronous Dynamic Ramdom Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR (Graphics Double Data Rate) SDRAM, RDRAM (Rambus Dynamic Ramdom Access Memory) 등과 같은 동적 랜덤 억세스 메모리(Dynamic Ramdom Access Memory, DRAM)일 수 있다.
도 7은 본 발명의 실시예들에 따른 도 6의 적층형 메모리 장치를 나타내는 블록도이다.
도 7에서는 서로 독립된 인터페이스를 가지는 복수의 채널들을 포함함으로써 증가된 대역폭(Bandwidth)을 갖는 HBM(High Bandwidth Memory) 형태의 메모리 장치가 예시된다.
도 7을 참조하면, 적층형 메모리 장치(90a)는 다수 개의 레이어들을 포함할 수 있다. 일 예로서, 적층형 메모리 장치(90)는 버퍼 다이(200)와 버퍼 다이(200) 상에 적층된 하나 이상의 메모리 다이들(300)을 포함할 수 있다. 도 7의 예에서는, 제1 내지 제 4 메모리 다이들(300a~300d)이 구비되는 예가 도시되었으나, 상기 메모리 다이들의 개수는 다양하게 변경될 수 있다.
또한, 메모리 다이들(300) 각각은 하나 이상의 채널을 포함할 수 있으며, 도 7의 예에서는 메모리 다이들(300) 각각이 두 개의 채널을 포함함에 따라 적층형 메모리 장치(90a)가 8 개의 채널들(CH1~CH8)을 갖는 예가 도시된다.
예를 들어, 제1 메모리 다이(300a)가 제1 채널 및 제3 채널(CH1, CH3)을 포함하고, 제2 메모리 다이(300b)가 제2 채널 및 제4 채널(CH2, CH4)을 포함하며, 제3 메모리 다이(300c)가 제5 채널 및 제7 채널(CH5, CH7)을 포함하며, 제4 메모리 다이(300d)가 제6 채널 및 제8 채널(CH6, CH8)을 포함할 수 있다.
버퍼 다이(200)는 메모리 컨트롤러(외부 장치)와 통신하고, 메모리 컨트롤러로부터 커맨드, 어드레스 및 데이터를 수신할 수 있으며, 수신된 커맨드, 어드레스 및 데이터를 메모리 다이들(300)로 제공할 수 있다. 버퍼 다이(200)는 그 외면에 형성된 범프 등의 도전 수단(미도시)을 통해 메모리 컨트롤러와 통신할 수 있다. 버퍼 다이(200)는 커맨드, 어드레스 및 데이터를 버퍼링하며, 이에 따라 메모리 컨트롤러는 버퍼 다이(200)의 로드(load)만을 구동함으로써 메모리 다이들(200)과 인터페이스할 수 있다.
또한, 적층형 메모리 장치(90a)는 레이어들을 관통하는 복수의 관통 실리콘 비아(TSV, 220)들을 포함할 수 있다.
TSV(220)들은 다수의 채널들(CH1 ~ CH8)에 대응하여 배치될 수 있으며, 각각의 채널이 128 비트의 대역폭(Bandwidth)을 갖는 경우, TSV(220)들은 1024 비트의 데이터 입출력을 위한 구성들을 포함할 수 있다.
TSV(220)들은 제1 내지 제4 메모리 다이들(300a~300d)을 관통하도록 배치되고, 제1 내지 제4 메모리 다이들(300a~300d) 각각은 TSV(220)에 연결된 송신부/수신부를 포함할 수 있다. 각 채널 별로 데이터 입출력이 독립하게 수행되는 노멀 동작시에는, 각각의 TSV(230)에 대해 어느 하나의 메모리 다이의 송신부/수신부만이 인에이블됨으로써, 각각의 TSV(220)는 어느 하나의 메모리 다이(또는, 어느 하나의 채널)의 데이터만을 독립하게 전달할 수 있다.
버퍼 다이(200)는 프로세서-인-메모리 회로(230), TSV 영역(212), 물리(PHY) 영역(213) 및 직접 액세스 영역(DA, 214)을 포함할 수 있다.
TSV 영역(212)은 메모리 다이들(200)과의 통신을 위한 TSV(220)가 형성되는 영역이다. 또한, 물리(PHY) 영역(213)은 외부의 메모리 컨트롤러와의 통신을 위해 다수의 입출력 회로를 포함하는 영역으로서, 메모리 컨트롤러로부터의 각종 신호들은 물리(PHY) 영역(113)을 통해 TSV 영역(212)으로 제공되고, 또한 TSV(230)를 통해 메모리 다이들(200)로 제공될 수 있다. 또한, 물리(PHY) 영역(213)은 그래픽 프로세서(50)와의 통신을 위한 다수의 입출력 회로들을 포함할 수 있다.
한편, 직접 액세스 영역(214)은 적층형 메모리 장치(90a)에 대한 테스트 모드에서 적층형 메모리 장치(90a)의 외면에 배치되는 도전 수단을 통해 외부의 테스트 장치와 직접 통신할 수 있다. 테스트 장치로부터 제공되는 각종 신호들은 직접 액세스 영역(214) 및 TSV 영역(212)을 통해 메모리 다이들(300)로 제공될 수 있다. 다른 실시예에 있어서, 테스트 장치로부터 제공되는 각종 신호들은 직접 액세스 영역(214), 물리(PHY) 영역(213) 및 TSV 영역(212)을 통해 메모리 다이들(300)로 제공될 수도 있다.
프로세서-인-메모리 회로(230)는 벡터-곱(vector multiplication) 연산을 수행할 수 있는 곱셈 및 누적(multiply and accumulate, MAC) 회로를 포함하여 그래픽 프로세서(50)와 병렬적으로 인공 지능 연산을 수행하여 특징 벡터와 관련된 신경망 연산에 대하여 로드 밸런싱을 수행할 수 있다.
도 8은 도 7의 적층형 메모리 장치에서 인공 지능 연산의 분배가 수행되는 것을 나타낸다.
도 7 및 도 8을 참조하면, 버퍼 다이(200)는 내부 커맨드 생성기(210) 및 프로세서-인-메모리 회로(230)를 포함하고, 내부 커맨드 생성기(210)에서 생성하는 내부 커맨드들은 채널 별로 서로 독립하게 형성되는 커맨드 TSV(TSV_C)를 통하여 메모리 다이들(300)로 제공될 수 있다.
프로세서-인-메모리 회로(230)는 메모리 다이들(300)에 저장된 가중치들(WDT) 및 입력 데이터에 해당하는 또는 입력 데이터로부터 추출된 특징 벡터(FV)를 수신하고, 특징 벡터(FV)를 제1 서브 특징 벡터(SFV1)와 제2 서브 특징 벡터로 분할하고, 제1 서브 특징 벡터(SFV1)를 물리 영역(213)를 통하여 그래픽 프로세서(50)에 제공하고, 학습된 객체 인식 모델에 가중치들(WDT)과 제2 서브 특징 벡터를 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 수행할 수 있다.
프로세서-인-메모리 회로(230)는 또한 물리 영역(213)를 통하여 제1 서브 특징 벡터(SFV1)와 가중치들(WDT)에 기반하여 도출된 제1 객체 인식 결과를 수신하고, 제1 객체 인식 결과와 제2 객체 인식 결과를 병합하여 병합된 객체 인식 결과를 사용자에게 제공할 수 있다.
메모리 다이들(300) 각각은 내부 커맨드를 디코딩하여 내부 제어신호를 출력하는 커맨드 디코더들(211a~211d)과 독출된 데이터 및/또는 기입될 데이터에 대한 처리 동작을 수행하는 데이터 처리기부(313a~313d)를 포함할 수 있다.
어느 하나의 메모리 다이(예컨대, 제1 메모리 다이(300a))를 참조하면, 제1 메모리 다이(300a)는 커맨드 디코더(311a)의 디코딩 결과에 따라 메모리 동작을 수행하고, 일 예로서 제1 메모리 다이(300a) 내부의 셀 영역에 저장된 다수 비트들의 데이터가 독출되어 데이터 처리부(313a)로 제공될 수 있다. 데이터 처리부(313a)는 다수 비트들의 데이터를 병렬하게 처리할 수 있으며, 병렬하게 처리된 데이터를 다수의 데이터 TSV들(TSV_D)로 병렬하게 출력할 수 있다.
메모리 동작의 종류에 따라, 데이터 처리부(313a)는 독출된 데이터를 일시 저장할 수 있으며, 저장된 데이터를 데이터 TSV(TSV_D)로 출력할 수 있다. 또한, 커맨드 디코더(311a)의 제어에 따라, 데이터 처리부(313a)로부터의 데이터는 데이터 TSV(TSV_data)를 통해 다른 메모리 다이들 중 적어도 하나로 제공될 수 있다. 만약, 제1 메모리 다이(300a)의 데이터를 제2 메모리 다이(300b)에 카피하는 내부 프로세스가 수행되는 경우, 데이터 처리부(313a)로부터의 데이터는 데이터 TSV(TSV_D)를 통해 제2 메모리 다이(300b)로 제공될 수 있다.
적층형 메모리 장치(90a)는 버퍼 다이(200)상에 형성되는 비휘발성 메모리 장치(290)를 포함할 수 있고, 버퍼 다이(200)는 상기 비휘발성 메모리 장치(290)를 제어하는 비휘발성 인터페이스(295)를 포함할 수 있다. 비휘발성 메모리 장치(290)는 학습된 객체 인식 모델을 저장할 수 있다.
도 9는 본 발명의 실시예들에 따른 도 1의 프로세서-인-메모리 회로를 나타내는 블록도이다.
도 9를 참조하면, 프로세서-인-메모리 회로(230)는 컨트롤러(325), 데이터 분배기(240) 및 곱셈 및 누적 회로(250)를 포함할 수 있다. 실시예에 있어서, 프로세서-인-메모리 회로(230)는 특징 추출기(231) 및 병합기(pooler)를 더 포함할 수 있다.
특징 추출기(231)는 입력 데이터(INDT)의 특징을 추출하여 특징 벡터(FV)를 제공할 수 있다. 데이터 분배기(240)는 특징 벡터(FV)를 수신하고, 시스템 소프트웨어(35)로부터의 제1 제어 메시지(CTM1)에 따라 특징 벡터(FV)를 제1 서브 특징 벡터(SFV1) 및 제2 서브 특징 벡터(SFV2)로 분할하고, 제1 서브 특징 벡터(SFV1)를 그래픽 프로세서(50)에 제공하고, 제2 서브 특징 벡터(SFV2)는 곱셈 및 누적 회로(250)에 제공할 수 있다. 실시예에 따라, 데이터 분배기(240)는 특징 벡터(FV)를 분할하지 않고, 그대로 그래픽 프로세서(50)에 제공할 수 있다.
곱셈 및 누적 회로(250)는 컨트롤러(235)의 제어에 따라 제2 서브 특징 벡터(SFV2) 및 가중치들(WDT)에 대하여 학습된 객체 인식 모델(LORM)에 상응하는 행렬 벡터-곱(vector-multiplication) 연산을 수행하여 제2 객체 인식 결과(ORR2)를 제공할 수 있다. 곱셈 및 누적 회로(250)는 제2 서브 특징 벡터(SFV2) 및 가중치들(WDT)을 학습된 객체 인식 모델(LORM)에 적용하여 제2 객체 인식 결과(ORR2)를 제공할 수 있다. 즉, 곱셈 및 누적 회로(250)는 제2 서브 특징 벡터(SFV2) 및 가중치들(WDT)을 기초로 제1 연산을 수행하여 제2 객체 인식 결과(ORR2)를 제공할 수 있다. 컨트롤러(235)는 시스템 소프트웨어(35)로부터의 제2 제어 메시지(CTM1)에 응답하여 곱셈 및 누적 회로(250)가 상기 연산을 수행하도록 제어 신호(CTL)를 곱셈 및 누적 회로(250)에 제공할 수 있다. 곱셈 및 누적 회로(250)는 복수의 연산 유닛들을 포함할 수 있다. 곱셈 및 누적 회로(250)는 그래픽 프로세서(50)로부터 제공되는 중간 연산 결과(IOR)를 이용하여 제1 연산을 수행할 수 있다. 그래픽 프로세서(50)는 제1 서브 특징 벡터(SFV1)와 제2 서브 특징 벡터(SFV2)가
실시예에 따라, 곱셈 및 누적 회로(250)는 그래픽 프로세서(50)로부터 제공되는 중간 연산 결과(IOR)를 이용하여 제1 연산을 수행할 수 있다. 그래픽 프로세서(50)는 제1 서브 특징 벡터(SFV1)와 제2 서브 특징 벡터(SFV2)가 적어도 일부의 중복 데이터를 포함하는 경우, 중복 데이터에 대한 중간 연산 결과(IOR)를 곱셈 및 누적 회로(250)에 제공할 수 있다.
병합기(280)는 그래픽 프로세서(50)로부터 제1 객체 인식 결과(ORR1)를 수신하고, 곱셈 및 누적 회로(250)로부터 제2 객체 인식 결과(ORR2)를 수신하고, 제1 객체 인식 결과(ORR1)과 제2 객체 인식 결과(ORR2)를 병합하여 병합된 객체 인식 결과(MORR)를 사용자에게 제공할 수 있다. 특징 추출기(231) 및 병합기(280)는 프로세서-인-메모리 회로(230) 외부에 포함될 수 있다.
도 10은 본 발명의 실시예들에 따른 도 9의 곱셈 및 누적 회로를 나타내는 블록도이다.
도 10을 참조하면, 곱셈 및 누적 회로(250)는 곱셈 회로(260) 및 누적 회로(270)를 포함할 수 있다. 곱셈 회로(260)는 가중치들(WDT) 및 제2 서브 특징 벡터(SFV1)를 수신하고, 제2 서브 특징 벡터(SFV1)와 가중치들(WDT)을 곱하여 출력한다. 누적 회로(270)는 곱셈 회로(260)의 출력을 누적하여 제2 객체 인식 결과(ORR2)를 제공한다.
곱셈 회로(260)는 제1 버퍼(261), 제2 버퍼(263) 및 곱셈기(265)를 포함한다. 제1 버퍼(261)는 가중치들(WDT)을 수신하고, 가중치들(WDT)을 제1 연산 단위인 커널 단위로 출력한다. 제2 버퍼(263)는 제2 서브 특징 벡터(SFV2)를 수신하고, 제2 서브 특징 벡터(SFV2)를 제2 연산 단위로 출력한다. 곱셈기(265)는 제1 버퍼(261)의 출력과 제2 버퍼(263)의 출력을 곱하여 중간 연산 결과로서 제공한다.
누적 회로(270)는 가산기(271) 및 버퍼(273)를 포함한다. 가산기(271)는 제1 입력과 제2 입력을 구비하고 제1 입력에서 곱셈기(265)의 출력을 수신한다. 가산기(271)는 곱셈기(735)의 출력과 제2 입력에서 수신되는 버퍼(273)의 출력을 합산하여 가산기(271)의 제2 입력으로 피드백시킨다. 버퍼(273)는 출력 인에이블 신호(OEN)에 응답하여 가산기(271)의 출력을 제2 객체 인식 결과(ORR2)로서 제공하고, 리셋 신호(RST)에 응답하여 리셋된다. 출력 인에이블 신호(OEN) 및 리셋 신호(RST)는 제어 신호(CTL)에 포함될 수 있다.
도 11은 본 발명의 실시예들에 따른 도 6의 적층형 메모리 장치에 포함되는 메모리 다이들 중 하나를 나타내는 블록도이다.
도 11에서는 메모리 다이(300a)의 구성을 나타내었으나, 메모리 다이들(300b~300k) 각각의 구성은 메모리 다이(300a)와 실질적으로 동일할 수 있다.
메모리 다이(300a)는 제어 로직 회로(310), 어드레스 레지스터(320), 뱅크 제어 로직(330), 리프레시 카운터(345), 로우 어드레스 멀티플렉서(340), 칼럼 어드레스 래치(350), 로우 디코더(360), 칼럼 디코더(370), 메모리 셀 어레이(400), 센스 앰프부(385), 입출력 게이팅 회로(390) 및 데이터 처리부(313a)를 포함할 수 있다.
상기 메모리 셀 어레이(400)는 제1 내지 제8 뱅크 어레이들(410~480)을 포함할 수 있다. 또한, 상기 로우 디코더(360)는 제1 내지 제8 뱅크 어레이들(410~480)에 각각 연결된 제1 내지 제8 뱅크 로우 디코더들(360a~360h)을 포함하고, 상기 칼럼 디코더(370)는 제1 내지 제8 뱅크 어레이들(410~480)에 각각 연결된 제1 내지 제8 뱅크 칼럼 디코더들(370a~370h)을 포함하며, 상기 센스 앰프부(385)는 제1 내지 제8 뱅크 어레이들(410~480)에 각각 연결된 제1 내지 제8 뱅크 센스 앰프들(385a~385h)을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(410~480), 제1 내지 제8 뱅크 센스 앰프들(385a~385h), 제1 내지 제8 뱅크 칼럼 디코더들(370a~370h) 및 제1 내지 제8 뱅크 로우 디코더들(360a~360h)은 제1 내지 제8 뱅크들을 각각 구성할 수 있다. 제1 내지 제8 뱅크 어레이들(410~480) 각각은 복수의 워드라인(WL)들과 복수의 비트라인(BTL)들 및 워드라인(WL)들과 비트라인(BTL)들이 교차하는 지점에 형성되는 복수의 메모리 셀(MC)들을 포함할 수 있다.
어드레스 레지스터(320)는 외부로부터 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 칼럼 어드레스(COL_ADDR)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 어드레스 레지스터(320)는 수신된 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직(330)에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(340)에 제공하며, 수신된 칼럼 어드레스(COL_ADDR)를 칼럼 어드레스 래치(350)에 제공할 수 있다.
뱅크 제어 로직(330)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 상기 뱅크 제어 신호들에 응답하여, 제1 내지 제8 뱅크 로우 디코더들(360a~360h) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 로우 디코더가 활성화되고, 제1 내지 제8 뱅크 칼럼 디코더들(370a~370h) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 칼럼 디코더가 활성화될 수 있다.
로우 어드레스 멀티플렉서(340)는 어드레스 레지스터(320)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레쉬 카운터(345)로부터 리프레시 로우 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(340)는 로우 어드레스(ROW_ADDR) 또는 리프레쉬 로우 어드레스(REF_ADDR)를 로우 어드레스(RA)로서 선택적으로 출력할 수 있다. 로우 어드레스 멀티플렉서(340)로부터 출력된 로우 어드레스(RA)는 제1 내지 제8 뱅크 로우 디코더들(360a~360h)에 각각 인가될 수 있다.
리프레쉬 카운터(345)는 제어 로직 회로(310)의 제어에 따라 리프레쉬 로우 어드레스(REF_ADDR)를 순차적으로 출력할 수 있다.
제1 내지 제8 뱅크 로우 디코더들(360a~360h) 중 뱅크 제어 로직(330)에 의해 활성화된 뱅크 로우 디코더는 로우 어드레스 멀티플렉서(340)로부터 출력된 로우 어드레스(RA)를 디코딩하여 상기 로우 어드레스에 상응하는 워드라인을 활성화할 수 있다. 예를 들어, 상기 활성화된 뱅크 로우 디코더는 로우 어드레스에 상응하는 워드라인에 워드라인 구동 전압을 인가할 수 있다.
칼럼 어드레스 래치(350)는 어드레스 레지스터(320)로부터 칼럼 어드레스(COL_ADDR)를 수신하고, 수신된 칼럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 또한, 칼럼 어드레스 래치(350)는, 버스트 모드에서, 수신된 칼럼 어드레스(COL_ADDR)를 점진적으로 증가시킬 수 있다. 칼럼 어드레스 래치(350)는 일시적으로 저장된 또는 점진적으로 증가된 칼럼 어드레스(COL_ADDR)를 제1 내지 제8 뱅크 칼럼 디코더들(370a~370h)에 각각 인가할 수 있다.
제1 내지 제8 뱅크 칼럼 디코더들(370a~370h) 중 뱅크 제어 로직(330)에 의해 활성화된 뱅크 칼럼 디코더는 상응하는 입출력 게이팅 회로를 통하여 뱅크 어드레스(BANK_ADDR) 및 칼럼 어드레스(COL_ADDR)에 상응하는 센스 앰프를 활성화시킬 수 있다.
입출력 게이팅 회로(390)는 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 제1 내지 제8 뱅크 어레이들(410~480)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 제1 내지 제8 뱅크 어레이들(410~480)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(410~380) 중 하나의 뱅크 어레이에서 독출될 데이터(가중치들 및 특징 벡터를 포함) 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다. 상기 독출 데이터 래치들에 저장된 데이터는 데이터 처리부(313a)를 통하여 외부로 제공되거나 다른 메모리 다이로 제공될 수 있다.
제1 내지 제8 뱅크 어레이들(410~480) 중 하나의 뱅크 어레이에 기입될 데이터는 입출력 게이팅 회로(390)에 제공하고, 입출력 게이팅 회로(390)는 상기 기입 드라이버들을 통하여 상기 데이터를 상기 하나의 뱅크 어레이에 기입할 수 있다.
데이터 처리부(313a)는 기입 동작에서는 가중치들(WDT) 및 특징 벡터(FV)를 입출력 게이팅 회로(390)를 통하여 메모리 셀 어레이(400)에 저장하고, 기입 동작에서는 가중치들(WDT) 및 특징 벡터(FV)를 데이터 TSV(TSV_D)를 통하여 버퍼 다이(200)의 프로세서-인-메모리 회로(230)에 제공할 수 있다.
제어 로직 회로(310)는 메모리 다이(300a)의 동작을 제어할 수 있다. 예를 들어, 제어 로직 회로(310)는 메모리 다이(300a)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(310)는 내부 커맨드 생성기(210)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(311a) 및 메모리 다이(300a)의 동작 모드를 설정하기 위한 모드 레지스터(312)를 포함할 수 있다.
도 12는 본 발명의 실시예들에 따른 도 11의 메모리 다이에서 제1 뱅크 어레이를 나타낸다.
도 12를 참조하면, 제1 뱅크 어레이(410)는 복수개의 워드라인들(WL1~WLm, m은 2이상의 정수), 복수개의 비트라인들(BL1~BLn, n은 2이상의 정수), 그리고 워드라인들(WL1~WLm)과 비트라인들(BL1~BLn) 사이의 교차점에 배치되는 복수개의 동적 메모리 셀들(MCs)을 포함한다. 동적 메모리 셀들(MCs) 각각은 워드라인들(WL1~WLm) 각각과 비트라인들(BL1~BLn) 각각에 연결되는 셀 트랜지스터 및 상기 셀 트랜지스터에 연결되는 셀 커패시터를 포함할 수 있다.
도 11 및 도 12에서는 메모리 다이(200a)가 동적 메모리 셀들을 포함하는 DRAM으로 구현되는 경우를 설명하였다. 하지만, 메모리 다이들(200a~200k) 각각은 저항성 메모리 셀들을 구비하는 저항성 메모리 장치나 다른 종류의 메모리 장치로 구현될 수 있다.
도 13은 도 9의 프로세서-인-메모리 회로의 특징 벡터와 가중치와 관련된 커널을 나타낸다.
도 13을 참조하면, 특징 벡터(FV)가 K*K(K는 여기서 7) 행렬로 구성되고, 가중치들(WDT)과 관련된 커널(KRN1)이 I*I(I는 여기서 3)으로 구성되는 경우, 데이터 분배기(240)는 특징 벡터(FV)를 제1 서브 특징 벡터(SFV1)과 제2 서브 특징 벡터(SFV2)로 분할하고, 제1 서브 특징 벡터(SFV1)를 그래픽 프로세서(50)에 제공하고, 제2 서브 특징 벡터(SFV2)를 곱셈 및 누적 회로(250)에 제공한다.
그래픽 프로세서(50)는 제1 서브 특징 벡터(SFV1)에 해당하는 K*((I+(K-1))/2 이상인 정수)의 행렬에 대하여만 커널(KRN1)을 적용하여 행렬-곱 연산을 수행하면 된다. 따라서, 특징 벡터(FV) 전체가 그래픽 프로세서(50)로 전달되어 그래픽 프로세서(50)에서 특징 벡터(FV) 전체에 대하여 행렬-곱 연산을 수행하는 경우보다 그래픽 프로세서(50)에서의 연산량이 감소한다. 또한 그래픽 프로세서(50)에서 제1 서브 특징 벡터(SFV1)에 대하여 행렬-곱 연산을 수행할 때, 곱셈 및 누적 회로(250)는 제2 서브 특징 벡터(SFV2)에 동일한 커널(KRN1)을 적용하여 제2 서브 특징 벡터(SFV2)에 행렬-곱 연산을 수행할 수 있다.
도 14는 도 1의 그래픽 프로세서에서의 제2 연산을 나타내고, 도 15는 프로세서-인-메모리 회로에서의 제1 연산을 나타내고, 도 16은 도 9의 병합기의 동작을 나타낸다.
도 14를 참조하면, 그래픽 프로세서(50)는 제1 서브 특징 벡터(SFV1)에 커널(KRN1)을 적용하여 제1 서브 특징 벡터(SFV1)와 커널(KRN1)에 대한 행렬-곱 연산을 수행하여 제1 객체 인식 결과(ORR1)를 제공할 수 있다. 제1 객체 인식 결과(ORR1)는 5*3의 행렬로 구성될 수 있다.
도 15를 참조하면, 곱셈 및 누적 회로(250)는 제2 서브 특징 벡터(SFV2)에 커널(KRN1)을 적용하여 제2 서브 특징 벡터(SFV2)와 커널(KRN1)에 대한 행렬-곱 연산을 수행하여 제2 객체 인식 결과(ORR1)를 제공할 수 있다. 제2 객체 인식 결과(ORR1)는 5*2의 행렬로 구성될 수 있다.
도 16을 참조하면, 병합기(280)는 제1 객체 인식 결과(ORR1)와 제2 객체 인식 결과(ORR2)를 병합하여 병합된 객체 인식 결과(MORR)를 제공할 수 있다. 병합된 객체 인식 결과(MORR)는 5*5의 행렬로 구성될 수 있다.
도 17 및 도 18은 도 9의 데이터 분배기가 입력 데이터 또는 특징 벡터를 제1 서브 특징 벡터 및 제2 서브 특징 벡터로 분할하는 것을 나타낸다.
도 17은 도 9의 데이터 분배기(250)가 컨트롤러(235)의 제어에 따라입력 데이터 또는 특징 벡터를 단순히 절반으로 분할하여 제1 특징 벡터(SFV1) 및 제2 특징 벡터(SFV2)로 분할하는 것을 나타낸다.
도 17을 참조하면, 제1 입력 데이터(INDT1)는 객체들(OB11, OB12)를 포함하고, 제2 입력 데이터(INDT2)는 객체들(OB21, OB22)를 포함하는 경우, 데이터 분배기(250)는 제1 입력 데이터(INDT1)를 제1 부분(SFV11)과 제2 부분(SFV21)으로 2-분할하고, 제2 입력 데이터(INDT2)를 제1 부분(SFV12)과 제2 부분(SFV22)로 2-분할하고, 제1 부분들(SFV11, SFV12)을 제1 서브 특징 벡터(SFV1)로 구성하고, 제2 부분들(SFV21, SFV22)을 제2 서브 특징 벡터(SFV2)로 구성할 수 있다.
도 18을 참조하면, 제1 입력 데이터(INDT1)는 객체들(OB11, OB12)를 포함하고, 제2 입력 데이터(INDT2)는 객체들(OB21, OB22)를 포함하는 경우, 데이터 분배기(250)는 객체들에 기초하여 제1 입력 데이터(INDT1)를 제1 서브 특징 벡터(SFV1)로 구성하고, 제2 입력 데이터(INDT2)를 제2 서브 특징 벡터(SFV2)로 구성할 수 있다.
도 19는 본 발명의 실시예들에 따른 적층형 메모리 장치에서 데이터카피 동작이 수행되는 예를 나타내는 블록도이다.
이하에서는, 설명의 편의상 하나의 버퍼 다이와 두 개의 메모리 다이들의 동작이 예시된다. 또한, 이하의 실시예들에 도시된 테스트 회로는 내부 프로세스에 따라 채널 선택 또는 칩 선택을 위한 칩 선택신호(chip_select)를 제공하는 기능을 수행할 수 있다. 다른 실시예에 따라, 이하의 도면들에 도시된 칩 선택신호(CS)는 각각의 메모리 다이의 커맨드 디코더를 통해 생성될 수 있다.
도 19를 참조하면, 적층형 메모리 장치(600)는 버퍼 다이(610), 제1 메모리 다이(620) 및 제2 메모리 다이(630)를 포함할 수 있다.
버퍼 다이(510)는 외부 장치와 통신하고, 외부 장치로부터의 커맨드에 응답하여 내부 커맨드를 생성하는 내부 커맨드 생성기(611)를 포함할 수 있다. 내부 커맨드 생성기(611)는 메모리 다이를 선택하기 위한 칩 선택신호(CS)를 변경해가면서 내부 커맨드를 제1 메모리 다이(620) 및 제2 메모리 다이(630)로 제공할 수 있다. 또한, 버퍼 다이(610)와 제1 및 제2 메모리 다이들(620, 630) 사이에서 데이터가 송수신될 수 있으며, 데이터 송수신을 위한 데이터 TSV들은 버퍼 다이(610)와 제1 및 제2 메모리 다이들(620, 630)에 대해 공통하게 배치될 수 있다.
버퍼 다이(610)는 제1 및 제2 메모리 다이들(620, 630)과 채널 별로 독립한 인터페이스를 수행하기 위해 다수 개의 입출력 회로들을 포함할 수 있다. 예컨대, 버퍼 다이(610)는 제1 메모리 다이(620)와 인터페이스하는 제A 채널(CH_A)용 입출력 회로와 제2 메모리 다이(630)와 인터페이스하는 제B 채널(CH_B)용 입출력 회로를 포함할 수 있다. 각각의 입출력 회로에 구비되는 다양한 구성 요소들은 버퍼 다이(610)에 적어도 하나의 영역에 배치될 수있으며, 일 예로서 입출력 회로의 구성 요소들은 물리(PHY) 영역에 배치될 수 있다.
또한, 각각의 채널에 대응하는 입출력 회로는, 외부 장치와 인터페이스하는 인터페이스부(612), 경로 제어부(613), 독출 데이터 경로(614) 및 기입 데이터 경로(615)를 포함할 수 있다. 제1 및 제2 메모리 다이들(620, 630) 각각은 데이터를 TSV를 통해 데이터를 입출력하는 송수신부(625, 635)를 포함할 수 있으며, 각각의 메모리 다이의 송수신부는 칩 선택 신호(CS)에 의해 활성화가 제어될 수 있다.
제1 메모리 다이(620)는 메모리 셀 어레이를 포함하는 셀 코어(621), 내부 커맨드를 디코딩하는 커맨드 디코더(622), 기입 데이터 경로(623), 독출 데이터 경로(624) 및 송수신부(625)를 포함할 수 있다. 제2 메모리 다이(630)는 제1 메모리 다이(620)와 동일 또는 유사하게 구현될 수 있으며, 이에 따라 제2 메모리 다이(630)는 셀 코어(631), 내부 커맨드를 디코딩하는 커맨드 디코더(632), 기입 데이터 경로(633), 독출 데이터 경로(634) 및 송수신부(635)를 포함할 수 있다.
외부 장치의 커맨드에 따라 제2 메모리 다이(630)의 데이터를 제1 메모리 다이(620)에 카피하기 위한 내부 동작이 수행되는 경우, 상기 내부 동작은 외부 장치의 개입 없이 적층형 메모리 장치(600) 내부에서 수행될 수 있다. 내부 커맨드 생성기(611)는 내부 커맨드를 제2 메모리 다이(630)로 제공하고, 제2 메모리 다이(630)의 셀 코어(631)에 저장된 독출 데이터 경로(634)를 통하여 송수신부(635)로 제공되고, 송수신부(635)의 독출 버퍼(RD_BUF)와 데이터 TSV를 통하여 제1 메모리 다이(620)의 송수신부(625)로 제공되고, 송수신부(625)의 기입 버퍼(WR_BUF)와 기입 경로(623)를 통하여 제1 메모리 다이(620)의 셀 코어(621)에 카피될 수 있다.
도 20은 본 발명의 실시예들에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 1 내지 도 18 및 도 20을 참조하면, 인공 신경망 엔진(100)을 구비하는 그래픽 프로세서(50) 및 상기 그래픽 프로세서와 통신하는 적층형 메모리 장치(90)를 구비하는 전자 장치(10)의 동작 방법에서는 인공 신경망 엔진(100)에서 학습 데이터(LDT)와 가중치들(WDT)을 객체 인식 모델(105)에 적용하여 상기 객체 인식 모델(105)을 학습시킨다(S710). 적층형 메모리 장치(90)의 데이터 분배기(250)에서 입력 데이터와 관련된 특징 벡터(FV)를 제1 서브 특징 벡터(SFV1)와 제2 서브 특징 벡터(SFV2)로 분할하고, 상기 제2 서브 특징 벡터(SFV1)를 상기 그래픽 프로세서(50)에 제공한다(S720).
적층형 메모리 장치(90)의 곱셈 및 누적 회로(250)에서 상기 제2 서브 특징 벡터(SFV2)와 상기 가중치들(WDT)을 상기 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과(ORR2)를 출력하는 제1 연산을 수행한다(S730). 상기 그래픽 프로세서(50)의 상기 인공 신경망 엔진(100)에서 상기 제1 서브 특징 벡터(SFV1)와 상기 가중치들(WDT)을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과(ORR2)를 출력하는 제2 연산을 수행한다(S740).
적층형 메모리 장치(90)의 합성기(280)에서 상기 제1 객체 인식 결과(ORR1)와 상기 제2 객체 인식 결과(ORR2)를 병합하여 병합된 객체 인식 결(MORR)과를 사용자에게 제공한다(S750). 상기 제1 연산과 상기 제2 연산은 병렬적으로 수행될 수 있다.
따라서 본 발명의 실시예들에 따르면, 입력 데이터에 상응하는 또는 입력 데이터로부터 추출된 특징 벡터를 적층형 메모리 장치에 구비되는 프로세서-인-메모리 회로에서 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 특징 벡터를 그래픽 프로세서에 제공하고, 상기 그래픽 프로세서가 제1 특징 벡터에 대하여 인공 지능 연산을 수행하는 것과 병렬적으로 적층형 메모리 장치의 프로세서-인-메모리 회로에서 제2 특징 벡터에 대하여 인공 지능 연산을 수행하여 특징 벡터에 대한 로드 밸런싱을 수행할 수 있다. 따라서, 본 발명의 실시예들에 따르면 그래픽 프로세서나 중앙 처리 장치의 변경없이 인공 지능 연산의 성능을 향상시킬 수 있다.
도 21은 본 발명의 실시예들에 따른 하이브리드 적층형 메모리 장치를 포함하는 인공 지능 가속기(전자 장치)를 나타내는 블록도이다.
도 21을 참조하면, 인공 지능 가속기(800)는 어플리케이션 프로세서(810), 그래픽 프로세서(820) 및 하이브리드 적층형 메모리 장치(830)을 포함할 수 있다.
하이브리드 적층형 메모리 장치(830)은 버퍼 다이(840), 비휘발성 메모리 장치(850) 및 복수의 메모리 다이들(860)를 포함할 수 있다.
어플리케이션 프로세서(810)는 휘발성 메모리 장치(820)와 플래시 서브 시스템(830)을 제어할 수 있다. 휘발성 메모리 장치(820)는 언어 모델을 저장할 수 있다.
버퍼 다이(840)는 프로세서-인-메모리 회로(841)를 포함할 수 있다. 프로세서-인-메모리 회로(841)는 도 9의 프로세서-인-메모리 회로(230)를 포함할 수 있다.
하이브리드 적층형 메모리 장치(830)는 가중치들(WDT)을 저장하여 그래픽 프로세서(820)에 제공하고, 입력 데이터와 관련된 특징 벡터를 분할하여 제1 서브 특징 벡터(SFV1)를 그래픽 프로세서(820)에 제공할 수 있다. 그래픽 프로세서(820)는 가중치들(WDT)과 제1 서브 특징 벡터(SFV1)를 학습된 객체 인식 모델에 적용시켜 제1 객체 인식 결과(ORR1)를 어플리케이션 프로세서(810)에 제공할 수 있다.
비휘발성 메모리 장치(850)는 그래픽 프로세서(820)로부터 제공된 학습된 객체 인식 모델(LORM)을 저장하고, 학습된 객체 인식 모델(LORM)을 프로세서-인-메모리 회로(841)에 제공할 수 있다. 프로세서-인-메모리 회로(841)는 메모리 다이들(860)로부터 제공받은 특징 벡터(FV)를 제1 서브 특징 벡터(SFV1)와 제2 서브 특징 벡터(SFV2)로 분할하고, 제2 서브 특징 벡터(SFV2)와 가중치들(WDT)을 학습된 객체 인식 모델(LORM)에 적용하여 제2 객체 인식 결과(ORR2)를 어플리케이션 프로세서(810)에 제공할 수 있다. 어플리케이션 프로세서(810)는 제1 객체 인식 결과(ORR1)과 제2 객체 인식 결과(ORR2)를 병합하여 병합된 객체 인식 결과를 사용자에게 제공할 수 있다.
도 22는 본 발명의 실시예들에 따른 적층형 메모리 장치를 포함하는 반도체 패키지의 예를 나타내는 구조도이다.
도 22를 참조하면, 반도체 패키지(900)는 하나 이상의 적층형 메모리 장치(910), 중앙 처리 장치(920) 및 그래픽 프로세서(925)를 포함할 수 있다. 상기 적층형 메모리 장치(910), 중앙 처리 장치(920) 및 그래픽 프로세서(925)는 인터포저(Interposer, 930) 상에 장착되고, 적층형 메모리 장치(910), 중앙 처리 장치(920) 및 그래픽 프로세서(925)가 장착된 인터포저(930)는 패키지 기판(940) 상에 장착될 수 있다. 중앙 처리 장치(920) 및 그래픽 프로세서(925)는 도 1의 중앙 처리 장치(30) 및 그래픽 프로세서(50)와 실질적으로 동일한 기능을 수행할 수 있다.
적층형 메모리 장치(910)는 다양한 형태로 구현이 가능하며, 일 실시예에 따라 적층형 메모리 장치(910)는 다수 개의 레이어들이 적층된 HBM(High Bandwidth Memory) 형태의 메모리 장치일 수 있다. 이에 따라, 적층형 메모리 장치(910)는 버퍼 다이 및 복수의 메모리 다이들을 포함하고 상기 버퍼 다이는 인공 지능 연산을 수행할 수 있는 프로세서-인-메모리 회로를 포함하여 그래픽 프로세서(925)와 병렬적으로 인공 지능 연산을 수행할 수 있다.
인터포저(930) 상에는 다수 개의 적층형 메모리 장치(910)들이 장착될 수 있으며, 중앙 처리 장치(920) 및 그래픽 프로세서(925)는 다수개의 적층형 메모리 장치(910)들과 통신할 수 있다. 일 예로서, 적층형 메모리 장치(910)들 각각과 중앙 처리 장치(920) 및 그래픽 프로세서(925)는 물리 영역을 포함할 수 있으며, 물리(PHY) 영역을 통해 적층형 메모리 장치(910)들과 메모리 컨트롤러(920) 사이에서 통신이 수행될 수 있다. 한편, 적층형 메모리 장치(910)가 직접 액세스 영역을 포함하는 경우, 패키지 기판(940)의 하부에 장착되는 도전 수단(예컨대, 솔더볼(950)) 및 직접 액세스 영역을 통해 테스트 신호가 스택형 메모리 장치(910) 내부로 제공될 수 있다.
여기서, 인터포저(930)는 실리콘(TSV) 형태, PCB 형태의 오가닉(Organic) 또는 Non-TSV 방식인 EMIB(embedded multi-die interconnect bridge)를 포함할 수 있다.
본 발명은 인공 지능을 사용하는 다양한 장치에 적용되어 데이터 처리 효율을 증가시킬 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 학습 데이터와 가중치들을 이용하여 객체 인식 모델을 학습시켜 학습된 객체 인식 모델을 제공하는 인공 신경망 엔진을 구비하는 그래픽 프로세서; 및
    상기 학습 데이터와 상기 가중치들을 저장하고, 상기 학습 데이터와 상기 가중치들을 상기 그래픽 프로세서에 제공하고, 입력 데이터로부터 추출된 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터를 상기 그래픽 프로세서에 제공하고, 상기 학습된 객체 인식 모델을 상기 그래픽 프로세서로부터 수신하고, 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 제2 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 수행하는 적층형 메모리 장치를 포함하고,
    상기 인공 신경망 엔진은 상기 제1 연산과 병렬적으로 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 생성하는 제2 연산을 수행하고, 상기 제1 객체 인식 결과를 상기 적층형 메모리 장치에 제공하는 전자 장치.
  2. 제1항에 있어서,
    상기 적층형 메모리 장치는 상기 제1 객체 인식 결과를 저장하고, 상기 제1 객체 인식 결과와 상기 제2 객체 인식 결과를 병합하여 병합된 객체 인식 결과를 사용자에게 제공하고,
    상기 적층형 메모리 장치는
    상기 그래픽 프로세서 및 외부 장치와 통신하는 버퍼 다이;
    상기 상기 버퍼 다이 상에 적층되는 복수의 메모리 다이들; 및
    상기 메모리 다이들을 관통하는 복수의 관통 실리콘 비아(through silicon via)들을 포함하고,
    상기 메모리 다이들 각각은 복수의 워드라인들과 복수의 비트라인들에 연결되며, 상기 학습 데이터, 상기 가중치들 및 상기 특징 벡터를 저장하는 복수의 동적 메모리 셀들을 구비하는 메모리 셀 어레이를 포함하고,
    상기 버퍼 다이는 상기 관통 실리콘 비아들을 통하여 상기 메모리 다이들과 연결되고 상기 특징 벡터를 상기 제1 서브 특징 벡터와 상기 제2 서브 특징 벡터로 분할하고, 상기 제1 연산을 수행하는 프로세서-인-메모리 (processor-in-memory) 회로를 포함하는 전자 장치.
  3. 제2항에 있어서, 상기 프로세서-인-메모리 회로는
    상기 메모리 다이들 중 적어도 일부로부터 상기 특징 벡터를 수신하고, 상기 특징 벡터를 상기 제1 서브 특징 벡터와 상기 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터를 상기 그래픽 프로세서에 제공하는 데이터 분배기;
    상기 데이터 분배기로부터 상기 제2 서브 특징 벡터를 수신하고, 상기 제2 서브 특징 벡터에 상기 웨이트들을 적용하여 상기 제1 연산을 수행하여 상기 제2 객체 인식 결과를 출력하는 곱셈 및 누적 회로; 및
    상기 곱셈 및 누적 회로를 제어하는 컨트롤러를 포함하고,
    상기 곱셈 및 누적 회로는 상기 제2 서브 특징 벡터와 상기 웨이트들에 대하여 행렬-벡터 곱셈 연산을 수행하는 전자 장치.
  4. 제3항에 있어서,
    버스를 통하여 상기 그래픽 프로세서 및 상기 적층형 메모리 장치와 통신하는 중앙 처리 장치를 포함하고,
    상기 중앙 처리 장치는 상기 데이터 분배기와 상기 컨트롤러를 제어하는 시스템 소프트웨어를 포함하고,
    상기 시스템 소트프웨어는 상기 제1 서브 특징 벡터와 상기 제2 서브 특징 벡터의 분할 비율을 결정하는 전자 장치.
  5. 제2항에 있어서,
    상기 버퍼 다이는 상기 제1 연산과 상기 제2 연산이 종료된 경우, 상기 제1 서브 인식 결과와 상기 제2 서브 결과를 수신하고, 상기 제1 서브 인식 결과와 상기 제2 서브 인식 결과를 병합하여 병합된 객체 인식 결과를 출력하는 병합기; 및
    상기 버퍼 다이 상에 형성되며, 상기 학습된 객체 인식 모델을 저장하는 비휘발성 메모리를 더 포함하는 전자 장치.
  6. 제1항에 있어서,
    상기 제1 서브 특징 벡터와 상기 제2 서브 특징 벡터는 적어도 일부의 중복 데이터를 포함하고,
    상기 그래픽 프로세서는 상기 중복 데이터에 대한 중간 연산 결과를 상기 적층형 메모리 장치에 제공하고,
    상기 적층형 메모리 장치는 상기 중복 데이터에 대한 상기 중간 연산 결과를 이용하여 상기 제1 연산을 수행하는 전자 장치.
  7. 제1항에 있어서,
    상기 인공 신경망 엔진은 상기 학습 데이터와 상기 가중치들을 상기 객체 인식 모델에 적용한 결과와 상기 학습 데이터에 대한 기대값의 유사도가 제1 기준값 이상인 경우에 상기 학습된 객체 인식 모델을 상기 적층형 메모리 장치에 제공하고,
    상기 객체 인식 모델은 복수의 네트워크 노드들 간의 연결관계 및 상기 복수의 네트워크 노드들의 상기 가중치들에 기초하여 연산을 수행하는 신경망 모델 또는 딥러닝 모델인 전자 장치.
  8. 제7항에 있어서, 상기 객체 인식 모델은
    상기 학습 데이터 또는 상기 제1 서브 특징 벡터를 수신하며, 입력 노드들을 포함하는 입력 레이어;
    상기 학습 데이터 또는 상기 제1 서브 특징 벡터에 대한 출력을 제공하며 출력 노드들을 포함하는 출력 레이어;
    상기 입력 레이어를 상기 출력 레이어에 연결시키며, 히든 노드들을 포함하는 히든 레이어
    상기 입력 노드들 각각과 상기 히든 노드들 각각을 제1 가중치들을 가지고 연결하는 제1 연결선들; 및
    상기 히든 노드들 각각과 상기 출력 노드들 각각을 제2 가중치들을 가지고 연결하는 제2 연결선들을 포함하는 전자 장치.
  9. 학습 데이터와 웨이트들을 제공하고, 객체를 구성하는 객체 데이터로부터 추출된 특징 벡터를 제공하는 어플리케이션 프로세서;
    상기 학습 데이터와 가중치들을 이용하여 객체 인식 모델을 학습시켜 학습된 객체 인식 모델을 제공하는 인공 신경망 엔진을 구비하는 그래픽 프로세서; 및
    상기 프로세서로부터 수신된 상기 학습 데이터, 상기 웨이트들 및 상기 특징 벡터들을 저장하고, 상기 학습 데이터와 상기 가중치들을 상기 그래픽 프로세서에 제공하고, 상기 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제1 서브 특징 벡터를 상기 그래픽 프로세서에 제공하고, 상기 그래픽 프로세서로부터 수신된 상기 학습된 객체 인식 모델을 저장하고, 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 제2 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 제공하는 제1 연산을 수행하는 적층형 메모리 장치를 포함하고,
    상기 인공 신경망 엔진은 상기 제1 연산과 병렬적으로 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 생성하는 제2 연산을 수행하고, 상기 제1 객체 인식 결과를 상기 적층형 메모리 장치에 제공하는 전자 장치.
  10. 인공 신경망 엔진을 구비하는 그래픽 프로세서 및 상기 그래픽 프로세서와 통신하는 적층형 메모리 장치를 구비하는 전자 장치의 동작 방법으로서,
    상기 인공 신경망 엔진에서 학습 데이터와 가중치들을 객체 인식 모델에 적용하여 상기 객체 인식 모델을 학습시키는 단계;
    상기 적층형 메모리 장치의 데이터 분배기에서 입력 데이터와 관련된 특징 벡터를 제1 서브 특징 벡터와 제2 서브 특징 벡터로 분할하고, 상기 제2 서브 특징 벡터를 상기 그래픽 프로세서에 제공하는 단계;
    상기 적층형 메모리 장치의 곱셈 및 누적 회로에서 상기 제2 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제2 객체 인식 결과를 출력하는 제1 연산을 수행하는 단계;
    상기 그래픽 프로세서의 상기 인공 신경망 엔진에서 상기 제1 서브 특징 벡터와 상기 가중치들을 상기 학습된 객체 인식 모델에 적용하여 제1 객체 인식 결과를 출력하는 제2 연산을 수행하는 단계; 및
    상기 적층형 메모리 장치의 합성기에서 상기 제1 객체 인식 결과와 상기 제2 객체 인식 결과를 병합하여 병합된 객체 인식 결과를 사용자에게 제공하는 단계를 포함하고,
    상기 제1 연산과 상기 제2 연산은 병렬적으로 수행되는 전자 장치의 동작 방법.

KR1020180102183A 2018-08-29 2018-08-29 전자 장치 및 전자 장치의 동작 방법 KR20200025200A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180102183A KR20200025200A (ko) 2018-08-29 2018-08-29 전자 장치 및 전자 장치의 동작 방법
US16/295,526 US10936891B2 (en) 2018-08-29 2019-03-07 Electronic devices and methods of operating electronic devices
CN201910535301.7A CN110874810B (zh) 2018-08-29 2019-06-19 电子设备和操作电子设备的方法
US17/188,166 US11521374B2 (en) 2018-08-29 2021-03-01 Electronic devices
US18/074,916 US20230106073A1 (en) 2018-08-29 2022-12-05 Semiconductor Package

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180102183A KR20200025200A (ko) 2018-08-29 2018-08-29 전자 장치 및 전자 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20200025200A true KR20200025200A (ko) 2020-03-10

Family

ID=69639917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180102183A KR20200025200A (ko) 2018-08-29 2018-08-29 전자 장치 및 전자 장치의 동작 방법

Country Status (3)

Country Link
US (3) US10936891B2 (ko)
KR (1) KR20200025200A (ko)
CN (1) CN110874810B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625245B2 (en) * 2018-09-28 2023-04-11 Intel Corporation Compute-in-memory systems and methods
US11494645B2 (en) * 2018-12-06 2022-11-08 Egis Technology Inc. Convolutional neural network processor and data processing method thereof
US12014505B2 (en) * 2019-01-31 2024-06-18 Samsung Electronics Co., Ltd. Method and apparatus with convolution neural network processing using shared operand
KR20210093127A (ko) * 2020-01-17 2021-07-27 에스케이하이닉스 주식회사 Aim 장치
US11461651B2 (en) * 2020-04-09 2022-10-04 Micron Technology, Inc. System on a chip with deep learning accelerator and random access memory
US20210320967A1 (en) * 2020-04-09 2021-10-14 Micron Technology, Inc. Edge Server with Deep Learning Accelerator and Random Access Memory
CN111915001B (zh) * 2020-08-18 2024-04-12 腾讯科技(深圳)有限公司 卷积计算引擎、人工智能芯片以及数据处理方法
US11226767B1 (en) * 2020-09-30 2022-01-18 Micron Technology, Inc. Apparatus with access control mechanism and methods for operating the same
CN112418423B (zh) * 2020-11-24 2023-08-15 百度在线网络技术(北京)有限公司 利用神经网络向用户推荐对象的方法、设备和介质
US11977780B2 (en) * 2021-05-17 2024-05-07 Samsung Electronics Co., Ltd. Near memory processing dual in-line memory module and method for operating the same
CN115617739B (zh) * 2022-09-27 2024-02-23 南京信息工程大学 一种基于Chiplet架构的芯片及控制方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517596A (en) * 1991-05-17 1996-05-14 International Business Machines Corporation Learning machine synapse processor system apparatus
ATE453903T1 (de) 2001-12-21 2010-01-15 Ibm Verfahren und schaltungen zur bildskalierung mit hilfe neuronaler netzwerke
US7567252B2 (en) * 2003-12-09 2009-07-28 Microsoft Corporation Optimizing performance of a graphics processing unit for efficient execution of general matrix operations
JP5368687B2 (ja) 2007-09-26 2013-12-18 キヤノン株式会社 演算処理装置および方法
US9195934B1 (en) * 2013-01-31 2015-11-24 Brain Corporation Spiking neuron classifier apparatus and methods using conditionally independent subsets
US20150317557A1 (en) * 2014-05-01 2015-11-05 Qualcomm Incorporated Temporal spike encoding for temporal learning
CN104035751B (zh) * 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
US9836277B2 (en) 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US20160162779A1 (en) * 2014-12-05 2016-06-09 RealMatch, Inc. Device, system and method for generating a predictive model by machine learning
CN104535965A (zh) * 2014-12-29 2015-04-22 江苏科技大学 基于嵌入式gpu系统的并行化声源定位系统及方法
US10528613B2 (en) 2015-11-23 2020-01-07 Advanced Micro Devices, Inc. Method and apparatus for performing a parallel search operation
CN105869117B (zh) * 2016-03-28 2021-04-02 上海交通大学 一种针对深度学习超分辨率技术的gpu加速方法
WO2017171769A1 (en) * 2016-03-31 2017-10-05 Hewlett Packard Enterprise Development Lp Logical operations
US11055063B2 (en) * 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
US10198349B2 (en) 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
CN107239824A (zh) * 2016-12-05 2017-10-10 北京深鉴智能科技有限公司 用于实现稀疏卷积神经网络加速器的装置和方法
US9754221B1 (en) 2017-03-09 2017-09-05 Alphaics Corporation Processor for implementing reinforcement learning operations
US11222260B2 (en) * 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
CN107945098B (zh) * 2017-11-24 2022-03-01 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备和存储介质
CN108021395B (zh) * 2017-12-27 2022-04-29 北京金山安全软件有限公司 一种面向神经网络的数据并行处理方法及系统
US10726096B2 (en) * 2018-10-12 2020-07-28 Hewlett Packard Enterprise Development Lp Sparse matrix vector multiplication with a matrix vector multiplication unit

Also Published As

Publication number Publication date
CN110874810B (zh) 2024-07-02
US11521374B2 (en) 2022-12-06
CN110874810A (zh) 2020-03-10
US20210192248A1 (en) 2021-06-24
US20230106073A1 (en) 2023-04-06
US20200074202A1 (en) 2020-03-05
US10936891B2 (en) 2021-03-02

Similar Documents

Publication Publication Date Title
KR20200025200A (ko) 전자 장치 및 전자 장치의 동작 방법
US11416178B2 (en) Memory device performing parallel calculation processing, operating method thereof, and operating method of memory controller controlling the memory device
US11113231B2 (en) Method of processing in memory (PIM) using memory device and memory device performing the same
US11531871B2 (en) Stacked neuromorphic devices and neuromorphic computing systems
CN110852432A (zh) 对象识别装置、电子装置和识别对象的方法
US11620504B2 (en) Neuromorphic device based on memory
KR20230005345A (ko) 신경망을 트레이닝시키는 메모리 디바이스
US20220188606A1 (en) Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device
US11908541B2 (en) Processing-in-memory (PIM) systems
TW202006609A (zh) 用於類神經網路的記憶體內運算裝置
US20230051126A1 (en) Signal routing between memory die and logic die for performing operations
KR20220054411A (ko) 스파이킹 이벤트와 관련된 메모리 내 프로세싱 동작 수행 및 관련 방법, 시스템 및 디바이스
KR20220142333A (ko) 데이터 재사용이 가능한 신경 프로세싱 유닛 및 그 방법
US12008460B2 (en) Performing processing-in-memory operations related to pre-synaptic spike signals, and related methods and systems
US11942137B2 (en) Memory controller and memory system including the same
Lu et al. NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware
KR20230043619A (ko) 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법
KR102665969B1 (ko) Imc(in memory computing) 회로, imc 회로를 포함하는 뉴럴 네트워크 장치, 및 imc 회로의 동작 방법
US11893477B2 (en) Technology for lowering instantaneous power consumption of neural processing unit
US20230069768A1 (en) Distributed Camera System
신현승 McDRAM: Low Latency and Energy-Efficient Matrix Computation in DRAM
JP2020184338A (ja) 高帯域幅メモリ及びその動作方法並びに高帯域幅メモリシステム
KR20200141663A (ko) 컨볼루션 신경망 모델에 기초한 컴퓨팅 장치 및 그 동작 방법
CN117746942A (zh) 装置、操作方法、存储器装置和cxl存储器扩展装置
CN116739061A (zh) 一种基于risc-v指令操作的神经形态计算芯片

Legal Events

Date Code Title Description
E902 Notification of reason for refusal