초록
이 논문은 SIMD 구조를 갖는 프로세서에서 FFT 연산을 효과적으로 처리하는 방법에 대한 것이다. FFT는 디지털 신호처리 분야에서 널리 사용되는 범용 알고리즘으로 이의 효과적인 처리는 성능 향상에 있어서 매우 중요하다. Bruun 알고리즘은 반복적인 인수분해를 통해 구현되는 FFT 알고리즘으로, 널리 사용되는 Cooley-Tukey 알고리즘에 비해 복소수 곱셈이 아닌 실수 곱셈으로 대부분의 동작을 수행하는 장점을 가지고 있으나, SIMD 프로세서에서 구현하는 데는 벡터 데이터의 정렬 형태가 복잡하고 연산에 필요한 계수들을 저장할 메모리를 더 필요로 하는 단점이 있다. 실험 결과에 따르면 길이 1024인 FFT 연산을 SIMD 프로세서에서 수행하는데 있어서 Bruun 알고리즘은 Cooley-Tukey 알고리즘에 비해서 약 1.2배의 더 높은 처리성능을 보이지만, 약 4 배 더 큰 데이터 메모리를 필요로 한다. 따라서 데이터 메모리에 대한 제약이 큰 경우가 아니라면 SIMD 프로세서에서 Bruun 알고리즘이 FFT 연산에 적합하다.
This paper discusses the implementation of Bruun's FFT on a SIMD processor. FFT is an algorithm used in digital signal processing area and its effective processing is important in the enhancement of signal processing performance. Bruun's FFT algorithm is one of fast Fourier transform algorithms based on recursive factorization. Compared to popular Cooley-Tukey algorithm, it is advantageous in computations because most of its operations are based on real number multiplications instead of complex ones. However it shows more complicated data alignment patterns and requires a larger memory for storing coefficient data in its implementation on a SIMD processor. According to our experiment result, in the processing of the FFT with 1024 complex input data on a SIMD processor, The Bruun's algorithm shows approximately 1.2 times higher throughput but uses approximately 4 times more memory (20 Kbyte) than the Cooley-Tukey algorithm. Therefore, in the case with loose constraints on silicon area, the Bruun's algorithm is proper for the processing of FFT on a SIMD processor.