KR20210012335A - 반도체장치 - Google Patents
반도체장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1096—Write 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
본 발명은 신경망네트워크를 제공할 수 있는 반도체장치에 관한 것이다.
신경망네트워크(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에 도시된 반도체장치의 동작을 설명하기 위한 타이밍도들이다.
도 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: 연산결과출력드라이버
11: 신경망네트워크회로 21: 코어영역
22: 코어입출력회로 23: 패드영역
24: 패드입출력회로 27: 연산결과데이터생성회로
29: 연산결과출력드라이버
Claims (32)
- 연산동작이 수행될 때 코어영역에서 출력되는 제1 데이터를 글로벌입출력라인으로 출력하는 코어출력드라이버;
상기 연산동작이 수행될 때 패드영역에서 입력되는 제2 데이터를 상기 글로벌입출력라인으로 출력하는 패드입력드라이버; 및
상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 순차적으로 입력받아 코어데이터 및 패드데이터를 생성하고, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함하는 반도체장치.
- 제 1 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
- 제 1 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
- 제 1 항에 있어서, 상기 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제2 데이터를 상기 글로벌입출력라인으로 출력하되, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되는 반도체장치.
- 제 1 항에 있어서, 상기 연산결과데이터생성회로는 제1 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 상기 코어데이터를 생성하고, 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 패드데이터를 생성하는 반도체장치.
- 제 5 항에 있어서, 상기 제1 래치제어펄스는 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 패드입력펄스를 토대로 발생되는 반도체장치.
- 제 1 항에 있어서, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제2 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 글로벌입출력라인으로 출력하되, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되는 반도체장치.
- 제 1 항에 있어서, 상기 연산결과데이터생성회로는 제3 래치제어펄스를 토대로 상기 연산데이터를 래치하고, 상기 래치된 연산데이터를 연산결과데이터로 출력하는 반도체장치.
- 제 8 항에 있어서,
연산리드동작이 수행될 때 상기 연산결과데이터를 상기 글로벌입출력라인으로 출력하는 연산결과출력드라이버를 더 포함하는 반도체장치.
- 제 9 항에 있어서,
상기 연산리드동작이 수행될 때 상기 글로벌입출력라인에 실린데이터를 상기 패드영역으로 출력하는 패드출력드라이버를 더 포함하는 반도체장치.
- 연산동작이 수행될 때 제1 코어영역에서 출력되는 제1 데이터를 제1 글로벌입출력라인으로 출력하는 제1 코어출력드라이버;
상기 연산동작이 수행될 때 제2 코어영역에서 출력되는 제2 데이터를 제2 글로벌입출력라인으로 출력하는 제2 코어출력드라이버;
상기 연산동작이 수행될 때 패드영역에서 입력되는 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하는 패드입력드라이버; 및
상기 글로벌입출력라인을 통해 상기 제1 데이터 및 상기 제2 데이터를 입력받아 코어데이터를 생성하고, 상기 글로벌입출력라인을 통해 상기 제3 데이터 및 상기 제4 데이터를 입력받아 패드데이터를 생성하며, 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 연산결과데이터생성회로를 포함하는 반도체장치.
- 제 11 항에 있어서, 상기 제1 데이터 및 상기 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제3 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
- 제 11 항에 있어서, 상기 제1 데이터 및 상기 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제3 데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
- 제 11 항에 있어서, 상기 제1 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 제1 글로벌입출력라인으로 출력하고, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하되, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되는 반도체장치.
- 제 11 항에 있어서, 상기 제2 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제2 데이터를 상기 제2 글로벌입출력라인으로 출력하고, 상기 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하되, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되는 반도체장치.
- 제 11 항에 있어서, 상기 연산결과데이터생성회로는 제1 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 상기 코어데이터를 생성하고, 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 상기 패드데이터를 생성하는 반도체장치.
- 제 16 항에 있어서, 상기 제1 래치제어펄스는 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 패드입력펄스를 토대로 발생되는 반도체장치.
- 제 11 항에 있어서, 상기 연산결과데이터생성회로는 제1 래치제어펄스가 발생될 때 상기 제2 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 코어데이터를 생성하고, 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 상기 패드데이터를 생성하는 반도체장치.
- 제 11 항에 있어서, 상기 제1 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제1 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제1 데이터를 상기 제1 글로벌입출력라인으로 출력하되, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되는 반도체장치.
- 제 11 항에 있어서, 상기 제2 패드입력드라이버는 패드입력펄스가 발생될 때 상기 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제2 코어출력드라이버는 코어출력펄스가 발생될 때 상기 제2 데이터를 상기 제2 글로벌입출력라인으로 출력하되, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되는 반도체장치.
- 제 11 항에 있어서, 상기 연산결과데이터생성회로는 제3 래치제어펄스를 토대로 상기 연산데이터를 래치하고, 상기 래치된 연산데이터를 연산결과데이터로 출력하는 반도체장치.
- 제 21 항에 있어서,
연산리드동작이 수행될 때 상기 연산결과데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하는 연산결과출력드라이버를 더 포함하는 반도체장치.
- 제 22 항에 있어서,
상기 연산리드동작이 수행될 때 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인에 실린데이터를 상기 패드영역으로 출력하는 패드출력드라이버를 더 포함하는 반도체장치.
- 연산동작이 수행될 때 코어출력펄스, 제1 래치제어펄스, 패드입력펄스, 제2 래치제어펄스 및 제3 래치제어펄스를 생성하는 커맨드디코더; 및
상기 코어출력펄스가 발생될 때 코어영역에 저장된 제1 데이터를 글로벌입출력라인으로 출력하고, 상기 제1 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 코어데이터를 생성하고, 상기 패드입력펄스가 발생될 때 패드영역을 통해 입력된 제2 데이터를 상기 글로벌입출력라인으로 출력하고, 상기 제2 래치제어펄스가 발생될 때 상기 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 패드데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
- 제 24 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
- 제 24 항에 있어서, 상기 제1 데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제2 데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
- 제 24 항에 있어서, 상기 코어출력펄스가 발생된 후 상기 패드입력펄스가 발생되고, 상기 제1 래치제어펄스는 상기 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 상기 패드입력펄스를 토대로 발생되는 반도체장치.
- 제 24 항에 있어서, 상기 패드입력펄스가 발생된 후 상기 코어출력펄스가 발생되고, 상기 제1 래치제어펄스는 상기 코어출력펄스를 토대로 발생되고, 상기 제2 래치제어펄스는 상기 패드입력펄스를 토대로 발생되는 반도체장치.
- 제 24 항에 있어서, 상기 신경망네트워크회로는 상기 코어데이터 및 상기 패드데이터를 토대로 신경망네트워크에서 사용되는 연산동작을 수행하여 연산데이터를 생성하는 반도체장치.
- 제 29 항에 있어서, 상기 신경망네트워크회로는 상기 제3 래치제어펄스를 토대로 상기 연산데이터를 래치하고, 상기 래치된 연산데이터를 연산결과데이터로 출력하는 반도체장치.
- 제 30 항에 있어서, 상기 커맨드디코더는 연산리드동작이 수행될 때 래치출력펄스를 생성하고, 상기 신경망네트워크회로는 상기 래치출력펄스를 토대로 상기 연산결과데이터를 상기 글로벌입출력라인으로 출력하는 반도체장치.
- 연산동작이 수행될 때 선택신호, 코어출력펄스, 제1 래치제어펄스, 패드입력펄스, 제2 래치제어펄스 및 제3 래치제어펄스를 생성하는 커맨드디코더; 및
상기 코어출력펄스가 발생될 때 제1 코어영역에 저장된 제1 데이터를 제1 글로벌입출력라인으로 출력하거나 제2 코어영역에 저장된 제2 데이터를 제2 글로벌입출력라인으로 출력하고, 상기 제1 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인으로 전달된 제1 데이터를 래치하여 코어데이터를 생성하거나 상기 제2 글로벌입출력라인으로 전달된 제2 데이터를 래치하여 상기 코어데이터를 생성하고, 상기 패드입력펄스가 발생될 때 패드영역을 통해 입력된 제3 데이터를 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 출력하고, 상기 제2 래치제어펄스가 발생될 때 상기 제1 글로벌입출력라인 및 상기 제2 글로벌입출력라인으로 전달된 제3 데이터를 래치하여 패드데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
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)
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 | 삼성전자주식회사 | 연산 장치, 그것의 동작 방법 및 뉴럴 네트워크 프로세서 |
-
2019
- 2019-07-24 KR KR1020190089879A patent/KR20210012335A/ko unknown
- 2019-12-12 US US16/712,313 patent/US11481600B2/en active Active
- 2019-12-16 TW TW108145988A patent/TW202109531A/zh unknown
- 2019-12-23 CN CN201911333701.6A patent/CN112308218A/zh active Pending
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) | 반도체메모리장치 |