In this work, we propose an energy-efficient analog convolutional neural network (CNN) processor which is tolerant to variations. CNN is a machine learning algorithm that shows high accuracy in applications such as image recognition and data classification. One of the characteristics of CNN is that it consumes a lot of power due to a large number of MAC (Multiply-and-accumulate) operations. Since the demand for energy-efficient CNN processors to be processed at the edge device is increasing recently, CNN processors have been designed using analog circuit-based MAC operators instead of digital circuit-based MAC operators. However, there are two major problems with conventional CNN processors which use analog computation. First, large power consumption due to frequent analog-to-digital and digital-to-analog data conversion between interim layers of CNN limits the total energy efficiency of the CNN processor. Second, since the analog circuit inherently suffers from the PVT variations, the performance of the processor is degraded by the variations. To address the two issues of the conventional CNN processors, analog datapath which includes analog memory is proposed to eliminate the power overhead of A/D and D/A conversion and variation-tolerant computation and write-with-feedback are proposed to eliminate the variation dependency of the computation.
본 연구에서는 에너지 효율적인 아날로그 연산을 사용하면서도 변화에 둔감한 CNN(Convolutional Neural Network, 심층 신경망) 프로세서를 제안한다. CNN은 이미지 인식, 데이터 분류 등의 어플리케이션에서 높은 정확도를 보여주는 기계 학습 알고리즘이다. CNN의 특징 중 하나는 MAC(Multiply-and-accumulate, 곱셈 및 누산) 연산의 횟수가 많아 전력 소모가 크다는 점인데, 최근 모바일 기기, IoT 기기 등 엣지 디바이스에서 저전력으로 동작하는 기계 학습 프로세서의 수요가 늘어남에 따라 디지털 회로 기반의 MAC 연산기 대신 아날로그 회로 기반의 MAC 연산기를 활용한 에너지 효율적인 CNN 프로세서가 설계되어 왔다. 하지만 아날로그 연산을 이용하는 CNN 프로세서에는 두 가지 주요한 문제가 있는데, 첫 번째는 CNN의 계층 간 잦은 아날로그-디지털 및 디지털-아날로그 데이터 변환으로 인한 큰 전력 소모가 발생한다는 점이며 두 번째는 PVT 변화로 인한 성능 저하가 발생할 수 있다는 점이다. 앞의 두 문제를 풀기 위해 본 연구에서는 중간 데이터 저장을 위해 아날로그 메모리를 사용함으로써 계층 간 데이터 변환을 없앴으며, 아날로그 연산기 및 아날로그 메모리 설계 시 변화에 둔감한 구조를 적용하여 변화로 인한 성능 저하를 억제하였다.