KR20210012839A - 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치 - Google Patents

연산동작을 수행하는 방법 및 이를 수행하는 반도체장치 Download PDF

Info

Publication number
KR20210012839A
KR20210012839A KR1020190091302A KR20190091302A KR20210012839A KR 20210012839 A KR20210012839 A KR 20210012839A KR 1020190091302 A KR1020190091302 A KR 1020190091302A KR 20190091302 A KR20190091302 A KR 20190091302A KR 20210012839 A KR20210012839 A KR 20210012839A
Authority
KR
South Korea
Prior art keywords
signal
core
data
cell
neural network
Prior art date
Application number
KR1020190091302A
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 KR1020190091302A priority Critical patent/KR20210012839A/ko
Priority to US16/713,270 priority patent/US11423290B2/en
Priority to CN201911357771.5A priority patent/CN112308219A/zh
Publication of KR20210012839A publication Critical patent/KR20210012839A/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/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)

Abstract

반도체장치는 커맨드를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 신경망네트워크회로를 포함한다.

Description

연산동작을 수행하는 방법 및 이를 수행하는 반도체장치{SEMICONDUCTOR DEVICE FOR PERFORMING AN OPERATION}
본 발명은 신경망네트워크를 제공할 수 있는 반도체장치에 관한 것이다.
신경망네트워크(Neural Network)에서 인간의 뇌와 유사하게 수학적 모델로서의 뉴런이 상호 연결되어 네트워크를 형성한다. 최근 신경망네트워크 기술이 발전함에 따라 다양한 종류의 전자장치에서 신경망네트워크 기술을 사용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.
본 발명은 신경망네트워크를 제공할 수 있는 반도체장치를 제공한다.
이를 위해 본 발명은 커맨드를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 커맨드를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 동작제어신호생성회로; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 코어데이터를 출력하고, 상기 페리리드신호를 토대로 페리영역에서 패드를 통해 페리데이터를 입력받으며, 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 제1 커맨드 및 비교펄스를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로; 제2 커맨드를 토대로 어드레스로부터 타겟코드를 추출하여 저장하는 모드레지스터; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 제1 커맨드 및 비교펄스를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 동작제어신호생성회로; 제2 커맨드를 토대로 어드레스로부터 타겟코드를 추출하여 저장하는 모드레지스터; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 코어데이터를 출력하고, 상기 페리리드신호를 토대로 페리영역에서 패드를 통해 페리데이터를 입력받으며, 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 커맨드 및 비교펄스를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 커맨드 및 비교펄스를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 동작제어신호생성회로; 및 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 코어데이터를 출력하고, 상기 페리리드신호를 토대로 페리영역에서 패드를 통해 페리데이터를 입력받으며, 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치를 제공한다.
또한, 본 발명은 커맨드를 토대로 연산신호 및 코어리드신호를 생성하는 단계; 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 제1 코어데이터 및 제2 코어데이터를 생성하는 단계; 및 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 단계를 포함하는 연산동작을 수행하는 방법을 제공한다.
또한, 본 발명은 커맨드를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 단계; 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어데이터를 생성하는 단계; 상기 페리리드신호를 토대로 페리데이터를 생성하는 단계; 및 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 단계를 포함하는 연산동작을 수행하는 방법을 제공한다.
또한, 본 발명은 제1 커맨드 및 비교펄스를 토대로 연산신호 및 코어리드신호를 생성하는 단계; 제2 커맨드를 토대로 어드레스로부터 타겟코드를 추출하여 저장하는 단계; 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 제1 코어데이터 및 제2 코어데이터를 생성하는 단계; 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 단계; 및 상기 연산신호를 토대로 생성된 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 단계를 포함하는 연산동작을 수행하는 방법을 제공한다.
또한, 본 발명은 제1 커맨드 및 비교펄스를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 단계; 제2 커맨드를 토대로 어드레스로부터 타겟코드를 추출하여 저장하는 단계; 상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어데이터를 생성하는 단계; 상기 페리리드신호를 토대로 페리데이터를 생성하는 단계; 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 단계; 및 상기 연산신호를 토대로 생성된 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 단계를 포함하는 연산동작을 수행하는 방법을 제공한다.
본 발명에 의하면 한번의 커맨드 입력에 따라 다수개의 내부동작들이 수행되도록 함으로써, 내부동작의 효율성을 향상시킬 수 있고, 동작 속도를 증가시킬 수 있는 효과가 있다.
또한, 본 발명에 의하면 한번의 커맨드 입력에 따라 코어영역들로부터 신경망네트워크에서 사용되는 특징값 및 가중치가 출력될 수 있도록 함으로써, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있는 효과도 있다.
또한, 본 발명에 의하면 한번의 커맨드 입력에 따라 코어영역 및 패드영역으로부터 신경망네트워크에서 사용되는 특징값 및 가중치가 출력될 수 있도록 함으로써, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있는 효과도 있다.
또한, 본 발명에 의하면 연산동작의 반복 횟수를 설정하고, 한번의 커맨드 입력에 따라 출력되는 특징값 및 가중치에 대한 연산동작이 설정된 반복 횟수만큼 수행되도록 함으로써, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있는 효과도 있다.
도 1은 본 발명의 일 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 2는 도 1에 도시된 반도체시스템에 포함된 동작제어신호회로의 일 실시예에 따른 회로도이다.
도 3은 도 1에 도시된 반도체시스템에 포함된 신경망네트워크회로의 일 실시예에 따른 도면이다.
도 4는 도 3에 도시된 신경망네트워크회로에 포함된 코어영역에 포함된 셀블럭들의 구성을 도시한 도면이다.
도 5는 도 1에 도시된 반도체시스템의 동작을 설명하기 위한 플로우차트이다.
도 6은 본 발명의 다른 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 7은 도 6에 도시된 반도체시스템에 포함된 동작제어신호회로의 일 실시예에 따른 회로도이다.
도 8은 도 6에 도시된 반도체시스템에 포함된 신경망네트워크회로의 일 실시예에 따른 도면이다.
도 9는 도 6에 도시된 반도체시스템의 동작을 설명하기 위한 플로우차트이다.
도 10은 본 발명의 또 다른 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 11은 도 10에 도시된 반도체시스템에 포함된 신경망네트워크회로의 일 실시예에 따른 도면이다.
도 12는 도 10에 도시된 반도체시스템의 동작을 설명하기 위한 플로우차트이다.
도 13은 본 발명의 또 다른 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 14는 도 13에 도시된 반도체시스템에 포함된 신경망네트워크회로의 일 실시예에 따른 도면이다.
도 15는 도 13에 도시된 반도체시스템의 동작을 설명하기 위한 플로우차트이다.
도 16은 본 발명의 또 다른 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 17은 본 발명의 또 다른 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체시스템(1)은 컨트롤러(11) 및 반도체장치(13)를 포함할 수 있다. 반도체장치(13)는 동작제어신호생성회로(131), 셀선택제어회로(133) 및 신경망네트워크회로(135)를 포함할 수 있다.
컨트롤러(11)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 생성하여 반도체장치(13)로 출력할 수 있다. 컨트롤러(11)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 동일한 라인들을 공유하여 반도체장치(13)로 전송할 수 있다. 실시예에 따라서, 컨트롤러(11)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 클럭(미도시)에 동기하여 반도체장치(13)로 전송할 수도 있다. 어드레스(ADD<1:L>)의 비트 수(L)는 실시예에 따라서 다양하게 설정될 수 있다.
동작제어신호생성회로(131)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 토대로 연산신호(MAC) 및 코어리드신호(CRD)를 생성할 수 있다. 동작제어신호생성회로(131)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC) 및 코어리드신호(CRD)를 발생시킬 수 있다. 연산신호(MAC)는 신경망네트워크(Neural Network)에서 사용되는 연산동작을 수행하기 위해 발생될 수 있다. 코어리드신호(CRD)는 코어영역(도 3의 21)에서 제1 코어데이터(도 3의 CD1) 및 제2 코어데이터(도 3의 CD2)가 출력되는 리드동작을 위해 발생될 수 있다. 실시예에 따라서, 동작제어신호생성회로(131)는 연산신호(MAC)를 발생시킨 후 코어리드신호(CRD)를 발생시킬 수도 있다. 동작제어신호생성회로(131)의 보다 구체적인 구성 및 동작에 대한 설명은 도 2를 참고하여 후술한다.
셀선택제어회로(133)는 어드레스(ADD<1:L>)를 토대로 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀선택제어회로(133)는 어드레스(ADD<1:L>)를 디코딩하여 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀블럭선택신호(BS<1:M>)의 로직레벨조합은 코어영역(도 3의 21)에 포함된 셀블럭들 중 하나를 선택하기 위해 설정될 수 있다. 셀선택신호(CES<1:N>)의 로직레벨조합은 셀블럭에 포함된 셀들을 선택하기 위해 설정될 수 있다. 셀블럭선택신호(BS<1:M>)의 비트 수(M) 및 셀선택신호(CES<1:N>)의 비트 수(N)는 실시예에 따라서 다양하게 설정될 수 있다.
신경망네트워크회로(135)는 코어리드신호(CRD)가 발생될 때 코어영역(도 3의 21)에서 제1 코어데이터(도 3의 CD1) 및 제2 코어데이터(도 3의 CD2)를 출력하고, 연산신호(MAC)에 따라 발생되는 연산제어펄스(도 3의 MSP)에 따라 제1 코어데이터 및 제2 코어데이터에 대한 연산동작을 수행하여 연산결과데이터(도3의 LDATA)를 생성할 수 있다. 신경망네트워크에서 사용되는 연산동작에는 특징값들 및 가중치들에 대한 적어도 하나의 곱셈연산 및 덧셈연산이 포함될 수 있다. 신경망네트워크에서 사용되는 연산동작은 입력레이어(Input layer)에 포함된 특징들(features)을 출력레이어(Output lay)에 포함된 결과값들로 분류하기 위해 수행될 수 있다. 신경망네트워크에서 사용되는 연산동작에는 SIGMOID, Tanh, ReLU 등의 다양한 함수들이 사용될 수 있다. 특징값들은 입력레이어(Input layer)에 포함된 특징들(features)의 수치들일 수 있고, 가중치들(weights)은 입력레이어(Input layer)의 특징들(features)을 출력레이어(Output lay)에 포함된 결과값으로 분류하는데 미치는 영향력의 정도에 대한 수치들로 설정될 수 있다. 제1 코어데이터는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있고, 제2 코어데이터는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다. 실시예에 따라서, 제1 코어데이터는 신경망네트워크에서 사용되는 가중치로 설정될 수도 있고, 제2 코어데이터는 신경망네트워크에서 사용되는 특징값으로 설정될 수도 있다. 신경망네트워크회로(135)의 보다 구체적인 구성 및 동작에 대한 설명은 도 3 및 도 4를 참고하여 후술한다.
도 2를 참고하면 동작제어신호생성회로(131)는 앤드게이트들(AND11, AND13)을 포함할 수 있다. 앤드게이트(AND11)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 입력받아 논리곱 연산을 수행하여 연산신호(MAC)를 생성할 수 있다. 앤드게이트(AND11)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 모두 로직하이레벨로 발생될 때 연산신호(MAC)를 로직하이레벨로 발생시킬 수 있다. 앤드게이트(AND13)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 입력받아 논리곱 연산을 수행하여 코어리드신호(CRD)를 생성할 수 있다. 앤드게이트(AND13)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 모두 로직하이레벨로 발생될 때 코어리드신호(CRD)를 로직하이레벨로 발생시킬 수 있다. 동작제어신호생성회로(131)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC) 및 코어리드신호(CRD)를 발생시킬 수 있다.
도 3을 참고하면 신경망네트워크회로(135)는 코어영역(21), 연산제어회로(23) 및 연산회로(25)를 포함할 수 있다.
코어영역(21)은 다수의 셀블럭들을 포함하고, 셀블럭들 각각은 다수의 셀들을 포함할 수 있다. 코어영역(21)은 코어리드신호(CRD)가 발생될 때 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀들에 저장된 데이터들이 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)로 출력될 수 있다. 코어영역(21)에서 선택된 셀에 저장된 데이터를 출력하는 회로는 일반적인 리드동작 회로를 이용하여 구현될 수 있다. 제1 코어데이터(CD1)는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있고, 제2 코어데이터(CD2)는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다. 제1 코어데이터(CD1)는 신경망네트워크에서 사용되는 가중치로 설정될 수 있고, 제2 코어데이터(CD2)는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있다.
연산제어회로(23)는 연산신호(MAC)가 발생될 때 연산제어펄스(MSP)를 발생시킬 수 있다. 연산제어회로(23)는 지연기(미도시)를 포함하여 연산신호(MAC)가 발생된 시점부터 지연구간이 경과된 시점에서 연산제어펄스(MSP)를 발생시키도록 구현될 수도 있다. 연산제어회로(23)는 코어영역(21)에서 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)가 출력된 후 연산제어펄스(MSP)를 발생시킬 수 있다.
연산회로(25)는 연산제어펄스(MSP)가 발생될 때 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 신경망네트워크에서 사용되는 연산동작에는 SIGMOID, Tanh, ReLU 등의 다양한 함수들이 사용될 수 있다.
도 4를 참고하면 코어영역(21)은 제1 셀블럭(211), 제2 셀블럭(213), 제3 셀블럭(215) 및 제4 셀블럭(217)을 포함할 수 있다. 제1 셀블럭(211)은 제1 셀(2111), 제2 셀(2113), 제3 셀(2115) 및 제4 셀(2117)을 포함할 수 있다. 제2 셀블럭(213)은 제1 셀(2131), 제2 셀(2133), 제3 셀(2135) 및 제4 셀(2137)을 포함할 수 있다. 제3 셀블럭(215)은 제1 셀(2151), 제2 셀(2153), 제3 셀(2155) 및 제4 셀(2157)을 포함할 수 있다. 제4 셀블럭(217)은 제1 셀(2171), 제2 셀(2173), 제3 셀(2175) 및 제4 셀(2177)을 포함할 수 있다.
코어영역(21)에 포함된 제1 셀블럭(211), 제2 셀블럭(213), 제3 셀블럭(215) 및 제4 셀블럭(217)은 셀블럭선택신호(BS<1:M>)에 의해 선택될 수 있다. 예를 들어, 셀블럭선택신호(BS<1:M>)가 제1 로직레벨조합일 때 제1 셀블럭(211)이 선택될 수 있고, 제2 로직레벨조합일 때 제2 셀블럭(213)이 선택될 수 있으며, 제3 로직레벨조합일 때 제3 셀블럭(215)이 선택될 수 있고, 제4 로직레벨조합일 때 제4 셀블럭(217)이 선택될 수 있다. 실시예에 따라서 셀블럭선택신호(BS<1:M>)에 의해 제1 셀블럭(211), 제2 셀블럭(213), 제3 셀블럭(215) 및 제4 셀블럭(217) 중 적어도 2개의 셀블럭들이 선택되도록 설정될 수도 있다.
제1 셀블럭(211)에 포함된 제1 셀(2111), 제2 셀(2113), 제3 셀(2115) 및 제4 셀(2117)은 셀선택신호(CES<1:N>)에 의해 선택될 수 있다. 예를 들어, 셀선택신호(CES<1:N>)가 제5 로직레벨조합일 때 제1 셀(2111)이 선택될 수 있고, 제6 로직레벨조합일 때 제2 셀(2113)이 선택될 수 있으며, 제7 로직레벨조합일 때 제3 셀(2115)이 선택될 수 있고, 제8 로직레벨조합일 때 제4 셀(2117)이 선택될 수 있다. 실시예에 따라서 셀선택신호(CES<1:N>)에 의해 제1 셀(2111), 제2 셀(2113), 제3 셀(2115) 및 제4 셀(2117) 중 적어도 2개의 셀들이 선택되도록 설정될 수도 있다.
제2 셀블럭(213)에 포함된 제1 셀(2131), 제2 셀(2133), 제3 셀(2135) 및 제4 셀(2137)은 셀선택신호(CES<1:N>)에 의해 선택될 수 있다. 실시예에 따라서 셀선택신호(CES<1:N>)에 의해 제1 셀(2131), 제2 셀(2133), 제3 셀(2135) 및 제4 셀(2137) 중 적어도 2개의 셀들이 선택되도록 설정될 수도 있다.
제3 셀블럭(215)에 포함된 제1 셀(2151), 제2 셀(2153), 제3 셀(2155) 및 제4 셀(2157)은 셀선택신호(CES<1:N>)에 의해 선택될 수 있다. 실시예에 따라서 셀선택신호(CES<1:N>)에 의해 제1 셀(2151), 제2 셀(2153), 제3 셀(2155) 및 제4 셀(2157) 중 적어도 2개의 셀들이 선택되도록 설정될 수도 있다.
제4 셀블럭(217)에 포함된 제1 셀(2171), 제2 셀(2173), 제3 셀(2175) 및 제4 셀(2177)은 셀선택신호(CES<1:N>)에 의해 선택될 수 있다. 실시예에 따라서 셀선택신호(CES<1:N>)에 의해 제1 셀(2171), 제2 셀(2173), 제3 셀(2175) 및 제4 셀(2177) 중 적어도 2개의 셀들이 선택되도록 설정될 수도 있다.
도 5를 참고하여 반도체시스템(1)의 동작을 구체적으로 살펴보면 다음과 같다.
컨트롤러(11)가 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 반도체장치(13)에 인가할 때 반도체장치(13)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)로부터 연산신호(MAC)를 발생시키고,(S101) 코어리드신호(CRD)를 발생시킨다.(S103) 코어리드신호(CRD)가 발생될 때 코어영역(21)에서 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀들에 저장된 데이터들이 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)로 출력된다.(S105, S107) 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)에 대한 연산동작 결과 연산결과데이터(LDATA)가 생성된다.(S109)
이상 살펴본 바와 같이, 본 발명의 일 실시예에 따른 반도체시스템(1)은 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 한번만 입력받아 코어영역(21)으로부터 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)를 출력하고, 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)에 대한 연산동작을 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 따라서, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있다.
도 6에 도시된 바와 같이, 본 발명의 다른 실시 예에 따른 반도체시스템(3)은 컨트롤러(31) 및 반도체장치(33)를 포함할 수 있다. 반도체장치(33)는 동작제어신호생성회로(331), 셀선택제어회로(333) 및 신경망네트워크회로(335)를 포함할 수 있다.
컨트롤러(31)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 생성하여 반도체장치(33)로 출력할 수 있다. 컨트롤러(31)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 동일한 라인들을 공유하여 반도체장치(33)로 전송할 수 있다. 실시예에 따라서, 컨트롤러(31)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 클럭(미도시)에 동기하여 반도체장치(33)로 전송할 수도 있다. 어드레스(ADD<1:L>)의 비트 수(L)는 실시예에 따라서 다양하게 설정될 수 있다.
동작제어신호생성회로(331)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 토대로 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 생성할 수 있다. 동작제어신호생성회로(131)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수 있다. 연산신호(MAC)는 신경망네트워크에서 사용되는 연산동작을 수행하기 위해 발생될 수 있다. 코어리드신호(CRD)는 코어영역(도 8의 41)에서 코어데이터(도 8의 CD)가 출력되는 리드동작을 위해 발생될 수 있다. 페리리드신호(PRD)는 페리영역(도 8의 45)에서 패드(도 8의 43)를 통해 페리데이터(도 8의 PD)가 입력되는 리드동작을 위해 발생될 수 있다. 실시예에 따라서, 동작제어신호생성회로(331)는 연산신호(MAC)를 발생시킨 후 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수도 있다. 동작제어신호생성회로(331)의 보다 구체적인 구성 및 동작에 대한 설명은 도 7을 참고하여 후술한다.
셀선택제어회로(333)는 어드레스(ADD<1:L>)를 토대로 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀선택제어회로(333)는 어드레스(ADD<1:L>)를 디코딩하여 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀블럭선택신호(BS<1:M>)의 로직레벨조합은 코어영역(도 8의 41)에 포함된 셀블럭들 중 하나를 선택하기 위해 설정될 수 있다. 셀선택신호(CES<1:N>)의 로직레벨조합은 셀블럭에 포함된 셀을 선택하기 위해 설정될 수 있다. 셀블럭선택신호(BS<1:M>)의 비트 수(M) 및 셀선택신호(CES<1:N>)의 비트 수(N)는 실시예에 따라서 다양하게 설정될 수 있다.
신경망네트워크회로(335)는 코어리드신호(CRD)가 발생될 때 코어영역(도 8의 41)에서 코어데이터(도 8의 CD)를 출력하고, 페리리드신호(PRD)가 발생될 때 페리영역(도 8의 45)에서 패드(도 8의 43)를 통해 페리데이터(도 8의 PD)가 입력받으며, 연산신호(MAC)에 따라 발생되는 연산제어펄스(도 8의 MSP)에 따라 코어데이터 및 페리데이터에 대한 연산동작을 수행하여 연산결과데이터(도8의 LDATA)를 생성할 수 있다. 코어데이터는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있고, 페리데이터는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다. 실시예에 따라서, 코어데이터는 신경망네트워크에서 사용되는 가중치로 설정될 수도 있고, 페리데이터는 신경망네트워크에서 사용되는 특징값으로 설정될 수도 있다. 신경망네트워크회로(335)의 보다 구체적인 구성 및 동작에 대한 설명은 도 8을 참고하여 후술한다.
도 7을 참고하면 동작제어신호생성회로(331)는 앤드게이트들(AND31, AND33, AND35)을 포함할 수 있다. 앤드게이트(AND31)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 입력받아 논리곱 연산을 수행하여 연산신호(MAC)를 생성할 수 있다. 앤드게이트(AND31)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 모두 로직하이레벨로 발생될 때 연산신호(MAC)를 로직하이레벨로 발생시킬 수 있다. 앤드게이트(AND33)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 입력받아 논리곱 연산을 수행하여 코어리드신호(CRD)를 생성할 수 있다. 앤드게이트(AND33)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 모두 로직하이레벨로 발생될 때 코어리드신호(CRD)를 로직하이레벨로 발생시킬 수 있다. 앤드게이트(AND35)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 입력받아 논리곱 연산을 수행하여 페리리드신호(PRD)를 생성할 수 있다. 앤드게이트(AND35)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 모두 로직하이레벨로 발생될 때 페리리드신호(PRD)를 로직하이레벨로 발생시킬 수 있다. 동작제어신호생성회로(331)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수 있다.
도 8을 참고하면 신경망네트워크회로(335)는 코어영역(41), 패드(43), 페리영역(45), 연산제어회로(47) 및 연산회로(49)를 포함할 수 있다.
코어영역(41)은 다수의 셀블럭들을 포함하고, 셀블럭들 각각은 다수의 셀들을 포함할 수 있다. 코어영역(41)은 코어리드신호(CRD)가 발생될 때 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀에 저장된 데이터가 코어데이터(CD)로 출력될 수 있다. 코어영역(41)에서 선택된 셀에 저장된 데이터를 출력하는 회로는 일반적인 리드동작 회로를 이용하여 구현될 수 있다. 코어데이터(CD)는 신경망네트워크에서 사용되는 특징값 또는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다.
페리영역(45)은 페리리드신호(PRD)가 발생될 때 패드(43)를 통해 페리데이터(PD)를 입력받아 출력할 수 있다. 페리데이터(PD)는 신경망네트워크에서 사용되는 특징값 또는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다.
연산제어회로(47)는 연산신호(MAC)가 발생될 때 연산제어펄스(MSP)를 발생시킬 수 있다. 연산제어회로(47)는 지연기(미도시)를 포함하여 연산신호(MAC)가 발생된 시점부터 지연구간이 경과된 시점에서 연산제어펄스(MSP)를 발생시키도록 구현될 수도 있다. 연산제어회로(47)는 코어영역(41)에서 코어데이터(CD)가 출력되고, 페리영역(45)에서 페리데이터(PD)가 출력된 후 연산제어펄스(MSP)를 발생시킬 수 있다.
연산회로(49)는 연산제어펄스(MSP)가 발생될 때 코어데이터(CD) 및 페리데이터(PD)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 신경망네트워크에서 사용되는 연산동작에는 SIGMOID, Tanh, ReLU 등의 다양한 함수들이 사용될 수 있다.
도 9를 참고하여 반도체시스템(3)의 동작을 구체적으로 살펴보면 다음과 같다.
컨트롤러(31)가 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 반도체장치(33)에 인가할 때 반도체장치(33)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)로부터 연산신호(MAC)를 발생시키고,(S301) 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킨다.(S303, S307) 코어리드신호(CRD)가 발생될 때 코어영역(41)에서 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀에 저장된 데이터가 코어데이터(CD)로 출력된다.(S305) 페리리드신호(PRD)가 발생될 때 페리영역(45)에서 페리데이터(PD)가 출력된다.(S309) 코어데이터(CD) 및 페리데이터(PD)에 대한 연산동작 결과 연산결과데이터(LDATA)가 생성된다.(S311)
이상 살펴본 바와 같이, 본 발명의 다른 실시예에 따른 반도체시스템(3)은 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 한번만 입력받아 코어영역(41)으로부터 코어데이터(CD)를 출력하고, 페리영역(45)으로부터 페리데이터(PD)를 출력하며, 코어데이터(CD) 및 페리데이터(PD)에 대한 연산동작을 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 따라서, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있다.
도 10에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체시스템(5)은 컨트롤러(51) 및 반도체장치(53)를 포함할 수 있다. 반도체장치(53)는 동작제어신호생성회로(531), 모드레지스터(533), 셀선택제어회로(535) 및 신경망네트워크회로(537)를 포함할 수 있다.
컨트롤러(51)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 제3 커맨드(CMD_MRS) 및 어드레스(ADD<1:L>)를 생성하여 반도체장치(53)로 출력할 수 있다. 컨트롤러(51)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 제3 커맨드(CMD_MRS) 및 어드레스(ADD<1:L>)를 동일한 라인들을 공유하여 반도체장치(53)로 전송할 수 있다. 실시예에 따라서, 컨트롤러(51)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 제3 커맨드(CMD_MRS) 및 어드레스(ADD<1:L>)를 클럭(미도시)에 동기하여 반도체장치(53)로 전송할 수도 있다. 어드레스(ADD<1:L>)의 비트 수(L)는 실시예에 따라서 다양하게 설정될 수 있다.
동작제어신호생성회로(531)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 비교펄스(COMP)를 토대로 연산신호(MAC) 및 코어리드신호(CRD)를 생성할 수 있다. 동작제어신호생성회로(531)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC) 및 코어리드신호(CRD)를 발생시킬 수 있다. 연산신호(MAC)는 신경망네트워크에서 사용되는 연산동작을 수행하기 위해 발생될 수 있다. 코어리드신호(CRD)는 코어영역(도 11의 61)에서 제1 코어데이터(도 11의 CD1) 및 제2 코어데이터(도 11의 CD2)가 출력되는 리드동작을 위해 발생될 수 있다. 실시예에 따라서, 동작제어신호생성회로(531)는 연산신호(MAC)를 발생시킨 후 코어리드신호(CRD)를 발생시킬 수도 있다. 동작제어신호생성회로(531)는 비교펄스(COMP)가 발생될 때 연산신호(MAC) 및 코어리드신호(CRD)를 발생시킬 수 있다. 동작제어신호생성회로(531)는 비교펄스(COMP)를 버퍼링하여 연산신호(MAC) 및 코어리드신호(CRD)를 발생하도록 구현될 수 있다.
모드레지스터(533)는 제3 커맨드(CMD_MRS)가 발생될 때 어드레스(ADD<1:L>)에서 타겟코드(SC<1:T>)를 추출하여 저장할 수 있다. 어드레스(ADD<1:L>)에 포함된 비트들 중 타겟코드(SC<1:T>)를 추출하는데 사용되는 비트들은 실시예에 따라서 다양하게 설정될 수 있다. 타겟코드(SC<1:T>)의 로직레벨조합은 연산신호(MAC)를 발생시키기 위한 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 한번 발생될 때마다 연산동작이 몇번 반복할지에 대응하도록 설정될 수 있다. 예를 들어, 타겟코드(SC<1:3>)의 로직레벨조합이 '110'일 때 연산동작은 6회만큼 반복되도록 설정될 수 있다. 타겟코드(SC<1:T>)의 로직레벨조합에 따라 반복되는 연산동작의 횟수는 실시예에 따라서 다양하게 설정될 수 있다.
셀선택제어회로(535)는 어드레스(ADD<1:L>)를 토대로 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀선택제어회로(535)는 어드레스(ADD<1:L>)를 디코딩하여 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀블럭선택신호(BS<1:M>)의 로직레벨조합은 코어영역(도 11의 61)에 포함된 셀블럭들 중 하나를 선택하기 위해 설정될 수 있다. 셀선택신호(CES<1:N>)의 로직레벨조합은 셀블럭에 포함된 셀을 선택하기 위해 설정될 수 있다. 셀블럭선택신호(BS<1:M>)의 비트 수(M) 및 셀선택신호(CES<1:N>)의 비트 수(N)는 실시예에 따라서 다양하게 설정될 수 있다.
신경망네트워크회로(537)는 코어리드신호(CRD)가 발생될 때 코어영역(도 11의 61)에서 제1 코어데이터(도 11의 CD1) 및 제2 코어데이터(도 11의 CD2)를 출력하고, 연산신호(MAC)에 따라 발생되는 연산제어펄스(도 11의 MSP)에 따라 제1 코어데이터 및 제2 코어데이터에 대한 연산동작을 수행하여 연산결과데이터(도11의 LDATA)를 생성할 수 있다. 신경망네트워크회로(537)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작을 반복되었는지 여부를 판단하여 비교펄스(COMP)를 발생시킬 수 있다. 신경망네트워크회로(537)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작들을 반복하여 연산동작 별로 연산결과데이터(LDATA)를 생성할 수 있다.
도 11을 참고하면 신경망네트워크회로(537)는 코어영역(61), 연산제어회로(63), 카운터(65), 비교회로(67) 및 연산회로(69)를 포함할 수 있다.
코어영역(61)은 다수의 셀블럭들을 포함하고, 셀블럭들 각각은 다수의 셀들을 포함할 수 있다. 코어영역(61)은 코어리드신호(CRD)가 발생될 때 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀들에 저장된 데이터들이 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)로 출력될 수 있다. 코어영역(61)에서 선택된 셀에 저장된 데이터를 출력하는 회로는 일반적인 리드동작 회로를 이용하여 구현될 수 있다. 제1 코어데이터(CD1)는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있고, 제2 코어데이터(CD2)는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다. 제1 코어데이터(CD1)는 신경망네트워크에서 사용되는 가중치로 설정될 수 있고, 제2 코어데이터(CD2)는 신경망네트워크에서 사용되는 특징값으로 설정될 수 있다.
연산제어회로(63)는 연산신호(MAC)가 발생될 때 연산제어펄스(MSP)를 발생시킬 수 있다. 연산제어회로(63)는 지연기(미도시)를 포함하여 연산신호(MAC)가 발생된 시점부터 지연구간이 경과된 시점에서 연산제어펄스(MSP)를 발생시키도록 구현될 수도 있다. 연산제어회로(63)는 코어영역(61)에서 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)가 출력된 후 연산제어펄스(MSP)를 발생시킬 수 있다.
카운터(65)는 리셋신호(RST)가 발생될 때 카운팅코드(CNT<1:T>)를 초기화할 수 있다. 리셋신호(RST)는 반도체시스템(5)에 전원이 인가되는 초기화동작이 수행될 때 발생될 수 있다. 카운팅코드(CNT<1:T>)는 모든 비트들이 로직로우레벨로 초기화될 수 있다. 카운터(65)는 연산제어펄스(MSP)를 발생될 때 카운팅동작을 수행하여 카운팅코드(CNT<1:T>)를 생성할 수 있다. 예를 들어, 카운팅코드(CNT<1:3>)가 '000'으로 초기화된 상태에서 연산제어펄스(MSP)가 첫번째 발생하면 카운팅동작에 의해 카운팅코드(CNT<1:3>)는 '001'로 생성되고, 연산제어펄스(MSP)가 두번째 발생하면 카운팅동작에 의해 카운팅코드(CNT<1:3>)는 '010'로 생성되며, 연산제어펄스(MSP)가 세번째 발생하면 카운팅동작에 의해 카운팅코드(CNT<1:3>)는 '011'로 생성될 수 있다. 카운팅코드(CNT<1:3>)는 '001'로 생성된 경우라함은 카운팅코드(CNT<1>)이 로직하이레벨이고, 카운팅코드(CNT<2:3>)가 로직로우레벨인 경우를 의미한다.
비교회로(67)는 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)를 비교하여 비교펄스(COMP)를 생성할 수 있다. 비교회로(67)는 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)가 상이할 때 비교펄스(COMP)를 발생시킬 수 있다. 예를 들어, 타겟코드(SC<1:T>)가 '011'로 설정된 상태에서 연산제어펄스(MSP)가 두번째 발생하여 카운팅코드(CNT<1:3>)가 '010'로 생성될 때 비교회로(67)는 비교펄스(COMP)를 발생시키고, 연산제어펄스(MSP)가 세번째 발생하여 카운팅코드(CNT<1:3>)가 '011'로 생성될 때 비교회로(67)는 비교펄스(COMP)의 생성을 중단한다.
연산회로(69)는 연산제어펄스(MSP)가 발생될 때 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 신경망네트워크에서 사용되는 연산동작에는 SIGMOID, Tanh, ReLU 등의 다양한 함수들이 사용될 수 있다.
도 12를 참고하여 반도체시스템(5)의 동작을 구체적으로 살펴보면 다음과 같다.
컨트롤러(51)가 제3 커맨드(CMD_MRS)를 반도체장치(53)에 인가할 때 반도체장치(53)는 어드레스(ADD<1:L>)에서 추출된 타겟코드(SC<1:T>)를 설정할 수 있다.(S501) 컨트롤러(51)가 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 반도체장치(53)에 인가할 때 반도체장치(53)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)로부터 연산신호(MAC)를 발생시키고,(S503) 코어리드신호(CRD)를 발생시킨다.(S505) 코어리드신호(CRD)가 발생될 때 코어영역(61)에서 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀들에 저장된 데이터들이 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)로 출력된다.(S507, S509) 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)에 대한 연산동작 결과 연산결과데이터(LDATA)가 생성된다.(S511) 연산신호(MAC)가 발생될 때 생성되는 카운팅코드(CNT<1:T>)와 타겟코드(SC<1:T>)를 비교하고,(S513) 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)가 상이할 때 비교펄스(COMP)가 발생될 수 있다.(S515) 비교펄스(COMP)가 발생될 때 연산동작을 수행하여 연산결과데이터(LDATA)를 생성하는 동작(S503~S511)이 반복된다. 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)가 동일할 때 비교펄스(COMP)가 발생되지 않아 연산동작이 중단된다.
이상 살펴본 바와 같이, 본 발명의 다른 실시예에 따른 반도체시스템(5)은 제3 커맨드(CMD_MRS)에 의해 연산동작의 반복 횟수를 설정할 수 있고, 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 한번만 입력받아 제1 코어데이터(CD1) 및 제2 코어데이터(CD2)에 대한 연산동작을 설정된 횟수만큼 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 따라서, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있다.
도 13에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체시스템(7)은 컨트롤러(71) 및 반도체장치(73)를 포함할 수 있다. 반도체장치(73)는 동작제어신호생성회로(731), 모드레지스터(733), 셀선택제어회로(735) 및 신경망네트워크회로(737)를 포함할 수 있다.
컨트롤러(71)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 제3 커맨드(CMD_MRS) 및 어드레스(ADD<1:L>)를 생성하여 반도체장치(73)로 출력할 수 있다. 컨트롤러(71)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 제3 커맨드(CMD_MRS) 및 어드레스(ADD<1:L>)를 동일한 라인들을 공유하여 반도체장치(73)로 전송할 수 있다. 실시예에 따라서, 컨트롤러(71)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 제3 커맨드(CMD_MRS) 및 어드레스(ADD<1:L>)를 클럭(미도시)에 동기하여 반도체장치(73)로 전송할 수도 있다. 어드레스(ADD<1:L>)의 비트 수(L)는 실시예에 따라서 다양하게 설정될 수 있다.
동작제어신호생성회로(731)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 비교펄스(COMP)를 토대로 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 생성할 수 있다. 동작제어신호생성회로(731)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수 있다. 연산신호(MAC)는 신경망네트워크(Neural Network)에서 사용되는 연산동작을 수행하기 위해 발생될 수 있다. 코어리드신호(CRD)는 코어영역(도 14의 81)에서 코어데이터(도 14의 CD)가 출력되는 리드동작을 위해 발생될 수 있다. 페리리드신호(PRD)는 페리영역(도 14의 83)에서 패드(도 14의 82)를 통해 페리데이터(도 14의 PD)가 입력되는 리드동작을 위해 발생될 수 있다. 실시예에 따라서, 동작제어신호생성회로(731)는 연산신호(MAC)를 발생시킨 후 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수도 있다. 동작제어신호생성회로(731)는 비교펄스(COMP)가 발생될 때 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수 있다. 동작제어신호생성회로(731)는 비교펄스(COMP)를 버퍼링하여 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생하도록 구현될 수 있다.
모드레지스터(733)는 제3 커맨드(CMD_MRS)가 발생될 때 어드레스(ADD<1:L>)에서 타겟코드(SC<1:T>)를 추출하여 저장할 수 있다. 어드레스(ADD<1:L>)에 포함된 비트들 중 타겟코드(SC<1:T>)를 추출하는데 사용되는 비트들은 실시예에 따라서 다양하게 설정될 수 있다. 타겟코드(SC<1:T>)의 로직레벨조합은 연산신호(MAC)를 발생시키기 위한 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 한번 발생될 때마다 연산동작이 몇번 반복할지에 대응하도록 설정될 수 있다.
셀선택제어회로(735)는 어드레스(ADD<1:L>)를 토대로 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀선택제어회로(735)는 어드레스(ADD<1:L>)를 디코딩하여 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀블럭선택신호(BS<1:M>)의 로직레벨조합은 코어영역(도 14의 81)에 포함된 셀블럭들 중 하나를 선택하기 위해 설정될 수 있다. 셀선택신호(CES<1:N>)의 로직레벨조합은 셀블럭에 포함된 셀을 선택하기 위해 설정될 수 있다. 셀블럭선택신호(BS<1:M>)의 비트 수(M) 및 셀선택신호(CES<1:N>)의 비트 수(N)는 실시예에 따라서 다양하게 설정될 수 있다.
신경망네트워크회로(737)는 코어리드신호(CRD)가 발생될 때 코어영역(도 14의 81)에서 코어데이터(도 14의 CD)를 출력하고, 페리리드신호(PRD)가 발생될 때 페리영역(도 14의 83)에서 패드(도 14의 82)를 통해 페리데이터(도 14의 PD)가 입력되며, 연산신호(MAC)에 따라 발생되는 연산제어펄스(도 14의 MSP)에 따라 코어데이터 및 페리데이터에 대한 연산동작을 수행하여 연산결과데이터(도14의 LDATA)를 생성할 수 있다. 신경망네트워크회로(737)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작을 반복되었는지 여부를 판단하여 비교펄스(COMP)를 발생시킬 수 있다. 신경망네트워크회로(737)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작들을 반복하여 연산동작 별로 연산결과데이터(LDATA)를 생성할 수 있다.
도 14를 참고하면 신경망네트워크회로(737)는 코어영역(81), 패드(82), 페리영역(83), 연산제어회로(85), 카운터(86), 비교회로(87) 및 연산회로(89)를 포함할 수 있다.
코어영역(81)은 다수의 셀블럭들을 포함하고, 셀블럭들 각각은 다수의 셀들을 포함할 수 있다. 코어영역(81)은 코어리드신호(CRD)가 발생될 때 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀에 저장된 데이터가 코어데이터(CD)로 출력될 수 있다. 코어영역(81)에서 선택된 셀에 저장된 데이터를 출력하는 회로는 일반적인 리드동작 회로를 이용하여 구현될 수 있다. 코어데이터(CD)는 신경망네트워크에서 사용되는 특징값 또는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다.
페리영역(83)은 페리리드신호(PRD)가 발생될 때 패드(82)를 통해 페리데이터(PD)를 입력받아 출력할 수 있다. 페리데이터(PD)는 신경망네트워크에서 사용되는 특징값 또는 신경망네트워크에서 사용되는 가중치로 설정될 수 있다.
연산제어회로(85)는 연산신호(MAC)가 발생될 때 연산제어펄스(MSP)를 발생시킬 수 있다. 연산제어회로(85)는 지연기(미도시)를 포함하여 연산신호(MAC)가 발생된 시점부터 지연구간이 경과된 시점에서 연산제어펄스(MSP)를 발생시키도록 구현될 수도 있다. 연산제어회로(85)는 코어영역(81)에서 코어데이터(CD)가 출력되고, 페리영역(83)에서 페리데이터(PD)를 입력된 후 연산제어펄스(MSP)를 발생시킬 수 있다.
카운터(86)는 리셋신호(RST)가 발생될 때 카운팅코드(CNT<1:T>)를 초기화할 수 있다. 리셋신호(RST)는 반도체시스템(5)에 전원이 인가되는 초기화동작이 수행될 때 발생될 수 있다. 카운팅코드(CNT<1:T>)는 모든 비트들이 로직로우레벨로 초기화될 수 있다. 카운터(85)는 연산제어펄스(MSP)를 발생될 때 카운팅동작을 수행하여 카운팅코드(CNT<1:T>)를 생성할 수 있다.
비교회로(87)는 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)를 비교하여 비교펄스(COMP)를 생성할 수 있다. 비교회로(87)는 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)가 상이할 때 비교펄스(COMP)를 발생시킬 수 있다.
연산회로(89)는 연산제어펄스(MSP)가 발생될 때 코어데이터(CD) 및 페리데이터(PD)를 입력받아 신경망네트워크에서 사용되는 연산동작을 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 신경망네트워크에서 사용되는 연산동작에는 SIGMOID, Tanh, ReLU 등의 다양한 함수들이 사용될 수 있다.
도 15를 참고하여 반도체시스템(7)의 동작을 구체적으로 살펴보면 다음과 같다.
컨트롤러(71)가 제3 커맨드(CMD_MRS)를 반도체장치(73)에 인가할 때 반도체장치(73)는 어드레스(ADD<1:L>)에서 추출된 타겟코드(SC<1:T>)를 설정할 수 있다.(S701) 컨트롤러(71)가 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 어드레스(ADD<1:L>)를 반도체장치(73)에 인가할 때 반도체장치(73)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)로부터 연산신호(MAC)를 발생시키고,(S703) 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킨다.(S705, S709) 코어리드신호(CRD)가 발생될 때 코어영역(81)에서 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)에 의해 선택된 셀블럭에 포함된 셀에 저장된 데이터가 코어데이터(CD)로 출력된다.(S707) 페리리드신호(PRD)가 발생될 때 페리영역(83)에서 페리데이터(PD)가 출력된다.(S711) 코어데이터(CD) 및 페리데이터(PD)에 대한 연산동작 결과 연산결과데이터(LDATA)가 생성된다.(S713) 연산신호(MAC)가 발생될 때 생성되는 카운팅코드(CNT<1:T>)와 타겟코드(SC<1:T>)를 비교하고,(S715) 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)가 상이할 때 비교펄스(COMP)가 발생될 수 있다.(S717) 비교펄스(COMP)가 발생될 때 연산동작을 수행하여 연산결과데이터(LDATA)를 생성하는 동작(S703~S713)을 반복한다. 카운팅코드(CNT<1:T>) 및 타겟코드(SC<1:T>)가 동일할 때 비교펄스(COMP)가 발생되지 않아 연산동작이 중단된다.
이상 살펴본 바와 같이, 본 발명의 또 다른 실시예에 따른 반도체시스템(7)은 제3 커맨드(CMD_MRS)에 의해 연산동작의 반복 횟수를 설정할 수 있고, 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)를 한번만 입력받아 코어데이터(CD) 및 페리데이터(PD)에 대한 연산동작을 설정된 횟수만큼 수행하여 연산결과데이터(LDATA)를 생성할 수 있다. 따라서, 신경망네트워크에서 사용되는 연산동작의 효율성을 향상시킬 수 있고, 연산동작 속도를 증가시킬 수 있다.
도 16에 도시된 바와 같이, 본 발명의 또 다른 실시 예에 따른 반도체시스템(91)은 컨트롤러(93) 및 반도체장치(95)를 포함할 수 있다. 반도체장치(95)는 동작제어신호생성회로(951), 셀선택제어회로(953) 및 신경망네트워크회로(955)를 포함할 수 있다.
컨트롤러(93)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 타겟코드(SC<1:T>) 및 어드레스(ADD<1:L>)를 생성하여 반도체장치(95)로 출력할 수 있다. 컨트롤러(93)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 타겟코드(SC<1:T>) 및 어드레스(ADD<1:L>)를 동일한 라인들을 공유하여 반도체장치(95)로 전송할 수 있다. 실시예에 따라서, 컨트롤러(93)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 타겟코드(SC<1:T>) 및 어드레스(ADD<1:L>)를 클럭(미도시)에 동기하여 반도체장치(95)로 전송할 수도 있다. 타겟코드(SC<1:T>)의 비트 수(T) 및 어드레스(ADD<1:L>)의 비트 수(L)는 실시예에 따라서 다양하게 설정될 수 있다.
동작제어신호생성회로(951)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 비교펄스(COMP)를 토대로 연산신호(MAC) 및 코어리드신호(CRD)를 생성할 수 있다. 동작제어신호생성회로(951)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC) 및 코어리드신호(CRD)를 발생시킬 수 있다. 연산신호(MAC)는 신경망네트워크에서 사용되는 연산동작을 수행하기 위해 발생될 수 있다. 코어리드신호(CRD)는 코어영역에서 제1 코어데이터 및 제2 코어데이터가 출력되는 리드동작을 위해 발생될 수 있다. 실시예에 따라서, 동작제어신호생성회로(951)는 연산신호(MAC)를 발생시킨 후 코어리드신호(CRD)를 발생시킬 수도 있다. 동작제어신호생성회로(951)는 비교펄스(COMP)가 발생될 때 연산신호(MAC) 및 코어리드신호(CRD)를 발생시킬 수 있다. 동작제어신호생성회로(951)는 비교펄스(COMP)를 버퍼링하여 연산신호(MAC) 및 코어리드신호(CRD)를 발생하도록 구현될 수 있다.
셀선택제어회로(953)는 어드레스(ADD<1:L>)를 토대로 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀선택제어회로(953)는 어드레스(ADD<1:L>)를 디코딩하여 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀블럭선택신호(BS<1:M>)의 로직레벨조합은 코어영역에 포함된 셀블럭들 중 하나를 선택하기 위해 설정될 수 있다. 셀선택신호(CES<1:N>)의 로직레벨조합은 셀블럭에 포함된 셀을 선택하기 위해 설정될 수 있다. 셀블럭선택신호(BS<1:M>)의 비트 수(M) 및 셀선택신호(CES<1:N>)의 비트 수(N)는 실시예에 따라서 다양하게 설정될 수 있다.
신경망네트워크회로(955)는 코어리드신호(CRD)가 발생될 때 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 연산신호(MAC)에 따라 발생되는 연산제어펄스에 따라 제1 코어데이터 및 제2 코어데이터에 대한 연산동작을 수행하여 연산결과데이터를 생성할 수 있다. 신경망네트워크회로(955)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작을 반복되었는지 여부를 판단하여 비교펄스(COMP)를 발생시킬 수 있다. 신경망네트워크회로(955)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작들을 반복하여 연산동작 별로 연산결과데이터를 생성할 수 있다.
도 17에 도시된 바와 같이, 본 발명의 또 다른 실시 예에 따른 반도체시스템(96)은 컨트롤러(97) 및 반도체장치(99)를 포함할 수 있다. 반도체장치(99)는 동작제어신호생성회로(991), 셀선택제어회로(993) 및 신경망네트워크회로(995)를 포함할 수 있다.
컨트롤러(97)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 타겟코드(SC<1:T>) 및 어드레스(ADD<1:L>)를 생성하여 반도체장치(99)로 출력할 수 있다. 컨트롤러(97)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 타겟코드(SC<1:T>) 및 어드레스(ADD<1:L>)를 동일한 라인들을 공유하여 반도체장치(99)로 전송할 수 있다. 실시예에 따라서, 컨트롤러(97)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC), 타겟코드(SC<1:T>) 및 어드레스(ADD<1:L>)를 클럭(미도시)에 동기하여 반도체장치(99)로 전송할 수도 있다. 타겟코드(SC<1:T>)의 비트 수(T) 및 어드레스(ADD<1:L>)의 비트 수(L)는 실시예에 따라서 다양하게 설정될 수 있다.
동작제어신호생성회로(991)는 제1 커맨드(CMD_CS), 제2 커맨드(CMD_MAC) 및 비교펄스(COMP)를 토대로 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 생성할 수 있다. 동작제어신호생성회로(991)는 제1 커맨드(CMD_CS) 및 제2 커맨드(CMD_MAC)가 발생될 때 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수 있다. 연산신호(MAC)는 신경망네트워크에서 사용되는 연산동작을 수행하기 위해 발생될 수 있다. 코어리드신호(CRD)는 코어영역에서 코어데이터가 출력되는 리드동작을 위해 발생될 수 있다. 페리리드신호(PRD)는 페리영역에서 패드를 통해 페리데이터가 입력되는 리드동작을 위해 발생될 수 있다. 실시예에 따라서, 동작제어신호생성회로(991)는 연산신호(MAC)를 발생시킨 후 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수도 있다. 동작제어신호생성회로(991)는 비교펄스(COMP)가 발생될 때 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생시킬 수 있다. 동작제어신호생성회로(991)는 비교펄스(COMP)를 버퍼링하여 연산신호(MAC), 코어리드신호(CRD) 및 페리리드신호(PRD)를 발생하도록 구현될 수 있다.
셀선택제어회로(993)는 어드레스(ADD<1:L>)를 토대로 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀선택제어회로(993)는 어드레스(ADD<1:L>)를 디코딩하여 셀블럭선택신호(BS<1:M>) 및 셀선택신호(CES<1:N>)를 생성할 수 있다. 셀블럭선택신호(BS<1:M>)의 로직레벨조합은 코어영역에 포함된 셀블럭들 중 하나를 선택하기 위해 설정될 수 있다. 셀선택신호(CES<1:N>)의 로직레벨조합은 셀블럭에 포함된 셀을 선택하기 위해 설정될 수 있다. 셀블럭선택신호(BS<1:M>)의 비트 수(M) 및 셀선택신호(CES<1:N>)의 비트 수(N)는 실시예에 따라서 다양하게 설정될 수 있다.
신경망네트워크회로(995)는 코어리드신호(CRD)가 발생될 때 코어영역에서 코어데이터를 출력하고, 페리리드신호(PRD)가 발생될 때 페리영역에서 패드를 통해 페리데이터가 입력되며, 연산신호(MAC)에 따라 발생되는 연산제어펄스에 따라 코어데이터 및 페리데이터에 대한 연산동작을 수행하여 연산결과데이터를 생성할 수 있다. 신경망네트워크회로(995)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작을 반복되었는지 여부를 판단하여 비교펄스(COMP)를 발생시킬 수 있다. 신경망네트워크회로(995)는 타겟코드(SC<1:T>)에 의해 설정된 횟수만큼 연산동작들을 반복하여 연산동작 별로 연산결과데이터를 생성할 수 있다.
1: 반도체시스템 11: 컨트롤러
13: 반도체장치 131: 동작제어신호생성회로
133: 셀선택제어회로 135: 신경망네트워크회로
21: 코어영역 23: 연산제어회로
25: 연산회로 211: 제1 셀블럭
213: 제2 셀블럭 215: 제3 셀블럭
217: 제4 셀블럭

Claims (20)

  1. 커맨드를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로; 및
    상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
  2. 제 1 항에 있어서, 상기 셀블럭선택신호 및 상기 셀선택신호는 어드레스로부터 추출되는 반도체장치.
  3. 제 1 항에 있어서, 상기 코어영역은 셀블럭들을 포함하고, 상기 셀블럭들 각각은 다수의 셀들을 포함하며, 상기 셀블럭들은 상기 셀블럭선택신호에 의해 선택되고, 상기 셀블럭들에 포함된 셀들은 상기 셀선택신호에 의해 선택되는 반도체장치.
  4. 제 3 항에 있어서, 상기 코어영역은 상기 코어리드신호가 발생될 때 상기 선택된 셀블럭에 포함된 상기 선택된 셀들에 저장된 데이터가 상기 제1 코어데이터 및 상기 제2 코어데이터로 출력되는 반도체장치.
  5. 제 1 항에 있어서, 상기 제1 코어데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 제2 코어데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
  6. 제 1 항에 있어서, 상기 제1 코어데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 제2 코어데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
  7. 제 1 항에 있어서, 상기 연산동작은 신경망네트워크에서 사용되는 함수들이 사용되는 반도체장치.
  8. 제 1 항에 있어서, 상기 신경망네트워크회로는
    상기 연산신호를 토대로 연산제어펄스를 생성하는 연산제어회로; 및
    상기 연산제어펄스가 발생될 때 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 상기 연산동작을 수행하여 상기 연산결과데이터를 생성하는 연산회로를 더 포함하는 반도체장치.
  9. 커맨드를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 동작제어신호생성회로; 및
    상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 코어데이터를 출력하고, 상기 페리리드신호를 토대로 페리영역에서 패드를 통해 페리데이터를 입력받으며, 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
  10. 제 9 항에 있어서, 상기 코어데이터는 신경망네트워크에서 사용되는 특징값으로 설정되고, 상기 페리데이터는 신경망네트워크에서 사용되는 가중치로 설정되는 반도체장치.
  11. 제 9 항에 있어서, 상기 코어데이터는 신경망네트워크에서 사용되는 가중치로 설정되고, 상기 페리데이터는 신경망네트워크에서 사용되는 특징값으로 설정되는 반도체장치.
  12. 제 9 항에 있어서, 상기 신경망네트워크회로는
    상기 연산신호를 토대로 연산제어펄스를 생성하는 연산제어회로; 및
    상기 연산제어펄스가 발생될 때 상기 코어데이터 및 상기 페리데이터에 대한 상기 연산동작을 수행하여 상기 연산결과데이터를 생성하는 연산회로를 더 포함하는 반도체장치.
  13. 제1 커맨드 및 비교펄스를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로;
    제2 커맨드를 토대로 어드레스로부터 타겟코드를 추출하여 저장하는 모드레지스터; 및
    상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
  14. 제 13 항에 있어서, 상기 동작제어신호생성회로는 상기 제1 커맨드가 발생될 때 상기 연산신호 및 상기 코어리드신호를 발생시키고, 상기 비교펄스가 발생될 때 상기 연산신호 및 상기 코어리드신호를 발생시키는 반도체장치.
  15. 제 13 항에 있어서, 상기 비교펄스는 상기 카운팅코드와 상기 타겟코드가 상이할 때 발생되는 반도체장치.
  16. 제 13 항에 있어서, 상기 신경망네트워크회로는
    상기 연산신호를 토대로 연산제어펄스를 생성하는 연산제어회로;
    상기 연산제어펄스가 발생될 때 카운팅동작을 수행하여 상기 카운팅코드를 생성하는 카운터;
    상기 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 비교회로; 및
    상기 연산제어펄스가 발생될 때 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 상기 연산동작을 수행하여 상기 연산결과데이터를 생성하는 연산회로를 더 포함하는 반도체장치.
  17. 제1 커맨드 및 비교펄스를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 동작제어신호생성회로;
    제2 커맨드를 토대로 어드레스로부터 타겟코드를 추출하여 저장하는 모드레지스터; 및
    상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 코어데이터를 출력하고, 상기 페리리드신호를 토대로 페리영역에서 패드를 통해 페리데이터를 입력받으며, 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 상기 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
  18. 제 17 항에 있어서, 상기 동작제어신호생성회로는 상기 제1 커맨드가 발생될 때 상기 연산신호, 상기 코어리드신호 및 상기 페리리드신호를 발생시키고, 상기 비교펄스가 발생될 때 상기 연산신호, 상기 코어리드신호 및 상기 페리리드신호를 발생시키는 반도체장치.
  19. 커맨드 및 비교펄스를 토대로 연산신호 및 코어리드신호를 생성하는 동작제어신호생성회로; 및
    상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 제1 코어데이터 및 제2 코어데이터를 출력하고, 상기 연산신호를 토대로 상기 제1 코어데이터 및 상기 제2 코어데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
  20. 커맨드 및 비교펄스를 토대로 연산신호, 코어리드신호 및 페리리드신호를 생성하는 동작제어신호생성회로; 및
    상기 코어리드신호, 셀블럭선택신호 및 셀선택신호를 토대로 코어영역에서 코어데이터를 출력하고, 상기 페리리드신호를 토대로 페리영역에서 패드를 통해 페리데이터를 입력받으며, 상기 연산신호를 토대로 상기 코어데이터 및 상기 페리데이터에 대한 연산동작을 통해 연산결과데이터를 생성하며, 상기 연산신호를 토대로 카운팅코드를 생성하고, 상기 카운팅코드와 타겟코드를 비교하여 상기 비교펄스를 생성하는 신경망네트워크회로를 포함하는 반도체장치.
KR1020190091302A 2019-07-26 2019-07-26 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치 KR20210012839A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190091302A KR20210012839A (ko) 2019-07-26 2019-07-26 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치
US16/713,270 US11423290B2 (en) 2019-07-26 2019-12-13 Methods of executing an arithmetic operation and semiconductor devices performing the arithmetic operation
CN201911357771.5A CN112308219A (zh) 2019-07-26 2019-12-25 执行算术运算的方法和执行算术运算的半导体器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190091302A KR20210012839A (ko) 2019-07-26 2019-07-26 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치

Publications (1)

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

Family

ID=74189532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190091302A KR20210012839A (ko) 2019-07-26 2019-07-26 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치

Country Status (3)

Country Link
US (1) US11423290B2 (ko)
KR (1) KR20210012839A (ko)
CN (1) CN112308219A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210012335A (ko) * 2019-07-24 2021-02-03 에스케이하이닉스 주식회사 반도체장치
KR20210012839A (ko) * 2019-07-26 2021-02-03 에스케이하이닉스 주식회사 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4020001C2 (de) * 1990-06-24 1995-01-26 Werner Dr Ing Brockmann Schaltungsanordnung einer Neuronenschaltung und eines damit aufgebauten neuronalen Netzes
US5256911A (en) * 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
JP2969115B1 (ja) * 1998-11-25 1999-11-02 株式会社日立製作所 半導体装置
US6999368B2 (en) * 2003-05-27 2006-02-14 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device and semiconductor integrated circuit device
JP4846306B2 (ja) * 2005-09-09 2011-12-28 富士通セミコンダクター株式会社 半導体記憶装置及びそれを用いた半導体集積回路システム並びに半導体記憶装置の制御方法
US9588840B2 (en) 2013-04-18 2017-03-07 Samsung Electronics Co., Ltd. Memory devices that perform masked write operations and methods of operating the same
KR20170008999A (ko) 2015-07-15 2017-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리의 동작 방법
CN105095967B (zh) * 2015-07-16 2018-02-16 清华大学 一种多模态神经形态网络核
US10664751B2 (en) * 2016-12-01 2020-05-26 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either cache memory or neural network unit memory
US10360971B1 (en) * 2015-11-02 2019-07-23 Green Mountain Semiconductor, Inc. Artificial neural network functionality within dynamic random-access memory
CN109478253B (zh) * 2016-05-19 2022-11-01 国立大学法人东京工业大学 神经网络电路以及神经网络集成电路
CN109643514B (zh) * 2016-08-26 2023-04-04 株式会社半导体能源研究所 显示装置及电子设备
CN109146070B (zh) * 2017-06-16 2021-10-22 华为技术有限公司 一种支撑基于rram的神经网络训练的外围电路及系统
CN109993291B (zh) * 2017-12-30 2020-07-07 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
KR102143928B1 (ko) * 2018-02-05 2020-08-13 고려대학교 산학협력단 인공 신경망 장치 및 그 동작 방법
US11170290B2 (en) * 2019-03-28 2021-11-09 Sandisk Technologies Llc Realization of neural networks with ternary inputs and binary weights in NAND memory arrays
KR102525165B1 (ko) * 2018-12-18 2023-04-24 삼성전자주식회사 연산 회로를 포함하는 비휘발성 메모리 장치 및 이를 포함하는 뉴럴 네트워크 시스템
CN109740754B (zh) * 2018-12-29 2020-04-14 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
KR20210012839A (ko) * 2019-07-26 2021-02-03 에스케이하이닉스 주식회사 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치
KR20210059815A (ko) * 2019-11-15 2021-05-26 삼성전자주식회사 메모리 기반의 뉴로모픽 장치

Also Published As

Publication number Publication date
US11423290B2 (en) 2022-08-23
US20210027149A1 (en) 2021-01-28
CN112308219A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
Aseeri et al. A machine learning-based security vulnerability study on xor pufs for resource-constraint internet of things
US20200065658A1 (en) Neuromorphic event-driven neural computing architecture in a scalable neural network
US8812414B2 (en) Low-power event-driven neural computing architecture in neural networks
CN101911034B (zh) 数据总线反转设备、系统及方法
CN110751277B (zh) 运算电路、包括该运算电路的运算装置和系统
KR20210012839A (ko) 연산동작을 수행하는 방법 및 이를 수행하는 반도체장치
Veintimilla-Reyes et al. Artificial neural networks applied to flow prediction: a use case for the Tomebamba river
JP2015167019A (ja) ニューロプロセッサにおける交換可能なシナプス荷重記憶装置に関する方法及びシステム
CN112652333A (zh) 采用存储器中处理的半导体存储器装置及其操作方法
KR102557733B1 (ko) 확률론적 병렬 마이크로프로세서
Wang et al. Multi-source training deep-learning side-channel attacks
CN109670581B (zh) 一种计算装置及板卡
US20190251420A1 (en) Transform for a neurosynaptic core circuit
Boguslawski et al. Twin neurons for efficient real-world data distribution in networks of neural cliques: Applications in power management in electronic circuits
KR20210083624A (ko) 신경망의 데이터 입력 및 출력을 제어하는 제어 방법 및 장치
KR100518604B1 (ko) 데이터의 독출 간격에 따라 반전 처리 동작을 수행하는반도체 장치의 데이터 반전회로 및 데이터 반전방법
KR101799905B1 (ko) 메모리를 이용한 물리적 복제 불가능 함수 보안 칩
EP3985567A1 (en) Method and apparatus for a neural network
JP6389438B2 (ja) k近傍法連想メモリ
WO2021037082A1 (zh) 用于处理数据的方法、装置以及相关产品
Chen et al. Online machine learning-based temperature prediction for thermal-aware NoC system
KR102211604B1 (ko) Gpu 기반의 채널 단위 딥뉴럴 네트워크 구조 검색을 사용하는 인공지능 시스템
Ionescu et al. VLSI implementation of an associative content addressable memory based on Hopfield network model
KR20180089701A (ko) 내부 연산 구조를 포함하는 mtj 메모리 장치
Kerner et al. Hierarchical temporal memory implementation on FPGA using LFSR based spatial pooler address space generator