Search

KR-102961283-B1 - COMPUTING DEVICE WITH ZERO DETECTION-BASED CLOCK GATING AND METHOD FOR OPERATING THE SAME

KR102961283B1KR 102961283 B1KR102961283 B1KR 102961283B1KR-102961283-B1

Abstract

제로 탐지 기반 클록 게이팅이 적용된 연산 장치 및 그 동작 방법이 개시된다. 복소수 데이터를 처리하기 위한 연산 장치는 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs)을 포함하고, 상기 복수의 연산 소자들 각각은 수신된 복소수 입력 값을 저장하는 입력 레지스터; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 수신된 제로 탐지 결과를 저장하는 제로 레지스터; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 클록 게이팅 회로(clock gating circuit); 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 곱셈기; 및 상기 곱셈기의 연산 결과를 누적 저장하는 누산기를 포함할 수 있다.

Inventors

  • 윤명국
  • 이지영

Assignees

  • 이화여자대학교 산학협력단

Dates

Publication Date
20260506
Application Date
20250728

Claims (20)

  1. 복소수 데이터를 처리하기 위한 연산 장치에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 을 포함하고, 상기 복수의 연산 소자들 각각은, 수신된 복소수 입력 값을 저장하는 입력 레지스터; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 수신된 제로 탐지 결과를 저장하는 제로 레지스터; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 클록 게이팅 회로(clock gating circuit); 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 곱셈기; 및 상기 곱셈기의 연산 결과를 누적 저장하는 누산기 를 포함하고, 상기 클록 게이팅 회로는, 상기 복소수 입력 값의 실수부와 허수부 각각에 대해 독립적으로 클록 신호 인가를 제어하는 네거티브 레벨 트리거D-래치(negative level triggered D-latch) 또는 AND 게이트(AND gate)를 포함하는, 연산 장치.
  2. 제1항에 있어서, 상기 클록 게이팅 회로는, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로인 경우, 상기 입력 레지스터에 제어된 클록 신호를 인가하고, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로가 아닌 경우, 상기 입력 레지스터에 제어되지 않은 클록 신호를 인가하는, 연산 장치.
  3. 삭제
  4. 복소수 데이터를 처리하기 위한 연산 장치에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 을 포함하고, 상기 복수의 연산 소자들 각각은, 수신된 복소수 입력 값을 저장하는 입력 레지스터; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 수신된 제로 탐지 결과를 저장하는 제로 레지스터; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 클록 게이팅 회로(clock gating circuit); 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 곱셈기; 및 상기 곱셈기의 연산 결과를 누적 저장하는 누산기 를 포함하고, 상기 제로 탐지 회로는, 상기 복소수 입력 값의 실수부와 허수부 각각에 대해 독립적으로 제로 여부를 판단하는 NOR 게이트 또는 NAND 게이트를 포함하는, 연산 장치.
  5. 복소수 데이터를 처리하기 위한 연산 장치에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 을 포함하고, 상기 복수의 연산 소자들 각각은, 수신된 복소수 입력 값을 저장하는 입력 레지스터; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 수신된 제로 탐지 결과를 저장하는 제로 레지스터; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 클록 게이팅 회로(clock gating circuit); 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 곱셈기; 및 상기 곱셈기의 연산 결과를 누적 저장하는 누산기 를 포함하고, 상기 제로 탐지 회로는, 입력 버퍼와 상기 시스톨릭 배열의 최상단에 위치한 연산 소자 사이에 배치되는, 연산 장치.
  6. 복소수 데이터를 처리하기 위한 연산 장치에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 을 포함하고, 상기 복수의 연산 소자들 각각은, 수신된 복소수 입력 값을 저장하는 입력 레지스터; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 수신된 제로 탐지 결과를 저장하는 제로 레지스터; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 클록 게이팅 회로(clock gating circuit); 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 곱셈기; 및 상기 곱셈기의 연산 결과를 누적 저장하는 누산기 를 포함하고, 상기 복수의 연산 소자들 각각은, 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 곱셈기로 전달되는 가중치 값을 선택적으로 대체하는 가중치 선택기를 더 포함하는, 연산 장치.
  7. 제6항에 있어서, 상기 가중치 선택기는, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로인 경우, 가중치 레지스터에 저장된 값이 아닌 제로 값을 상기 가중치 값으로 선택하여 상기 곱셈기로 전달하고, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로가 아닌 경우, 상기 가중치 레지스터에 저장된 값을 상기 가중치 값으로 선택하여 상기 곱셈기로 전달하는, 연산 장치.
  8. 제6 항에 있어서, 상기 가중치 선택기는, 상기 복소수 입력 값의 실수부와 허수부 각각에 대해 독립적으로 상기 가중치 값을 선택하는 2:1 멀티플렉서(multiplexer)를 포함하는 연산 장치.
  9. 복소수 데이터를 처리하기 위한 연산 장치에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs); 및 입력 버퍼에 저장된 복소수 입력 값이 변환된 입력 행렬의 크기 및 상기 시스톨릭 배열의 크기에 기초하여 폴드(fold)를 생성하는 폴드 제어기 를 포함하고, 상기 복수의 연산 소자들 각각은, 수신된 복소수 입력 값을 저장하는 입력 레지스터; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 수신된 제로 탐지 결과를 저장하는 제로 레지스터; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 클록 게이팅 회로(clock gating circuit); 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 곱셈기; 및 상기 곱셈기의 연산 결과를 누적 저장하는 누산기 를 포함하는, 연산 장치.
  10. 제9항에 있어서, 상기 입력 레지스터에 저장된 복소수 입력 값은, 폴드 단위로 연산이 수행되는 동안 동일 값이 유지되는, 연산 장치.
  11. 복소수 데이터를 처리하기 위한 연산 방법에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 각각에 대해, 수신된 복소수 입력 값을 입력 레지스터에 저장하는 단계; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 제로 탐지 결과를 수신하여 제로 레지스터에 저장하는 단계; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 클록 게이팅 회로(clock gating circuit)를 통해 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 단계; 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 단계; 및 상기 복소수 곱셈 연산의 결과를 누적 저장하는 단계 를 포함하고, 상기 클록 게이팅 회로는, 상기 복소수 입력 값의 실수부와 허수부 각각에 대해 독립적으로 클록 신호 인가를 제어하는 네거티브 레벨 트리거D-래치(negative level triggered D-latch) 또는 AND 게이트(AND gate)를 포함하는, 연산 방법.
  12. 제11항에 있어서, 상기 클록 게이팅 회로는, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로인 경우, 상기 입력 레지스터에 제어된 클록 신호를 인가하고, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로가 아닌 경우, 상기 입력 레지스터에 제어되지 않은 클록 신호를 인가하는, 연산 방법.
  13. 삭제
  14. 복소수 데이터를 처리하기 위한 연산 방법에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 각각에 대해, 수신된 복소수 입력 값을 입력 레지스터에 저장하는 단계; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 제로 탐지 결과를 수신하여 제로 레지스터에 저장하는 단계; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 클록 게이팅 회로(clock gating circuit)를 통해 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 단계; 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 단계; 및 상기 복소수 곱셈 연산의 결과를 누적 저장하는 단계 를 포함하고, 상기 제로 탐지 회로는, 상기 복소수 입력 값의 실수부와 허수부 각각에 대해 독립적으로 제로 여부를 판단하는 NOR 게이트 또는 NAND 게이트를 포함하는, 연산 방법.
  15. 복소수 데이터를 처리하기 위한 연산 방법에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 각각에 대해, 수신된 복소수 입력 값을 입력 레지스터에 저장하는 단계; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 제로 탐지 결과를 수신하여 제로 레지스터에 저장하는 단계; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 클록 게이팅 회로(clock gating circuit)를 통해 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 단계; 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 단계; 및 상기 복소수 곱셈 연산의 결과를 누적 저장하는 단계 를 포함하고, 상기 제로 탐지 회로는, 입력 버퍼와 상기 시스톨릭 배열의 최상단에 위치한 연산 소자 사이에 배치되는, 연산 방법.
  16. 복소수 데이터를 처리하기 위한 연산 방법에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 각각에 대해, 수신된 복소수 입력 값을 입력 레지스터에 저장하는 단계; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 제로 탐지 결과를 수신하여 제로 레지스터에 저장하는 단계; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 클록 게이팅 회로(clock gating circuit)를 통해 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 단계; 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 단계; 및 상기 복소수 곱셈 연산의 결과를 누적 저장하는 단계 를 포함하고, 상기 복수의 연산 소자들 각각은, 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 곱셈기로 전달되는 가중치 값을 선택적으로 대체하는 가중치 선택기를 더 포함하는, 연산 방법.
  17. 제16항에 있어서, 상기 가중치 선택기는, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로인 경우, 가중치 레지스터에 저장된 값이 아닌 제로 값을 상기 가중치 값으로 선택하여 곱셈기로 전달하고, 상기 제로 레지스터에 저장된 제로 탐지 결과가 제로가 아닌 경우, 상기 가중치 레지스터에 저장된 값을 상기 가중치 값으로 선택하여 상기 곱셈기로 전달하는, 연산 방법.
  18. 제16항에 있어서, 상기 가중치 선택기는, 상기 복소수 입력 값의 실수부와 허수부 각각에 대해 독립적으로 상기 가중치 값을 선택하는 2:1 멀티플렉서(multiplexer)를 포함하는 연산 방법.
  19. 복소수 데이터를 처리하기 위한 연산 방법에 있어서, 시스톨릭 배열(systolic array) 형태로 배치된 복수의 연산 소자들(processing elements; PEs) 각각에 대해, 수신된 복소수 입력 값을 입력 레지스터에 저장하는 단계; 상기 복소수 입력 값이 제로(0)인지 여부를 판단하는 제로 탐지 회로로부터 제로 탐지 결과를 수신하여 제로 레지스터에 저장하는 단계; 상기 제로 레지스터에 저장된 상기 제로 탐지 결과에 기초하여, 클록 게이팅 회로(clock gating circuit)를 통해 상기 입력 레지스터로 인가되는 클록 신호를 제어하는 단계; 상기 입력 레지스터에 저장된 상기 복소수 입력 값과 상기 연산 소자로 제공된 가중치 값에 기초하여 복소수 곱셈 연산을 수행하는 단계; 및 상기 복소수 곱셈 연산의 결과를 누적 저장하는 단계 를 포함하고, 입력 버퍼에 저장된 복소수 입력 값이 변환된 입력 행렬의 크기 및 상기 시스톨릭 배열의 크기에 기초하여 폴드(fold)가 생성되는, 연산 방법.
  20. 제19항에 있어서, 상기 입력 레지스터에 저장된 복소수 입력 값은, 폴드 단위로 연산이 수행되는 동안 동일 값이 유지되는, 연산 방법.

Description

제로 탐지 기반 클록 게이팅이 적용된 연산 장치 및 이의 동작 방법{COMPUTING DEVICE WITH ZERO DETECTION-BASED CLOCK GATING AND METHOD FOR OPERATING THE SAME} 아래의 개시는 복소수 데이터를 처리하는 기술에 관한 것으로, 보다 구체적으로는 제로 탐지(zero detection) 기반의 조건부 클록 제어 기법을 적용하여, 복소수 입력 값을 효율적으로 처리하는 시스톨릭 배열(systolic array) 기반 연산 장치 및 이의 동작 방법에 관한 것이다. 최근 인공지능(artificial intelligence; AI) 기술의 급속한 발전과 함께, 합성곱 신경망(convolutional neural network, CNN) 및 트랜스포머(transformer)와 같은 대규모 신경망 모델을 고속으로 처리하기 위한 전용 하드웨어 가속기(accelerator)의 개발이 활발히 진행되고 있다. 이 중 시스톨릭 배열 구조는 복수의 곱셈 및 누적 연산(multiply-and-accumulate; MAC)을 일반적인 행렬 곱 연산(general matrix-matrix multiplication; GEMM) 형태로 고속 병렬 처리할 수 있어, 대표적인 딥러닝 하드웨어 구현 방식으로 널리 채택되고 있다. 한편, 기존의 실수 기반 신경망에 비해, 복소수(complex number) 기반 신경망은 위상(phase) 정보 및 진폭(amplitude) 정보를 동시에 표현할 수 있다는 장점을 가지므로, 음향 분석, 이미지 복원, 레이다 신호처리, 양자 컴퓨팅 등 다양한 응용 분야에서 활용성이 높아지고 있다. 그러나 복소수 곱셈은 실수 곱셈에 비해 최소 4배 이상의 MAC 연산량을 요구하며, 실수부와 허수부를 개별적으로 저장하고 처리해야 하기 때문에, 메모리 대역폭 및 전력 소모량이 증가하는 문제가 존재한다. 상술한 정보는 본 개시에 대한 이해를 돕기 위한 목적으로 하는 배경 기술(related art)로 제공될 수 있다. 상술한 내용 중 어느 것도 본 개시와 관련된 종래 기술(prior art)로서 적용될 수 있는지에 대하여 어떠한 주장이나 결정이 제기되지 않는다. 도면의 설명과 관련하여, 동일 또는 유사한 구성 요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다. 도 1은 일 실시예에 따른 제로 탐지 기반 클록 게이팅이 적용된 복소수 시스톨릭 배열 구조의 연산 장치를 도시한 도면이다. 도 2는 일 실시예에 따른 입력 중심 데이터 흐름 구조를 채택한 시스톨릭 배열에서의 폴드(fold) 단위 연산 수행 방법을 설명하기 위한 도면이다. 도 3은 일 실시예에 따른 제로 레지스터에 저장된 제로 비트 신호를 생성하는 제로 탐지 회로를 나타내 도면이다. 도 4는 일 실시예에 따른 복소수 연산 소자에서 입력 레지스터의 클록 신호를 제어하는 방법을 나타낸 도면이다. 도 5는 일 실시예에 따른 복소수 시스톨릭 배열을 구성하는 하나의 복소수 연산 소자에 대한 구조를 설명하기 위한 도면이다. 실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", "A, B, 또는 C 중 적어도 하나", 및 "A, B 및 C 중 하나 또는 둘 이상의 조합"과 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. 제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다. 도 1은 일 실시예에 따른 제로 탐지 기반 클록 게이팅이 적용된 복소수 시스톨릭 배열 구조의 연산 장치를 도시한 도면이다. 본 개시는 복소수 신경망(complex-valued neural network)의 연산 과정에서 발생할 수 있는 불필요한 스위칭에 따른 전력 소모를 줄이기 위한 기술로서, 제로 탐지 회로를 이용하여 복소수 입력 값의 유효성을 판단하고, 그 결과를 클록 게이팅 회로에 반영함으로써, 복소수 연산 소자(예: 도 1의 complex processing element; complex PE)의 불필요한 스위칭 전력을 억제할 수 있는 에너지 효율적인 연산 장치를 제공할 수 있다. 도 1을 참고하면, 연산 장치(100)는 N×N개의 복소수 연산 소자들이 시스톨릭 배열 형태로 배치될 수 있다. 이때, 해당 시스톨릭 배열은 입력 중심의 데이터 흐름 구조를 채택하므로, 연산 장치(100)는 연산 수행 전에 입력 버퍼(IFMAP SRAM Buffer)로부터 제공된 복소수 입력 값을 각 복소수 연산 소자에 먼저 저장할 수 있다. 이후 연산 장치(100)는 동일한 복소수 입력 값을 기반으로 가중치 값(weight value)이 좌측에서 우측 방향으로 전달되면서, 각 복소수 연산 소자에서 복소수 곱셈 및 누적 연산을 반복 수행할 수 있다. 이때, 연산 장치(100)는 시스톨릭 배열의 상단에서 하단 방향으로 복소수 입력 값이 전달되고, 좌측에서 우측 방향으로 가중치 값이 전달될 수 있다. 따라서, 각 복소수 연산 소자는 상단 방향에서 전달된 복소수 입력 값과 좌측 방향에서 전달된 가중치 값을 수신하여 복소수 곱셈 및 누적 연산을 수행할 수 있으며, 연산 결과를 하단 방향에 위치한 복소수 연산 소자 또는 출력 버퍼(OFMAP SRAM Buffer)로 전달할 수 있다. 입력 버퍼를 통해 제공된 복소수 입력 값은 제로 탐지 회로(zero detection)를 통해 실수부 및 허수부 각각에 대해 제로(0)인지 여부가 사전에 판단될 수 있다. 이에 따라 제로 탐지 회로는 실수부 및 허수부 각각에 대해 독립적인 1 비트의 제로 비트(zero-bit) 신호를 생성할 수 있다. 이와 같이 생성된 제로 비트 신호들은 각 복소수 연산 소자 내에 포함된 실수부용 제로 레지스터 및 허수부용 제로 레지스터에 각각 저장될 수 있다. 예를 들어, 복소수 입력 값의 실수부가 제로(0)인 경우, 제로 탐지 회로는 '0' 값에 대응하는 실수부 제로 비트 신호를 생성하여, 해당 복소수 연산 소자의 실수부용 제로 레지스터에 저장할 수 있다. 마찬가지로, 복소수 입력 값의 허수부가 제로인 경우, 제로 탐지 회로는 '0' 값에 대응하는 허수부 제로 비트 신호를 생성하여, 해당 복소수 연산 소자의 허수부용 제로 레지스터에 저장할 수 있다. 그 이외의 경우, 제로 탐지 회로는 '1' 값에 대응하는 실수부 제로 비트 신호 및 허수부 제로 비트 신호를 생성하여, 해당 복소수 연산 소자의 실수부용 제로 레지스터 및 허수부용 제로 레지스터에 각각 저장할 수 있다. 각 복소수 연산 소자는 클록 게이팅 회로(clock gating circuit)를 포함하며, 해당 클록 게이팅 회로는 실수부용 제로 레지스터 및 허수부용 제로 레지스터에 각각 저장된 실수부 제로 비트 신호 및 허수부 제로 비트 신호를 기반으로, 입력 레지스터에 인가되는 클록 신호를 제어할 수 있다. 예를 들어, 실수부용 제로 레지스터에 '0' 값이 저장된 경우, 클록 게이팅 회로는 실수부용 입력 레지스터에 클록 신호를 인가하지 않을 수 있다. 이는 해당 복소수 연산 소자의 실수부 연산 경로에서의 스위칭 활동을 억제하여 전력 소모를 줄이는 효과를 가져올 수 있다. 이때, 허수부 또한 동일한 방식으로 제어될 수 있다. 도 2는 일 실시예에 따른 입력 중심의 데이터 흐름 구조를 채택한 시스톨릭 배열에서의 폴드(fold) 단위 연산 수행 방법을 설명하기 위한 도면이다. 도 2를 참고하면, 연산 장치(예: 도 1의 연산 장치(100))는 복소수 신경망의 연산을 수행함에 있어, Im2Col(Image to Column) 기법을 적용하여 입력 데이터(예: 3차원 혹은 4차원의 행렬)를 2차원의 행렬 형식으로 변환할 수 있다. 연산 장치는 이와 같은 Im2Col 기법을 통해 변환된 입력 행렬을 이용하여 일반 행렬 곱 연산(general matrix-matrix multiplication; GEMM)을 수행함으로써 결과 행렬을 획득할 수 있다. 일반적으로 Im2Col 기법을 통해 변환된 입력 행렬의 크기(M×N)는 시