KR102662742B1 - Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법 - Google Patents

Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법 Download PDF

Info

Publication number
KR102662742B1
KR102662742B1 KR1020220097657A KR20220097657A KR102662742B1 KR 102662742 B1 KR102662742 B1 KR 102662742B1 KR 1020220097657 A KR1020220097657 A KR 1020220097657A KR 20220097657 A KR20220097657 A KR 20220097657A KR 102662742 B1 KR102662742 B1 KR 102662742B1
Authority
KR
South Korea
Prior art keywords
msb
mac
cim
bit
memory cells
Prior art date
Application number
KR1020220097657A
Other languages
English (en)
Other versions
KR20240019886A (ko
Inventor
정성욱
이영규
Original Assignee
주식회사 아티크론
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아티크론 filed Critical 주식회사 아티크론
Priority to KR1020220097657A priority Critical patent/KR102662742B1/ko
Publication of KR20240019886A publication Critical patent/KR20240019886A/ko
Application granted granted Critical
Publication of KR102662742B1 publication Critical patent/KR102662742B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Multiple Motors (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Read Only Memory (AREA)

Abstract

개시된 실시예는 각각 가중치가 저장되는 다수의 메모리 셀과 MSB 스킵 여부를 나타내는 MSB 스킵 비트가 저장되는 다수의 더미 메모리 셀이 배열된 CIM(Compute-In-Memory) 셀 어레이, 다수의 메모리 셀에 저장된 가중치 중 1의 가중치 개수에 따라 MSB 스킵 비트를 설정하여 다수의 더미 메모리 셀에 저장하는 스킵 비트 획득 모듈 및 CIM 셀 어레이에서 입력 데이터와 다수의 메모리 셀에 저장된 가중치에 대한 MAC(Multiply-Accumulation) 연산 결과로 출력되는 MAC 전압을 디지털 데이터인 MAC 데이터로 변환하되, 다수의 더미 메모리 셀에 저장된 MSB 스킵 비트에 따라 MAC 데이터의 MSB(Most Significant Bit)에 대한 비트값 판정을 스킵하는 ADC를 포함하여, 지연 시간 추가 없이 ADC의 에너지 소모를 저감시킬 수 있어 CIM의 에너지 효율성을 개선할 수 있는 저전력 CIM 및 이의 MAC 연산 방법을 제공한다.

Description

MSB 스킵 기법 기반 저전력 CIM 및 이의 MAC 연산 방법{Low-Power CIM based on MSB Skip Technique and MAC Operation Method Thereof}
개시되는 실시예들은 저전력 CIM 및 이의 MAC 연산 방법에 관한 것으로, MSB 스킵 기법 기반 저전력 CIM 및 이의 MAC 연산 방법에 관한 것이다.
기존 폰 노이만 구조의 경우, 프로세서와 메모리가 구분되어 메모리에 저장된 데이터를 프로세서가 리드하여 연산을 수행하므로, 데이터 액세스 및 전송에 따른 에너지 효율성과 연산 속도 향상에 한계가 있었다. 그리고 최근에는 인공 신경망의 기술의 발전으로 인해 DNN(Deep Neural Network) 등에서 입력 데이터와 가중치 사이에 MAC(Multiply-Accumulation) 연산이 대규모로 수행되어야 함에 따라 컴퓨팅(computing)을 위한 전력(power) 및 지연(delay)에 대한 오버헤드(overhead)보다 메모리 데이터 액세스(memory data access) 및 전송(transfer)을 위한 전력 및 지연에 대한 오버헤드가 더욱 증가되고 있다. 따라서 에너지 효율성과 연산 속도를 개선할 수 있는 기법이 요구되어 왔으며, 이에 데이터를 저장하는 메모리를 이용하여 연산을 수행하여 효율성을 극대화할 수 있는 CIM(Compute-In-Memory 또는 In-Memory Compute 라고도 함) 구조가 제안되었다. CIM 구조에서는 데이터를 저장하는 메모리가 프로세서로 데이터를 전송하지 않고 직접 연산을 수행하므로, 기존의 폰 노이만 구조의 한계를 극복하여 저전력 및 고속으로 연산을 수행할 수 있다.
도 1은 CIM의 개략적 구조를 나타낸다.
도 1을 참조하면, CIM(10)은 CIM 셀 어레이(11), DAC(Digital Analog Converter)(12) 및 ADC/SA(Analog Digital Converter/Sense Amplifier)(13)를 포함할 수 있다.
DAC(12)는 디지털 데이터인 입력 데이터를 인가받아 입력 데이터 전압으로 변환하고, 변환된 입력 데이터 전압을 CIM 셀 어레이(11)로 인가한다. 즉 DAC(12)는 입력 데이터의 값에 따른 전압 레벨을 갖는 아날로그 신호를 CIM 셀 어레이(11)로 인가한다.
CIM 셀 어레이(11)는 각각 가중치를 저장하고, DAC(12)에서 전압 레벨로 변환되어 인가되는 입력 데이터와 저장된 가중치를 곱셈(Multiply) 연산하여 출력하는 다수의 메모리 셀(MC)을 포함한다. 실시예에서 다수의 메모리 셀(MC) 각각은 일 예로 SRAM 등으로 구현될 수 있으며, 입력 데이터와 가중치의 곱셈 결과는 누적되어 MAC 연산 결과로서 ADC/SA(13)로 인가된다.
ADC/SA(13)는 적어도 하나의 ADC를 포함하여 CIM 셀 어레이(11)의 메모리 셀(MC)에서 MAC 연산이 수행된 결과로 나타나는 아날로그 전압을 디지털 데이터로 변환하여 출력 데이터를 출력한다. 또한 ADC/SA(13)는 다수의 SA를 포함하여 라이트 동작 시에 가중치의 값에 따른 라이트 전압을 메모리 셀(MC)로 인가하여 메모리 셀(MC)에 가중치를 저장하고, 리드 동작시에 메모리 셀(MC)에 저장된 가중치의 값을 감지 증폭한다. 여기서 ADC/SA(13)는 ADC와 SA로 구분되어 구성될 수도 있다.
또한 편의를 위해 CIM은 로우 디코더와 칼럼 디코더를 더 구비할 수 있으며, 상기한 CIM 구성 요소들을 제어하는 제어 모듈(미도시)을 더 포함할 수 있다.
이와 같은 구성을 갖는 CIM에서 ADC는 매우 큰 면적을 차지하여 구성될 뿐만 아니라 에너지 소모가 매우 크다는 문제가 있다. 특히 기존의 CIM에서 ADC(13)는 CIM 전체 에너지 소모량의 대략 40 ~ 70% 수준의 에너지를 소모하여 CIM의 에너지 효율(TOPS/W: Tera Operations Per Second/Watt)을 저하시킨다는 문제가 있다.
한국 공개 특허 제10-2020-0103262호(2020.09.02 공개)
개시되는 실시예들은 추가적인 지연없이 에너지 효율성이 크게 개선된 저전력 CIM 및 이의 MAC 연산 방법을 제공하는데 목적이 있다.
개시되는 실시예들은 저장된 가중치의 값에 따라 MSB에 대한 변환을 스킵할 수 있도록 하여 에너지 소모를 저감할 수 있는 저전력 CIM 및 이의 MAC 연산 방법을 제공하는데 목적이 있다.
실시예에 따른 저전력 CIM은 각각 가중치가 저장되는 다수의 메모리 셀과 MSB 스킵 여부를 나타내는 MSB 스킵 비트가 저장되는 다수의 더미 메모리 셀이 배열된 CIM(Compute-In-Memory) 셀 어레이; 상기 다수의 메모리 셀에 저장된 가중치 중 1의 가중치 개수에 따라 상기 MSB 스킵 비트를 설정하여 상기 다수의 더미 메모리 셀에 저장하는 스킵 비트 획득 모듈; 및 상기 CIM 셀 어레이에서 입력 데이터와 상기 다수의 메모리 셀에 저장된 가중치에 대한 MAC(Multiply-Accumulation) 연산 결과로 출력되는 MAC 전압을 디지털 데이터인 MAC 데이터로 변환하되, 상기 다수의 더미 메모리 셀에 저장된 MSB 스킵 비트에 따라 MAC 데이터의 MSB(Most Significant Bit)에 대한 비트값 판정을 스킵하는 ADC를 포함한다.
상기 스킵 비트 획득 모듈은 상기 다수의 메모리 셀 중 동일한 MAC 연산에서 이용되는 메모리 셀 저장된 1의 가중치 개수가 0의 가중치 개수 이하이면, 상기 MSB 스킵 비트가 활성화된 값으로 설정하고, 1의 가중치 개수가 0의 가중치 개수를 초과하면, 상기 MSB 스킵 비트를 비활성화된 값으로 설정할 수 있다.
상기 스킵 비트 획득 모듈은 상기 CIM의 라이트 동작 시에 상기 다수의 메모리 셀 중 동일한 MAC 연산에서 이용되는 메모리 셀에 저장되는 상기 가중치에서 1의 가중치 개수를 카운트하고, 카운트된 1의 가중치 개수가 동일한 MAC 연산에서 이용되는 메모리 셀 개수의 1/2 이하인지에 따라 상기 MSB 스킵 비트를 설정할 수 있다.
상기 ADC는 상기 CIM의 MAC 연산 동작 시에 상기 MAC 데이터의 각 비트값을 판별하기 위해 서로 다른 전압 레벨을 갖는 다수의 기준 전압을 생성하고, 상기 MAC 전압과 생성된 기준 전압을 각각 비교하여 상기 MAC 데이터의 각 비트값을 판별하되, 상기 MSB 스킵 비트가 활성화되어 있으면, 상기 MAC 데이터의 MSB를 판별하기 위한 기준 전압을 비교하지 않고, 상기 MAC 데이터의 MSB을 결정할 수 있다.
상기 ADC는 상기 MSB 스킵 비트가 활성화되어 있으면, 상기 MAC 데이터의 MSB를 판별하기 위한 기준 전압을 생성하지 않고 스킵할 수 있다.
상기 ADC는 SAR-ADC(Successive Approximation Register type-ADC)로 구현될 수 있다.
상기 다수의 메모리 셀은 다수의 리드 워드라인과 다수의 리드 비트라인이 교차하는 위치에 배치되고, 상기 다수의 리드 워드라인 중 대응하는 워드라인이 활성화되면, 상기 입력 데이터에 따른 입력 전압으로 프리차지된 상기 다수의 리드 비트라인을 저장된 가중치에 따라 전압 강하시킬 수 있다.
상기 다수의 더미 메모리 셀은 상기 다수의 리드 워드라인과 적어도 하나의 더미 리드 비트라인이 교차하는 위치에 배치되고, 대응하는 워드라인이 활성화되면, 미리 프리차지된 상기 더미 리드 비트라인을 저장된 상기 MSB 스킵 비트에 따라 전압 강하시켜, 상기 더미 리드 비트라인에 연결된 상기 ADC에 MSB 스킵 비트를 전달할 수 있다.
상기 CIM은 상기 ADC가 상기 MAC 데이터의 MSB에 대한 비트값을 판정하거나 스킵하면, 다음 비트값을 판정하기 이전, 상기 적어도 하나의 더미 리드 비트라인을 프리차지 하는 더미 리드 비트라인 프리차지 회로를 더 포함할 수 있다.
실시예에 따른 각각 가중치가 저장되는 다수의 메모리 셀과 MSB 스킵 여부를 나타내는 MSB 스킵 비트가 저장되는 다수의 더미 메모리 셀이 배열된 CIM 셀 어레이를 포함하는 CIM의 MAC 연산 방법은 상기 다수의 메모리 셀에 저장된 가중치 중 1의 가중치 개수에 따라 상기 MSB 스킵 비트를 설정하여 상기 다수의 더미 메모리 셀에 저장하는 단계; 및 상기 CIM 셀 어레이에서 입력 데이터와 상기 다수의 메모리 셀에 저장된 가중치에 대한 MAC(Multiply-Accumulation) 연산 결과로 출력되는 MAC 전압을 디지털 데이터인 MAC 데이터로 변환하되, 상기 다수의 더미 메모리 셀에 저장된 MSB 스킵 비트에 따라 MAC 데이터의 MSB(Most Significant Bit)에 대한 비트값 판정을 스킵하는 단계를 포함한다.
따라서, 실시예에 따른 저전력 CIM 및 이의 MAC 연산 방법은 CIM 셀 어레이의 메모리 셀에 저장된 가중치의 값에 따라 MSB에 대한 디지털 데이터로의 변환 스킵 여부를 판별하여 ADC가 변환을 수행하지 않도록 함으로써, 지연 시간 추가 없이 ADC의 에너지 소모를 저감시킬 수 있어 CIM의 에너지 효율성을 개선할 수 있다.
도 1은 CIM의 개략적 구조를 나타낸다.
도 2는 CIM 셀 어레이에서 수행되는 MAC 연산 동작을 설명하기 위한 도면이다.
도 3은 메모리 셀의 일 예를 나타낸다.
도 4는 ADC의 상세 구성의 일 예를 나타낸다.
도 5 및 도 6은 CIM 셀 어레이에서 저장된 가중치에 따라 ADC가 MSB를 스킵할 수 있는 원리를 설명하기 위한 도면이다.
도 7 및 도 8은 실시예에 따른 CIM의 구조를 나타낸다.
도 9는 실시예에 따른 CIM에서 MSB 스킵 여부에 따른 동작을 설명하기 위한 타이밍 다이어그램을 나타낸다.
도 10은 실시예에 따른 CIM의 MAC 연산 방법을 설명하기 위한 도면이다.
이하, 도면을 참조하여 일 실시예의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
일 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 일 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 일 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
실시예의 CIM 및 이의 MAC 연산 방법을 설명하기 위해서는 우선 기존의 CIM(10)의 CIM 셀 어레이(11)에서 수행되는 MAC 연산 동작을 이해할 필요가 있다.
도 2는 CIM 셀 어레이에서 수행되는 MAC 연산 동작을 설명하기 위한 도면이고, 도 3은 메모리 셀의 일 예를 나타내며, 도 4는 ADC의 상세 구성의 일 예를 나타낸다.
도 2에서는 편의를 위하여 CIM 셀 어레이(11)에서 MAC 연산 동작에 이용되는 구성만을 도시하였으며, 다수의 메모리 셀(MC) 각각에는 이미 가중치(w)가 저장되어 있는 것으로 가정한다. 도 3에 도시된 바와 같이, 다수의 메모리 셀(MC) 각각은 1의 가중치(w=1)가 저장된 경우, Q 노드는 0에 대응하는 전압 레벨(예를 들면 접지 전압(0V) 레벨)을 갖고, 0의 가중치(w=0)가 저장된 경우 Q 노드는 1에 대응하는 전압 레벨(예를 들면 전원 전압(VDD) 레벨)을 가질 수 있다. 그리고 도 3에서는 일 예로 다수의 메모리 셀(MC) 각각이 SARM 기반 8T 메모리 셀로 구현되는 것으로 가정하여 도시하였으나, 실시예는 이에 한정되지 않는다.
MAC 연산 동작 시, 먼저 (a)에 도시된 바와 같이, DAC(12)는 입력 데이터(IN0 ~ INn)를 아날로그로 변환하여 입력 전압을 다수의 리드 비트라인(RBL0 ~ RBLn)으로 인가한다. 이때 다수의 스위치(sw0 ~ swn)는 턴 오프(Off)되어 다수의 리드 비트라인(RBL0 ~ RBLn)과 글로벌 비트라인(GBL)이 연결되지 않도록 한다. 또한 비활성화된 리드 워드라인(RWL0 ~ RWLn)에 의해 다수의 메모리 셀(MC) 또한 다수의 리드 비트라인(RBL0 ~ RBLn)과 연결되지 않는다. 이에 다수의 리드 비트라인(RBL0 ~ RBLn)은 입력 데이터(IN0 ~ INn)에 따른 입력 전압으로 프리차지된다. 여기서는 일 예로 입력 데이터(IN0 ~ INn)가 (1, 0, …, 1)인 경우를 가정하였다.
이후, (b)에 도시된 바와 같이, 리드 워드라인(RWL0 ~ RWLn) 중 하나의 리드 워드라인(여기서는 제0 리드 워드라인(RWL0))이 선택되고, 선택된 리드 워드라인(RWL0)으로 전원 전압(VDD)이 인가되어 활성화되면, 선택된 리드 워드라인(RWL0)에 연결된 로우(Row) 방향의 메모리 셀(MC)에 저장된 가중치(w)에 따라 리드 비트라인(RBL0 ~ RBLn)에 프리차지된 전압 레벨이 변화하게 된다. 입력 데이터(IN0 ~ INn)와 가중치(w)의 곱셈 결과에 따른 전압 레벨을 갖게 된다. 즉 리드 비트라인(RBL0 ~ RBLn)의 전압 레벨은 메모리 셀(MC)에 저장된 가중치(w)가 0이면, 입력 데이터(IN0 ~ INn)에 무관하게 리드 비트라인(RBL0 ~ RBLn)에 프리차지된 전압 레벨이 연결된 메모리 셀(MC)을 통해 디스차지되어 0에 대응하는 전압 레벨을 갖는 반면, 가중치(w)가 1이면, 리드 비트라인(RBL0 ~ RBLn)이 프리차지된 전압 레벨로 유지되어 입력 데이터(IN0 ~ INn)에 대응하는 전압 레벨을 갖게 된다.
그리고 다수의 리드 비트라인(RBL0 ~ RBLn)이 입력 데이터(IN0 ~ INn)와 가중치(w)의 곱에 따른 전압 레벨을 가지면, 다수의 스위치(sw0 ~ swn)가 턴 온(On)되어 다수의 리드 비트라인(RBL0 ~ RBLn)과 글로벌 비트라인(GBL)을 연결하고, 이에 글로벌 비트라인(GBL)에는 병렬로 연결된 다수의 리드 비트라인(RBL0 ~ RBLn)의 전압이 쉐어링되어 입력 데이터(IN0 ~ INn)와 가중치(w)의 곱이 누산(Accumulation)된 값 즉 MAC 연산 결과에 따른 MAC 전압(VMAC)을 갖게 된다.
ADC(13)는 글로벌 비트라인(GBL)의 MAC 전압(VMAC)을 디지털로 변환하여 MAC 연산 데이터(MAC data)를 출력한다. 여기서는 설명의 편의를 위하여, 도 1의 ADC/SA(13)가 ADC만을 구비하는 것으로 가정하였다. 그리고 ADC(13)는 일 예로 SAR-ADC(Successive Approximation Register type-ADC)로 구현될 수 있다.
SAR-ADC로 구현된 ADC(13)은 도 4에 도시된 바와 같이, 비교기(21)와 기준 전압 생성 회로(22)를 포함할 수 있다. 기준 전압 생성 회로(22)는 다수의 캐패시터를 포함하여 구성되고, 다수의 캐패시터 중 적어도 하나의 캐패시터를 충방전함에 따라 다양한 레벨의 기준 전압(Vref)을 생성하여 비교기(21)로 인가한다. 이때 다수의 캐패시터는 도 4에 도시된 바와 같이, 동일하거나 서로 다른 캐패시턴스를 가질 수 있으며, 다양한 조합으로 충방전됨으로써, 서로 다른 레벨의 기준 전압(Vref)을 생성할 수 있다. 이때 기준 전압(Vref)은 ADC(13)에서 디지털 데이터로 변환할 수 있는 양자화 해상도에 따라 출력되는 MAC 연산 데이터(MAC data)의 MSB(Most Significant Bit)로부터 LSB(Least Significant Bit)까지의 각 비트를 판별하기 위한 전압 레벨로 생성된다. 이때 기준 전압 생성 회로(22)는 제어 모듈(미도시)의 제어에 따라 우선 MAC 연산 데이터(MAC data)의 MSB를 판별하기 위한 기준 전압(Vref)을 생성하여 비교기(21)로 전달하고, 이후 비교기(21)의 비교 결과를 기반으로 순차적으로 다음 비트를 판별하기 위한 전압 레벨을 갖는 기준 전압(Vref)을 생성하며, LSB를 판별하기 위한 기준 전압(Vref)까지 생성할 수 있다.
비교기(21)는 인에이블 신호(SAE)가 활성화되어 인가되면, 글로벌 비트라인(GBL)에서 인가되는 MAC 전압(VMAC)과 기준 전압 생성 회로(22)에서 가변되는 전압 레벨로 생성된 기준 전압(Vref) 각각을 비교하여 MAC 연산 데이터(MAC data)의 각 비트의 비트값을 판별하여 출력한다.
즉 비교기(21)는 MAC 전압(VMAC)을 다양한 전압 레벨로 생성된 다수의 기준 전압(Vref) 각각과 반복적으로 비교함으로써, MAC 전압(VMAC)의 전압 레벨에 대응하는 MAC 연산 데이터(MAC data)의 비트값을 판별하여 출력한다. 따라서 ADC(13)의 비교기(21)는 MAC 전압(VMAC)을 MAC 연산 데이터(MAC data)로 변환하는 경우, MAC 연산 데이터(MAC data)의 비트수, 즉 디지털 변환 해상도에 대응하는 횟수로 반복하여 동작을 수행한다. 그러므로 비교기(21)의 동작 횟수를 줄일 수 있다면 CIM의 전력 소비를 저감시킬 수 있다.
그리고 CIM의 각 동작은 제어 모듈(미도시)이 CIM의 각 구성 요소를 제어하여 수행될 수 있다.
도 5 및 도 6은 CIM 셀 어레이에서 저장된 가중치에 따라 ADC가 MSB를 스킵할 수 있는 원리를 설명하기 위한 도면이다.
도 5 및 도 6에서는 이해의 편의를 위해, 다수의 로우 각각에 메모리 셀(MC)이 8개씩 배열된 CIM 셀 어레이(11)를 도시하였다. 도 5에서 (a)는 제1 로우의 8개의 메모리 셀(MC)에 가중치(w)가 "01001100"으로 저장된 경우를 도시하였으며, (b)는 8개의 메모리 셀(MC)에 가중치(w)가 "11101100"으로 저장된 경우를 도시하였다. 그리고 도 6은 8개의 메모리 셀(MC)에 저장된 가중치(w)에 따라 획득 가능한 MAC 연산 데이터(MAC data)의 값을 나타낸다.
도 5의 (a)에 도시된 바와 같이, 8개의 메모리 셀(MC)에 가중치(w)가 "01001100"이 저장되어 "0"의 값을 갖는 가중치(w)가 과반수를 초과한 5개이고, "1"의 값을 갖는 가중치(w)가 3개이면, 비록 입력 데이터(IN0 ~ IN8)에 따라 글로벌 비트라인(GBL)에서 ADC(13)으로 인가되는 MAC 전압(VMAC)이 변화될 수는 있으나, 입력 데이터(IN0 ~ IN8)와 가중치(w)의 곱셈이 누산되어 글로벌 비트라인(GBL)에 반영되는 MAC 연산의 특성에 따라 입력 데이터(IN0 ~ IN8)에 무관하게 글로벌 비트라인(GBL)의 최대 전압(GBLmax)은 3/8VDD를 초과할 수 없다. 여기서 전원 전압(VDD)은 입력 데이터(IN0 ~ IN8)와 가중치(w)가 모두 1인 경우의 MAC 전압(VMAC) 레벨이다. 예로서 입력 데이터(IN0 ~ IN8)가 "11111111"로 인가될지라도 입력 데이터(IN0 ~ IN8)와 대응하는 가중치의 비트별 곱셈 결과는 "01001100"으로 출력되고, 입력 데이터(IN0 ~ IN8)가 "00000000"으로 인가되면, 비트별 곱셈 결과는 "00000000"으로 출력되므로, 비트라인(GBL)의 최대 전압(GBLmax)은 3/8VDD이 된다.
그리고 도 5의 (b)에 도시된 바와 같이, 8개의 메모리 셀(MC)에 가중치(w)가 "11101100"이 저장되어 "0"의 값을 갖는 가중치(w)가 3개이고, "1"의 값을 갖는 가중치(w)가 5개이면, 글로벌 비트라인(GBL)의 최대 전압(GBLmax)은 입력 데이터(IN0 ~ IN8)에 무관하게 5/8VDD를 초과할 수 없다.
즉 MAC 연산 특성을 고려할 때, 8개의 메모리 셀(MC) 중 가중치(w) 중 "1"의 값을 갖는 가중치의 개수가 절반인 4개를 초과하는 제1 케이스(Case 1)에서는 입력 데이터(IN0 ~ IN8)에 따라 MAC 연산 데이터(MAC data)의 MSB가 "1"의 값을 갖거나 "0"의 값을 가질 수 있는 반면, "1"의 값을 갖는 가중치의 개수가 절반인 4개 이하인 제2 케이스(Case 2)에서는 입력 데이터(IN0 ~ IN8)에 무관하게 MAC 연산 데이터(MAC data)의 MSB가 "0"의 값을 갖게 된다.
즉 메모리 셀(MC)에 저장된 가중치 중 "1"의 값을 갖는 가중치의 개수가 과반수 이하인지 미리 확인할 수 있다면, MSB가 0으로 미리 확정될 수 있으므로, ADC(13)가 MAC 연산 데이터(MAC data)의 MSB에 대한 변환을 수행하지 않고 스킵할 수 있음을 의미한다. 즉 ADC(13)의 동작 횟수를 줄여 CIM의 전력 소비를 저감할 수 있다.
이때 도 3 및 도 4에 도시된 바와 같이, ADC(13)에서 기준 전압 생성 회로(22)는 MAC 연산 데이터(MAC data)의 MSB를 판별하기 위한 기준 전압을 우선 생성하여 비교기(21)로 전달하고, 이후 다음 비트를 판별하기 위한 기준 전압을 가변하면서 생성한다. 그리고 MSB를 판별하기 위한 기준 전압(Vref)을 생성하기 위해서는 가장 큰 캐패시턴스를 갖는 캐패시터(여기서는 일 예로 32C)를 충방전하거나 다수의 캐패시터를 충방전해야 한다. 따라서 ADC(13)가 MAC 전압(VMAC)에서 MAC 연산 데이터(MAC data)의 MSB에 대한 디지털 변환을 수행하지 않고 스킵할 수 있다면, 다른 비트값을 스킵하는 경우에 비해 상대적으로 큰 전력 소모를 저감시킬 수 있다.
도 7 및 도 8은 실시예에 따른 CIM의 구조를 나타낸다.
도 7 및 도 8을 참조하면, 실시예에 따른 CIM 또한 다수의 메모리 셀(MC)이 배열된 CIM 셀 어레이(40)를 포함한다. 다만 실시예에서 CIM 셀 어레이(40)는 다수의 메모리 셀(MC) 뿐만 아니라 다수의 더미 메모리 셀(dMC)을 더 포함할 수 있다. 다수의 더미 메모리 셀(dMC)은 CIM 셀 어레이(40)의 메모리 셀(MC) 중에서 대응하는 메모리 셀(MC)이 MAC 연산을 수행할 때, MSB 스킵 여부를 판별하기 위한 MSB 스킵 비트(skip)가 저장될 수 있다.
다수의 더미 메모리 셀(dMC)은 도 8에서와 같이, CIM 셀 어레이(40)의 일측에 더미 셀 어레이(41)로 배치될 수 있다. 그리고 도 8에서는 CIM 셀 어레이(40)의 각 로우별로 배치된 다수의 메모리 셀(MC)이 MAC 연산에 함께 이용되는 것으로 가정하여 각 로우별로 하나의 더미 메모리 셀(dMC)이 구비되는 것으로 도시하였다. 그러나 각 로우에 배치된 다수의 메모리 셀(MC)이 MAC 연산 동작시에 함께 이용되지 않고 구분되어 개별적인 MAC 연산에 이용되는 경우, 각 로우에 배치되는 더미 메모리 셀(dMC)의 개수 또한 가변될 수 있다.
예로서 도 5 및 도 6에서와 같이, CIM 셀 어레이(40)에서 각 로우별로 8개의 메모리 셀(MC)이 구비되고, 8개의 메모리 셀(MC)이 한번의 MAC 연산에 함께 이용되는 경우, 더미 메모리 셀(dMC)은 로우별로 하나씩 구비될 수 있다. 그러나 8개의 메모리 셀(MC)이 한번의 MAC 연산에 함께 이용되는 CIM에서 CIM 셀 어레이(40)에 각 로우 별로 32개의 메모리 셀(MC)이 구비되는 경우, 각 로우에는 4(=32/8)개의 더미 메모리 셀(dMC)이 구비될 수 있다.
한편 스킵 비트 획득 모듈(50)은 CIM 셀 어레이(40)의 다수의 메모리 셀(MC)에 저장된 가중치(w) 중 1의 값을 갖는 가중치(w)의 개수를 카운트하여 스킵 비트를 획득한다. 스킵 비트 획득 모듈(50)은 적어도 하나의 카운터(51, 52) 및 스킵 비트값 판정기(54)를 포함할 수 있다. 적어도 하나의 카운터(51, 52)는 MAC 연산에 함께 이용되는 메모리 셀(MC)에 라이트된 가중치(w) 중 1의 값을 갖는 가중치(w)의 개수를 카운트한다. 이때, 카운터(51, 52)는 메모리 셀(MC)에 가중치(w)가 저장된 이후, 각 메모리 셀(MC)에 저장된 가중치(w)를 별도로 리드하여 카운트할 수도 있으나, 이 경우, CIM 동작에서 가중치(w)를 리드하기 위한 별도의 시간 구간이 추가되어야 한다. 이러한 문제를 방지하기 위해, 실시예의 카운터(51, 52)는 각 메모리 셀(MC)에 가중치(w)가 라이트되는 동안 라이트되는 가중치(w)의 값을 리드하여 카운트함으로써, 별도의 시간 구간이 요구되지 않도록 할 수 있다.
그리고 적어도 하나의 카운터(51, 52)는 각각 한번의 MAC 연산에 함께 이용되는 개수의 대응하는 메모리 셀(MC)에 저장된 가중치를 카운트할 수도 있으나, CIM의 라이트 동작 방식에 따라서는 도 7과 같이 둘 이상의 카운터(51, 52)가 한번의 MAC 연산에 함께 이용되는 개수의 대응하는 메모리 셀(MC)에 저장된 가중치를 카운트할 수도 있다.
도 7에서는 CIM이 로우 방향으로 배치된 8개의 메모리 셀(MC)에 대한 가중치 라이트 동작 시에 2개의 4:1 먹스(41, 42)를 이용하여 4개씩으로 구분하여 동시에 2개씩의 메모리 셀(MC)에 가중치(w)가 라이트되도록 구성된 경우를 도시하였다. 따라서 2개의 카운터(51, 52)는 각각 2개의 4:1 먹스(41, 42)를 통해 메모리 셀(MC)에 저장되는 가중치(w)를 인가받아 1의 값을 갖는 가중치(w)의 개수를 카운트할 수 있다. 다만 이와 같이, 한번의 MAC 연산에 함께 이용되는 메모리 셀(MC)을 카운트하는 카운트가 다수개로 구분된 경우, 각 카운터가 카운트한 값을 합산할 필요가 있다. 이에 스킵 비트 획득 모듈(50)은 각 카운터의 카운트 값을 인가받가 합산하는 가산기(53)를 더 포함할 수 있다.
그러나 상기한 바와 같이, 각 카운터가 한번의 MAC 연산에 함께 이용되는 메모리 셀(MC)에 저장된 1의 가중치(w)를 모두 카운트할 수 있도록 구성된 경우, 가산기(53)는 생략될 수 있다.
스킵 비트값 판정기(54)는 적어도 하나의 카운터(51, 52)를 이용하여 확인된 MAC 연산에 함께 이용되는 메모리 셀(MC)에 저장된 1의 가중치 개수가 메모리 셀(MC) 개수의 과반(1/2) 이하인지 판별하여 MSB 스킵 비트를 서로 다른 값으로 설정하여 대응하는 더미 메모리 셀(dMC)에 저장한다. 예로서 스킵 비트값 판정기(54)는 1의 가중치 개수가 메모리 셀(MC) 개수의 과반(1/2) 이하인 것으로 판별되면, MSB 스킵 비트(skip)가 0으로 활성화되도록 설정하고, 과반을 초과하면 MSB 스킵 비트(skip)가 1로 비활성화되도록 설정하여 더미 메모리 셀(dMC)에 저장할 수 있다. 즉 ADC(13)가 MSB를 스킵할 수 있다고 판단되면, MSB 스킵 비트(skip)를 0으로 설정하고, MSB를 스킵할 수 없다고 판단되면, MSB 스킵 비트(skip)를 1로 설정하여 가중치가 카운트된 메모리 셀(MC)과 동일한 로우에 배치된 더미 메모리 셀(dMC)에 저장한다.
따라서 스킵 비트 획득 모듈(50)은 MAC 연산을 수행하기 이전에 미리 다수의 메모리 셀(MC)에 저장된 가중치 중 1의 가중치 개수를 확인하여 MSB 스킵 여부를 나타내는 MSB 스킵 비트(skip)를 획득하여 더미 메모리 셀(dMC)에 저장할 수 있다.
여기서는 스킵 비트 획득 모듈(50)이 적어도 하나의 카운터(51, 52)와 스킵 비트값 판정기(54)를 포함하는 것으로 설명하였으나, 스킵 비트 획득 모듈(50)은 MAC 연산에 이용되는 메모리 셀(MC) 중 1의 가중치(w)를 갖는 메모리 셀(MC)이 과반 이하인지 초과하는지를 판별하는 다양한 회로로 구현될 수도 있다.
그리고 도 8에 도시된 더미 리드 비트라인 프리차지 회로(70)는 더미 리드 비트라인 온 신호(dRBLon)에 응답하여 더미 리드 비트라인(dRBL)을 프리차지한다. 더비 비트라인 프리차지 회로(70)는 더미 리드 비트라인 온 신호(dRBLon)가 일 예로 전원 전압(VDD) 레벨로 활성화되면, 더미 리드 비트라인(dRBL)을 전원 전압(VDD) 레벨로 프리차지한다. 여기서 더미 리드 비트라인(dRBL)은 CIM 셀 어레이(30)에서 다수의 리드 비트라인(RBL)이 칼럼 방향으로 배열된 메모리 셀(MC)에 연결되는데 반해, 칼럼 방향으로 배열된 더미 메모리 셀(dMC)에 연결되는 점에서 상이하지만 기본적으로 리드 비트라인(RBL)과 동일하게 형성된다. 다만, 다수의 리드 비트라인(RBL)은 각각 대응하는 스위치(sw0 ~ swn)를 통해 글로벌 비트라인(GBL)에 서로 병렬로 연결되는데 반해, 더미 리드 비트라인(dRBL)은 ADC(60)의 MSB 스킵 인에이블 회로(63)에 연결된다.
더미 리드 비트라인 프리차지 회로(70)는 일 예로 도 8에 도시된 바와 같이, 더미 리드 비트라인 온 신호(dRBLon)를 인가받는 인버터(IV)와 인버터(IV)의 출력을 게이트로 인가받아 턴온되어 더미 리드 비트라인(dRBL)을 전원 전압(VDD) 레벨로 프리차지하는 풀업 트랜지스터(PT)를 포함하여 구성될 수 있다.
여기서 더미 리드 비트라인 온 신호(dRBLon)는 ADC(13)가 MSB에 대한 변환을 수행하는 시점 이후 다음 비트에 대한 변환을 수행하기 이전 활성화되어 더미 리드 비트라인(dRBL)을 전원 전압(VDD) 레벨로 프리차지되도록 할 수 있다. 그리고 더미 리드 비트라인(dRBL)이 프리차지된 이후 비활성되어 더미 리드 비트라인(dRBL)이 전원 전압(VDD) 레벨로 프리차지된 상태에서 플로팅되도록 할 수 있다.
한편 실시예에서 ADC(60)는 비교기(61)와 기준 전압 생성 회로(62)와 더불어 MSB 스킵 인에이블 회로(63)를 포함할 수 있다. 기준 전압 생성 회로(62)는 기준 전압(Vref)을 생성하여 비교기(61)에 입력할 수 있다. 기준 전압 생성 회로(62)는 도 4에 도시된 기준 전압 생성 회로(22)와 동일하게 구성될 수 있으므로 여기서는 간략하게 표현하였으며, 상세한 설명을 생략한다. 다만, 기준 전압 생성 회로(62)는 MSB 스킵 비트가 0으로 활성화되면, MSB에 대한 기준 전압(Vref)을 생성하지 않을 수도 있다.
MSB 스킵 인에이블 회로(63)는 기존에 비교기(21)로 직접 인가되는 인에이블 신호(SAE)를 인가받고, 더미 리드 비트라인(dRBL)의 전압 레벨과 인에이블 신호(SAE)에 따라 비교기(61)를 활성화 또는 비활성화시킨다.
MSB 스킵 인에이블 회로(63)는 인에이블 신호(SAE)가 활성화되고 동시에 더미 리드 비트라인(dRBL)이 프리차지된 전원 전압(VDD) 레벨을 유지하는 경우에 비교기(61)를 활성화시킬 수 있으며, 인에이블 신호(SAE)가 비활성화되거나, 더미 리드 비트라인(dRBL)이 접지 전압 레벨로 디스차지된 경우에는 비교기(61)를 활성화시킨다. MSB 스킵 인에이블 회로(63)는 일 예로 논리곱(AND) 소자로 구현될 수 있다.
비교기(61)는 MSB 스킵 인에이블 회로(63)에 의해 활성화되면, 글로벌 비트라인(GBL)에서 인가되는 MAC 전압(VMAC)과 기준 전압 생성 회로(62)에서 가변되는 전압 레벨로 생성된 기준 전압(Vref) 각각을 비교하여 MAC 연산 데이터(MAC data)의 각 비트의 비트값을 판별하여 출력한다.
도 9는 실시예에 따른 CIM에서 MSB 스킵 여부에 따른 동작을 설명하기 위한 타이밍 다이어그램을 나타낸다.
도 9에서 (a)는 MSB 스킵을 수행하지 않는 경우의 CIM의 MAC 연산 동작을 나타내고, (b)는 MSB 스킵을 수행하는 경우의 CIM의 MAC 연산 동작을 나타낸다.
이하에서는 도 8을 참조하여, 우선 도 9의 (a) 및 (b)에 도시된 MAC 연산 동작을 설명한다. 먼저 더미 리드 비트라인(dRBL)은 MAC 연산 동작이 수행되기 이전에 미리 더미 리드 비트라인 프리차지 회로(70)에 의해 전원 전압(VDD) 레벨로 프리차지되고 플로팅된 상태로 유지된다. 그리고 MAC 연산이 수행되면, 도 2의 (a)에서와 마찬가지로 다수의 입력 데이터(IN)에 따른 입력 전압이 다수의 리드 비트라인(RBL)으로 인가되어 프리차지된다. 그리고 도 2의 (b)에서와 같이 리드 워드라인(RWL) 중 하나의 리드 워드라인이 선택되어 활성화되면, 활성화된 리드 워드라인(RWL)에 연결된 로우(Row) 방향의 메모리 셀(MC)에 저장된 가중치(w)에 따라 리드 비트라인(RBL)에 프리차지된 전압 레벨을 유지하거나 전압 강하가 발생하게 된다. 이때, 더미 리드 비트라인(dRBL) 또한 연결된 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)에 따라 프리차지된 전압 레벨을 유지하거나 전압 강하가 발생하게 된다. 리드 비트라인(RBL)과 마찬가지로 더미 리드 비트라인(dRBL)은 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)가 1이면, 도 9의 (a)에서와 같이 프리차지된 전압 레벨로 유지되는 반면, MSB 스킵 비트(skip)가 0이면, 도 9의 (b)에서와 같이 프리차지된 전압 레벨이 연결된 더미 메모리 셀(dMC)을 통해 디스차지되어 0에 대응하는 전압 레벨을 갖는다. 즉 입력 데이터(IN)와 가중치(w)의 곱셈이 수행되는 동안 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)가 리드되어 ADC(60)의 MSB 스킵 동작 수행 여부가 결정된다. 따라서 MSB 스킵 여부를 판별하기 위한 추가 시간이 소요되지 않는다.
더미 리드 비트라인(dRBL)은 MSB 스킵 인에이블 회로(63)에 직접 연결되므로, 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)가 0이면, MSB 스킵 인에이블 회로(63)는 인에이블 신호(SAE)에 무관하게 비교기(61)를 비활성화한다.
그리고 다수의 스위치(sw0 ~ swn)가 턴 온(On)되어 다수의 리드 비트라인(RBL)이 글로벌 비트라인(GBL)에 병렬로 연결됨으로써, 글로벌 비트라인(GBL)은입력 데이터(IN)와 가중치(w)의 곱이 누산(Accumulation)된 MAC 연산 결과에 따른 MAC 전압(VMAC)을 비교기(61)로 인가한다. 이와 함께 MSB 스킵 인에이블 회로(63)로 인가되는 인에이블 신호(SAE)가 활성화된다.
MSB 스킵 비트(skip)가 0인 경우, 상기한 바와 같이, 인에이블 신호(SAE)에 무관하게 비교기(61)가 비활성화되고, 이때 기준 전압 생성 회로(62) 또한 MSB에 대한 기준 전압(Vref)을 생성하지 않는다. 즉 비교기(61)와 기준 전압 생성 회로(62)를 구동하지 않으며, 이때 MAC 연산 데이터(MAC data)의 MSB는 0으로 결정된다.
그러나 MSB 스킵 비트(skip)가 1인 경우, 기준 전압 생성 회로(62)는 MSB에 대한 기준 전압(Vref)을 생성하여 비교기(61)로 전달하고, 비교기(61)는 인에이블 신호(SAE)에 응답하여 활성화되어 MSB에 대한 기준 전압(Vref)과 글로벌 비트라인(GBL)에서 인가된 MAC 전압(VMAC)을 비교하여, MAC 연산 데이터(MAC data)에서 MSB의 비트값을 판정하여 출력한다. 비교기(61)는 MAC 전압(VMAC)이 기준 전압(Vref)보다 크면, MAC 연산 데이터(MAC data)의 MSB를 1로 출력하는 반면, 기준 전압(Vref)보다 작으면 0으로 출력할 수 있다.
인에이블 신호(SAE)는 MAC 연산 데이터(MAC data)의 각 비트값을 판별하기 위해 지정된 횟수(여기서는 일 예로 비트값에 따라 4회)만큼 반복적으로 활성화 및 비활성화되어 인가되며, 인에이블 신호(SAE)가 MSB를 위해 1회 활성화된 후 비활성화되면, 더미 리드 비트라인 온 신호(dRBLon)가 활성화되어 더미 리드 비트라인(dRBL)을 다시 프리차지한다. 이때 리드 워드라인(RWL)이 이미 비활성화된 상태이므로, 프리차지되는 더미 리드 비트라인(dRBL)은 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)의 값에 무관하게 프리차지된 전압 레벨을 유지한다.
따라서 MSB 스킵 인에이블 회로(63)는 인에이블 신호(SAE)를 그대로 비교기(61)로 전달하고, 비교기(61)는 기존의 ADC(13)의 비교기(21)와 마찬가지로 인에이블 신호(SAE)에 따라 글로벌 비트라인(GBL)에서 인가된 MAC 전압(VMAC)을 비교하여, MAC 연산 데이터(MAC data)에서 각 비트값을 판정하여 출력한다. 이때 기준 전압 생성 회로(62)는 각 비트값을 판별하기 위한 기준 전압(Vref)을 생성하여 비교기(61)로 전달한다.
결과적으로 실시예에 따른 CIM은 다수의 메모리 셀(MC)에 저장되는 가중치(w) 중 1의 가중치 개수를 미리 카운트하고, 카운트된 1의 가중치 개수가 0의 가중치 개수 이하, 즉 1의 가중치 개수가 MAC 연산에 활용되는 메모리 셀(MC) 개수의 과반(1/2) 이하인지 여부에 따라 MSB 스킵 비트(skip)를 설정하여 더미 메모리 셀(dMC)에 저장하고, 이후 CIM의 MAC 연산 동작 시에 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)에 따라 ADC(60)가 MAC 전압(VMAC)을 MAC 연산 데이터(MAC data)로 변환할 때, MAC 연산 데이터(MAC data)의 MSB에 대한 변환을 수행하지 않고서도 MSB를 결정할 수 있도록 한다. 따라서 CIM의 전력 소모를 저감시킬 수 있다.
일반적으로 DNN(Deep Neural Network)에서 1의 가중치 개수가 0의 가중치 개수 이하인 경우와 0의 가중치 개수를 초과하는 경우에 대한 비율은 대략 1:1이므로 MSB 스킵 비트(skip)에 따른 MSB 스킵 동작은 MAC 연산 동작 시에 1/2 수준에서 실행될 수 있다. 비록 MSB 스킵 동작은 MAC 연산 데이터(MAC data)의 다수의 비트 중 MSB에 대해서만 스킵하는 것이지만, 상기한 바와 같이, 기준 전압 생성 회로(62)가 MSB에 대한 기준 전압(Vref)을 생성하기 위해서는 다른 비트에 대한 기준 전압(Vref)을 생성하는 경우보다 큰 캐패시턴스를 갖는 캐패시터를 충방전해야 하므로, 다른 비트에 비해 상대적으로 의미있는 크기로 전력 소비를 저감시킬 수 있다. 실험에 따르면 실시예의 MSB 스킵 기법을 적용하는 CIM은 기존의 CIM에 비해 대략 20% 수준의 전력 저감 효과를 가질 수 있음이 확인되었다.
실시예에서도 CIM의 각 동작은 제어 모듈(미도시)이 CIM의 각 구성 요소를 제어하여 수행될 수 있다.
도 10은 실시예에 따른 CIM의 MAC 연산 방법을 설명하기 위한 도면이다.
도 7 내지 도 9와 함께 도 10을 참조하면, 실시예에 따른 CIM의 MAC 연산 방법은 가중치 저장 단계(80)와 MAC 연산 단계(90)로 크게 구분될 수 있다. 가중치 저장 단계(80)는 우선 CIM 셀 어레이(30)의 다수의 메모리 셀(MC)에 가중치를 저장하면서, 한번의 MAC 연산에 함께 이용되는 메모리 셀(MC)에 저장되는 가중치 중 1의 값을 갖는 가중치의 개수를 카운트한다(81). 그리고 카운트된 값이 한번의 MAC 연산에 함께 이용되는 메모리 셀(MC) 개수의 1/2 이하인지 여부에 따라 MSB 스킵 여부를 나타내는 MSB 스킵 비트(skip)를 설정한다(82). 이때 MSB 스킵 비트(skip)는 카운트된 값이 메모리 셀(MC) 개수의 1/2 이하이면 0으로 설정되고, 1/2 을 초과하면 1로 설정될 수 있다.
MSB 스킵 비트(skip)가 설정되면, MSB 스킵 비트(skip)가 설정에 이용된 가중치가 저장된 메모리 셀(MC)과 동일한 로우에 배치된 더미 메모리 셀(dMC)에 설정된 MSB 스킵 비트(skip)를 저장한다(83). 이후 MAC 연산 실행 여부를 판별한다(84).
만일 MAC 연산을 실행하는 것으로 판별되면, MAC 연산 단계(90)를 수행한다. MAC 연산 단계(90)에서는 우선 입력된 입력 데이터(IN) 각각에 따른 입력 전압을 CIM 셀 어레이(30)의 다수의 리드 비트라인(RBL)로 인가하여 프리차지 한다(91). 그리고 리드되어야 하는 가중치(w)가 저장된 메모리 셀(MC)이 연결된 리드 워드라인(RWL)을 활성화하여 다수의 리드 비트라인(RBL)과 메모리 셀(MC)을 연결하고, 리드 비트라인(RBL)은 연결된 메모리 셀(MC)에 저장된 가중치에 따라 프리차지된 전압이 유지되거나 강하된다. 리드 비트라인(RBL)은 입력 데이터(IN)와 가중치(w)의 곱에 대응하는 전압 레벨을 갖게 된다. 이때 더미 메모리 셀(dMC)에 저장된 MSB 스킵 비트(skip)에 따라 더미 메모리 셀(dMC)이 연결된 더미 리드 비트라인(dRBL)이 프리차지된 전압 레벨의 강하가 이루어지게 된다. 예로서 MSB 스킵 비트(skip)가 1이면, 더미 리드 비트라인(dRBL)은 프리차지된 전압 레벨을 유지하고, MSB 스킵 비트(skip)가 0이면, 더미 리드 비트라인(dRBL)의 전압 레벨은 접지 전압 레벨로 강하될 수 있다. 즉 MSB 스킵 비트(skip)가 리드되도록 한다.
그리고 다수의 리드 비트라인(RBL)과 글로벌 비트라인(GBL) 사이에 연결된 다수의 스위치(sw)를 턴 온시켜, 다수의 리드 비트라인(RBL)이 글로벌 비트라인(GBL)에 병렬로 연결되도록 함으로써, 글로벌 비트라인(GBL)이 다수의 입력 데이터(IN)와 다수의 가중치(w)의 곱이 누산된 MAC 연산 결과에 따른 MAC 전압(VMAC)을 갖도록 한다.
그리고 리드된 MSB 스킵 비트의 값에 따라 MSB 스킵 여부를 확인한다(94). 만일 MSB 스킵 비트(skip)가 0이면, MAC 연산 데이터(MAC data)의 MSB가 메모리 셀(MC)에 저장된 가중치(w)에 의해 0이므로, ADC(60)는 MAC 연산 데이터(MAC data)의 MSB를 판정할 필요가 없다. 따라서 MSB에 대한 기준 전압(Vref)을 생성하지 않으며, MAC 전압(VMAC)과 기준 전압(Vref)을 비교하지 않고 MSB에 대한 판정을 스킵한다(95). 이때 MSB 스킵은 판별해야 하는 MAC 연산 데이터(MAC data)의 비트 수만큼 활성화 및 비활성화를 반복하는 인에이블 신호(SAE)가 1회 활성화 및 비활성화되는 동안 ADC(60)의 비교기(61)가 비활성화되도록 하여 수행될 수 있다.
그러나 MSB 스킵 비트(skip)가 1이면, MAC 연산 데이터(MAC data)의 MSB가 입력 데이터(IN)에 따라 0 또는 1이 될 수 있으므로, MSB에 대한 기준 전압(Vref)을 생성하고, ADC(60)의 비교기(61)는 인에이블 신호(SAE)에 응답하여 활성화된 생성된 MSB에 대한 기준 전압(Vref)과 MAC 전압(VMAC)을 비교하여 MAC 연산 데이터(MAC data)의 MSB를 판정한다(96).
이후 MAC 연산 데이터(MAC data)의 나머지 비트를 판정하기 위한 기준 전압(Vref)을 순차적으로 생성하고, 인에이블 신호(SAE)에 응답하여 생성된 비트별 기준 전압(Vref)과 MAC 전압(VMAC)을 비교하여, MAC 데이터(MAC data)에서 MSB를 제외한 나머지 비트값을 판별함으로써, MAC 전압(VMAC)을 디지털 데이터로 변환한 MAC 데이터(MAC data)를 획득한다(97).
도 10에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 10에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능하다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
30: CIM 셀 어레이 31: 더미 셀 어레이
41, 42: 먹스 50: 스킵 비트 획득 모듈
51, 52: 카운터 53: 가산기
54: 스킵 비트값 판정기 60: ADC
61: 비교기 62: 기준 전압 생성 회로
63: MSB 스킵 인에이블 회로

Claims (17)

  1. 각각 가중치가 저장되는 다수의 메모리 셀과 MSB 스킵 여부를 나타내는 MSB 스킵 비트가 저장되는 다수의 더미 메모리 셀이 배열된 CIM(Compute-In-Memory) 셀 어레이;
    상기 다수의 메모리 셀에 저장된 가중치 중 1의 가중치 개수에 따라 상기 MSB 스킵 비트를 설정하여 상기 다수의 더미 메모리 셀에 저장하는 스킵 비트 획득 모듈; 및
    상기 CIM 셀 어레이에서 입력 데이터와 상기 다수의 메모리 셀에 저장된 가중치에 대한 MAC(Multiply-Accumulation) 연산 결과로 출력되는 MAC 전압을 디지털 데이터인 MAC 데이터로 변환하되, 상기 다수의 더미 메모리 셀에 저장된 MSB 스킵 비트에 따라 MAC 데이터의 MSB(Most Significant Bit)에 대한 비트값 판정을 스킵하는 ADC를 포함하는 CIM.
  2. 제1항에 있어서, 상기 스킵 비트 획득 모듈은
    상기 다수의 메모리 셀 중 동일한 MAC 연산에서 이용되는 메모리 셀 저장된 1의 가중치 개수가 0의 가중치 개수 이하이면, 상기 MSB 스킵 비트가 활성화된 값으로 설정하고,
    1의 가중치 개수가 0의 가중치 개수를 초과하면, 상기 MSB 스킵 비트를 비활성화된 값으로 설정하는 CIM.
  3. 제1항에 있어서, 상기 스킵 비트 획득 모듈은
    상기 CIM의 라이트 동작 시에 상기 다수의 메모리 셀 중 동일한 MAC 연산에서 이용되는 메모리 셀에 저장되는 상기 가중치에서 1의 가중치 개수를 카운트하고, 카운트된 1의 가중치 개수가 동일한 MAC 연산에서 이용되는 메모리 셀 개수의 1/2 이하인지에 따라 상기 MSB 스킵 비트를 설정하는 CIM.
  4. 제1항에 있어서, 상기 ADC는
    상기 CIM의 MAC 연산 동작 시에 상기 MAC 데이터의 각 비트값을 판별하기 위해 서로 다른 전압 레벨을 갖는 다수의 기준 전압을 생성하고,
    상기 MAC 전압과 생성된 기준 전압을 각각 비교하여 상기 MAC 데이터의 각 비트값을 판별하되,
    상기 MSB 스킵 비트가 활성화되어 있으면, 상기 MAC 데이터의 MSB를 판별하기 위한 기준 전압을 비교하지 않고, 상기 MAC 데이터의 MSB을 결정하는 CIM.
  5. 제1항에 있어서, 상기 ADC는
    상기 MSB 스킵 비트가 활성화되어 있으면, 상기 MAC 데이터의 MSB를 판별하기 위한 기준 전압을 생성하지 않고 스킵하는 CIM.
  6. 제1항에 있어서, 상기 ADC는
    SAR-ADC(Successive Approximation Register type-ADC)로 구현되는 CIM.
  7. 제1항에 있어서, 상기 다수의 메모리 셀은
    다수의 리드 워드라인과 다수의 리드 비트라인이 교차하는 위치에 배치되고, 상기 다수의 리드 워드라인 중 대응하는 워드라인이 활성화되면, 상기 입력 데이터에 따른 입력 전압으로 프리차지된 상기 다수의 리드 비트라인을 저장된 가중치에 따라 전압 강하시키는 CIM.
  8. 제7항에 있어서, 상기 다수의 더미 메모리 셀은
    상기 다수의 리드 워드라인과 적어도 하나의 더미 리드 비트라인이 교차하는 위치에 배치되고, 대응하는 워드라인이 활성화되면, 미리 프리차지된 상기 더미 리드 비트라인을 저장된 상기 MSB 스킵 비트에 따라 전압 강하시켜, 상기 더미 리드 비트라인에 연결된 상기 ADC에 MSB 스킵 비트를 전달하는 CIM.
  9. 제8항에 있어서, 상기 CIM은
    상기 ADC가 상기 MAC 데이터의 MSB에 대한 비트값을 판정하거나 스킵하면, 다음 비트값을 판정하기 이전, 상기 적어도 하나의 더미 리드 비트라인을 프리차지 하는 더미 리드 비트라인 프리차지 회로를 더 포함하는 CIM.
  10. 각각 가중치가 저장되는 다수의 메모리 셀과 MSB 스킵 여부를 나타내는 MSB 스킵 비트가 저장되는 다수의 더미 메모리 셀이 배열된 CIM 셀 어레이를 포함하는 CIM의 MAC 연산 방법에 있어서,
    상기 다수의 메모리 셀에 저장된 가중치 중 1의 가중치 개수에 따라 상기 MSB 스킵 비트를 설정하여 상기 다수의 더미 메모리 셀에 저장하는 단계; 및
    상기 CIM 셀 어레이에서 입력 데이터와 상기 다수의 메모리 셀에 저장된 가중치에 대한 MAC(Multiply-Accumulation) 연산 결과로 출력되는 MAC 전압을 디지털 데이터인 MAC 데이터로 변환하되, 상기 다수의 더미 메모리 셀에 저장된 MSB 스킵 비트에 따라 MAC 데이터의 MSB(Most Significant Bit)에 대한 비트값 판정을 스킵하는 단계를 포함하는 CIM의 MAC 연산 방법.
  11. 제10항에 있어서, 상기 다수의 더미 메모리 셀에 저장하는 단계는
    상기 다수의 메모리 셀 중 동일한 MAC 연산에서 이용되는 메모리 셀 저장된 1의 가중치 개수가 0의 가중치 개수 이하이면, 상기 MSB 스킵 비트가 활성화된 값으로 설정하고,
    1의 가중치 개수가 0의 가중치 개수를 초과하면, 상기 MSB 스킵 비트를 비활성화된 값으로 설정하는 CIM의 MAC 연산 방법.
  12. 제10항에 있어서, 상기 다수의 더미 메모리 셀에 저장하는 단계
    상기 CIM의 라이트 동작 시에 상기 다수의 메모리 셀 중 동일한 MAC 연산에서 이용되는 메모리 셀에 저장되는 상기 가중치에서 1의 가중치 개수를 카운트하고,
    카운트된 1의 가중치 개수가 동일한 MAC 연산에서 이용되는 메모리 셀 개수의 1/2 이하인지에 따라 상기 MSB 스킵 비트를 설정하는 CIM의 MAC 연산 방법.
  13. 제10항에 있어서, 상기 스킵하는 단계는
    상기 CIM의 MAC 연산 동작 시에 상기 MAC 데이터의 각 비트값을 판별하기 위해 서로 다른 전압 레벨을 갖는 다수의 기준 전압을 생성하고,
    상기 MAC 전압과 생성된 기준 전압을 각각 비교하여 상기 MAC 데이터의 각 비트값을 판별하되,
    상기 MSB 스킵 비트가 활성화되어 있으면, 상기 MAC 데이터의 MSB를 판별하기 위한 기준 전압을 비교하지 않고, 상기 MAC 데이터의 MSB을 결정하는 CIM의 MAC 연산 방법.
  14. 제10항에 있어서, 상기 스킵하는 단계는
    상기 MSB 스킵 비트가 활성화되어 있으면, 상기 MAC 데이터의 MSB를 판별하기 위한 기준 전압을 생성하지 않고 스킵하는 CIM의 MAC 연산 방법.
  15. 제10항에 있어서, 상기 스킵하는 단계는
    상기 다수의 메모리 셀이 다수의 리드 워드라인과 다수의 리드 비트라인이 교차하는 위치에 배치되고,
    상기 다수의 메모리 셀은 상기 다수의 리드 워드라인 중 대응하는 워드라인이 활성화되면, 상기 입력 데이터에 따른 입력 전압으로 프리차지된 상기 다수의 리드 비트라인을 저장된 가중치에 따라 전압 강하시키는 CIM의 MAC 연산 방법.
  16. 제15항에 있어서, 상기 스킵하는 단계는
    상기 다수의 더미 메모리 셀이 상기 다수의 리드 워드라인과 적어도 하나의 더미 리드 비트라인이 교차하는 위치에 배치되고,
    상기 다수의 더미 메모리 셀은 대응하는 워드라인이 활성화되면, 미리 프리차지된 상기 더미 리드 비트라인을 저장된 상기 MSB 스킵 비트에 따라 전압 강하시켜, 상기 더미 리드 비트라인의 전압 레벨에 따라 MSB에 대한 비트값 판정 스킵 여부를 결정하는 CIM의 MAC 연산 방법.
  17. 제16항에 있어서, 상기 CIM의 MAC 연산 방법은
    상기 MAC 데이터의 MSB에 대한 비트값이 판정되거나 스킵되면, 다음 비트값을 판정하기 이전 상기 적어도 하나의 더미 리드 비트라인을 프리차지 하는 단계를 더 포함하는 CIM의 MAC 연산 방법.
KR1020220097657A 2022-08-05 2022-08-05 Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법 KR102662742B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220097657A KR102662742B1 (ko) 2022-08-05 2022-08-05 Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220097657A KR102662742B1 (ko) 2022-08-05 2022-08-05 Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법

Publications (2)

Publication Number Publication Date
KR20240019886A KR20240019886A (ko) 2024-02-14
KR102662742B1 true KR102662742B1 (ko) 2024-05-03

Family

ID=89896918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220097657A KR102662742B1 (ko) 2022-08-05 2022-08-05 Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법

Country Status (1)

Country Link
KR (1) KR102662742B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102207909B1 (ko) 2019-02-25 2021-01-26 연세대학교 산학협력단 비트라인의 전하 공유에 기반하는 cim 장치 및 그 동작 방법
US10964356B2 (en) * 2019-07-03 2021-03-30 Qualcomm Incorporated Compute-in-memory bit cell
US20220244916A1 (en) * 2021-01-29 2022-08-04 Taiwan Semiconductor Manufacturing Company, Ltd. Compute in memory

Also Published As

Publication number Publication date
KR20240019886A (ko) 2024-02-14

Similar Documents

Publication Publication Date Title
US10642922B2 (en) Binary, ternary and bit serial compute-in-memory circuits
CN112951294B (zh) 计算设备以及计算方法
CN111816232B (zh) 一种基于4管存储结构的存内计算阵列装置
KR102207909B1 (ko) 비트라인의 전하 공유에 기반하는 cim 장치 및 그 동작 방법
CN112151092B (zh) 一种基于4管存储的存储单元、存储阵列及存内计算装置
CN113255904B (zh) 电压裕度增强型电容耦合存算一体单元、子阵列及装置
US8358551B2 (en) Reducing peak currents required for precharging data lines in memory devices
CN115039177A (zh) 低功耗存储器内计算位单元
US20210082489A1 (en) Time tracking circuit for fram
US11100979B1 (en) Low-power SRAM memory cell and application structure thereof
US20220374694A1 (en) Neural network circuit and neural network system
US11018687B1 (en) Power-efficient compute-in-memory analog-to-digital converters
Lee et al. A charge-sharing based 8t sram in-memory computing for edge dnn acceleration
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
Sehgal et al. Trends in analog and digital intensive compute-in-SRAM designs
Ananthanarayanan et al. Design and Analysis of Multibit Multiply and Accumulate (MAC) unit: An Analog In-Memory Computing Approach
KR102662742B1 (ko) Msb 스킵 기법 기반 저전력 cim 및 이의 mac 연산 방법
KR102318819B1 (ko) 멀티 비트 가중치의 연산을 위한 인 메모리 장치
US11011216B1 (en) Compute-in-memory dynamic random access memory
CN112558922A (zh) 一种基于分离字线的四管存内计算装置
Kim et al. A charge-domain 10T SRAM based in-memory-computing macro for low energy and highly accurate DNN inference
KR20210022982A (ko) 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법
KR20240127653A (ko) 멀티비트 가중치에 대한 mac 연산을 수행할 수 있는 cim
CN114974351B (zh) 一种多比特存内计算单元及存内计算装置
US20230385024A1 (en) Memory cell based on edram and cim comprising the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right