KR20210012335A - 반도체장치 - Google Patents

반도체장치 Download PDF

Info

Publication number
KR20210012335A
KR20210012335A KR1020190089879A KR20190089879A KR20210012335A KR 20210012335 A KR20210012335 A KR 20210012335A KR 1020190089879 A KR1020190089879 A KR 1020190089879A KR 20190089879 A KR20190089879 A KR 20190089879A KR 20210012335 A KR20210012335 A KR 20210012335A
Authority
KR
South Korea
Prior art keywords
data
output
input
pulse
pad
Prior art date
Application number
KR1020190089879A
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 KR1020190089879A priority Critical patent/KR20210012335A/ko
Priority to US16/712,313 priority patent/US11481600B2/en
Priority to TW108145988A priority patent/TW202109531A/zh
Priority to CN201911333701.6A priority patent/CN112308218A/zh
Publication of KR20210012335A publication Critical patent/KR20210012335A/ko

Links

Images

Classifications

    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Image Analysis (AREA)

Abstract

반도체장치는 연산동작이 수행될 때 코어영역에서 출력되는 제1 데이터를 글로벌입출력라인으로 출력하는 코어출력드라이버; 상기 연산동작이 수행될 때 패드영역에서 입력되는 제2 데이터를 상기 글로벌입출력라인으로 출력하는 패드입력드라이버; 및 상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 순차적으로 입력받아 코어데이터 및 패드데이터를 생성하고, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함한다.

Description

반도체장치{SEMICONDUCTOR DEVICE}
본 발명은 신경망네트워크를 제공할 수 있는 반도체장치에 관한 것이다.
신경망네트워크(Neural Network)에서 인간의 뇌와 유사하게 수학적 모델로서의 뉴런이 상호 연결되어 네트워크를 형성한다. 최근 신경망네트워크 기술이 발전함에 따라 다양한 종류의 전자장치에서 신경망네트워크 기술을 사용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.
본 발명은 신경망네트워크를 제공할 수 있는 반도체장치를 제공한다.
이를 위해 본 발명은 연산동작이 수행될 때 코어영역에서 출력되는 제1 데이터를 글로벌입출력라인으로 출력하는 코어출력드라이버; 상기 연산동작이 수행될 때 패드영역에서 입력되는 제2 데이터를 상기 글로벌입출력라인으로 출력하는 패드입력드라이버; 및 상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 순차적으로 입력받아 코어데이터 및 패드데이터를 생성하고, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 연산동작이 수행될 때 제1 코어영역에서 출력되는 제1 데이터를 제1 글로벌입출력라인으로 출력하는 제1 코어출력드라이버; 상기 연산동작이 수행될 때 제2 코어영역에서 출력되는 제2 데이터를 제2 글로벌입출력라인으로 출력하는 제2 코어출력드라이버; 상기 연산동작이 수행될 때 패드영역에서 입력되는 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하는 패드입력드라이버; 및 상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 입력받아 코어데이터를 생성하고, 상기 글로벌입출력라인을 통해 상기 제3 데이터 및 상기 제4 데이터를 입력받아 패드데이터를 생성하며, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 연산동작이 수행될 때 코어출력펄스, 제1 래치제어펄스, 패드입력펄스, 제2 래치제어펄스 및 제3 래치제어펄스를 생성하는 커맨드디코더; 및 상기 코어출력펄스가 발생될 때 코어영역에 저장된 제1 데이터를 글로벌입출력라인으로 출력하고, 상기 제1 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 코어데이터를 생성하고, 상기 패드입력펄스가 발생될 때 패드영역을 통해 입력된 제2 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 패드데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 연산동작이 수행될 때 선택신호, 코어출력펄스, 제1 래치제어펄스, 패드입력펄스, 제2 래치제어펄스 및 제3 래치제어펄스를 생성하는 커맨드디코더; 및 상기 코어출력펄스가 발생될 때 제1 코어영역에 저장된 제1 데이터를 제1 글로벌입출력라인으로 출력하거나 제2 코어영역에 저장된 제2 데이터를 제2 글로벌입출력라인으로 출력하고, 상기 제1 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 코어데이터를 생성하거나 상기 제2 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 코어데이터를 생성하고, 상기 패드입력펄스가 발생될 때 패드영역을 통해 입력된 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제2 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 패드데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
본 발명에 의하면 연산커맨드에 따라 특징값들 및 가중치들 순차적으로 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하도록 제어함으로써, 신경망네트워크를 반도체장치에 적용할 수 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 반도체장치의 구성을 도시한 블록도이다.
도 2는 도 1에 도시된 반도체장치에 포함된 신경망네트워크회로의 일 실시예에 따른 도면이다.
도 3 내지 도 6은 도 1 및 도 2에 도시된 반도체장치의 동작을 설명하기 위한 타이밍도들이다.
도 7은 본 발명의 다른 실시예에 따른 반도체장치의 구성을 도시한 블록도이다.
도 8은 도 4에 도시된 반도체장치에 포함된 신경망네트워크회로의 일 실시예에 따른 도면이다.
도 9 및 도 10은 도 7 및 도 8에 도시된 반도체장치의 동작을 설명하기 위한 타이밍도들이다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체장치(100)는 커맨드디코더(10) 및 신경망네트워크회로(11)를 포함할 수 있다.
커맨드디코더(10)는 제어신호(CA<1:L>)를 디코딩하여 코어출력펄스(COP), 래치출력펄스(LOP), 패드출력펄스(POP), 패드입력펄스(PIP), 코어입력펄스(CIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2) 및 제3 래치제어펄스(LCP3)를 생성하여 신경망네트워크회로(11)로 출력할 수 있다. 제어신호(CA<1:L>)는 커맨드 또는 어드레스가 포함될 수 있다. 커맨드디코더(10)는 제어신호(CA<1:L>)를 통해 리드동작을 위한 리드커맨드가 입력될 때 코어출력펄스(COP) 및 패드출력펄스(POP)를 발생시킬 수 있다. 커맨드디코더(10)는 제어신호(CA<1:L>)를 통해 신경망네트워크에서 사용되는 연산동작을 수행하기 위해 연산커맨드가 입력될 때 코어출력펄스(COP), 패드입력펄스(PIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2) 및 제3 래치제어펄스(LCP3)를 발생시킬 수 있다. 커맨드디코더(10)는 연산결과 생성된 연산결과데이터(도 2의 LFD)를 출력하기 위해 연산리드동작을 위한 연산리드커맨드가 입력될 때 래치출력펄스(LOP) 및 패드출력펄스(POP)를 발생시킬 수 있다.
신경망네트워크회로(11)는 리드커맨드가 입력되어 코어출력펄스(COP) 및 패드출력펄스(POP)가 발생될 때 코어영역(도 2의 21)에서 출력되는 제1 데이터를 패드영역(도 2의 23)으로 출력할 수 있다. 신경망네트워크회로(11)는 연산커맨드가 입력되어 코어출력펄스(COP), 패드입력펄스(PIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2) 및 제3 래치제어펄스(LCP3)가 발생될 때 코어영역(도 2의 21)에서 출력되는 제1 데이터 및 패드영역(도 2의 23)을 통해 입력되는 제2 데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(도2의 LFD)를 생성할 수 있다. 코어영역(도 2의 21)은 리드동작 또는 연산동작이 수행될 때 내부에 저장된 제1 데이터를 출력할 수 있다. 신경망네트워크회로(11)는 연산리드커맨드가 입력되어 래치출력펄스(LOP) 및 패드출력펄스(POP)가 발생될 때 연산결과데이터(도2의 LFD)를 패드영역(도 2의 23)을 통해 출력할 수 있다. 신경망네트워크에서 사용되는 연산동작에는 특징값들 및 가중치들에 대한 적어도 하나의 곱셈연산 및 덧셈연산이 포함될 수 있다. 신경망네트워크에서 사용되는 연산동작은 입력레이어(Input layer)에 포함된 특징들(features)을 출력레이어(Output lay)에 포함된 결과값들로 분류하기 위해 수행될 수 있다. 신경망네트워크에서 사용되는 연산동작에는 SIGMOID, Tanh, ReLU 등의 다양한 함수들이 사용될 수 있다. 특징값들은 입력레이어(Input layer)에 포함된 특징들(features)의 수치들일 수 있고, 가중치들(weights)은 입력레이어(Input layer)의 특징들(features)을 출력레이어(Output lay)에 포함된 결과값으로 분류하는데 미치는 영향력의 정도에 대한 수치들로 설정될 수 있다. 코어영역(도 2의 21)에서 출력되는 제1 데이터는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있고, 패드영역(도 2의 23)을 통해 입력되는 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다. 코어영역(도 2의 21)에서 출력되는 제1 데이터는 신경망네트워크에서 사용되는 가중치로 설정될 수도 있고, 패드영역(도 2의 23)을 통해 입력되는 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정될 수도 있다.
도 2를 참고하면 신경망네트워크회로(11)는 코어영역(21), 코어입출력회로(22), 패드영역(23), 패드입출력회로(24), 연산결과데이터생성회로(27) 및 연산결과출력드라이버(29)를 포함할 수 있다.
코어영역(21)은 메모리셀어레이(미도시)를 포함하여 리드동작 및 연산동작이 수행될 때 내부에 저장된 제1 데이터를 로컬입출력라인(LIO<1:M>)으로 출력할 수 있다. 코어영역(21)에 저장된 제1 데이터는 신경망네트워크에서 사용되는 특징값들 또는 가중치들에 대한 정보가 포함될 수 있다. 로컬입출력라인(LIO<1:M>)의 비트 수(M)는 2 이상의 자연수로 설정될 수 있다. 리드동작 및 연산동작이 수행될 때 코어영역(21)에서 로컬입출력라인(LIO<1:M>)을 통해 출력되는 제1 데이터의 비트 수는 M 이하로 설정될 수 있다.
코어입출력회로(22)는 코어출력드라이버(221) 및 코어입력드라이버(223)를 포함할 수 있다. 코어출력드라이버(221)는 리드동작이 수행될 때 발생되는 코어출력펄스(COP)에 의해 활성화되어 로컬입출력라인(LIO<1:M>)에 실린 데이터를 글로벌입출력라인(GIO<1:M>)으로 출력할 수 있다. 코어출력드라이버(221)는 라이트동작이 수행될 때 발생되는 코어입력펄스(CIP)에 의해 활성화되어 글로벌입출력라인(GIO<1:M>)에 실린 데이터를 로컬입출력라인(LIO<1:M>)으로 출력할 수 있다. 코어입출력회로(22)는 리드동작이 수행될 로컬입출력라인(LIO<1:M>)에 실린 데이터를 글로벌입출력라인(GIO<1:M>)으로 출력할 수 있다. 코어입출력회로(22)는 라이트동작이 수행될 때 글로벌입출력라인(GIO<1:M>)에 실린 데이터를 로컬입출력라인(LIO<1:M>)으로 출력할 수 있다.
패드영역(23)은 다수의 패드들(미도시)을 포함할 수 있다. 리드동작이 수행될 때 코어영역(21)에서 출력되는 제1 데이터가 로컬입출력라인(LIO<1:M>), 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:M>)을 통해 패드영역(23)으로 출력될 수 있다. 연산동작이 수행될 때 패드영역(23)을 통해 입력된 제2 데이터가 패드입출력라인(PIO<1:M>) 및 글로벌입출력라인(GIO<1:M>)으로 전달될 수 있다. 연산리드동작이 수행될 때 연산결과데이터(LFD)가 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:M>)을 통해 패드영역(23)으로 출력될 수 있다. 패드영역(23)을 통해 입력된 제2 데이터는 신경망네트워크에서 사용되는 특징값들 또는 가중치들에 대한 정보가 포함될 수 있다.
패드입출력회로(24)는 패드입력드라이버(241) 및 패드출력드라이버(243)를 포함할 수 있다. 패드입력드라이버(241)는 연산동작이 수행될 때 발생되는 패드입력펄스(PIP)에 의해 활성화되어 패드영역(23)을 통해 입력되는 제2 데이터를 패드입출력라인(PIO<1:M>) 및 글로벌입출력라인(GIO<1:M>)으로 전달할 수 있다. 패드출력드라이버(243)는 리드동작이 수행될 때 발생되는 패드출력펄스(POP)에 의해 활성화되어 코어영역(21)에서 출력된 제1 데이터를 로컬입출력라인(LIO<1:M>), 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:M>)을 통해 패드영역(23)으로 출력할 수 있다. 패드출력드라이버(243)는 연산리드동작이 수행될 때 발생되는 패드출력펄스(POP)에 의해 활성화되어 연산결과데이터(LFD)를 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:M>)을 통해 패드영역(23)으로 출력할 수 있다. 패드입출력회로(24)는 연산동작이 수행될 때 패드영역(23)을 통해 입력되는 제2 데이터를 패드입출력라인(PIO<1:M>) 및 글로벌입출력라인(GIO<1:M>)으로 전달할 수 있다. 패드입출력회로(24)는 리드동작이 수행될 때 코어영역(21)에서 출력되는 제1 데이터를 로컬입출력라인(LIO<1:M>), 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:M>)을 통해 패드영역(23)으로 출력할 수 있다. 패드입출력회로(24)는 연산리드동작이 수행될 때 연산결과데이터(LFD)를 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:M>)을 통해 패드영역(23)으로 출력할 수 있다.
연산결과데이터생성회로(27)는 제1 입력데이터래치(271), 제2 입력데이터래치(272), 연산회로(275) 및 데이터출력래치(277)를 포함할 수 있다. 제1 입력데이터래치(271)는 연산동작이 수행될 때 발생되는 제1 래치제어펄스(LCP1)에 의해 코어영역(21)에서 출력되는 제1 데이터를 글로벌입출력라인(GIO<1:M>)을 통해 입력받아 래치하고, 래치된 데이터를 코어데이터(CD)로 출력할 수 있다. 제2 입력데이터래치(272)는 연산동작이 수행될 때 발생되는 제2 래치제어펄스(LCP2)에 의해 패드영역(23)에서 입력되는 제2 데이터를 글로벌입출력라인(GIO<1:M>)을 통해 입력받아 래치하고, 래치된 데이터를 패드데이터(PD)로 출력할 수 있다. 연산회로(275)는 코어데이터(CD) 및 패드데이터(PD)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 데이터출력래치(277)는 연산동작이 수행될 때 발생되는 제3 래치제어펄스(LCP3)에 의해 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다. 연산결과데이터생성회로(27)는 연산동작이 수행될 때 코어데이터(CD) 및 패드데이터(PD)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(LFD)를 생성할 수 있다.
연산결과출력드라이버(29)는 연산리드동작이 수행될 때 발생되는 래치출력펄스(LOP)에 의해 연산결과데이터(LFD)에 의해 글로벌입출력라인(GIO<1:M>)을 구동할 수 있다. 연산결과출력드라이버(29)는 연산리드동작이 수행될 때 연산결과데이터(LFD)를 글로벌입출력라인(GIO<1:M>)으로 출력할 수 있다.
도 3을 참고하여 반도체장치(100)에서 수행되는 리드동작을 구체적으로 살펴보면 다음과 같다.
제어신호(CA<1:L>)를 통해 리드동작을 위한 리드커맨드(RD)가 입력될 때 커맨드디코더(10)는 코어출력펄스(COP) 및 패드출력펄스(POP)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(11)는 코어출력펄스(COP) 및 패드출력펄스(POP)가 발생될 때 코어영역(21)에서 출력되는 제1 데이터를 로컬입출력라인(LIO<1:M>) 및 글로벌입출력라인(GIO<1:M>)을 통해 패드영역(23)으로 출력할 수 있다.
도 4를 참고하여 반도체장치(100)에서 수행되는 연산동작의 일 실시예를 구체적으로 살펴보면 다음과 같다.
제어신호(CA<1:L>)를 통해 연산동작을 위한 연산커맨드(MAC)가 입력될 때 커맨드디코더(10)는 코어출력펄스(COP), 제1 래치제어펄스(LCP1), 패드입력펄스(PIP), 제2 래치제어펄스(LCP2) 및 제3 래치제어펄스(LCP3)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(11)는 코어출력펄스(COP) 및 제1 래치제어펄스(LCP1)가 발생될 때 코어영역(21)에서 출력되는 제1 데이터를 래치하여 코어데이터(CD)를 생성할 수 있다. 신경망네트워크회로(11)는 패드입력펄스(PIP) 및 제2 래치제어펄스(LCP2)가 발생될 때 패드영역(23)에서 입력되는 제2 데이터를 래치하여 패드데이터(PD)를 생성할 수 있다. 신경망네트워크회로(11)는 코어데이터(CD) 및 패드데이터(PD)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 신경망네트워크회로(11)는 제3 래치제어펄스(LCP3)가 발생될 때 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
반도체장치(100)는 코어영역(21)에 저장된제1 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 코어데이터(CD)를 생성하고, 패드영역(23)에서 입력되는 제2 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 패드데이터(PD)를 생성하며 코어데이터(CD) 및 패드데이터(PD)를 토대로 연산결과데이터(LFD)를 생성할 수 있다. 한편, 반도체장치(100)는 코어영역(21)에 저장된제1 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 코어데이터(CD)를 생성하고, 패드영역(23)에서 입력된 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 패드데이터(PD)를 생성하며 코어데이터(CD) 및 패드데이터(PD)를 토대로 연산결과데이터(LFD)를 생성할 수도 있다.
도 5를 참고하여 반도체장치(100)에서 수행되는 연산동작의 다른 실시예를 구체적으로 살펴보면 다음과 같다.
제어신호(CA<1:L>)를 통해 연산동작을 위한 연산커맨드(MAC)가 입력될 때 커맨드디코더(10)는 패드입력펄스(PIP), 제2 래치제어펄스(LCP2), 코어출력펄스(COP), 제1 래치제어펄스(LCP1) 및 제3 래치제어펄스(LCP3)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(11)는 패드입력펄스(PIP) 및 제2 래치제어펄스(LCP2)가 발생될 때 패드영역(23)에서 입력되는 제2 데이터를 래치하여 패드데이터(PD)를 생성할 수 있다. 신경망네트워크회로(11)는 코어출력펄스(COP) 및 제1 래치제어펄스(LCP1)가 발생될 때 코어영역(21)에서 출력되는 제1 데이터를 래치하여 코어데이터(CD)를 생성할 수 있다. 신경망네트워크회로(11)는 코어데이터(CD) 및 패드데이터(PD)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 신경망네트워크회로(11)는 제3 래치제어펄스(LCP3)가 발생될 때 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
반도체장치(100)는 패드영역(23)에서 입력되는 제2 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 패드데이터(PD)를 생성하고, 코어영역(21)에 저장된제1 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 코어데이터(CD)를 생성하며 코어데이터(CD) 및 패드데이터(PD)를 토대로 연산결과데이터(LFD)를 생성할 수 있다. 한편, 반도체장치(100)는 패드영역(23)에서 입력되는 제2 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 패드데이터(PD)를 생성하고, 코어영역(21)에 저장된 제2 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 코어데이터(CD)하며 코어데이터(CD) 및 패드데이터(PD)를 토대로 연산결과데이터(LFD)를 생성할 수도 있다.
도 6을 참고하여 반도체장치(100)에서 수행되는 연산리드동작을 구체적으로 살펴보면 다음과 같다.
제어신호(CA<1:L>)를 통해 연산리드동작을 위한 연산리드커맨드(LRD)가 입력될 때 커맨드디코더(10)는 래치출력펄스(LOP) 및 패드출력펄스(POP)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(11)는 래치출력펄스(LOP) 및 패드출력펄스(POP)가 발생될 때 연산결과데이터(LFD)를 글로벌입출력라인(GIO<1:M>)을 통해 패드영역(23)으로 출력할 수 있다.
도 7에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체장치(300)는 커맨드디코더(30) 및 신경망네트워크회로(31)를 포함할 수 있다.
커맨드디코더(30)는 제어신호(CA<1:L>)를 디코딩하여 코어출력펄스(COP), 래치출력펄스(LOP), 패드출력펄스(POP), 패드입력펄스(PIP), 코어입력펄스(CIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2), 선택신호(SEL) 및 제3 래치제어펄스(LCP3)를 생성하여 신경망네트워크회로(31)로 출력할 수 있다. 제어신호(CA<1:L>)는 커맨드 또는 어드레스가 포함될 수 있다. 커맨드디코더(30)는 제어신호(CA<1:L>)를 통해 리드동작을 위한 리드커맨드가 입력될 때 코어출력펄스(COP) 및 패드출력펄스(POP)를 발생시킬 수 있다. 커맨드디코더(10)는 제어신호(CA<1:L>)를 통해 신경망네트워크에서 사용되는 연산동작을 수행하기 위해 연산커맨드가 입력될 때 코어출력펄스(COP), 패드입력펄스(PIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2), 선택신호(SEL) 및 제3 래치제어펄스(LCP3)를 발생시킬 수 있다. 커맨드디코더(10)는 연산결과 생성된 연산결과데이터를 출력하기 위해 연산리드동작을 위한 연산리드커맨드가 입력될 때 래치출력펄스(LOP) 및 패드출력펄스(POP)를 발생시킬 수 있다.
신경망네트워크회로(31)는 리드커맨드가 입력되어 코어출력펄스(COP) 및 패드출력펄스(POP)가 발생될 때 제1 코어영역(도 8의 411)에서 출력되는 제1 데이터를 패드영역(도 8의 43)으로 출력할 수 있고, 제2 코어영역(도 8의 413)에서 출력되는 제2 데이터를 패드영역(도 8의 43)으로 출력할 수 있다. 신경망네트워크회로(31)는 연산커맨드가 입력되어 코어출력펄스(COP), 패드입력펄스(PIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2), 선택신호(SEL) 및 제3 래치제어펄스(LCP3)가 발생될 때 제1 코어영역(도 8의 411)에 저장된 데이터 및 패드영역(도 8의 43)을 통해 입력된 데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(도8의 LFD)를 생성할 수 있다. 신경망네트워크회로(31)는 연산커맨드가 입력되어 코어출력펄스(COP), 패드입력펄스(PIP), 제1 래치제어펄스(LCP1), 제2 래치제어펄스(LCP2), 선택신호(SEL) 및 제3 래치제어펄스(LCP3)가 발생될 때 제2 코어영역(도 8의 413)에 저장된 데이터 및 패드영역(도 8의 43)을 통해 입력된 데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(도8의 LFD)를 생성할 수 있다. 신경망네트워크회로(11)는 연산리드커맨드가 입력되어 래치출력펄스(LOP) 및 패드출력펄스(POP)가 발생될 때 연산결과데이터(도8의 LFD)를 패드영역(도 8의 43)을 통해 출력할 수 있다.
도 8을 참고하면 신경망네트워크회로(31)는 제1 코어영역(411), 제1 코어출력드라이버(421), 제2 코어영역(413), 제2 코어출력드라이버(423), 패드영역(43), 패드입출력회로(44), 연산결과데이터생성회로(47) 및 연산결과출력드라이버(49)를 포함할 수 있다.
제1 코어영역(411)은 메모리셀어레이(미도시)를 포함하여 리드동작 및 연산동작이 수행될 때 내부에 저장된 제1 데이터를 제1 로컬입출력라인(LIO<1:M>)으로 출력할 수 있다. 제1 코어영역(411)에 저장된 제1 데이터는 신경망네트워크에서 사용되는 특징값들 또는 가중치들에 대한 정보가 포함될 수 있다. 제1 로컬입출력라인(LIO<1:M>)의 비트 수(M)는 2 이상의 자연수로 설정될 수 있다. 리드동작 및 연산동작이 수행될 때 제1 코어영역(411)에서 제1 로컬입출력라인(LIO<1:M>)을 통해 출력되는 제1 데이터의 비트 수는 M 이하로 설정될 수 있다.
제1 코어출력드라이버(421)는 리드동작이 수행될 때 발생되는 코어출력펄스(COP)에 의해 활성화되어 제1 로컬입출력라인(LIO<1:M>)에 실린 데이터를 제1 글로벌입출력라인(GIO<1:M>)으로 출력할 수 있다.
제2 코어영역(413)은 메모리셀어레이(미도시)를 포함하여 리드동작 및 연산동작이 수행될 때 내부에 저장된 제2 데이터를 제2 로컬입출력라인(LIO<M+1:2M>)으로 출력할 수 있다. 제2 코어영역(413)에 저장된 제2 데이터는 신경망네트워크에서 사용되는 특징값들 또는 가중치들에 대한 정보가 포함될 수 있다. 리드동작 및 연산동작이 수행될 때 제2 코어영역(413)에서 제2 로컬입출력라인(LIO<M+1:2M>)을 통해 출력되는 제2 데이터의 비트 수는 M 이하로 설정될 수 있다.
제2 코어출력드라이버(423)는 리드동작이 수행될 때 발생되는 코어출력펄스(COP)에 의해 활성화되어 제2 로컬입출력라인(LIO<M+1:2M>)에 실린 데이터를 제2 글로벌입출력라인(GIO<M+1:2M>)으로 출력할 수 있다.
패드영역(43)은 다수의 패드들(미도시)을 포함할 수 있다. 리드동작이 수행될 때 제1 코어영역(411)에서 출력되는 제1 데이터가 제1 로컬입출력라인(LIO<1:M>), 제1 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력될 수 있다. 제2 코어영역(413)에서 출력되는 제2 데이터가 제2 로컬입출력라인(LIO<M+1:2M>), 제2 글로벌입출력라인(GIO<M+1:2M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력될 수 있다. 연산동작이 수행될 때 패드영역(43)을 통해 입력되는 제3 데이터가 패드입출력라인(PIO<1:2M>), 제1 글로벌입출력라인(GIO<1:M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)으로 전달될 수 있다. 연산리드동작이 수행될 때 연산결과데이터(LFD)가 제1 글로벌입출력라인(GIO<1:M>), 제2 글로벌입출력라인(GIO<M+1:2M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력될 수 있다. 패드영역(43)을 통해 입력되는 제3 데이터는 신경망네트워크에서 사용되는 특징값들 또는 가중치들에 대한 정보가 포함될 수 있다.
패드입출력회로(44)는 패드입력드라이버(441) 및 패드출력드라이버(443)를 포함할 수 있다. 패드입력드라이버(441)는 연산동작이 수행될 때 발생되는 패드입력펄스(PIP)에 의해 활성화되어 패드영역(43)을 통해 입력되는 제3 데이터를 패드입출력라인(PIO<1:2M>), 제1 글로벌입출력라인(GIO<1:M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)으로 전달할 수 있다. 패드출력드라이버(443)는 리드동작이 수행될 때 발생되는 패드출력펄스(POP)에 의해 활성화되어 제1 코어영역(411)에서 출력되는 제1 데이터를 제1 로컬입출력라인(LIO<1:M>), 제1 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력할 수 있다. 패드출력드라이버(443)는 리드동작이 수행될 때 발생되는 패드출력펄스(POP)에 의해 활성화되어 제2 코어영역(413)에서 출력되는 제2 데이터를 제2 로컬입출력라인(LIO<M+1:2M>), 제2 글로벌입출력라인(GIO<M+1:2M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력할 수 있다. 패드출력드라이버(443)는 연산리드동작이 수행될 때 발생되는 패드출력펄스(POP)에 의해 활성화되어 연산결과데이터(LFD)를 제1 글로벌입출력라인(GIO<1:M>), 제2 글로벌입출력라인(GIO<M+1:2M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력할 수 있다. 패드입출력회로(44)는 연산동작이 수행될 때 패드영역(43)을 통해 입력되는 제3 데이터를 패드입출력라인(PIO<1:2M>), 제1 글로벌입출력라인(GIO<1:M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)으로 전달할 수 있다. 패드입출력회로(44)는 리드동작이 수행될 때 제1 코어영역(411)에서 출력되는 제1 데이터를 제1 로컬입출력라인(LIO<1:M>), 제1 글로벌입출력라인(GIO<1:M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력할 수 있다. 패드입출력회로(44)는 리드동작이 수행될 때 제2 코어영역(413)에서 출력되는 제2 데이터를 제2 로컬입출력라인(LIO<M+1:2M>), 제2 글로벌입출력라인(GIO<M+1:2M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력할 수 있다. 패드입출력회로(44)는 연산리드동작이 수행될 때 연산결과데이터(LFD)를 제1 글로벌입출력라인(GIO<1:M>), 제2 글로벌입출력라인(GIO<M+1:2M>) 및 패드입출력라인(PIO<1:2M>)을 통해 패드영역(43)으로 출력할 수 있다.
연산결과데이터생성회로(47)는 제1 코어데이터래치(471), 제2 코어데이터래치(473), 제1 데이터선택기(475), 제1 패드데이터래치(477), 제2 패드데이터래치(479), 제2 데이터선택기(481), 연산회로(483) 및 데이터출력래치(485)를 포함할 수 있다.
제1 코어데이터래치(471)는 연산동작이 수행될 때 발생되는 제1 래치제어펄스(LCP1)에 의해 제1 코어영역(411)에서 출력되는 제1 데이터를 제1 로컬입출력라인(LIO<1:M>) 및 제1 글로벌입출력라인(GIO<1:M>)을 통해 입력받아 래치하고, 래치된 데이터를 제1 코어데이터(CD1)로 출력할 수 있다. 제2 코어데이터래치(473)는 연산동작이 수행될 때 발생되는 제1 래치제어펄스(LCP1)에 의해 제2 코어영역(413)에서 출력되는 제2 데이터를 제2 로컬입출력라인(LIO<M+1:2M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)을 통해 입력받아 래치하고, 래치된 데이터를 제2 코어데이터(CD2)로 출력할 수 있다. 제1 데이터선택기(475)는 선택신호(SEL)를 토대로 제1 코어데이터(CD1) 또는 제2 코어데이터(CD2)를 선택코어데이터(CDS)로 출력할 수 있다.
제1 패드데이터래치(477)는 연산동작이 수행될 때 발생되는 제2 래치제어펄스(LCP2)에 의해 패드입출력라인(PIO<1:2M>) 및 제1 글로벌입출력라인(GIO<1:M>)을 통해 패드영역(43)로 입력되는 제3 데이터를 입력받아 래치하고, 래치된 데이터를 제1 패드데이터(PD1)로 출력할 수 있다. 제2 패드데이터래치(479)는 연산동작이 수행될 때 발생되는 제2 래치제어펄스(LCP2)에 의해 패드입출력라인(PIO<1:2M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)을 통해 패드영역(43)로 입력되는 제3 데이터를 입력받아 래치하고, 래치된 데이터를 제2 패드데이터(PD2)로 출력할 수 있다. 제2 데이터선택기(481)는 선택신호(SEL)를 토대로 제1 패드데이터(PD1) 또는 제2 패드데이터(PD2)를 선택패드데이터(PDS)로 출력할 수 있다.
연산회로(483)는 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 데이터출력래치(485)는 연산동작이 수행될 때 발생되는 제3 래치제어펄스(LCP3)에 의해 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
연산결과출력드라이버(49)는 연산리드동작이 수행될 때 발생되는 래치출력펄스(LOP)에 의해 연산결과데이터(LFD)에 의해 제1 글로벌입출력라인(GIO<1:M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)을 구동할 수 있다. 연산결과출력드라이버(49)는 연산리드동작이 수행될 때 연산결과데이터(LFD)를 제1 글로벌입출력라인(GIO<1:M>) 및 제2 글로벌입출력라인(GIO<M+1:2M>)으로 출력할 수 있다.
도 9를 참고하여 반도체장치(300)에서 수행되는 연산동작의 일 실시예를 구체적으로 살펴보면 다음과 같다.
제어신호(CA<1:L>)를 통해 연산동작을 위한 연산커맨드(MAC)가 첫번째 입력될 때 커맨드디코더(30)는 선택신호(SEL), 코어출력펄스(COP), 제1 래치제어펄스(LCP1), 패드입력펄스(PIP), 제2 래치제어펄스(LCP2) 및 제3 래치제어펄스(LCP3)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직로우레벨로 발생되고, 코어출력펄스(COP) 및 제1 래치제어펄스(LCP1)가 발생될 때 제1 코어영역(411)에서 출력되는 제1 데이터를 래치하여 제1 코어데이터(CD1)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직로우레벨일 때 제1 코어데이터(CD1)를 선택코어데이터(CDS)로 출력할 수 있다. 신경망네트워크회로(31)는 패드입력펄스(PIP) 및 제2 래치제어펄스(LCP2)가 발생될 때 패드영역(43)에서 입력되는 제3 데이터를 래치하여 제1 패드데이터(PD1)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직로우레벨일 때 제1 패드데이터(PD1)를 선택패드데이터(PDS)로 출력할 수 있다. 신경망네트워크회로(31)는 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 신경망네트워크회로(31)는 제3 래치제어펄스(LCP3)가 발생될 때 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
제어신호(CA<1:L>)를 통해 연산동작을 위한 연산커맨드(MAC)가 두번째 입력될 때 커맨드디코더(30)는 선택신호(SEL), 코어출력펄스(COP), 제1 래치제어펄스(LCP1), 패드입력펄스(PIP), 제2 래치제어펄스(LCP2) 및 제3 래치제어펄스(LCP3)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직하이레벨로 발생되고, 코어출력펄스(COP) 및 제1 래치제어펄스(LCP1)가 발생될 때 제2 코어영역(413)에서 출력되는 제2 데이터를 래치하여 제2 코어데이터(CD2)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직하이레벨일 때 제2 코어데이터(CD2)를 선택코어데이터(CDS)로 출력할 수 있다. 신경망네트워크회로(31)는 패드입력펄스(PIP) 및 제2 래치제어펄스(LCP2)가 발생될 때 패드영역(43)에서 입력되는 제3 데이터를 래치하여 제2 패드데이터(PD2)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직하이레벨일 때 제2 패드데이터(PD2)를 선택패드데이터(PDS)로 출력할 수 있다. 신경망네트워크회로(31)는 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 신경망네트워크회로(31)는 제3 래치제어펄스(LCP3)가 발생될 때 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
반도체장치(300)는 제1 코어영역(411)에 저장된 제1 데이터 또는 제2 코어영역(413)에 저장된 제2 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 선택코어데이터(CDS)를 생성하고, 패드영역(43)에서 입력되는 제3 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 선택패드데이터(PDS)를 생성하며 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 토대로 연산결과데이터(LFD)를 생성할 수 있다. 한편, 반도체장치(300)는 제1 코어영역(411)에 저장된 제1 데이터 또는 제2 코어영역(413)에 저장된 제2 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 선택코어데이터(CDS)를 생성하고, 패드영역(43)에서 입력되는 제3 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 선택패드데이터(PDS)를 생성하며 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 토대로 연산결과데이터(LFD)를 생성할 수도 있다.
도 10을 참고하여 반도체장치(300)에서 수행되는 연산동작의 다른 실시예를 구체적으로 살펴보면 다음과 같다.
제어신호(CA<1:L>)를 통해 연산동작을 위한 연산커맨드(MAC)가 첫번째 입력될 때 커맨드디코더(30)는 패드입력펄스(PIP), 제2 래치제어펄스(LCP2), 선택신호(SEL), 코어출력펄스(COP), 제1 래치제어펄스(LCP1) 및 제3 래치제어펄스(LCP3)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(31)는 패드입력펄스(PIP) 및 제2 래치제어펄스(LCP2)가 발생될 때 패드영역(43)에서 입력되는 제3 데이터를 래치하여 제1 패드데이터(PD1)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직로우레벨일 때 제1 패드데이터(PD1)를 선택패드데이터(PDS)로 출력할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직로우레벨로 발생되고, 코어출력펄스(COP) 및 제1 래치제어펄스(LCP1)가 발생될 때 제1 코어영역(411)에서 출력되는 제1 데이터를 래치하여 제1 코어데이터(CD1)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직로우레벨일 때 제1 코어데이터(CD1)를 선택코어데이터(CDS)로 출력할 수 있다. 신경망네트워크회로(31)는 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 신경망네트워크회로(31)는 제3 래치제어펄스(LCP3)가 발생될 때 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
제어신호(CA<1:L>)를 통해 연산동작을 위한 연산커맨드(MAC)가 두번째 입력될 때 커맨드디코더(30)는 패드입력펄스(PIP), 제2 래치제어펄스(LCP2), 선택신호(SEL), 코어출력펄스(COP), 제1 래치제어펄스(LCP1) 및 제3 래치제어펄스(LCP3)를 순차적으로 발생시킬 수 있다. 신경망네트워크회로(31)는 패드입력펄스(PIP) 및 제2 래치제어펄스(LCP2)가 발생될 때 패드영역(43)에서 입력되는 제3 데이터를 래치하여 제2 패드데이터(PD2)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직하이레벨일 때 제2 패드데이터(PD2)를 선택패드데이터(PDS)로 출력할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직하이레벨로 발생되고, 코어출력펄스(COP) 및 제1 래치제어펄스(LCP1)가 발생될 때 제2 코어영역(413)에서 출력되는 제2 데이터를 래치하여 제2 코어데이터(CD2)를 생성할 수 있다. 신경망네트워크회로(31)는 선택신호(SEL)가 로직하이레벨일 때 제2 코어데이터(CD2)를 선택코어데이터(CDS)로 출력할 수 있다. 신경망네트워크회로(31)는 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터(LD)를 생성할 수 있다. 신경망네트워크회로(31)는 제3 래치제어펄스(LCP3)가 발생될 때 연산데이터(LD)를 래치하고, 래치된 연산데이터(LD)를 연산결과데이터(LFD)로 출력할 수 있다.
반도체장치(300)는 패드영역(43)에서 입력되는 제3 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 선택패드데이터(PDS)를 생성하고, 제1 코어영역(411)에 저장된 제1 데이터 또는 제2 코어영역(413)에 저장된 제2 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 선택코어데이터(CDS)를 생성하며 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 토대로 연산결과데이터(LFD)를 생성할 수 있다. 한편, 반도체장치(300)는 패드영역(43)에서 입력되는 제3 데이터로부터 신경망네트워크에서 사용되는 특징값들(features)에 대한 정보를 포함하는 선택패드데이터(PDS)를 생성하고, 제1 코어영역(411)에 저장된 제1 데이터 또는 제2 코어영역(413)에 저장된 제2 데이터로부터 신경망네트워크에서 사용되는 가중치들(weights)에 대한 정보를 포함하는 선택코어데이터(CDS)를 생성하며, 선택코어데이터(CDS) 및 선택패드데이터(PDS)를 토대로 연산결과데이터(LFD)를 생성할 수도 있다.
100: 반도체장치 10: 커맨드디코더
11: 신경망네트워크회로 21: 코어영역
22: 코어입출력회로 23: 패드영역
24: 패드입출력회로 27: 연산결과데이터생성회로
29: 연산결과출력드라이버

Claims (32)

  1. 연산동작이 수행될 때 코어영역에서 출력되는 제1 데이터를 글로벌입출력라인으로 출력하는 코어출력드라이버;
    상기 연산동작이 수행될 때 패드영역에서 입력되는 제2 데이터를 상기 글로벌입출력라인으로 출력하는 패드입력드라이버; 및
    상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 순차적으로 입력받아 코어데이터 및 패드데이터를 생성하고, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함하는 반도체장치.
  2. 제 1 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
  3. 제 1 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
  4. 제 1 항에 있어서, 상기 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제2 데이터를 상기 글로벌입출력라인으로 출력하되, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되는 반도체장치.
  5. 제 1 항에 있어서, 상기 연산결과데이터생성회로는 제1 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 상기 코어데이터를 생성하고, 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 패드데이터를 생성하는 반도체장치.
  6. 제 5 항에 있어서, 상기 제1 래치제어펄스는 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 패드입력펄스를 토대로 발생되는 반도체장치.
  7. 제 1 항에 있어서, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제2 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 글로벌입출력라인으로 출력하되, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되는 반도체장치.
  8. 제 1 항에 있어서, 상기 연산결과데이터생성회로는 제3 래치제어펄스를 토대로 상기 연산데이터를 래치하고, 상기 래치된 연산데이터를 연산결과데이터로 출력하는 반도체장치.
  9. 제 8 항에 있어서,
    연산리드동작이 수행될 때 상기 연산결과데이터를 상기 글로벌입출력라인으로 출력하는 연산결과출력드라이버를 더 포함하는 반도체장치.
  10. 제 9 항에 있어서,
    상기 연산리드동작이 수행될 때 상기 글로벌입출력라인에 실린데이터를 상기 패드영역으로 출력하는 패드출력드라이버를 더 포함하는 반도체장치.
  11. 연산동작이 수행될 때 제1 코어영역에서 출력되는 제1 데이터를 제1 글로벌입출력라인으로 출력하는 제1 코어출력드라이버;
    상기 연산동작이 수행될 때 제2 코어영역에서 출력되는 제2 데이터를 제2 글로벌입출력라인으로 출력하는 제2 코어출력드라이버;
    상기 연산동작이 수행될 때 패드영역에서 입력되는 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하는 패드입력드라이버; 및
    상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 입력받아 코어데이터를 생성하고, 상기 글로벌입출력라인을 통해 상기 제3 데이터 및 상기 제4 데이터를 입력받아 패드데이터를 생성하며, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함하는 반도체장치.
  12. 제 11 항에 있어서, 상기 제1 데이터 및 상기 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제3 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
  13. 제 11 항에 있어서, 상기 제1 데이터 및 상기 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제3 데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
  14. 제 11 항에 있어서, 상기 제1 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 제1 글로벌입출력라인으로 출력하고, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하되, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되는 반도체장치.
  15. 제 11 항에 있어서, 상기 제2 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제2 데이터를 상기 제2 글로벌입출력라인으로 출력하고, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하되, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되는 반도체장치.
  16. 제 11 항에 있어서, 상기 연산결과데이터생성회로는 제1 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 상기 코어데이터를 생성하고, 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 상기 패드데이터를 생성하는 반도체장치.
  17. 제 16 항에 있어서, 상기 제1 래치제어펄스는 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 패드입력펄스를 토대로 발생되는 반도체장치.
  18. 제 11 항에 있어서, 상기 연산결과데이터생성회로는 제1 래치제어펄스가 발생될 때 상기 제2 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 코어데이터를 생성하고, 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 상기 패드데이터를 생성하는 반도체장치.
  19. 제 11 항에 있어서, 상기 제1 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제1 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 제1 글로벌입출력라인으로 출력하되, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되는 반도체장치.
  20. 제 11 항에 있어서, 상기 제2 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제2 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제2 데이터를 상기 제2 글로벌입출력라인으로 출력하되, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되는 반도체장치.
  21. 제 11 항에 있어서, 상기 연산결과데이터생성회로는 제3 래치제어펄스를 토대로 상기 연산데이터를 래치하고, 상기 래치된 연산데이터를 연산결과데이터로 출력하는 반도체장치.
  22. 제 21 항에 있어서,
    연산리드동작이 수행될 때 상기 연산결과데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하는 연산결과출력드라이버를 더 포함하는 반도체장치.
  23. 제 22 항에 있어서,
    상기 연산리드동작이 수행될 때 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인에 실린데이터를 상기 패드영역으로 출력하는 패드출력드라이버를 더 포함하는 반도체장치.
  24. 연산동작이 수행될 때 코어출력펄스, 제1 래치제어펄스, 패드입력펄스, 제2 래치제어펄스 및 제3 래치제어펄스를 생성하는 커맨드디코더; 및
    상기 코어출력펄스가 발생될 때 코어영역에 저장된 제1 데이터를 글로벌입출력라인으로 출력하고, 상기 제1 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 코어데이터를 생성하고, 상기 패드입력펄스가 발생될 때 패드영역을 통해 입력된 제2 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 패드데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
  25. 제 24 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
  26. 제 24 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
  27. 제 24 항에 있어서, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되고, 상기 제1 래치제어펄스는 상기 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 상기 패드입력펄스를 토대로 발생되는 반도체장치.
  28. 제 24 항에 있어서, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되고, 상기 제1 래치제어펄스는 상기 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 상기 패드입력펄스를 토대로 발생되는 반도체장치.
  29. 제 24 항에 있어서, 상기 신경망네트워크회로는 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 반도체장치.
  30. 제 29 항에 있어서, 상기 신경망네트워크회로는 상기 제3 래치제어펄스를 토대로 상기 연산데이터를 래치하고, 상기 래치된 연산데이터를 연산결과데이터로 출력하는 반도체장치.
  31. 제 30 항에 있어서, 상기 커맨드디코더는 연산리드동작이 수행될 때 래치출력펄스를 생성하고, 상기 신경망네트워크회로는 상기 래치출력펄스를 토대로 상기 연산결과데이터를 상기 글로벌입출력라인으로 출력하는 반도체장치.
  32. 연산동작이 수행될 때 선택신호, 코어출력펄스, 제1 래치제어펄스, 패드입력펄스, 제2 래치제어펄스 및 제3 래치제어펄스를 생성하는 커맨드디코더; 및
    상기 코어출력펄스가 발생될 때 제1 코어영역에 저장된 제1 데이터를 제1 글로벌입출력라인으로 출력하거나 제2 코어영역에 저장된 제2 데이터를 제2 글로벌입출력라인으로 출력하고, 상기 제1 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 코어데이터를 생성하거나 상기 제2 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 코어데이터를 생성하고, 상기 패드입력펄스가 발생될 때 패드영역을 통해 입력된 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제2 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 패드데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
KR1020190089879A 2019-07-24 2019-07-24 반도체장치 KR20210012335A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190089879A KR20210012335A (ko) 2019-07-24 2019-07-24 반도체장치
US16/712,313 US11481600B2 (en) 2019-07-24 2019-12-12 Semiconductor devices
TW108145988A TW202109531A (zh) 2019-07-24 2019-12-16 半導體裝置
CN201911333701.6A CN112308218A (zh) 2019-07-24 2019-12-23 半导体器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190089879A KR20210012335A (ko) 2019-07-24 2019-07-24 반도체장치

Publications (1)

Publication Number Publication Date
KR20210012335A true KR20210012335A (ko) 2021-02-03

Family

ID=74187644

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190089879A KR20210012335A (ko) 2019-07-24 2019-07-24 반도체장치

Country Status (4)

Country Link
US (1) US11481600B2 (ko)
KR (1) KR20210012335A (ko)
CN (1) CN112308218A (ko)
TW (1) TW202109531A (ko)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2506862B2 (ja) * 1987-12-08 1996-06-12 松下電器産業株式会社 適応形デルタ変調復号化装置
JPH0944451A (ja) * 1995-07-31 1997-02-14 Toshiba Corp 数値演算装置及び数値演算方法
JPH117432A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 情報処理装置及び半導体装置
KR100640783B1 (ko) * 2004-10-30 2006-11-01 주식회사 하이닉스반도체 노이즈를 줄일 수 있는 데이터 출력 드라이버
JP4846306B2 (ja) * 2005-09-09 2011-12-28 富士通セミコンダクター株式会社 半導体記憶装置及びそれを用いた半導体集積回路システム並びに半導体記憶装置の制御方法
KR100743634B1 (ko) * 2005-12-30 2007-07-27 주식회사 하이닉스반도체 반도체 메모리 장치의 명령어 디코딩 회로
US8578116B2 (en) * 2006-03-28 2013-11-05 Broadcom Corporation System and method for memory data protection with secure pad memory
US7868680B2 (en) * 2006-09-06 2011-01-11 Panasonic Corporation Semiconductor input/output control circuit
KR100915831B1 (ko) * 2008-07-28 2009-09-07 주식회사 하이닉스반도체 반도체 집적회로
KR100977718B1 (ko) * 2008-11-06 2010-08-24 주식회사 하이닉스반도체 반도체 장치
KR20140008766A (ko) * 2012-07-11 2014-01-22 에스케이하이닉스 주식회사 반도체메모리장치
JP2014049173A (ja) * 2012-09-04 2014-03-17 Toshiba Corp 半導体記憶装置
KR102029148B1 (ko) * 2013-09-02 2019-10-07 에스케이하이닉스 주식회사 반도체 장치 및 그의 동작 방법
KR20150050834A (ko) * 2013-11-01 2015-05-11 에스케이하이닉스 주식회사 반도체 장치 및 이를 포함하는 메모리 시스템
KR20160016343A (ko) * 2014-08-05 2016-02-15 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US20160179542A1 (en) 2014-12-23 2016-06-23 Patrick P. Lai Instruction and logic to perform a fused single cycle increment-compare-jump
US10949736B2 (en) 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
US11182668B2 (en) * 2017-11-06 2021-11-23 Imagination Technologies Limited Neural network architecture using convolution engine filter weight buffers
WO2019104695A1 (zh) * 2017-11-30 2019-06-06 深圳市大疆创新科技有限公司 用于神经网络的运算装置、芯片、设备及相关方法
KR20210012839A (ko) * 2019-07-26 2021-02-03 에스케이하이닉스 주식회사 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치
KR20210071473A (ko) * 2019-12-06 2021-06-16 삼성전자주식회사 연산 장치, 그것의 동작 방법 및 뉴럴 네트워크 프로세서

Also Published As

Publication number Publication date
CN112308218A (zh) 2021-02-02
TW202109531A (zh) 2021-03-01
US11481600B2 (en) 2022-10-25
US20210027134A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
US10891076B1 (en) Results processing circuits and methods associated with computational memory cells
KR20200100951A (ko) 메모리 장치 및 이를 포함하는 데이터 처리 시스템
US11954457B2 (en) Arithmetic devices for neural network including a function storage circuit and an activation function circuit
KR20160148788A (ko) 반도체장치 및 반도체시스템
CN104424995A (zh) 半导体器件及其操作方法
CN109801652A (zh) 存储设备及其操作方法
US11423290B2 (en) Methods of executing an arithmetic operation and semiconductor devices performing the arithmetic operation
KR102432849B1 (ko) 데이터 제어 회로 및 이를 포함하는 반도체 메모리 장치 및 반도체 시스템
KR101153794B1 (ko) 데이터 입출력 회로 및 이를 포함하는 반도체 메모리 장치
KR20210012335A (ko) 반도체장치
US10777241B2 (en) Semiconductor devices and semiconductor systems
KR20160016126A (ko) 뱅크 제어 회로 및 이를 포함하는 반도체 메모리 장치
KR20170096807A (ko) 메모리를 이용한 물리적 복제 불가능 함수 보안 칩
JP4443340B2 (ja) フラッシュメモリ素子
US10282289B2 (en) Package modules and methods of testing operations of chips included therein
US8036045B2 (en) Data output control circuit
KR100759780B1 (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 데이터 입출력 방법
US9190140B2 (en) Semiconductor devices
KR102605637B1 (ko) 반도체 장치 및 데이터 처리 시스템
US11422804B2 (en) Processing-in-memory (PIM) device
US10818373B2 (en) Memory device and test circuit thereof
US11062741B2 (en) Semiconductor devices
US9984764B2 (en) Semiconductor memory apparatus
KR20100050955A (ko) 반도체 메모리 장치
KR20140025012A (ko) 반도체메모리장치