고정 소수점 하드웨어에서 역행렬 계산 구현 고정 소수점 하드웨어에서 역행렬 계산 구현
김재호 2008-01-25 10:56:15

고정 소수점 하드웨어에서 역행렬 계산 구현

고정 소수점 계산과 역행렬 계산을 사용하면 Xilinx FPGA에서 DSP 알고리즘의 효율적인 하드웨어 구현이 가능하다. 이러한 알고리즘을 구현할 경우, AccelChip DSP 합성 도구를 사용함으로써 효율성이 높아지기 때문에 자동화 수준을 높일 수 있다. 이 결과를 통해 고정 소수점 계산 하드웨어에서의 알고리즘 구현 방식의 효율성을 가늠해 볼 수 있다.

글 │Ramon Uribe, Tom Cesear, AccelChip Inc.

역행렬산은 레이더, 수중 음파 탐지기 및 통신용 안테나 시스템 등과 같은 최신 DSP 알고리즘과 기술에서 중요한 연산이다. 이러한 알고리즘의 일반적인 구성 요소에는 신호 소스 수신에 대한 센서의 반응을 최적화된 방식으로 조절하는 빔포머(Beamformer)또는 공간 필터(Spatial Filter)가 있다.

최소 제곱법(LS;Least-Squares)을 사용하면 결정적 정규 방정식(Deterministic Normal Equation)으로 알려진 일차 방정식 체계의 솔루션을 바탕으로 최적 가중치를 계산한다. 이를 방정식으로 표시하면 다음과 같다.

RX w = p

여기서 w는 빔포머 가중치의 벡터로, 다음 방정식과 같이 행렬 RX의 역수로서 구할 수 있다.

w = Rx-1 p

수치적인 측면에서 볼 때 역행렬 계산을 위한 최선의 방법은 가능하면 직접적인 방식을 사용하지 않는 것이다. 대신 적절한 솔루션 기법을 사용하여 방정식을 푸는 것이 좋다.이와 같은 구현 방법은 전통적으로 반올림 오류를 최소화하기 위해 부동 소수점 계산 방식을 사용하는 다목적 DSP 장비로 수행되었다. 그러나 이와 같은 구현 방식에서는 장비당 사용 가능한 부동 소수점 처리 장치의 수가 적기 때문에 처리 능력에 한계가 있을 수 밖에 없다는 단점이 있다.

이러한 구현 방식에 대한 좋은 대안중 하나는 병렬 처리 기능을 지원하는 Xilinx VirtexTM-4 FPGA 제품군을 사용하는 것이다. 이러한 실리콘 패브릭을 사용할 경우 고정 소수점 계산 방식에 맞게 변형되므로 복잡해지는 문제가 있고 반올림 오류에 민감하기 때문에 구현 자체가 어려워질 수 있다.

이 글에서는 고정 소수점 계산 기능을 갖는 하드웨어에 역행렬 계산을 포함하는 알고리즘 구현을 가능하게 하는 효율적인 방법을 설명한다. 이 방법에는 개발 과정에서 따라야 할 세 가지 (MATLAB 언어에서 DSP 알고리즘 분석, MATLAB 알고리즘상상의 고정 소수점 매개변수 정의, 고정 소수점 계산 시 비트 단위 정확도를 가지며 특정 애플리케이션에 대한 면적/속도 요구 사항을 만족시키는 하드웨어 자동 생성)단계가 포함된다. 이 방법을 사용하면 FPGA 또는 ASIC 고정 소수점 하드웨어에서의 구현을 통해 제공되는 우수한 처리 능력을 십분 활용할 수 있다.

빔포밍(Beamforming)과 역행렬계산

그림 1은 K 센서 요소가 ULA(Uniform Linear Array)에 배열된 기초 협대역 빔포머를 나타낸다. 또한 투사각 q의 신호 소스 sq(t)도 보여준다. K빔포머 가중치(w1, w2, .., wK)는 배열데이터 관찰 본((x1(n), x2(n), ..,xK(n))을 선형으로 결합하는데 사용된다. 또한 최적의 수신을 위해 배열에 대한 반응을 조절하도록 설정된다. 빔포머의 출력은 스칼라 y(n)이다.

GSC(Generalized Sidelobe Canceller)는 특수한 빔포머 구조로, 최적의 빔포머 가중치 설계 시 최적화 기법을 자유롭게 사용할 수 있다. 그림 2는 GSC의 구조를 보여준다. LS 기준을 사용하여 최적 가중치 wa를 구하려면 다음의 결정적(Derermistic) 정규 방정식을 풀어야 한다.

RX wa = b

여기서 RX는 GSC의 무제한 부분에 대한 입력의 상관 행렬이며 벡터 b는 입력 Xa와 이상적인 입력의 Cross-Crrection 이다. 이와 같은 방정식을 해결하기 위한 효과적인 방법으로는 입력 데이터 행렬의 QR 분해를 사용한 RLS(Recursive Least-Squares) 근사치 구하기이다.이 방법에서는 역행렬을 직접적으로 계산하지 않고 해를 찾으며, 상관 행렬을 구성하지 않기 때문에 계산과 관련된 신호의 동적 범위 요구 조건이 줄어든다.

그림 3은 법선 방정식의 귀납 해법에 QRDRLS 알고리즘을 사용하는 적응형 GSC 빔포머 다이어그램이다.

빔포머의 예

하드웨어 합성 모델설계에 사용한 GSC 빔포머 MATLAB 모델은 다음과 같은 특징이 있다.

- 4개의 센서 요소로 구성된 ULA배열

- 0°로 충돌하는 협대역 입력 신호

- 신호와 동일한 진폭으로 10°로 충돌하는 협대역 간섭 신호

- 신호에 상대적으로 -20dB 수준에서 수신기 소음을 모델링하는 비상관 백색 소음 GSC MATLAB 모델은 세 부분으로구성된다. 최상위 수준 스크립트는 신호를 생성하고 결과를 표시하여 빔포머의 성능을 분석한다. 이 스크립트는 스트리밍 방식으로 QRD-RLS 알고리즘 함수를 호출하여 간섭 제거를 수행한다. 그림 4는 이 스크립트의 활용 사례를 보여준다.

이 모델의 두 번째 부분은 간섭 신호의 최적 제거를 수행하는 합성 QRDRLS 알고리즘 함수, rd_rls_spatial()이다. 이 함수는 그림 5에서 설명한다. GSC 모델의 마지막 부분은 값 배열을 회전시켜 직각 Givens 회전(Givens_Rotation)을 수행하는 합성 함수이다. 이 회전 함수는 AccelChip DSP합성 도구에서 합성 모델의 고급 수학툴킷(Advanced Math Toolkit)의 일부로 자동 생성될 수 있다. 이 함수는 그림 6에서 볼 수 있다.

GSC 모델 성능에 대한 분석 및 시각화는 그림 7의 구성도에 나타나 있다.신호는 구성도의 맨 위에 있다. 구성도의 중간 부분은 GSC의 데이터 독립적인 부분에서 수신된 신호를 나타낸다. 이신호는 센서 배열에서 충돌하는 간섭 신호에 의한 왜곡을 명확하게 보여준다.구성도의 하단 부분은 QRD-RLS 알고리즘 함수에 의한 간섭을 효과적으로 취소한 후의 GSC 출력을 나타낸다.

그림 8은 GSC의 빔패턴을 나타낸다. 구성도의 상단 부분은 GSC의 데이터 독립적인 부분의 빔패턴을 나타낸다. 여기서는 10㲑Œ���C에서 충돌한 간섭 신호가 0°에서 원하는 신호의 감쇠에 비해 약 2dB 만큼 감쇠되고 있음을 나타낸다. 이와 같이 감쇠가 적은 이유는 수신된 신호에서의 왜곡 때문이다. 구성도 중간 부분은 전반적인 GSC 빔패턴을 나타낸다. 10° 에서의 감쇠로 간섭 신호 취소가 개선됐음을 알 수 있다. 이는 GSC 출력으로 인한 간섭 신호를 취소했기 때문이다. 구성도 하단은 10°에서 감쇠가 이루어졌음을 보여주기 위해 전체 GSC 빔패턴을 확대한 모양이다.

고정 소수점 모델의 정의

설계의 출발점은 GSC의 원래‘황금(Golden)’참조 MATLAB 모델이다. 다음 단계는 매개변수로 표시된 고정소수점 계산 모델을 정의하는 것이다. 이 모델은 원래 MATLAB 모델과 직접연결되어 있어 황금 참조와의 긴밀성을 유지한다. 다음은 이 과정에서 효율성을 유지하는 데 필요한 중요한 두 가지 측면이다.

- 직관적으로 고정 소수점 매개변수를 MATLAB 알고리즘 설명의 변수와 연계하는 기능

- 전반적인 알고리즘 성능에서 고정소수점 계산 효과를 신속하게 평가하는 기능

매개변수로 표시된 고정 소수점 계산 모델을 정의하는 것은 반복적인 과정이다. QRD-RLS가 지원되는 GSC의 경우 암시적인 역행렬 계산 작업의 성능은 전반적인 빔패턴으로 표시되는 감쇠로 측정한다. 오버플로우를 방지할 수 있는 크기의 중간 변수로 입력비트 너비를 구했다. 빔패턴의 감쇠 효과는 그림 9에 설명되어 있다.

Xilinx는 그림 9와 같은 매우 이상적인 간섭 거부를 얻은 16비트 구현 방식을 선택했다. 하드웨어 구현 생성. 이방법의 마지막 단계는 하드웨어 구현을 생성하는 것이다. 효율성을 위해 다음과 같이 중요한 두 가지 측면이 필요하다.

- DSP 알고리즘의 고정 소수점 모델에서 비트 단위로 정확한 구현을 자동으로 생성하는 기능

- 면적/속도 요구 사항이 충족 되도록 구현 하드웨어 아키텍처를 조정하는 기능. 또한 자원 활용 및 운영 속도의 균형을 맞추기 위해 적절한 하드웨어 구현이 생성된다. QRD-RLS 알고리즘의 경우 구현의 면적/속도가 영향을 받는 두 가지 요소가 있다.

- Givens_Rotation 함수의 자원 공유 수준 제어

- Givens 회전 함수에서 행 요소 회전은 Newton-Raphson(멀티플라이어사용) 및 CORDIC(멀티플라이어 사용 안 함) 마이크로 아키텍처와 같은 다른 계산방식으로 얻을 수 있다. 이 단계를 반복하여 QRD - RLS 함수의 자원 활용 및 운영 속도를 다양하게 결합하였다. 표 1에 요약된 RTL 합성 결 과 는 Xilinx Virtex-4 XC4VSX55 대상 디바이스용이다.

이 결과에따르면, 연속적인구현으로인해 자원 활용(LUT)이 감소됐음을 알 수 있다. 연산 속도를 극대화하고 하드웨어 멀티플라이어(Multiplier) 사용을 최소화하기 위해 RTL 합성에서 넷리스트(Netlist)의 배치와 경로 지정에 CORDIC 병렬 구현 방식을 선택했다. 이러한 합성 과정에서 Xilinx ISE 소프트웨어를 사용하여 동일한 대상 디바이스에 매핑한 결과가 표 2에 나타나 있다.

하드웨어 구현 결과, QRD-RLS 함수는 XC4VSX55 디바이스의 로직 자원 중 12%와 초 당 1.7 메가샘플이라는 지속적인 데이터 속도로 구현할 수 있음을 알 수 있다.

고정 소수점 계산과 역행렬 계산을 사용하면 Xilinx FPGA에서 DSP 알고리즘의 효율적인 하드웨어 구현이 가능하다. 이러한 알고리즘을구현할경우, AccelChip DSP 합성도구를 사용함으로써 효율성이 높아지기 때문에 자동화수준을 높일 수 있다. 이결과를 통해 고정 소수점 계산 하드웨어에서의 알고리즘 구현 방식의 효율성을 가늠해 볼 수 있다.

 

<기사제공: 월간 반도체네트워크 2006년 04월호>

디지털여기에 news@yeogie.com <저작권자 @ 여기에. 무단전재 - 재배포금지>