KR940007928B1 - 변형된 유클리드 알고리즘 연산 시스템 - Google Patents

변형된 유클리드 알고리즘 연산 시스템 Download PDF

Info

Publication number
KR940007928B1
KR940007928B1 KR1019920009564A KR920009564A KR940007928B1 KR 940007928 B1 KR940007928 B1 KR 940007928B1 KR 1019920009564 A KR1019920009564 A KR 1019920009564A KR 920009564 A KR920009564 A KR 920009564A KR 940007928 B1 KR940007928 B1 KR 940007928B1
Authority
KR
South Korea
Prior art keywords
output
shift
value
unit
input
Prior art date
Application number
KR1019920009564A
Other languages
English (en)
Other versions
KR940000963A (ko
Inventor
이동화
Original Assignee
주식회사 금성사
이헌조
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 금성사, 이헌조 filed Critical 주식회사 금성사
Priority to KR1019920009564A priority Critical patent/KR940007928B1/ko
Publication of KR940000963A publication Critical patent/KR940000963A/ko
Application granted granted Critical
Publication of KR940007928B1 publication Critical patent/KR940007928B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

내용 없음.

Description

변형된 유클리드 알고리즘 연산 시스템
제 1 도는 에러크기 다항식의 일반적인 연산 블록도.
제 2 도는 에러위치 다항식의 일반적인 연산 블록도.
제 3 도는 본 발명의 에러 크기 다항식 연산 블록도.
제 4 도는 본 발명이 에러 위치 다항식 연산 블록도.
제 5 도는 11-1출력 블록도.
* 도면의 주요부분에 대한 부호의 설명
100A, 100B, 200A, 200B : 시프트부 100C, 200C : 연산부
100 : 앤드게이트
101, 108, 112, 119 : R레지스터
102, 109, 113, 120 : S레지스터 104, 105, 116 : 승산기
105, 117 : 가산기
107, 111, 118, 103, 110, 114, 121 : 멀티플렉서
201, 204, 208, 211, 215, 218 : 멀티플렉서
본 발명은 변형된 유클리드 알고리즘을 구현하는 회로에 관한 것으로, 특히 리드 솔로몬 부호(RS)를 복호하는 과정에서 필요한 에러 위치 다항식과 에러 크기 다항식을 구하기 위해 사용되는 여러 알고리즘중 변형된 유클리드 알고리즘을 구현하는데 적당하도록한 변형된 유클리드 알고리즘 연산 시스템에 관한 것이다.
리드 솔로몬 부호의 복호과정 중에서 신드롬으로부터 에러위치 다항식과 에러 크기 다항식을 구하는 것이 핵심적인 것이라 할 수 있는데, 이를 위한 일반적인 것으로, Berlekamp-Massey 알고리즘과 유클리드(Euclid) 알고리즘이 제안되었으며, 이중 유클리드 알고리즘은 다음의 두 식을 이용해서 에러 위치 다항식σ(X)와 에러 크기 다항식 W(X)를 구하게 된다.
Wi(X)=Wi-2(X)ModWi-1(X)
σ(X)=Gi(X)σi-1(X)+σi-2(X)
여기서, Gi(X)는 Wi-2(X)/Wi-1(X)의 몫에 해당하는 다항식이며, 초기 값은 W-1(X)=X2t, σi-1(X)=0, W0(X)=S(X), σ0(X)=1 이고, Wi(X)의 최고차항의 차수가 에러 정정능력 t보다 작을때까지 이 알고리즘은 반복 수행된다.
일반적으로, Wi-2(X)와 Wg…(X) 차에 의거하여 두가지 모드를 이용해서 에러 크기 다항식 W(X)와, 에러 위치 다항식 σ(X)를 구하게 되는데, 제 1 도는 에러 크기 다항식을 구하는 일반적인 블록도이고, 제 2 도는 에러 위치 다항식을 구하는 일반적인 블록도로서 이에 도시한 바와 같이 두행의 시프트레지스터(1, 2), (6, 7), (11, 12), (16, 17), (34, 35), (39, 40), (44, 45) 및 멀티플렉서(3, 8, 13, 18), (31, 36, 41)로 구성된 것으로, 이의 작용을 설명하면 다음과 같다.
제 1 도의 에러 크기 다항식 회로에 있어서는 2t 멀티플렉서(18)의 한 입력을 롬(19)을 통해 역원소를 구해 G(X)로 공급하게 되고, 이 G(X)는 제 2 도의 에러 위치 다항식에서도 이용되는데, 제 1 도에서는 2t×2개의 레지스터가 사용되고, 제 2 도에서는 t+1개의 레지스터가 사용된다.
회로의 동작은 기본적으로 두가지 방식으로 구현되는데, 이는 각 멀티플렉서의 (3, 8, 13, 18), (31, 36, 41) 입력 ①, ②를 각각 ①', ②'로 출력하는 제 1 방식과, 입력 ①을 ②'로, 입력 ②를 ①'로 출력하는 제 2 방식을 일컫는다.
그러나 제 1 도의 2t멀티플렉서(18)는 제 1 방식과 제 2 방식이 반대로 수행된다. 처음 R레지스터(1, 6, 11, 16)에는 모드 "0"으로, S2t-1레지스터(17)는 "1"로, 나머지 S레지스터(2, 7, 12)는 "0"으로 초기화 된다. 그다음 제 2 방식으로 신드롬 2t 바이트의 데이타를 R레지스터(1, 6, 11, 16)들에 모두 로드시킨 다음 만약, 레지스터(1, 6, 11, 16)의 출력이 "0"이면 그 R레지스터(1, 6, 11, 16)의 출력이 "0"이 아닐때까지 상기 제 2 방식으로 시프트를 계속하게 되고, 이때, 시프트한 횟수를 세어서 다른 레지스터에 저장해 둔다.
이와 같은 과정에 의해 상기 R레지스터(1, 6, 11, 16)의 출력이 "0" 이 아니면, 실제 연산이 진행되는데, 실제 연산은 한번의 제 1 방식과 몇번의 제 2 방식에 의해 수행되며, 상기 R레지스터(1, 6, 11, 16)의 출력이 "0"이 아닐때까지 수행된 제 2 방식의 횟수를 예비과정이라 하고, 그 예비과정이 ⅰ번이었으면 한번의 실제연산은 한번의 제 1 방식과 ⅰ+1번의 제 2 방식으로 수행된다.
일단, 한번의 실제 연산이 이루어진 상태에서 상기 Rt 2-1레지스터(17)에서부터 R0레지스터(1)쪽으로 t개미만의 레지스터들의 출력이 "0"이 아니면, 다시 상기와 같은 실제 연산과정이 반복된다.
최종출력 W(X)는 제 2 방식으로 최고차항부터 차례로 출력되며, 제 2 도에서 V레지스터(34, 39, 44)는 "1"로, 나머지 레지스터(35, 40, 45)들은 모두 "0"으로 초기화 된다. 제 1 방식 및 제 2 방식을 비롯하여 실제 연산의 구성은 제 1 도의 경우와 같으며, 제 1 도에서 구해진 G(X)를 이용하여 각 연산이 이루어진다.
실제 연산이 더 필요한지 아니면 에러 다항식 σ(X)가 구해졌는지의 판단은 제 1 도에서 행하여진 판단에 의해 이루어진다. 제 1 도의 에러 크기 다항식 회로에서 더 이상의 실제 연산없이 최종 결과를 출력하라는 신호가 출력되면, 상기 제 1 방식을 이용하여 V레지스터(34, 39, 44)의 내용을 W레지스터(35, 40, 45)로 옮기고, 제 2 방식을 이용하여 σ(X)의 최저차항부터 차례로 출력한다.
그러나 이와 같은 종래의 시스템에 있어서는 갈로아 필드내의 역원소를 구하기 위해 갈로아 필드의 크기에 비례하는 용량의 롬을 필요로하게 되며, 실제 연산의 제 1 방식 수행시 래치된 값을 제 2 방식이 수행되는 동안 래치시켜 놓는 제어장치를 필요로 하고, 롬을 이용하여 구한 역원소와 R2t-1의 값을 곱해서 G(X)를 구하는 곱셈기를 필요로하여 결과적으로 시스템의 원가를 상승시키게 되는 결함이 있었다.
본 발명은 이와 같은 종래의 결함을 해결하기 위하여 변형된 유클리드 알고리즘을 이용하여 역원소를 구하기 위해 필요로했던 롬을 없앨 수 있게 창안한 것으로, 이를 첨부한 도면에 의해서 상세히 설명한다.
제 3 도는 본 발명의 에러크가 다항식의 연산 블록도로서 이에 도시한 바와 같이, 입력되는 신드롬 바이트[S(X)]나 연산된 다항식의 해당 차수를 선택하여 에러크기 다항식[W(X)]이 구해질때까지 순차적으로 시프트시키는 시프트부(100A)와, 상기 시프트부(100A)의 해당 출력이나 자신의 출력 데이타를 선택적으로 입력하여 이를 순차적으로 시프트시키는 시프트부(100B)와, 상기 시프트부(100A)의 출력 및 최종 최고차항의 계수(a1), (b1)을 공급받아 이를 승산 및 가산하여 구해진 결과치를 상기 시프트부(100A)의 다음단의 일측입력으로 제공하는 연산부(100C)로 구성하였다.
제 4 도는 본 발명의 에러위치 다항식의 연산 블록도로서 이에 도시한 바와 같이, W(X)와 Q(X)와 Q(X)의 차수값(1)에 따라 연산부(200C)의 입력이나 기설정된 값을 선택하여 이를 순차적으로 시프트시키는 시프트부(200A)와, 자신의 출력 데이타나 상기 시프트부(200A)의 해당 출력을 선택적으로 입력하여 이를 순차적으로 시프트시키는 시프트부(200B)와, 상기 시프트부(200A), (200B)의 출력 및 최고차항의 계수(ai), (bi)을 공급받아 이를 승산 및 가산하여 그 결과치를 상기 해당 시프트부(200A)의 일측 입력으로 공급하는 연산부(200C)로 구성한 것으로, 이와 같이 구성한 본 발명의 작용 및 효과를 첨부한 제 5 도를 참조하여 상세히 설명하면 다음과 같다.
먼저, 기존에 역원소를 구하기 위해 필요로했던 롬을 사용하지 않기 위해 SHAO에 의해 제안된 유클리드 알고리즘을 다음과 같이 변형하였다.
초기값 W0(X)=X2t, Q0(X)=S(X), σ0(X)=O, μ0(X)=1
회로의 구성은 제 3 도 및 제 4 도에 도시한 바와 같이, 각각 2행의 레지스터로 이루어지고, 소정 갯수의 스위치와 멀티플렉서도 사용되고 있다. 그러나, 상기의 알고리즘에서 알 수 있듯이 회로상에 역원소를 사용하기 위한 롬이 사용되지 않았고, 다만 곱셈기의 수가 기존에 비하여 2배로 증가되었다.
각각의 스위치와 멀티플렉서를 제어하기 위해서는 각 단계에서 W(X)와 Q(X)의 차수 차인 1값을 필요로 하는데, 이는 제 5 도와 같은 회로에서 구해져 제어신호를 발생시키는 제어부로 공급된다.
에러 크기 다항식 W(X)를 구하기 위하여 제 3 도의 회로가 사용되는데, 이 회로의 동작은 크게 데이타 시프트 동작과 연산동작으로 이루어진다.
처음 S레지스터(120)에는 1이 저장되고, R레지스터(101, 108, 112, 119)를 통해 신드롬 바이트[S(X)]들이 시프트되어 입력되는데, 이때, 멀티플렉서(107)의 출력은 ①이 되고, 스위치(SW1), (SW2)는 개방된 상태를 유지하며, R2t-1레지스터(119)의 출력이 "0"이 아닐때까지 시프트동작이 진행된 후, 연산이 시작되며, 이 연산이 제 1 식 또는 제 2 식을 수행하는 과정이다.
상기 R2t-1레지스터(119)의 출력이 "1"일때, 스위치(SW1), (SW2)가 단락된 상태에서 상기 멀티플렉서(107), (111), (118)의 출력은 ②가 되고, 멀티플렉서(103), (110), (114), (121)의 출력은 1값에 따라 ① 또는 ②가 출력되는데, 식에서 보는 바와 같이, 만약 1〈0이면, ①이 출력되고, 1≥0이면 ②가 출력되며, 이때, 스위치(SW3-SW6)는 고정단자(②)로 연결된다.
일단, 연산이 끝나면 상기 R2t-1레지스터(119)의 출력이 "0"인지 테스트하여 상기에서와 같이 "0"이 아닐때까지 시프트시키고, S2t-1레지스터(120)의 출력이 "0"인지 테스트하여 "0"인 경우, 스위치(SW3-SW6)를 고정단자(①)에 단락시킨 상태에서 스위치(SW2)를 개방시키고 S2t-1레지스터(120)의 출력이 "0"이 아닐때까지 시프트 시킨다. 이때, 한번의 시프트는 각 다항식의 차수가 1씩 줄어든다는 의미가 되므로 제 5 도의 회로에 반영되어 다음의 클럭에 적절한 1이 계산되도록 하여야 한다.
R2t-1레지스터(119)의 출력과 S2t-1레지스터(120)의 출력이 모두 "0"이 아니면 그 R2t-1레지스터(119)와 S2t-1레지스터(120)에 저장된 다항식의 차수가 t, 즉 사용된 리드 솔로몬(RS)부호의 에러 정정 능력보다 작은가를 테스트 한다.
만약, R레지스터(101, 108, 112, 119)와 S레지스터(102, 109, 113, 120)중 어느 레지스터의 다항식에 해당하는 다항식의 차수가 t보다 작으면 그 다항식이 바로 구하고자 하는 에러 크기 다항식에 해당되며, 이는 상기와 같은 시프트과정을 통해 출력된다.
만약, S레지스터(101, 108, 112, 119)와 R레지스터(102, 109, 113, 120)에 해당하는 다항식의 차수가 t 보다 크거나 같으면, 다시 처음과 같이 연산과 시프트 동작을 수행한다. 즉, W(X)를 구할때까지 시프트와 연산을 반복한다.
한편, 제 4 도에서 에러위치 다항식 σ(X)를 구하는 과정을 설명하면, 처음 Vo레지스터(202)에 "1"이 저장되고, 나머지 레지스터(203, 209, 210, 216, 217)들에는 모두 0이 저장된다.
스위치(SW11-SW13)가 고정단자(②)에 각기 단락되고, 이와 같은 상태에서 1〈0이면, 멀티플렉서(204), (211), (218)는 입력①을 공급받고, 1≥0이면, 입력②를 공급받으며, 일단 연산이 끝나면 시프트 동작이 진행되는데, 이때, 1〉0이면 멀티플렉서(201, 208, 215)가 입력①을 공급받아 그 입력①이 1힛수만큼 시프트 된다.
만약, 1〈0이면, 스위치(SW11), (SW12), (SW13)가 각기 고정 단자(①)에 단락되어|1| 횟수만큼 시프트동작이 이루어지고, 그 다음에 제 3 도의 에러크기 다항식을 구하는 회로로부터 입력(ai), (bi)을 공급받아 연산이 이루어진다. 즉, W(X)를 구했을때 제어부로 그 신호가 넘어가서 제 4 도의 회로 동작을 멈추게 하는 제어신호가 발생되며, 이때, V레지스터(202, 209, 216)와 W레지스터(203, 210, 217)중 어느 레지스터의 값들이 σ(X)의 계수에 해당하는가도 역시 제 3 도의 회로로부터 주어진다.
만약, 제 3 도에서 R2t-1레지스터(119)의 내용이 W(X)로 출력된다면 Vt레지스터(216)에 σ(X)가 출력되어야 하고, S2t-1레지스터(120)의 내용이 W(X)로 출력된다면, Wt레지스터(217)에 σ(X)가 출력된다.
제 4 도에서 출력되는 동작은 해당하는 레지스터의 시프트 동작때와 같으며, 제 5 도는 1을 구하기 위한 회로로서, W(X), Q(X) 다항식의 각 단계에서의 차수를 저장하기 위한 두개의 레지스터(21), (22)로 이루어져 있으며, 이 레지스터들(21), (22)은 시프트 동작때 각각 1씩 감소하게 되고, 연산이 이루어질때 그 전의 1값이 0보다 작으면 스위치(SW21), (SW22)를 닫는다.
이상에서 상세히 설명한 바와 같이 본 발명은 변형된 유클리드 알고리즘을 이용하여 역원소를 구하기 위한 홈을 사용하지 않아도 되게 함으로써 집적도를 향상시키고, 원가를 절감할 수 있는 효과가 있다.

Claims (3)

  1. 입력되는 신드롬 바이트[S(X)]나 연산된 다항식의 해당 차수를 선택하여 에러크기 다항식[W(X)]이 구해질때까지 순차적으로 시프트시키는 시프트부(100A)와, 상기 시프트부(100A)의 해당 출력이나 자신의 출력 데이타를 선택적으로 입력하여 이를 순차적으로 시프트시키는 시프트부(100B)와, 상기 시프트부(100A)의 출력 및 최종 최고차항의 계수(a1), (b1)을 공급받아 이를 승산 및 가산하여 구해진 결과치를 상기 시프트부(100A)의 다음 단의 일측입력으로 제공하는 연산부(100C)와, W(X)와, Q(X)의 차수값(1)에 따라 연산부(200C)의 입력이나 기 설정된 값을 선택하여 이를 순차적으로 시프트시키는 시프트부(200A)와, 자신의 출력 데이타나 상기 시프트부(200A)의 해당 출력을 선택적으로 입력하여 이를 순차적으로 시프트시키는 시프트부(200B)와, 상기 시프트부(200A), (200B)의 출력 및 최고차항의 계수(a1), (b1)을 공급받아 이를 승산 및 가산하여 그 결과치를 상기 해당 시프트부(200A)의 일측 입력으로 공급하는 연산부(200C)로 구성한 것을 특징으로 하는 변형된 유클리드 알고리즘 연산 시스템.
  2. 제 1 항에 있어서, 각 단계에서의 차수를 저장하여 시프트 동작시마다 저장된 값을 1씩 감소시키고, 연산이 이루어질때, 그전의 1값에 따라 저장된 값을 감소시킨 값에 따라 시프트부(200A, 200B)의 입력선택을 제어하게 구성한 것을 특징으로 하는 변형된 유클리드 알고리즘 연산 시스템.
  3. 제 1 항에 있어서, 연산부는 상측 첫째단 레지스터의 출력값과 최고차항의 계수(bi)를 곱하고, 하측 첫째단 레지스터의 출력값과 최고차항의 계수(ai)를 곱한 후, 그 곱해진 두 값을 서로 더해 그 값에따라 상측 멀티플렉서의 스위칭을 제어하게 구성한 것을 특징으로 하는 변형된 유클리드 알고리즘 연산 시스템.
KR1019920009564A 1992-06-02 1992-06-02 변형된 유클리드 알고리즘 연산 시스템 KR940007928B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920009564A KR940007928B1 (ko) 1992-06-02 1992-06-02 변형된 유클리드 알고리즘 연산 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920009564A KR940007928B1 (ko) 1992-06-02 1992-06-02 변형된 유클리드 알고리즘 연산 시스템

Publications (2)

Publication Number Publication Date
KR940000963A KR940000963A (ko) 1994-01-10
KR940007928B1 true KR940007928B1 (ko) 1994-08-29

Family

ID=19334088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920009564A KR940007928B1 (ko) 1992-06-02 1992-06-02 변형된 유클리드 알고리즘 연산 시스템

Country Status (1)

Country Link
KR (1) KR940007928B1 (ko)

Also Published As

Publication number Publication date
KR940000963A (ko) 1994-01-10

Similar Documents

Publication Publication Date Title
US6049815A (en) Method and apparatus for finite field multiplication
KR950015182B1 (ko) 갈로아 필드 곱셈회로
US5442578A (en) Calculating circuit for error correction
EP0431629A2 (en) Mutual division circuit
JPH07507411A (ja) 2の累乗である係数を用いるディジタルフィルタ
US4697248A (en) Arithmetic circuit for obtaining the vector product of two vectors
KR100302093B1 (ko) 교차형디지탈유한임펄스응답필터에서이진입력신호를탭계수와승산시키는방법및회로배열과교차형디지탈필터의설계방법
JPH0445859B2 (ko)
KR100322739B1 (ko) 유한체연산방법및그장치
KR940007928B1 (ko) 변형된 유클리드 알고리즘 연산 시스템
JP2803601B2 (ja) 有限体元の反転回路
EP0788629B1 (en) A galois field polynomial multiply/divide circuit
US4809275A (en) Parity signal generating circuit
US4737925A (en) Method and apparatus for minimizing a memory table for use with nonlinear monotonic arithmetic functions
KR940011659B1 (ko) 유클리드 알고리즘 연산장치
US5448510A (en) Method and apparatus for producing the reciprocal of an arbitrary element in a finite field
JP2963018B2 (ja) リード・ソロモン誤り訂正符号復号化回路
JPS63107319A (ja) 拡張ガロア体上の多項式除算回路
JPH0326114A (ja) 乗算剰余演算器
JPH0335353A (ja) 離散的コサイン変換装置
US6023782A (en) RAM based key equation solver apparatus
JPS5880768A (ja) ガロア体における除算装置
JPS6248812A (ja) 逆元計算方式
KR940007570B1 (ko) 디지탈 시스템의 다항식 곱셈회로
JPH0764810A (ja) ガロア体演算器

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20020726

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee