Systolic arrays.png

개요

Dataflow machine과 같은 병렬 처리에 특화된 구조는 특별한 시스템을 사용해서 명령을 처리하게 된다. 이중 하나의 방법이 시스톨릭 배열 (Systolic array)이다. TPU와 같은 아키텍쳐에서 사용되며, 크게 입력 데이터 -> 출력 데이터의 구조를 가지고 있다.

시스톨릭 어레이는 데이터가 배열 형태로 배치되어 있고, 각 셀은 데이터를 연산하고 다음 셀로 전달한다. 이때 데이터는 한 방향으로만 흐르며, 이러한 특성 때문에 "시스톨릭"이라는 용어가 사용된다. 각 셀은 일반적으로 작고 간단한 연산을 수행하며, 전체적인 성능은 병렬로 동작하는 여러 셀의 조합에 의해 결정된다. 시스톨릭 어레이는 주로 행렬 곱셈이나 컨벌루션과 같은 수학적인 연산에 사용되며, 고성능 및 효율적인 에너지 사용을 위해 설계된다. 또한, 신호 처리 및 이미지 처리와 같은 응용 분야에서도 널리 사용된다.

HB (heart beat)신호가 들어오면 각각의 Processing element(PE)가 전단계에서 들어온 정보에 특정한 연산을 가하고 다음 PE로 신호를 전달한다. 이러한 방식으로 계속해서 신호를 각각의 PE연산자가 계산하면 최종 결과가 도출된다. 거의 그리고 어쩌면 오직 인공지능에서만 사용되는데, 이는 이 기법을 통해서 계산할 수 있는 방법이 매우 제한적이지만 행렬의 dot product계산에 최적화된 성능을 발휘 할 수 있기 때문이다. 어쩌면 Pipeline과 비슷하지만 이러한 경로가 linear하지 않고 nonlinear이며 그리고 multidirectional이라는 것이 차이점이다.