KR20210070139A - Semiconductor device - Google Patents

Semiconductor device Download PDF

Info

Publication number
KR20210070139A
KR20210070139A KR1020190160238A KR20190160238A KR20210070139A KR 20210070139 A KR20210070139 A KR 20210070139A KR 1020190160238 A KR1020190160238 A KR 1020190160238A KR 20190160238 A KR20190160238 A KR 20190160238A KR 20210070139 A KR20210070139 A KR 20210070139A
Authority
KR
South Korea
Prior art keywords
distribution signal
output
code
correction
signal
Prior art date
Application number
KR1020190160238A
Other languages
Korean (ko)
Inventor
송청기
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020190160238A priority Critical patent/KR20210070139A/en
Priority to US16/932,400 priority patent/US20210132953A1/en
Priority to CN202010827350.0A priority patent/CN112749794A/en
Priority to US17/076,428 priority patent/US20210132954A1/en
Priority to CN202011183018.1A priority patent/CN112749796A/en
Priority to US17/145,801 priority patent/US20210132910A1/en
Publication of KR20210070139A publication Critical patent/KR20210070139A/en

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Abstract

A semiconductor device includes: a code extraction circuit for generating an output selection code and a correction code from an operation output signal generated as a result of MAC operation on a first input distribution signal and a second input distribution signal; an activation processing circuit for generating a first output distribution signal and a second output distribution signal by applying an activation function to the output selection code; and a distribution signal correction circuit for generating a corrected distribution signal by correcting the first output distribution signal based on the correction code, the first output distribution signal, and the second distribution signal. Accordingly, it is possible to improve the accuracy of the activation function.

Description

반도체장치{SEMICONDUCTOR DEVICE}Semiconductor device {SEMICONDUCTOR DEVICE}

본 발명은 신경망(Neural Network)을 제공할 수 있는 반도체장치에 관한 것이다.The present invention relates to a semiconductor device capable of providing a neural network.

신경망(Neural Network)은 인간의 뇌와 유사하게 수학적 모델로서의 뉴런을 상호 연결하여 형성된 네트워크를 의미한다. 최근 신경망 기술이 발전함에 따라 다양한 종류의 전자장치에서 신경망 기술을 사용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.A neural network refers to a network formed by interconnecting neurons as a mathematical model, similar to the human brain. With the recent development of neural network technology, research on analyzing input data and extracting valid information using neural network technology in various types of electronic devices is being actively conducted.

본 발명은 신경망 제공할 수 있는 반도체장치를 제공한다.The present invention provides a semiconductor device capable of providing a neural network.

이를 위해 본 발명은 제1 입력분포신호 및 제2 입력분포신호에 대한 MAC 연산 결과 생성된 연산출력신호로부터 출력선택코드 및 보정코드를 생성하는 코드추출회로; 상기 출력선택코드를 액티베이션함수에 적용하여 제1 출력분포신호 및 제2 출력분포신호를 생성하는 액티베이션처리회로; 및 상기 보정코드, 상기 제1 출력분포신호 및 상기 제2 출력분포신호를 토대로 상기 제1 출력분포신호를 보정하여 보정분포신호를 생성하는 분포신호보정회로를 포함하는 반도체장치를 제공한다.To this end, the present invention provides a code extraction circuit for generating an output selection code and a correction code from an operation output signal generated as a result of MAC operation for a first input distribution signal and a second input distribution signal; an activation processing circuit that applies the output selection code to an activation function to generate a first output distribution signal and a second output distribution signal; and a distribution signal correction circuit configured to generate a corrected distribution signal by correcting the first distribution signal based on the correction code, the first distribution signal, and the second distribution signal.

또한, 본 발명은 메모리셀어레이를 포함하는 뱅크; 및 상기 뱅크에 할당되어 제1 입력분포신호 및 제2 입력분포신호를 토대로 MAC 연산을 수행하여 보정코드를 생성하고, 상기 MAC 연산의 결과값을 액티베이션함수에 적용하여 출력분포신호를 생성하고, 상기 보정코드를 토대로 상기 출력분포신호를 보정하여 보정분포신호를 생성하는 신경망회로를 포함하는 반도체장치를 제공한다.In addition, the present invention provides a bank including a memory cell array; and generating a correction code by performing MAC operation based on the first input distribution signal and the second input distribution signal allocated to the bank, and applying the result value of the MAC operation to an activation function to generate an output distribution signal, Provided is a semiconductor device including a neural network circuit for generating a corrected distribution signal by correcting the output distribution signal based on a correction code.

또한, 본 발명은 제1 메모리셀어레이를 포함하는 제1 뱅크; 제2 메모리셀어레이를 포함하는 제2 뱅크; 및 상기 제1 뱅크 및 상기 제2 뱅크에 할당되어 제1 입력분포신호 및 제2 입력분포신호를 토대로 MAC 연산을 수행하여 보정코드를 생성하고, 상기 MAC 연산의 결과값을 액티베이션함수에 적용하여 출력분포신호를 생성하고, 상기 보정코드를 토대로 상기 출력분포신호를 보정하여 보정분포신호를 생성하는 신경망회로를 포함하는 반도체장치를 제공한다.In addition, the present invention provides a first bank including a first memory cell array; a second bank including a second memory cell array; and the first bank and the second bank are allocated to the first input distribution signal and the second input distribution signal to perform a MAC operation to generate a correction code, and apply the result value of the MAC operation to an activation function to output Provided is a semiconductor device including a neural network circuit that generates a distribution signal and corrects the output distribution signal based on the correction code to generate a corrected distribution signal.

본 발명에 의하면 보정코드를 사용하여 액티베이션함수에서 출력되는 출력분포신호를 보정함으로써, 액티베이션함수의 정확도를 향상시킬 수 있는 효과가 있다.According to the present invention, the accuracy of the activation function can be improved by correcting the output distribution signal output from the activation function using the correction code.

도 1은 본 발명의 일 실시예에 따른 반도체장치의 구성을 도시한 블록도이다.
도 2는 도 1에 도시된 반도체장치에 포함된 신경망회로의 일 실시예에 따른 구성을 도시한 블록도이다.
도 3은 도 2에 도시된 신경망회로에 포함된 코드추출회로의 일 실시예에 따른 구성을 도시한 블록도이다.
도 4는 도 2에 도시된 신경망회로에 포함된 액티베이션처리회로의 일 실시예에 따른 구성을 도시한 블록도이다.
도 5는 도 4에 도시된 액티베이션처리회로의 동작을 설명하기 위한 표이다.
도 6은 도 2에 도시된 신경망회로에 포함된 분포신호보정회로의 일 실시예에 따른 구성을 도시한 블록도이다.
도 7은 도 6에 도시된 분포신호보정회로의 동작을 설명하기 위한 그래프이다.
도 8은 본 발명의 다른 실시예에 따른 반도체장치의 구성을 도시한 블록도이다.
도 9은 도 1 및 도 8에 도시된 반도체장치가 적용된 전자시스템의 일 실시예에 따른 구성을 도시한 도면이다.
1 is a block diagram illustrating a configuration of a semiconductor device according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating a configuration of a neural network circuit included in the semiconductor device shown in FIG. 1 according to an embodiment.
3 is a block diagram illustrating a configuration of a code extraction circuit included in the neural network circuit shown in FIG. 2 according to an embodiment.
4 is a block diagram illustrating a configuration of an activation processing circuit included in the neural network circuit shown in FIG. 2 according to an embodiment.
5 is a table for explaining the operation of the activation processing circuit shown in FIG.
6 is a block diagram illustrating a configuration of a distributed signal correction circuit included in the neural network circuit shown in FIG. 2 according to an embodiment.
7 is a graph for explaining the operation of the distribution signal correction circuit shown in FIG.
8 is a block diagram illustrating a configuration of a semiconductor device according to another embodiment of the present invention.
9 is a diagram illustrating a configuration of an electronic system to which the semiconductor device shown in FIGS. 1 and 8 is applied according to an exemplary embodiment.

"기 설정된"이라는 용어는 프로세스나 알고리즘에서 매개변수를 사용할 때 매개변수의 수치가 미리 결정되어 있음을 의미한다. 매개변수의 수치는 실시 예에 따라서 프로세스나 알고리즘이 시작할 때 설정되거나 프로세스나 알고리즘이 수행되는 구간 동안 설정될 수 있다.The term "preset" means that when a parameter is used in a process or algorithm, the value of the parameter is predetermined. The numerical value of the parameter may be set when a process or algorithm is started, or may be set during a period during which the process or algorithm is performed, according to an embodiment.

다양한 구성요소들을 구별하는데 사용되는 "제1" 및 "제2" 등의 용어는 구성요소들에 의해 한정되지 않는다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소는 제1 구성요소로 명명될 수 있다. Terms such as “first” and “second” used to distinguish various components are not limited by the components. For example, a first component may be referred to as a second component, and conversely, a second component may be referred to as a first component.

하나의 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 할 때 직접적으로 연결되거나 중간에 다른 구성요소를 매개로 연결될 수도 있다고 이해되어야 한다. 반면 "직접 연결되어" 및 "직접 접속되어"라는 기재는 하나의 구성요소가 다른 구성요소에 또 다른 구성요소를 사이에 두지 않고 직접 연결된다고 이해되어야 한다. It should be understood that when one component is "connected" or "connected" to another component, it may be directly connected or connected through another component in the middle. On the other hand, descriptions of “directly connected” and “directly connected” should be understood to indicate that one component is directly connected to another component without interposing another component therebetween.

"로직하이레벨" 및 "로직로우레벨"은 신호들의 로직레벨들을 설명하기 위해 사용된다. "로직하이레벨"을 갖는 신호는 "로직로우레벨"을 갖는 신호와 구별된다. 예를 들어, 제1 전압을 갖는 신호가 "로직하이레벨"에 대응할 때 제2 전압을 갖는 신호는 "로직로우레벨"에 대응할 수 있다. 일 실시 예에 따라 "로직하이레벨"은 "로직로우레벨"보다 큰 전압으로 설정될 수 있다. 한편, 신호들의 로직레벨들은 실시 예에 따라서 다른 로직레벨 또는 반대의 로직레벨로 설정될 수 있다. 예를 들어, 로직하이레벨을 갖는 신호는 실시 예에 따라서 로직로우레벨을 갖도록 설정될 수 있고, 로직로우레벨을 갖는 신호는 실시 예에 따라서 로직하이레벨을 갖도록 설정될 수 있다.“Logic high level” and “logic low level” are used to describe the logic levels of signals. A signal having a “logic high level” is distinguished from a signal having a “logic low level”. For example, when the signal having the first voltage corresponds to the “logic high level”, the signal having the second voltage may correspond to the “logic low level”. According to an embodiment, the “logic high level” may be set to a voltage greater than the “logic low level”. Meanwhile, the logic levels of the signals may be set to different logic levels or opposite logic levels according to embodiments. For example, a signal having a logic high level may be set to have a logic low level according to an embodiment, and a signal having a logic low level may be set to have a logic high level according to an embodiment.

이하, 실시 예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시 예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시 예에 의해 제한되는 것은 아니다. Hereinafter, the present invention will be described in more detail through examples. These examples are only for illustrating the present invention, and the scope of protection of the rights of the present invention is not limited by these examples.

도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 반도체장치(10)는 제1 뱅크(110(1)), 제2 뱅크(110(2)), 로우경로제어회로(120), 제1 컬럼경로제어회로(130(1)), 제2 컬럼경로제어회로(130(2)) 및 신경망회로(140)를 포함할 수 있다. 신경망회로(140)는 제1 신경망회로(140(1)) 및 제2 신경망회로(140(2))를 포함할 수 있다.As shown in FIG. 1 , a semiconductor device 10 according to an embodiment of the present invention includes a first bank 110 ( 1 ), a second bank 110 ( 2 ), a row path control circuit 120 , It may include a first column path control circuit 130 ( 1 ), a second column path control circuit 130 ( 2 ), and a neural network circuit 140 . The neural network circuit 140 may include a first neural network circuit 140(1) and a second neural network circuit 140(2).

제1 뱅크(110(1)) 및 제2 뱅크(110(2)) 각각은 다수의 워드라인들 및 다수의 비트라인들에 연결된 메모리셀어레이를 포함할 수 있다. 제1 뱅크(110(1)) 및 제2 뱅크(110(2)) 각각은 로우어드레스 및 컬럼어드레스에 의해 독립적으로 엑세스될 수 있다. 제1 뱅크(110(1)) 및 제2 뱅크(110(2)) 각각은 액티브동작이 병행되어 진행되는 인터리빙(interleaving) 방식으로 동작할 수 있다. 실시예에 따라서, 반도체장치(10)는 4개, 8개, 16개 및 그 이상의 뱅크들이 포함되도록 구현될 수도 있다.Each of the first bank 110 ( 1 ) and the second bank 110 ( 2 ) may include a memory cell array connected to a plurality of word lines and a plurality of bit lines. Each of the first bank 110(1) and the second bank 110(2) may be independently accessed by a row address and a column address. Each of the first bank 110 ( 1 ) and the second bank 110 ( 2 ) may operate in an interleaving manner in which active operations are performed in parallel. According to an embodiment, the semiconductor device 10 may be implemented to include 4, 8, 16, or more banks.

로우경로제어회로(120)는 제1 뱅크(110(1)) 및 제2 뱅크(110(2)) 사이에 위치할 수 있다. 로우경로제어회로(120)는 제1 뱅크(110(1)) 및 제2 뱅크(110(2))에 공유될 수 있다. 로우경로제어회로(120)는 로우어드레스를 디코딩하여 제1 뱅크(110(1)) 및 제2 뱅크(110(2))에 포함된 다수의 워드라인들 중 적어도 하나를 선택할 수 있는 로우디코더(XDEC)를 포함할 수 있다. The row path control circuit 120 may be located between the first bank 110 ( 1 ) and the second bank 110 ( 2 ). The row path control circuit 120 may be shared by the first bank 110 ( 1 ) and the second bank 110 ( 2 ). The row path control circuit 120 decodes the row address to select at least one of a plurality of word lines included in the first bank 110 ( 1 ) and the second bank 110 ( 2 ). XDEC).

제1 컬럼경로제어회로(130(1))는 제1 뱅크(110(1))에 할당되어 배치될 수 있다. 제1 컬럼경로제어회로(130(1))는 컬럼어드레스를 디코딩하여 제1 뱅크(110(1))에 포함된 비트라인들 중 적어도 하나를 선택할 수 있는 컬럼디코더(YDEC)를 포함할 수 있다. 제1 컬럼경로제어회로(130(1))는 컬럼어드레스에 의해 선택된 비트라인과 데이터패드 사이의 데이터 입출력을 제어하는 입출력제어회로(IO)를 포함할 수 있다.The first column path control circuit 130 ( 1 ) may be allocated to the first bank 110 ( 1 ). The first column path control circuit 130(1) may include a column decoder YDEC capable of decoding a column address and selecting at least one of the bit lines included in the first bank 110(1). . The first column path control circuit 130( 1 ) may include an input/output control circuit IO for controlling data input/output between the bit line selected by the column address and the data pad.

제2 컬럼경로제어회로(130(2))는 제2 뱅크(110(2))에 할당되어 배치될 수 있다. 제2 컬럼경로제어회로(130(2))는 컬럼어드레스를 디코딩하여 제2 뱅크(110(2))에 포함된 비트라인들 중 적어도 하나를 선택할 수 있는 컬럼디코더(YDEC)를 포함할 수 있다. 제1 컬럼경로제어회로(130(1))는 컬럼어드레스에 의해 선택된 비트라인과 데이터패드 사이의 데이터 입출력을 제어하는 입출력제어회로(IO)를 포함할 수 있다.The second column path control circuit 130 ( 2 ) may be allocated to the second bank 110 ( 2 ). The second column path control circuit 130(2) may include a column decoder YDEC capable of decoding a column address and selecting at least one of the bit lines included in the second bank 110(2). . The first column path control circuit 130( 1 ) may include an input/output control circuit IO for controlling data input/output between the bit line selected by the column address and the data pad.

제1 신경망회로(140(1))는 제1 뱅크(110(1))에 할당되어 배치될 수 있다. 제1 신경망회로(140(1))는 입력분포신호들 중 적어도 하나를 제1 뱅크(110(1))에서 수신할 수 있다. 제1 신경망회로(140(1))는 입력분포신호들을 수신하여 곱셈-누적 가산(multiplying-accumulating, 이하, 'MAC'으로 지칭함) 연산을 수행할 수 있다. 제1 신경망회로(140(1))는 MAC 연산의 결과값에 액티베이션함수(activation function)를 적용하여 출력분포신호를 생성할 수 있다. 액티베이션함수에는 sigmoid, Tanh, ReLu, Leaky ReLU, Maxout 및 선형함수 등이 사용될 수 있다.The first neural network circuit 140 ( 1 ) may be allocated and disposed in the first bank 110 ( 1 ). The first neural network circuit 140(1) may receive at least one of the input distribution signals from the first bank 110(1). The first neural network circuit 140(1) may receive the input distribution signals and perform a multiplying-accumulating (hereinafter, referred to as 'MAC') operation. The first neural network circuit 140(1) may generate an output distribution signal by applying an activation function to a result value of the MAC operation. The activation function may include sigmoid, Tanh, ReLu, Leaky ReLU, Maxout, and a linear function.

제2 신경망회로(140(2))는 제2 뱅크(110(2))에 할당되어 배치될 수 있다. 제2 신경망회로(140(2))는 입력분포신호들 중 적어도 하나를 제2 뱅크(110(2))에서 수신할 수 있다. 제2 신경망회로(140(2))는 입력분포신호들을 수신하여 곱셈-누적 가산 연산을 수행할 수 있다. 제2 신경망회로(140(2))는 MAC 연산의 결과값에 액티베이션함수를 적용하여 출력분포신호를 생성할 수 있다. The second neural network circuit 140(2) may be allocated to the second bank 110(2). The second neural network circuit 140(2) may receive at least one of the input distribution signals from the second bank 110(2). The second neural network circuit 140(2) may receive the input distribution signals and perform a multiplication-accumulation addition operation. The second neural network circuit 140(2) may generate an output distribution signal by applying an activation function to a result value of the MAC operation.

도 2는 신경망회로(140)의 일 실시예에 따른 구성을 도시한 블록도이다. 도 2에 도시된 바와 같이, 신경망회로(140)는 연산회로(21), 코드추출회로(23), 액티베이션처리회로(25) 및 분포신호보정회로(27)를 포함할 수 있다.2 is a block diagram illustrating a configuration of a neural network circuit 140 according to an embodiment. As shown in FIG. 2 , the neural network circuit 140 may include an arithmetic circuit 21 , a code extraction circuit 23 , an activation processing circuit 25 , and a distribution signal correction circuit 27 .

연산회로(21)는 제1 입력분포신호(IDST1) 및 제2 입력분포신호(IDST2)를 수신하여 MAC 연산을 수행하여 연산출력신호(MOUT)를 생성할 수 있다. 연산회로(21)는 제1 뱅크(110(1)) 또는 제2 뱅크(110(2))로부터 제1 입력분포신호(IDST1) 및 제2 입력분포신호(IDST2) 중 적어도 하나를 수신할 수 있다. 실시예에 따라서, 연산회로(21)는 반도체장치(10)의 외부로부터 제1 입력분포신호(IDST1) 및 제2 입력분포신호(IDST2) 중 적어도 하나를 수신하도록 구현될 수도 있다. 제1 입력분포신호(IDST1) 및 제2 입력분포신호(IDST2)는 신경망에서 사용되는 특징값들(feature values) 및 가중치들(weights)로 설정될 수 있다. 제1 입력분포신호(IDST1)는 특징값들로 설정되고, 제2 입력분포신호(IDST2)는 가중치들로 설정될 수 있다. 실시예에 따라서, 제1 입력분포신호(IDST1)는 가중치들로 설정되고, 제2 입력분포신호(IDST2)는 특징값들로 설정될 수도 있다. 신경망에서는 입력레이어(Input layer)에 포함된 특징들(features)을 출력레이어(Output lay)에 포함된 결과값들로 분류하기 위해 MAC 연산동작, 양자화(Quantization) 및 액티베이션함수 적용 등의 동작들이 수행될 수 있다. 특징값들은 입력레이어에 포함된 특징들의 수치들일 수 있고, 가중치들은 입력레이어의 특징들을 출력레이어에 포함된 결과값으로 분류하는데 미치는 영향력의 정도에 대한 수치들로 설정될 수 있다. The operation circuit 21 may receive the first input distribution signal IDST1 and the second input distribution signal IDST2 and perform a MAC operation to generate the operation output signal MOUT. The operation circuit 21 may receive at least one of the first input distribution signal IDST1 and the second input distribution signal IDST2 from the first bank 110 ( 1 ) or the second bank 110 ( 2 ). have. According to an embodiment, the operation circuit 21 may be implemented to receive at least one of the first input distribution signal IDST1 and the second input distribution signal IDST2 from the outside of the semiconductor device 10 . The first input distribution signal IDST1 and the second input distribution signal IDST2 may be set as feature values and weights used in the neural network. The first input distribution signal IDST1 may be set as feature values, and the second input distribution signal IDST2 may be set as weights. According to an embodiment, the first input distribution signal IDST1 may be set as weights, and the second input distribution signal IDST2 may be set as feature values. In the neural network, operations such as MAC operation, quantization, and activation function application are performed to classify features included in the input layer into result values included in the output layer. can be The feature values may be numerical values of features included in the input layer, and the weights may be set as numerical values for the degree of influence on classifying features of the input layer into result values included in the output layer.

코드추출회로(23)는 연산출력신호(MOUT)를 토대로 출력선택코드(OSEL_C) 및 보정코드(COR_C)를 생성할 수 있다. 코드추출회로(23)는 연산출력신호(MOUT)에 포함된 비트들 중 최상위 비트들(이하, '연산출력신호의 최상위코드'로 지칭)을 출력선택코드(OSEL_C)로 선택하여 출력할 수 있다. 코드추출회로(23)는 연산출력신호(MOUT)에 포함된 비트들 중 차상위 비트들(이하, '연산출력신호의 차상위코드'로 지칭)을 보정코드(COR_C)로 선택하여 출력할 수 있다. The code extraction circuit 23 may generate an output selection code OSEL_C and a correction code COR_C based on the operation output signal MOUT. The code extraction circuit 23 may select and output the most significant bits (hereinafter referred to as 'the most significant code of the operation output signal') among the bits included in the operation output signal MOUT as the output selection code OSEL_C. . The code extraction circuit 23 may select and output the lower order bits (hereinafter, referred to as 'different higher order codes of the computation output signal') among the bits included in the operation output signal MOUT as the correction code COR_C.

액티베이션처리회로(25)는 출력선택코드(OSEL_C)를 토대로 제1 출력분포신호(ODST1) 및 제2 출력분포신호(ODST2)를 생성할 수 있다. 액티베이션처리회로(25)는 액티베이션함수를 룩업테이블(look up table) 형식으로 저장할 수 있다. 액티베이션처리회로(25)는 출력선택코드(OSEL_C)를 액티베이션함수에 적용하여 제1 출력분포신호(ODST1)를 생성할 수 있다. 액티베이션처리회로(25)는 출력선택코드(OSEL_C)에 기설정된 값만큼 가산한 값을 액티베이션함수에 적용하여 제2 출력분포신호(ODST2)를 생성할 수 있다.The activation processing circuit 25 may generate the first output distribution signal ODST1 and the second output distribution signal ODST2 based on the output selection code OSEL_C. The activation processing circuit 25 may store the activation function in a look-up table format. The activation processing circuit 25 may generate the first output distribution signal ODST1 by applying the output selection code OSEL_C to the activation function. The activation processing circuit 25 may generate the second output distribution signal ODST2 by applying a value obtained by adding a preset value to the output selection code OSEL_C to the activation function.

분포신호보정회로(27)는 제1 출력분포신호(ODST1), 제2 출력분포신호(ODST2) 및 보정코드(COR_C)를 토대로 보정분포신호(CODST)를 생성할 수 있다. 분포신호보정회로(27)는 제2 출력분포신호(ODST2)에서 제1 출력분포신호(ODST1)를 차감하여 생성된 값에 보정코드(COR_C)에 의해 설정된 값을 곱한 결과에 따라 보정분포신호(CODST)를 생성할 수 있다. 분포신호보정회로(27)는 보정코드(COR_C)를 토대로 제1 출력분포신호(ODST1)를 보정하여 보정분포신호(CODST)를 생성하므로, 액티베이션함수의 정확도를 향상시킬 수 있다.The distribution signal correction circuit 27 may generate the correction distribution signal CODST based on the first distribution signal ODST1 , the second distribution signal ODST2 , and the correction code COR_C. The distribution signal correction circuit 27 multiplies the value generated by subtracting the first output distribution signal ODST1 from the second output distribution signal ODST2 by the value set by the correction code COR_C. CODST) can be created. Since the distribution signal correction circuit 27 generates the correction distribution signal CODST by correcting the first output distribution signal ODST1 based on the correction code COR_C, the accuracy of the activation function may be improved.

도 3은 코드추출회로(23)의 일 실시예에 따른 구성을 도시한 블록도이다. 도 3에 도시된 바와 같이, 코드추출회로(23)는 연산출력신호(MOUT<32:1>)에서 연산출력신호의 최상위코드(MOUT<32:29>)를 출력선택코드(OSEL_C<4:1>)로 선택하여 출력할 수 있다. 연산출력신호(MOUT<32:1>)에서 연산출력신호의 최상위코드(MOUT<32:29>)는 연산출력신호(MOUT<32:1>)의 설정값에 가장 큰 영향을 미치는 4 비트가 포함되도록 구현될 수 있다. 연산출력신호(MOUT<32:1>)의 설정값이란 십진수로 변환된 값으로 정의될 수 있다. 코드추출회로(23)는 연산출력신호(MOUT<32:1>)에서 연산출력신호의 차상위코드(MOUT<28:24>)를 보정코드(COR_C<5:1>)로 선택하여 출력할 수 있다. 연산출력신호(MOUT<32:1>)에서 연산출력신호의 차상위코드(MOUT<28:24>)는 연산출력신호의 최상위코드(MOUT<32:29>) 다음으로 연산출력신호(MOUT<32:1>)의 설정값에 큰 영향을 미치는 5 비트가 포함되도록 구현될 수 있다. 연산출력신호(MOUT), 출력선택코드(OSEL_C) 및 보정코드(COR_C) 각각의 비트 수는 실시예에 따라서 다양하게 설정될 수 있다.3 is a block diagram showing the configuration of the code extraction circuit 23 according to an embodiment. 3, the code extraction circuit 23 converts the highest code (MOUT<32:29>) of the operation output signal from the operation output signal (MOUT<32:1>) to the output selection code (OSEL_C<4: 1>) to print. In the calculation output signal (MOUT<32:1>), the highest code (MOUT<32:29>) of the calculation output signal has 4 bits that have the greatest influence on the setting value of the calculation output signal (MOUT<32:1>) It can be implemented to be included. The set value of the operation output signal MOUT<32:1> may be defined as a value converted into a decimal number. The code extraction circuit 23 can select and output the difference higher code (MOUT<28:24>) of the calculation output signal from the calculation output signal (MOUT<32:1>) as the correction code (COR_C<5:1>). have. In the arithmetic output signal (MOUT<32:1>), the higher order code (MOUT<28:24>) of the arithmetic output signal is the highest code (MOUT<32:29>) :1>) can be implemented to include 5 bits that have a large influence on the setting value. The number of bits of each of the operation output signal MOUT, the output selection code OSEL_C, and the correction code COR_C may be variously set according to an embodiment.

도 4는 액티베이션처리회로(25)의 일 실시예에 따른 구성을 도시한 블록도이다. 도 4에 도시된 바와 같이, 액티베이션처리회로(25)는 코드래치회로(31), 가산기(33), 제1 선택출력회로(35) 및 제2 선택출력회로(37)를 포함할 수 있다.4 is a block diagram showing the configuration of the activation processing circuit 25 according to an embodiment. As shown in FIG. 4 , the activation processing circuit 25 may include a code latch circuit 31 , an adder 33 , a first selection output circuit 35 , and a second selection output circuit 37 .

코드래치회로(31)는 제1 내지 제15 코드래치(31(1:15))를 포함하여 액티베이션함수를 룩업테이블(look up table) 형식으로 저장할 수 있다. 제1 코드래치(31(1))는 제1 래치코드(LC1)를 래치하고 출력할 수 있다. 제2 코드래치(31(2))는 제2 래치코드(LC2)를 래치하고 출력할 수 있다. 제15 코드래치(31(15))는 제15 래치코드(LC15)를 래치하고 출력할 수 있다.The code latch circuit 31 may include the first to fifteenth code latches 31 (1:15) and store the activation function in the form of a look up table. The first code latch 31( 1 ) may latch and output the first latch code LC1 . The second code latch 31( 2 ) may latch and output the second latch code LC2 . The fifteenth code latch 31 ( 15 ) may latch and output the fifteenth latch code LC15 .

가산기(33)는 출력선택코드(OSEL_C)에 기설정된 값만큼 가산하여 가산선택코드(OSEL_CA)를 생성할 수 있다. 가산기(33)는 출력선택코드(OSEL_C)에 이진수 '1'만큼을 가산하여 가산선택코드(OSEL_CA)를 생성할 수 있다. 예를 들어, 4비트의 출력선택코드(OSEL_C<4:1>)가 '1001'로 설정될 때 가산선택코드(OSEL_CA<4:1>)는 '1010'으로 생성될 수 있다. 출력선택코드(OSEL_C)에 가산되는 값은 실시예에 따라서 이진수 '10' 이상으로 설정될 수도 있다.The adder 33 may generate an addition selection code OSEL_CA by adding a preset value to the output selection code OSEL_C. The adder 33 may generate an addition selection code OSEL_CA by adding the binary number '1' to the output selection code OSEL_C. For example, when the 4-bit output selection code (OSEL_C<4:1>) is set to '1001', the addition selection code (OSEL_CA<4:1>) may be generated as '1010'. The value added to the output selection code OSEL_C may be set to a binary number '10' or more according to an embodiment.

제1 선택출력회로(35)는 출력선택코드(OSEL_C)를 토대로 제1 내지 제15 래치코드(LC1~LC15) 중 하나를 제1 출력분포신호(ODST1)로 선택하여 출력할 수 있다. 제1 선택출력회로(35)는 액티베이션함수에 따라 제1 내지 제15 래치코드(LC1~LC15) 중 출력선택코드(OSEL_C)의 로직레벨조합 별로 대응되는 코드를 제1 출력분포신호(ODST1)로 선택하여 출력할 수 있다.The first selection output circuit 35 may select and output one of the first to fifteenth latch codes LC1 to LC15 as the first output distribution signal ODST1 based on the output selection code OSEL_C. The first selection output circuit 35 converts a code corresponding to each logic level combination of the output selection code OSEL_C among the first to fifteenth latch codes LC1 to LC15 according to the activation function to the first output distribution signal ODST1. You can choose to print.

제2 선택출력회로(37)는 가산선택코드(OSEL_CA)를 토대로 제1 내지 제15 래치코드(LC1~LC15) 중 하나를 제2 출력분포신호(ODST2)로 선택하여 출력할 수 있다. 제2 선택출력회로(37)는 액티베이션함수에 따라 제1 내지 제15 래치코드(LC1~LC15) 중 가산선택코드(OSEL_CA)의 로직레벨조합 별로 대응되는 코드를 제2 출력분포신호(ODST2)로 선택하여 출력할 수 있다.The second selection output circuit 37 may select and output one of the first to fifteenth latch codes LC1 to LC15 as the second output distribution signal ODST2 based on the addition selection code OSEL_CA. The second selection output circuit 37 converts a code corresponding to each logic level combination of the addition selection code OSEL_CA among the first to fifteenth latch codes LC1 to LC15 according to the activation function to the second output distribution signal ODST2. You can choose to print.

도 5는 액티베이션처리회로(25)의 동작을 설명하기 위한 표이다. 도 5를 참고하면 액티베이션함수에 따라 출력선택코드(OSEL_C<4:1>)의 로직레벨조합 별로 선택되는 출력선택신호(ODST)의 설정값이 룩업테이블 형식으로 구현된 것을 확인할 수 있다. 출력선택코드(OSEL_C<4:1>)의 로직레벨조합이 이진수 '0001'(십진수 '1')일 때 출력선택신호(ODST)의 설정값은 Y1이고, 출력선택코드(OSEL_C<4:1>)의 로직레벨조합이 이진수 '0010'(십진수 '2')일 때 출력선택신호(ODST)의 설정값은 Y2이다. 출력선택코드(OSEL_C<4:1>)의 로직레벨조합이 이진수 '1001'(십진수 '9')일 때 출력선택신호(ODST)의 설정값은 Y9이고, 출력선택코드(OSEL_C<4:1>)의 로직레벨조합이 이진수 '1010'(십진수 '10')일 때 출력선택신호(ODST)의 설정값은 Y10이며, 출력선택코드(OSEL_C<4:1>)의 로직레벨조합이 이진수 '1111'(십진수 '15')일 때 출력선택신호(ODST)의 설정값은 Y15이다. 여기서, Y1은 제1 래치코드(LC1)의 설정값일 수 있고, Y2는 제2 래치코드(LC2)의 설정값일 수 있으며, Y9는 제9 래치코드(LC9)의 설정값일 수 있고, Y10은 제10 래치코드(LC10)의 설정값일 수 있으며, Y15는 제15 래치코드(LC15)의 설정값일 수 있다. 출력선택코드(OSEL_C<4:1>)의 로직레벨조합이 이진수 '1001'(십진수 '9')일 때 가산기(33)에서 출력되는 가산선택코드(OSEL_CA<4:1>)는 이진수 '1010'(십진수 '10')로 설정된다. 제1 선택출력회로(35)에서 출력선택코드(OSEL_C<4:1>)에 따라 선택되어 출력되는 제1 출력분포신호(ODST1)는 Y9가 되고, 제2 선택출력회로(37)에서 가산선택코드(OSEL_CA<4:1>)에 따라 선택되어 출력되는 제2 출력분포신호(ODST2)는 Y10이 된다.5 is a table for explaining the operation of the activation processing circuit 25. Referring to FIG. 5 , it can be seen that the set value of the output selection signal ODST selected for each logic level combination of the output selection code OSEL_C<4:1> according to the activation function is implemented in the form of a lookup table. When the logic level combination of the output selection code (OSEL_C<4:1>) is binary '0001' (decimal number '1'), the set value of the output selection signal (ODST) is Y1, and the output selection code (OSEL_C<4:1) >) when the logic level combination is binary '0010' (decimal '2'), the setting value of the output selection signal (ODST) is Y2. When the logic level combination of the output selection code (OSEL_C<4:1>) is binary '1001' (decimal number '9'), the set value of the output selection signal (ODST) is Y9, and the output selection code (OSEL_C<4:1) >) when the logic level combination is binary '1010' (decimal number '10'), the set value of the output selection signal (ODST) is Y10, and the logic level combination of the output selection code (OSEL_C<4:1>) is binary ' 1111' (decimal number '15'), the setting value of the output selection signal (ODST) is Y15. Here, Y1 may be a set value of the first latch code LC1, Y2 may be a set value of the second latch code LC2, Y9 may be a set value of the ninth latch code LC9, and Y10 is the set value of the ninth latch code LC9. 10 may be a set value of the latch code LC10, and Y15 may be a set value of the fifteenth latch code LC15. When the logic level combination of the output selection code (OSEL_C<4:1>) is binary '1001' (decimal number '9'), the addition selection code (OSEL_CA<4:1>) output from the adder 33 is binary '1010' ' (decimal number '10'). The first output distribution signal ODST1 selected and output by the first selection output circuit 35 according to the output selection code OSEL_C<4:1> becomes Y9, and the second selection output circuit 37 adds selection The second output distribution signal ODST2 selected and output according to the code OSEL_CA<4:1> becomes Y10.

도 6은 분포신호보정회로(27)의 일 실시예에 따른 구성을 도시한 블록도이다. 도 6에 도시된 바와 같이, 분포신호보정회로(27)는 차감기(41), 가산코드생성회로(43) 및 보정분포신호생성회로(45)를 포함할 수 있다.6 is a block diagram showing the configuration of the distribution signal correction circuit 27 according to an embodiment. As shown in FIG. 6 , the distribution signal correction circuit 27 may include a subtractor 41 , an addition code generation circuit 43 , and a correction distribution signal generation circuit 45 .

차감기(41)는 제2 출력분포신호(ODST2)에서 제1 출력분포신호(ODST1)를 차감하여 차감코드(SUB)를 생성할 수 있다. 차감코드(SUB)는 제2 출력분포신호(ODST2) 및 제1 출력분포신호(ODST1)의 차이에 해당되는 값에 대응하는 로직레벨조합으로 생성될 수 있다. 예를 들어, 제2 출력분포신호(ODST2) 및 제1 출력분포신호(ODST1)의 차이가 십진수 '4'만큼 차이 날 때 차감코드(SUB)는 이진수 '100'에 대응되는 로직레벨조합으로 생성될 수 있다.The subtractor 41 may generate a subtraction code SUB by subtracting the first output distribution signal ODST1 from the second output distribution signal ODST2 . The subtraction code SUB may be generated as a logic level combination corresponding to a value corresponding to a difference between the second output distribution signal ODST2 and the first output distribution signal ODST1 . For example, when the difference between the second output distribution signal ODST2 and the first output distribution signal ODST1 is different by the decimal number '4', the subtraction code SUB is generated as a logic level combination corresponding to the binary number '100'. can be

가산코드생성회로(43)는 차감코드(SUB) 및 보정코드(COR_C)를 토대로 가산코드(ADD_C)를 생성할 수 있다. 가산코드생성회로(43)는 보정코드(COR_C)에 의해 설정되는 보정값을 차감코드(SUB)에 곱하여 차감보정값을 생성할 수 있다. 가산코드생성회로(43)는 차감보정값에 따라 선택된 정수에 대응하는 로직레벨조합을 갖는 가산코드(ADD_C)를 생성할 수 있다. 보정코드(COR_C)에 의해 설정되는 보정값은 보정코드(COR_C)의 로직레벨조합의 모든 경우의 수를 분모로 갖고, 보정코드(COR_C)의 로직레벨조합에 대응하는 설정값을 분자로 갖도록 설정될 수 있다. 가산코드(ADD_C)는 차감보정값에 포함된 정수값에 대응하는 로직레벨조합으로 설정될 수 있다. 예를 들어, 차감보정값이 1.5일 때 가산코드(ADD_C)는 1에 대응하는 로직레벨조합인 '01'로 설정될 수 있다. 실시예에 따라서, 가산코드(ADD_C)는 차감보정값에 포함된 소수를 반올림하여 생성된 정수값에 대응하는 로직레벨조합으로 설정될 수도 있는데, 차감보정값이 1.5일 때 가산코드(ADD_C)는 2에 대응하는 로직레벨조합인 '10'으로 설정될 수 있다. The addition code generation circuit 43 may generate the addition code ADD_C based on the subtraction code SUB and the correction code COR_C. The addition code generation circuit 43 may generate a subtraction correction value by multiplying the correction value set by the correction code COR_C by the subtraction code SUB. The addition code generation circuit 43 may generate the addition code ADD_C having a logic level combination corresponding to the selected integer according to the subtraction correction value. The correction value set by the correction code COR_C has the number of all cases of the logical level combination of the correction code COR_C as the denominator, and the set value corresponding to the logic level combination of the correction code COR_C is set as the numerator can be The addition code ADD_C may be set as a logic level combination corresponding to an integer value included in the subtraction correction value. For example, when the subtraction correction value is 1.5, the addition code ADD_C may be set to '01', which is a logic level combination corresponding to 1. According to an embodiment, the addition code ADD_C may be set to a logic level combination corresponding to an integer value generated by rounding a decimal number included in the subtraction correction value. When the subtraction correction value is 1.5, the addition code ADD_C is It may be set to '10', which is a logic level combination corresponding to 2.

보정분포신호생성회로(45)는 제1 출력분포신호(ODST1)에 가산코드(ADD_C)를 가산하여 보정분포신호(CODST)를 생성할 수 있다. 예를 들어, 제1 출력분포신호(ODST1)가 '10'이고, 가산코드(ADD_C)가 1일 때 보정분포신호(CODST)는 '11'로 설정될 수 있다.The correction distribution signal generating circuit 45 may generate the correction distribution signal CODST by adding the addition code ADD_C to the first output distribution signal ODST1 . For example, when the first output distribution signal ODST1 is '10' and the addition code ADD_C is 1, the correction distribution signal CODST may be set to '11'.

도 7은 분포신호보정회로(27)의 동작을 설명하기 위한 그래프이다. 도 7을 참고하여 출력선택코드(OSEL_C)가 9이고, 가산선택코드(OSEL_CA)가 10일 때 보정분포신호(CODST)의 생성동작을 살펴보면 다음과 같다.7 is a graph for explaining the operation of the distribution signal correction circuit 27. As shown in FIG. The generation operation of the correction distribution signal CODST when the output selection code OSEL_C is 9 and the addition selection code OSEL_CA is 10 with reference to FIG. 7 is as follows.

출력선택코드(OSEL_C)가 9일 때 액티베이션함수에 따라 생성되는 제1 출력분포신호(ODST1)는 10이고, 가산선택코드(OSEL_CA)가 10일 때 액티베이션함수에 따라 생성되는 제2 출력분포신호(ODST2)는 12이므로 차감코드(SUB)는 2로 설정된다. 보정코드(COR_C<5:1>)가 '11000'일 때 보정값은

Figure pat00001
로 설정되고, 차감코드(SUB)는 2이므로 차감보정값은
Figure pat00002
으로 설정된다. 가산코드(ADD_C)는 차감보정값 중 정수인 1로 설정되므로, 보정분포신호(CODST)는 제1 출력분포신호(ODST1)에 가산코드(ADD_C)를 가산한 값인 11로 설정된다.When the output selection code OSEL_C is 9, the first output distribution signal ODST1 generated according to the activation function is 10, and when the addition selection code OSEL_CA is 10, the second output distribution signal ODST1 generated according to the activation function is 10 ODST2) is 12, so the subtraction code SUB is set to 2. When the correction code (COR_C<5:1>) is '11000', the correction value is
Figure pat00001
and the subtraction code (SUB) is 2, so the subtraction correction value is
Figure pat00002
is set to Since the addition code ADD_C is set to 1, which is an integer among the subtraction correction values, the correction distribution signal CODST is set to 11, which is a value obtained by adding the addition code ADD_C to the first output distribution signal ODST1.

이상 살펴본 바와 같이, 본 실시예에 따른 반도체장치(10)는 액티베이션함수에서 출력선택코드(OSEL_C)에 따라 선택되어 출력되는 제1 출력분포신호(ODST1)를 보정코드(COR_C)에 따라 생성되는 가산코드(ADD_C)를 가산하여 보정분포신호(CODST)를 생성함으로써, 액티베이션함수의 정확도를 향상시킬 수 있다.As described above, in the semiconductor device 10 according to the present embodiment, the first output distribution signal ODST1 selected and output according to the output selection code OSEL_C in the activation function is added according to the correction code COR_C. By adding the code ADD_C to generate the correction distribution signal CODST, the accuracy of the activation function may be improved.

도 8은 본 발명의 다른 실시예에 따른 반도체장치(50)의 구성을 도시한 블록도이다. 도 8에 도시된 바와 같이, 반도체장치(50)는 제1 뱅크(510(1)), 제2 뱅크(510(2)), 제3 뱅크(510(3)), 제4 뱅크(510(4)), 제1 로우경로제어회로(520(1)), 제2 로우경로제어회로(520(2)), 제1 컬럼경로제어회로(530(1)), 제2 컬럼경로제어회로(530(2)), 제3 컬럼경로제어회로(530(3)), 제4 컬럼경로제어회로(530(4)), 제1 신경망회로(550(1)) 및 제2 신경망회로(550(2))를 포함할 수 있다.8 is a block diagram illustrating the configuration of a semiconductor device 50 according to another embodiment of the present invention. As shown in FIG. 8 , the semiconductor device 50 includes a first bank 510(1), a second bank 510(2), a third bank 510(3), and a fourth bank 510( 4)), first row path control circuit 520(1), second row path control circuit 520(2), first column path control circuit 530(1), second column path control circuit ( 530(2)), a third column path control circuit 530(3), a fourth column path control circuit 530(4), a first neural network circuit 550(1), and a second neural network circuit 550( 2)) may be included.

제1 뱅크(510(1)), 제2 뱅크(510(2)), 제3 뱅크(510(3)) 및 제4 뱅크(510(4)) 각각은 다수의 워드라인들 및 다수의 비트라인들에 연결된 메모리셀어레이를 포함할 수 있다. 제1 뱅크(510(1)), 제2 뱅크(510(2)), 제3 뱅크(510(3)) 및 제4 뱅크(510(4)) 각각은 로우어드레스 및 컬럼어드레스에 의해 독립적으로 엑세스될 수 있다. 제1 뱅크(510(1)), 제2 뱅크(510(2)), 제3 뱅크(510(3)) 및 제4 뱅크(510(4)) 각각은 액티브동작이 병행되어 진행되는 인터리빙(interleaving) 방식으로 동작할 수 있다. 실시예에 따라서, 반도체장치(50)는 4개, 8개, 16개 및 그 이상의 뱅크들이 포함되도록 구현될 수도 있다.The first bank 510(1), the second bank 510(2), the third bank 510(3) and the fourth bank 510(4) each have a plurality of wordlines and a plurality of bits. It may include a memory cell array connected to the lines. Each of the first bank 510(1), the second bank 510(2), the third bank 510(3), and the fourth bank 510(4) is independently based on a row address and a column address. can be accessed. The first bank 510(1), the second bank 510(2), the third bank 510(3), and the fourth bank 510(4) are interleaved ( interleaving) method. According to an embodiment, the semiconductor device 50 may be implemented to include 4, 8, 16, or more banks.

제1 로우경로제어회로(520(1))는 제1 뱅크(510(1)) 및 제2 뱅크(510(2)) 사이에 위치할 수 있다. 제1 로우경로제어회로(520(1))는 제1 뱅크(510(1)) 및 제2 뱅크(510(2))에 공유될 수 있다. 제1 로우경로제어회로(520(1))는 로우어드레스를 디코딩하여 제1 뱅크(510(1)) 및 제2 뱅크(510(2))에 포함된 다수의 워드라인들 중 적어도 하나를 선택할 수 있는 로우디코더(XDEC)를 포함할 수 있다. The first row path control circuit 520 ( 1 ) may be positioned between the first bank 510 ( 1 ) and the second bank 510 ( 2 ). The first row path control circuit 520 ( 1 ) may be shared by the first bank 510 ( 1 ) and the second bank 510 ( 2 ). The first row path control circuit 520 ( 1 ) decodes the row address to select at least one of a plurality of word lines included in the first bank 510 ( 1 ) and the second bank 510 ( 2 ). It may include a capable raw decoder (XDEC).

제2 로우경로제어회로(520(2))는 제3 뱅크(510(3)) 및 제4 뱅크(510(4)) 사이에 위치할 수 있다. 제2 로우경로제어회로(520(2))는 제3 뱅크(510(3)) 및 제4 뱅크(510(4))에 공유될 수 있다. 제2 로우경로제어회로(520(2))는 로우어드레스를 디코딩하여 제3 뱅크(510(3)) 및 제4 뱅크(510(4))에 포함된 다수의 워드라인들 중 적어도 하나를 선택할 수 있는 로우디코더(XDEC)를 포함할 수 있다. The second row path control circuit 520 ( 2 ) may be positioned between the third bank 510 ( 3 ) and the fourth bank 510 ( 4 ). The second row path control circuit 520(2) may be shared by the third bank 510(3) and the fourth bank 510(4). The second row path control circuit 520(2) decodes the row address to select at least one of a plurality of word lines included in the third bank 510(3) and the fourth bank 510(4). It may include a capable raw decoder (XDEC).

제1 컬럼경로제어회로(530(1))는 제1 뱅크(510(1))에 할당되어 배치될 수 있다. 제1 컬럼경로제어회로(530(1))는 컬럼어드레스를 디코딩하여 제1 뱅크(510(1))에 포함된 비트라인들 중 적어도 하나를 선택할 수 있는 컬럼디코더(YDEC)를 포함할 수 있다. 제1 컬럼경로제어회로(530(1))는 컬럼어드레스에 의해 선택된 비트라인과 데이터패드 사이의 데이터 입출력을 제어하는 입출력제어회로(IO)를 포함할 수 있다.The first column path control circuit 530 ( 1 ) may be allocated to the first bank 510 ( 1 ). The first column path control circuit 530 ( 1 ) may include a column decoder YDEC capable of decoding a column address and selecting at least one of the bit lines included in the first bank 510 ( 1 ). . The first column path control circuit 530( 1 ) may include an input/output control circuit IO for controlling data input/output between the bit line selected by the column address and the data pad.

제2 컬럼경로제어회로(530(2))는 제2 뱅크(510(2))에 할당되어 배치될 수 있다. 제2 컬럼경로제어회로(530(2))는 컬럼어드레스를 디코딩하여 제2 뱅크(510(2))에 포함된 비트라인들 중 적어도 하나를 선택할 수 있는 컬럼디코더(YDEC)를 포함할 수 있다. 제2 컬럼경로제어회로(530(2))는 컬럼어드레스에 의해 선택된 비트라인과 데이터패드 사이의 데이터 입출력을 제어하는 입출력제어회로(IO)를 포함할 수 있다.The second column path control circuit 530 ( 2 ) may be allocated to the second bank 510 ( 2 ). The second column path control circuit 530(2) may include a column decoder YDEC capable of decoding a column address and selecting at least one of the bit lines included in the second bank 510(2). . The second column path control circuit 530( 2 ) may include an input/output control circuit IO for controlling data input/output between the data pad and the bit line selected by the column address.

제3 컬럼경로제어회로(530(3))는 제3 뱅크(510(3))에 할당되어 배치될 수 있다. 제3 컬럼경로제어회로(530(3))는 컬럼어드레스를 디코딩하여 제3 뱅크(510(3))에 포함된 비트라인들 중 적어도 하나를 선택할 수 있는 컬럼디코더(YDEC)를 포함할 수 있다. 제3 컬럼경로제어회로(530(3))는 컬럼어드레스에 의해 선택된 비트라인과 데이터패드 사이의 데이터 입출력을 제어하는 입출력제어회로(IO)를 포함할 수 있다.The third column path control circuit 530 ( 3 ) may be allocated to the third bank 510 ( 3 ). The third column path control circuit 530 ( 3 ) may include a column decoder YDEC capable of decoding a column address and selecting at least one of the bit lines included in the third bank 510 ( 3 ). . The third column path control circuit 530( 3 ) may include an input/output control circuit IO for controlling data input/output between the bit line selected by the column address and the data pad.

제4 컬럼경로제어회로(530(4))는 제4 뱅크(510(4))에 할당되어 배치될 수 있다. 제4 컬럼경로제어회로(530(4))는 컬럼어드레스를 디코딩하여 제4 뱅크(510(4))에 포함된 비트라인들 중 적어도 하나를 선택할 수 있는 컬럼디코더(YDEC)를 포함할 수 있다. 제4 컬럼경로제어회로(530(4))는 컬럼어드레스에 의해 선택된 비트라인과 데이터패드 사이의 데이터 입출력을 제어하는 입출력제어회로(IO)를 포함할 수 있다.The fourth column path control circuit 530 ( 4 ) may be allocated to the fourth bank 510 ( 4 ). The fourth column path control circuit 530 ( 4 ) may include a column decoder YDEC that can select at least one of the bit lines included in the fourth bank 510 ( 4 ) by decoding the column address. . The fourth column path control circuit 530( 4 ) may include an input/output control circuit IO for controlling data input/output between the bit line selected by the column address and the data pad.

제1 신경망회로(550(1))는 제1 뱅크(510(1)) 및 제3 뱅크(510(3))에 공유되어 배치될 수 있다. 제1 신경망회로(550(1))는 입력분포신호들 중 적어도 하나를 제1 뱅크(510(1)) 및 제3 뱅크(510(3))에서 수신할 수 있다. 제1 신경망회로(550(1))는 입력분포신호들을 수신하여 MAC 연산을 수행할 수 있다. 제1 신경망회로(550(1))는 MAC 연산의 결과값에 액티베이션함수를 적용하여 출력분포신호를 생성할 수 있다.The first neural network circuit 550(1) may be disposed to be shared in the first bank 510(1) and the third bank 510(3). The first neural network circuit 550(1) may receive at least one of the input distribution signals from the first bank 510(1) and the third bank 510(3). The first neural network circuit 550(1) may receive input distribution signals and perform MAC operation. The first neural network circuit 550(1) may generate an output distribution signal by applying an activation function to a result value of the MAC operation.

제2 신경망회로(550(2))는 제2 뱅크(510(2)) 및 제4 뱅크(510(4))에 할당되어 배치될 수 있다. 제2 신경망회로(550(2))는 입력분포신호들 중 적어도 하나를 제2 뱅크(510(2)) 및 제4 뱅크(510(4))에서 수신할 수 있다. 제2 신경망회로(550(2))는 입력분포신호들을 수신하여 MAC 연산을 수행할 수 있다. 제2 신경망회로(550(2))는 MAC 연산의 결과값에 액티베이션함수를 적용하여 출력분포신호를 생성할 수 있다. The second neural network circuit 550(2) may be allocated to the second bank 510(2) and the fourth bank 510(4). The second neural network circuit 550(2) may receive at least one of the input distribution signals from the second bank 510(2) and the fourth bank 510(4). The second neural network circuit 550(2) may receive input distribution signals and perform MAC operation. The second neural network circuit 550(2) may generate an output distribution signal by applying an activation function to a result value of the MAC operation.

도 9는 본 발명의 일 실시예에 따른 전자시스템(1000)의 일 실시예에 따른 구성을 도시한 블럭도이다. 도 9에 도시된 바와 같이, 전자시스템(1000)은 호스트(1100) 및 반도체시스템(1200)을 포함할 수 있다. 9 is a block diagram illustrating a configuration of an electronic system 1000 according to an embodiment of the present invention. As shown in FIG. 9 , the electronic system 1000 may include a host 1100 and a semiconductor system 1200 .

호스트(1100) 및 반도체시스템(1200)은 인터페이스 프로토콜을 사용하여 상호 신호들을 전송할 수 있다. 호스트(1100) 및 반도체시스템(1200) 사이에 사용되는 인터페이스 프로토콜에는 MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), SAS(serial attached SCSI), USB(Universal Serial Bus) 등이 있다.The host 1100 and the semiconductor system 1200 may transmit mutual signals using an interface protocol. Interface protocols used between the host 1100 and the semiconductor system 1200 include MMC (Multi-Media Card), ESDI (Enhanced Small Disk Interface), IDE (Integrated Drive Electronics), PCI-E (Peripheral Component Interconnect - Express) , ATA (Advanced Technology Attachment), SATA (Serial ATA), PATA (Parallel ATA), SAS (serial attached SCSI), USB (Universal Serial Bus), and the like.

반도체시스템(1200)은 컨트롤러(1300)와 반도체장치들(1400(K:1))을 포함할 수 있다. 컨트롤러(1300)는 반도체장치들(1400(K:1))이 MAC 연산 및 액티베이션함수 적용 등의 동작이 수행되도록 반도체장치들(1400(K:1))을 제어할 수 있다. 반도체장치들(1400(K:1)) 각각은 보정코드를 이용하여 액티베이션함수에서 출력되는 출력분포신호를 보정하여 액티베이션함수의 정확도를 향상시킬 수 있다. The semiconductor system 1200 may include a controller 1300 and semiconductor devices 1400 (K:1). The controller 1300 may control the semiconductor devices 1400 (K:1) so that operations such as MAC operation and activation function application are performed by the semiconductor devices 1400 (K:1). Each of the semiconductor devices 1400 (K:1) may improve the accuracy of the activation function by correcting an output distribution signal output from the activation function using a correction code.

반도체장치들(1400(K:1)) 각각은 도 1에 도시된 반도체장치(10) 또는 도 8에 도시된 반도체장치(50)로 구현될 수 있다. 실시예에 따라서 반도체장치(10) 및 반도체장치(50) 각각은 DRAM(dynamic random access memory), PRAM(Phase change Random Access Memory), RRAM(Resistive Random Access Memory), MRAM(Magnetic Random Access Memory) 및 FRAM(Ferroelectric Random Access Memory) 중 하나로 구현될 수 있다.Each of the semiconductor devices 1400 (K:1) may be implemented as the semiconductor device 10 shown in FIG. 1 or the semiconductor device 50 shown in FIG. 8 . According to an embodiment, each of the semiconductor device 10 and the semiconductor device 50 includes dynamic random access memory (DRAM), phase change random access memory (PRAM), resistive random access memory (RRAM), magnetic random access memory (MRAM), and It may be implemented as one of FRAM (Ferroelectric Random Access Memory).

10: 반도체장치 110(1): 제1 뱅크
110(2): 제2 뱅크 120: 로우경로제어회로
130(1): 제1 컬럼경로제어회로 130(2): 제2 컬럼경로제어회로
140: 신경망회로 140(1): 신경망회로
140(2): 제2 신경망회로
10: semiconductor device 110(1): first bank
110(2): second bank 120: low path control circuit
130(1): first column path control circuit 130(2): second column path control circuit
140: neural network circuit 140(1): neural network circuit
140(2): second neural network circuit

Claims (20)

제1 입력분포신호 및 제2 입력분포신호에 대한 MAC 연산 결과 생성된 연산출력신호로부터 출력선택코드 및 보정코드를 생성하는 코드추출회로;
상기 출력선택코드를 액티베이션함수에 적용하여 제1 출력분포신호 및 제2 출력분포신호를 생성하는 액티베이션처리회로; 및
상기 보정코드, 상기 제1 출력분포신호 및 상기 제2 출력분포신호를 토대로 상기 제1 출력분포신호를 보정하여 보정분포신호를 생성하는 분포신호보정회로를 포함하는 반도체장치.
a code extraction circuit for generating an output selection code and a correction code from an operation output signal generated as a result of MAC operation on the first input distribution signal and the second input distribution signal;
an activation processing circuit that applies the output selection code to an activation function to generate a first output distribution signal and a second output distribution signal; and
and a distribution signal correction circuit for generating a corrected distribution signal by correcting the first distribution signal based on the correction code, the first distribution signal, and the second distribution signal.
제 1 항에 있어서, 상기 제1 입력분포신호 및 상기 제2 입력분포신호 중 적어도 하나가 뱅크에서 출력되는 반도체장치.
The semiconductor device of claim 1 , wherein at least one of the first input distribution signal and the second input distribution signal is output from a bank.
제 1 항에 있어서, 상기 제1 입력분포신호는 신경망에서 사용되는 특징값들로 설정되고, 상기 제2 입력분포신호는 신경망에서 사용되는 가중치들로 설정되는 반도체장치.
The semiconductor device of claim 1 , wherein the first distributed input signal is set to feature values used in a neural network, and the second input distributed signal is set to weights used in the neural network.
제 1 항에 있어서, 상기 출력선택코드는 상기 연산출력신호의 최상위코드로 선택되어 출력되고, 상기 보정코드는 상기 연산출력신호의 차상위코드로 선택되어 출력되는 반도체장치.
The semiconductor device according to claim 1, wherein the output selection code is selected and output as the most significant code of the operation output signal, and the correction code is selected and outputted as the next-order code of the operation output signal.
제 1 항에 있어서, 상기 액티베이션처리회로는 상기 액티베이션함수를 룩업테이블로 저장하고, 상기 출력선택코드를 상기 액티베이션함수에 적용하여 상기 제1 출력분포신호를 생성하고, 상기 출력선택코드에 기설정된 값만큼 가산하여 생성된 가산선택코드를 상기 액티베이션함수에 적용하여 상기 제2 출력분포신호를 생성하는 반도체장치.
The method according to claim 1, wherein the activation processing circuit stores the activation function as a lookup table, applies the output selection code to the activation function to generate the first output distribution signal, and a value preset in the output selection code A semiconductor device for generating the second output distribution signal by applying an addition selection code generated by adding the same to the activation function.
제 5 항에 있어서, 상기 액티베이션처리회로는
다수의 래치코드들을 래치하고 출력하는 코드래치회로;
상기 출력선택코드를 토대로 상기 다수의 래치코드들 중 하나를 상기 제1 출력분포신호로 선택하여 출력하는 제1 선택출력회로; 및
상기 가산선택코드를 토대로 상기 다수의 래치코드들 중 하나를 상기 제2 출력분포신호로 선택하여 출력하는 제2 선택출력회로를 포함하는 반도체장치.
The method of claim 5, wherein the activation processing circuit
a code latch circuit for latching and outputting a plurality of latch codes;
a first selection output circuit for selecting and outputting one of the plurality of latch codes as the first output distribution signal based on the output selection code; and
and a second selection output circuit for selecting and outputting one of the plurality of latch codes as the second output distribution signal based on the addition selection code.
제 1 항에 있어서, 상기 분포신호보정회로는 상기 제1 출력분포신호 및 상기 제2 출력분포신호를 토대로 생성된 차감코드를 생성하고, 상기 보정코드에 의해 설정되는 보정값과 상기 차감코드를 곱한 결과에 따라 상기 보정분포신호를 생성하는 반도체장치.
The method of claim 1, wherein the distribution signal correction circuit generates a subtraction code generated based on the first distribution signal and the second distribution signal, and multiplies a correction value set by the correction code by the subtraction code. A semiconductor device for generating the correction distribution signal according to a result.
제 7 항에 있어서, 상기 보정코드의 보정값은 보정코드의 로직레벨조합이 가질 수 있는 모든 경우의 수를 분모로 갖고, 상기 보정코드의 로직레벨조합에 대응하는 설정값을 분자로 갖는 반도체장치.
8. The semiconductor device according to claim 7, wherein the correction value of the correction code has as a denominator the number of all possible combinations of logic levels of the correction code, and a numerator is a set value corresponding to the combination of logic levels of the correction code. .
제 7 항에 있어서, 상기 분포신호보정회로는
상기 제2 출력분포신호에서 상기 제1 출력분포신호를 차감하여 상기 차감코드를 생성하는 차감기;
상기 보정코드의 보정값을 상기 차감코드에 곱하여 차감보정값을 생성하고, 상기 차감보정값에 따라 선택된 정수에 대응하는 가산코드를 생성하는 가산코드생성회로; 및
상기 제1 출력분포신호에 상기 가산코드를 가산하여 상기 보정분포신호를 생성하는 보정분포신호생성회로를 포함하는 반도체장치.
8. The method of claim 7, wherein the distribution signal correction circuit comprises:
a subtractor for generating the subtraction code by subtracting the first output distribution signal from the second output distribution signal;
an addition code generation circuit for generating a subtraction correction value by multiplying the correction value of the correction code by the subtraction code, and generating an addition code corresponding to a selected integer according to the subtraction correction value; and
and a correction distribution signal generating circuit generating the correction distribution signal by adding the addition code to the first output distribution signal.
제 9 항에 있어서, 상기 가산코드는 상기 차감보정값에 포함된 정수에 대응하는 로직레벨조합으로 설정되는 반도체장치.
10. The semiconductor device of claim 9, wherein the addition code is set to a logic level combination corresponding to an integer included in the subtraction correction value.
메모리셀어레이를 포함하는 뱅크; 및
상기 뱅크에 할당되어 제1 입력분포신호 및 제2 입력분포신호를 토대로 MAC 연산을 수행하여 보정코드를 생성하고, 상기 MAC 연산의 결과값을 액티베이션함수에 적용하여 출력분포신호를 생성하고, 상기 보정코드를 토대로 상기 출력분포신호를 보정하여 보정분포신호를 생성하는 신경망회로를 포함하는 반도체장치.
a bank including an array of memory cells; and
It is allocated to the bank and performs a MAC operation based on the first input distribution signal and the second input distribution signal to generate a correction code, applies the result value of the MAC operation to an activation function to generate an output distribution signal, and the correction and a neural network circuit for generating a corrected distribution signal by correcting the output distribution signal based on a code.
제 11 항에 있어서, 상기 제1 입력분포신호 및 상기 제2 입력분포신호 중 적어도 하나가 상기 뱅크에서 출력되는 반도체장치.
The semiconductor device of claim 11 , wherein at least one of the first input distribution signal and the second input distribution signal is output from the bank.
제 11 항에 있어서, 상기 신경망회로는
상기 제1 입력분포신호 및 상기 제2 입력분포신호에 대한 상기 MAC 연산 결과 생성된 연산출력신호로부터 출력선택코드 및 상기 보정코드를 생성하는 코드추출회로;
상기 출력선택코드를 상기 액티베이션함수에 적용하여 제1 출력분포신호 및 제2 출력분포신호를 생성하는 액티베이션처리회로; 및
상기 보정코드, 상기 제1 출력분포신호 및 상기 제2 출력분포신호를 토대로 상기 제1 출력분포신호를 보정하여 상기 보정분포신호를 생성하는 분포신호보정회로를 포함하는 반도체장치.
The method of claim 11, wherein the neural network circuit
a code extraction circuit for generating an output selection code and the correction code from an operation output signal generated as a result of the MAC operation on the first input distribution signal and the second input distribution signal;
an activation processing circuit for generating a first output distribution signal and a second output distribution signal by applying the output selection code to the activation function; and
and a distribution signal correction circuit for generating the corrected distribution signal by correcting the first distribution signal based on the correction code, the first distribution signal, and the second distribution signal.
제 13 항에 있어서, 상기 출력선택코드는 상기 연산출력신호의 최상위코드로 선택되어 출력되고, 상기 보정코드는 상기 연산출력신호의 차상위코드로 선택되어 출력되는 반도체장치.
14. The semiconductor device of claim 13, wherein the output selection code is selected and output as the most significant code of the calculation output signal, and the correction code is selected and outputted as a difference higher code of the calculation output signal.
제 13 항에 있어서, 상기 액티베이션처리회로는 상기 액티베이션함수를 룩업테이블로 저장하고, 상기 출력선택코드를 상기 액티베이션함수에 적용하여 상기 제1 출력분포신호를 생성하고, 상기 출력선택코드에 기설정된 값만큼 가산하여 생성된 가산선택코드를 상기 액티베이션함수에 적용하여 상기 제2 출력분포신호를 생성하는 반도체장치.
14. The method of claim 13, wherein the activation processing circuit stores the activation function as a lookup table, applies the output selection code to the activation function to generate the first output distribution signal, and a value preset in the output selection code A semiconductor device for generating the second output distribution signal by applying an addition selection code generated by adding the same to the activation function.
제 13 항에 있어서, 상기 분포신호보정회로는 상기 제1 출력분포신호 및 상기 제2 출력분포신호를 토대로 생성된 차감코드를 생성하고, 상기 보정코드에 의해 설정되는 보정값을 상기 차감코드에 곱한 결과에 따라 상기 보정분포신호를 생성하는 반도체장치.
14. The method of claim 13, wherein the distribution signal correction circuit generates a subtraction code generated based on the first distribution signal and the second distribution signal, and multiplying the subtraction code by a correction value set by the correction code. A semiconductor device for generating the correction distribution signal according to a result.
제1 메모리셀어레이를 포함하는 제1 뱅크;
제2 메모리셀어레이를 포함하는 제2 뱅크; 및
상기 제1 뱅크 및 상기 제2 뱅크에 할당되어 제1 입력분포신호 및 제2 입력분포신호를 토대로 MAC 연산을 수행하여 보정코드를 생성하고, 상기 MAC 연산의 결과값을 액티베이션함수에 적용하여 출력분포신호를 생성하고, 상기 보정코드를 토대로 상기 출력분포신호를 보정하여 보정분포신호를 생성하는 신경망회로를 포함하는 반도체장치.
a first bank including a first memory cell array;
a second bank including a second memory cell array; and
It is allocated to the first bank and the second bank, performs a MAC operation based on the first input distribution signal and the second input distribution signal to generate a correction code, and applies the result value of the MAC operation to an activation function to distribute the output A semiconductor device comprising: a neural network circuit for generating a signal and for generating a corrected distribution signal by correcting the output distribution signal based on the correction code.
제 17 항에 있어서, 상기 제1 입력분포신호 및 상기 제2 입력분포신호 중 적어도 하나가 상기 제1 뱅크에서 출력되는 반도체장치.
The semiconductor device of claim 17 , wherein at least one of the first input distribution signal and the second input distribution signal is output from the first bank.
제 17 항에 있어서, 상기 제1 입력분포신호 및 상기 제2 입력분포신호 중 적어도 하나가 상기 제2 뱅크에서 출력되는 반도체장치.
18. The semiconductor device of claim 17, wherein at least one of the first input distribution signal and the second input distribution signal is output from the second bank.
제 17 항에 있어서, 상기 제1 입력분포신호는 상기 제1 뱅크에서 출력되고, 상기 제2 입력분포신호는 상기 제2 뱅크에서 출력되는 반도체장치.
The semiconductor device of claim 17 , wherein the first distributed input signal is output from the first bank, and the second distributed input signal is output from the second bank.
KR1020190160238A 2019-10-31 2019-12-04 Semiconductor device KR20210070139A (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190160238A KR20210070139A (en) 2019-12-04 2019-12-04 Semiconductor device
US16/932,400 US20210132953A1 (en) 2019-10-31 2020-07-17 Arithmetic devices for neural network
CN202010827350.0A CN112749794A (en) 2019-10-31 2020-08-17 Arithmetic device for neural network
US17/076,428 US20210132954A1 (en) 2019-10-31 2020-10-21 Arithmetic devices for neural network
CN202011183018.1A CN112749796A (en) 2019-10-31 2020-10-29 Computing device for neural networks
US17/145,801 US20210132910A1 (en) 2019-10-31 2021-01-11 Arithmetic devices for neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190160238A KR20210070139A (en) 2019-12-04 2019-12-04 Semiconductor device

Publications (1)

Publication Number Publication Date
KR20210070139A true KR20210070139A (en) 2021-06-14

Family

ID=76417623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190160238A KR20210070139A (en) 2019-10-31 2019-12-04 Semiconductor device

Country Status (1)

Country Link
KR (1) KR20210070139A (en)

Similar Documents

Publication Publication Date Title
KR20210096679A (en) Neural networks and systems for decoding encoded data
JP6061523B2 (en) Data processing apparatus and operation method thereof
US10043573B2 (en) Apparatus and method for endurance friendly programming using lower voltage thresholds
US11922295B2 (en) Arithmetic devices for neural network
US20160350177A1 (en) Controller and control method
US20210132953A1 (en) Arithmetic devices for neural network
US20210132910A1 (en) Arithmetic devices for neural network
US20210158852A1 (en) Arithmetic devices conducting auto-load operation
CN114267390A (en) Memory device for processing row hammer refresh operation and method of operating the same
KR20180053113A (en) Memory device
CN112182495A (en) Binary domain matrix operation circuit based on memristor
US20090327709A1 (en) Memory address obfuscation
CN112749794A (en) Arithmetic device for neural network
US20150286522A1 (en) Dual mapping between program states and data patterns
US20160141027A1 (en) Resistance variable memory apparatus, read circuit unit and operation method therefor
KR20210070139A (en) Semiconductor device
US20180090201A1 (en) Method and apparatus for programming non-volatile memory using a multi-cell storage cell group to provide error location information for retention errors
US20190372592A1 (en) Parity check matrix generator, operating method thereof and error correction circuit using parity check matrix generated by the same
US20220197540A1 (en) Storage device and method of operating the same
KR101679495B1 (en) Mapping between program states and data patterns
US20180039429A1 (en) Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
KR20140065320A (en) Repair control circuit and semiconductor memory device including the same
JP6860787B2 (en) Memory control circuit, memory, and memory control method
US9473171B2 (en) Data encoding method for compressing data to be stored, data storage device with data encoder, and operating method of data storage device
TWI759672B (en) Decoding method and associated flash memory controller and electronic device