KR100302847B1 - 유한필드에서의긴다항식제산장치 - Google Patents

유한필드에서의긴다항식제산장치 Download PDF

Info

Publication number
KR100302847B1
KR100302847B1 KR1019980036306A KR19980036306A KR100302847B1 KR 100302847 B1 KR100302847 B1 KR 100302847B1 KR 1019980036306 A KR1019980036306 A KR 1019980036306A KR 19980036306 A KR19980036306 A KR 19980036306A KR 100302847 B1 KR100302847 B1 KR 100302847B1
Authority
KR
South Korea
Prior art keywords
symbol
partial
group
surplus
storage means
Prior art date
Application number
KR1019980036306A
Other languages
English (en)
Other versions
KR20000018636A (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 KR1019980036306A priority Critical patent/KR100302847B1/ko
Priority to US09/383,792 priority patent/US6523053B1/en
Publication of KR20000018636A publication Critical patent/KR20000018636A/ko
Application granted granted Critical
Publication of KR100302847B1 publication Critical patent/KR100302847B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 유한 필드에서의 긴 다항식 나눗셈 알고리즘과 그에 따른 하드웨어 아키텍쳐에 관한 것으로 특히, 룩어헤드(Lookahead) 기법과 부분 분할(Partial-Division)을 바탕으로 그룹 단위의 병렬 프로세싱에 의해 유한 필드 심볼간의 승산이 전혀 필요 없게 되어 단위시간당 생성해내는 제산 결과(Throughput)가 기존 방식에 비하여 상대적으로 매우 많아지도록 하기 위한 유한 필드에서의 긴 다항식 제산 장치를 제공하여 향상된 속도가 수십배 정도의 이득을 가지므로 전체적인 파워 딜레이 프로덕트는 아주 낮아지게 되어 이를 활용하면 고속 또는 저전력 소모 또는 둘다 요구되어지는 상황에서도 사용되어질 수 있는 장점을 갖는다.

Description

유한 필드에서의 긴 다항식 제산 장치{Division apparatus of long polynomial expression in finite field}
본 발명은 유한 필드에서의 긴 다항식 제산 장치에 관한 것으로, 특히 룩어헤드(Lookahead) 기법과 부분 분할(Partial-Division)을 바탕으로 그룹단위의 병렬 프로세싱에 의해 유한 필드 심볼간의 승산이 전혀 필요없게 되어 단위시간당 생성해내는 제산결고(Throughput0가 기존 방식에 비하여 상대적으로 매우 많아지도록 하기 위한 유한 필드에서의 긴 다항식 제산 장치에 관한 것이다.
일반적으로, 긴 다항식에 대한 제산 방법은 컴퓨터, 통신, 광자기 디스크, 제어등 전자공학의 여러 분야에서 사용되는 기술인 에러 정정 코드나 데이터의 암호화 기법 등 다양한 분야에서 절실히 요구되어지느 기술인데, 기존의 긴 다항식 제산 방식음 첨부한 도 1에 도시되어 있는 바와 같이, 선형 피드백 쉬프트 레지스터를 이용하여 구현되어 있으며, 이는 심볼 단위의 시리얼 프로세스를 하는 것이다.
그러나, 상기와 같은 종래의 방식은 나누어지느 다항식의 길이에 의존적이어서 빠른 속도를 얻을 수 없는 단점을 보여 왔다.
따라서, 현재는 응용분야가 고용량 압축 비디오를 대상으로 하기 대문에 고속의 그리고 휴대 정보 기기에서 사용되는 관계로 저전력 소모 하드웨어 아키텍쳐가 절실하게 요구되어지고 있지만 기존의 선형 피드백 쉬프트 레지스터를 사용하는 아키텍쳐를 가지고서는 아래에서 지적하는 바와 같은 여러 제약이 있어 왔다.
첫째로는 제산결과(Throughput)가 나누어지는 다항식의 길이에 의존적이어서 빠른 속도를 얻을 수 없는 단점을 가지고 있으며, 둘째로는 전역 피드백 시그날의 존재는 스위칭 스피드에 자한을 가져오고 또한 글로벌 클럭을 필요로 하게 된다는 점이다.
또한, 셋째로는 고속과 저전력 소비를 동시에 얻을 수 없는 단점과, 넷째로는 종래의 피드백 시그날은 전력(power) 소모를 줄이기 위한 전략중 하나인 병렬(Parallel) 아키텍쳐를 만드는데 제약을 갖고 있다는 점과, 마지막으로 전체 쉬프트 레지스터와 이에 입력을 주거나 또는 출력을 받아야 하는 시리얼 버퍼 레지스터까지 레지스터의 내용의 변화에 관게없이 항상 클럭이 가해져야 하는 단점을 갖는다.
따라서, 고속과 저전력 소비를 동시에 얻기 위해서는 앞에서 언급한 단점과 제약을 갖지 않는 새로운 다항식 나눗셈 알고리즘과 그에 따른 아키텍쳐가 절실히 요구되어지고 있으나 만족할 만한 기술이 제시되지 못하고 있었다.
상술한 바와 같은 종래의 다항식 제산방법에서 발생되던 문제점을 해소하기 위한 본 발명의 목적은 룩어헤드(Lookahead) 기법과 부분 분할(Partial-Division)을 바탕으로 그룹단위의 병렬 프로세싱에 의해 유한 필드 심볼간의 승산이 전혀 필요없게 되어 단위시간당 생성해내는 체산결과(Throughput)가 기존 방식에 비하여 상대적으로 매우 많아지도록 하기 위한 유한 필드에서의 긴 다항식 제산 장치를 제공하는 데 있다.
도 1은 기존의 선형 피드백 레지스터를 이용한 긴 다항식 제산 하드웨어의 구성 예시도
도 2는 LAPR에 근간한 긴 다항식 제산 알고리즘의 스키메틱 다이어그램
도 3a와 도 3b는 계수가 바이너리인 경우 부분잉여 룩어헤드 회로의 구성 에시도와 부분 몫 룩어헤드 회로의 구성 예시도
도 4는 계수가 논 바이너리인 경우 부분잉여 룩어헤드 회로의 구성 예시도
도 5는 LAPR에 근간한 파이프 라인드 제산 구조
도 6은 파이프 라인드 구조의 동작 다이어 그램
도 7은 LAPR에 근간한 시퀀셜 구조
도 8a 내지 도 8c는 파이프 라인드 또는 시퀀셜 구조상의 각 구성의 세부 구성예시도
도 9a와 도 9b는 제작된 칩의 사진
도 10은 제산 결과ㅘ 전력 소모의 실험결과
도 11은 3가지 벤치마크회로에 대한 정규화된 전력 지연 프로덕트
상기 목적을 달성하기 위한 본 발명의 특징은 룩어헤드(Lookahead) 기벅과 부분 분할(Partial-Division)을 바탕으로 그룹단위의 병렬 프로세싱에 의해 유한 필드 심볼간의 제산시 순차적으로 나누어지는 다항식의 그룹을 마지막 그룹에 이를 때까지 제거해가는 방식에 따른 유한 필드에서의 긴 다항식 제산 장치에 있어서, 바이너리 필드의 경우 한 개의 심볼이 1개의 비트로 구성되기 대문에 k+1개의 D 플립플롭을 사용하는 심볼 레지스터로 구성되며, 나누어지는 다항식의 첫 번째 그룹을 저장하는 저장수단과, 이전 그룹으로부터 생성되는 부분잉여와 현재 다항식의 그룹을 가산하는 k개의 심볼 가산기들과 상기 심볼 가산기들에서 출력되는 가산치들을 저장하느 k+1개의 심볼레지스터 및 현재 다항식의 그룹의 최하위 심볼을 저장하는 1개의 심볼레지스터로 이루어진 X개의 중간자 저장수단과, 이전 그룹으로부터 생성되는 부분잉여와 현재 다항식의 그룹을 가산하는 k개의 심볼 가산기들과 상기 심볼 가산기들에서 출력되는 가산치들을 저장하는 k개의 심볼레지스터로 이루어져 이전 그룹에서 생성된 부분잉여를 마지막 그룹과 가산함으로써 전체적인 잉여를 생성하는 잉여 생성수단과, 상기 저장수단과 X개의 중간자 저장수단에 일대일로 여결되어 있으며 상ㄱ 저장수단과 복수개의 중간자 저장수단에서 출력되는 데이터를 기준으로 부분 몫을 새성하는 X+1 개의 부분 몫 생성수단, 및 상기 저장수단과 X개의 중간자 저장수단에 일대일로 연결되어 있으며 상기 X+1 개의 부분 몫 생성수단에 입력되는 데이터를 입력받아 부분잉여를 생성한 후 배열상 자신의 위치와 동일 위치에 존재하는 상기 중간자 저장수단에 그 부분잉여치를 전달하고 최하위에 생성된 부분잉여는 잉여 생성수단에 전달하는 X+1 개의 부분잉여 생성수단을 포함하는 데 있다.
우선, 본 발명에서 적용하고자 하는 기술적 사상을 간략히 살펴보면, 본 발명은 "Lookahead of Partial-Remainder"라는 기술에 기초하여 그룹 단위의 병렬 프로세싱을 수행하고자 하는 것으로, "Lookahead" 기법과 "Partial-Division"을 바탕으로 하기 때문에 결과적으로 유한 필드 심볼간의 곱셈이 전혀 필요없게 되어 단위시간당 생성해 내는 제산 결과(Throughput)가 기존의 것에 비해 수십배 이상 빨라지기 때문에 사용되어지는 클럭의 주파수를 낮춤으로써 저전력 소비를 얻는 쪽으로 트레이드(Trade) 되어질 수 있으며, 클럭 주파수가 낮아짐에 따라 전원전압을 낮출 수 있게 되어 더 많은 전력소비 절감을 얻을 수 있다는 것이다.
이때, 파워소모를 줄일 수 있다는 것은 실리콘 에어리어가 파워 소모에 대해서 트레이드 되어질 수 있다는 것에 근간한다. 또한, 병렬(Parallel) 아키텍쳐, 파이프라이닝의 활용 등이 좋은 예이며, 트레이드 오프(Trade Off) 메커니즘을 제공할 수 있기 때문에 즉, 원하는 제산 결과를 유지하면서도 낮은 주파수의 클럭을 사용하고 이에 따른 저전압 동작이 가능하도록 하는 것이다.
그러나, 이러한 접근방식만으로는 주어진 성능 레벨에서의 최소 파워를 얻는 것은 가능한 반면에 고성능을 얻기에 제약이 따르므로 고성능과 저전력 소빌는 두가지 목표를 동시에 실현하는 데에는 제약이 있어 왔다.
따라서, 본 발명에서는 알고리즘 속도를 향상시키기 위해서 주어진 펑션(function)에 특별히 튜닝(tuning)되어진다는 가정아래에서는 저전력 소비와 고속을 동시에 얻을 수 있는 방법이 있음을 알게됨으로써, 아래에서 첨부한 도면을 참조하여 상세히 설명하고자 하는 새로운 긴 다항식 제산 장치를 제공하게 된 것이다.
즉, 기본적으로 위에서 말한 저전력 소비 전략들은 CMOS 디지털 시스템의 파워 소모가 사용되어지는 클릭 주파수 그리고 전체 커패시턴스와 전원전압의 제곱에 비례한다는 사실에 근간을 두고 있다. 즉 파워를 줄이기 위해서 알고리즘과 아키텍쳐 레벨 설계에서 고려해야 하는 것은 단위시간당 제산 결과를 가능한 한 큭 하여 늘어난 제산 결과만큼 사용 주파수를 낮추어 주는 것이다. 또한, 사용되어지는 클럭의 주파수가 낮아지게 되면 타이밍 제한이 완화되고 이것은 전원전압을 낮추어 줄 수 있는 메커니즘을 제공하게 되어 전원전압의 낮춤으로 인한 부가적인 파워절감 효과를 가져올 수 있게 된다.
이하, 첨부한 도면을 참조하여 본 바명에 따른 바람직한 실시예를 설명한다.
통상적으로, 유한 필드에서의 일반적인 다항식 나눗셈 프로세스는 선택된 몫과 나누는 다항식의 곱을 이용하여 이를 나누어지는 다항식의 원소들을 가장 상위계수부터 나머지 다항식의 디그리(Degree)가 나누는 다항식의 디그리 보다 작아질 때까지 순차적으로 하나씩 제거해 가는 과정이라고 할 수 있다.
반면에, 본 발명에서 제안하는 새로운 제산 알고리즘으로 "Lookahead" 기법을 사용하여 순차적으로 나누어지는 다항식의 그룹을 마지막 그룹에 이를 때까지 제거해가는 과정이라고 말할 수 있다. 즉, 기존의 나눗셈 알고리즘은 비트단위 또는 심볼단위의 시리얼 프로세싱을 하는 반면에 LAPR 나눗셈 알고리즘 등 그룹단위의 병렬 프로세싱을 한다.
상술한 본 발명에 따른 제산 알고리즘은 긴 불확정 계수를 갖는 디그리(Degree) n의 나누어지는 다항식 P(x)와 고정된 계수를 갖는 디그리 m의 나누는 다항식의 M(x)를 아래의 수학식 1과 같이 정의함으로부터 시작된다.
[수학식 1]
이때, 임의의 변수 q를 다음의 수학식 2와 같은 부등식을 만족하는 최대의 수라고 가정하면 나누어지는 다항식은 다음의 수학식 3과 같은 q+2개의 그룹으로 나눌 수 있다.
[수학식 2]
[수학식 3]
이때, 모든 그룹P j (x)(단. q≥j≥0)는 모두 동일 디그리를 가지며 이것은 다음의 수학식 4에서와 같이 표현 가능한 기본 다항식 S(x)와 동일한 형태로 표현 가능하다.
[수학식 4]
여기서, 상기 수학식 4와 같이 표시되어진 기본 다항식 S(x)는 나누어지는 다항식에 의존하는 것이 아니고 나누는 다항식 M(x)에만 의존한다.
상술한 바와 같은 수학적 배경에 기초한 본 발명에 따른 제산 알고리즘의 스키메틱 다이어그램이 첨부한 도 2에 도시되어 있는 것으로, Qq(x)와 Rq(x)는 각각 Pq(x)/M(x)의 결과이다.
또한, P′j(x)(단, q-1≥j≥0)는 Rj+1(x)을 1 심볼 왼쪽 시프트 한 것과 Pj(x)의 합과 같다.
여기서, 중요한 것은 유한 필드에서의 연산은 모듈라(Modular)연산이고 또한 폐특성(Closed Property)으로 인해 2개의 심볼을 또는 동일한 디그리를 갖는 다항식을 더했을 때 캐리 또는 오버플로우가 생기지 않기 때문에 덧셈 결과에 의해 생기는 다항식 P′j(x)는 오퍼랜드로 쓰인 Pj(x)와 동일한 수의 원소와 디그리를 갖게 된다.
마찬가지로, 다른 모든 Qj(x)와 Rj(x) for q-1≥j≥0들은 각기 p′j(x)/M(x)의 몫과 나머지가 된다. 그 각각들은 "Partial-Division"의 결과이므로 우리는 그 각각들을 부분 몫(Partial-quotient)와 부분잉여(Partial-remainder)로 정의하였다.
또한, Pq(x)/M(x)의 전체 몫은 중간 과정에서 생성되는 모든 부분 몫 Qj(x) (단, q≥j≥0)들의 가중 덧셈으로 표현되어지고 전체 나머지는 전 그룹에서 생성되는 부분잉여 Ro(x)와 마지막 그룹 P-1(x)의 합으로 얻어지게 된다.
여기서, 모든 Pj(x)(단, q≥j≥0)는 기본 다항식 S(x)와 동일한 디그리를 가지게 되므로 우리가 궁극적으로 관심이 있는 모든 Qj(x)와 Rj(x)는 S(x)/M(x)의 결과를 생성하는 동일한 회로를 이용하여 만들 수 있다.
이때, S(x)/M(x)를 생성해 내는 회로는 유한 필드에서의 선형성을 이용하면 간단하고 일괄적으로 구현할 수 있다. 즉, S(x)/M(x)는 S(x)의 각각의 원소를 M(x)로 나누었을 때의 선형 합과 같은 특성을 이용하는 것이다.
다음에 2가지의 간단한 예를 보이겠다.
우선, 나누는 다항식 M(x)가 x6+x4+x2+x+1인 경우에는 기본 다항식 S(x)의 디그리는 6이 되며 아래의 수학식 5에서와 같이 표현할 수 있다.
[수학식 5]
이때, 유한 필드에서의 선형성을 활용하면 "Lookahead" 회로를 구현하기 위한 모든 정보는 아래의 표 1에 보인 것과 같이 정리된다.
[표 1]
상기 표 1에 나타나 있는 나눗셈 테이블에서 각각의 열에 대해 중첩(Super-position)을 하게 되면 아래의 수학식 6과 같이 표현된다.
[수학식 6]
이때, 각각의 계수에 대해 로직 표현으로 바꾸게 되면 아래의 수학식 7과 같이 정리된다.
[수학식 7]
상기 수학식 7에서 각각의 sj는 기본 다항식 S(x)의 계수를 나타낸다.
결과적으로, 부분잉여(Partial-Remainder)의 각각의 계수를 생성하는데 필요한 입력 비트의 수는 13이 아니고 6에서 10정도임을 볼 수 있다.
더욱이 부분잉여를 생성하는데 필요한 EXOR 게이트의 수도 로직 표현이 갖는 리던던시(Redundancy) 때문에 훨씬 줄어들게 되는데, 게이트 간략화를 거친 LAPR(Lookahead of partial remainder) 회로는 첨부한 도면중 도 3a와 같이 보여진다.
마찬가지로 LAPQ(Lookahead of partial quotient)로직 표현을 위한 수학식관계식은 아래의 수학식 8과 같이 요약된다.
[수학식 8]
상기 수학식 8에서 각각의 qj는 아래의 수학식 9에 표현되는 바와 같이 부분몫(Partial-Quotient)Qs(x)의 계수가 된다.
[수학식 9]
그러므로, 6 비트의 부분잉여(Partial-Remainder)와 7비트의 부분 몫(Partial-Quotient)은 각각 7개의 즉 모든 경우의 수 인 27가능한 콤비네이션이 있지만 첨부한 도 3b에서와 같이 아주 간단한 회로로 이를 구현한 것을 알 수 있다.
또한, 상술한 예에서의 가정과 달리 나누는 다항식 M(x)가 최상위 차수 이외에 임의의 계수가 존재하여 x4+ 13x3+ 6x2+ 3x+ 10와 같다고 가정하면, 난-바이너리 유한 필드인 GF(2t)에서는 한 개의 심볼이 t개의 바이너리 비트 시퀀스로 되어 있고 선형성은 각각의 비트 원소(Element)들에 대해서도 성립함으로 각각의 원소에 대해서 위의 과정을 확장함으로써 유사한 테이블을 쉽게 얻을 수 있게 된다.
이와 같은 예의 경우는 나누는 다항식의 각각의 계수들이 아래의 수학식 10과 같은 원시다항식으로부터 생성되는 유한 필드 GF(24)인 경우로 따라서 한 개의 심볼은 4개의 비트 시퀀스로 구성되게 된다.
[수학식 10]
P() = 4++ 1
각각의 심볼 원소를 이루는 비트에 대해서도 선형성이 존재하기 때문에 "Lookahead" 회로를 구성하기 위해 필요한 모든 정보는 아래의 표 2에서와 같이 정리 되어진다.
[표 2]
이와 같은 예의 경우는 전순한 첫 번째 예에서와 동일한 방식으로 각각의 심볼원소에 대한 로직 표현을 구하고, 리던던시를 제거한 뒤 이를 하드웨어로 구현하면 첨부한 도면중 제 4도에 도시되어 있는 바와 같이 부분잉여(Partial-remainder)에 대한 "Lookahead" 회로를 얻을 수 있다.
즉, 4 심볼 즉 20비트의 부분잉여는 각각 20개이므로 모든 경우의 수는 220개이며, 이것 모두가 가능한 입력 콤비네이션으로부터 도 4에서와 같이 아주 간단하게 이를 구현한 것을 알 수 있다.
마지막으로 여기서 강조할 것은 LAPR 나눗셈 알고리즘에서는 나눗셈을 진행하기 위해서 부분 몫(Partial-Quotient)이 필요하지 않기 때문에 지수(Quotient)를 필요로 하지 않는 응용분야에서는 "Quotient Lookhead" 회로는 전혀 필요 없게 된다.
이하에서는 VLSI/하드웨어 아키텍쳐에 대하여 살펴보기로 하는데 통상 VLSI/하드웨어 아키텍쳐를 구현하기 위한 방식으로 파이프라인드 아키텍쳐와 시퀀셜 아키텍쳐를 제안할 수 있는데, 이르 구분하여 살펴보기로 한다.
우선, 파이프라인드 아키텍쳐는 LAPR 나눗셈 알고리즘이 갖는 규칙성과 피드포워드(Feed-forward) 성질을 이용하여 ㅎ드웨어로 구현하면 완전한 파이프라이닝이 가능하다. 그 결과 매 클럭 사이클 마다 나누어지는 다항식의 디그리에 상관없이 1개의 몫과 1개의 나머지가 생성될 수 있다.
첨부한 도 5는 이러한 파이프라인 아키텍쳐의 블록 다이어그램을 보인 것으로서, 여기서 "FIRST"라는 이름의 블록은 첫 번째 그룹 Pq(x)를 저장하기 위한 레지스터 Pj(x)(단, J=(q-1) down to 0)와 이전 그룹에서 생성된 부분잉여(Partial-Remainder)를 더하여 새로운 그룹 P´j(x)를 저장하는 곳이다. 이때, q개의 동일한 "INT" 블록은 중간 그룹(Intermediate group) 레지스터로서 P´j(x) 중간그룹을 나타낸다.
마지막 블록 "LAST"는 나머지가 저장되는 레지스터이다. 이때, P´0(x)로부터 생성되는 부분잉여(Partial-Remainder)와 마지막 그룹을 더하게 되면 전체 잉여(Remainder)가 생성되게 된다. 또한, q+1개의 "Lookaheadr'과 "Lookaheadq"는 각기 동일한 블록이며 M(x)에 의해 P´j(x)의 지수와 잉여를 생성해내는 것으로 부분 몫과 부분잉여를 그룹의 원소들만을 보고 생성해 내는 회로이다.
첨부한 도 6은 첨부한 도 5에 보인 파이프라인드 아키텍쳐의 동작 다이어그램을 보인 것이다.
나누어지는 다항식의 각각의 그룹은 순차적으로 그룹의 스테이지에 최상위 그룹부터 그룹 레지스터에 저장되게 된다. 다음 나누어지는 다항식도 각각의 그룹들도 그 전 나누어지는 다항식의 그룹의 처리가 끝나자마자 각각의 그룹 레지스터에 순차적으로 저장되게 된다. 결국 q+2개의 사이클이 지나면 모든 파이프라인이 가득차게 되고 이때부터는 모든 블록이 동시에 동작하게 되며, 매 사이클마다 1개의 지수와 잉여치가 생성되게 된다.
따라서, 이 파이프라인드 아키텍쳐의 잠복 지연(Latency delay)은 q+2 사이클이고 제산결과는 매 사이클 당 1 지수와 1 잉여이다.
또한, 시퀀셜 아키텍쳐는 첨부한 도 7에 도시되어 있는 바와 같이 효율적인 면적을 갖는 것을 알 수 있다. 중간자 저장수단으로서의 블록그룹 레지스터인 "INT"와 부분 몫을 생성하기 위한 "Lookaheadq"(부분 몫 생성수단이라고 함)와 부분잉여를 생성하기 위한 "Lookaheadr"(부분잉여 생성수단이라고 함)로 구성되어 있다. 이때, 상기 "Lookaheadr"과 "Lookaheadq"는 상술한 파이프라인드 아키텍쳐에서 사용된 블록들이 아무 수정없이 사용되어질 수 있다.
나누어지는 다항식의 각각의 그룹이 순차적으로 상위그룹부터 하위그룹으로 차레로 그룹 레지스터에 삽입되게 된다. 따라서, q+2사이클 후에는 1개의 지수와 잉여가 생성된다. 따라서, 단위블록을 연속적으로 사용하는 이 구조는 LAPR 나눗셈 알고리즘의 연속적 스텝을 구현하는 것이기 때문에 면적면에서 파이프라인 아키텍쳐보다 거의 1/(q+1) 만큼으로 줄어들게 된다. 결국 매 q+2 사이클마다 1개의 지수와 잉여가 생성되어 나오게 된다.
이것은 전술한 파이프라인드 아키텍쳐보다 느리기는 하지만 지금까지 보고된어떤 다항식 나눗셈 회로보다 빠른 것이다.
여기서 언급할 것은 만약 사용되어질 응용에서 지수가 필요하지 않은 경우는 부분 몫을 새성하기 위한 모든 회로들을 첨부한 도 5의 도 7에서 제거해 버리면 된다.
이하에서는 세부 블록의 자세한 설명을 한다.
상기 도면중 "FIRST"라는 블록은 저장수단으로서 첨부한 도 8a에 세부적으로 도시되어 있는데, k+1개의 심볼 레지스터는 나누어지는 다항식의 첫 번째 그룹을 저장하는데 쓰인다. 바이너리 필드의 경우는 한 개의 심볼이 1개의 비트로 구성되기 때문에 심볼 레지스터는 1개의 D 플립플롭으로 구현된다. 따라서, 논-바이너리 유한 필드의 경우는 t개의 D 플립플롭의 병렬 중폭이 된다. 여기서 t란 1개의 심볼을 이루는 비트의 개수를 의미한다.
또한, 상기 도면중 "INT"라는 블록은 중간자 저장수단으로서 첨부한 도 8b에 도시되어 있는 바와 같이 k+1개의 심볼레지스터와 k개의 심볼 가산기로 구성된다. 여기서는 이전그룹으로부터 생성되는 부분잉여와 다음 그룹을 합하여 새로운 그룹을 생성한다. 여기서 심볼 애더란 EXOR(Exclusive OR)를 이용한 유한 필드 가산기를 의미한다. 새로운 그룹을 생성하기 위해서는 이전 그룹에서 생성된 K 심볼의 부분잉여가 k+1심볼로 구성되는 다음 그룹의 상위 k 심볼에 더해지게 된다. 즉, 이것은 부분잉여의 1 레프트 심볼 시프트한 것을 다음 그룹에 더해 준 것과 같게 된다.
또한, 상기 도면중 "LAST"라는 블록은 부분잉여 생성수단으로서 첨부한 도8c에 도시되어 있는 데, k개의 심볼 레지스터와 k개의 심볼 가산기로 구성된다. 이전 그룹에서 생성된 부분잉여는 마지막 그룹과 더해져 전체적인 잉여를 생성하게 된다.
또한, 상기 도면중 "LOOK-AHEADR"과 "LOOK-AHEADQ"란 블록은 전술한 바와 같이 각각 부분 잉여와 부분 몫을 얻기 위한 부분잉여 생성수단과 부분 몫 생성수단을 일컫는다. 여기서는 역시 유한 필드 연산기의 특징인 선형성을 활용하게 되고 나누는 다항식과 기본 다항식으로부터 구해지게 된다.
상술한 바와 같은 하드웨어를 제공하여 긴 다항식을 제산하여본 실험결과를 살펴보면, BCH/RS 인코딩은 긴 다항식 디비젼을 통해 얻어지는 잉여(Remainder)를 활용한다. 즉 정보가 긴 나누어지는 다항식이 되고 생성 다항식이 결정된 나누는 다항식이 되어 나눗셈을 행하게 된다.
따라서 BCH/RS에서 사용은 첨부한 도 5와 도 7의 아키텍쳐가 아무런 수정없이 사용되어지게 된다. 더욱이, BCH/RS 인코더에서는 LAPQ 회로를 모두 제거해 버릴 수 있다.
BCH/RS 디코더의 신드롬 생성에서도 긴 다항식 나눗셈이 사용되어지게 된다. 즉, 전송받은 코드워드를 나누어지는 다항식으로 하고 생성 다항식(Generator Polynomial)의 팩터(Factor)인 미니말(Minimal) 다항식을 나누는 다항식으로 취하면 LAPQ 회로가 없는 LAPR 하드웨어를 가지고 정확한 신드롬(Syndrome) 값을 생성할 수 있게 된다.
제안하는 아키텍쳐의 기존의 선형 피드백 레지스터를 이용한 것에 비해 속도, 면적, 그리고 파워 소모 면에서의 우수성을 증명하기 위하여 3가지의 BCH/RS 응용에 적용하여, 컴파스 ASIC 개발 환경에서 0.8 um CMOS 기술을 이용하여 설계하였고, 이를 2개의 칩으로 제작하였다.
3가지 적용 코드는 : 1)(32,28) RS encoder, 2)(63,51) BCH encoder, 3) syndrome generator for (63,51) BCH decoder construction이고 이를 벤치마크 회로로 사용하여 제안된 나눗셈 회로와 기존의 LFSR 아키텍쳐에 대해서 상대적인 비교를 하였다. (32, 28) RS code in GF(28)와 the (63,51) BCH code는 각각 현재 CD(Compact Disk0의 에러 정정 코드인 CIRC(Cross Interleaved Reed-Solomon Code0코드 C1 코드와 AMPS(Advanced Mobile Phone Service) 셀룰라 폰에서 사용되고 있다. 제작된 칩의 사진을 도 9에 나타내었다.
실험결과는 아래의 표 3에서와 같이 요약하였다.
[표 3]
동일한 처리량을 얻고자 할 때의 사용되어지는 클럭 주파수를 2번째 칼럼에 보였다. 5V 전원에서의 파워 소모를 측정하여 네 번째 칼럼에 나타내었다. 이를 보면 LAPR 알고리즘에 근간한 파이프라인드 아키텍쳐의 경우는 기존의 LFSR 아키텍쳐보다 17,28,29배 만큼의 파워 에피션시를 보임을 알 수 있다. 이에 상응하는 시퀀셜 아키텍쳐의 파워 에피션시는 각각 10,13,18임을 알 수 있다.
아키텍쳐 볼티지 스캐일링에 의한 파워절감 효과를 확인하기 위하여 회로가 올바른 동작을 하는 최소 전원 전압에서의 파워 소모를 측정하였다. 전원 전압을 낮추게 되면 회로에서의 딜레이가 증가하기 때문에 사용되어지는 클럭 주파수가 높은 경우는 그 만큼 얻어지는 볼티지 스케일링 효과가 적어지게 된다. 따라서 낮은 동작 주파수에서 동작하는 회로가 더 많은 파워절감 효과를 얻게 된다. 5번째 칼럼에 아키텍쳐 볼티지 스케일링까지 고려한 파워 소모를 나타내었다. 즉 이것은 동일 처리량을 얻을 때의 최소 전원전압가 그때의 파워 소모를 측정한 것이다.
측정결과에 의하면 LAPR 알고리즘에 근간한 파이프라인드 아키텍쳐의 경우는 기존의 LFSR 아키텍쳐에 비하여 32,65,67배 만큼의 파워 에피션시를 보임을 알 수 있다. 또한 이에 상응하는 LAPR 알고리즘에 근간한 시퀀셜 아키텍쳐의 경우는 14,22,28배의 파워 에피션시를 보임을 알 수 있다. 요구되어지는 처리량에 대한 파워 소모와의 관계를 도 10에 나타내었다. 사용되어지는 클럭 프린퀀시는 도에 보이고 있진 않지만 클럭 주파수와 파워 소모는 선형 비례 관계가 있기 때문에 도 10과 동일한 선형 관계를 기대할 수 있을 것이고, 사용되는 클럭 주파수는 표 3의 3번째 칼럼의 처리량 지연(Throughput Delay)으로부터 쉽게 계산할 수 있게 된다.
그로부터 유추하면, 기존의 LFSR 아키텍쳐는 특별한 클럭킹 전략이 없는 한 저가 실리콘 프로세싱으로서는 제작할 수 없는 단점을 갖게 된다. 참고로 저가 실리콘 프로세싱에서 사용되는 주파수 하계는 100 ~ 200 MHz 정도이기 때문이다.
파워 에피션시를 에너지 관점에서 보이기 위해 정규화된 파워 딜레이 프로덕트를 도 11에 보였다. 모든 회로들을 5 볼트 전원 전압에서 동작하고 있고 모두동일한 클럭 주파수 10 MHz를 사용하고 있다. 이 그림으로부터 LAPR에 근간한 파이프라인드, 그리고 시퀀셜 아키텍쳐는 기존의 LFSR 아키텍쳐보다 훨씬 작은 파워-딜레이 프로덕트(Power-Delay Product)를 보임을 알 수 있다. 여기서 가장 중요한 것은 동일한 클럭 주파수를 사용할 때는 LAPR에 근간한 파이프라인드, 그리고 시퀀셜 아키텍쳐는 아주 작은 파워 비용을 지불함에도 불구하고 속도면에서는 거의 수십배 오더(Order)정도의 빠른 특성을 보임을 알 수 있다.
따라서, 속도와 지불해야 할 파워 비용을 도식적으로 나타내면 아래의 표 4와 같이 정리된다.
[표 4]
상기 표 4로부터 알 수 있듯이 동일한 10 MHz 클럭을 사용할 때는 파이프라인드 아키텍쳐의 경우는 32,63,63배의 더 높은 스피드를 보임을 알 수 있고, LFSR 아키텍쳐에 비하여 이때 지불해야 할 파워 비용은 단지 2,2,2,21배 임을 알 수 있다. 또한 이에 상응하는 시퀀셜 아키텍쳐의 스피드 이득은 4.5, 10.5, 5.7배나 되지만 이때도 역시 지불해야 하는 파워 비용은 오히려 LFSR 아키텍쳐보다 줄어들어 0.5, 0.8, 0.3이 됨을 알 수 있다. 이것은 LAPR 알고리즘에 근간한 파이프라인드 아키텍쳐와 시퀀셜 아키텍쳐는 고속 과저전력 소비가 동시에 혹은 각각이 중요한 경우 어느때나 유용하게 사용될 수 있음을 보인다고 할 수 있다.
상술한 바와 같이 동작하는 본 발명에 따른 유한 필드에서의 긴 다항식 제산장치를 제공하여 즉, "Lookahead of Partial-Remainder"라는 기술에 근간한 그룹 단위의 병렬 프로세싱을 통하여 유한 필드 심볼간의 곱셈이 전혀 필요없게 되어 단위시간당 생성해내는 나눗셈 결과가 기존의 것에 비해 수십배 이상 빠르다.
또한, 이렇게 얻어진 고속 특성은 사용되어지는 클럭의 주파수를 낮춤으로써 저전력 소비를 얻는 쪽으로 트레이드되어질 수 있으며, 클럭 주파수가 낮아짐에 따라 전원 전압을 낮출 수 있게 되어 더 많은 전력소비 절감을 얻을 수 있는 장점이 있다.
또한, 향상된 속도가 수십배 정도의 이득을 가지므로 전체적인 파워 딜레이 프로덕트는 아주 낮아지게 되어 이를 활용하면 고속 또는 저전력 소모 또는 둘다 요구되어지는 상황에서도 사용되어질 수 있는 장점을 갖는다.

Claims (3)

  1. 룩어헤드(Lookahead) 기법과 부분 분할(Partial-Division)을 바탕으로 그룹 단위의 병렬 프로세싱에 의해 유한 필드 심볼간의 제산시 순차적으로 나누어지느 다항식의 그룹을 마지막 그룹에 이를 때까지 제거해가는 방식에 따른 유한 필드에서의 긴 다항식 제산 장치에 있어서,
    바이너리 필드의 경우 한 개의 심볼이 1개의 비트로 구성되기 때문에 k+1개의 D 플립플롭을 사용하는 심볼 레지스터로 구성되며, 나누어지는 다항식의 첫 번째 그룹을 저장하는 저장수단과;
    이전 그룹으로부터 생성되는 부분잉여와 현재 다항식의 그룹을 가산하는 k개의 심볼 가산기들과 상기 심볼 가산기들에서 출력되는 가산치들을 저장하는 k+1개의 심볼레지스터 및 현재 다항식 그룹의 최하위 심볼을 저장하는 1개의 심볼레지스터로 이루어진 X개의 중간자 저장수단과;
    이전 그룹으로부터 생성되는 부분잉여와 현재 다항식의 그룹을 가산하는 k개의 심볼 가산기들과 상기 심볼 가산기들에서 출력되는 가산치들을 저장하는 k개의 심볼레지스터로 이루어져 이전 그룹에서 생성된 부분잉여를 마지막 그룹과 가산함으로써 전체적인 잉여를 생성하는 잉여 생성수단과;
    상기 저장수단과 X개의 중간자 저장수단에 일대일로 연결되어 있으며 상기 저장수단과 복수개의 중간자 저장수단에서 출력되는 데이터를 기준으로 부분 몫을 생성하는 X+1 개의 부분 몫 생성수단; 및
    상기 저장수단과 X개의 중간자 저장수단에 일대일로 연결되어 있으며 상기 X+1 개의 부분 몫 생성수단에 입력되는 데이터를 입력받아 부분잉여를 생성한 후 배열상 자신의 위치와 동일 위치에 존재하는 상기 중간자 저장수단에 그 부분잉여치를 전달하고 최하위에 생성된 부분잉여는 잉여 생성수단에 전달하는 X+1 개의 부분잉여 생성수단을 포함하는 것을 특징으로 하는 유한 필드에서의 긴 다항식 제산 장치.
  2. 제1항에 있어서, 상기 저장수단은;
    논-바이너리 유한필드이 경우는 1개의 심볼을 이루는 비트의 개숭 대응하는 D플립플롭의 병렬 증폭으로 구성되는 것을 특징으로 하는 유한 필드에서의 긴 다항식 제산장치.
  3. 제1항에 있어서,
    상기 중간자 저장수단은 k+1개의 심볼레지스터와 k개의 심볼 가산기로 구성되며, 이전 그룹으로부터 생성되는 부분잉여와 다음 그룹을 합하여 새로운 그룹을 생성하되, 새로운 그룹을 생성하기 위해서는 이전 그룹에서 생성된 k심볼의 부분잉여가 k+1 심볼로 구성되는 다음 그룹의 상위 k심볼에 더해지도록 하는 것을 특징으로 하는 유한 필드에서의 긴 다항식 제산장치.
KR1019980036306A 1998-09-03 1998-09-03 유한필드에서의긴다항식제산장치 KR100302847B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019980036306A KR100302847B1 (ko) 1998-09-03 1998-09-03 유한필드에서의긴다항식제산장치
US09/383,792 US6523053B1 (en) 1998-09-03 1999-08-26 Method and apparatus for dividing long polynomial expression in finite field

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980036306A KR100302847B1 (ko) 1998-09-03 1998-09-03 유한필드에서의긴다항식제산장치

Publications (2)

Publication Number Publication Date
KR20000018636A KR20000018636A (ko) 2000-04-06
KR100302847B1 true KR100302847B1 (ko) 2001-11-22

Family

ID=19549486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980036306A KR100302847B1 (ko) 1998-09-03 1998-09-03 유한필드에서의긴다항식제산장치

Country Status (2)

Country Link
US (1) US6523053B1 (ko)
KR (1) KR100302847B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7458006B2 (en) * 2002-02-22 2008-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
US7426529B2 (en) * 2002-06-06 2008-09-16 Infineon Technologies Ag Processor and method for a simultaneous execution of a calculation and a copying process
US7506015B1 (en) 2004-11-05 2009-03-17 Xilinx, Inc. Generation of a remainder from division of a first polynomial by a second polynomial
FR2897963A1 (fr) * 2006-02-28 2007-08-31 Atmel Corp Procede pour les conjectures de quotient rapide et une manip ulation de congruences
US9122563B2 (en) * 2009-02-03 2015-09-01 Microsoft Technology Licensing, Llc Computing minimal polynomials
US8732637B2 (en) * 2012-07-30 2014-05-20 Synopsys, Inc. Formal verification of bit-serial division and bit-serial square-root circuit designs
US9189581B2 (en) * 2012-07-30 2015-11-17 Synopsys, Inc. Equivalence checking between two or more circuit designs that include division circuits
US9960788B2 (en) * 2015-03-27 2018-05-01 Toshiba Memory Corporation Memory controller, semiconductor memory device, and control method for semiconductor memory device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2099789T3 (es) * 1992-07-14 1997-06-01 Alcatel Bell Nv Dispositivo divisor para dividir un primer polinomio por un segundo polinomio.
US5905664A (en) * 1997-04-04 1999-05-18 National Semiconductor Corp. Circuit for determining, in parallel, the terms of a remainder that results from dividing two binary polynomials

Also Published As

Publication number Publication date
US6523053B1 (en) 2003-02-18
KR20000018636A (ko) 2000-04-06

Similar Documents

Publication Publication Date Title
Zhang et al. High-speed architectures for parallel long BCH encoders
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6571368B1 (en) Systolic Reed-Solomon decoder
US5535225A (en) Time domain algebraic encoder/decoder
US5130990A (en) VLSI architecture for a Reed-Solomon decoder
US8621329B2 (en) Reconfigurable BCH decoder
US7089276B2 (en) Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256)
US6308295B1 (en) Parallel spectral reed-solomon encoder and decoder
US8261176B2 (en) Polynomial division
Spinner et al. Decoder architecture for generalised concatenated codes
KR100302847B1 (ko) 유한필드에서의긴다항식제산장치
KR100260415B1 (ko) 고속시리얼에러위치다항식계산회로
Zhang et al. Efficient BCH code encoding and decoding algorithm with divisor-distance-based polynomial division for STT-MRAM
Zhang et al. Low-complexity transformed encoder architectures for quasi-cyclic nonbinary LDPC codes over subfields
Raviv Asymptotically optimal regenerating codes over any field
Lee et al. Implementation of parallel BCH encoder employing tree-type systolic array architecture
Shivanna et al. Design of high-speed turbo product code decoder
KR102607761B1 (ko) 극 부호를 이용하는 복호화를 위한 복호 위치 제어 정보 생성 방법 및 장치
Koorapati Design of any codeword length parallel long BCH encoders with the help of an efficient C-utility
Qamar et al. An efficient encoding algorithm for (n, k) binary cyclic codes
US8775893B2 (en) Variable parity encoder
Shukla LFSR based versatile divider architectures for BCH and RS error correction encoders
Tang et al. Low-complexity architectures for parallel long BCH encoders
US11750222B1 (en) Throughput efficient Reed-Solomon forward error correction decoding
Kwoon et al. A new division algorithm based on lookahead of partial-remainder (LAPR) for high-speed/low-power coding applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee