DOI QR코드

DOI QR Code

Low-Complexity and High-Speed Multi-Size Circular Shifter With Benes Network Control Signal Optimization for WiMAX QC-LDPC Decoder

Benes 네트워크 제어 신호 최적화를 이용한 WiMAX QC-LDPC 복호기용 저면적/고속 Multi-Size Circular Shifter

  • Kang, Hyeong-Ju (School of Computer Science and Engineering, Korea Univ. of Tech. and Edu.)
  • Received : 2015.09.01
  • Accepted : 2015.10.05
  • Published : 2015.10.31

Abstract

One of various low-density parity-check(LDPC) codes that has been adopted in many communication standards due to its error correction ability is a quasi-cyclic LDPC(QC-LDPC) code, which leads to comparable decoder complexity. One of the main blocks in the QC-LCDC code decoder is a multi-size circular shifter(MSCS) that can perform various size rotation. The MSCS can be implemented with many structures, one of which is based on Banes network. The Benes network structure can perform the normal MSCS operation efficiently, but it cannot use the properties coming from specifications like rotation sizes. This paper proposesd a scheme where the Benes network structure can use the rotation size property with the modification of the control signal generation. The proposed scheme is applied to the MSCS of IEEE 802.16e WiMAX QC-LDPC decoder to reduce the number of MUXes and the critical path delay.

탁월한 에러 정정 능력으로 인해 최근 통신 표준에서 많이 채택되고 있는 low-density parity-check(LDPC) 코드중, quasi-cyclic LDPC(QC-LDPC) 코드는 복호기 복잡도가 비교적 낮아서 많이 사용되고 있다. QC-LDPC 코드의 복호기 설계에 있어서 중요한 블록 중 하나가 여러 가지 크기의 rotation을 수행할 수 있는 multi-size circular shifter(MSCS)이다. MSCS의 여러 구현 방법 중 많이 사용되는 Benes 네트워크는 일반적인 MSCS 동작에는 효율적이나 rotation 크기 등의 특징을 이용할 수 없는 단점이 있다. 이 논문에서는 Benes 네트워크의 제어 신호 생성을 수정하여서 rotation 크기 특징을 이용할 수 있는 방법을 제시한다. 제안된 제어 신호 생성법을 IEEE 802.16e WiMAX 표준의 QC-LDPC 코드 복호기에 적용하여, MUX의 개수를 줄이고 지연 시간을 단축하였다.

Keywords

Ⅰ. 서 론

Low-density parity-check(LDPC) 코드는 현대의 통신 표준에 가장 많이 채택되고 있는 에러 정정 코드 중하나이다. 70년대에 개발되었으나[1] 그 때 당시에는 복호기를 구현하기에 복잡도가 너무 높아서 주목받지 못하고 있었다. 그러나 반도체 집적도가 높아지면서 구현이 가능하게 되었고, 구조적으로 코드를 설계할 수 있는 기법들도 연구되었다.

LDPC 코드는 패리티 검사 행렬에서 대부분의 행렬요소들이 0인 코드를 말하며, 이 행렬에서 1을 어떻게 배치하느냐에 따라 에러 정정 능력과 부호기/복호기 복잡도가 달라진다. 에러 정정 능력 면에서 보았을 때는 1을 랜덤하게 배치하는 것이 좋으나 복호기의 복잡도가 크게 올라가는 문제가 있다. 반대로 1을 일정한 패턴으로 배치하면 복호기의 복잡도는 낮아질 수 있으나 에러정정 능력이 떨어지는 단점이 있다.

이러한 두 측면을 고려하여 패리티 검사 행렬이 어느 정도는 규칙적이면서도 에러 정정 능력은 random 코드에 비해 많이 떨어지지 않도록 개발된 것이 quasi-cyclic LDPC(QC-LDPC) 코드이다[2]. QC-LDPC 코드에서는 패리티 검사 행렬을 같은 크기의 정방형의 하위 행렬들로 나누고, 하위 행렬들을 0 행렬이거나 단위 행렬을 cyclic shift한 것으로 구성한 것이다. 이 때 cyclic shift하는 양을 랜덤하게 선택함으로써 랜덤 코드와 비슷한 성질을 가지게 하는 것이다.

이러한 QC-LDPC 코드를 복호하기 위해서는 데이터를 cyclic shift(즉 rotation)하는 회로가 필요하다. 기존에도 rotation 회로는 많이 연구되었으나, QC-LDPC 코드에서 요구하는 rotation 회로는 기존과는 조금 다른 특징을 가지고 있다. 기존의 rotation 회로는 rotation의 대상이 되는 데이터의 개수는 일정한 반면에, QC-LDPC코드에서는 하위 행렬의 크기에 따라 데이터의 개수가 바뀔 수도 있어야 한다. 예를 들어, IEEE 802.16e WiMAX에서 사용되는 QC-LDPC 코드를 복호하기 위해서는 rotation 회로가 다루는 데이터의 개수가 96, 92, 88, ..., 24로 바뀔 수 있어야 한다.

이와 같이 rotation의 대상이 되는 데이터의 개수가 바뀔 수 있는 rotation 회로를 multi-size circular shifter(MSCS)라고 부르며 이에 대해 연구가 이루어져 왔다. 대표적으로는 MUX 네트워크를 사용하거나[3], 여러개의 barrel rotator를 사용하거나[4,5], Benes 네트워크를 사용해서[6,7] 구현해 왔다. 이 중 Benes 네트워크는 적은 개수의 MUX 만으로도 데이터의 순서를 다양하게 바꿀 수 있는 구조여서 많이 사용되고 있다.

그러나 Benes 네트워크는 모든 종류의 순열을 수행할 수 있으므로 MSCS와 같이 특수한 몇 개의 동작만 필요한 경우에는 비효율적일 수 있다. 특히 통신 표준에서 규정하는 QC-LDPC 코드들은 하위 행렬의 크기가 일정한 규칙을 가질 수도 있으나, Benes 네트워크에서는 이러한 성질을 이용하기 어렵다.

이 논문에서는 이러한 단점을 극복하고자 Benes 네트워크의 제어 신호 생성법을 수정하고 이를 이용하여 IEEE 802.16e WiMAX의 QC-LDPC 코드 복호기에 대해 효율적인 MSCS를 구현한다.

이 논문은 다음과 같이 구성되어 있다. 2장에서는 MSCS의 기본 동작에 대해 살펴 본 뒤 기존의 구조들에 대해 설명한다. 3장에서 개선된 구조를 제안하고, 4장에서 기존 구조와 비교한 뒤, 5장에서 결론을 맺는다.

 

Ⅱ. Multi-size circular shifter와 Benes 네트워크

2.1. Multi-size circular shifter (MSCS)

QC-LDPC 코드의 복호기에서 요구되는 MSCS는 기본적으로 rotation 기능을 수행한다. 그러나 모든 입력데이터를 rotation하는 것이 아니라 크기 정보 z를 입력받아서 z개의 데이터만 rotation한다. 수식으로 표현하면 다음과 같다. N개의 입력 데이터를 (a[0], a[1], ..., a[N-1])로, rotation하는 양을 s로 표기할 때, 출력 데이터 (o[0], o[1], ..., o[z-1])는 다음과 같이 정의된다.

입력 데이터 중 z개의 데이터만 rotation되어 출력되므로, 출력 데이터 중 나머지 데이터 (o[z], o[z+1], ..., o[N-1])는 출력값이 무엇이 되어도 상관없다. 입력 데이터의 개수 N은 가능한 z 값들 중 최대인 것으로 하는 것이 일반적으로써, IEEE 802.16e WiMAX의 경우에는 N=96이다.

2.2. Benes network를 이용한 MSCS 구조

앞 절에서 설명한 MSCS를 구현하는 구조 중 하나로 Benes 네트워크를 이용하는 구조에 대해 많이 연구되어 왔다. Benes 네트워크는 입력 데이터의 순서를 임의로 바꿀 수 있는 회로 구조로써, 입력 데이터의 개수가 N개일 때, 그림 1과 같이 재귀적으로 정의될 수 있다[8]. 입력 데이터는 N/2개의 2x2 스위치를 거친 뒤, 크기가 N/2인 두 개의 하위 Benes 네트워크로 처리되고, 그 출력은 다시 N/2개의 2x2 스위치를 거쳐 최종 출력이 만들어진다. 여기서 2x2 스위치는 그림 2와 같이 두 개의 MUX로 이루어진 회로이며 제어신호에 따라 입력 데이터를 그대로(BAR 상태) 출력하거나 서로 바꾸어서(CROSS 상태) 출력한다.

그림 1.Benes 네트워크 Fig. 1 Benes network

그림 2.2x2 스위치 Fig. 2 2x2 switch

그림 1의 구조를 분석하면 입력 데이터의 개수가 N인 Benes 네트워크는, N이 2의 지수승일 때 N/2(2log2N-1)개의 2x2 스위치, 즉 N(2log2N-1)개의 MUX로 구현이 가능하다. 그림 3은 N=8인 Benes 네트워크로써 20개의 2x2 스위치로 구성되어 있다.

그림 3.N=8인 Benes 네트워크 Fig. 3 Benes network with N=8

Benes 네트워크는 이러한 구조를 이용하여 입력 데이터에 대해 모든 순열을 수행할 수 있도록 되어 있으나, 그에 맞춰 2x2 스위치의 제어 신호를 생성하는 것은 쉽지 않다. QC-LDPC 코드의 복호기에 요구되는 MSCS 동작을 수행하는 제어 신호 생성에 대해서는 논문 [6,7]에서 많이 연구되었으며 이를 정리하면 표 1과 같다. 표에서 첫 번째 열은 z와 s에 대한 경우들을 기술한 것이 두 번째와 세 번째 열은 그 각각의 경우들에 대해 입력단의 2x2 스위치와 출력단의 2x2 스위치에 대한 제어 신호를 기술한 것이다. 2x2 스위치에 0~N/2-1의 번호가 차례로 붙어있다고 가정했고 표에서는 그 번호를 j로 표기했다.

표 1.MSCS 동작을 위한 스위치 제어 신호 Table. 1 Switch control signal for MSCS function

그리고 그림 1에서와 같이 두 개의 하위 Benes 네트워크에 대해 z와 s를 새로 정의해 주어야 한다. 이 값들은 다음과 같이 정의하면 된다[7]. 새로운 z와 s를 z’과 s’으로 표기할 때 위쪽의 Benes 네트워크의 z’과 s’은 아래와 같으며

아래쪽의 Benes 네트워크에 대해서는 아래와 같다.

위 식(2)과 (3)에 대한 자세한 설명은 논문 [7]에 기술되어 있다.

지금까지 설명한 Benes 네트워크는 N이 2의 지수승인 것을 가정하고 기술하였으나 QC-LDPC 코드에 따라서는 그렇지 않은 경우도 있다. IEEE 802.16e WiMAX의 경우에는 N=96이므로 2의 지수승이 아니다. N=96인 경우에 그림 1의 구조를 재귀적으로 적용하면 결국에는 세 개의 데이터를 처리하는 Benes 네트워크가 필요하다. 이러한 경우를 처리하기 위해 3x3 스위치를 도입한 구조도 제안되었다[7]. 3x3 스위치는 세 개의 입력 데이터를 받아서 순서를 바꾸어 출력하는 회로로써 그림 4와 같이 세 개의 2x2 스위치로 구성할 수 있다. 이러한 3x3 스위치를 도입하면 N = 2p × 3인 경우에 그림 5와 같이 3x3 스위치가 가운데 배치되고 그 앞과 뒤에 2x2 스위치들이 각각 p단씩 배치된 Benes 네트워크를 구성할 수 있다.

그림 4.3x3 스위치[7] Fig. 4 3x3 switch[7]

그림 5.N=12인 Benes 네트워크[7] Fig. 5 Benes network with N=12[7]

이를 이용하여 MUX의 개수를 계산하면, 2x2 스위치들이 N/2개 씩 2p단 있으므로 2x2 스위치들에 사용되는 MUX의 총 개수는 2 × w × N/2 × 2p = 2wNp이다. 이 식에서 w는 입력 데이터의 폭이다. 3x3 스위치는 N/3개가 필요하므로 3x3 스위치들에 사용되는 MUX의 총 개수는 6 × w × N/3 = 2wN이다. 그러므로 MUX의 총 개수는 2wN + 2wNp = wN(2 + 2p)이다.

 

Ⅲ. 제안하는 구조

Benes 네트워크는 모든 종류의 permutation을 수행하기에는 효율적인 구조이나, MSCS와 같이 일부분의 permutation을 수행할 때는 비효율적일 수 있다. 특히 QC-LDPC 복호기에 사용되는 MSCS에서는 rotation할 데이터의 개수 등이 일정한 규칙을 가지고 있는 경우가 많은데, Benes 네트워크에서는 이러한 규칙을 이용한 최적화가 어렵다.

이러한 문제를 해결하기 위해 본 논문에서는 더 많은 개수의 출력단의 2x2 스위치들이 BAR 상태에 있도록 표 1에서 기술된 제어 신호 생성을 바꾼다. 그림 1에서 입력단에 있는 모든 스위치들에 대해 BAR는 CROSS로, CROSS는 BAR로 바꾸면, 원래는 위쪽의 하위 Benes 네트워크로 들어갈 데이터들은 아래쪽으로 가게 되고, 아래쪽의 Benes 네트워크로 들어갈 데이터들은 위쪽으로 가게 된다. 마찬가지로 출력단에 있는 모든 스위치들에 대해 BAR는 CROSS로, CROSS는 BAR로 바꾸면, 원래는 위쪽의 하위 Benes 네트워크에서 온 데이터가 출력될 곳으로는 아래쪽에서 온 데이터가 출력되고, 아래쪽의 Benes 네트워크에서 온 데이터가 출력될 곳으로는 위쪽에서 온 데이터가 출력된다. 즉 입력단과 출력단에 있는 모든 2x2 스위치에 대해 제어 신호를 반대로 바꾸어도 동작은 같다는 것이다. 물론, 이 경우에 위쪽과 아래쪽의 Benes 네트워크가 서로 바뀌는 셈이므로 z’과 s’의 생성도 서로 바꿔줘야 한다.

이러한 성질을 이용해서 더 많은 개수의 출력단 스위치가 BAR 상태가 되도록 제어신호를 바꾸면 표 2와 같다. 표에서 제어 신호를 바꾼 경우를 음영으로 표시하였다. 이 경우들에 대해서는 z’과 s’을 계산하는 식 (1)과 (2)의 계산을 서로 바꿔 줘야 한다.

표 2.개선된 스위치 제어 신호 1 Table. 2 Improved switch control signal 1

이제 표 2에서 세 번째 열에 있는 z가 짝수, s가 홀수인 경우에 대해 더 분석을 하면 출력단의 모든 스위치를 BAR 상태로 해도 됨을 알 수 있다. 이 경우에 있어 의미 있는 출력(즉, o[0], o[1], ..., o[z-1])는 첫 z/2개의 2x2 스위치에서 나온다.

즉 나머지 2x2 스위치는 실제 동작과는 상관없는 데이터를 출력하며 따라서 이들은 어떻게 제어되어도 동작과 상관없다. 표 2의 세 번째 행에서 출력단 스위치중 CROSS 상태인 스위치들이 바로 이 상관없는 스위치들이며 따라서 이들을 모두 BAR 상태로 바꾸어도 MSCS 기능에는 문제없다.

같은 방식을 표 2의 네 번째 행에도 적용하면, 의미있는 출력 데이터는 첫 (z+1)/2개의 2x2 스위치에서 나오고, 나머지 2x2 스위치들의 동작은 상관없다. 이 상관없는 스위치들을 모두 BAR 상태로 바꾸면 j=(z+1)/2인 2x2 스위치만 CROSS 상태이면 된다. 지금까지의 결과를 정리하면 표 3과 같다.

표 3.개선된 스위치 제어 신호 2 Table. 3 Improved switch control signal 2

표 3을 관찰하면 출력단 스위치는 대부분 BAR 상태이고 z가 홀수일 때만 CROSS로 제어되어야 하는 경우가 생긴다. 즉 만일 z가 항상 짝수로 주어진다면 출력단 스위치는 항상 BAR상태이므로 스위치들을 제거할 수 있다.

이러한 특징을 IEEE 802.16e WiMAX의 QC-LDPC 코드에 대한 복호기가 사용할 수 있다. 이 QC-LDPC 코드에 있어서 z는 96, 92, 88, ..., 24로써 항상 4의 배수이다. 즉 그림 1과 같은 구조에서 최상위 Benes 네트워크로 입력되는 z는 항상 4의 배수이고 따라서 출력단스위치는 항상 BAR 상태이다. 따라서 출력단 스위치를 제거할 수 있다.

그리고 최상위 Benes 네트워크에서 사용된 하위 Benes 네트워크에 대해서도 z는 항상 짝수이다. 최상위 Benes 네트워크의 z가 항상 4의 배수이므로 식(1)과 (2)에 따르면 그 하위 Benes 네트워크로 입력되는 z’=z/2은 항상 2의 배수가 된다. 그러므로 최상위 Benes 네트워크의 하위 Benes 네트워크에서도 출력단 스위치를 모두 제거할 수 있다.

Benes 네트워크를 그림 3과 같이 풀어 헤쳐서 보면 가장 뒤에 있는 두 열의 2x2 스위치들을 제거하는 것이므로 2wN개의 MUX를 제거하게 된다. N = 2p × 3인 경우에 필요한 MUX의 개수가 원래는 wN(2 + 2p)이었으므로, p=5인 IEEE 802.16e WiMAX의 경우에는 2wN/wN(2 + 2p) ≃ 16.7% 만큼 MUX 개수가 줄어들게 된다. 더불어 두 열의 2x2 스위치가 줄어들므로 그만큼 속도도 증가하게 된다.

 

Ⅳ. 실험 결과

기존의 구조와 새로 제안한 구조를 RTL 수준에서 기술한 뒤, 0.18 ㎛ 공정에서 Synopsys사의 DesignCompiler로 합성하였다. RTL 수준의 설계는 NC-Verilog로 시뮬레이션하여 검증하였다.

IEEE 802.16e WiMAX의 QC-LDPC 코드 복호기에서 사용되는 MSCS에 적용하여 비교하였고, 입력 데이터의 폭은 8bit를 가정하였다.

합성 결과는 표 4에 정리하였다. 비교 항목은 면적(㎛2과 2-input NAND 기준 게이트 카운트)과 지연 시간으로써 DesignCompiler에서 산출한 값이다. 기존의 구조는 논문 [7]에서 제안된 구조이다.

표 4.기존 Benes 네트워크와 제안하는 방식의 비교 Table. 4 Comparison between the conventional method and the proposed method for the fig. 3 structure

표에 따르면 면적이 약 13.5% 감소하였음을 알 수 있다. 이것은 제어 신호의 최적화를 통해 두 단의 2x2 스위치들을 제거할 수 있었기 때문이다. 제어 신호 생성이 더 복잡해져서 이론값(16.7%)보다는 덜 감소하였다. 그리고 이 스위치 제거를 통해 지연 시간도 줄어들었음을 알 수 있다. 표 1의 마지막 행에 따르면 지연 시간이 약 16.4% 정도 줄어들었다.

 

Ⅴ. 결 론

이 논문에서는 QC-LDPC 코드의 복호기에서 사용되는 Benes 네트워크 기반의 MSCS 회로가 스위치 제어신호 최적화를 통해 면적이 작으면서도 고속으로 동작할 수 있도록 하였다. Benes 네트워크의 특성을 이용하여 출력단의 스위치는 되도록 BAR 상태가 되도록 하였으며, 이렇게 하면 특수한 조건을 만족할 때 스위치의 일부가 항상 BAR 상태가 되도록 할 수 있다. 이를 이용하여 스위치의 일부를 제거함으로써 저면적과 고속을 달성하였다.

본 논문에서는 IEEE 802.16e WiMAX 표준에만 적용하였으나, 다른 표준의 QC-LDPC 코드 복호기에도 이용될 수 있을 것이다. 앞으로 LTE나 5G에서 사용되는 LDPC 코드에 적용할 예정이다.

References

  1. R. G. Gallager, Low-Density Parity-Check Codes, Cambridge, MA: M.I.T. Press, 1963.
  2. R. M. Tanner, D. Sridhara, A. Sridharan, T. E. Fuja, and D. J. Costello, Jr., “LDPC block and convolutional codes based on circulant matrics,” IEEE Transactions on Information Theory, vol. 50, no. 12, pp. 2966-2984, Dec. 2004. https://doi.org/10.1109/TIT.2004.838370
  3. M. Rovini, G. Gentile, and L. Fanucci, “Multi-size circular shifting networks for decoders of structured LDPC codes,” Electronics Letters, vol. 43, no. 17, pp. 938-940, Aug. 2007. https://doi.org/10.1049/el:20071157
  4. X. Chen, S. Lin, and V. Akella, “QSN—A simple circularshift network for reconfigurable quasi-cyclic LDPC decoders,” IEEE Transactions on Circuits and Systems—II:Express Briefs, vol. 57, no. 10, pp. 782-786, Oct. 2010. https://doi.org/10.1109/TCSII.2010.2067811
  5. B. Xiang, D. Bao, S. Huang, and X. Zeng, “An 847—955 Mb/s 342—397 mW dual-path fully-overlapped QC-LDPC decoder for WiMAX system in 0.13 μm CMOS,” IEEE Journal of Solid-State Circuits, vol. 46, no. 6, pp. 1416-1432, Jun. 2011. https://doi.org/10.1109/JSSC.2011.2125030
  6. D. Oh and K. K. Parhi, "Area efficient controller design of barrel shifters for reconfigurable LDPC decoders," in Proceedings of IEEE International Symposium on Circuits and Systems, pp. 240-243, 2008.
  7. D. Oh and K. K. Parhi, “Low-complexity switch network for reconfigurable LDPC decoders,” IEEE Transactions on Very Large Scale Integration(VLSI) Systems , vol. 18, no. 1, pp. 85-94, Jan. 2010. https://doi.org/10.1109/TVLSI.2008.2007736
  8. V. E. Benes, “Optimal rearrangeable multistage connecting networks,” Bell System Technical Journal , vol. 43, no. 4, pp. 16410-1656, Jul. 1964.