1 |
1
신드롬 다항식(S(x))을 이용하여 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 구하기 위한 유클리드 알고리즘 연산 회로에 있어서,다항식 Ri(x), Qi(x), Ui(x) 및 Vi(x)(여기서, 0≤i≤2t, t는 오류정정가능한 블록수임)의 계수를 각각 저장하기 위한 4개의 레지스터로서, R0(x)= x2t, Q0(x) = S(x), U0(x) =0 및 V0(x) = 1로 각각 초기화되는 4개의 레지스터;상기 다항식 Ri(x)의 차수(R_degi) 및 다항식 Qi(x)의 차수(Q_degi)를 각각 저장하기 위한 2개의 메모리 유니트로서, R_deg0= 2*t 및 Q_deg0= 2*t-1로 각각 초기화되는 메모리 유니트;제 1,2 제어 신호에 따라 Ri+1(x), Qi+1(x), Ui+1(x) 및 Vi+1(x)의 계수 및 상기 Ri+1(x) 및 Qi+1(x)의 차수(R_degi+1 및 Q_degi+1)를 각각 계산하고 그 결과를 대응하는 상기 레지스터 및 메모리 유니트에 각각 저장하는 동작을 2*t번 반복 수행하기 위한 하나의 유클리드 연산 셀; 및상기 2개의 메모리 유니트에 저장된 차수들(R_degi, Q_degi)과 t값 사이의 비교 연산 및 상기 차수들간의 비교 연산을 수행하여 중지 신호에 해당하는 상기 제 1 제어 신호와 상기 다항식 Ri(x), Qi(x)의 σi에 해당하는 상기 제 2 제어 신호를 생성하고, 상기 유클리드 연산 셀의 동작의 2*t번 반복 수행된 후에 상기 다항식 R(x)를 오류평가 다항식(ω(x))으로 출력하며, 상기 다항식 U(x)를 오류위치 다항식(σ(x))으로 출력하기 위한 제어부를 포함하며,상기 유클리드 연산 셀은,상기 각 레지스터에 저장된 값을 서로 교환하는 레지스터 교환부, 상기 다항식의 차수를 올려주는 시프트 연산부, 유한체내에서의 곱셈을 수행하는 유한체 곱셈부, 유한체내에서의 덧셈을 수행하는 유한체 덧셈부, 차수값을 1만큼 감소시키는 뺄셈 연산부를 포함하며,상기 제 2 제어 신호값이 1인 경우에 상기 레지스터 교환부를 통해 상기 레지스터에 저장된 Ri(x)와 Qi(x)의 교환 및 Ui(x)와 Vi(x)의 교환과, 상기 메모리 유니트에 저장된 R_degi와 Q_degi 의 교환을 수행하고,상기 제 1 제어 신호값이 0이고 상기 Qi(x)의 최고차항 계수를 나타내는 bi이 0이 아닌 경우에 상기 유한체 곱셈부, 유한체 덧셈부 및 시프트 연산부를 통해 상기 Ri(x)의 최고차항 계수를 나타내는 ai, bi, Ri(x), Qi(x), Ui(x), Vi(x)에 대하여 유한체 곱셈, 유한체 덧셈 및 시프트 연산을 수행하여 Ri+1(x)와 Ui+1(x)를 계산하고, 상기 뺄셈 연산부를 통해 R_degi+1 = R_degi - 1로 설정하며,상기 제 1 제어 신호값이 0이고 상기 Qi(x)의 최고차항 계수를 나타내는 bi이 0인 경우에 상기 시프트 연산부를 통해 상기 Qi(x) 및 Vi(x)에 대한 시프트 연산을 수행하여 Qi+1(x)와 Vi+1(x)를 계산하고, 상기 뺄셈 연산부를 통해 Q_degi+1 = Q_degi - 1로 설정하는 것을 특징으로 하는 유클리드 알고리즘 연산 회로
|