KR102489258B1 - 인공 신경망 - Google Patents

인공 신경망 Download PDF

Info

Publication number
KR102489258B1
KR102489258B1 KR1020197000717A KR20197000717A KR102489258B1 KR 102489258 B1 KR102489258 B1 KR 102489258B1 KR 1020197000717 A KR1020197000717 A KR 1020197000717A KR 20197000717 A KR20197000717 A KR 20197000717A KR 102489258 B1 KR102489258 B1 KR 102489258B1
Authority
KR
South Korea
Prior art keywords
neural network
network node
crosspoint array
volatile memory
output
Prior art date
Application number
KR1020197000717A
Other languages
English (en)
Other versions
KR20190022622A (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 암, 리미티드
Publication of KR20190022622A publication Critical patent/KR20190022622A/ko
Application granted granted Critical
Publication of KR102489258B1 publication Critical patent/KR102489258B1/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
    • G06N3/065Analogue means
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements

Landscapes

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

Abstract

폭넓게 말하면, 본 기술의 실시예는, 인공 신경망의 각 신경망 노드에 대한 가중치가 신경망의 외부에서 행해지는 트레이닝을 통해 얻어지는 재구성 가능한 하드웨어 기반 인공 신경망을 제공한다.

Description

인공 신경망
본 발명은 일반적으로 인공 신경망에 관한 것이고, 특히 인공 신경망을 구현하기 위한 비휘발성 메모리 회로에 관한 것이다.
비휘발성 메모리(Non-volatile memory, NVM)는, 메모리 셀 또는 소자가, 셀/소자에 공급되는 전원이 제거된 후에, 그 상태를 잃지 않는 메모리 종류이다. 비휘발성 메모리 디바이스의 예는, 플래시 메모리, 자기 컴퓨터 저장 디바이스(예를 들면, 하드 디스크, 플로피 디스크, 및 자기 테이프), 및 광학 디스크를 포함한다. NVM 디바이스의 다른 예는, 상-변화 메모리(PCM/PCRAM) 디바이스, 저항 랜덤 액세스 메모리(RRAM/ReRAM) 디바이스, 및 상관 전자 재료(CEM/CeRAM) 디바이스를 포함한다. 상-변화 메모리 디바이스에서, 프로그래밍(쓰기)은, 메모리 셀을 용융시키도록 가열하고(저항 변화를 일으킴), 도전성 결정 상태 또는 비도전성 비정질 상태로 냉각하는 것을 포함한다. 저항 RAM 디바이스에서, 프로그래밍은 유전체 고체 상태 물질의 저항을 변화시키는 것을 포함한다. CeRAM 디바이스는, 고체 상태 구조 상 변화가 아닌 전자 상관으로부터 발생하는 급격한 도전성 또는 절연성 상태 천이를 나타내는 상관 전자 재료(CEM)로 (전체적으로 또는 부분적으로) 형성된다.
NVM 소자는 뉴로모픽 컴퓨팅에 이용될 수 있다.
광범위하게는, 여기에 기술된 기술들은 인공 신경망(ANN)에서 가중치와 입력값의 내적(dot-product) 계산을 구현한다. ANN은 상호 연결된 인공 뉴런들(또는 신경망 노드들)의 레어어들로 구성되며, 여기에서 연결(또는 에지)은 수(number)/가중치와 연관된다. 본 명세서에서 이용되는 용어 "내적"은, 신경망 노드의 각각의 인-에지(in-edge) 또는 신경망 노드 내로의 연결과 연관된 가중치를 해당 인-에지에 따른 신호의 크기(예를 들면, 전압, 전류 등)와 승산하는 것을 지칭한다. 일부 구현예에서, 가중치 및/또는 입력은 음의 크기를 가질 수 있다. 각각의 신경망 노드에서 행해지는 계산은 2개의 서로 다른 스텝으로 일어날 수 있다. 제1 스텝은 가중치와 입력 크기의 승산을 합산하는 것이다(내적 또는 승산 적산). 제2 스텝은, 이 합산을 신경망 노드의 활성화 함수에 대한 입력으로서 이용하는 것을 포함한다. 활성화 함수는 특정 입력이 주어진 노드의 출력을 정의하며, 바이너리(예를 들면 "fire" 또는 "don't fire")일 수 있다. 본 기술은, ANN 내에서 내적(승산 및 적산) 계산의 저전력 및 에너지 효율적인 구현을 위한 하드웨어/ 회로를 제공한다.
본 기술의 제1 양태에 따르면, 재구성 가능한 인공 신경망을 구현하기 위한 장치가 제공되고, 상기 장치는, 크로스포인트 어레이(crosspoint array), 통신 모듈, 및 제어 회로를 포함하고, 상기 크로스포인트 어레이는, 적어도 하나의 행 신호 라인 및 적어도 하나의 열 신호 라인, 적어도 하나의 신경망 노드 - 각각의 신경망 노드는 행 신호 라인과 열 신호 라인의 교차부에 마련되고, 각각의 신경망 노드는 연관된 가중치를 가짐 - , 및 상기 연관된 가중치를 저장하기 위해 각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자 - 각각의 비휘발성 메모리 소자는 제1 임피던스 상태와 제2 임피던스 상태 사이에서 스위칭 가능함 - 를 포함하고, 상기 통신 모듈은, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되고, 상기 제어 회로는, 상기 신경망 노드에서 상기 가중치를 구현(또는 프로그래밍)하도록, 각각의 신경망 노드에 마련된 상기 복수의 비휘발성 메모리 소자 각각을 상기 제1 임피던스 상태 또는 상기 제2 임피던스 상태로 스위칭하도록 구성된다.
본 기술의 제2 양태에 따르면, 행 신호 라인과 열 신호 라인의 교차부에 위치하는 적어도 하나의 신경망 노드를 포함하는 크로스포인트 어레이로 재구성 가능한 인공 신경망을 구현하는 방법이 제공되고, 이 방법은, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하는 스텝, 각각의 신경망 노드에서 상기 특정된 가중치를 구현하도록, 각각의 신경망 노드에 마련된 복수의 비휘발성 메모리 소자를 필요한 임피던스 상태로 스위칭하는 스텝, 및 상기 비휘발성 메모리 소자를 이용해서, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 저장하는 스텝을 포함한다.
본 기술의 제3 양태에 따르면, 재구성 가능한 인공 신경망을 구현하는 시스템이 제공되고, 이 시스템은, 본원에서 설명하는 장치, 및 인공 신경망 모델을 트레이닝하도록 구성되는 원격 서버를 포함하고, 상기 장치는, 상기 원격 서버로부터 상기 장치의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성된다.
이 기술들은 첨부 도면들에 예로서 도식적으로 나타나 있다.
도 1a는 이미지 인식을 위한 예시적인 신경망의 개략도.
도 1b는 신경망 추론 함수의 개략도.
도 2는 장치 내에 신경망을 구현하기 위한 시스템의 블록도.
도 3은 크로스포인트 어레이를 이용하여 구현된 신경망의 회로도를 나타내며, 여기서 각 신경망 노드는 복수의 비휘발성 메모리 소자로 형성된 크로스포인트 어레이 모듈을 포함함.
도 4a는 각각의 신경망 노드에 마련된 예시적인 2×2 크로스포인트 어레이 모듈의 회로도.
도 4b는 도 4a의 2×2 크로스포인트 어레이 모듈의 등가 회로 표현.
도 5는 각 신경망 노드에 마련된 예시적인 4×4 크로스포인트 어레이 모듈의 회로도.
도 6은 제어 회로를 포함하는 예시적인 4×4 크로스포인트 어레이 모듈의 회로도.
도 7은, 직렬로 배치된 비휘발성 메모리 소자로 형성된 신경망에 가중치를 구현하거나 프로그래밍하는 예시적인 스텝들을 도시하는 플로우도
도 8은 예시적인 3×3 크로스포인트 어레이의 회로도를 나타내고, 여기서 각각의 신경망 노드는 병렬 비휘발성 메모리 소자로 형성된 크로스포인트 어레이 모듈을 포함함.
도 9는 병렬로 배치된 비휘발성 메모리 소자로 형성된 신경망에 가중치를 구현하거나 프로그램하기 위한 예시적인 스텝들을 도시하는 플로우도.
도 10은 크로스포인트 어레이에서 병렬 또는 직렬 연결된 NVM 소자를 이용하여 구현된 인공 신경망에 음의 가중치가 프로그래밍되는 방법을 도시하는 회로도.
도 11a는 크로스포인트 어레이들을 이용하여 구현된 계층화된 인공 신경망의 회로도를 나타내고, 도 11b는 도 11a의 개략적인 버전을 나타내는 도면.
광범위하게는, 본 기술의 실시예는, 인공 신경망의 각각의 신경망 노드에 대한 가중치가 신경망의 외부에서 행해지는 트레이닝을 통해 얻어지는 재구성 가능한 하드웨어 기반의 인공 신경망을 제공한다. 본 기술은, 통상 제한된 처리 및/또는 메모리 능력을 갖는 IoT(Internet of Things) 디바이스 또는 내장 디바이스 등의 리소스 제한 디바이스에서 인공 신경망을 구현하는데 특히 유용할 수 있다. 이러한 제한 디바이스는 인공 신경망을 트레이닝할 능력을 갖지 않을 수 있다. 따라서, 본 기술은, 디바이스가 현장에서 트레이닝을 행할 필요 없이 디바이스(특히 제한 디바이스)에 인공 신경망을 구현하는 방법을 제공한다. 인공 신경망의 가중치는, 충분한 처리 능력을 갖는 클라우드 또는 원격 서버 등에서와 같이 디바이스에 원격인 신경망을 트레이닝해서 얻어진다.
인공 신경망의 개념은 본 명세서에서 상세히 설명하지는 않는다. 다만, 본 기술의 이해를 돕기 위해 간단한 설명을 제공한다. 일반적으로 말하면, 인공 신경망(ANN)은 "인공 뉴런"(이는 인간의 뇌에서의 뉴런과 마찬가지임)이라 불리는 수백, 수천 또는 심지어 수백만개의 처리 유닛들을 포함하는 처리 디바이스(소프트웨어, 하드웨어, 또는 둘 모두의 조합으로 구현됨)이다. 인공 뉴런은 특정 문제를 해결하기 위해 단합하여 작업한다. ANN은, 일반적으로, 다수의 상호 연결된 인공 뉴런들을 포함하는 레이어들로 조직화된다. 기본 ANN은 3개의 레이어로 구성되고, "입력" 유닛들의 레이어는 "은닉(hidden)" 유닛들의 레이어에 연결되고, 은닉 노드들은 "출력" 유닛들의 레이어에 연결된다(일부 경우에, 은닉 유닛들의 레이어가 존재하지 않을 수도 있음). 도 1a는 예시적인 인공 신경망의 개략을 나타낸다. 입력 레이어의 입력 유닛들은 ANN에 의해 처리될(또는 ANN의 트레이닝 중에 학습/인식될) 원시 정보/데이터를 수신한다. 출력 레이어의 출력 유닛들은 ANN의 반대쪽에 위치되며 ANN이 어떻게 원시 정보를 처리했는지를 시그널링한다. 입력 유닛들과 출력 유닛들 사이에는, ANN의 대부분을 행하는 은닉 유닛들의 하나 이상의 레이어들이 있다(도 1a에서, 2개의 은닉 레이어가 표시됨). 완전히 연결된 ANN에서, 각 은닉 유닛과 각 출력 유닛은 양측에서 레이어들의 각 유닛들에 연결되지만, 이것은 ANN의 일 예일뿐이다. 하나의 유닛과 다른 유닛 간의 연결은 수/가중치로 표시된다. 가중치는 양의 값(예를 들면 한 유닛이 다른 유닛을 자극(excite)할 경우) 또는 음의 값(예를 들면 한 유닛이 다른 유닛을 억제/저해할 경우)일 수 있다. 일반적으로, 가중치가 높을수록, 한 유닛이 다른 유닛에 미치는 영향이 크다.
ANN은, 통상, 일반적인 규칙 기반 프로그래밍을 이용하여 해결하기에는 어려운 이미지 및 음성 인식 작업에 종종 이용된다. 도 1a에 나타난 예시적 ANN에서, ANN은 이미지 인식을 행하는데 이용되고, 특히 이미지가 개인지의 여부를 판정하는데 이용된다. 따라서, 출력 레이어는, 수신된 이미지가 개인 이미지인지(또는 그것을 포함하는지)의 여부를 지시(indication)하는 출력을 제공한다. 출력은 바이너리 출력(예를 들면 "예"는 1이고 "아니오"는 0)일 수 있거나, 또는 출력은 수신된 이미지가 얼마만큼 개의 이미지일 가능성을 지시할 수 있다. 도 1a의 예에서, 입력 레이어는 고양이의 이미지를 수신하고, 이것은, 이미지가 개인지의 여부를 판정하도록 ANN에 의해 처리된다. 예를 들면, ANN은 영숫자 문자 인식에 이용될 수 있으며, 각 가능한 문자(예를 들면, a 내지 z, 및 0 내지 9)에 대한 출력이 있을 수 있다.
본 기술의 실시예에서, 인공 신경망은 입력 레이어에서 전압을 수신하고 출력 레이어에서 전류를 출력하도록 구성될 수 있다. 도 1a에서, ANN의 그래프(연결)는 가중치를 나타내고 노드들은 시그모이드 함수를 통과한 가중된 입력들의 합산을 나타낸다. 입력 노드들의 가중합은 선형 연산이지만, 시그모이드 함수는 본질적으로 비선형이다. 인공 신경망의 각 노드는 인-에지(즉, 노드 내로 향하는 에지) 및 아웃-에지(즉, 노드가 향하는 에지)를 갖는다. 노드 내로 향하는 각 에지는 다른 노드로부터 또는 인공 신경망 내의 입력으로부터 온다. 마찬가지로, 각각의 인공 신경망(ANN), 또는 계층화된 ANN 내의 각 레이어는 인-에지 및 아웃-에지를 갖는다. 도 1b는 신경망 추론 함수의 개략도를 나타낸다. 도 1a 및 도 1b에 도시된 예에서, 입력 및 출력 노드는 모두 다음 계산이 수행되는 데이터 값이라 생각될 수 있다(식 1 참조).
Figure 112019002628552-pct00001
식 1
매트릭스 공식에서, 상기 계산(식 1)의 선형 계산은 다음과 같이 작성할 수 있다.
Figure 112019002628552-pct00002
식 2
본 기술에서, ANN의 입력 노드(X)가 전압 V로 표현되고 출력 노드(Z)가 전류 I로 표현될 경우, 매트릭스 W는 어드미턴스 매트릭스와 등가이다. 이와 같이 출력 전류 및 입력 전압 매트릭스를 관련지으면, 식 2를 다음과 같이 다시 작성할 수 있다.
Figure 112019002628552-pct00003
식 3
멤리스터 또는 ReRAM 기반 크로스포인트 어레이 아키텍처가 뉴로모픽 컴퓨팅에 이용될 수 있다. 일반적으로 말해서, 아키텍처는 전압을 나타내는 입력 노드를 전류를 나타내는 출력 노드로 변환하거나, 및/또는 전류를 나타내는 입력 노드를 전압을 나타내는 출력 노드로 변환하는데 이용될 수 있다. 다음에서, 전류를 전압으로 변환한다는 것(또는 그 반대)은 단지 예시적인 예로서 이용되며, 본 기술은 동일하게 전압을 전류로(또는 그 반대) 변환하는데 이용될 수 있음을 이해할 것이다. 출력 전류는, 일반적으로 입력 전압을 크로스포인트 어레이로 구현된 컨덕턴스 매트릭스를 통과시킴으로써 판정된다. 컨덕턴스 매트릭스는, 멤리스터 및 ReRAM 등의 특정 비휘발성 메모리 소자들의 "아날로그" 특성을 이용해서 구현된다. 아날로그 비휘발성 메모리 소자는 본질적으로 필라멘트형이다. 결과적으로, 적절한 전압의 인가에 따라, 아날로그 비휘발성 메모리 소자에 의해 제공되는 실제 저항값은 고저항 상태(HRS)와 저저항 상태(LRS) 사이에서 미세 스텝들로 제어될 수 있다. 그러나, 이들 필라멘트형 비휘발성 메모리 소자의 저항값에는 통상 고유한 편차가 있다. 따라서, 필라멘트형 비휘발성 메모리 소자로 형성된 크로스포인트 어레이는, 타겟 어드미턴스와 측정 어드미턴스 사이의 모든 에러를 최소화하도록, 소자 단위로 현장에서 신중하고 정확한 튜닝을 필요로 하는 경향이 있다. 따라서, 이 접근법은 기본적으로 본질적으로 "아날로그"이다.
따라서, 필라멘트형 저항 소자를 포함하는 크로스포인트 어레이 아키텍처로 형성된 ANN은 클라우드 기반 또는 원격 신경망 트레이닝을 이용할 수 없으며, 이는, 이들 ANN이, 각각의 저항 소자 사이의 편차를 고려해서, 반드시 현장에서 트레이닝되어야 하기 때문이다. 따라서, 디바이스의 제한된 처리, 에너지 및 메모리 용량으로 인해 현장에서의 학습을 어렵게 하거나 불가능하게 만드는 IoT(Internet of Things) 디바이스에서 이용하기에는 적합하지 않다. 또한, 각 적용마다 그 자신의 고유한 가중치가 필요하고 필라멘트형 아날로그 ANN을 하나의 적용에서 다른 적용으로 전환하려면 현장에서 ANN이 재트레이닝 및 튜닝되어야 하므로, 이들 ANN은 다른 적용(예를 들면, 문자 인식, 음성 인식 등)에서 다시 이용하기에 적합하지 않을 수 있다.
그들의 아날로그 특성으로 인해, 그러한 접근법은 저항값의 편차에 영향을 받기 쉽다. 중간 저항값에서의 변차는 HRS와 LRS 사이의 전체적인 차이보다 훨씬 클 수 있다.
본 기술의 인공 신경망은 복수의 비필라멘트형 비휘발성 메모리 소자를 이용하여 가중치를 저장하도록 형성된다. 비필라멘트형 비휘발성 메모리 소자는 상술한 문제점을 극복하고, 현장에서의 트레이닝을 필요로 하지 않고 IoT 디바이스 등의 제한 디바이스에서 인공 신경망이 구현되게 할 수 있다. 이는, 각 IoT 디바이스가 특정 적용에 대한 가중치를 단순히 다운로드하게 하므로, IoT 디바이스에서 인공 신경망을 신속하고 효율적으로 구현할 수 있게 한다. 가중치를 인코딩하고 내적 계산을 행하는데 이용되는 본 기술의 크로스포인트 어레이는 전(全)디지털적이며, 이는 ANN이 클라우드 기반 트레이닝을 이용할 수 있게 한다(단, 이하에서 설명되는 바와 같이, ANN은 활성화 함수를 계산하는 회로를 포함할 수 있고, 실시예들에서, 이 회로는 전디지털적이 아닐 수도 있음). 폭넓게 말하면, 특정 적용에 대한 가중치를 특정하는 데이터(예를 들면, 디지털 워드)는 IoT 디바이스에 의해 다운로드되고 IoT 디바이스 내에 마련된 크로스포인트 어레이에 프로그래밍될 수 있다. 이것은, 각 IoT 디바이스에서 비용 및 시간이 많이 드는 ANN 트레이닝의 필요성을 제거할 수 있다. 전디지털적 접근법은, 또한, 저항 편차에 대해 더 큰 내성을 제공할 수 있으며, 이에 따라 현실적인 적용들에 적합한 ANN을 제공한다.
본 기술의 실시예에서, 크로스포인트 어레이의 각각의 인공 신경망 노드는 상관 전자 스위치(CES) 소자를 포함할 수 있다. CES 소자는 "비필라멘트형" 특성으로 인해, 멤리스터 및 ReRAM과 고유하게 구별되며, 제조 이후에 (적어도) 두가지 구별되는 고정된 임피던스 상태가 존재할 수 있게 한다. CES 소자가 구별되는 임피던스 상태들로 제한되기 때문에, 공지된 크로스포인트 어레이 기반 ANN에서 멤리스터 및 ReRAM을 CES 소자로 대체하는 것은 본 기술의 이점을 발생시키지 않을 것이며, 이는, 이들 알려진 ANN이 멤리스터의 필라멘트형 특성을 이용해서 다양한 저항 상태(이에 따라, 다양한 가중치)를 제공하기 때문이다. 본 기술에서, 다수의 CES 소자의 이용을 통해, 다양한 저항/임피던스 상태가 생성될 수 있다.
상술한 바와 같이, 본 기술의 크로스포인트 어레이의 각 신경망 노드는 상관 전자 스위치(CES) 소자를 포함할 수 있다. 이러한 맥락에서, CES 소자는 도전성 상태(로우 임피던스 및 로우 커패시턴스 상태)로부터 절연성 상태(하이 임피던스 및 하이 커패시턴스 상태)로 또는 그 반대로 급격한 도전체/절연체 천이를 나타낼 수 있고, 이는, 고체 상태 구조 상 변화(예를 들면, 상-변화 메모리(PCM) 디바이스에서 발생하는 결정/비정질 변화, 또는 저항 RAM 디바이스에서 발생하는 필라멘트 형성)가 아닌 CEM에서의 전자 상관으로부터 발생한다.
실시예에서, CEM에서의 급격한 도전체/절연체 천이는, 용융/고화 또는 필라멘트 형성과 달리, 양자 역학적 현상에 응답할 수 있다. CES 소자에서 도전 상태와 절연 상태 사이의 그러한 양자 역학적 천이는 다양한 측면 중 어느 하나로 이해될 수 있다.
실시예에서, 절연 상태와 도전 상태 사이의 양자 역학적 천이는 모트(Mott) 천이의 관점에서 이해될 수 있다. 예를 들면, CEM은, 제1 모트 천이 조건이 만족되면 절연 상태로부터 도전 상태로 스위칭할 수 있고, 제2 모트 천이 조건이 만족되면 도전 상태로부터 절연 상태로 스위칭할 수 있다. 상이한 모트 천이 조건들이 이하에서 더 상세하게 설명될 것이다.
본 기술의 실시예의 특정 구현에서, 메모리 회로는 적어도 하나의 CES 소자를 포함하는 메모리 어레이, 메모리 어레이(또는 메모리 어레이 내의 메모리 블록)에 제공되는 신호에 따라 CES 소자를 제1 메모리 상태 또는 제2 메모리 상태로 놓기 위한 쓰기 회로(CES 소자의 임피던스는 제1 메모리 상태에서보다 제2 메모리 상태에서 더 높음), 및 메모리 어레이(또는 블록)의 메모리 상태를 감지하고 메모리 어레이(또는 블록)의 감지된 메모리 상태에 대응하는 전기 신호를 제공하는 판독 회로를 포함할 수 있다.
일 양태에서, 제2 임피던스 상태에서의 CES 소자의 임피던스는 제1 임피던스 상태에서의 CES 소자의 임피던스보다 100배 이상 클 수 있다.
CES 소자는 CES 랜덤 액세스 메모리(CeRAM)로서 기능할 수 있다. CES 소자는, 예를 들면 모트 천이를 이용하여 적어도 부분적으로 메모리 상태들 사이의 CEM 천이(예를 들면, 절연 상태로부터 도전 상태로의 천이)의 적어도 부분에 의거하여 복수의 미리 결정된 검출 가능한 메모리 상태들 사이에서 천이할 수 있는 물질을 포함한다. 이러한 맥락에서, "메모리 상태"는, 값, 심볼, 파라미터 또는 조건(단지 몇몇 예를 제공하는 것임)을 지시하는 CES 소자의 검출 가능한 상태를 의미한다.
하나의 특정 구현예에서, CES 소자의 메모리 상태는, "판독 동작"에서 CES 소자의 하나 이상의 단자에서 검출된 신호의 값에 적어도 부분적으로 의거하여 검출될 수 있다.
다른 특정 구현예에서, CES 소자는, CES 소자에 인가되는 바이어스 파라미터(예를 들면, 전압)를 제어함으로써, 및/또는 CES 소자를 통해 드라이빙되는 전류 파라미터(예를 들면, 전류 밀도 J(A/μm2))를 제어함으로써, 특정 값, 심볼, 파라미터 또는 조건 등을 나타내거나 저장하도록, 특정 메모리 상태로 놓일 수 있다.
일 실시예에서, CEM은 반도체 상의 (C/S/C) 배치(예를 들면, 스택 배치)에서 도전성 영역들(C)와 전기적으로 접촉해서(예를 들면, 그들 사이에 샌드위치되서) 배치되는 스위칭 영역(S)을 포함한다. 도전성 영역(C)은 임의의 적절한 물질을 포함할 수 있고, 천이 금속 산화물을 포함할 수 있으며, 예를 들면 폴리실리콘 또는 도핑된 반도체를 포함하는 금속형 특징을 포함하는 임의의 물질을 더 포함할 수 있다. 실시예에서, 도전성 영역(C)은, 알루미늄, 카드뮴, 크롬, 코발트, 구리, 금, 철, 망간, 수은, 몰리브덴, 니켈, 팔라듐, 레늄, 루테늄, 은, 주석, 티타늄, 바나듐, 및 아연(산소 또는 다른 유형의 리간드 등 양이온에 연결될 수 있음), 또는 이들의 조합을 포함하는 그룹으로부터 선택되는 재료를 추가적으로 또는 대안으로 포함할 수 있다.
일 실시예에 따르면, 스위칭 영역(S)은, 예를 들면 페로브스카이트, 모트 절연체, 전하 교환 절연체, 및 앤더슨(Anderson) 디스오더 절연체 등의 임의의 천이 금속 산화물(TMO) 재료를 포함할 수 있다.
특정 실시예에서, 스위칭 영역(S) 재료는, 단지 몇몇 예를 들면, 프라에시디움 칼슘, 망간산염, 및 프라에시디움 란탄 망간산화물을 포함하는 망간산염계, Cr 도핑된 스트론튬 티타네이트, 란타늄 티타네이트 등의 페로브스카이트, 및 산화니켈, 산화코발트, 산화철, 산화이트륨 등의 스위칭 재료를 포함할 수 있다. 특히, 불완전 d 및 f 오비탈 껍질을 갖는 원소들을 포함하는 산화물은 스위칭 영역(S) 재료로서 이용하기에 충분한 저항 스위칭 특성을 나타낼 수 있다. 일 실시예에서, CES 소자는 전기 주조 없이 제조될 수 있다.
다른 구현예는 청구된 요지를 벗어나지 않고 스위칭 영역(S) 재료로서 다른 천이 금속 화합물을 채용할 수 있다. 예를 들면, {M(chxn)2Br}Br2(여기서, M은 Pt, Pd, 또는 Ni를 포함할 수 있고, chxn은 1R, 2R-사이클로헥산디아민을 포함함) 및 다른 이러한 금속 착물이 청구된 요지를 벗어나지 않고 이용될 수 있다.
일 양태에서, CEM은 천이 금속 산화물(TMO) 가변 저항 물질인 물질을 포함할 수 있지만, 이들은 단지 예시적인 것으로 이해되어야 하며, 청구되는 내용을 한정하고자 하는 것은 아니다.
특정 구현예는 다른 가변 저항 재료를 이용할 수도 있다. 산화니켈(NiO)이 상기 하나의 특정 TMO로서 개시되어 있지만, NiO 재료는 또한 외인성 리간드로 도핑될 수도 있으며, 이는 가변 저항 특성을 안정화시킬 수 있다. 특히, 본 출원에 개시된 NiO 가변 저항 재료는 NiO(Cx)로 나타날 수 있는 탄소함유 리간드를 포함할 수 있다. 여기에서, 당업자는, 임의의 특정 탄소 함유 리간드 및 탄소함유 리간드와 NiO의 임의의 특정 조합에 대해 단순히 원자가 밸런싱에 의해 x의 값을 판정할 수 있다. 다른 특정 예에서, 외인성 리간드로 도핑된 NiO는 NiO(Lx)로서 표현될 수 있으며, 여기서 Lx는 리간드 원소 또는 화합물이고, x는 NiO의 1유닛에 대한 리간드의 유닛들의 수를 나타낸다. 당업자는, 임의의 특정 리간드 및 리간드와 NiO 또는 임의의 다른 천이 금속의 임의의 특정 조합에 대해 단순히 원자가 밸런싱에 의해 x의 값을 판정할 수 있다.
또한, 단자는 도전성 영역(C)과 동일한 재료를 포함해서, 도전성 영역(C)이 단자로서 기능할 수 있다. 단자 및 도전성 영역(C)에 대한 재료가 동일하지 않은 실시예에서, CES 소자의 성능에 달리 영향을 미칠 수 있는 경계 상호작용 또는 표면 결함의 영향을 줄이기 위해 상이한 재료들이 매칭되는 것이 바람직하다. 예를 들면, CES 및 단자의 전기적 특성(예를 들면 도전성) 및/또는 화학적 성질(예를 들면 열팽창 계수 매칭)이 CES 소자의 동작에 부정적인 영향을 주지 않는 것을 보장하도록 재료들을 매칭시켜야 한다.
단자들간에 특정 전압(Vapplied)을 인가하고 CEM을 통해 특정 전류 밀도(Japplied)를 드라이빙함으로써, CES 소자는, 서로 다른 인가 전압(Vapplied) 및 전류 밀도(Japplied)에 따라, 도전성(로우 임피던스 및 로우 커패시턴스) 메모리 상태(이후 "LIS")로부터 절연성(하이 임피던스 및 하이 커패시턴스) 메모리 상태(이후 "HIS")로 천이할 수 있거나, 또는 HIS로부터 LIS로 천이할 수 있다.
이 맥락에서, LIS 및 HIS는 상대적인 용어이며, 컨덕턴스, 임피던스, 또는 커패시턴스에 대한 임의의 특정 양 또는 값에 특정적이지 않음을 이해해야 한다. 예를 들면, 제1 메모리 상태에서, CES 소자는 제2 메모리 상태에 있는 동안보다 더 도전성(또는 덜 절연성)일 수 있다.
또한, CES 소자는 "본 온(born on)"되어, 이에 따라 제조(예를 들면, 증착)될 때, CES 소자는 LIS에 있다.
이하 도 2를 참조하면, 이것은 장치(102)에서 신경망을 구현하기 위한 시스템(100)의 블록도를 나타낸다. 상술한 바와 같이, 인공 신경망은 장치(102)에 마련되고 적어도 하나의 크로스포인트 어레이(104)를 이용하여 형성된다. 크로스포인트 어레이(104)는 적어도 하나의 행 신호 라인 및 적어도 하나의 열 신호 라인을 포함하고, 적어도 하나의 신경망 노드(뉴런)는 행 신호 라인과 열 신호 라인의 교차부에 마련된다. 신경망 노드는, 각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자를 이용하여 저장된 연관된 가중치를 갖는다. 각각의 신경망 노드에 대한 가중치는 원격 서버(110)에서 행해지는 신경망 트레이닝을 통해 얻어진다. 가중치는 장치(102)의 통신 모듈(110)에 제공되거나 그에 의해 다운로드될 수 있다. 장치(102)는, 제어 회로(112)를 이용해서, 특정 적용(예를 들면, 음성 인식, 문자/이미지 인식 등)을 위한 인공 신경망을 구현하기 위해 수신된 가중치를 크로스포인트 어레이(104)에 프로그래밍할 방법을 결정할 수 있다. 크로스포인트 어레이(104)가 수신된 가중치에 의거하여 프로그래밍된 경우, 입력(106)(예를 들면, 전압, 전류, 또는 이미지, 사운드 등을 나타내는 다른 신호)이 장치(102)에 입력될 수 있다. 입력(106)은 크로스포인트 어레이(104)에 의해 처리되고 적어도 하나의 출력(108)이 생성된다.
따라서, 재구성 가능한 인공 신경망을 구현하기 위한 장치가 제공되고, 이 장치는, 크로스포인트 어레이, 통신 모듈, 및 제어 회로를 포함하고, 상기 크로스포인트 어레이는, 적어도 하나의 행 신호 라인 및 적어도 하나의 열 신호 라인, 적어도 하나의 신경망 노드 - 각각의 신경망 노드는 행 신호 라인과 열 신호 라인의 교차부에 마련되고, 각각의 신경망 노드는 연관된 가중치를 가짐 - , 및 상기 연관된 가중치를 저장하기 위해 각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자 - 각각의 비휘발성 메모리 소자는 제1 임피던스 상태와 제2 임피던스 상태 사이에서 스위칭 가능함 - 를 포함하고, 상기 통신 모듈은, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되고, 상기 제어 회로는, 상기 신경망 노드에서 상기 가중치를 구현하도록, 각각의 신경망 노드에 마련된 상기 복수의 비휘발성 메모리 소자 각각을 상기 제1 임피던스 상태 또는 상기 제2 임피던스 상태로 스위칭하도록 구성된다.
크로스포인트 어레이는, 인공 신경망(ANN)의 각각의 신경망 노드에 대해, 제1 스텝, 즉 가중치와 입력값/신호의 내적 계산을 합산하는 제1 스텝을 행하는데 이용될 수 있다. 실시예에서, 장치는, 제2 스텝, 즉 제1 스텝으로부터의 합을 신경망 노드에 대한 활성화 함수에의 입력으로서 이용하는 활성화 함수의 계산을 행하기 위한 추가의 회로를 포함할 수 있다.
용어 "비휘발성 메모리 소자"는, 본 명세서에서 용어 "NVM 소자", "비휘발성 메모리 디바이스", "비휘발성 랜덤 액세스 메모리", "비휘발성 메모리 셀", "비휘발성 메모리 어레이", 또는 "비휘발성 메모리"와 상호 교환 가능하게 이용된다. 실시예에서, 비휘발성 메모리 소자는, 스위칭 및 도전이 어느 방향(예컨대, 바이폴라 스위칭)으로도 발생할 수 있는 비극성 NVM 소자일 수 있고, 용어 "비휘발성 메모리 소자"는 본 명세서에서 용어 "비극성 NVM 소자"와 상호 교환 가능하게 이용된다. 실시예에서, 비휘발성 메모리 소자는 멤리스터, 저항 랜덤 액세스 메모리(ReRAM), 상 변화 메모리(PCM), 및/또는 스핀-전달 토크 자기 랜덤 액세스 메모리(STT-MRAM 또는 STT-RAM)일 수 있고, 용어 "비휘발성 메모리 소자"는 본 명세서에서 이러한 유형의 메모리들 중 임의의 것을 지칭하는데 이용된다. 실시예에서, 비휘발성 메모리 소자는 상관 전자 스위치(CES)이고, "비휘발성 메모리 소자"는 용어 "상관 전자 재료 메모리", "CeRAM", "상관 전자 스위치", "CES", 또는 "바이폴라 스위칭 비휘발성 메모리 소자"와 상호 교환 가능하게 이용된다.
실시예에서, 통신 모듈은 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되고, 통신 모듈은, 각각의 신경망 노드에 대한 가중치를 특정하는 적어도 하나의 데이터 패킷을 획득하고, 상기 데이터 패킷으로부터, 각각의 신경망 노드에 대한 가중치를 추출하도록 구성되고, 상기 제어 회로는, 각각의 신경망 노드에 대한 가중치를 이용하여, 각각의 신경망 노드에서의 각각의 비휘발성 메모리 소자가 상기 제1 임피던스 상태 또는 상기 제2 임피던스 상태로 스위칭되어야 하는지를 결정하고, 상기 결정에 응답해서, 각각의 비휘발성 메모리 소자에 대한 프로그래밍 신호를 생성한다.
제어 회로는 쓰기 회로를 포함할 수 있고, 쓰기 회로는, 각각의 비휘발성 메모리 소자에 대해 생성된 프로그래밍 신호를 수신하고, 상기 생성된 프로그래밍 신호에 따라 각각의 비휘발성 메모리 소자를 드라이빙하도록 구성된다.
도 3은 적어도 하나의 크로스포인트 어레이(10)를 이용하여 구현된 인공 신경망(ANN)의 회로도를 나타낸다. 크로스포인트 어레이(10)는 적어도 하나의 행 신호 라인(18) 및 적어도 하나의 열 신호 라인(20)을 포함한다. 도시된 예에서, 크로스포인트 어레이는 복수의 행 신호 라인(18) 및 복수의 열 신호 라인(20)을 포함한다. 상술한 바와 같이, ANN은 입력 레이어를 포함하고, 이에 따라 크로스포인트 어레이(10)는 하나 이상의 입력 노드(14)를 포함한다. 각각의 입력 노드(14)는 열 신호 라인(18)에 연결된다. ANN은 출력 레이어를 포함하고, 이에 따라 크로스포인트 어레이는 하나 이상의 출력 노드(16)를 포함하며, 각 출력 노드는 열 신호 라인(18)에 연결된다. (현재 도시된) 실시예에서, 크로스포인트 어레이(10)는 복수의 입력 노드(14) 및 단일 출력 노드(16)를 포함할 수도 있다. 출력 노드(16)의 수는 ANN에 의해 구현되는 적용에 따를 수 있다. 예를 들면, 영숫자 문자 인식(즉, 각각의 문자마다 하나씩)을 구현하는 ANN에는 많은 출력 노드(16)가 필요할 수 있다. 다른 예에서, ANN이 특정 이미지 인식 적용, 예를 들면 얼굴 인식을 구현할 경우, 단일 출력 노드(16)로 충분할 수 있다.
크로스포인트 어레이(10)는 행 신호 라인(18)과 열 신호 라인(20)의 각각의 교차부에 마련된 신경망 노드(12)를 포함한다. 도시된 예에서, 크로스포인트 어레이(10)는 M×N 어레이이고 복수의 신경망 노드(12)(R11 내지 Rmn으로 라벨링됨)를 포함한다. 실시예에서, M 및 N은 상이한 정수이고, 다른 실시예에서 M과 N은 동일하다. 신경망 노드(12)와 연관된 가중치를 저장하도록, 각각의 신경망 노드(12)에는 복수의 프로그래밍 가능한 비휘발성 메모리 소자가 마련된다. 각각의 비휘발성 메모리 소자는 제1 임피던스 상태와 제2 임피던스 상태 사이에서 스위칭 가능하며, 선택되는 상태는 신경망 노드(12)에 저장되는 가중치에 따른다. 비휘발성 메모리 소자가 상관 전자 스위치일 경우에, 실시예들에서, 단지 2개의 가능한 임피던스 상태, 즉 하이 임피던스 상태(HIS) 또는 로우 임피던스 상태(LIS)가 있을 수 있다. 각 신경망 노드(12)는 신경망 노드 입력(22)(본 명세서에서 "입력 에지" 또는 "인-에지"라고도 함) 및 신경망 노드 출력(24)(본 명세서에서 "출력 에지" 아웃-에지"라고도 함)을 포함한다.
따라서, 실시예들에서, 크로스포인트 어레이는, 크로스포인트 어레이에 대한 입력 신호를 수신하기 위한 적어도 하나의 입력 단자, 및 상기 입력 신호를 상기 크로스포인트 어레이의 적어도 하나의 신경망 노드를 통해 통과시킴으로써 생성되는 출력 신호를 제공하기 위한 적어도 하나의 출력 단자를 더 포함할 수 있다. 신경망 노드는 상기 입력 신호를 수신하고, 상기 신경망 노드의 연관된 가중치와 상기 입력 신호를 승산하고, 가중 신호를 출력할 수 있다.
또는, 크로스포인트 어레이는, 복수의 행 신호 라인 및 복수의 열 신호 라인, 복수의 신경망 노드 - 각각의 신경망 노드는 행 신호 라인과 열 신호 라인의 교차부에 마련되고, 각각의 신경망 노드는 연관된 가중치를 가짐 - , 및 각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자 - 각각의 비휘발성 메모리 소자는 제1 임피던스 상태와 제2 임피던스 상태 사이에서 스위칭 가능함 - 를 포함할 수 있다.
크로스포인트 어레이는, 상기 크로스포인트 어레이에 대한 입력 신호를 수신하도록 각각 구성되는 복수의 입력 단자(또는 입력 노드들), 및 입력 신호를 상기 크로스포인트 어레이의 신경망 노드를 통해 통과시킴으로써 생성되는 출력 신호를 제공하기 위한 적어도 하나의 출력 단자(또는 출력 노드)를 더 포함할 수 있다. 크로스포인트 어레이는, 출력 신호를 각각 제공하는 복수의 출력 단자를 포함할 수 있다.
각각의 신경망 노드는 2개 이상의 입력 신호를 수신하고, 상기 연관된 가중치를 각각의 입력 신호와 승산해서 가중 신호를 생성하고, 합산된 가중 신호를 나타내는 합산 신호를 출력할 수 있다. 승산은 가중치와 입력 신호의 내적 계산일 수 있다. 크로스포인트 어레이의 적어도 하나의 출력 단자는 상기 복수의 신경망 노드 중 하나 이상의 노드로부터 합산 신호를 수신하고, 합산 신호들을 조합해서 상기 출력 신호를 제공하도록 구성될 수 있다.
크로스포인트 어레이(10)는, 각 입력 노드(14)에서 전압(전압값)(예를 들면, V1 내지 Vm)을 수신하도록 구성될 수 있고, 각각의 출력 노드(16)에서 출력 전류(전류값)(예를 들면, I1 내지 In)를 출력하도록 구성될 수 있다. 다른 실시예에서, 크로스포인트 어레이(10)는 전류를 수신하고 전압을 출력하도록 구성될 수도 있다.
실시예에서, 크로스포인트 어레이(10)의 각각의 신경망 노드(12)는 크로스포인트 어레이 모듈을 포함할 수 있다(도 4a 및 도 4b, 도 3에 도시되지는 않았으며 이하에서 보다 상세히 설명됨). 크로스포인트 어레이 모듈은 N개의 행 신호 라인 및 M개의 열 신호 라인의 어레이를 포함할 수 있고, 행 및 열 신호 라인의 각각의 교차부에 비휘발성 메모리 소자가 마련된다. 각각의 크로스포인트 어레이 모듈 내에서, 신경망 노드 입력(22)(인-에지)으로부터 신경망 노드 출력(24)(아웃 에지)으로의 직접 경로, 및 신경망 노드 입력(22)으로부터 신경망 노드 출력(24)으로의 적어도 하나의 간접 경로가 있다. 직접 경로는 단일 또는 최소 수의 NVM 소자를 통과하고, 즉 크로스포인트 어레이의 선택된 셀/부분을 통과한다. 간접 경로는 크로스포인트 어레이의 선택되지 않은 셀 또는 부분을 통한 스니크 누설 경로이다. 이 실시예에서, 크로스포인트 어레이 모듈의 직접 및 스니크 누설 경로들을 이용하여, 디지털 방식으로 인코딩될 수 있는 저항(R) 값의 범위를 생성한다.
실시예에서, 각각의 신경망 노드는 크로스포인트 어레이 모듈을 포함할 수 있고, 각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자는 크로스포인트 어레이 모듈에 배치된다.
따라서, 실시예에서, 본 기술은, 저항 매트릭스의 다중 비트 디지털 인코딩을 달성할 수 있는 "계층화된" 완전 연결된 크로스포인트 어레이 아키텍처를 제공한다. 크로스포인트 어레이(10)를 횡절하는 스니크 누설 경로는, 저항 매트릭스의 전디지털 인코딩을 가능하게 할 수 있는 등가 저항값의 선형 증가를 제공할 수 있다. 이 실시예는 아래에서 도 4a 내지 도 7을 참조해서 보다 상세하게 설명한다.
대안적인 실시예에서, 크로스포인트 어레이(10)의 각각의 신경망 노드(12)는, 신경망 노드 입력(22)과 신경망 노드 출력(24) 사이에서 병렬 연결로 배치된 2개 이상의 비휘발성 메모리 소자를 포함하는 크로스포인트 어레이 모듈을 포함할 수 있다(도 3에서는 도시생략). 이 실시예에서, 각 신경망 노드(12) 내의 비휘발성 메모리 소자의 병렬 연결은, 디지털 방식으로 인코딩될 수 있는 컨덕던스(G) 값의 범위를 생성하는데 이용된다. 따라서, 실시예들에서, 본 기술들은, 비휘발성 메모리 소자들의 병렬 연결이 어드미턴스/컨덕턴스 매트릭스의 전디지털 인코딩을 제공할 수 있는 다중 소자 병렬 연결 크로스포인트 어레이를 제공한다. 이 실시예는 아래에서 도 8 및 도 9를 참조해서 보다 상세하게 설명한다.
실시예에서, 각각의 신경망 노드와 연관된 가중치는 음의 가중치이다. 실시예에서, 제1 임피던스 상태는 하이 임피던스 상태이고, 제2 임피던스 상태는 로우 임피던스 상태이다.
비휘발성 메모리 소자는 바이폴라 스위칭 비휘발성 메모리 소자일 수 있다. 실시예에서, 비휘발성 메모리 소자는 멤리스터, 저항 랜덤 액세스 메모리(ReRAM), 상 변화 메모리(PCM), 및 스핀 전달 토크 자기 랜덤 액세스 메모리(STT-MRAM) 중 어느 하나이다. 바람직하게는, 비휘발성 메모리 소자는 상관 전자 스위치(CES)이다.
장치의 통신 모듈은, 장치 외부에서 트레이닝되는 인공 신경망 모델로부터, 예를 들면 원격 서버 또는 클라우드로부터 장치로 크로스포인트 어레이의 각 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성될 수 있다.
본 기술의 ANN이 서로 다른 적용들에 대해 재구성 가능하기 때문에, 통신 모듈은, 크로스포인트 어레이의 각각의 신경망 노드에 대한 추가 가중치를 특정하는 추가 데이터를 수신하도록 구성될 수 있으며, 추가 가중치는, 장치 외부에서 트레이닝되는 머신 학습 기술 또는 통계적 모델로부터 얻어진다. 추가 가중치는 장치 외부에서 트레이닝되는 추가 ANN 모델로부터, 또는 은닉 마르코프 모델(hidden Markov model, HMM) 등의 다른 통계 모델로부터 획득될 수 있다.
장치는 통신 모듈에 연결되고 수신 데이터를 저장하도록 구성된 데이터 저장소를 포함할 수 있다. 수신 데이터를 저장함으로써, 필요할 때 각각의 ANN 적용에 대한 가중치가 로컬 데이터 저장소로부터 검색될 수 있기 때문에, 장치가 서로 다른 적용들간에서 더 쉽게 전환될 수 있다.
장치는, 특정의 인공 신경망이 장치에 구현되어야 함을 지시하는 명령을 수신하도록 구성될 수 있다. 명령에 응답해서, 제어 회로는, 데이터 저장소로부터, 수신된 명령에서 지시된 인공 신경망에 대응하는 데이터를 검색하고, 검색된 데이터를 이용하여 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 추출하도록 구성될 수 있다.
전디지털 다중 비트 저항 매트릭스
상술한 바와 같이, 크로스포인트 어레이(10)의 각각의 신경망 노드(12)는 크로스포인트 어레이 모듈을 포함할 수 있다. 도 4a는 각각의 신경망 노드(12)에 마련된 예시적인 크로스포인트 어레이 모듈의 회로도를 나타낸다. 이 실시예에서, 크로스포인트 어레이 아키텍처(10)는, 크로스포인트 에레이의 스니크 누설 경로를 이용함으로써 선형 스케일의 저항값들을 생성하는데 이용된다. 선형 스케일의 저항값들을 생성하면, 각각의 인공 신경망에 대한 실제 저항값(또는 가중치)을 크로스포인트 어레이에 디지털 방식으로 인코딩 및 프로그래밍할 수 있다.
도 4a에 도시된 크로스포인트 어레이 모듈은 행 신호 라인(18') 및 열 신호 라인(20')의 2×2 어레이를 포함하고, 행과 열 신호 라인의 각각의 교차부에는 비휘발성 메모리 소자(26a-26d)가 마련된다. 도 4a에 도시된 크로스포인트 어레이 모듈은 단지 예시이며, 실시예에서, 2개 이상의 행 신호 라인 및/또는 2개 이상의 열 신호 라인을 포함할 수 있다. 실시예에서, 행 신호 라인과 열 신호 라인의 수는 동일하지 않을 수 있다(즉, 크로스포인트 어레이 모듈은 비정사각형 어레이 또는 행 및 열 신호 라인들을 포함할 수 있다). 실시예에서, 크로스포인트 어레이 모듈은 "n"행 및 "m"열 신호 라인의 어레이를 포함할 수 있다(n 및 m은 정수이고, n 및 m은 동일하거나 상이할 수 있다). 이러한 어레이를 n×m 차원 크로스포인트 어레이라고 한다.
신경망 노드(12)의 크로스포인트 어레이 모듈 내에, 신경망 노드 입력(22)으로부터 신경망 노드 출력(24)으로의 직접 경로가 있다. 직접 경로는 비휘발성 메모리 소자(26a)를 통한다. 크로스포인트 어레이 모듈에서, 신경망 노드 입력(22)으로부터 신경망 노드 출력(24)으로의 적어도 하나의 간접 경로(스니크 누설 경로)가 있다. 간접 스니크 누설 경로는 비휘발성 메모리 소자(26b), 이어서 비휘발성 메모리 소자(26c), 이어서 비휘발성 메모리 소자(26d)를 통한다. 즉, 스니크 누설 경로는 비휘발성 메모리 소자(26b, 26c 및 26d)의 직렬 연결을 통한다. 이 실시예에서, 크로스포인트 어레이 모듈의 직접 및 스니크 누설 경로를 이용하여, 디지털 방식으로 인코딩될 수 있는 저항 값(R)의 범위를 생성할 수 있다.
도 4a에서, 크로스포인트 어레이 모듈을 통한 등가 저항은 신경망 노드 입력(22)과 신경망 노드 출력(24) 사이에서 측정된다. 이 크로스포인트 어레이 모듈에서, 입력(22) 및 출력(24)만이 크로스포인트 어레이(10)의 다른 부분들에 연결되지만, 더 많은 입력 및 출력을 포함하는 다른 배치가 가능할 수 있다.
도 4b는 도 4a의 2×2 크로스포인트 어레이 모듈의 등가 회로 표현을 나타낸다. 신경망 노드 입력(22)과 신경망 노드 출력(24) 사이의 등가 저항은 도 4b에서 Req로 라벨링되며 본질적으로 튜플이다. 비휘발성 메모리 소자(예를 들면, CES 소자)가 로우 저항 상태(LRS 또는 LIS)에 있으면, 그 저항은 "R"로 라벨링된다. 비휘발성 메모리 소자가 하이 저항 상태(HRS 또는 HIS)에 있으면, 크로스포인트 어레이 모듈을 통하는 도전 경로의 저항은 LRS보다 적어도 두 자릿수 이상 높으므로 "무한대"로 근사되거나, 또는 유효하게 개방 회로이다.
이용 NVM 소자가 CES(상관 전자 스위치)일 경우, HRS와 LRS는 적어도 두 자릿수 떨어진다. 다른 유형의 NVM 소자가 이용되는 실시예에서, HRS와 LRS 사이의 떨어짐이 그다지 크지 않을 수 있다. 이러한 경우, 직렬 트랜지스터는 "개방 회로" 저항에 대한 프록시로서 이용될 수도 있다. 다음 식에서, 변수 "R"은 LRS 저항을 나타내는 데 이용된다.
Figure 112019002628552-pct00004
Figure 112019002628552-pct00005
Figure 112019002628552-pct00006
Figure 112019002628552-pct00007
식 4
본 기술의 실시예에서, 목적은, 저항/임피던스 값과 디지털 방식으로 인코딩된 표시 사이의 선형 매핑을 달성하는 것이다. 따라서, 이하에서 설명되는 일부 실시예는 분수의 가중치를 이용하지 않는다(즉, 상기 식 4의 (c)에 나타난 바와 같음). 그러나, 선형성 요건이 덜 엄격한 대안적인 실시예에서, 분수의 가중치가 또한 이용될 수 있다. 본 기술은 설계 및 이용 단순화의 수단으로서 결과의 선형성을 이용한다(또한 실시예들에서, 분수의 가중치를 이용할 수도 있다).
따라서, 직접 및 스니크 저항 경로는 선형 저항 스케일을 가능하게 한다. 2×2 크로스포인트 어레이 모듈의 저항은 단일 비트로 디지털 방식으로 인코딩될 수 있다(실시예들에서, 비선형 저항 떨어짐-0.75R-은 디지털 방식으로 인코딩될 수 없으므로 무시될 수 있다. 다만, 실시예들에서, 비선형 저항 떨어짐(들)이 이용될 수 있다).
더 큰 크로스포인트 어레이 모듈을 이용하여 더 큰/넓은 저항 범위를 제공하고 그에 따라 다중 비트 저항 코드를 제공할 수 있다. 도 5는 각 신경망 노드(12)에 마련된 예시적인 4×4 크로스포인트 어레이 모듈의 회로도를 나타낸다. 도 5에 도시된 크로스포인트 어레이 모듈은 행 신호 라인(18') 및 열 신호 라인(20' 및 21')의 4×4 어레이를 포함하며, 비휘발성 메모리 소자가 행과 열 신호 라인들의 각각의 교차부에 마련된다. 4×4 크로스포인트 어레이 모듈은, 도 4a의 2×2 크로스포인트 어레이 모듈을 빌딩 블록으로 이용하여 구성될 수 있다. 점선 박스는 4개의 2×2 크로스포인트 어레이 모듈(50a 내지 50d)을 나타낸다. 각각의 2×2 빌딩 블록(50a 내지 50d)은 도 4a 및 도 4b를 참조해서 상술한 2×2 크로스포인트 어레이 모듈과 마찬가지로 동작한다. 예를 들면, 빌딩 블록(50b)에서, 비휘발성 메모리 소자(R01)를 통한 빌딩 블록(50b)을 통한 직접 경로 및 비휘발성 메모리 소자(R00, R10 및 R11)를 통한 간접 경로가 있다.
신경망 노드 입력(22)으로부터 신경망 노드 출력(24)까지 크로스포인트 어레이 모듈을 통하는 2개의 직접 경로가 있다. 4×4 크로스포인트 어레이 모듈을 통과하는 하나의 직접 경로는 빌딩 블록(50a)의 비휘발성 메모리 소자(R01)를 통과하고, 다른 직접 경로는 빌딩 블록(50a)의 비휘발성 메모리 소자(R00, R10 및 R11)를 통과한다. 따라서, 직접 경로는 값 R 또는 3R을 가질 수 있다. 통과되는 빌딩 블록의 수에 따라 4×4 크로스포인트 어레이 모듈을 통과하는 많은 간접 스니크 누설 경로가 있다. 예를 들면, 3R은 빌딩 블록(50b)의 R00, R10 및 R11만을 통과함으로써 달성될 수 있고, 5R은, 빌딩 블록(50b)을 통한 등가 저항이 R이고, 50c가 3R이고, 50d가 R인 경우에 달성될 수 있다. 따라서, 4×4 크로스포인트 어레이 모듈은 신경망 노드 입력(22)과 신경망 노드 출력(24) 사이에 다음 등가 저항을 제공할 수 있다.
Figure 112019002628552-pct00008
식 5
이전과 마찬가지로, 여기에서 "R"은 NVM 소자의 LRS 저항의 값을 지시한다.
따라서, 4×4 크로스포인트 어레이 모듈의 직접 및 스니크 저항 경로는 디지털 방식으로 3비트로 인코딩할 수 있는 선형 저항 스케일을 가능하게 했다(실시예에서, 비선형 저항 떨어짐은 디지털 형태로 쉽게 인코딩될 수 없으므로 무시할 수 있다. 그러나 실시예에서는 비선형 저항 분리(들)가 이용될 수도 있다).
완전히 파퓰레이트된 3비트 인코딩 공간을 제공하려면 8×8 크로스포인트 어레이 모듈이 필요할 수 있다. 이 경우, 저항 스케일은 다음 값으로 구성될 것이다(여기서 "R"은 NVM 소자의 LRS 저항의 값을 지시함).
Figure 112019002628552-pct00009
식 6
도 5의 복합 4×4 크로스포인트 어레이 모듈은, 추가의 금속의 레이어를 필요로 하지 않고, 2개의 금속 레이어(즉, 열 신호 라인을 위한 하나의 금속 레이어 및 행 신호 라인을 위한 하나의 금속 레이어)를 이용하여 구성될 수 있다. 도 5에 나타난 바와 같이, 행 신호 라인(18')과 짝수 열 신호 라인(20')은 연속하고, 홀수 열 신호 라인(21')은 불연속이다. 불연속 열 신호 라인(21')은 크로스포인트 어레이 모듈에서 각각의 비휘발성 메모리 소자의 쓰기를 가능하게 하는데 이용된다.
실시예에서, 각 신경망 노드의 크로스포인트 어레이 모듈은 N개의 행 신호 라인 및 M개의 열 신호 라인으로 형성된 어레이를 포함할 수 있고, 복수의 비휘발성 메모리 소자 중 하나는 N개의 행 신호 라인과 M개의 열 신호 라인의 각각의 교차부에 마련된다. 각각의 크로스포인트 어레이 모듈은, 신경망 노드 입력으로부터 신경망 노드 출력으로의 직접 경로, 및 신경망 노드 입력으로부터 상기 신경망 노드 출력으로의 적어도 하나의 간접 경로를 포함할 수 있다.
특정 실시예에서, 크로스포인트 어레이 모듈은 크로스포인트 어레이에서 선형 스케일의 임피던스 값을 디지털 방식으로 인코딩하는데 이용될 수 있다.
신경망 노드 입력과 신경망 노드 출력 사이의 적어도 하나의 간접 경로는 직렬 연결의 2개 이상의 비휘발성 메모리 소자로 형성될 수 있다.
크로스포인트 어레이는 전압을 전류로 변환하도록 구성될 수 있다. 이러한 실시예에서, 크로스포인트 어레이의 각 입력 단자는 전압을 수신하도록 구성될 수 있고, 크로스포인트 어레이의 각 출력 단자는 전류를 출력하도록 구성될 수 있다.
도 6은, 각각의 비휘발성 메모리 소자를 (인공 신경망에 대해 필요한 가중치를 저장하기 위해) 필요한 임피던스 상태로 드라이빙하기 위한 제어 회로를 포함하는 예시적인 4×4 크로스포인트 어레이 모듈의 회로도를 나타낸다. 제어 회로는 열 신호 라인을 선택하기 위한 수단(예를 들면, 트랜지스터(54, 56)) 및 열 신호 라인들을 함께 연결하기 위한 수단(예를 들면, 단락 트랜지스터(52a-52d))을 포함할 수 있다.
홀수(불연속) 열(21')에 연결된 비휘발성 메모리 소자의 쓰기는, 우선 짝수 열(20')의 비휘발성 메모리 소자를 HRS(또는 HIS)로 쓰기함으로써 달성되며, 이는 유효하게 이들이 "개방 회로" 상태에 있음을 의미한다. 다음으로, 홀수 열(21')을 (단락 트랜지스터(52a 내지 52d)를 통해) 이웃하는 짝수 열(20')에 단락시키고, 홀수 열(21')의 비휘발성 메모리 소자는 짝수 열(20')을 통해 쓰기된다. 단락 트랜지스터(52a 내지 52d)는 최소 전압 열화로 이를 달성할 수 있다. 홀수 열(21')에 연결된 비휘발성 메모리 소자가 필요한 임피던스 상태로 쓰기/프로그래밍되면, 홀수 열(21')은 짝수 열(20')로부터 연결 해제된다. 짝수 열(20')에 연결된 비휘발성 메모리 소자는 이번에는 필요한 임피던스 상태로 다시 쓰기된다(특정 비휘발성 메모리 소자는 적절한 행 및 열 신호 라인을 선택함으로써 선택됨).
쓰기는 일반적으로 모든 열 신호 라인(20', 21')을 로우로 하고 행 신호 라인(18')을 "세트" 또는 "리셋" 전압으로 바이어스함으로써 달성된다. 스니크 누설 경로에의 우발적인 쓰기는, 다수의 CES 소자를 직렬로 함으로써 제한되는 컴플라이언스 전류 요건으로 인해 방지된다.
단락 트랜지스터(52a 내지 52d)는 크로스포인트 어레이 모듈 내의 제3 금속 레이어를 이용해서 라우팅될 수 있어, 크로스포인트 어레이 "섀도우" 내에 존재할 수도 있고 추가 영역을 소비하지 않을 수 있다. 따라서, 영역의 벌크는 크로스포인트 어레이에 의해 지배적일 수 있다. 이러한 배치는 CES 기반 크로스포인트 어레이의 매우 영역 효율적인 구현을 달성한다.
실시예에서, 각각의 비휘발성 메모리 소자를 스위칭 트랜지스터(58)에 연결할 수 있다. 실시예에서, 비휘발성 메모리 소자를 HRS(또는 HIS)로 드라이빙하는 대신에, 스위칭 트랜지스터(58)는, 비휘발성 메모리 소자를 크로스포인트 어레이 모듈로부터 연결 해제하는데, 즉 크로스포인트 어레이 모듈을 통한 특정 경로를 비활성화하는데 이용될 수 있다. 그러나, 이것에는 추가 회로가 필요하다.
따라서, 실시예에서, 각각의 크로스포인트 어레이 모듈의 N개의 행 신호 라인 각각은 상기 크로스포인트 어레이 모듈을 가로질러 연장되는 연속 도전성 채널로 형성되고, 각각의 크로스포인트 어레이 모듈의 M개의 열 신호 라인 각각은, 상기 크로스포인트 어레이 모듈을 가로질러 연장되는 연속 도전성 채널로 각각 형성되는 복수의 연속 열 신호 라인, 및 다수의 공간적으로 분리된 도전성 채널로 각각 형성되는 복수의 불연속 열 신호 라인을 포함한다. 각각의 불연속 열 신호 라인(예를 들면, 도 6의 열 신호 라인(21'))을 형성하는 다수의 도전성 채널은 단일 금속 레이어로 형성될 수 있다.
복수의 연속 열 신호 라인은 상기 복수의 불연속 열 신호 라인과 교호(交互) 배치로 인터레이싱될 수 있다.
제어 회로는, 연속 열 신호 라인을 선택하는 것, 및 생성된 프로그래밍 신호에 따라, 선택된 상기 연속 라인에 연결된 각각의 비휘발성 메모리 소자를 드라이빙하는 것에 의해, 연속 열 신호 라인과 전기 통신하는 각각의 크로스포인트 어레이 모듈의 각각의 비휘발성 메모리 소자를 드라이빙하도록 구성될 수 있다.
제어 회로는, 인접하는 연속 열 신호 라인에 연결된 각각의 비휘발성 메모리를 제1 임피던스 상태로 쓰기하는 것, 상기 불연속 열 신호 라인을 이웃하는 연속 열 신호 라인에 연결하는 것, 상기 생성된 프로그래밍 신호에 따라, 상기 불연속 라인에 연결된 각각의 비휘발성 메모리 소자를 드라이빙하는 것, 및 인접하는 상기 연속 열 신호 라인으로부터 상기 불연속 열 신호 라인을 연결 해제하는 것에 의해, 상기 연속 열 신호 라인과 전기 통신하는 각각의 비휘발성 메모리 소자를 드라이빙하도록 구성될 수 있다.
도 7은, 직렬로 배치된 비휘발성 메모리 소자로 형성된 신경망에 가중치를 구현하거나 프로그래밍하는 예시적인 스텝들을 도시하는 플로우도이다. 이 프로세스는 원격 서버(110)로부터 크로스포인트 어레이(104)에 대한 가중치를 수신함으로써 개시된다(스텝 S90). 제어 회로(112)는, 수신된 가중치를 이용하여, 각각의 신경망 노드에서 수신된 가중치를 구현하도록 크로스포인트 어레이(104)의 각각의 비휘발성 메모리(NVM) 소자가 어떠한 임피던스 상태(LIS 또는 HIS)로 될 필요가 있는지를 결정할 수 있다. 이는, 각각의 신경망 노드, 즉 신경망 노드에서의 크로스포인트 어레이 모듈에 대해 개별적으로 행해질 수 있다. 스텝 S94에서, (신경망 노드의) 크로스포인트 어레이 모듈의 모든 짝수 열이 하이 임피던스 상태로 쓰기된다. 크로스포인트 어레이 모듈의 각 홀수 열은 인접하는 짝수 열에 연결되어 홀수 열을 단락시킨다(스텝 S96). 행 및 홀수 열이 선택되고(스텝 S98), 선택된 행 및 열에 연결된 비휘발성 메모리 소자는 필요한 임피던스 상태로 쓰기/프로그래밍된다(스텝 S100). 제어 회로(112)는, 홀수 열에 연결된 모든 비휘발성 메모리 소자가 쓰기되었는지를 체크할 수 있고(스텝 S102), 쓰기되지 않았을 경우, 이들 NVM 소자 모두가 쓰기될 때까지 선택 및 쓰기 프로세스가 반복된다. 이어서, 홀수 열은 이웃하는 짝수 열과 연결 해제된다(스텝 S104). 이제 짝수 열에 연결된 NVM 소자는 행 및 짝수 열을 선택함으로써 한번에 하나씩 쓰기될 수 있다(스텝 S106). 선택된 NVM 소자가 필요한 임피던스 상태로 쓰기된다(스텝 S108). 제어 회로(112)는 짝수 열에 연결된 모든 비휘발성 메모리 소자가 쓰기되었는지를 체크할 수 있고(스텝 S110), 쓰기되지 않았을 경우, 이들 NVM 소자 모두가 쓰기될 때까지 선택 및 쓰기 프로세스가 반복된다. 이어서 프로세스가 종료된다. 짝수 열이 쓰기되는 동안, 홀수 열의 NVM 소자는 쓰기 회로와의 연결이 효과적으로 연결 해제되기 때문에 교란되지 않는다.
상술한 기술은 저항 스케일을 증가시키기 위해 더 큰 크로스포인트 어레이를 제공하는데 이용될 수 있다. 예를 들면, 각각의 신경망 노드(12)는, 저항 스케일을 8레벨 스케일(즉, Req = R, 3R, 5R, 7R, 9R, 11R, 13R, 15R)로 증가시킬 수 있는 8×8 크로스포인트 어레이 모듈을 포함할 수 있어, 완전히 파퓰레이팅된 3비트 인코딩을 달성한다. 마찬가지로, 32×32 크로스포인트 어레이 모듈은 16 레벨 스케일 및 완전히 파퓰레이팅된 4비트 인코딩을 달성할 수 있다. 저항 스케일의 각 저항값은 인접하는 저항값과 2R만큼 균등하게 떨어진다. 이것은, CES 소자 프로세스 편차로 인한 임의의 영향을 완화할 수 있게 한다. 크로스포인트 어레이는, 간단히, 적절한 크기의 각각의 신경망 노드의 크로스포인트 어레이 모듈을 이용함으로써, 임의의 크기로 필요한 인코딩을 위해 구성될 수 있다. 예를 들면 256×256 인공 신경망을 구현하기 위해서는, 256×256 크로스포인트 어레이가 필요하다. 3비트 저항 인코딩이 필요할 경우, 각 신경망 노드는 8×8 크로스포인트 어레이 모듈을 포함한다. 신경망이 256개의 입력 및 256개의 출력을 포함하면, 결과적인 신경망은 총 216개(256×256)의 신경망 노드를 갖게 될 것이다. 각 신경망 노드(앞에서 언급한 바와 같이)는, 3비트 저항 인코딩을 제공하기 위해 8×8 크로스포인트 어레이 모듈을 필요로 한다. 따라서, 256×256 크로스포인트 어레이를 이용하여 구현되고 3비트 인코딩을 제공하는 신경망은 1024×1024 NVM 소자의 어레이를 유효하게 포함한다(즉, 1MB의 메모리).
전디지털 멀티 비트 저항 매트릭스
도 3을 참조해서 상술한 바와 같이, 크로스포인트 어레이(10)의 각각의 신경망 노드(12)는, 신경망 노드 입력(22)과 신경망 노드 출력(22) 사이에 병렬 연결로 배치된 2개 이상의 비휘발성 메모리 소자를 포함하는 크로스포인트 어레이 모듈을 포함할 수 있다. 도 8은 예시적인 3×3 크로스포인트 어레이(60)의 회로도를 나타내고, 여기서 각각의 신경망 노드(12)는 병렬 비휘발성 메모리 소자로 형성된 크로스포인트 어레이 모듈을 포함한다. 각각의 신경망 노드(12)에서의 비휘발성 메모리 소자들의 병렬 연결은, 디지털 방식으로 인코딩될 수 있는 컨덕턴스(G) 값들의 범위를 생성하는데 이용된다.
따라서, 실시예에서, 각각의 신경망 노드는 크로스포인트 어레이 모듈을 포함하고, 각 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자들은 크로스포인트 어레이 모듈에 배치된다. 각각의 크로스포인트 어레이 모듈은, 신경망 노드 입력과 신경망 노드 출력 사이에 병렬 연결로 배치된 2개 이상의 비휘발성 메모리 소자를 포함한다.
크로스포인트 어레이 모듈은 크로스포인트 어레이에 선형 스케일의 컨덕턴스 값들을 디지털 방식으로 인코딩할 수 있다. 크로스포인트 어레이는 전류를 전압으로 변환하도록 구성될 수 있다. 이 경우, 크로스포인트 어레이의 각각의 입력 단자는 전류를 수신하도록 구성될 수 있고, 크로스포인트 어레이의 각각의 출력 단자는 전압을 출력하도록 구성될 수 있다.
크로스포인트 어레이(60)는 3개의 열 신호 라인(20) 및 3개의 행 신호 라인(18)으로 형성된다. 각각의 신경망 노드(12)에는, 신경망 노드 입력(22)과 신경망 노드 출력(24) 사이에서 병렬로 연결된 적어도 2개의 비휘발성 메모리 소자가 있다. 도시된 예에서, 각각의 신경망 노드(12)에서 각 크로스포인트 어레이 모듈에 2개의 비휘발성 메모리 소자(62a, 62b)가 있다. 각각의 비휘발성 메모리 소자(62a, 62b)는 스위칭 트랜지스터(64a, 64b)에 연결된다. 스위칭 트랜지스터는 특정 비휘발성 메모리 소자가 신경망 노드(12)의 크로스포인트 어레이 모듈에 대해 연결되거나 연결 해제되는 것을 가능하게 한다.
특정 ANN에 대한 가중치를 저장하기 위해, 각각의 비휘발성 메모리 소자는 행 및 열 전압을 프로그래밍함으로써 어드레싱된다. 모든 비휘발성 메모리 소자가 병렬이기 때문에, 크로스포인트 어레이의 각 행은, 하나의 열의 복수의 NVM 소자로부터 단일 NVM 소자의 선택을 가능하게 하여, 우발적인 쓰기를 방지하는 액세스 디바이스에 연결된다. 액세스 디바이스는 일반적으로 프로그래밍 중 NVM 소자 선택에만 이용된다. 실시예에서, 액세스 디바이스는 동일한 행(18)의 다수의 신경망 노드(12)에 걸쳐 공유될 수 있다.
따라서, 실시예에서, 적어도 하나의 액세스 디바이스가 크로스포인트 어레이의 해당 또는 각 행 신호 라인에 연결될 수 있고, 액세스 디바이스는, 행 신호 라인에 연결된 복수의 비휘발성 메모리 소자 중 하나를 선택하도록 구성된다.
제어 또는 쓰기 회로는, 액세스 디바이스를 이용하여, 복수의 비휘발성 메모리 소자 중 하나를 선택하고, 생성된 프로그래밍 신호에 따라, 선택된 비휘발성 메모리 소자를 드라이빙함으로써, 비휘발성 메모리를 드라이빙하도록 구성될 수 있다.
실시예에서, 각각의 비휘발성 메모리 소자는 스위칭 디바이스에 연결될 수 있고, 쓰기 회로는, 액세스 디바이스를 이용하여, 복수의 비휘발성 메모리 소자 중 하나를 선택하고, 선택된 비휘발성 메모리 소자를 통한 경로를 활성화하도록 선택된 비휘발성 메모리 소자에 연결된 스위칭 디바이스를 제어하도록 구성된다.
이 3×3 크로스포인트 어레이의 NVM 소자들의 병렬 배치는, {R, R/2, R/3..., R/8} 떨어진 등가 저항을 제공한다. 이것은 비선형 저항 스케일이다. 그러나, 등가 컨덕턴스 스케일은 {G, 2G, 3G.., 8G}와 같이 선형적으로 증가한다. 따라서, 이 실시예에서, 그것은 3비트 스케일로 디지털 방식으로 인코딩되는 도전성이다.
도시된 실시예에서, ANN은 전압을 전류로 변환하도록 구성되어, 입력 노드(14)가 전압값을 수신하고 출력 노드(16)가 전류값을 출력한다.
도 9는 병렬로 배치된 비휘발성 메모리 소자로 형성된 신경망에 가중치를 구현하거나 프로그램하기 위한 예시적인 스텝들을 도시하는 플로우도이다. 프로세스는 원격 서버(110)로부터 크로스포인트 어레이(104)에 대한 가중치를 수신함으로써 개시된다(스텝 S200). 제어 회로(112)는, 수신된 가중치를 이용하여, 각각의 신경망 노드에서 수신된 가중치를 구현하도록 크로스포인트 어레이(104)의 각각의 비휘발성 메모리(NVM) 소자가 어떠한 임피던스 상태(LIS 또는 HIS)로 될 필요가 있는지를 결정할 수 있다(스텝 S202). 이는 각각의 신경망 노드, 즉 신경망 노드에서의 크로스포인트 어레이 모듈에 대해 개별적으로 행해질 수 있다. 스텝 S204에서, 크로스포인트 어레이(104)의 행 및 열이 선택된다. 액세스 디바이스는 선택된 행의 복수의 병렬 NVM 소자들의 NVM 소자들 중 하나를 선택하는데 이용된다(스텝 S206). 실시예에서, NVM 소자가 HRS 상태로 프로그래밍될 필요가 있을 경우, HRS로 프로그래밍되거나 전체적으로 선택 해제/비활성화될 수 있다. 따라서, 스텝 S208에서, 제어 회로는, 선택된 NVM 소자가 HRS로 쓰기되어야 하는지를 결정할 수 있고, 그렇다면, 선택된 NVM 소자를 통한 경로를 비활성화할 수 있다(스텝 S210). 대안으로, 제어 회로는 NVM 소자를 필요한 상태(LRS 또는 HRS)로 쓰기할 수 있다(스텝 S212). 제어 회로(112)는 크로스포인트 어레이 내의 모든 비휘발성 메모리 소자가 쓰기되었는지를 체크할 수 있고(스텝 S214), 쓰기되어 있지 않을 경우, NVM 소자의 모두가 쓰기 또는 비활성화될 때까지 선택 및 쓰기 프로세스가 반복된다. 이어서, 프로세스가 종료된다.
도 10은 크로스포인트 어레이에서 병렬 또는 직렬 연결된 NVM 소자를 이용하여 구현된 인공 신경망에 음의 가중치가 프로그래밍되는 방법을 도시하는 회로도이다. 여기서, 신경망 노드에서 구현/프로그래밍되는 각각의 음의 가중치에 대해, 음의 전압이 필요하다. 이것은 디지털-아날로그 컨버터(DAC) 내에서 음의 레퍼런스 전압을 이용함으로써 행해질 수 있다. 신경망 노드에서의 음의 가중치에 대해, 신경망 노드가 마련되는 열 신호 라인은, 양의 신호가 무한대 가중치 또는 HRS로 프로그래밍되게 프로그래밍된다. 음의 입력에 필요한 가중치가 제공된다. 따라서, 음의 입력은 열에서 전류를 감산하는 식으로 작용한다.
따라서, 실시예에서, 쓰기 회로는, 액세스 디바이스를 이용하여, 복수의 비휘발성 메모리 소자 중 하나를 선택하고, 생성된 프로그래밍 신호에 따라 선택된 비휘발성 메모리 소자를 구동함으로써, 비휘발성 메모리를 드라이빙하도록 구성될 수 있다. 실시예에서, 각각의 비휘발성 메모리 소자는 스위칭 디바이스에 연결될 수 있으며, 쓰기 회로는, 액세스 디바이스를 이용하여, 복수의 비휘발성 메모리 소자 중 하나를 선택하고, 선택된 비휘발성 메모리 소자를 통한 경로를 활성화하도록 선택된 비휘발성 메모리 소자에 연결된 스위칭 디바이스를 제어하도록 구성될 수 있다.
따라서, 본 기술은 인공 신경망을 제공하기 위해 2개의 다른 저항 상태를 갖는 NVM 소자를 이용한다. 상술한 기술들은 멤리스터, ReRAM 및/또는 CES 소자를 NVM 소자로서 이용할 수 있다. CES 소자를 이용하면 저항값을 발생시키는 프로세스 편차를 완화하는데 특히 유용할 수 있다. 이전의 접근법은 저항값의 개개의 편차에 영향을 받기 쉬운 반면, 본 기술에서는, 연속되는 저항(또는 컨덕턴스) 값들 사이에 적어도 200% 차이가 있다.
본 기술은, 간단히, 각각의 적용에 대한 가중치를 획득하고 이를 크로스포인트 어레이에 구현함으로써, 상이한 적용에 이용될 수 있는 인공 신경망을 쉽게 제공한다. NVM 소자는 즉석에서 프로그래밍될 수 있으므로, 다른 적용에 대해 동일한 신경망을 다시 프로그래밍할 수 있다. 예를 들면, 여기에 설명된 ANN은 저전력 단일 키워드 스피드 트리거, 보안 카메라를 위한 간단한 얼굴 탐지, 또는 물리적 또는 가상 버튼의 대안으로서의 음성 활성화 UI에 이용될 수 있다.
본 기술은 가중치 스토리지(신경망에서 중요한 정적 파워 누출 소스일 수 있음)를 제공하고 전압을 전류로 변환함으로써 신경망 처리를 제공한다. 처리 중에는 액티브 스위칭이 발생하지 않으므로 에너지 효율적 ANN으로 된다.
실시예에서, 본 기술의 ANN은 ANN 가중치를 더 조정하는데 이용될 수 있다. 예를 들면, 크로스포인트 어레이는, 잠재적으로 각 신경망 노드의 가중치를 최적화하는데 이용될 수 있는 하드웨어 피드백 모듈에 연결될 수 있다. 이는, 크로스포인트 어레이에서(예를 들면 각 신경망 노드 출력에서) 전류를 측정하고, 측정된 전류를 ANN으로 피드해서 각 신경망 노드에 저장되는 가중치를 조정함으로써 달성될 수 있다.
실시예에서, 본 기술의 ANN은 복수의 크로스포인트 어레이를 포함할 수 있으며, 여기서 각각의 크로스포인트 어레이는 ANN의 하나의 레이어를 제공한다. 예를 들면, 제1 크로스포인트 어레이는 전압을 전류로 변환하는 컨덕턴스 매트릭스를 구현할 수 있고, 제2 크로스포인트 어레이는 전류를 전압으로 변환하는 저항 매트릭스를 구현할 수 있다. 제1 크로스포인트 어레이의 출력은 제2 크로스포인트 어레이의 입력을 제공할 수 있어, ANN이 전압을 2개의 레이어에 걸쳐 전압-전류-전압으로 변환한다.
실시예에서, 장치는 복수의 크로스포인트 어레이를 포함할 수 있으며, 각각의 크로스포인트 어레이는 다중 레이어(또는 계층화된) 인공 신경망에서 하나의 레이어를 제공한다. 도 11a는 크로스포인트 어레이를 이용하여 구현된 계층화된 인공 신경망의 회로도를 도시하고, 도 11b는 도 11a의 개략적인 버전을 나타낸다.
폭넓게 말하면, 여기에 기술된 기술들은 인공 신경망(ANN)에서 가중치와 입력값의 내적 계산을 구현한다. 상술한 바와 같이, 인공 신경망(ANN) 또는 계층화된 ANN 내의 각 ANN 레이어는 적어도 하나의 인-에지(즉, ANN으로의 입력) 및 적어도 하나의 아웃-에지(즉, ANN의 출력)를 갖는다. ANN의 인-에지(들)와 아웃-에지(들) 사이에는 다수의 신경망 노드가 있다. 각 신경망 노드는 그 자신의 인-에지 및 아웃-에지를 갖는다. 본 명세서에서 이용된 용어 "내적"은 ANN의 각각의 인-에지와 연관된 가중치와, 특정 에지를 신경망 노드에 연결시키는 입력 전압의 크기를 승산하는 것을 말한다. 일반적으로, 각각의 신경망 노드는 다수의 이러한 입력에 의해 드라이빙되는 다수의 이러한 에지를 가질 수 있다. 각 신경망 노드에서의 계산은 2개의 다른 스텝으로 발생할 수 있다. 제1 스텝은, 도 1b에 나타낸 바와 같이, 가중치와 입력 크기의 곱을 합산하는 것을 포함한다(내적 또는 승산 누적). 제2 스텝은 이 합산을 신경망 노드의 활성화 함수에 대한 입력으로서 이용하는 것을 포함한다. 활성화 함수는 계산의 비선형 부분이며 "스쿼싱 함수(squashing function)"로 간주될 수 있다. 신경망 노드의 활성화 함수는 특정 입력을 받은 노드의 출력을 정의한다. 일부 경우에, 활성화 함수가 바이너리일 수 있어, 노드는 파이어 또는 파이어가 아닐 수 있다. 활성화 또는 스쿼싱 함수는 ReLU(Rectified Linear Unit), 쌍곡선 접선(시그모이드) 함수, 헤비사이드 계단 함수(Heaviside step function), 구분적 선형 함수(piece-wise linear function) 등과 같은 복수의 형태를 취할 수 있다. 가장 간단한 경우, 스쿼싱 함수는 바이너리 함수일 수 있고, 가중치와 입력의 곱의 합이 0보다 작을 경우, 신경망 노드는 "0"(또는, 로우 전압)을 출력하고, 그렇지 않으면 "1"(또는 하이 전압)을 출력한다.
본 기술은 ANN 내에서 내적(승산 및 누적) 계산의 저전력 및 에너지 효율적인 구현을 제공한다. 도 11a 및 도 11b는, 입력 레이어(입력 I0... I3을 포함) 및 출력 레이어(출력 O20... O23을 포함)의 2개의 레어어를 포함하는 ANN의 일반화된 개략도를 나타낸다. 일반적으로, 신경망 노드의 다수의 은닉 레이어가 있을 수 있다. 일반성을 잃지 않고, 도 11a 및 도 11b는 2개의 레이어 ANN을 나타내서, 본 기술의 크로스포인트 어레이가 다중 레이어 ANN을 제공하는데 어떻게 이용될 수 있는지를 나타낸다. 크로스포인트 어레이는 입력값(예를 들면, 입력 I0... I3)을 취하고, 어레이의 각각의 신경망 노드에 마련된 비휘발성 메모리 소자에 의해 저장된 가중치를 이용하여 내적 계산을 행한다.
ANN에의 입력(예를 들면, 입력 I0... I3)은 전압값 또는 전류값으로서 제공될 수 있다. 전압 입력의 경우, 크로스포인트 어레이는, 각 노드에 마련된 NVM 소자에 의해 저장된 가중치를 이용하여 입력을 중간 출력(O*)으로 변환한다. 전류 입력의 경우, 중간 출력(O*)은 전압값이다. 이들 출력(O*)은 도 11a의 삼각형으로 나타낸 활성화 함수(즉, 스쿼싱 함수 또는 계산의 비선형 부분)를 구현하는 회로에의 입력으로서 제공된다. 가장 단순한 경우, 이 스쿼싱 또는 활성화 함수는, 위에서 설명한 바와 같이, 바이너리 함수, 예를 들면, 스텝 함수일 수 있다. ANN의 제1 레이어에 대한 최종 출력은 도 11a에서 O<1, 2, 3, 4>로서 표시되며, 이 출력은 도시한 바와 같이 ANN의 제2 레이어에 대한 입력을 형성한다.
실시예에서, 크로스포인트 어레이는 인공 신경망의 각 레이어를 형성할 수 있다. 대안으로, 크로스포인트 어레이는 인공 신경망의 하나 이상의(단 반드시 전부는 아니더라도) 레이어를 형성할 수 있다. 각각의 경우에, 하나의 크로스포인트 어레이의 출력은, 인공 신경망의 후속 레이어에의 입력으로서 공급되기에 앞서 활성화 함수 계산을 구현하는 회로에 피드된다.
따라서, 실시예에서, 장치의 크로스포인트 어레이는 인공 신경망에서 제1 레이어를 형성하는 제1 크로스포인트 어레이이고, 제1 크로스포인트 어레이는 복수의 입력(I1p) 및 복수의 출력(O1q)을 포함한다. 장치는 인공 신경망에서 제2 레이어를 형성하는 제2 크로스포인트 어레이를 포함할 수 있으며, 제2 크로스포인트 어레이는 복수의 입력(I2r) 및 적어도 하나의 출력(O2s)을 포함한다. 이 실시예에서, 장치는, 각 레이어의 각 출력 에지에 대한 활성화 함수를 구현하도록, ANN의 각 레이어간에 추가 회로를 포함할 수 있다.
제1 크로스포인트 어레이의 출력(O1q)은 제2 크로스포인트 어레이의 입력들(I2r)에 연결될 수 있다. 실시예에서, 제1 크로스포인트 어레이는 선형 스케일의 컨덕턴스 값들을 디지털 방식으로 인코딩하고, 제2 크로스포인트 어레이는 선형 스케일의 임피던스 값들을 디지털 방식으로 인코딩한다. 실시예에서, 제1 크로스포인트 어레이는 전압을 전류로 변환하고, 제2 크로스포인트 어레이는 전류를 전압으로 변환한다.
상술한 바와 같이, 장치는 IoT(internet of things) 디바이스 등의 제한된 리소스 디바이스일 수 있다.
본 기술은, 행 신호 라인과 열 신호 라인의 교차부에 위치하는 적어도 하나의 신경망 노드를 포함하는 크로스포인트 어레이로 재구성 가능한 인공 신경망을 구현하는 방법을 제공하고, 이 방법은, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하는 스텝, 각각의 신경망 노드에서 특정된 가중치를 구현하도록, 각각의 신경망 노드에 마련된 복수의 비휘발성 메모리 소자를 필요한 임피던스 상태로 스위칭하는 스텝, 및 상기 비휘발성 메모리 소자를 이용해서, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 저장하는 스텝을 포함한다.
본 기술은, 재구성 가능한 인공 신경망을 구현하는 시스템을 제공하고, 이 시스템은, 상술한 장치, 및 인공 신경망 모델을 트레이닝하도록 구성되는 원격 서버를 포함하고, 상기 장치는, 상기 원격 서버로부터 상기 장치의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성된다.
당업자는, 상술한 내용이 최선의 모드 및 적절히 본 기술을 행하는 다른 모드로 여겨지는 것을 설명하였지만, 본 기술은 이 바람직한 실시예의 설명에서 개시된 특정 구성 및 방법에 제한되어서는 안됨을 이해할 것이다. 당업자는, 현재의 기술들이 광범위한 적용을 갖고, 실시예가 첨부된 청구범위에서 정의된 바와 같은 임의의 발명 개념에서 벗어나지 않고 광범위한 변형을 취할 수 있음을 인식할 것이다.

Claims (44)

  1. 재구성 가능한 인공 신경망을 구현하기 위한 장치로서,
    크로스포인트 어레이(crosspoint array),
    통신 모듈, 및
    제어 회로를 포함하고,
    상기 크로스포인트 어레이는,
    적어도 하나의 행 신호 라인 및 적어도 하나의 열 신호 라인,
    적어도 하나의 신경망 노드 - 각각의 신경망 노드는 행 신호 라인과 열 신호 라인의 교차부에 마련되고, 각각의 신경망 노드는 연관된 가중치를 가짐 -,
    상기 연관된 가중치를 저장하기 위해 각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자 - 각각의 비휘발성 메모리 소자는 제1 임피던스 상태와 제2 임피던스 상태 사이에서 스위칭 가능함 -,
    상기 크로스포인트 어레이에 대한 입력 신호를 수신하기 위한 적어도 하나의 입력 단자, 및
    상기 입력 신호를 상기 크로스포인트 어레이의 적어도 하나의 신경망 노드를 통해 통과시킴으로써 생성되는 출력 신호를 제공하기 위한 적어도 하나의 출력 단자를 포함하고,
    상기 통신 모듈은, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되고,
    상기 제어 회로는, 상기 신경망 노드에서 상기 가중치를 구현하도록, 각각의 신경망 노드에 마련된 상기 복수의 비휘발성 메모리 소자 각각을 상기 제1 임피던스 상태 또는 상기 제2 임피던스 상태로 스위칭하도록 구성되는, 장치.
  2. 제1항에 있어서,
    각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되는 상기 통신 모듈은,
    각각의 신경망 노드에 대한 가중치를 특정하는 적어도 하나의 데이터 패킷을 획득하고,
    상기 데이터 패킷으로부터, 각각의 신경망 노드에 대한 가중치를 추출하도록 구성되고,
    상기 제어 회로는,
    각각의 신경망 노드에 대한 가중치를 이용하여, 각각의 신경망 노드에서의 각각의 비휘발성 메모리 소자가 상기 제1 임피던스 상태 또는 상기 제2 임피던스 상태로 스위칭되어야 하는지를 결정하고,
    상기 결정에 응답해서, 각각의 비휘발성 메모리 소자에 대한 프로그래밍 신호를 생성하도록 구성되는, 장치.
  3. 제2항에 있어서,
    상기 제어 회로는 쓰기 회로를 포함하고,
    상기 쓰기 회로는,
    각각의 비휘발성 메모리 소자에 대해 생성된 프로그래밍 신호를 수신하고,
    상기 생성된 프로그래밍 신호에 따라 각각의 비휘발성 메모리 소자를 드라이빙하도록 구성되는, 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 신경망 노드는 상기 입력 신호를 수신하고, 상기 신경망 노드의 연관된 가중치와 상기 입력 신호를 승산하고, 가중 신호(weighted signal)를 출력하는, 장치.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 크로스포인트 어레이는,
    복수의 행 신호 라인 및 복수의 열 신호 라인,
    복수의 신경망 노드 - 각각의 신경망 노드는 행 신호 라인과 열 신호 라인의 교차부에 마련되고, 각각의 신경망 노드는 연관된 가중치를 가짐 - , 및
    각각의 신경망 노드에 마련된 복수의 프로그래밍 가능한 비휘발성 메모리 소자 - 각각의 비휘발성 메모리 소자는 제1 임피던스 상태와 제2 임피던스 상태 사이에서 스위칭 가능함 - 를 포함하는, 장치.
  7. 제6항에 있어서,
    상기 크로스포인트 어레이는,
    상기 크로스포인트 어레이에 대한 입력 신호를 수신하도록 각각 구성되는 복수의 입력 단자, 및
    상기 입력 신호를 상기 크로스포인트 어레이의 신경망 노드를 통해 통과시킴으로써 생성되는 출력 신호를 제공하기 위한 적어도 하나의 출력 단자를 더 포함하는, 장치.
  8. 제7항에 있어서,
    상기 크로스포인트 어레이는, 출력 신호를 각각 제공하는 복수의 출력 단자를 포함하는, 장치.
  9. 제7항에 있어서,
    각각의 신경망 노드는 2개 이상의 입력 신호를 수신하고, 상기 연관된 가중치를 각각의 입력 신호와 승산해서 가중 신호를 생성하고, 합산된 가중 신호를 나타내는 합산 신호를 출력하는, 장치.
  10. 제9항에 있어서,
    적어도 하나의 출력 단자는 상기 복수의 신경망 노드 중 하나 이상으로부터 합산 신호를 수신하고, 합산 신호들을 조합해서 상기 출력 신호를 제공하도록 구성되는, 장치.
  11. 제3항에 있어서,
    각각의 신경망 노드는 크로스포인트 어레이 모듈을 포함하고, 각각의 신경망 노드에 마련된 상기 복수의 프로그래밍 가능한 비휘발성 메모리 소자는 크로스포인트 어레이 모듈에 배치되는, 장치.
  12. 제11항에 있어서,
    각각의 신경망 노드의 상기 크로스포인트 어레이 모듈은 N개의 행 신호 라인 및 M개의 열 신호 라인으로 형성되는 어레이를 포함하고, 상기 복수의 비휘발성 메모리 소자 중 하나는 상기 N개의 행 신호 라인과 상기 M개의 열 신호 라인의 각각의 교차부에 마련되는, 장치.
  13. 제12항에 있어서,
    각각의 크로스포인트 어레이 모듈은,
    신경망 노드 입력으로부터 신경망 노드 출력으로의 직접 경로, 및
    상기 신경망 노드 입력으로부터 상기 신경망 노드 출력으로의 적어도 하나의 간접 경로를 포함하는, 장치.
  14. 제13항에 있어서,
    상기 크로스포인트 어레이 모듈은 선형 스케일의 임피던스 값들을 디지털 방식으로 인코딩하는, 장치.
  15. 제13항 또는 제14항에 있어서,
    상기 신경망 노드 입력과 상기 신경망 노드 출력 사이의 상기 적어도 하나의 상기 간접 경로는 직렬 연결의 2개 이상의 비휘발성 메모리 소자로 형성되는, 장치.
  16. 제13항 또는 제14항에 있어서,
    상기 크로스포인트 어레이는 전압을 전류로 변환하도록 구성되고, 상기 크로스포인트 어레이의 각각의 입력 단자는 전압을 수신하도록 구성되고, 상기 크로스포인트 어레이의 각각의 출력 단자는 전류를 출력하도록 구성되는, 장치.
  17. 제13항 또는 제14항에 있어서,
    상기 크로스포인트 어레이는 전류를 전압으로 변환하도록 구성되고, 상기 크로스포인트 어레이의 각각의 입력 단자는 전류를 수신하도록 구성되고, 상기 크로스포인트 어레이의 각각의 출력 단자는 전압을 출력하도록 구성되는, 장치.
  18. 제13항 또는 제14항에 있어서,
    각각의 크로스포인트 어레이 모듈의 상기 N개의 행 신호 라인 각각은 상기 크로스포인트 어레이 모듈을 가로질러 연장되는 연속 도전성 채널로 형성되고,
    각각의 크로스포인트 어레이 모듈의 상기 M개의 열 신호 라인 각각은,
    상기 크로스포인트 어레이 모듈을 가로질러 연장되는 연속 도전성 채널로 각각 형성되는 복수의 연속 열 신호 라인, 및
    다수의 공간적으로 분리된 도전성 채널로 각각 형성되는 복수의 불연속 열 신호 라인을 포함하는, 장치.
  19. 제18항에 있어서,
    상기 복수의 연속 열 신호 라인은 상기 복수의 불연속 열 신호 라인과 교호(交互) 배치로 인터레이싱되는, 장치.
  20. 제19항에 있어서,
    상기 제어 회로는,
    연속 열 신호 라인을 선택하는 것, 및
    상기 생성된 프로그래밍 신호에 따라, 상기 선택된 연속 라인에 연결된 각각의 비휘발성 메모리 소자를 드라이빙하는 것에 의해,
    상기 연속 열 신호 라인과 전기 통신하는 각각의 크로스포인트 어레이 모듈의 각각의 비휘발성 메모리 소자를 드라이빙하도록 구성되는, 장치.
  21. 제19항에 있어서,
    상기 제어 회로는,
    인접하는 연속 열 신호 라인에 연결된 각각의 비휘발성 메모리를 제1 임피던스 상태로 쓰기하는 것,
    상기 불연속 열 신호 라인을 이웃하는 연속 열 신호 라인에 연결하는 것,
    상기 생성된 프로그래밍 신호에 따라, 상기 불연속 라인에 연결된 각각의 비휘발성 메모리 소자를 드라이빙하는 것, 및
    상기 인접하는 연속 열 신호 라인으로부터 상기 불연속 열 신호 라인을 연결 해제하는 것에 의해,
    상기 불연속 열 신호 라인과 전기 통신하는 각각의 비휘발성 메모리 소자를 드라이빙하도록 구성되는, 장치.
  22. 삭제
  23. 제11항에 있어서,
    각각의 크로스포인트 어레이 모듈은 신경망 노드 입력과 신경망 노드 출력 사이에 병렬 연결로 배치된 2개 이상의 비휘발성 메모리 소자를 포함하는, 장치.
  24. 제23항에 있어서,
    상기 크로스포인트 어레이 모듈은 선형 스케일의 컨덕턴스 값들을 디지털 방식으로 인코딩하는, 장치.
  25. 제23항 또는 제24항에 있어서,
    상기 크로스포인트 어레이는 전류를 전압으로 변환하도록 구성되고, 상기 크로스포인트 어레이의 각각의 입력 단자는 전류를 수신하도록 구성되고, 상기 크로스포인트 어레이의 각각의 출력 단자는 전압을 출력하도록 구성되는, 장치.
  26. 제23항 또는 제24항에 있어서,
    상기 크로스포인트 어레이는 전압을 전류로 변환하도록 구성되고, 상기 크로스포인트 어레이의 각각의 입력 단자는 전압을 수신하도록 구성되고, 상기 크로스포인트 어레이의 각각의 출력 단자는 전류를 출력하도록 구성되는, 장치.
  27. 제23항 또는 제24항에 있어서,
    상기 크로스포인트 어레이의 해당 또는 각각의 행 신호 라인에 연결된 적어도 하나의 액세스 디바이스를 더 포함하고, 상기 액세스 디바이스는, 상기 행 신호 라인에 연결된 상기 복수의 비휘발성 메모리 소자 중 하나를 선택하도록 구성되는, 장치.
  28. 제27항에 있어서,
    상기 쓰기 회로는,
    상기 액세스 디바이스를 이용하여, 상기 복수의 비휘발성 메모리 소자 중 하나를 선택하는 것, 및
    상기 생성된 프로그래밍 신호에 따라, 상기 선택된 비휘발성 메모리 소자를 드라이빙하는 것에 의해,
    비휘발성 메모리를 드라이빙하도록 구성되는, 장치.
  29. 제28항에 있어서,
    각각의 비휘발성 메모리 소자는 스위칭 디바이스에 연결되고,
    상기 쓰기 회로는,
    상기 액세스 디바이스를 이용하여, 상기 복수의 비휘발성 메모리 소자 중 하나를 선택하고,
    상기 선택된 비휘발성 메모리 소자를 통한 경로를 활성화하도록, 상기 선택된 비휘발성 메모리 소자에 연결된 스위칭 디바이스를 제어하도록 구성되는, 장치.
  30. 제1항 내지 제3항 중 어느 한 항에 있어서,
    각각의 신경망 노드와 연관된 가중치는 음(negative)의 가중치인, 장치.
  31. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 임피던스 상태는 하이(high) 임피던스 상태인, 장치.
  32. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 임피던스 상태는 하이 임피던스 상태이고 상기 제2 임피던스 상태는 로우 임피던스 상태인, 장치.
  33. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 비휘발성 메모리 소자는 비극성 비휘발성 메모리 소자인, 장치.
  34. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 비휘발성 메모리 소자는 멤리스터, 저항 랜덤 액세스 메모리(ReRAM), 스핀-전달 토크 자기 랜덤 액세스 메모리(STT-MRAM), 및 상-변화 메모리(PCM) 중 어느 하나인, 장치.
  35. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 비휘발성 메모리 소자는 상관 전자 스위치(CES)인, 장치.
  36. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 통신 모듈은, 상기 장치 외부에서 트레이닝되는 인공 신경망 모델로부터 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되는, 장치.
  37. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 통신 모듈은, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 추가 가중치를 특정하는 추가 데이터를 수신하도록 구성되고, 상기 추가 가중치는 상기 장치 외부에서 트레이닝되는 머신 학습 모델로부터 획득되는, 장치.
  38. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 통신 모듈에 연결되고 상기 수신된 데이터를 저장하도록 구성되는 데이터 저장소를 더 포함하는, 장치.
  39. 제38항에 있어서,
    특정의 인공 신경망이 상기 장치에 구현되어야 함을 지시(indication)하는 명령(instruction)을 수신하도록 구성되는, 장치.
  40. 제39항에 있어서,
    상기 제어 회로는,
    상기 데이터 저장소로부터, 상기 수신된 명령에서 지시된 상기 인공 신경망에 대응하는 데이터를 검색하고,
    상기 검색된 데이터를 이용하여 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 추출하도록 구성되는, 장치.
  41. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 크로스포인트 어레이는 상기 인공 신경망에서 제1 레이어를 형성하는 제1 크로스포인트 어레이이고, 상기 제1 크로스포인트 어레이는 복수의 입력(I1p) 및 복수의 출력(O1q)을 포함하고,
    상기 복수의 출력(O1q)은 상기 인공 신경망의 제2 레이어에의 입력으로서 제공되는, 장치.
  42. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 장치는 IoT(internet of things) 디바이스인, 장치.
  43. 제1항 내지 제3항 중 어느 한 항에 기재된 장치를 이용하여 재구성 가능한 인공 신경망을 구현하는 방법으로서,
    상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하는 스텝,
    각각의 신경망 노드에서 상기 특정된 가중치를 구현하도록, 각각의 신경망 노드에 마련된 복수의 비휘발성 메모리 소자를 필요한 임피던스 상태로 스위칭하는 스텝, 및
    상기 비휘발성 메모리 소자를 이용해서, 상기 크로스포인트 어레이의 각각의 신경망 노드에 대한 가중치를 저장하는 스텝을 포함하는, 방법.
  44. 재구성 가능한 인공 신경망을 구현하는 시스템으로서,
    제1항 내지 제3항 중 어느 한 항에 기재된 장치, 및
    인공 신경망 모델을 트레이닝하도록 구성되는 원격 서버를 포함하고,
    상기 장치는, 상기 원격 서버로부터 상기 장치의 각각의 신경망 노드에 대한 가중치를 특정하는 데이터를 수신하도록 구성되는, 시스템.
KR1020197000717A 2016-07-07 2017-06-14 인공 신경망 KR102489258B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1611857.2A GB2552014B (en) 2016-07-07 2016-07-07 Reconfigurable artificial neural networks comprising programmable non-volatile memory elements
GB1611857.2 2016-07-07
PCT/GB2017/051734 WO2018007783A1 (en) 2016-07-07 2017-06-14 An artificial neural network

Publications (2)

Publication Number Publication Date
KR20190022622A KR20190022622A (ko) 2019-03-06
KR102489258B1 true KR102489258B1 (ko) 2023-01-18

Family

ID=56890846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197000717A KR102489258B1 (ko) 2016-07-07 2017-06-14 인공 신경망

Country Status (5)

Country Link
US (1) US11334788B2 (ko)
KR (1) KR102489258B1 (ko)
CN (1) CN109416760B (ko)
GB (1) GB2552014B (ko)
WO (1) WO2018007783A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2552014B (en) 2016-07-07 2020-05-13 Advanced Risc Mach Ltd Reconfigurable artificial neural networks comprising programmable non-volatile memory elements
US10128438B2 (en) 2016-09-09 2018-11-13 Arm Limited CEM switching device
US10103327B2 (en) 2016-09-14 2018-10-16 Arm Limited CEM switching device
US10121967B2 (en) 2016-11-29 2018-11-06 Arm Limited CEM switching device
US10922608B2 (en) * 2017-03-08 2021-02-16 Arm Ltd Spiking neural network
US11461620B2 (en) * 2017-07-05 2022-10-04 Samsung Electronics Co., Ltd. Multi-bit, SoC-compatible neuromorphic weight cell using ferroelectric FETs
CA3020884A1 (en) * 2018-01-24 2019-07-24 Wai Kit Ricky Fok Parallel residual neural network architechture and system and method for trainning a residual neural network
US11636316B2 (en) * 2018-01-31 2023-04-25 Cerfe Labs, Inc. Correlated electron switch elements for brain-based computing
US10740434B1 (en) 2018-04-20 2020-08-11 Perceive Corporation Reduced dot product computation circuit
US11586910B1 (en) 2018-04-20 2023-02-21 Perceive Corporation Write cache for neural network inference circuit
US11568227B1 (en) 2018-04-20 2023-01-31 Perceive Corporation Neural network inference circuit read controller with multiple operational modes
US11210586B1 (en) * 2018-04-20 2021-12-28 Perceive Corporation Weight value decoder of neural network inference circuit
US11222257B1 (en) 2018-04-20 2022-01-11 Perceive Corporation Non-dot product computations on neural network inference circuit
US11341397B1 (en) 2018-04-20 2022-05-24 Perceive Corporation Computation of neural network node
US11481612B1 (en) 2018-04-20 2022-10-25 Perceive Corporation Storage of input values across multiple cores of neural network inference circuit
US11049013B1 (en) 2018-04-20 2021-06-29 Perceive Corporation Encoding of weight values stored on neural network inference circuit
US11783167B1 (en) 2018-04-20 2023-10-10 Perceive Corporation Data transfer for non-dot product computations on neural network inference circuit
CN108977897B (zh) * 2018-06-07 2021-11-19 浙江天悟智能技术有限公司 基于局部内在可塑性回声状态网络的熔纺工艺控制方法
US10528643B1 (en) 2018-08-01 2020-01-07 Sandisk Technologies Llc Vector-matrix multiplication using non-volatile memory cells
US10534840B1 (en) 2018-08-08 2020-01-14 Sandisk Technologies Llc Multiplication using non-volatile memory cells
US11501164B2 (en) * 2018-08-09 2022-11-15 D5Ai Llc Companion analysis network in deep learning
JP2020035502A (ja) * 2018-08-28 2020-03-05 キオクシア株式会社 半導体集積回路
CN109325588B (zh) * 2018-11-14 2023-10-24 南京邮电大学 基于忆阻器矩阵的权值运算模块
US11640522B2 (en) * 2018-12-13 2023-05-02 Tybalt, Llc Computational efficiency improvements for artificial neural networks
US10891222B2 (en) * 2018-12-24 2021-01-12 Macronix International Co., Ltd. Memory storage device and operation method thereof for implementing inner product operation
US10861551B2 (en) * 2018-12-28 2020-12-08 Micron Technology, Inc. Memory cells configured to generate weighted inputs for neural networks
US11347297B1 (en) 2019-01-23 2022-05-31 Perceive Corporation Neural network inference circuit employing dynamic memory sleep
US11599771B2 (en) 2019-01-29 2023-03-07 Hewlett Packard Enterprise Development Lp Recurrent neural networks with diagonal and programming fluctuation to find energy global minima
CN109903162B (zh) * 2019-03-01 2021-05-04 山东大学 一种加速区块链MCMC随机选择的ReRAM及其工作方法
US11941533B1 (en) 2019-05-21 2024-03-26 Perceive Corporation Compiler for performing zero-channel removal
TWI744899B (zh) * 2019-05-22 2021-11-01 力旺電子股份有限公司 運用於類神經網路系統的乘積累加電路之相關控制電路
US11886987B2 (en) * 2019-06-25 2024-01-30 Arm Limited Non-volatile memory-based compact mixed-signal multiply-accumulate engine
CN110515454B (zh) * 2019-07-24 2021-07-06 电子科技大学 一种基于内存计算的神经网络架构电子皮肤
CN114207724A (zh) * 2019-07-30 2022-03-18 金俊成 控制突触元件中电阻逐渐变化的装置和方法
EP3798898A1 (en) * 2019-09-30 2021-03-31 Anyline GmbH Computer-implemented method for optical character recognition
US11537436B2 (en) * 2019-10-02 2022-12-27 Qualcomm Incorporated Method of configuring a memory block allocation of a machine learning network
CN110807519B (zh) * 2019-11-07 2023-01-17 清华大学 基于忆阻器的神经网络的并行加速方法及处理器、装置
KR20210075542A (ko) * 2019-12-13 2021-06-23 삼성전자주식회사 스위칭 소자와 저항 소자를 포함하는 3차원 뉴로모픽 장치
CN111106839A (zh) * 2019-12-19 2020-05-05 北京邮电大学 一种基于神经网络的极化码译码方法及装置
CN111191776A (zh) * 2019-12-19 2020-05-22 浙江大学 存储计算阵列及模组、数据计算方法
US11663455B2 (en) * 2020-02-12 2023-05-30 Ememory Technology Inc. Resistive random-access memory cell and associated cell array structure
CN111207875B (zh) * 2020-02-25 2021-06-25 青岛理工大学 基于多粒度并联cnn模型的肌电信号-扭矩匹配方法
US11544037B2 (en) 2020-04-30 2023-01-03 International Business Machines Corporation Low area multiply and accumulate unit
KR20220011056A (ko) * 2020-07-20 2022-01-27 삼성전자주식회사 프로세싱 장치 및 이를 포함하는 전자 시스템
CN112215855B (zh) * 2020-10-20 2024-04-12 清华大学 基于忆阻器阵列实现图像连通区域判断的方法及电子装置
US11972137B2 (en) 2020-11-02 2024-04-30 Deepx Co., Ltd. System and memory for artificial neural network (ANN) optimization using ANN data locality
US11922051B2 (en) 2020-11-02 2024-03-05 Deepx Co., Ltd. Memory controller, processor and system for artificial neural network
KR20220059409A (ko) * 2020-11-02 2022-05-10 주식회사 딥엑스 인공신경망을 위한 메모리 장치
US11696518B2 (en) 2020-11-20 2023-07-04 International Business Machines Corporation Hybrid non-volatile memory cell
US11922296B2 (en) * 2021-07-28 2024-03-05 Rain Neuromorphics Inc. Electrical networks using analytic loss gradients for design, analysis and machine learning
CN113675294B (zh) * 2021-08-20 2023-03-31 电子科技大学 一种双层三元氧化物的光电突触器件及其制备和工作方法
US11853558B2 (en) 2021-12-30 2023-12-26 Micron Technology, Inc. Power down workload estimation
EP4345823A1 (en) * 2022-09-30 2024-04-03 IHP GmbH - Innovations for High Performance Microelectronics / Leibniz-Institut für innovative Mikroelektronik Resistive memory subcell, resistive random access memory for in-memory-computing and in-memory-processor
US20240119975A1 (en) * 2022-10-11 2024-04-11 Globalfoundries U.S. Inc. Partitioned memory architecture and method for repeatedly using the architecture for multiple in-memory processing layers

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912839A (en) * 1998-06-23 1999-06-15 Energy Conversion Devices, Inc. Universal memory element and method of programming same
US7978498B2 (en) * 2009-04-03 2011-07-12 Sandisk 3D, Llc Programming non-volatile storage element using current from other element
KR101888468B1 (ko) * 2011-06-08 2018-08-16 삼성전자주식회사 Stdp 기능 셀을 위한 시냅스, stdp 기능 셀 및 stdp 기능 셀을 이용한 뉴로모픽 회로
US9111222B2 (en) * 2011-11-09 2015-08-18 Qualcomm Incorporated Method and apparatus for switching the binary state of a location in memory in a probabilistic manner to store synaptic weights of a neural network
TWI451570B (zh) * 2011-11-15 2014-09-01 Univ Nat Chiao Tung 多位元電阻切換記憶體元件與陣列
US10157669B2 (en) * 2013-04-02 2018-12-18 Micron Technology, Inc. Method of storing and retrieving information for a resistive random access memory (RRAM) with multi-memory cells per bit
KR102179899B1 (ko) * 2013-08-05 2020-11-18 삼성전자주식회사 뉴로모픽 시스템 및 그 구현 방법
US9483727B2 (en) * 2013-09-18 2016-11-01 Fair Isaac Corporation Reduction of computation complexity of neural network sensitivity analysis
US20150324691A1 (en) * 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
WO2016072964A1 (en) * 2014-11-03 2016-05-12 Hewlett Packard Enterprise Development Lp Device with multiple resistance switches with different switching characteristics
KR102380833B1 (ko) * 2014-12-02 2022-03-31 삼성전자주식회사 음성 인식 방법 및 음성 인식 장치
US9299430B1 (en) * 2015-01-22 2016-03-29 Nantero Inc. Methods for reading and programming 1-R resistive change element arrays
US10248907B2 (en) * 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
US10332592B2 (en) * 2016-03-11 2019-06-25 Hewlett Packard Enterprise Development Lp Hardware accelerators for calculating node values of neural networks
GB2552014B (en) 2016-07-07 2020-05-13 Advanced Risc Mach Ltd Reconfigurable artificial neural networks comprising programmable non-volatile memory elements

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fabien Alibart 외 2인, "Pattern classification by memristive crossbar circuits using ex situ and in situ training", Nature Communications volume 4, Article number: 2072 (2013), (25 Jun. 2013)*

Also Published As

Publication number Publication date
CN109416760B (zh) 2024-03-01
US11334788B2 (en) 2022-05-17
WO2018007783A1 (en) 2018-01-11
KR20190022622A (ko) 2019-03-06
US20190236445A1 (en) 2019-08-01
GB2552014B (en) 2020-05-13
GB201611857D0 (en) 2016-08-24
CN109416760A (zh) 2019-03-01
GB2552014A (en) 2018-01-10

Similar Documents

Publication Publication Date Title
KR102489258B1 (ko) 인공 신경망
CN110383301B (zh) 尖峰神经网络
Burr et al. Neuromorphic computing using non-volatile memory
US10797235B2 (en) Multivalent oxide cap for analog switching resistive memory
Moon et al. Improved conductance linearity and conductance ratio of 1T2R synapse device for neuromorphic systems
KR102152759B1 (ko) 저항성 랜덤 액세스 메모리 디바이스
Ma et al. Neuromorphic computing with memristive devices
US11948618B2 (en) Non-volatile analog resistive memory cells implementing ferroelectric select transistors
KR20190007642A (ko) 다수의 시냅스 블록들을 갖는 뉴로모픽 소자
KR20200000917A (ko) 3차원 적층형 반도체 메모리 소자
US11922169B2 (en) Refactoring mac operations
CN114026573A (zh) 基于非易失性存储器的紧凑型混合信号乘法累加引擎
TWI793249B (zh) 用於基於大腦之運算的相關電子開關元件
KR20220053559A (ko) 학습을 위해 평형 전파를 사용하는 아날로그 시스템
JP2006351061A (ja) メモリ回路
Laiho et al. Memristive analog arithmetic within cellular arrays
CN114207724A (zh) 控制突触元件中电阻逐渐变化的装置和方法
KR102567230B1 (ko) 상변화 소자를 이용한 인공신경망 시스템
Parami Wijesinghe et al. An All-Memristor Deep Spiking Neural System: A Step Towards Realizing the Low Power, Stochastic Brain

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right