Search

KR-20260061366-A - NEURAL NETWORK SYSTEM AND IMPLEMENTING METHOD THEREOF

KR20260061366AKR 20260061366 AKR20260061366 AKR 20260061366AKR-20260061366-A

Abstract

뉴럴 네트워크 시스템에 있어서, 어레이 형태로 배열된 제1 메모리 셀을 포함하는 뉴럴 네트워크 회로; 및 상기 뉴럴 네트워크 회로의 로우(row) 라인 또는 컬럼(column) 라인에 전기적으로 연결되고, 복수의 타겟 메모리 셀이 기설정된 타겟 가중치를 갖도록 상기 연결된 로우 라인 또는 컬럼 라인에 전류를 인가하는 자기 참조 회로;를 포함하고, 상기 타겟 메모리 셀은, 상기 자기 참조 회로가 연결된 로우 라인 또는 컬럼 라인에 위치한 모든 메모리 셀인, 시스템을 제공할 수 있다.

Inventors

  • 이충현

Assignees

  • 주식회사 페블스퀘어

Dates

Publication Date
20260506
Application Date
20260403

Claims (15)

  1. 뉴럴 네트워크 시스템에 있어서, 복수의 제1 로우(row)라인, 복수의 제2 로우 라인, 복수의 제1 컬럼(column) 라인 및 복수의 제2 컬럼 라인을 형성하고, 소스 영역 또는 드레인 영역 중 어느 하나가 상기 복수의 제1 로우 라인 중 적어도 하나에 연결되고, 소스 영역 또는 드레인 영역 중 다른 하나가 상기 복수의 제1 컬럼 라인 중 적어도 하나에 연결되고, 컨트롤 게이트가 상기 복수의 제2 로우 라인 중 적어도 하나에 연결되고, 셀렉트 게이트가 상기 복수의 제2 컬럼 라인 중 적어도 하나에 연결되는 복수의 제1 메모리 셀을 포함하는 뉴럴 네트워크 회로; 및 상기 복수의 제1 로우 라인 및 상기 복수의 제1 컬럼 라인 중 어느 하나의 라인인 소정의 라인에 전기적으로 연결되고, 상기 복수의 제1 메모리 셀 중에서 소스 영역 또는 드레인 영역 중 어느 하나가 상기 소정의 라인에 연결된 메모리 셀인 타겟 메모리 셀에 프로그래밍 동작을 수행하는 자기 참조 회로; 를 포함하고, 상기 자기 참조 회로는, 컨트롤 게이트에 튜닝 게이트 전압이 인가되고, 소스 영역 및 드레인 영역의 양단이 동일한 양단 전압을 갖도록 병렬로 연결되는 복수의 제2 메모리 셀을 포함하는, 시스템.
  2. 제 1 항에 있어서, 상기 자기 참조 회로는, 상기 양단 전압과 기 설정된 비교기 전압의 비교 결과를 디지털 신호로 출력하는 비교기를 더 포함하는, 시스템.
  3. 제 1 항에 있어서, 상기 복수의 제2 메모리 셀은, 상기 타겟 메모리 셀이 가질 수 있는 가중치의 상태 값(State) 개수에 기초하여 그 개수가 결정되는 것인, 시스템.
  4. 제 3 항에 있어서, 상기 복수의 제2 메모리 셀은, 상기 컨트롤 게이트에 서로 다른 튜닝 게이트 전압이 인가되어, 서로 다른 출력 전류 -상기 전류는 0을 포함함- 가 흐르되, 상기 출력 전류의 조합은, 상기 가중치의 상태 값에 대응되는 것을 특징으로 하는, 시스템.
  5. 제 4 항에 있어서, 상기 자기 참조 회로는, 상기 타겟 메모리 셀이 기 설정된 타겟 가중치를 갖도록 상기 타겟 메모리 셀에 상기 출력 전류의 조합을 인가하는, 시스템.
  6. 제 5 항에 있어서, 상기 뉴럴 네트워크 시스템은, 상기 타겟 메모리 셀이 상기 기 설정된 타겟 가중치를 갖도록 상기 타겟 메모리 셀에 대한 쓰기 동작을 수행하는 쓰기 회로; 를 더 포함하는, 시스템.
  7. 제 1 항에 있어서, 상기 뉴럴 네트워크 시스템은, 상기 자기 참조 회로에 일정한 전압이 인가되도록 기준 전압을 제공하는 밴드 갭 회로; 를 더 포함하는, 시스템.
  8. 뉴럴 네트워크 시스템의 구현 방법에 있어서, 복수의 제1 로우(row)라인, 복수의 제2 로우 라인, 복수의 제1 컬럼(column) 라인 및 복수의 제2 컬럼 라인을 형성하는 뉴럴 네트워크 회로에 포함된 복수의 메모리 셀로서, 소스 영역 또는 드레인 영역 중 어느 하나가 상기 복수의 제1 로우 라인 중 적어도 하나에 연결되고, 소스 영역 또는 드레인 영역 중 다른 하나가 상기 복수의 제1 컬럼 라인 중 적어도 하나에 연결되고, 컨트롤 게이트가 상기 복수의 제2 로우 라인 중 적어도 하나에 연결되고, 셀렉트 게이트가 상기 복수의 제2 컬럼 라인 중 적어도 하나에 연결되는 복수의 제1 메모리 셀 각각에 대한 타겟 가중치를 획득하는 단계; 상기 복수의 제1 로우 라인 및 상기 복수의 제1 컬럼 라인 중 어느 하나의 라인인 소정의 라인에 전기적으로 연결된 자기 참조 회로를 튜닝하는 단계; 및 상기 튜닝된 자기 참조 회로를 이용하여, 상기 복수의 제1 메모리 셀 중에서 소스 영역 또는 드레인 영역 중 어느 하나가 상기 소정의 라인에 연결된 메모리 셀인 타겟 메모리 셀의 가중치를 조정하는 단계; 를 포함하고, 상기 자기 참조 회로는, 컨트롤 게이트에 튜닝 게이트 전압이 인가되고, 소스 영역 및 드레인 영역의 양단이 동일한 양단 전압을 갖도록 병렬로 연결되는 복수의 제2 메모리 셀을 포함하는, 방법.
  9. 제 8 항에 있어서, 상기 자기 참조 회로는, 상기 양단 전압과 기 설정된 비교기 전압의 비교 결과를 디지털 신호로 출력하는 비교기를 더 포함하는, 방법.
  10. 제 8 항에 있어서, 상기 복수의 제2 메모리 셀은, 상기 타겟 메모리 셀이 가질 수 있는 가중치의 상태 값(State) 개수에 기초하여 그 개수가 결정되는 것인, 방법.
  11. 제 10 항에 있어서, 상기 자기 참조 회로를 튜닝하는 단계는, 상기 복수의 제2 메모리 셀에 서로 다른 출력 전류 -상기 출력 전류는 0을 포함함- 가 흐르도록 상기 컨트롤 게이트에 서로 다른 튜닝 게이트 전압을 인가하는 단계; 를 포함하고, 상기 출력 전류의 조합은, 상기 가중치의 상태 값에 대응되는 것을 특징으로 하는, 방법.
  12. 제 11 항에 있어서, 상기 자기 참조 회로는, 상기 타겟 메모리 셀이 기 설정된 타겟 가중치를 갖도록 상기 타겟 메모리 셀에 상기 출력 전류의 조합을 인가하는, 방법.
  13. 제 12 항에 있어서, 상기 방법은, 상기 타겟 메모리 셀이 상기 타겟 가중치를 갖도록 상기 타겟 메모리 셀에 대한 쓰기 동작을 수행하는 단계; 를 더 포함하는, 방법.
  14. 제 8 항에 있어서, 상기 방법은, 상기 자기 참조 회로에 일정한 전압이 인가되도록 기준 전압을 제공하는 단계; 를 더 포함하는, 방법.
  15. 제 8 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.

Description

뉴럴 네트워크 시스템 및 그 구현 방법{NEURAL NETWORK SYSTEM AND IMPLEMENTING METHOD THEREOF} 본 발명은 뉴럴 네트워크 시스템 및 그 구현 방법에 관한 것으로, 보다 상세하게는 학습된 모델을 대규모 신경망에 이식하기 위한 초고속 병렬 프로그래밍 방법과 그 방법에 의해 구현되는 뉴럴 네트워크 시스템에 관한 것이다. 인공 신경망(neural network)은 생물학적 신경망을 모방하는데, 이들은 입력되는 다수의 데이터에 의해 학습될 수 있고, 일반적인 기술로 도출하기 어려운 결과물을 추정하거나 근사화하는 데 이용된다. 인공 신경망은 신호를 교환하는 상호 연결된 뉴런(neuron) 층들을 포함하고, 시냅스(synapse)는 학습 또는 경험에 기초하여 튜닝이 가능한 가중치를 갖는다. 사용자가 인공 신경망을 훈련시키기 위해서는 학습 데이터의 양이 많을수록 고성능의 컴퓨터 장치에서 수행되어야 하며, 사용자가 훈련된 신경망을 사용하여 에지 장치에서 추가 훈련을 수행할 수 있어야 한다. 그러나, 에지 장치의 임베디드 SoC에서 훈련된 딥 러닝 모델을 정확히 구현하고, 이러한 에지 장치를 양산하기 위해서는 가중치 프로그래밍의 정확성과 처리 속도가 매우 중요하다. 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다. 도 1은 일 실시예에 따른 뉴럴 네트워크 시스템의 구현을 설명하기 위한 도면이다. 도 2는 일 실시예에 따른 비트 단위 프로그래밍 방식을 설명하기 위한 도면이다. 도 3은 일 실시예에 따른 비트 단위 프로그래밍 방식을 개략적으로 표현한 개념도이다. 도 4는 일 실시예에 따른 자기 참조 프로그래밍 방식을 개략적으로 표현한 개념도이다. 도 5는 일 실시예에 따른 자기 참조 프로그래밍을 이용하여 구현한 뉴럴 네트워크 시스템의 예시도이다. 도 6은 일 실시예에 따른 자기 참조 회로의 동작을 설명하기 위한 도면이다. 도 7은 일 실시예에 따른 자기 참조 회로의 예시도이다. 도 8은 일 실시예에 따른 자기 참조 프로그래밍의 결과를 나타내는 그래프이다. 도 9는 일 실시예에 따른 뉴럴 네트워크 시스템의 구현 방법의 흐름도이다. 본 발명을 설명함에 있어 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략할 수 있으며, 다르게 정의되지 않는 한 본 명세서에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 본 명세서에의 "일 실시예에 따른", "일 실시예에 관한" 또는 "일 실시예의 구현에 따라" 등의 어구는 반드시 모두 동일한 실시 예를 가리키는 것은 아니다. 실시예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 일부 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 실시예들을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 실시예들의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 명세서에서 사용한 용어들은 단지 실시예들의 설명을 위해 사용된 것으로, 실시예들을 한정하려는 의도가 아니다. 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 실시예들이 속하는 기술 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 부분에서 상세히 그 의미를 기재할 것이다. 따라서 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 실시예들 전반에 걸친 내용을 토대로 정의되어야 한다. 본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "데이터베이스", “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 또한, 명세서에 기재된 "-부", "-모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다. 또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 또한, 도면 상의 일부 구성 요소는 그 크기나 비율 등이 다소 과장되어 도시 되었을 수 있다. 또한, 어떤 도면 상에 도시된 구성 요소가 다른 도면 상에는 도시 되지 않을 수 있다. 명세서 전체에서 '실시예'는 본 개시에서 발명을 용이하게 설명하기 위한 임의의 구분으로서, 실시예 각각이 서로 배타적일 필요는 없다. 예를 들어, 일 실시예에 개시된 구성들은 다른 실시예에 적용 및/또는 구현될 수 있으며, 본 개시의 범위를 벗어나지 않는 한도에서 변경되어 적용 및/또는 구현될 수 있다. 또한, 본 개시에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 실시예들을 제한하고자 하는 것은 아니다. 본 개시에서 단수형은 특별히 언급하지 않는 한 복수형도 포함한다. 아래에서는 첨부한 도면을 참고하여 본 개시의 실시예들에 대하여 해당 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시의 실시예들은 여러 가지 상이한 형태로 구현될 수 있으며, 본 개시에서 설명하는 실시예에 한정되지 않는다. 이하에서는 이를 기반으로 도면을 참조하여 본 발명을 상세히 설명한다. 도 1은 일 실시예에 따른 뉴럴 네트워크 시스템의 구현을 설명하기 위한 도면이다. 도 1을 참조하면, 훈련된 인공 신경망 모델(10)과 실제 하드웨어(20)를 확인할 수 있다. 인공 신경망 모델(10)이 훈련되었다는 것은 다수의 학습 데이터에 의해서 인공 신경망 모델(10)의 각 레이어의 가중치(weight)가 결정되었음을 의미한다. 인공 신경망 모델(10)의 학습의 결과물인 가중치가 중앙 클라우드 서버에 저장되어 있는 경우에는 인공 신경망 모델(10)을 이용하는 클라우드 컴퓨팅 장치가 중앙 클라우드 서버와 통신하여 인공 신경망 모델(10)에 입력 값을 송신하고 출력 값을 수신할 수 있다. 이 경우, 인공 신경망 모델(10)이 매우 복잡하거나 대규모(Large-scale)인 경우에도 클라우드 컴퓨팅 장치에서 문제없이 출력 값을 이용할 수 있다. 그러나, 중앙 클라우드 서버와 통신함이 없이 장치 자체에서 데이터를 처리하는 에지 컴퓨팅(Edge Computing) 장치(20)의 경우에는, 인공 신경망 모델(10), 즉 학습을 통해 결정된 가중치가 실제 하드웨어(20)에 정확하게 이식되어야 한다. 이 때, 인공 신경망 모델(10)이 매우 복잡하거나 대규모인 경우에 문제가 된다. 인공 신경망 모델(10)에서 각 가중치의 상태 값(State)이 매우 다양할 때(예컨대, 128개의 state), 실제 하드웨어(20)에서 구현되는 크로스바 어레이는 고밀도로 형성된다. 실제 하드웨어(20)의 뉴럴 네트워크 회로에 포함되는 각 메모리 셀은 인접한 메모리 셀과 동일한 워드 라인(Word Line, WL) 및 비트 라인(Bit Line, BL) 상에 위치하게 된다. 이 ‹š, 메모리 셀에 가중치를 이식하는 프로그램/삭제(Program/erase) 동작은 인접하는 메모리 셀에 교란(disturb)을 일으켜 인접하는 메모리 셀의 전류의 확장(broadening) 및 이동(shift)이 발생할 수 있다. 이와 같은 교란 현상은 고밀도 크로스바 어레이에서 가중치의 각 상태 값이 중첩될 수 있어, 가중치의 정확한 배치를 어렵게 한다. 또한, 인공 신경망 모델(10)이 대규모인 경우 메모리 셀의 개수는 수 백만, 또는 수 천만 개에 달할 수 있다. 인공 신경망 모델(10)을 하드웨어(20)에 배치하기 위하여 수많은 메모리 셀에 가중치를 이식하고, 이러한 하드웨어(20)를 양산함에 있어 시간 소모가 매우 크다는 문제가 있다. 도 2는 일 실시예에 따른 비트 단위 프로그래밍 방식을 설명하기 위한 도면이다. 도 2를 참조하면, 비트 단위 프로그래밍을 이용하여 구현한 뉴럴 네트워크 시스템(20)은 뉴럴 네트워크 회로(200), 어드레스 디코더(210) 및 컨트롤러(220)를 포함할 수 있다. 뉴럴 네트워크 회로(200)는 어레이 형태로 배열된 메모리 셀을 포함할 수 있다. 일 실시예에서, 뉴럴 네트워크 회로(200)의 메모리 셀은 플래시 메모리 셀일 수 있다. 메모리 셀은 반도체 기판에 형성된 소스(Source) 영역 및 드레인(Drain) 영역을 포함하며, 소스 영역 및 드레인 영역 사이에는 채널(Channel) 영역이 형성된다. 또한, 플로팅 게이트(Floating Gate)가 소스 영역, 드레인 영역 및 채널 영역 중 적어도 하나의 영역 위에 형성되며, 게이트 절연막