KR20220011002A - 프로세싱 장치 및 이를 포함하는 전자 시스템 - Google Patents

프로세싱 장치 및 이를 포함하는 전자 시스템 Download PDF

Info

Publication number
KR20220011002A
KR20220011002A KR1020200089853A KR20200089853A KR20220011002A KR 20220011002 A KR20220011002 A KR 20220011002A KR 1020200089853 A KR1020200089853 A KR 1020200089853A KR 20200089853 A KR20200089853 A KR 20200089853A KR 20220011002 A KR20220011002 A KR 20220011002A
Authority
KR
South Korea
Prior art keywords
active
variable
variable resistors
switches
minimum distance
Prior art date
Application number
KR1020200089853A
Other languages
English (en)
Inventor
정승철
김상준
명성민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200089853A priority Critical patent/KR20220011002A/ko
Priority to KR1020210002215A priority patent/KR20220011056A/ko
Priority to US17/194,571 priority patent/US20220019884A1/en
Priority to US17/195,917 priority patent/US20220019885A1/en
Priority to CN202110447281.5A priority patent/CN113962374A/zh
Priority to CN202110472221.9A priority patent/CN113962375A/zh
Priority to JP2021105060A priority patent/JP2022020561A/ja
Priority to JP2021105056A priority patent/JP2022020560A/ja
Priority to EP21183095.5A priority patent/EP3944246A1/en
Priority to EP21184664.7A priority patent/EP3944247A1/en
Publication of KR20220011002A publication Critical patent/KR20220011002A/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
    • G06N3/0635
    • 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

Landscapes

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

Abstract

연산 신뢰성이 향상된 프로세싱 장치가 제공된다. 프로세싱 장치는, 활성 가변저항들을 포함하는 가변저항층, 활성 가변저항들의 전압 또는 전류를 제어하는 스위치들을 포함하는 액티브층 및 활성 가변저항들과 스위치들을 전기적으로 연결시키는 배선을 포함하는 복수의 금속층들을 포함한다.

Description

프로세싱 장치 및 이를 포함하는 전자 시스템{PROCESSING APPARATUS AND ELECTRONIC SYSTEM HAVING THE SAME}
프로세싱을 수행하는 장치 및 이를 포함하는 전자 시스템에 관한다.
뉴럴 네트워크 장치는 곱셉과 덧셈을 반복하는 MAC(Multiply-Accumulate) 연산을 수행할 수 있다. 뉴럴 네트워크는 특정 노드에서 이전 레이어의 노드들의 출력들과 이 노드들에 매핑된 웨이트들을 곱한 값들을 합산하는 MAC 연산을 반복적으로 수행하고, MAC 연산의 결과 값에 활성 함수를 적용하는 연산을 수행한다. 이를 위해 원하는 시점에 적절한 입력과 웨이트가 로딩되는 메모리 액세스 동작(Memory Access Operation)이 함께 수행될 수 있다. 일반적으로 알려진 디지털 컴퓨터를 이용하여 뉴럴 네트워크를 처리하는 대신, 다른 하드웨어 아키텍쳐를 이용하여 MAC 연산 등과 같은 뉴럴 네트워크의 연산들을 수행하기 위한 다양한 방안들이 시도되고 있다.
아날로그 연산의 신뢰성 및 전력 효율이 향상된 프로세싱 장치 및 이를 포함하는 전자시스템을 제공하며, 아래에서 설명하는 실시예들로부터 다른 기술적 과제들이 유추될 수 있다.
일 실시예의 프로세싱 장치는, 복수의 활성 가변저항들과 복수의 비활성 가변저항들을 포함하는 가변저항층; 상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및 상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결하는 배선들을 포함하는 복수의 금속층들;을 포함하는 복수의 비트셀들을 포함하고, 상기 복수의 비트셀들 중 적어도 하나의 비트셀은 상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 연결하는 비아를 포함할 수 있다.
다른 실시예의 프로세싱 장치는, 복수의 활성 가변저항들을 포함하는 가변저항층; 상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및 상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결시키는 배선들을 포함하는 복수의 금속층들;을 포함하고, 상기 가변저항층은 상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 연결하는 적어도 하나의 비아를 포함할 수 있다.
일 실시예에 따른 전자 시스템은, 뉴럴 네트워크 장치; 및 상기 뉴럴 네트워크 장치의 기능을 제어하는 프로세싱 유닛을 포함하고, 상기 뉴럴 네트워크 장치는 복수의 활성 가변저항들과 복수의 비활성 가변저항들을 포함하는 가변저항층; 상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및 상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결하는 배선들을 포함하는 복수의 금속층들;을 포함하는 복수의 비트셀들을 포함하고, 상기 복수의 비트셀들 중 적어도 하나의 비트셀은 상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 서로 연결하는 비아를 포함할 수 있다.
다른 실시예에 따른 전자 시스템은, 뉴럴 네트워크 장치; 및 상기 뉴럴 네트워크 장치의 기능을 제어하는 프로세싱 유닛을 포함하고, 상기 뉴럴 네트워크 장치는 복수의 활성 가변저항들과 복수의 비활성 가변저항들을 포함하는 가변저항층; 상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및 상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결하는 배선들을 포함하는 복수의 금속층들을 포함하고, 상기 가변저항층은 상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 서로 연결하는 적어도 하나의 비아를 포함할 수 있다.
도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.
도 2는 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 3은 프로세싱 장치에 사용되는 비트셀의 회로도를 도시하는 도면이다.
도 4a 및 도 4b는 도 3의 비트셀에 적용된 가변저항의 구조 및 동작을 설명하기 위한 도면들이다.
도 5a는 뉴럴 네트워크의 다른 예를 도시하는 도면이고, 도 5b는 도 5a의 뉴럴 네트워크에서 요구되는 연산을 수행할 수 있는 프로세싱 장치의 일 실시예를 도시하는 도면이다.
도 6은 도 5a의 뉴럴 네트워크에서 요구되는 연산을 수행할 수 있는 프로세싱 장치의 다른 실시예를 도시하는 도면이다.
도 7은 도 5b의 실시예의 가변저항과 스위치의 연결 관계를 설명하기 위한 도면이다.
도 8은 도 7의 가변저항층을 보다 상세하게 도시하는 수평 단면도이다.
도 9a는 도 8의 X-X'선을 따라 자른 수직 단면도이고, 도 9b는 도 8의 Y-Y'선을 따라 자른 수직 단면도이다.
도 10은 도 9a의 프로세싱 장치의 액티브 층의 평면도이다.
도 11은 도 9a의 프로세싱 장치의 제7 금속층의 평면도이다.
도 12는 도 5b의 프로세싱 장치와 스위치와 가변저항의 연결구조가 상이한 프로세싱 장치의 다른 실시예를 도시하는 도면이다.
도 13은 도 12의 실시예의 가변저항과 스위치의 연결 관계를 설명하기 위한 도면이다.
도 14는 일 예에 따른 프로세싱 장치의 칩 블록도이다.
도 15는 일 예에 따른 전자 시스템을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 다양한 실시예들을 기재한다. 실시예의 설명을 위해 사용하는 용어들은 권리범위를 특정 실시예에 한정하기 위한 것이 아니며, 특정한 실시예 외의 다양한 변경, 균등물, 및/또는 대체물들이 권리범위에 포함될 수 있다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. "A 또는 B" 또는 "A 및/또는 B" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
실시예들에 대한 설명에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 구성요소를 '포함한다'고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 하지만, '포함한다'의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 한다.
이하 설명하는 실시예들은 프로세싱 장치(예를 들어, 뉴로모픽 프로세서(neuromorphic processor), 뉴럴 프로세서(neural processor) 등)의 기술 분야에 관한 것으로서 해당 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
실시예들에서 프로세싱 장치는 공통의 데이터 버스를 사용하여 정보를 주고받는 일반적인 디지털 컴퓨터와 달리, 곱하기와 더하기 연산들을 처리하기 위한 아날로그 회로를 구비할 수 있다. 다시 말하면, 프로세싱 장치는 인-메모리(in-memory) 프로세싱 또는 내부 프로세싱(internal processing))을 수행할 수 있다. 이에 따라, 프로세싱 장치는 인-메모리 프로세싱 장치(in-memory processing device), Processor In Memory(PIM), Function In Memory(FIM) 등과 같은 다양한 용어들로 지칭될 수도 있다.
도 1은 생물학적 뉴런과 그 동작을 설명하기 위한 도면이다.
도 1을 참고하면, 생물학적 뉴런(10)은 인간의 신경계에 존재하는 세포를 의미하며, 기초적인 생물학적 계산 개체의 하나이다. 인간의 두뇌는 대략 1000억개 정도의 생물학적 뉴런들과 그 사이에 위치하는 100조개 정도의 연결들(Interconnections)을 포함하고 있다.
생물학적 뉴런(10)은 단일 세포이며 세포핵(Nucleus) 및 다양한 세포기관(Organelles)을 포함하는 세포체(Neuron Cell Body)를 포함한다. 다양한 세포기관은 미토콘드리아, 세포체로부터 방사되는 다수의 수상돌기들(Dendrites) 및 많은 분기 확장선(Extension)들에서 종단하는 축색돌기(Axon)를 포함한다.
일반적으로, 축색돌기는 뉴런으로부터 다른 뉴런으로 신호들을 송신하는 기능을 수행하고, 수상돌기는 다른 뉴런으로부터 신호를 수신하는 기능을 수행한다. 예를 들어, 서로 다른 뉴런들이 연결되어 있는 경우 뉴런의 축색돌기를 통해 전달된 신호는 다른 뉴런의 수상돌기에 의해 수신될 수 있다. 이때, 뉴런들 사이에서 신호는 시냅스(Synapse)라 지칭되는 특화된 연결을 통해 전달되며, 여러 뉴런들이 서로 연결되어 신경망(Neural Network)을 형성한다. 시냅스를 기준으로 신경전달물질(Neurotransmitter)을 분비하는 뉴런은 프리 시냅틱 뉴런(Pre-synaptic Neuron)으로 지칭되고, 신경전달물질을 통해 전달되는 정보를 받는 뉴런은 포스트 시냅틱 뉴런(Post-synaptic Neuron)이라고 지칭될 수 있다.
인간의 두뇌는 이러한 많은 수의 뉴런들이 서로 연결되어 형성되는 신경망을 통해 다양한 신호들을 전달 및 처리함으로써 방대한 양의 정보를 학습하고 기억할 수 있다. 이러한 생물학적 신경망을 모사하여 방대한 양의 정보를 효율적으로 처리하기 위한 프로세싱 장치 또는 컴퓨팅 장치를 개발하기 위한 다양한 시도들이 지속되고 있다.
도 2는 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 2를 참조하면, 뉴럴 네트워크(20)는 앞서 서술한 생물학적 신경망을 모사한 인공 신경망(Artificial Neural Network)의 일 예이며, 딥 뉴럴 네트워크(DNN, Deep Neural Network)에 해당할 수 있다. 설명의 편의를 위해 뉴럴 네트워크(20)가 2개의 히든 레이어들(Hidden Layers)을 포함하는 것으로 도시되었으나, 다양한 수의 히든 레이어들을 포함할 수 있다. 또한, 도 2에서 뉴럴 네트워크(20)는 입력 데이터를 수신하기 위한 별도의 입력 레이어(Input Layer)(21)를 포함하는 것으로 도시되었으나, 입력 데이터가 히든 레이어에 직접 입력될 수도 있다.
뉴럴 네트워크(20)에서 출력 레이어(Output Layer)를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 이들 링크를 통해 하나의 인공 노드에는 이전 레이어에 포함된 인공 노드들의 노드 값과 각 링크에 할당된 웨이트가 곱해진 값들이 입력될 수 있다. 이전 레이어의 노드 값들은 액손 값들에 해당하고, 웨이트는 시냅틱 웨이트들에 해당한다. 웨이트는 뉴럴 네트워크(20)의 파라미터로 지칭될 수 있다. 활성 함수는 시그모이드(Sigmoid), 하이퍼볼릭 탄젠트(Hyperbolic Tangent; Tanh) 및 렐루(Rectified Linear Unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크(20)에 비선형성이 형성될 수 있다.
이러한 뉴럴 네트워크(20)에 포함된 임의의 한 노드(22)의 출력은 아래 [수학식 1]과 같이 나타낼 수 있다.
Figure pat00001
[수학식 1]은 임의의 레이어에서 m개의 입력 값에 대한 i번째 노드(22)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 노드의 출력 값을 나타낼 수 있고, wj,i는 이전 레이어의 j번째 노드와 현재 레이어의 i번째 노드(22)의 연결부에 적용되는 웨이트를 나타낼 수 있다. f()는 활성 함수를 나타낼 수 있다. [수학식 1]에 나타난 바와 같이, 활성 함수에 대해, 입력값 xj 및 웨이트 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 입력 값 xj 및 웨이트 wj,i를 곱하고 더하는 연산(MAC 연산)이 반복될 수 있다. 이러한 용도 외에도, MAC 연산을 필요로 하는 다양한 응용분야가 있으며, 이를 위해 아날로그 회로 영역에서 MAC 연산을 처리할 수 있는 프로세싱 장치가 사용될 수 있다.
도 3은 프로세싱 장치에 사용되는 비트셀의 일 실시예를 도시하는 회로도이고, 이를 참조하여 비트셀의 구조와 동작에 대해 설명한다.
도 3의 비트셀(Bitcell, BC)은 뉴로모픽 프로세서, 뉴럴 프로세서 등을 구현하기 위한 프로세싱 장치 내에 포함된 회로 구성일 수 있다. 프로세싱 장치는, 예를 들어, 데이터를 메모리(저항성 메모리 소자 등)에 저장해두고, 연산이 필요한 경우 저장된 데이터를 사용하는 인-메모리 프로세싱 장치(In-Memory Processing Unit)일 수 있다.
비트셀(BC)은 병렬로 연결된 한 쌍의 가변저항들(Ra, Rb), 가변저항들(Ra, Rb)에 각각 직렬로 연결된 한 쌍의 스위치들(Sa, Sb), 및 제1 및 제2 비트 데이터 라인들(BLDa, BLDb)에 각각 연결된 스위치들(SBDLa, SBDLb)을 포함할 수 있다. 다만, 도 3에 도시된 비트셀(BC)의 회로 구성은 예시적인 것일 뿐이며, 비트셀(BC)은 다른 회로 소자들을 이용한 등가 회로로도 구현될 수 있다.
한 쌍의 가변저항들(Ra, Rb)은 서로 다른 저항 값들로 설정될 수 있는 저항 소자들이고, 가변저항들(Ra, Rb)의 저항 값들은 비트셀(BC)에 인가되는 웨이트에 의해 정해질 수 있다. 예를 들어, 각각의 가변저항(Ra, Rb)은, 2개의 저항 값들 중 어느 하나의 저항 값, 예컨대, 20 Ω 또는 5 Ω의 저항 값을 가질 수 있다. 비트셀(BC)에 인가될 수 있는 웨이트가 '-1 또는 1' 이라고 가정할 때, 비트셀(BC)에 웨이트 '1'이 인가된 경우에 제1 가변저항(Ra)은 20 Ω으로 설정되고 제2 가변저항(Rb)은 5 Ω으로 설정될 수 있다. 이와 달리, 비트셀(BC)에 웨이트 '-1'이 인가된 경우에 제1 가변저항(Ra)은 5 Ω으로 설정되고 제2 가변저항(Rb)은 20 Ω으로 설정될 수 있다. 즉, 가변저항들(Ra, Rb)의 저항 값들은 가변저항들(Ra, Rb) 각각이 서로 다른 저항 값들을 가지도록 상보적으로 설정될 수 있다.
구체적으로, 가변저항들(Ra, Rb)은 저항성 메모리 소자들일 수 있다. 저항성 메모리 소자는 저항성 메모리 소자의 양단에 인가되는 전압 또는 전류에 따라 서로 다른 저항 상태들 사이에서 스위칭될 수 있는 소자로서, 복수의 저항 상태들을 가질 수 있다. 저항성 메모리 소자는, 예를 들어, 전이 금속 산화물, 페로브스카이트(Perovskite)계 물질 등과 같은 금속 산화물, 칼코게나이드(Chalcogenide)계 물질 등과 같은 상변화 물질, 강유전 물질, 강자성 물질 등을 포함하는 단일막 구조 또는 다중막 구조를 가질 수 있다. 한편, 저항성 메모리 소자가 고저항 상태에서 저저항 상태로 변하는 동작을 셋(SET) 동작이라 지칭하고, 저저항 상태에서 고저항 상태로 변하는 동작을 리셋(RESET) 동작이라 지칭할 수 있다.
가변저항들(Ra, Rb)의 저항 값들을 변경하는 방법에 대해 설명하도록 한다. 먼저, 변경하고자 하는 가변저항의 양단을 각각 제1 비트-데이터 라인(BDLa) 및 제2 비트-데이터 라인(BDLb)에 접속한다. 제1 가변저항(Ra)을 예로 들어 설명하면, 제1 가변저항(Ra)의 일단(도 3에서 가변저항(Ra)의 상단부)은 상부 비트-데이터 라인 스위치(SBDLb)를 통해 제2 비트-데이터 라인(BDLb)에 접속될 수 있고, 제1 가변저항(Ra)의 타단(도 3에서 가변저항(Ra)의 하단부)은 제1 스위치(Sa)와 하부 비트-데이터 라인 스위치(SBDLa)를 통해 제1 비트-데이터 라인(BDLa)에 접속될 수 있다.
상부 비트-데이터 라인 스위치(SBDLb)는 도 3의 비트셀(BC)에 포함되지 않은 스위치일 수 있다. 예를 들어, 상부 비트-데이터 라인 스위치(SBDLb)는 도 3의 비트셀(BC)과 인접한 비트셀(미도시)에 포함된 스위치이거나, 또는 다른 비트셀에는 포함되지 않은 독립적인 스위치일 수 있다.
제1 가변저항(Ra)이 비트 데이터 라인들(BDLa, BDLb)에 접속되면, 비트 데이터 라인들(BDLa, BDLb)을 통해 제1 가변저항(Ra) 양단의 전압 또는 제1 가변저항(Ra)에 흐르는 전류를 제어함으로써 제1 가변저항(Ra)에 대한 셋(SET) 동작 또는 리셋(RESET) 동작이 수행될 수 있다. 이와 달리, 제2 스위치(Sb)와 비트셀(BC) 양단의 비트-데이터 라인 스위치들(SBDLa, SBDLb)이 닫히면 제2 가변저항(Rb)이 비트 데이터 라인들(BDLa, BDLb)에 접속됨으로써 제2 가변저항(Rb)에 대한 셋(SET) 동작 또는 리셋(RESET) 동작이 수행될 수 있다.
가변저항들(Ra, Rb)의 저항 값들을 변경하기 위해 인가되는 전압 및/또는 전류는 가변저항들(Ra, Rb)의 저항 값들을 읽기(read) 위해 인가되는 전압 및/또는 전류보다 상대적으로 매우 큰 값일 수 있다. 다시 말하면, 가변저항들(Ra, Rb)의 저항 값들을 읽기 위해 인가되는 전압 및/또는 전류에 의해서는 가변저항들(Ra, Rb)의 저항 값들이 변하지 않을 수 있다.
가변저항들(Ra, Rb)과 직렬로 연결된 한 쌍의 스위치들(Sa, Sb)은 비트셀(BC)에 인가되는 입력이 무엇인지에 따라 개폐(ON/OFF) 동작을 수행할 수 있다. 스위치들(Sa, Sb)은, 어느 하나가 닫히면 다른 하나가 열리도록 상보적으로 동작할 수 있다. 예를 들면, 비트셀(BC)에 인가될 수 있는 입력이 '-1 또는 1' 이라고 가정할 때, 입력 '1'이 인가된 경우에 제1 스위치(Sa)는 닫히고 제2 스위치(Sb)는 열리고, 입력 '-1'이 인가된 경우에 제1 스위치(Sa)는 열리고 제2 스위치(Sb)는 닫히도록 설계될 수 있다.
앞서 설명된 가변저항과 스위치의 동작 방법에 따르면, 도 3의 비트셀(BC)에 인가되는 웨이트와 입력에 따라 비트셀(BC)의 양단에서 측정되는 저항 값은 달라질 수 있다. 웨이트, 입력 및 비트셀(BC) 양단의 저항 값 간의 관계를 정리하면 아래 [표 1]과 같다.
입력 웨이트 입력*웨이트 저항 값(Ω)
1 1 1 20
1 -1 -1 5
-1 1 -1 5
-1 -1 1 20
[표 1]을 참조하면, 입력과 웨이트를 곱한 값이 1인 경우에 비트셀(BC)의 저항 값은 20 Ω이고, 입력과 웨이트를 곱한 값이 -1인 경우에 비트셀(BC)의 저항 값은 5 Ω이 됨을 알 수 있다. 다시 말하면, 비트셀(BC)의 저항 값을 측정하거나 또는 일정한 값의 전류에 의한 비트셀(BC)의 전압 강하를 측정하면, 비트셀(BC)에 인가된 입력과 웨이트의 곱을 알 수 있다. 이러한 비트셀(BC)의 특성을 이용하여 입력과 웨이트의 곱의 합을 구하는 프로세싱 장치(예를 들어, 뉴로모픽 프로세서 등)가 구현될 수 있다.
도 4a 및 도 4b는 도 3의 비트셀(BC)에 적용 가능한 가변저항의 구조 및 동작을 설명하기 위한 도면들이다. 가변저항들(Ra, Rb)은 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자로 구현될 수 있으며, 전류(또는 전압)의 크기 및 방향에 따라 저항 값이 변하고, 입력되는 전류(또는 전압)가 차단되어도 저항 값은 그대로 유지되는 불휘발 특성을 가질 수 있다.
도 4a 및 도 4b를 참조하면, 자기 터널 접합(MTJ) 소자는 피고정층(Pinned Layer)(L3)과 자유층(Free Layer)(L1) 및 이들 사이에 터널층(L2)을 포함할 수 있다. 피고정층(L3)의 자화 방향은 고정되어 있으며, 자유층(L1)의 자화 방향은 조건에 따라 피고정층(L3)의 자화 방향과 동일하거나 다를 수 있다.
도 4a는, 자기 터널 접합(MTJ) 소자에서 자유층(L1)과 피고정층(L3)의 자화방향이 평행(Parallel)한 상태를 보여준다. 이와 같이 자화방향이 평행할 때, 자기 터널 접합(MTJ) 소자는 낮은 저항 값, 예를 들어, 5 Ω의 저항을 가질 수 있다. 도 4b는, 자기 터널 접합(MTJ) 소자의 자유층(L1)과 피고정층(L3)의 자화 방향이 반대(Anti-parallel)인 상태를 보여준다. 이와 같이 자화방향이 반대(Anti-parallel)일 때, 자기 터널 접합(MTJ) 소자는 높은 저항 값, 예를 들어, 20 Ω의 저항을 가질 수 있다. 따라서, 자유층(L1)의 자화방향을 변경함으로써 가변저항의 저항 값이 변경될 수 있다.
자유층(L1)의 자화 방향은 저항성 메모리 셀의 외부 및/또는 내부에서 제공되는 전기적/자기적 요인에 의해 변경될 수 있다. 자유층(L1)은 변화 가능한 자화 방향을 갖는 물질, 예를 들어, 강자성 물질을 포함할 수 있다. 자유층(L1)은 예를 들어, CoFeB, FeB, Fe, Co, Ni, Gd, Dy, CoFe, NiFe, MnAs, MnBi, MnSb, CrO2, MnOFe2O3, FeOFe2O3, NiOFe2O3, CuOFe2O3, MgOFe2O3, EuO, Y3Fe5O12 및/또는 이들의 조합을 포함할 수 있다.
터널층(L2)은 스핀 확산 길이(Spin Diffusion Distance) 보다 얇은 두께를 가질 수 있으며, 비자성 물질, 예를 들어, 마그네슘(Mg), 티타늄(Ti), 알루미늄(Al), 마그네슘-아연(MgZn) 및 마그네슘-붕소(MgB)의 산화물, 티타늄(Ti), 바나듐(V) 및/또는 이들의 조합을 포함할 수 있다.
피고정층(L3)은 반강자성층에 의해 고정된 자화 방향을 가질 수 있다. 피고정층(L3)은 강자성 물질(Ferromagnetic Material), 예를 들어, CoFeB, FeB, Fe, Co, Ni, Gd, Dy, CoFe, NiFe, MnAs, MnBi, MnSb, CrO2, MnOFe2O3, FeOFe2O3, NiOFe2O3, CuOFe2O3, MgOFe2O3, EuO, Y3Fe5O12 및/또는 이들의 조합을 포함할 수 있으며, 자화방향을 고정시키기 위해 반강자성층 및/또는 합성반강자성층을 더 포함할 수 있다. 반강자성층은 반강자성 물질(Anti-Ferromagnetic Material), 예를 들어, PtMn, IrMn, MnO, MnS, MnTe, MnF2, FeCl2, FeO, CoCl2, CoO, NiCl2, NiO, Cr 및/또는 이들의 조합을 포함할 수 있다. 합성 반강자성층은 Cu, Ru, Ir 및/또는 이들의 조합을 포함할 수 있다.
도 5a는 3개 노드들을 갖는 제1 레이어와 2개 노드들을 갖는 제2 레이어를 포함하는 뉴럴 네트워크를 설명하기 위한 도면이다. 도 5b는 도 5a의 뉴럴 네트워크의 제2 레이어에서 요구되는 연산을 수행하기 위하여 도 3의 비트셀을 이용하여 구현된 프로세싱 장치의 회로도를 예시적으로 도시하는 도면이다.
도 5a를 참고하면, 제2 레이어(L2)의 제1 노드(a1)에서는 아래 [수학식 2]와 같이, 제1 레이어(L1)의 노드들로부터 제공되는 입력들(x1, x2, x3)과 웨이트들(w11, w21, w31)을 각각 곱하는 3번의 곱셈 연산들과 곱셈 결과 값들의 합산 연산을 수행하는 MAC 연산(Multiply-Accumulate Operation)이 수행될 수 있다. 제2 레이어(L2)의 제2 노드(a2)에서는 아래 [수학식 3]과 같이, 제1 레이어(L1)의 노드들로부터 제공되는 입력들(x1, x2, x3)과 웨이트들(w12, w22, w32)을 각각 곱하는 3번의 곱셈 연산들과 곱셈 결과 값들의 합산 연산을 수행하는 MAC 연산이 수행될 수 있다.
Figure pat00002
Figure pat00003
도 5b의 프로세싱 장치(100)에는 도 5a의 제2 레이어(L2)에서 요구될 수 있는 연산을 수행하기 위하여 도 3의 비트셀(BC)이 여러 개 구비되어 있다.
도 5b의 프로세싱 장치(100)는, 직렬로 연결된 3개의 비트셀들(BC11, BC12, BC13)을 포함하는 제1 비트셀 라인(BCL1) 및 직렬로 연결된 3개의 비트셀들(BC21, BC22, BC23)을 포함하는 제2 비트셀 라인(BCL2)을 포함한다. 제1 비트셀 라인(BCL1)에서 도 5a의 제1 노드(a1)로부터 요구되는 [수학식 2]의 연산이 수행될 수 있으며, 제2 비트셀 라인(BCL2)에서 제2 노드(a2)로부터 요구되는 [수학식 3]의 연산이 수행될 수 있다.
각 비트셀 라인(BCL1, BCL2)에 일정한 값의 전류(I)가 인가됨에 따라 비트셀들(BC11, BC12, BC13, BC21, BC22, BC23) 각각에서 일어나는 전압 강하의 합산 값으로부터, 비트셀들(BC11, BC12, BC13, BC21, BC22, BC23) 각각에 인가된 웨이트와 입력의 곱의 합이 도출될 수 있다. 아래에서는 입력과 웨이트가 아래 [표 2]와 같은 경우를 예로 들어 설명한다.
입력 웨이트(제1 노드(a1)) 웨이트(제2 노드(a2))
x1 = 1 w11 = 1 w12 = -1
x2 = 1 w21 = -1 w22 = -1
x3 = -1 w31 = -1 w32 = 1
[표 2]의 웨이트들에 의해, 도 5b의 프로세싱 장치(100)에 포함된 가변저항들(R11a, R11b, R12a, R12b,..., R23a, R23b)은 아래 [표 3]과 같이 설정될 수 있다. [표 2]의 입력들에 의해 각각의 가변저항(R11a,..., R23b)과 직렬로 연결된 스위치들(S11a, S11b, S12a, S12b, ..., S23a, S23b)의 개폐 상태는 아래 [표 4]와 같이 설정될 수 있다.
제1 비트셀 라인(BCL1) (Ω) 제2 비트셀 라인(BCL2) (Ω)
R11a = 20 R11b = 5 R21a = 5 R21b = 20
R12a = 5 R12b = 20 R22a = 5 R22b = 20
R13a = 5 R13b = 20 R23a = 20 R23b = 5
제1 비트셀 라인(BCL1) 제2 비트셀 라인(BCL2)
S11a = Close S11b = Open S21a = Close S21b = Open
S12a = Close S12b = Open S22a = Close S22b = Open
S13a = Open S13b = Close S23a = Open S23b = Close
[표 3] 및 [표 4]와 같이 설정된 제1 및 제2 비트셀 라인들(BCL1, BCL2)에 1A의 전류를 제공하면, 각 비트셀에 포함된 가변저항들 중 스위치가 닫힌 쪽으로 전류가 흐르면서 전압 강하가 발생된다. 이때, 제1 및 제2 비트셀 라인들(BCL1, BCL2)의 상단에서 전압을 측정하면, 측정된 전압은 각 비트셀에서 발생한 전압 강하를 합산한 값에 대응할 수 있다. 제1 비트셀 라인(BCL1)에 포함된 비트셀들(BC11, BC12, BC13)에서 발생하는 전압 강하는 아래 [표 5]와 같고, 제2 비트셀 라인(BCL2)에 포함된 비트셀들(BC21, BC22, BC23)에서 발생하는 전압 강하는 아래 [표 6]과 같다.
입력 웨이트 입력*웨이트 저항(Ω) 전류(A) 전압(V)
제1 비트셀(BC11) 1 1 1 20 1 20
제2 비트셀(BC12) 1 -1 -1 5 1 5
제3 비트셀(BC13) -1 -1 1 20 1 20
제1 비트셀 라인(BCL1) n/a n/a n/a 45 1 45
입력 웨이트 입력*웨이트 저항(Ω) 전류(A) 전압(V)
제1 비트셀(BC21) 1 -1 -1 5 1 5
제2 비트셀(BC22) 1 -1 -1 5 1 5
제3 비트셀(BC23) -1 1 -1 5 1 5
제2 비트셀 라인(BCL2) n/a n/a n/a 15 1 15
제1 비트셀 라인(BCL1)에서의 전압 강하 45V 및 제2 비트셀 라인(BCL2)에서의 전압 강하 15V는 각 비트셀 라인에 포함된 비트셀들에 인가된 웨이트와 입력의 MAC 연산 결과를 각각 나타낼 수 있다. 전압 강하와 MAC 연산 결과의 관계는 아래 [표 7]과 같이 예로 들 수 있다.
전압 강하(V) 입력과 웨이트의 곱의 합
15 -3
30 -1
45 1
60 3
[표 7]을 참조하면, 제1 비트셀 라인(BCL1)에서의 전압 강하가 45V로 측정되었다는 점으로부터 제1 비트셀 라인(BCL1)에 인가된 입력과 웨이트의 곱의 합은 '1'이라는 점을 알 수 있다. 또한, 제2 비트셀 라인(BCL2)에서의 전압 강하가 15V로 측정되었다는 점으로부터 제2 비트셀 라인(BCL2)에 인가된 입력과 웨이트의 곱의 합은 '-3'임을 알 수 있다.
도 5b에서는 비트셀 라인들(BCL1, BCL2) 각각은 3개의 비트셀들을 포함하는 것으로 예를 들어 설명하였으나, 하나의 비트셀 라인에 포함된 비트셀들의 개수는 하나 이상의 다양한 개수일 수 있다. 예를 들어, 하나의 비트셀 라인에는 64개 내지 256개 사이의 개수의 비트셀들이 포함될 수 있다.
도 5b에서는 프로세싱 장치(100)가 단지 2개의 비트셀 라인들을 포함하는 것으로 예를 들어 설명하였으나, 프로세싱 장치(100)에는 하나 이상의 다양한 개수의 비트셀 라인들이 포함될 수 있다. 예를 들어, 프로세싱 장치(100)에는 64개 내지 128개 사이의 개수의 비트셀 라인들이 포함될 수 있다.
한편, 복수의 비트셀들을 포함하는 비트셀 라인들이 복수 개 배열된 구조는 비트셀 어레이라고 지칭될 수 있다.
도 5b의 프로세싱 장치(100)는 웨이트에 해당하는 값을 가변저항으로 구성된 메모리 소자에 저장하고 메모리 소자에 저장된 값들을 이용하여 연산을 수행하는 인-메모리 프로세싱 장치일 수 있다. 인-메모리 프로세싱 장치는 메모리와 연산부가 분리된 폰 노이만(Von Neumann) 구조와 달리, 데이터 전달의 속도 및 전력소모가 개선될 수 있다.
도 5b의 실시예에서는 직렬로 연결된 비트셀들에 일정한 전류(I)를 인가하고 비트셀 라인에서 발생하는 전압 강하로부터 곱의 합에 대응하는 연산 결과를 도출하는 프로세싱 장치에 대해서 설명되었다. 다만, 도 3의 비트셀(BC) 구조는 다른 방식의 프로세싱 장치에도 적용될 수 있다.
도 6은 도 5a의 뉴럴 네트워크에서 요구되는 연산을 수행할 수 있는 프로세싱 장치의 다른 실시예를 도시하는 도면이다. 도 6을 참고하면, 도 5b와 달리, 직렬로 연결된 각 비트셀 라인(BCL1, BCL2)의 하단에 커패시터(BCLC1, BCLC2)가 제공될 수 있다. 즉, 다른 실시예에 따르면, 각 비트셀 라인(BCL1, BCL2)에 전압(V)을 인가한 후, 각 커패시터(BCLC1, BCLC2)의 전압이 특정한 값까지 상승하는 시간을 측정하는 방식인 TDC(Time to Digital Converter) 방식으로 프로세싱 장치(200)가 구현될 수도 있다.
도 7 내지 도 15는 도 3의 비트셀(BC)을 이용하여 구현된 프로세싱 장치의 레이아웃들을 설명하기 위한 도면들이다. 이하에서는 도 7 내지 도 15를 참조하여 프로세싱 장치의 구조에 대해 설명하도록 한다.
도 7은 일 실시예에 따른 프로세싱 장치에 포함된 비트셀에서 가변저항과 스위치 간 연결 구조를 설명하기 위한 도면이다. 도 7에서는 도 5b의 제1 비트셀 라인(BCL1)을 예로 들어, 액티브층, 가변저항층, 및 금속층들을 포함하는 프로세싱 장치의 단면도를 개념적으로 보여준다.
도 7을 참조하면, 스위치들(S11a, S12a, S13b)이 형성된 액티브층(L100), 제1 내지 제6 금속층들(M100 내지 M600) 및 가변저항층(L200)이 차례로 적층된다. 액티브층(L100)이 먼저 형성되고 액티브층(L100) 위로 금속 배선들과 가변저항들(R11a, R12a, R13b 등)을 제작하는 공정 순서에 의해, 액티브층(L100)과 가변저항층(L200)의 위치 관계가 정해질 수 있다.
액티브층(L100)은 도 5b의 스위치들(S11a, S12a, S13b 등)이 형성된 층으로서, 실리콘 웨이퍼 상에 트랜지스터 형성 공정 등을 통해 스위치들(S11a, S12a, S13b 등)이 형성된 층일 수 있다. 설명의 편의상, 액티브층(L100)에는 도 5b의 제1 비트셀 라인(BCL1)에 포함되는 스위치들(S11a, S11b, S12a, S12b, S13a, S13b, S1, S11, S12, S13) 중 [표 2]의 입력과 웨이트에 의해 제1 비트셀 라인(BCL1)에 흐르는 전류(I)의 경로상에 있는 스위치들(S11a, S12a, S13b)만 도시되어 있다. 도 5b의 나머지 스위치들(S11b, S12b, S13a, S1, S11, S12, S13)은 열린 상태(open)로서 제1 비트셀 라인(BCL1)에 인가된 전류(I)가 흐르지 않아 도 7에는 도시되지 않았다. 하지만, 도 7에 도시되지 않은 도 5b에서의 나머지 스위치들(S11b, S12b, S13a, S1, S11, S12, S13)도 액티브층(L100)에 형성되어 있으며, 스위치들(S11a, S12a, S13b)과는 수평적으로 다른 위치에 배치될 수 있다.
가변저항층(L200)은 도 5b의 가변저항들(R11a, R12a, R13b 등) 및 비아들(vias)(V11, V12, V13)이 형성된 층이며, 가변저항층(L200)의 상부에는 제7 금속층(M700)이 위치하고, 가변저항층(L200)의 하부에는 제6 금속층(M600)이 위치한다.
가변저항들(R11a, R12a, R13b 등)은 각 가변저항의 양단 중 일단이 제7 금속층(M700)에 접속하고, 타단은 제6 금속층(M600)에 접속하도록 가변저항층(L200)에서 수직 방향으로 형성될 수 있다. 이하에서는 수직 방향으로 형성된 가변저항들(R11a, R12a, R13b 등)의 제7 금속층(M700) 측 단부를 가변저항의 상단부라고 하고, 제6 금속층(M600) 측 단부를 가변저항의 하단부라고 지칭하도록 한다. 가변저항들(R11a, R12a, R13b 등)을 통해 흐르는 전류는 가변저항의 상단부에서 하단부 방향 또는 하단부에서 상단부 방향으로 흐를 수 있다.
도 7의 가변저항층(L200)에는 도 5b의제1 비트셀 라인(BCL1)에 포함된 가변저항들(R11a, R11b, R12a, R12b, R13a, R13b) 중 앞선[표 2]의 입력과 웨이트에 의해 전류가 흐르는 경로상에 있는 가변저항(R11a, R12a, R13b)만 도시되어 있다. 하지만, 비록 도 7에 도시되지 않았다 할지라도, 나머지 가변저항들(R11b, R12b, R13a)도 가변저항층(L200)에 형성되어 있으며, 가변저항들(R11a, R12a, R13b)과는 수평적으로 다른 위치에 배치될 수 있다.
비아들(V11, V12, V13)은 가변저항층(L200)을 관통하여 제7 금속층(M700)과 제6 금속층(M600)을 전기적으로 접속할 수 있다. 비아들(V11, V12, V13)을 통해 각 비트셀 의 가변저항들(R11a, R11b, R12a, R12b, R13a, R13b)이 직렬 연결될 수 있으며, 연결 구조에 대해서는 아래에서 보다 구체적으로 설명한다.
제1 내지 제7 금속층들(M100 내지 M700)은 가변저항들(R11a, R12a, R13b 등)과 스위치들(S11a, S12a, S13b 등)을 연결하는 배선, 및 스위치들(S11a, S12a, S13b 등)에 ON/OFF 신호를 전달하기 위한 배선 등의 도전성 배선들이 형성된 층들일 수 있다.
도 7에 도시된, 스위치들(S11a, S12a, S13b)과 가변저항들(R11a, R12a, R13b)의 연결 관계를 설명하면, 제1 비트셀 라인(BCL1)의 가장 마지막(최하단)에 배치된 제3 비트셀(BC13)에 포함된 스위치(S13b)를 제외하고는, 스위치들(S11a, S12a) 각각의 양단에는 서로 다른 가변저항들과 전기적으로 연결되어 있다.
제2 비트셀(BC12)의 제1 스위치(S12a)를 예로 들어 설명하면, 스위치(S12a)의 일단은 제2 비트셀(BC12)의 제1 가변저항(R12a)과 연결되고, 스위치(S12a)의 타단은 제3 비트셀(BC13)의 제2 가변저항(R13b)과 연결된다. 좀더 구체적으로 설명하면, 스위치(S12a)의 일단이 가변저항(R12a)의 하단부에 연결되고, 스위치(S12a)의 타단이 비아(V12)를 통해 가변저항(R13b)의 상단부에 연결된다. 앞서 설명한 바와 같이, 액티브층(L100)은 가변저항층(L200)의 아래에 위치하기 때문에 스위치(S12a)를 가변저항(R13b)의 상단부와 연결하기 위해 가변저항층(L200)을 관통하는 제2 비트셀(BC12)의 비아(V12)가 사용될 수 있다. 도 5b를 참조하면, 제2 비트셀(BC12)의 비아(V12)에 의해 연결되는 위치는, 제2 비트셀(BC12) 및 제3 비트셀(BC13)의 연결부인 'A' 영역일 수 있다. 다른 말로 표현하면, 제2 비트셀(BC12)의 어느 스위치와 제3 비트셀(BC13)의 어느 가변저항을 연결하기 위해서는 비아(V12)가 사용될 수 있다. 유사하게, 도 7의 제1 비트셀(BC11)의 비아(V11)는 제1 비트셀(BC11)의 어느 스위치와 제2 비트셀(BC12)의 어느 가변저항을 전기적으로 연결할 수 있다. 즉, 이와 같이 비아들을 사용함으로써 각 비트셀의 어느 가변저항들은 직렬로 연결될 수 있다.
도 8은 도 7의 가변저항층(L200)을 보다 상세하게 도시하는 수평 단면도이다.
도 8을 참고하면, 가변저항층(L200)은 각각 3개의 비트셀들을 포함하는 4개의 비트셀 라인들을 포함할 수 있다. 도 5b에는 제1 및 제2 비트셀 라인(BCL1, BCL2)만이 도시되었다. 도 5b와 비교하여, 도 8에서는 가변저항들 및 비아들의 배치 구조를 보여주기 위해, 제3 및 제4 비트셀 라인들(BCL3, BCL4)을 더 포함하는 4개의 비트셀 라인들이 도시되어 있다. 제1 비트셀 라인(BCL1)과 제3 비트셀 라인(BCL3)은 구조가 동일하고 제2 비트셀 라인(BCL2)과 제4 비트셀 라인(BCL4)은 구조가 동일하므로, 제3 및 제4 비트셀 라인들(BCL3, BCL4)의 가변저항들 및 비아들에는 별도의 도면 참조부호를 붙이지 않고 설명한다.
도 8을 참조하면, 각 비트셀은 가변저항과 비아 외에 비활성 가변저항을 더 포함할 수 있다. 제1 비트셀 라인(BCL1)의 제1 비트셀(BC11)을 예로 들면, 제1 비트셀(BC11)은 도 5b의 가변저항들(R11a, R11b)과 비아(V11)외에 9개의 비활성 가변저항들(Ri)을 더 포함할 수 있다.
비활성 가변저항들(Ri)은 앞서 설명한 가변저항들(R11a, R11b)과 달리 프로세싱에 활용되지 않는 가변저항들이며, 도 5b의 스위치들(S11a, S11b 등)과 전기적으로 접속되지 않는다. 프로세싱에 활용되는 가변저항들(R11a, R11b 등)은 비활성 가변저항들(Ri)과 구분하기 위하여 활성 가변저항이라고 지칭될 수 있다. 비활성 가변저항들(Ri)은 균일한 전기적 특성을 가지는 활성 가변저항들(R11a, R11b 등)을 얻기 위해 형성된 것일 수 있다. 구체적으로, 제조 공정 상의 문제들로 인해, 다른 가변저항들에 둘러싸인 위치에 형성된 가변저항들이 가장자리에 형성된 가변저항들에 비해 상대적으로 균일한 전기적 특성을 보이는 경우가 있어, 신뢰성이 양호한 중심부에 위치한 가변저항들만 프로세싱에 사용되고, 나머지 가변저항들은 사용되지 않는 비활성 가변저항이 될 수 있다.
도 8의 4개의 비트셀들(BC11, BC12, BC21, BC22)에 포함된 가변저항들을 예로 들어 설명하도록 한다. 어느 하나의 비트셀에는 11개의 가변저항들이 형성되어 있고, 4개의 비트셀들(BC11, BC12, BC21, BC22)에는 총 44개의 가변저항들이 형성되어 있다. 여기서, 활성 가변저항은 비트셀 중심부에 위치하여 다른 가변저항들에 둘러 싸여 배치될 수 있다. 즉, 4개의 비트셀들(BC11, BC12, BC21, BC22)에서는 36개의 비활성 가변저항들(Ri)에 의해 둘러싸인 위치에 배치된 8개의 가변저항들(R11a, R11b, R12a, R12b, R21a, R21b, R22a, R22b)이 활성 가변저항들에 해당할 수 있다.
도 8을 참조하면, 비아들(V11, V12 등) 각각은 도 7에서 설명된 바와 같이, 가변저항층(L200)에서 가변저항층(L200)을 관통하는 구조로 형성되며, 어느 가변저항의 상단부를 스위치와 연결하기 위해 사용될 수 있다. 비아들(V11, V12 등)은 가변저항들과 충분히 이격된 위치에 배치될 수 있다. 도 8의 제1 비트셀 라인(BCL1)의 제1 비트셀(BC11)을 예로 들면, 우측 하단 모서리 근처에 활성 및 비활성 가변저항들(R11a, R11b, Ri)이 배치되고, 비아(V11)는 가변저항들(R11a, R11b, Ri)과 충분히 이격된 위치인 좌측 상단 모서리 근처에 배치될 수 있다.
앞서 서술한 도 8의 배치에 따르면, 비아(V11, V12 등)와 활성 가변저항들(R11a, R11b 등) 간 최소 거리(d1)는, 비아(V11, V12 등)와 비활성 가변저항(Ri) 간 최소 거리(d2) 보다 클 수 있다. 비아(V11, V12 등)와 활성 가변저항들(R11a, R11b 등) 간 최소 거리(d1)는 예를 들어 0.50 ㎛ ~ 1.20 ㎛, 일 수 있으며, 비아(V11, V12 등)와 비활성 가변저항들(Ri)간 최소 거리(d2)는 예를 들어 0.30 ㎛ ~ 0.60 ㎛ 일 수 있다.
가변저항들(R11a, R11b, Ri) 사이의 최소 거리(d3)는 비아(V11, V12 등)와 활성 가변저항(R11a, R11b) 간 최소 거리(d1) 또는 비아(V11, V12 등)와 비활성 가변저항(Ri) 간 최소 거리(d2)보다 작을 수 있고, 예를 들어 0.10 ㎛ ~ 0.40 ㎛ 일 수 있다. 또한, 비아(V11, V12 등)와 인접한 비아 간의 최소 거리(d4)는 비아(V11, V12 등)와 활성 가변저항(R11a, R11b) 간 최소 거리(d1) 및 비아(V11, V12 등)와 비활성 가변저항(Ri) 간 최소 거리(d2)보다 작을 수 있고, 예를 들어 0.10 ㎛ ~ 0.40 ㎛ 일 수 있다.
이웃하는(또는 인접한) 비트셀들에서 가변저항들 및/또는 비아들의 배치는, 이웃하는(또는 인접한) 비트셀들 사이의 경계선을 기준으로 상하 대칭 및/또는 좌우 대칭일 수 있다. 예를 들면, 제1 비트셀(BC11)에 포함된 가변저항들(R11a, R11b, Ri) 및 비아(V11)의 배치는, 이웃하는 비트셀들(BC11, BC12) 사이의 경계선을 기준으로, 제2 비트셀(BC12)에 포함된 가변저항들(R12a, R12b, Ri) 및 비아(V12)의 배치와 상하 대칭일 수 있다. . 마찬가지로, 제1 비트셀 라인(BCL1)의 제1 비트셀(BC11)에 배치된 가변저항들(R11a, R11b, Ri) 및 비아(V11)의 배치는, 이웃하는 비트셀들(BC11, BC21)사이의 경계선을 기준으로, 제2 비트셀 라인(BCL1)의 제1 비트셀(BC21)에 포함된 가변저항들(R21a, R21b, Ri) 및 비아의 배치와 좌우 대칭일 수 있다.
도 9a는 도 8의 X-X'선을 따라 자른 수직 단면도이고, 도 9b는 도 8의 Y-Y'선을 따라 자른 수직 단면도이다.
도 9a 및 도 9b를 참조하면, 프로세싱 장치(100)는 복수의 스위치들(S11a, S11b 등)이 형성된 액티브층(L100), 가변저항들(R11a, R11b 등) 및 비아들(V11, V12 등)이 형성된 가변저항층(L200), 및 복수의 금속층들(M100, M200, M300, M400, M500, M600, M700)을 포함할 수 있다.
액티브층(L100)은 비트셀들(예를 들어, 도 5b의 BC11, BC12, BC21, BC22)에 포함된 스위치들(예를 들어, 도 5b의 S11a, S11b 등)이 형성된 층이다. 비록 도 9a에는 X-X' 단면에서의 일부 스위치들(S11a, S11b)만 표시되었으나, 도시되지 않은 다른 스위치들도 액티브층(L100)에 형성될 수 있다. 액티브층(L100)은 실리콘 기반의 반도체 층일 수 있다. 스위치들(S11a, S11b 등)의 구체적인 구조는 도 10을 참조하여 아래에서 설명한다.
복수의 금속층들(M100, M200, M300, M400, M500, M600, M700)은 활성 가변저항들(R11a, R11b 등)과 스위치들(S11a, S11b 등)을 연결하는 배선, 스위치들(S11a, S11b 등)에 ON/OFF 신호를 전달하는 배선, 및 비트-데이터 라인들을 포함할 수 있다. 예를 들면, 금속층들(M100, M200, M300, M400, M500, M600)을 연결하는 비아들을 통해, 활성 가변저항(R11a)의 하단부는 스위치(S11a)의 드레인(S11aD)에 접속될 수 있다. 비록 활성 가변저항(R11a)이 드레인(S11aD)에 접속하는 경로가 도 9a 및 도 9b에 모두 도시되어 있지는 않으나 다양한 설계를 통해 접속 경로가 제공될 수 있다. 일 예에서, 제3 금속층(M300)은 스위치들(S11a, S11b 등)에 ON/OFF 신호를 전달하는 배선을 포함할 수 있고, 제4 금속층(M400)은 도 6의 비트- 테이터 라인들(BDL1a, BDL1b)을 포함할 수 있다. 또한, 제7 금속층(M700)은 비아들(V11, V12 등)과 활성 가변저항들(R12a, R13b)의 상단부를 연결하는 배선을 포함할 수 있다.
도 10은 도 9a의 액티브층(L100)의 평면도이다.
도 10을 참고하면, 도 5b의 비트셀들(BC11, BC12, BC21, BC22)에 포함된 스위치들(S11a, S11b, S11, 등)이 도시되어 있다. 도 10에서는 제1 비트셀 라인(BCL1)의 제1 비트셀(BC11)에 포함된 3개의 스위치들(S11a, S11b, S11)을 예로 들어 액티브 층(L100)의 구조에 대해 상세히 설명하도록 한다.
액티브 층(L100)에 포함된 스위치들(S11a, S11b, S11, 등)은 소스, 드레인, 게이트를 포함하는 MOSFET(Metal Oxide Semiconductor Field Effect Transistor) 트랜지스터들일 수 있다. MOSFET 트랜지스터로 구현된 스위치는 게이트에 게이트 전압(문턱전압 이상)이 인가되면 스위치가 켜져(turn-on) 소스와 드레인이 전기적으로 접속될 수 있고, 게이트 전압이 인가되지 않으면 스위치가 꺼져(turn-off) 소스와 드레인 사이가 전기적으로 끊어지는 방식으로 동작할 수 있다. 예를 들어, 제1 스위치(S11a)의 게이트(S11aG)에 게이트 전압이 인가되면, 제1 스위치(S11a)가 켜져(turn-on) 제1 스위치(S11a)의 소스(S11CS1)와 제1 스위치(S11a)의 드레인(S11aD)이 전기적으로 접속될 수 있다. 도 10에서, 제1 스위치(S11a)와 제2 스위치(S11b)는 소스(S11CS1)를 공통으로 공유하는 구조로 구현될 수 있다. 비트-데이터 라인 스위치(S11)는 2개의 게이트들(S11Ga, S11Gb), 2개의 드레인들(S11Da, S11Db) 및 공통소스(S11CS2)를 포함하는 구조를 갖는다. 비트-데이터 라인 스위치(S11)는 동일한 신호를 받는 2개의 트랜지스터들을 이용함으로써, 마치 1개의 트랜지스터와 같이 동작할 수 있다. 액티브층(L100)의 스위치들(S11a, S11b, S11, 등)은 표시된 영역(L110)에서 제1 금속층(M100)과 접속할 수 있다.
도 11은 도 9a의 제7 금속층(M700)의 평면도이다.
도 11을 참고하면, 제7 금속층(M700)은 가변저항층(L200) 상부에 적층되어, 비아들(V11, V12 등)과 활성 가변저항들(R11a, R11b 등)의 상단부를 연결하는 배선들을 제공할 수 있다. 예를 들면, 제1 비트셀(BC11)의 비아(V11)는 제7 금속층(M700)의 배선(M750)을 통해 제2 비트셀(BC12)의 활성 가변저항들(R12a, R12b)의 상단부에 접속될 수 있다.
도 7을 함께 참조하여 좀더 구체적으로 설명하면, 제1 비트셀(BC11)의 활성 가변저항들(R11a, R11b) 각각의 상단부에서 하단부로 흐르는 전류(I)는 금속층들(M100 내지 M600)을 거쳐 액티브층(L100)까지 내려가 스위치들(S11a, S11b) 각각을 통과할 수 있다. 그리고 나서, 전류(I)는 다시 금속층들(M100 내지 M600) 및 비아(V11)를 거쳐 제1 금속층(M700)의 배선(M750)을 통해 제2 비트셀(BC12)의 활성 가변저항들(R12a, R12b) 각각의 상단부로 흐를 수 있다.
금속층들(M100, M200, M500, M600) 또한 앞서 설명된 구성요소들 사이의 전기적인 접속을 위해 필요한 배선들을 제공할 수 있다. 한편, 금속층들(M100 내지 M600) 사이에는 절연층이 배치될 수 있다.
앞서 설명된 실시예들에서는 가변저항층(L200)이 1개의 비트셀마다 1개의 비아(V11, V12 등)를 포함하는 구조에 대해 예시적으로 설명하였으나, 비트셀 라인에 포함된 비아의 개수는 비트셀들의 개수보다 많거나 또는 적을 수 있다. 예를 들어, 어느 비트셀 라인 내 이웃하는(또는 인접한) 2개의 비트셀들마다 1개의 비아를 포함하는 구조도 가능하다.
도 12는 도 5b와 다른 구조의 비트셀을 포함하는 프로세싱 장치의 실시예를 보여주는 도면이다.
도 12를 참고하면, 프로세싱 장치(300)는 비트셀 라인(BCL1)을 흐르는 전류(I)가 가변저항(예를 들어, R11a 또는 R13b)보다 먼저 스위치(예를 들어, S11a 또는 S13b)를 통해 흐르도록 배치된 구조의 비트셀들(BC11, BC13)을 포함한다.
도 12의 제1 비트셀(BC11) 구조를 도 5b의 제1 비트셀(BC11)과 비교하면, 도 5b의 제1 비트셀(BC11)로 흐르는 전류(I)는 제1 가변저항(R11a)을 거쳐 제1 스위치(S11a)로 흐르는 반면, 도 12의 제1 비트셀(BC11)로 흐르는 전류(I)는 제1 스위치(S11a)를 거쳐 제1 가변저항(R11a)으로 흐른다. 즉, 도 12의 제1 비트셀(BC11)의 구조와 도 5b의 제1 비트셀(BC11)의 구조에서는, 전류(I)의 방향을 기준으로 스위치(S11a, S11b)와 가변저항(R11a, R11b)의 위치가 반대이다.
프로세싱 장치(300)에는 제1 비트셀(BC11)과 같이 스위치(S11a, S11b)와 가변저항(R11a, R11b)의 위치가 역전된 비트셀과 도 5b의 제2 비트셀(BC12)과 같이 스위치(S12a, S12b)와 가변저항(R12a, R12b)의 위치가 역전되지 않은 비트셀이 교번하여 배치되어 있을 수 있다. 다시 말하면, 프로세싱 장치(300)는 스위치와 가변저항의 위치가 역전된 제1 및 제3 비트셀들(BC11, BC13) 사이에, 스위치와 가변저항의 위치가 역전되지 않은 제2 비트셀(BC12)이 배치될 수 있다.
도 12의프로세싱 장치(300)의 회로 구성에 따르면, 비트셀 라인(BCL1)을 흐르는 전류(I)는 도 8의 비아들(V11, V12 등)과 같이 가변저항층(L200)에 형성된 비아를 경유하지 않고도, 비트셀 라인(BCL1)을 흐를 수 있다. 도 13을 참조하여 이와 관련한 가변저항과 스위치의 연결 관계를 보다 상세하게 설명한다.
도 13은 도 12의 프로세싱 장치의 액티브층, 가변저항층, 및 금속층들의 단면을 개념적으로 보여준다.
도 13을 참조하면, 제1 비트셀 라인(BCL1)을 흐르는 전류(I)는 제1 비트셀(BC11) 에서 제1 스위치(S11a)를 지나 제1 가변저항(R11a)을 지나갈 수 있다. 제1 가변저항(R11a)의 일단(상단부)과 제2 비트셀(BC12)의 제1 가변저항(R12a)의 일단(상단부)이 제7 금속층(M700)을 통해 연결되어 있다. 따라서, 도 7과 달리, 제1 가변저항(R11a)을 통과한 전류(I)는 어떠한 스위치도 거치지 않고 제2 비트셀(BC12)의 제1 가변저항(R12a)으로 흐를 수 있다. 비트-데이터 라인 스위치들(S1, S11, S12, S13)은 웨이트를 인가할 시에만 닫히고 그 외에는 열린 상태로 유지된다. 따라서, 웨이트 인가 후에는, 비트-데이터 라인들(BDL1a, BDL1b)로부터는 제1 비트셀 라인(BCL1)으로 전류(I)가 흐르지 않는다. 제2 비트셀(BC12)의 제1 가변저항(R12a)을 통과한 전류(I)는 스위치들(S12a, S13a)을 거쳐 제3 비트셀(BC13)의 제2 가변저항(R13b)으로 흐를 수 있다. 앞서 설명된 바와 같이, 도 13에서 제1 비트셀 라인(BCL1)을 흐르는 전류(I)는 가변저항층(L200)에 형성된 비아들(V11, V13)을 경유하지 않고 흐를 수 있다.
도 13의 비아들(V11, V13)은 가변저항들(R11a, R12a 등)의 저항 값들을 변경하기 위한 경로를 제공할 수 있다. 예를 들어, 도 13의 제2 가변저항(R12a)의 저항 값을 변경하는 과정에서는 제1 비아(V11)가 이용될 수 있다. 어느 비트셀에 웨이트를 인가할 때 가변저항의 저항 값을 변경하는 방법은 앞서 도 3의 비트셀(BC)에 대해 설명되었다. 도 12를 다시 참조하면, 제2 가변저항(R12a)의 저항 값을 변경하기 위해 제2 가변저항(R12a)의 양단이 제1 및 제2 비트-데이터라인들(BDL1a, BDL1b)에 연결될 수 있다. 구체적으로, 제2 가변저항(R12a)의 상단부는 제1 비트-데이터 라인 스위치(S11)를 통해 제2 비트-데이터 라인(BDL1b)에 연결될 수 있고, 제2 가변저항(R12a)의 하단부는 제2 비트셀(BC12)의 제1 스위치(S12a) 및 제2 비트-데이터 라인 스위치(S12)를 통해 제1 비트-데이터 라인(BDL1a)에 연결될 수 있다. 도 13을 참조하면, 제2 가변저항(R12a)의 상단부는 제1 비아(V11)를 통해 제1 비트-데이터 라인 스위치(S11)와 연결될 수 있다. 다른 말로 표현하면, 도 13에 도시된 바와 같이, 비아들(V11, V13) 각각은 어느 가변저항과 어느 비트-데이터 라인 스위치를 연결하는 경로를 제공함을 알 수 있다.
도 13의 비트셀들과 도 7의 비트셀들 각각에 대하여 가변저항층(L200)에 형성된 비아의 개수를 비교하면, 도 7 에서는 비트셀들 각각이 1개의 비아를 포함하는 것으로 도시된 반면, 도 13에서는 2개의 비트셀들마다 1개의 비아가 포함된 것으로 도시되어 있다. 구체적으로, 도 13의 제1 비트셀(BC11)과 제2 비트셀(BC12)은 1개의 비아(V11)만 포함할 수 있다. 도 13의 비트셀 라인(BCL1)은 제1 및 제3 비트셀들(BC11, BC13)과 같이 홀수 번째 비트셀에 비아가 형성된 구조인 것으로 예로 들었으나, 짝수 번째 배치된 비트셀의 가변저항 층에 형성된 비아를 포함하는 구조도 가능하다.
도 14는 일 실시예에 따른 프로세싱 장치의 칩 블록도이다.
도 14를 참고하면, 프로세싱 장치(700)는 비트셀 어레이(710), 컨트롤러(720), 로우(row) 디코더(730), 컬럼(column) 디코더(740), 웨이트 드라이버(750), 전류원 제어기(760), 데이터 버퍼(770) 및 전압 측정기(780)를 포함한다. 도 14에 도시된 프로세싱 장치(700)에는 앞서 설명된 실시예들과 관련된 구성요소들이 도시되어 있다. 하지만, 이에 제한되지 않고 프로세싱 장치(700)에는 도 14에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있다.
컨트롤러(720)는 프로세싱 장치(700)의 구동 및 동작에 필요한 명령을 디코딩할 수 있다. 예를 들어, 컨트롤러(720)는 웨이트의 설정, 웨이트 설정 검사, 입력의 인가, 전압의 측정 등의 명령을 디코딩하고, 이들 명령의 수행에 필요한 구성에 신호를 전달한다.
비트셀 어레이(710)는 앞서 서술된 가변저항들과 스위치들로 구성된 비트셀들의 어레이일 수 있다. 여기서, 가변저항은 자성 물질을 갖는 자기 터널 접합(MTJ) 소자일 수 있다.
로우 디코더(730)는 로우 어드레스와 입력 신호를 받아 비트셀 어레이(710)에 입력 값을 인가할 수 있다. 로우 디코더(730)는 DAC(Digital to Analog Converter)(또는 ADC(Analog to Digital Converter))를 포함할 수 있고, 입력 값에 기초하여 가변저항과 직렬로 연결된 스위치에 구동 전압을 인가할 수 있다. 또한, 로우 디코더(730)는 비트셀 어레이(710) 내 비트셀에 포함된 가변저항의 저항 값을 변경할 수 있고, 이때 타겟 가변저항이 선택될 수 있도록 연관된 스위치들에 구동 전압을 인가할 수 있다.
컬럼 디코더(740)는 컬럼 어드레스와 웨이트 설정 신호를 수신하여 가변저항에 전압/전류를 인가할 수 있다. 컬럼 디코더(740)는 전압 측정이 필요한 비트셀 라인, 및 웨이트 설정이 요구되는 비트셀과 연결된 웨이트 라인을 선택할 수 있다.
웨이트 드라이버(750)는, 웨이트를 설정할 때 로우 디코더(730) 및 컬럼 디코더(740)에 의해 선택된 비트셀에 웨이트 데이터를 전달할 수 있다. 웨이트 드라이버(750)는 데이터 버퍼(770)로부터 수신된 데이터에 기반하여 컬럼 디코더(740)에 연결된 웨이트 라인을 구동하여, 웨이트의 설정 및 설정된 웨이트의 검사를 수행할 수 있다. 웨이트 드라이버(750)는 가변저항에 원하는 저항 값이 설정되었는지 검사하기 위하여, 웨이트 라인에 검사 전류를 인가하는 전류원을 포함할 수 있다.
전류원 제어기(760)는 컨트롤러(720)의 신호를 수신하여 전류원을 구동하며, 비트셀 라인에 전류를 인가한다.
전압 측정기(780)는 비트셀 라인 또는 비트셀 라인 일단에 연결된 커패시터의 전압을 측정하고, 측정 값을 외부 메모리(미도시)에 저장할 수 있다. 전압 측정기(780)는 측정 값을 디지털 값으로 출력하는 ADC를 포함할 수 있다.
도 15는 일 예에 따른 전자 시스템을 나타내는 블록도이다.
도 15를 참고하면, 전자 시스템(800)은 프로세싱 장치를 포함한 뉴럴 네트워크 장치(830)를 기초로 입력 데이터를 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 전자 시스템(800)이 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예컨대 전자 시스템(800)은 드론(Drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT 디바이스 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 디바이스들에 탑재될 수 있다.
전자 시스템(800)은 뉴럴 네트워크 장치(830)에 더하여 프로세싱 유닛(810), RAM(820), 메모리(840), 센서 모듈(850) 및 통신 모듈(Tx/Rx Module)(860)을 포함할 수 있다. 추가적으로, 전자 시스템(800)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있다. 전자 시스템(800)의 하드웨어 구성들 중 일부는 반도체 칩에 탑재될 수 있다. 뉴럴 네트워크 장치(830)는 앞서 설명된 실시예들의 프로세싱 장치가 온-칩(On-chip) 타입으로 구현된 것이거나, 또는 앞서 설명된 실시예들의 프로세싱 장치를 일부로서 포함하는 장치일 수 있다.
프로세싱 유닛(810)은 전자 시스템(800)의 전반적인 동작을 제어할 수 있다. 프로세싱 유닛(810)은 CPU(Central Processing Unit)일 수 있으며, 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 프로세싱 유닛 (810)은 메모리(840)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있고, 메모리(840)에 저장된 프로그램들을 실행함으로써 뉴럴 네트워크 장치(830)의 기능을 제어할 수 있다. 프로세싱 유닛(810)은 CPU 외에 GPU(Graphic Processing Unit), AP(Application Processor) 등으로 구현될 수도 있다.
RAM(820)은 프로그램들, 데이터, 또는 명령들(Instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리(840)에 저장된 프로그램들 및/또는 데이터는 프로세싱 유닛(810)의 제어 또는 부팅 코드에 따라 RAM(820)에 일시적으로 저장될 수 있다. RAM(820)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리 디바이스로 구현될 수 있다.
뉴럴 네트워크 장치(830)는 수신되는 입력 데이터를 기초로 뉴럴 네트워크의 연산을 수행하고, 수행 결과를 기초로 정보 신호를 생성할 수 있다. 뉴럴 네트워크 장치(830)는 앞서 설명된 실시예들의 프로세싱 장치를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolution Neural Network), RNN(Recurrent Neural Networks), Deep Belief Networks, Restricted Boltzman Machines 등을 포함할 수 있으나 이에 제한되지 않는다. 뉴럴 네트워트 장치(830)는 뉴럴 네트워크 전용 하드웨어 가속기(Hardware Accelerator)에 해당될 수 있다.
정보 신호는 음성 인식 신호, 사물 인식 신호, 영상 인식 신호, 생체 정보 인식 신호 등과 같은 다양한 종류의 인식 신호를 포함할 수 있다. 예를 들어, 뉴럴 네트워크 장치(830)는 비디오 스트림에 포함되는 프레임 데이터를 입력 데이터로서 수신하고, 프레임 데이터가 나타내는 이미지에 포함된 사물에 대한 인식 신호를 생성할 수 있다. 전자 시스템(800)이 탑재된 전자 장치의 종류 또는 기능에 따라 뉴럴 네트워크 장치(830)는 다양한 종류의 입력 데이터를 수신할 수 있고, 입력 데이터에 따른 인식 신호를 생성할 수 있다.
메모리(840)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리(840)는 휘발성 메모리 또는 불휘발성 메모리를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 메모리(840)는 예를 들어, HDD(Hard Disk Drive), SSD(Solid State Drive), CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(Extreme Digital) 또는 Memory Stick을 포함할 수 있다.
센서 모듈(850)은 전자 시스템(800)이 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(850)은 전자 장치의 외부로부터 신호(예컨대 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 센싱 또는 수신된 신호를 데이터로 변환할 수 있다. 이를 위해, 센서 모듈(850)은 센싱 장치, 예컨대 마이크, 촬상 장치, 이미지 센서, 라이더(LIDAR; Light Detection and Ranging) 센서, 초음파 센서, 적외선 센서, 바이오 센서, 또는 터치 센서 등 다양한 종류의 센싱 장치일 수 있다.
센서 모듈(850)은 변환된 데이터를 뉴럴 네트워크 장치(830)에 입력 데이터로서 제공할 수 있다. 예를 들어, 센서 모듈(850)은 이미지 센서를 포함할 수 있으며, 전자 장치의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 데이터 프레임을 뉴럴 네트워크 장치(830)에 입력 데이터로서 순서대로 제공할 수 있다. 그러나 이에 제한되는 것은 아니며 센서 모듈(850)은 다양한 종류의 데이터를 뉴럴 네트워크 장치(830)에 제공할 수 있다.
통신 모듈(860)은 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스를 구비할 수 있다. 예컨대 통신 모듈(860)은 유선 근거리통신망(Local Area Network; LAN), Wi-fi(Wireless Fidelity)와 같은 무선 근거리 통신망 (Wireless Local Area Network; WLAN), 블루투스(Bluetooth)와 같은 무선 개인 통신망(Wireless Personal Area Network; WPAN), 무선 USB (Wireless Universal Serial Bus), Zigbee, NFC (Near Field Communication), RFID (Radio-Frequency Identification), PLC(Power Line Communication), 또는 3G (3rd Generation), 4G (4th Generation), LTE (Long Term Evolution), 5G(5th Generation) 등 이동 통신망(Mobile Cellular Network)에 접속 가능한 통신 인터페이스 등을 포함할 수 있다.
전자 시스템(800)은 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리 디바이스, 디스크 드라이브와 같은 영구 저장부(Permanent Storage), 외부 장치와 통신하는 통신 포트뿐만 아니라, 터치 패널, 키(Key), 버튼 등과 같은 사용자 인터페이스 장치 등을 더 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 프로세서 상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다.
앞서 설명한 실시예들은 예시들일 뿐이며, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 잘 알려진 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 다른 기능적인 측면들의 기재는 생략되었다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로 구현될 수 있다.
앞선 실시예들과 관련된 기술 분야에서 통상의 지식을 가진 자는 상술한 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예들이 변형된 형태로 구현될 수 있음을 이해할 수 있다. 실시예들의 설명은 한정적인 관점이 아니라 설명적인 관점으로 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 기재되어 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 권리범위에 포함된 것으로 해석되어야 한다.

Claims (34)

  1. 복수의 활성 가변저항들과 복수의 비활성 가변저항들을 포함하는 가변저항층;
    상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및
    상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결하는 배선들을 포함하는 복수의 금속층들;을 포함하는 복수의 비트셀들을 포함하고,
    상기 복수의 비트셀들 중 적어도 하나의 비트셀은
    상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 연결하는 비아를 포함하는, 프로세싱 장치.
  2. 제1항에 있어서,
    상기 복수의 비트셀들 중 이웃하는 비트셀들에서 상기 비아, 상기 활성 가변저항들 및 상기 비활성 가변저항들의 배치는, 상기 이웃하는 비트셀들 간 경계를 기준으로 대칭인, 프로세싱 장치.
  3. 제1항에 있어서,
    상기 복수의 비트셀들 각각은 상기 비아를 포함하는, 프로세싱 장치.
  4. 제1항에 있어서,
    상기 복수의 비트셀들은 직렬로 연결된 비트셀들을 포함하고,
    상기 직렬로 연결된 비트셀들은, 이웃하는 2개의 비트셀들 마다 1개의 비아를 포함하는, 프로세싱 장치.
  5. 제1항에 있어서,
    상기 복수의 비트셀들은 직렬로 연결된 64개 이상의 비트셀들을 포함하는, 프로세싱 장치.
  6. 제1항에 있어서,
    상기 복수의 비트셀들은 64개 이상의 비트셀 라인들을 포함하는 비트셀 어레이를 형성하고,
    상기 비트셀 라인들 각각은 상기 비트셀들 중 직렬로 연결된 비트셀들을 포함하는, 프로세싱 장치.
  7. 제1항에 있어서,
    상기 스위치들 중 적어도 하나는, 공통 소스 및 전기적으로 연결된 2개의 드레인들을 포함하는 스위치인, 프로세싱 장치.
  8. 제1항에 있어서,
    상기 프로세싱 장치는 인-메모리(In-Memory) 프로세싱 장치인, 프로세싱 장치.
  9. 복수의 활성 가변저항들을 포함하는 가변저항층;
    상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및
    상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결시키는 배선들을 포함하는 복수의 금속층들;을 포함하고,
    상기 가변저항층은 상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 연결하는 적어도 하나의 비아를 포함하는, 프로세싱 장치.
  10. 제9항에 있어서,
    상기 금속층들은, 상기 가변저항층 상에 적층되어 상기 비아의 상단부 및 상기 활성 가변저항들 중 적어도 하나의 활성 가변저항의 상단부를 연결하는 배선을 포함하는 금속층을 포함하는, 프로세싱 장치.
  11. 제10항에 있어서,
    상기 가변저항층은 상기 스위치들과 전기적으로 접속되지 않는 비활성 가변저항들을 더 포함하고,
    비아와 활성 가변저항 간 최소 거리는 비아와 비활성 가변저항 간 최소 거리보다 큰, 프로세싱 장치.
  12. 제11항에 있어서,
    상기 가변저항층은 복수의 비아들을 포함하고,
    비아들 간 최소 거리는 상기 비아와 상기 비활성 가변저항 간 상기 최소 거리보다 작은, 프로세싱 장치.
  13. 제11항에 있어서,
    상기 비아와 상기 비활성 가변저항 간 상기 최소 거리는, 비활성 가변저항들 간 최소거리, 활성 가변저항들 간 최소거리, 및 비활성 가변저항과 활성 가변저항 간 최소 거리보다 큰, 프로세싱 장치.
  14. 제11항에 있어서,
    상기 가변저항층은 복수의 비아들을 포함하고,
    상기 비아들 간 최소 거리는 0.10 ㎛ 내지 0.40 ㎛인, 프로세싱 장치.
  15. 제11항에 있어서,
    비아와 활성 가변저항 간 최소 거리는 0.50 ㎛ 내지 1.20 ㎛인, 프로세싱 장치.
  16. 제11항에 있어서,
    상기 비아와 상기 비활성 가변저항 간 상기 최소 거리는 0.30 ㎛ 내지 0.60 ㎛인, 프로세싱 장치.
  17. 제9항에 있어서,
    상기 활성 가변저항들 각각은 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자인, 프로세싱 장치.
  18. 뉴럴 네트워크 장치; 및
    상기 뉴럴 네트워크 장치의 기능을 제어하는 프로세싱 유닛을 포함하고,
    상기 뉴럴 네트워크 장치는
    복수의 활성 가변저항들과 복수의 비활성 가변저항들을 포함하는 가변저항층;
    상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및
    상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결하는 배선들을 포함하는 복수의 금속층들;을 포함하는 복수의 비트셀들을 포함하고,
    상기 복수의 비트셀들 중 적어도 하나의 비트셀은
    상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 서로 연결하는 비아를 포함하는, 전자 시스템.
  19. 제18항에 있어서,
    상기 복수의 비트셀들 중 이웃하는 비트셀들에서 상기 비아, 상기 활성 가변저항들 및 상기 비활성 가변저항들의 배치는, 상기 이웃하는 비트셀들 간 경계를 기준으로 대칭인, 전자 시스템.
  20. 제18항에 있어서,
    상기 비트셀들 각각은, 병렬로 연결된 2개의 활성 가변저항들과 상기 활성 가변저항들 각각에 직렬로 연결된 2개의 스위치들을 포함하는, 전자 시스템.
  21. 제18항에 있어서,
    상기 복수의 비트셀들 각각은 상기 비아를 포함하는, 전자 시스템.
  22. 제18항에 있어서,
    상기 복수의 비트셀들은 직렬로 연결된 비트셀들을 포함하고,
    상기 직렬로 연결된 비트셀들은, 이웃하는 2개의 비트셀들 마다 1개의 비아를 포함하는, 전자 시스템.
  23. 제18항에 있어서,
    상기 복수의 비트셀들은 직렬로 연결된 64개 이상의 비트셀들을 포함하는, 전자 시스템.
  24. 제18항에 있어서,
    상기 복수의 비트셀들은 64개 이상의 비트셀 라인들을 포함하는 비트셀 어레이를 형성하고,
    상기 비트셀 라인들 각각은 상기 비트셀들 중 직렬로 연결된 비트셀들을 포함하는, 전자 시스템.
  25. 제18항에 있어서,
    상기 스위치들 중 적어도 하나는, 공통 소스 및 전기적으로 연결된 2개의 드레인들을 포함하는 스위치인, 전자 시스템.
  26. 뉴럴 네트워크 장치; 및
    상기 뉴럴 네트워크 장치의 기능을 제어하는 프로세싱 유닛을 포함하고,
    상기 뉴럴 네트워크 장치는
    복수의 활성 가변저항들과 복수의 비활성 가변저항들을 포함하는 가변저항층;
    상기 활성 가변저항들 각각의 양단에 인가될 전압 또는 상기 활성 가변저항들 각각에 흐르는 전류를 제어하는 복수의 스위치들을 포함하는 액티브층; 및
    상기 활성 가변저항들과 상기 스위치들을 전기적으로 연결하는 배선들을 포함하는 복수의 금속층들을 포함하고,
    상기 가변저항층은 상기 가변저항층을 관통하여 상기 스위치들 중 적어도 하나와 상기 활성 가변저항들 중 적어도 하나를 서로 연결하는 적어도 하나의 비아를 포함하는, 전자 시스템.
  27. 제26항에 있어서,
    상기 금속층들은, 상기 가변저항층 상에 적층되어 상기 비아의 상단부 및 상기 활성 가변저항들 중 적어도 하나의 활성 가변저항의 상단부를 연결하는 배선을 포함하는 금속층을 포함하는, 전자 시스템.
  28. 제27항에 있어서,
    상기 가변저항층은 상기 스위치들과 전기적으로 접속되지 않는 비활성 가변저항들을 더 포함하고,
    비아와 활성 가변저항 간 최소 거리는 비아와 비활성 가변저항 간 최소 거리보다 큰, 전자 시스템.
  29. 제28항에 있어서,
    상기 가변저항층은 복수의 비아들을 포함하고,
    비아들 간 최소 거리는 상기 비아와 상기 비활성 가변저항들 간 상기 최소 거리보다 작은, 전자 시스템.
  30. 제28항에 있어서,
    상기 비아와 상기 비활성 가변저항 간 상기 최소 거리는, 비활성 가변저항들 간 최소거리, 활성 가변저항들 간 최소거리, 및 비활성 가변저항과 활성 가변저항 간 최소 거리보다 큰, 전자 시스템.
  31. 제28항에 있어서,
    상기 가변저항층은 복수의 비아들을 포함하고,
    상기 비아들 간 최소 거리는 0.10 ㎛ 내지 0.40 ㎛인, 전자 시스템.
  32. 제28항에 있어서,
    비아와 활성 가변저항 간 최소 거리는 0.50 ㎛ 내지 1.20 ㎛인, 전자 시스템.
  33. 제28항에 있어서,
    상기 비아와 상기 비활성 가변저항 간 상기 최소 거리는 0.30 ㎛ 내지 0.60 ㎛인, 전자 시스템.
  34. 제26항에 있어서,
    상기 활성 가변저항은 자기 터널 접합(Magnetic Tunnel Junction; MTJ) 소자인, 전자 시스템.
KR1020200089853A 2020-07-20 2020-07-20 프로세싱 장치 및 이를 포함하는 전자 시스템 KR20220011002A (ko)

Priority Applications (10)

Application Number Priority Date Filing Date Title
KR1020200089853A KR20220011002A (ko) 2020-07-20 2020-07-20 프로세싱 장치 및 이를 포함하는 전자 시스템
KR1020210002215A KR20220011056A (ko) 2020-07-20 2021-01-07 프로세싱 장치 및 이를 포함하는 전자 시스템
US17/194,571 US20220019884A1 (en) 2020-07-20 2021-03-08 Processing device and electronic device having the same
US17/195,917 US20220019885A1 (en) 2020-07-20 2021-03-09 Processing device and electronic device having the same
CN202110447281.5A CN113962374A (zh) 2020-07-20 2021-04-25 处理装置和具有处理装置的电子装置
CN202110472221.9A CN113962375A (zh) 2020-07-20 2021-04-25 处理装置和具有处理装置的电子装置
JP2021105060A JP2022020561A (ja) 2020-07-20 2021-06-24 プロセシング装置、及びそれを含む電子システム
JP2021105056A JP2022020560A (ja) 2020-07-20 2021-06-24 プロセシング装置、及びそれを含む電子システム
EP21183095.5A EP3944246A1 (en) 2020-07-20 2021-07-01 Processing device comprising bitcell circuits made of a pair of variable resistors in parallel
EP21184664.7A EP3944247A1 (en) 2020-07-20 2021-07-09 Processing device comprising a plurality of bitcells made of a plurality of variable resistors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200089853A KR20220011002A (ko) 2020-07-20 2020-07-20 프로세싱 장치 및 이를 포함하는 전자 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210002215A Division KR20220011056A (ko) 2020-07-20 2021-01-07 프로세싱 장치 및 이를 포함하는 전자 시스템

Publications (1)

Publication Number Publication Date
KR20220011002A true KR20220011002A (ko) 2022-01-27

Family

ID=80049450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200089853A KR20220011002A (ko) 2020-07-20 2020-07-20 프로세싱 장치 및 이를 포함하는 전자 시스템

Country Status (1)

Country Link
KR (1) KR20220011002A (ko)

Similar Documents

Publication Publication Date Title
US20210366542A1 (en) Apparatus and method with in-memory processing
US11581042B2 (en) Processing apparatus and electronic device including the same
TWI754567B (zh) 神經形態裝置及其操作方法
JP2013530479A (ja) 双安定素子のクラスタ状態にあるマルチレベルメモリの確率的なプログラミングの方法および装置
KR20220011056A (ko) 프로세싱 장치 및 이를 포함하는 전자 시스템
US20230046817A1 (en) Apparatus and method with in-memory delay dependent processing
US11763153B2 (en) Method and apparatus with neural network operation
US20220019408A1 (en) Method and apparatus with neural network processing
US11216728B2 (en) Weight matrix circuit and weight matrix input circuit
US20210303266A1 (en) Neuromorphic device and driving method thereof
CN116341631A (zh) 神经网络设备和包括该神经网络设备的电子系统
KR20220011002A (ko) 프로세싱 장치 및 이를 포함하는 전자 시스템
CN113962375A (zh) 处理装置和具有处理装置的电子装置
US20220114427A1 (en) Neural network apparatus
KR20220116757A (ko) Mtj 소자를 기반으로 한 프로세싱 장치 및 그 장치를 포함하는 전자 시스템
US11942131B2 (en) Processing apparatuses including magnetic resistors
US11984146B2 (en) Neuromorphic device
EP4075260A1 (en) Device and method with multi-bit operation
KR20220145143A (ko) 뉴럴 네트워크 장치 및 그의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination