KR20100132728A - 모듈러 연산 방법 및 이를 위한 장치 - Google Patents

모듈러 연산 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20100132728A
KR20100132728A KR1020090051480A KR20090051480A KR20100132728A KR 20100132728 A KR20100132728 A KR 20100132728A KR 1020090051480 A KR1020090051480 A KR 1020090051480A KR 20090051480 A KR20090051480 A KR 20090051480A KR 20100132728 A KR20100132728 A KR 20100132728A
Authority
KR
South Korea
Prior art keywords
remind
result
equal
modular
output
Prior art date
Application number
KR1020090051480A
Other languages
English (en)
Other versions
KR101592920B1 (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 KR1020090051480A priority Critical patent/KR101592920B1/ko
Priority to US13/377,650 priority patent/US8880577B2/en
Priority to PCT/KR2010/003719 priority patent/WO2010143892A2/ko
Priority to EP10786375A priority patent/EP2442225A4/en
Publication of KR20100132728A publication Critical patent/KR20100132728A/ko
Application granted granted Critical
Publication of KR101592920B1 publication Critical patent/KR101592920B1/ko

Links

Images

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
    • 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
    • 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/52Multiplying; Dividing
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5353Restoring division

Landscapes

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

Abstract

본 발명의 제수(
Figure 112009035089086-PAT00001
)의 제곱이 피제수(
Figure 112009035089086-PAT00002
)보다 크거나 같은 경우의 모듈러 연산 방법은
Figure 112009035089086-PAT00003
을 만족하는 연산 스테이지의 개수(
Figure 112009035089086-PAT00004
)를 계산하는 연산 스테이지 개수 판단 단계, 상수(
Figure 112009035089086-PAT00005
)의 초기값을 상기
Figure 112009035089086-PAT00006
의 절반 이상의 값 중 가장 작은 정수로 설정하는 초기화 단계, 상기
Figure 112009035089086-PAT00007
가 상기
Figure 112009035089086-PAT00008
과 상기
Figure 112009035089086-PAT00009
의 곱(
Figure 112009035089086-PAT00010
)보다 크거나 같은 경우 상기
Figure 112009035089086-PAT00011
에서 상기
Figure 112009035089086-PAT00012
를 뺀 값을 상기
Figure 112009035089086-PAT00013
로 갱신하는 제 1 연산 단계, 상기
Figure 112009035089086-PAT00014
의 절반 이상의 값 중 가장 작은 정수를 상기
Figure 112009035089086-PAT00015
로 갱신하는 제 2 연산 단계를 포함하며, 상기 제 1 연산 단계와 상기 제 2 연산 단계를
Figure 112009035089086-PAT00016
회 반복 실행하여, 상기
Figure 112009035089086-PAT00017
를 상기 모듈러 연산의 결과로 출력하는 것을 특징으로 한다. 또한 상기 제 1 연산 단계는 상기
Figure 112009035089086-PAT00018
가 상기
Figure 112009035089086-PAT00019
보다 작은 경우, 상기
Figure 112009035089086-PAT00020
의 값을 유지하는 것을 특징으로 한다.
본 발명의 모듈러 연산 방법 및 이를 위한 장치에 의하면 모듈러 연산 또는 나누기 연산의 연산량이 제수
Figure 112009035089086-PAT00021
의 크기에 따라 선형적으로 증가하지 않고
Figure 112009035089086-PAT00022
에 비례하여 증가하므로, 결과적으로 전체 연산량이 감소하며 연산 속도를 증가한다.
모듈러 연산, 나누기 연산, 프리앰블 신호

Description

모듈러 연산 방법 및 이를 위한 장치{Method and Apparatus for performing modular calculation}
본 발명은 모듈러 연산 방법 및 장치에 관한 것으로서, 특히 LTE(Long Term Evolution) 무선 통신 시스템의 동기 획득을 목적으로 사용되는 물리 랜덤 액세스 채널(Physical Random Access Channel, PRACH)을 통해 전송되는 프리앰블(Preamble) 신호를 생성하기 위하여 사용되는 모듈러 연산 방법 및 장치에 관한 것이다.
LTE 무선 통신 시스템의 동기 획득을 목적으로 사용되는 물리 랜덤 액세스 채널을 통해 전송되는 프리앰블(Preamble) 신호를 생성하기 위하여 아래 수학식 1과 같은 모듈러 연산이 이용된다.
<수학식 1>
Figure 112009035089086-PAT00023
수학식 1의 모듈러 연산을 물리적으로 구현함에 있어 종래에는 피제수
Figure 112009035089086-PAT00024
값과 제수
Figure 112009035089086-PAT00025
값의 대소 비교를 통해
Figure 112009035089086-PAT00026
의 값이
Figure 112009035089086-PAT00027
값보다 작아질 때까지 뺄셈 연산과 비교 연산을 수행하고, 최종 결과가 나머지 값이 되는 선형 검색(Linear Search) 방식을 이용하였다. 그러나 수학식 1과 같은 연산을 위하여 선형 검색 방식을 이용하는 경우에는 디바이더(divider)의 사용으로 인하여 하드웨어 복잡도가 증가할 뿐만 아니라 합성 타이밍도 나빠지는 문제점이 발생하였다.
앞서 설명한 선형 검색 방식을 적용한 모듈러 연산은 그 연산량이 피제수
Figure 112009035089086-PAT00028
값의 크기와 선형적으로 비례하므로, 나머지 값을 구하기 위해 많은 스테이지를 필요로 하며 또한 그 처리 시간이 길어진다. 또한 제수
Figure 112009035089086-PAT00029
이 크면 클수록 종래 기법은 그 효과가 더욱 더 줄어들게 된다.
본 발명인 모듈러 연산 방법 및 이를 위한 장치는 파이프라인 모듈러 연산을 이용하여 연산량을 줄이고 연산 속도를 증가시키는 것을 목적으로 한다. 또한 본 발명인 모듈러 연산 방법 및 이를 위한 장치는 디바이더 없이 모듈러 연산을 수행하는 것을 목적으로 한다.
상기와 같은 문제점을 해결하기 위한 본 발명의 실시예에 따른 제수(
Figure 112009035089086-PAT00030
)의 제곱이 피제수(
Figure 112009035089086-PAT00031
)보다 크거나 같은 경우의 모듈러 연산 방법은
Figure 112009035089086-PAT00032
을 만족하는 연산 스테이지의 개수(
Figure 112009035089086-PAT00033
)를 계산하는 연산 스테이지 개수 판단 단계, 상수(
Figure 112009035089086-PAT00034
)의 초기값을 상기
Figure 112009035089086-PAT00035
의 절반 이상의 값 중 가장 작은 정수로 설정하는 초기화 단계, 상기
Figure 112009035089086-PAT00036
가 상기
Figure 112009035089086-PAT00037
과 상기
Figure 112009035089086-PAT00038
의 곱(
Figure 112009035089086-PAT00039
)보다 크거나 같은 경우 상기
Figure 112009035089086-PAT00040
에서 상기
Figure 112009035089086-PAT00041
를 뺀 값을 상기
Figure 112009035089086-PAT00042
로 갱신하는 제 1 연산 단계, 상기
Figure 112009035089086-PAT00043
의 절반 이상의 값 중 가장 작은 정수를 상기
Figure 112009035089086-PAT00044
로 갱신하는 제 2 연산 단계를 포함하며, 상기 제 1 연산 단계와 상기 제 2 연산 단계를
Figure 112009035089086-PAT00045
회 반복 실행하여, 상기
Figure 112009035089086-PAT00046
를 상기 모듈러 연산의 결과로 출력하는 것을 특징으로 한다. 또한 상기 제 1 연산 단계는 상기
Figure 112009035089086-PAT00047
가 상기
Figure 112009035089086-PAT00048
보다 작은 경우, 상기
Figure 112009035089086-PAT00049
의 값을 유지하는 것을 특징으로 한다.
또한 상기와 같은 문제점을 해결하기 위한 본 발명의 실시예에 따른 제수(
Figure 112009035089086-PAT00050
)의 제곱이 피제수(
Figure 112009035089086-PAT00051
)보다 크거나 같은 경우의 모듈러 연산 장치는 상기
Figure 112009035089086-PAT00052
과 상수(
Figure 112009035089086-PAT00053
)를 입력받아 상기
Figure 112009035089086-PAT00054
Figure 112009035089086-PAT00055
의 곱셈을 수행하는 곱셈기, 상기
Figure 112009035089086-PAT00056
를 입력받아 상기 곱셈기의 출력과의 뺄셈을 수행하는 감산기, 및 상기
Figure 112009035089086-PAT00057
와 상기 감산기의 결과를 입력받아 상기
Figure 112009035089086-PAT00058
가 상기
Figure 112009035089086-PAT00059
보다 크거나 같은 경우 상기 감산기의 결과를 갱신된
Figure 112009035089086-PAT00060
로 출력하는 제 1 비교부를 포함하는 직렬로 연결된 복수개의 연산 블록들과 상기
Figure 112009035089086-PAT00061
과의 관계에서
Figure 112009035089086-PAT00062
을 만족하는 연산 블록들의 개수(
Figure 112009035089086-PAT00063
)를 계산하고, 상기
Figure 112009035089086-PAT00064
의 초기값을 상기
Figure 112009035089086-PAT00065
의 절반 이상의 값 중 가장 작은 정수로 설정하며,
Figure 112009035089086-PAT00066
번째 연산 블록에 입력하는 상수(
Figure 112009035089086-PAT00067
)를
Figure 112009035089086-PAT00068
번째 연산 블록에 입력하는 상수(
Figure 112009035089086-PAT00069
)의 절반 이상의 값 중 가장 작은 정수로 갱신하는 제어부를 포함하며, 상기
Figure 112009035089086-PAT00070
번째 연산 블록에서 출력된 상기 갱신된
Figure 112009035089086-PAT00071
는 상기 모듈러 연산의 결과인 것을 특징으로 한다. 또한 상기 제 1 비교부는 상기
Figure 112009035089086-PAT00072
가 상기
Figure 112009035089086-PAT00073
보다 작은 경우, 상기
Figure 112009035089086-PAT00074
를 그대로 상기 갱신된
Figure 112009035089086-PAT00075
로 출력하는 것을 특징으로 한다.
또한 상기와 같은 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 제수(
Figure 112009035089086-PAT00076
)의 제곱이 피제수(
Figure 112009035089086-PAT00077
)보다 크거나 같은 경우의 모듈러 연산 장치는 상기
Figure 112009035089086-PAT00078
과 상수(
Figure 112009035089086-PAT00079
)를 입력받아 상기
Figure 112009035089086-PAT00080
Figure 112009035089086-PAT00081
의 곱셈을 수행하는 곱셈기, 상기
Figure 112009035089086-PAT00082
를 입력받아 상기 곱셈기의 출력과의 감산을 수행하는 감산기, 및 상기
Figure 112009035089086-PAT00083
와 상기 감산기의 결과를 입력받아 상기
Figure 112009035089086-PAT00084
가 상기
Figure 112009035089086-PAT00085
보다 크거나 같은 경우 상기 감산기의 결과를 갱신된
Figure 112009035089086-PAT00086
로 출력하여 상기 감산기로 귀환 입력하는 제 1 비교부를 포함하는 연산 블록과 상기
Figure 112009035089086-PAT00087
과의 관계에서
Figure 112009035089086-PAT00088
을 만족하는 반복 연산의 횟수(
Figure 112009035089086-PAT00089
)를 계산하고, 상기
Figure 112009035089086-PAT00090
의 초기값을 상기
Figure 112009035089086-PAT00091
의 절반 이상의 값 중 가장 작은 정수로 설정하며,
Figure 112009035089086-PAT00092
번째 반복 연산 시 입력하는 상수(
Figure 112009035089086-PAT00093
)를
Figure 112009035089086-PAT00094
번째 반복 연산 시 입력된 상수(
Figure 112009035089086-PAT00095
)의 절반 이상의 값 중 가장 작은 정수로 갱신하는 제어부를 포함하며, 상기 연산 블록의 상기
Figure 112009035089086-PAT00096
번째 반복 연산에서 출력된 상기 갱신된
Figure 112009035089086-PAT00097
는 상기 모듈러 연산의 결과인 것을 특징으로 한다. 또한 상기 제 1 비교부는 상기
Figure 112009035089086-PAT00098
가 상기
Figure 112009035089086-PAT00099
보다 작은 경우, 상기
Figure 112009035089086-PAT00100
를 그대로 상기 갱신된
Figure 112009035089086-PAT00101
로 출력하여 상기 감산기로 입력하는 것을 특징으로 한다.
본 발명의 모듈러 연산 방법 및 이를 위한 장치에 의하면 모듈러 연산 또는 나누기 연산의 연산량이 제수
Figure 112009035089086-PAT00102
의 크기에 따라 선형적으로 증가하는 것이 아닌
Figure 112009035089086-PAT00103
에 비례하여 증가하므로, 결과적으로 전체 연산량이 감소하며 연산 속도를 증가한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의하여야 한다. 또한 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
또한 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해 석되어야만 한다.
우선 LTE 무선 통신 시스템의 물리 랜덤 액세스 채널을 통해 전송되는 프리앰블 신호를 생성하기 위한 연산 과정을 설명한다. 물리 랜덤 액세스 채널을 통해 전송되는 프리앰블 신호를 생성하기 위해서는 길이가 839 인 Zadoff-Chu(ZC) 시퀀스를 순환 이동(cyclic shift)하여 ZC-ZCZ(Zadoff-Chu sequence with zero correlation zone)를 생성한 후, ZC-ZCZ의 839 포인트 불연속 푸리에 변환(Discrete Fourier Transform, DFT)을 계산하여야 한다. 그러나 물리 랜덤 액세스 채널을 위한 불연속 푸리에 변환 블록을 사용한다면, 랜덤 액세스할 때만 사용되는 채널 사용 빈도수에 비하여 지나치게 하드웨어 복잡도와 메모리 낭비가 커진다. 따라서 ZC-ZCZ의 불연속 푸리에 변환은 839 포인트 불연속 푸리에 변환을 이용하여 직접적으로 계산하는 것이 아니라, ZC-ZCZ의 불연속 푸리에 변환과 유사한 CAZAC(Constant envelope Zero Autocorrelation) 시퀀스를 이용하여 계산한다.
이를 보다 상세히 설명하면, 우선 길이(
Figure 112009035089086-PAT00104
)가 839 인 u-th root Zadoff-Chu 시퀀스는 다음 수학식 2와 같이 정의된다.
<수학식 2>
Figure 112009035089086-PAT00105
한편 ZC 시퀀스
Figure 112009035089086-PAT00106
의 불연속 푸리에 변환은 아래 수학식 3과 같은 CAZAC 시퀀스 형태로 표현 가능하다.
<수학식 3>
Figure 112009035089086-PAT00107
한편 물리 랜덤 액세스 채널을 통해 전송되는 프리앰블 신호는 ZC 시퀀스 자체가 아닌 ZC 시퀀스를 순환 이동하여 생성한 ZC-ZCZ를 사용하므로, 수학식 2의 ZC 시퀀스를 순환 이동한 ZC-ZCZ는 아래 수학식 4와 같다.
<수학식 4>
Figure 112009035089086-PAT00108
ZC 시퀀스의 CAZAC 시퀀스 형태인 수학식 3 및 ZC 시퀀스와 ZC-ZCZ의 관계인 수학식 4를 이용하여 ZC-ZCZ 시퀀스의 불연속 푸리에 변환을 계산할 수 있으며, LTE 무선 통신 시스템의 물리 랜덤 액세스 채널에서는 아래 수학식 5와 같이 ZC-ZCZ 시퀀스의 불연속 푸리에 변환을 계산하여 프리앰블 신호를 생성하게 된다.
<수학식 5>
Figure 112009035089086-PAT00109
그러나 수학식 5의 값을 계산하기 위해서는 수학식 1과 같은 형태의 모듈러 연산을 수행해야 하며, 종래에는 선형 검색 방식을 적용하여 모듈러 연산을 수행하고 있다. 상술한 바와 같이 선형 검색 방식을 통한 모듈러 연산은 연산량이
Figure 112009035089086-PAT00110
의 크기와 선형적으로 비례하므로, 나머지 값을 구하기 위해 많은 연산 스테이지를 필요로 하며 그 처리 시간 또한 길어진다.
따라서 이러한 문제점을 해결하기 위한 본 발명에서 제안하는 모듈러 연산 처리 기법은 모듈러 값이 아래 수학식 6과 같은 형태로 표현 가능하며 주어진
Figure 112009035089086-PAT00111
Figure 112009035089086-PAT00112
에 대해서 몫
Figure 112009035089086-PAT00113
값과 나머지
Figure 112009035089086-PAT00114
값을 최저의 연산 스테이지(
Figure 112009035089086-PAT00115
)만으로 구하는 방법이다.
<수학식 6>
Figure 112009035089086-PAT00116
이를 보다 자세히 설명하면, 수학식 6을 만족하는 몫
Figure 112009035089086-PAT00117
를 탐색하기 위하여,
Figure 112009035089086-PAT00118
보다 큰 수를 검색하여 몫
Figure 112009035089086-PAT00119
Figure 112009035089086-PAT00120
보다 큰 영역에 존재한다고 판단되는 경우(
Figure 112009035089086-PAT00121
), 다시
Figure 112009035089086-PAT00122
보다 큰 수를 검색한다. 또한
Figure 112009035089086-PAT00123
보다 큰 수 중 몫
Figure 112009035089086-PAT00124
가 존재하지 않는다고 판단되는 경우(
Figure 112009035089086-PAT00125
), 다시
Figure 112009035089086-PAT00126
보다 큰 수를 검색한다.
이러한 방식을
Figure 112009035089086-PAT00127
회 반복 수행하여 몫
Figure 112009035089086-PAT00128
과 나머지
Figure 112009035089086-PAT00129
을 구할 수 있으며, 몫과 나머지를 구하기 위한 최저 연산 스테이지의 개수를 아래 수학식 7을 만족하는
Figure 112009035089086-PAT00130
개까지 감소시킬 수 있다.
<수학식 7>
Figure 112009035089086-PAT00131
도 1은 본 발명의 실시예에 따른 무선 통신 시스템의 모듈러 연산 방법의 순 서도이다. 단, 상술한 바와 같이 본 발명의 모듈러 연산 방법은 피제수
Figure 112009035089086-PAT00132
가 제수
Figure 112009035089086-PAT00133
의 제곱보다 작거나 같은 경우에 적용된다. 이하에서는 본 실시예에서는 설명의 편의를 위하여
Figure 112009035089086-PAT00134
,
Figure 112009035089086-PAT00135
로 하여 설명한다.
도 1을 참조하여 설명하면, 모듈러 연산을 하고자 하는 제수
Figure 112009035089086-PAT00136
의 값이 정해지면 단계 100에서
Figure 112009035089086-PAT00137
을 만족하는 모듈러 연산 스테이지의 개수
Figure 112009035089086-PAT00138
을 결정한다. 즉
Figure 112009035089086-PAT00139
이므로 모듈러 연산 스테이지의 개수는 3개이다. 또한 단계 105에서 피제수
Figure 112009035089086-PAT00140
Figure 112009035089086-PAT00141
즉 121로 초기 설정하고, 몫
Figure 112009035089086-PAT00142
는 0으로 초기화 한다.
계속하여 단계 110에서 최초에
Figure 112009035089086-PAT00143
값인 121이 제수
Figure 112009035089086-PAT00144
과 상수
Figure 112009035089086-PAT00145
의 곱보다 크거나 같은지 여부를 판단한다. 여기서 상수
Figure 112009035089086-PAT00146
Figure 112009035089086-PAT00147
즉 제수
Figure 112009035089086-PAT00148
의 절반 이상의 값 중 가장 작은 정수를 나타내며, 본 실시예에서 상수
Figure 112009035089086-PAT00149
Figure 112009035089086-PAT00150
인 7임을 알 수 있다. 단계 110에서
Figure 112009035089086-PAT00151
Figure 112009035089086-PAT00152
보다 크거나 같다고 판단된 경우, 단계 115에서
Figure 112009035089086-PAT00153
에서
Figure 112009035089086-PAT00154
를 뺀 값을 다시
Figure 112009035089086-PAT00155
에 저장한다. 또한 단계 120에서
Figure 112009035089086-PAT00156
Figure 112009035089086-PAT00157
의 합을 다시
Figure 112009035089086-PAT00158
에 저장한 후 다음 연산 스테이지인 단계 125로 진행한다. 만약 단계 110에서
Figure 112009035089086-PAT00159
Figure 112009035089086-PAT00160
보다 작다고 판단된 경우, 다음 연산 스테이지인 단계 125로 진행한다. 본 실시예에서
Figure 112009035089086-PAT00161
는 121이며,
Figure 112009035089086-PAT00162
는 91이므로,
Figure 112009035089086-PAT00163
Figure 112009035089086-PAT00164
보다 크다. 따라서
Figure 112009035089086-PAT00165
Figure 112009035089086-PAT00166
인 30으로 갱신되며,
Figure 112009035089086-PAT00167
는 7로 갱신된다.
계속하여, 단계 125에서 갱신된
Figure 112009035089086-PAT00168
Figure 112009035089086-PAT00169
Figure 112009035089086-PAT00170
의 곱보다 크거나 같은지 여부를 판단한다. 여기서
Figure 112009035089086-PAT00171
Figure 112009035089086-PAT00172
즉 상수
Figure 112009035089086-PAT00173
의 절반 이상의 값 중 가장 작은 정수를 나타내며, 본 실시예에서는
Figure 112009035089086-PAT00174
인 4임을 알 수 있다. 단계 125에서
Figure 112009035089086-PAT00175
Figure 112009035089086-PAT00176
보다 크거나 같다고 판단된 경우, 단계 130에서
Figure 112009035089086-PAT00177
에서
Figure 112009035089086-PAT00178
를 뺀 값을 다시
Figure 112009035089086-PAT00179
에 저장한다. 또한 단계 135에서
Figure 112009035089086-PAT00180
Figure 112009035089086-PAT00181
의 합을 다시
Figure 112009035089086-PAT00182
에 저장한 후 다음 연산 스테이지인 단계 140로 진행한다. 만약 단계 125에서
Figure 112009035089086-PAT00183
Figure 112009035089086-PAT00184
보다 작다고 판단된 경우, 다음 연산 스테이지인 단계 140로 진행한다. 본 실시예에서
Figure 112009035089086-PAT00185
는 30이며,
Figure 112009035089086-PAT00186
는 52이므로,
Figure 112009035089086-PAT00187
Figure 112009035089086-PAT00188
보다 작다. 따라서
Figure 112009035089086-PAT00189
Figure 112009035089086-PAT00190
의 갱신 없이 다음 연산 스테이지인 단계 140으로 진행한다.
계속하여 단계 140에서
Figure 112009035089086-PAT00191
Figure 112009035089086-PAT00192
Figure 112009035089086-PAT00193
의 곱보다 크거나 같은지 여부를 판단한다. 여기서
Figure 112009035089086-PAT00194
Figure 112009035089086-PAT00195
즉 상수
Figure 112009035089086-PAT00196
의 절반 이상의 값 중 가장 작은 정수를 나타내며, 본 실시예에서는
Figure 112009035089086-PAT00197
인 2임을 알 수 있다. 단계 140에서
Figure 112009035089086-PAT00198
Figure 112009035089086-PAT00199
보다 크거나 같다고 판단된 경우, 단계 145에서
Figure 112009035089086-PAT00200
에서
Figure 112009035089086-PAT00201
를 뺀 값을 다시
Figure 112009035089086-PAT00202
에 저장한다. 또한 단계 150에서
Figure 112009035089086-PAT00203
Figure 112009035089086-PAT00204
의 합을 다시
Figure 112009035089086-PAT00205
에 저장한 후 다음 연산 스테이지로 진행한다. 만약 단계 140에서
Figure 112009035089086-PAT00206
Figure 112009035089086-PAT00207
보다 작다고 판단된 경우, 다음 연산 스테이지로 진행한다. 다만, 본 실시예의 단계 100에서 연산 스테이지의 개수가 3개로 미리 설정되었기 때문에 다음 연산 스테이지는 존재하지 않고, 바로 결과 출력 과정이 진행된다. 본 실시예에서
Figure 112009035089086-PAT00208
는 30이며,
Figure 112009035089086-PAT00209
는 26이므로,
Figure 112009035089086-PAT00210
Figure 112009035089086-PAT00211
보다 크다. 따라서
Figure 112009035089086-PAT00212
Figure 112009035089086-PAT00213
인 4로 갱신되며,
Figure 112009035089086-PAT00214
는 9로 갱신된다.
결과적으로
Figure 112009035089086-PAT00215
이므로, 3단계의 연산 스테이지를 진행하는 동안 모듈러 연산과 나누기 연산을 모두 수행할 수 있다.
다만, 도 1에서는
Figure 112009035089086-PAT00216
으로 예시하여 단계 110, 125, 및 140의 3개의 연산 스테이지만 도시하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는
Figure 112009035089086-PAT00217
의 크기에 따라 용이하게 연산 스테이지의 개수를 가감할 수 있을 것이다.
도 2a는 본 발명의 실시예에 따른 무선 통신 시스템의 모듈러 연산 장치의 블록 구성도이다. 본 실시예에서도 역시 설명의 편의를 위하여
Figure 112009035089086-PAT00218
, 제수
Figure 112009035089086-PAT00219
로 하여 설명한다. 또한
Figure 112009035089086-PAT00220
를 만족하는
Figure 112009035089086-PAT00221
은 3이므로, 참조번호 200, 210 및 220의 3개의 연산 스테이지를 수행하는 연산 블록을 도시하였다. 그러나 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는
Figure 112009035089086-PAT00222
의 크기에 따라 용이하게 연산 블록의 개수를 가감할 수 있을 것이다.
도 2a를 참조하여 설명하면, 본 발명의 실시예에 따른 무선 통신 시스템의 모듈러 연산 장치의 연산 블록은 모듈러 연산을 위한 곱셈기(201), 감산기(202), 제 1 비교부(203)를 포함하며, 나누기 연산을 위한 가산기(204), 제 2 비교부(205)를 포함한다. 또한 본 발명의 실시예에 따른 모듈러 연산 장치는 연산 스테이지의 개수만큼 연산 블록이 직렬 연결되어 구성된다. 따라서 본 실시예에
Figure 112009035089086-PAT00223
으로 예시하였으므로, 모듈러 연산 장치는 3개의 연산 블록이 직렬 연결되어 구성된다.
모듈러 연산을 하고자 하는 제수
Figure 112009035089086-PAT00224
의 값이 정해지면
Figure 112009035089086-PAT00225
을 만족 하는 모듈러 연산 블록의 개수
Figure 112009035089086-PAT00226
을 결정한다. 즉
Figure 112009035089086-PAT00227
이므로 모듈러 연산 블록의 개수는 3개이다.
또한 최초 입력값인
Figure 112009035089086-PAT00228
(피제수)과
Figure 112009035089086-PAT00229
(상수)을 각각
Figure 112009035089086-PAT00230
Figure 112009035089086-PAT00231
로 설정하며,
Figure 112009035089086-PAT00232
은 0으로 초기화 한다. 본 실시예에서
Figure 112009035089086-PAT00233
은 121이며,
Figure 112009035089086-PAT00234
Figure 112009035089086-PAT00235
인 7로 설정한다.
우선 모듈러 연산부터 설명하면, 제 1 스테이지 연산 블록(200)으로 입력된 상수
Figure 112009035089086-PAT00236
은 곱셈기(201)에서 피제수
Figure 112009035089086-PAT00237
과 곱해지며, 감산기(202)에서
Figure 112009035089086-PAT00238
Figure 112009035089086-PAT00239
의 뺄셈이 수행된다. 또한 제 1 비교부(203)는
Figure 112009035089086-PAT00240
Figure 112009035089086-PAT00241
보다 크거나 같은 경우 감산기(202)의 결과를 제 2 스테이지 연산 블록(210)의 입력값(
Figure 112009035089086-PAT00242
)으로 출력하며,
Figure 112009035089086-PAT00243
Figure 112009035089086-PAT00244
보다 작은 경우 입력된
Figure 112009035089086-PAT00245
을 그대로 제 2 스테이지 연산 블록(210)의 입력값(
Figure 112009035089086-PAT00246
)으로 출력한다. 본 실시예에서
Figure 112009035089086-PAT00247
은 121이며
Figure 112009035089086-PAT00248
는 91이므로,
Figure 112009035089086-PAT00249
Figure 112009035089086-PAT00250
보다 크다. 따라서 제 1 비교부(203)는 감산기(202)의 출력인 30을 제 2 스테이지 연산 블록(210)의 입력값(
Figure 112009035089086-PAT00251
)으로 출력한다.
또한 가산기(204)에서
Figure 112009035089086-PAT00252
Figure 112009035089086-PAT00253
의 덧셈이 수행되고,
Figure 112009035089086-PAT00254
과 가산기(204)의 출력이 제 2 비교부(205)로 입력된다. 제 2 비교부(205)는
Figure 112009035089086-PAT00255
Figure 112009035089086-PAT00256
보다 크거나 같은 경우 가산기(202)의 결과를 제 2 스테이지 연산 블록(210)의 입력값(
Figure 112009035089086-PAT00257
)으로 출력하며,
Figure 112009035089086-PAT00258
Figure 112009035089086-PAT00259
보다 작은 경우 입력된
Figure 112009035089086-PAT00260
을 그대로 제 2 스테이지 연산 블록(210)의 입력값(
Figure 112009035089086-PAT00261
)으로 출력한다. 따라서 본 실시예에서는
Figure 112009035089086-PAT00262
Figure 112009035089086-PAT00263
보다 크므로, 제 2 비교부(205)는 가산기(202)의 출력인 7을 제 2 스테이지 연산 블록(210)의 입력 값(
Figure 112009035089086-PAT00264
)으로 출력한다.
계속하여, 제 2 스테이지 연산 블록(210)으로 입력된
Figure 112009035089086-PAT00265
은 곱셈기(211)에서
Figure 112009035089086-PAT00266
과 곱해지며, 감산기(212)에서
Figure 112009035089086-PAT00267
Figure 112009035089086-PAT00268
의 뺄셈이 수행된다. 여기서
Figure 112009035089086-PAT00269
Figure 112009035089086-PAT00270
즉 상수
Figure 112009035089086-PAT00271
의 절반 이상의 값 중 가장 작은 정수를 나타내며, 본 실시예에서는
Figure 112009035089086-PAT00272
인 4임을 알 수 있다. 또한 제 1 비교부(203)는
Figure 112009035089086-PAT00273
Figure 112009035089086-PAT00274
보다 크거나 같은 경우 감산기(212)의 결과를 제 3 스테이지 연산 블록(220)의 입력값(
Figure 112009035089086-PAT00275
)으로 출력하며,
Figure 112009035089086-PAT00276
Figure 112009035089086-PAT00277
보다 작은 경우 입력된
Figure 112009035089086-PAT00278
를 그대로 제 3 스테이지 연산 블록(220)의 입력값(
Figure 112009035089086-PAT00279
)으로 출력한다. 본 실시예에서 은 30이며
Figure 112009035089086-PAT00281
는 52이므로,
Figure 112009035089086-PAT00282
Figure 112009035089086-PAT00283
보다 작다. 따라서 제 1 비교부(213)는
Figure 112009035089086-PAT00284
를 그대로 제 3 스테이지 연산 블록(220)의 입력값(
Figure 112009035089086-PAT00285
)으로 출력한다.
또한 가산기(214)에서
Figure 112009035089086-PAT00286
Figure 112009035089086-PAT00287
의 덧셈이 수행(7+4=11)되고,
Figure 112009035089086-PAT00288
와 가산기(214)의 출력이 제 2 비교부(215)로 입력된다. 제 2 비교부(215)는
Figure 112009035089086-PAT00289
Figure 112009035089086-PAT00290
보다 크거나 같은 경우 가산기(212)의 결과를 제 3 스테이지 연산 블록(220)의 입력값(
Figure 112009035089086-PAT00291
)으로 출력하며,
Figure 112009035089086-PAT00292
Figure 112009035089086-PAT00293
보다 작은 경우 입력된
Figure 112009035089086-PAT00294
를 그대로 제 3 스테이지 연산 블록(220)의 입력값(
Figure 112009035089086-PAT00295
)으로 출력한다. 따라서 본 실시예에서는
Figure 112009035089086-PAT00296
Figure 112009035089086-PAT00297
보다 작으므로, 제 2 비교부(215)는 입력된
Figure 112009035089086-PAT00298
인 7을 그대로 제 3 스테이지 연산 블록(220)의 입력값(
Figure 112009035089086-PAT00299
)으로 출력한다.
마지막으로 제 3 스테이지 연산 블록(220)으로 입력된
Figure 112009035089086-PAT00300
은 곱셈기(221)에서
Figure 112009035089086-PAT00301
과 곱해지며, 감산기(222)에서
Figure 112009035089086-PAT00302
Figure 112009035089086-PAT00303
의 뺄셈이 수행된다. 여기서
Figure 112009035089086-PAT00304
Figure 112009035089086-PAT00305
즉 상수
Figure 112009035089086-PAT00306
의 절반 이상의 값 중 가장 작은 정수를 나타내며, 본 실시예에서는
Figure 112009035089086-PAT00307
인 2임을 알 수 있다. 또한 제 1 비교부(223)는
Figure 112009035089086-PAT00308
Figure 112009035089086-PAT00309
보다 크거나 같은 경우 감산기(222)의 결과를 모듈러 연산의 결과로 출력하며,
Figure 112009035089086-PAT00310
Figure 112009035089086-PAT00311
보다 작은 경우 입력된
Figure 112009035089086-PAT00312
을 그대로 모듈러 연산의 결과로 출력한다. 본 실시예에서
Figure 112009035089086-PAT00313
은 30이며
Figure 112009035089086-PAT00314
는 26이므로,
Figure 112009035089086-PAT00315
Figure 112009035089086-PAT00316
보다 크다. 따라서 제 1 비교부(223)는 감산기(222)의 출력인 4를 모듈러 연산의 결과로 출력한다.
또한 가산기(224)에서
Figure 112009035089086-PAT00317
Figure 112009035089086-PAT00318
의 덧셈이 수행(7+2=9)되고,
Figure 112009035089086-PAT00319
과 가산기(224)의 출력이 제 2 비교부(225)로 입력된다. 제 2 비교부(225)는
Figure 112009035089086-PAT00320
Figure 112009035089086-PAT00321
보다 크거나 같은 경우 가산기(222)의 결과를 나누기 연산의 결과로 출력하며,
Figure 112009035089086-PAT00322
Figure 112009035089086-PAT00323
보다 작은 경우 입력된
Figure 112009035089086-PAT00324
을 그대로 나누기 연산의 결과로 출력한다. 따라서 본 실시예에서는
Figure 112009035089086-PAT00325
Figure 112009035089086-PAT00326
보다 크므로, 제 2 비교부(225)는 가산기(202)의 출력인 9를 나누기 연산의 결과로 출력한다.
또한, 본 발명의 실시예에 따른 무선 통신 시스템의 모듈러 연산 장치는 연산 스테이지의 개수(
Figure 112009035089086-PAT00327
)를 계산하고,
Figure 112009035089086-PAT00328
을 상기
Figure 112009035089086-PAT00329
의 절반 이상의 값 중 가장 작은 정수로 설정하는 제어부(미도시)를 더 포함할 수 있다. 제어부(미도시)는 또한
Figure 112009035089086-PAT00330
의 절반 이상의 값 중 가장 작은 정수를
Figure 112009035089086-PAT00331
로 설정하여
Figure 112009035089086-PAT00332
번째 연산 스테이지로 입력하고,
Figure 112009035089086-PAT00333
개의 연산 블록에서 본 발명의 연산 방법을 수행하도록 제어할 수 있다.
도 2b는 본 발명의 다른 실시예에 따른 무선 통신 시스템의 모듈러 연산 장치의 블록 구성도이다. 특히 도 2b의 모듈러 연산 장치는 도 2a에서 상술한 연산 블록이 직렬로 연결된 구성이 아닌, 귀환적(recursive) 형태의 하나의 연산 블록으로 구성된다.
도 2b를 참조하여 설명하면, 귀환적 형태의 하나의 연산 블록(250)은 모듈러 연산을 위한 곱셈기(251), 감산기(252), 제 1 비교부(253)를 포함하며, 나누기 연산을 위한 가산기(254), 제 2 비교부(255)를 포함한다. 도 2b의 모듈러 연산 장치와 도 2a의 모듈러 연산 장치의 차이점은
Figure 112009035089086-PAT00334
번째 반복 연산의 결과가
Figure 112009035089086-PAT00335
번째 반복 연산의 입력이 되도록 구성되고, 제어부(미도시)는 반복 연산의 개수(
Figure 112009035089086-PAT00336
)를 계산하고,
Figure 112009035089086-PAT00337
회 반복 연산의의 결과인
Figure 112009035089086-PAT00338
Figure 112009035089086-PAT00339
를 몫과 나머지로 출력한다는 점이다.
또한 도 2b의 모듈러 연산 장치에 포함된 제어부(미도시) 역시 연산 초기화를 위하여 초기 상수
Figure 112009035089086-PAT00340
를 제수
Figure 112009035089086-PAT00341
의 절반 이상의 값 중 가장 작은 정수로 설정하며, 상기
Figure 112009035089086-PAT00342
번째 반복 연산 시 입력한 상수
Figure 112009035089086-PAT00343
의 절반 이상의 값 중 가장 작은 정수를
Figure 112009035089086-PAT00344
번째 반복 연산 시 입력하는 상수
Figure 112009035089086-PAT00345
가 되도록 제어한다.
도 3은 종래 기술과 본 발명의 실시예에 따른 무선 통신 시스템의 모듈러 연산 방법의 성능을 비교한 도면이다. 특히 도 3은 종래 기술과 본 발명의 모듈러 연산 방법에서 제수 N의 크기에 따른 연산 스테이지의 개수를 비교한 도면이다
도 3을 참조하여 설명하면, 본 발명에 따른 모듈러 연산 장치는
Figure 112009035089086-PAT00346
개의 연산 스테이지를 갖는 파이프라인 모듈러 연산을 처리하며 종래 기술에 비하여 연산 스테이지가 획기적으로 감소하므로 연산 속도가 비약적으로 증가한다. 참조번호 301은 종래 기술 즉 선형 검색 기법을 적용하여 수행한 모듈러 연산의 연산 스테이지를 지시하며, 제수
Figure 112009035089086-PAT00347
의 값에 따라 연산 스테이지가 선형적으로 증가하는 것을 알 수 있다.
한편 참조번호 302는 본 발명인 무선 통신 시스템의 모듈러 연산 방법을 적용하여 수행한 모듈러 연산의 연산 스테이지를 지시하며, 제수
Figure 112009035089086-PAT00348
의 값에 따라 연산 스테이지가
Figure 112009035089086-PAT00349
단위로 증가함을 알 수 있으며, 나아가 제수
Figure 112009035089086-PAT00350
의 값이 커질수록 연산 스테이지 감소폭이 증가함을 알 수 있다.
한편 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
도 1은 본 발명의 실시예에 따른 모듈러 연산 방법의 순서도.
도 2a는 본 발명의 실시예에 따른 모듈러 연산 장치의 블록 구성도.
도 2b는 본 발명의 다른 실시예에 따른 모듈러 연산 장치의 블록 구성도.
도 3은 종래 기술과 본 발명의 실시예에 따른 모듈러 연산 방법의 성능을 비교한 도면.

Claims (9)

  1. 제수(
    Figure 112009035089086-PAT00351
    )의 제곱이 피제수(
    Figure 112009035089086-PAT00352
    )보다 크거나 같은 경우의 모듈러 연산 방법에 있어서,
    아래 수학식을 만족하는 연산 스테이지의 개수(
    Figure 112009035089086-PAT00353
    )를 계산하는 연산 스테이지 개수 판단 단계;
    상수(
    Figure 112009035089086-PAT00354
    )의 초기값을 상기
    Figure 112009035089086-PAT00355
    의 절반 이상의 값 중 가장 작은 정수로 설정하는 초기화 단계;
    상기
    Figure 112009035089086-PAT00356
    가 상기
    Figure 112009035089086-PAT00357
    과 상기
    Figure 112009035089086-PAT00358
    의 곱(
    Figure 112009035089086-PAT00359
    )보다 크거나 같은 경우 상기
    Figure 112009035089086-PAT00360
    에서 상기
    Figure 112009035089086-PAT00361
    를 뺀 값을 상기
    Figure 112009035089086-PAT00362
    로 갱신하는 제 1 연산 단계;
    상기
    Figure 112009035089086-PAT00363
    의 절반 이상의 값 중 가장 작은 정수를 상기
    Figure 112009035089086-PAT00364
    로 갱신하는 제 2 연산 단계;를 포함하며,
    상기
    Figure 112009035089086-PAT00365
    의 제곱은 상기
    Figure 112009035089086-PAT00366
    보다 크거나 같고, 상기 제 1 연산 단계와 상기 제 2 연산 단계를
    Figure 112009035089086-PAT00367
    회 반복 실행하여, 상기
    Figure 112009035089086-PAT00368
    를 상기 모듈러 연산의 결과로 출력하는 것을 특징으로 하는 모듈러 연산 방법.
    <수학식>
    Figure 112009035089086-PAT00369
  2. 제 1 항에 있어서, 상기 제 1 연산 단계는
    상기
    Figure 112009035089086-PAT00370
    가 상기
    Figure 112009035089086-PAT00371
    보다 작은 경우, 상기
    Figure 112009035089086-PAT00372
    의 값을 유지하는 것을 특징으로 하는 모듈러 연산 방법.
  3. 제 1 항에 있어서,
    상기 초기화 단계에서 나누기 연산의 몫(
    Figure 112009035089086-PAT00373
    )을 0으로 설정하고,
    상기 제 1 연산 단계에서 상기
    Figure 112009035089086-PAT00374
    가 상기
    Figure 112009035089086-PAT00375
    보다 크거나 같은 경우 상기
    Figure 112009035089086-PAT00376
    Figure 112009035089086-PAT00377
    의 합을 상기
    Figure 112009035089086-PAT00378
    로 갱신하며,
    상기 제 1 연산 단계와 상기 제 2 연산 단계를
    Figure 112009035089086-PAT00379
    회 반복 실행하여, 상기
    Figure 112009035089086-PAT00380
    를 상기 나누기 연산의 결과로 출력하는 것을 특징으로 하는 모듈러 연산 방법.
  4. 제수(
    Figure 112009035089086-PAT00381
    )의 제곱이 피제수(
    Figure 112009035089086-PAT00382
    )보다 크거나 같은 경우의 모듈러 연산 장치에 있어서,
    상기
    Figure 112009035089086-PAT00383
    와 상수(
    Figure 112009035089086-PAT00384
    )를 입력받아 상기
    Figure 112009035089086-PAT00385
    Figure 112009035089086-PAT00386
    의 곱셈을 수행하는 곱셈기, 상기
    Figure 112009035089086-PAT00387
    를 입력받아 상기 곱셈기의 출력과의 뺄셈을 수행하는 감산기, 및 상기
    Figure 112009035089086-PAT00388
    와 상기 감산기의 결과를 입력받아 상기
    Figure 112009035089086-PAT00389
    가 상기
    Figure 112009035089086-PAT00390
    보다 크거나 같은 경우 상기 감산기의 결과를 갱신된
    Figure 112009035089086-PAT00391
    로 출력하는 제 1 비교부를 포함하는 직렬로 연결된 복수개의 연산 블록들;과
    아래 수학식을 만족하는 연산 블록들의 개수(
    Figure 112009035089086-PAT00392
    )를 계산하고, 상기
    Figure 112009035089086-PAT00393
    의 초기값을 상기
    Figure 112009035089086-PAT00394
    의 절반 이상의 값 중 가장 작은 정수로 설정하며,
    Figure 112009035089086-PAT00395
    번째 연산 블 록에 입력하는 상수(
    Figure 112009035089086-PAT00396
    )를
    Figure 112009035089086-PAT00397
    번째 연산 블록에 입력하는 상수(
    Figure 112009035089086-PAT00398
    )의 절반 이상의 값 중 가장 작은 정수로 갱신하는 제어부;를 포함하며,
    상기
    Figure 112009035089086-PAT00399
    번째 연산 블록에서 출력된 상기 갱신된
    Figure 112009035089086-PAT00400
    는 상기 모듈러 연산의 결과인 것을 특징으로 하는 모듈러 연산 장치.
    <수학식>
    Figure 112009035089086-PAT00401
  5. 제 4 항에 있어서, 상기 제 1 비교부는
    상기
    Figure 112009035089086-PAT00402
    가 상기
    Figure 112009035089086-PAT00403
    보다 작은 경우, 상기
    Figure 112009035089086-PAT00404
    를 그대로 상기 갱신된
    Figure 112009035089086-PAT00405
    로 출력하는 것을 특징으로 하는 모듈러 연산 장치.
  6. 제 4 항에 있어서, 각각의 상기 직렬로 연결된 복수개의 연산 블록들은
    나누기 연산의 몫(
    Figure 112009035089086-PAT00406
    )을 입력받아 상기
    Figure 112009035089086-PAT00407
    의 가산을 수행하는 상기 가산기;
    상기
    Figure 112009035089086-PAT00408
    가 상기
    Figure 112009035089086-PAT00409
    보다 크거나 같은 경우 상기 가산기의 결과를 갱신된
    Figure 112009035089086-PAT00410
    로 출력하고, 상기
    Figure 112009035089086-PAT00411
    가 상기
    Figure 112009035089086-PAT00412
    보다 작은 경우 상기
    Figure 112009035089086-PAT00413
    를 그대로 상기 갱신된
    Figure 112009035089086-PAT00414
    로 출력하는 제 2 비교부;를 더 포함하며,
    상기
    Figure 112009035089086-PAT00415
    번째 연산 블록에서 출력된 상기 갱신된
    Figure 112009035089086-PAT00416
    는 상기 나누기 연산의 결과인 것을 특징으로 하는 모듈러 연산 장치.
  7. 제수(
    Figure 112009035089086-PAT00417
    )의 제곱이 피제수(
    Figure 112009035089086-PAT00418
    )보다 크거나 같은 경우의 모듈러 연산 장치에 있어서,
    상기
    Figure 112009035089086-PAT00419
    과 상수(
    Figure 112009035089086-PAT00420
    )를 입력받아 상기
    Figure 112009035089086-PAT00421
    Figure 112009035089086-PAT00422
    의 곱셈을 수행하는 곱셈기, 상기
    Figure 112009035089086-PAT00423
    를 입력받아 상기 곱셈기의 출력과의 감산을 수행하는 감산기, 및 상기
    Figure 112009035089086-PAT00424
    와 상기 감산기의 결과를 입력받아 상기
    Figure 112009035089086-PAT00425
    가 상기
    Figure 112009035089086-PAT00426
    보다 크거나 같은 경우 상기 감산기의 결과를 갱신된
    Figure 112009035089086-PAT00427
    로 출력하여 상기 감산기로 귀환 입력하는 제 1 비교부를 포함하는 연산 블록;과
    아래 수학식을 만족하는 반복 연산의 횟수(
    Figure 112009035089086-PAT00428
    )를 계산하고, 상기
    Figure 112009035089086-PAT00429
    의 초기값을 상기
    Figure 112009035089086-PAT00430
    의 절반 이상의 값 중 가장 작은 정수로 설정하며,
    Figure 112009035089086-PAT00431
    번째 반복 연산 시 입력하는 상수(
    Figure 112009035089086-PAT00432
    )를
    Figure 112009035089086-PAT00433
    번째 반복 연산 시 입력된 상수(
    Figure 112009035089086-PAT00434
    )의 절반 이상의 값 중 가장 작은 정수로 갱신하는 제어부;를 포함하며,
    상기 연산 블록의 상기
    Figure 112009035089086-PAT00435
    번째 반복 연산에서 출력된 상기 갱신된
    Figure 112009035089086-PAT00436
    는 상기 모듈러 연산의 결과인 것을 특징으로 하는 모듈러 연산 장치.
    <수학식>
    Figure 112009035089086-PAT00437
  8. 제 7 항에 있어서, 상기 제 1 비교부는
    상기
    Figure 112009035089086-PAT00438
    가 상기
    Figure 112009035089086-PAT00439
    보다 작은 경우, 상기
    Figure 112009035089086-PAT00440
    를 그대로 상기 갱신된
    Figure 112009035089086-PAT00441
    로 출력하여 상기 감산기로 입력하는 것을 특징으로 하는 모듈러 연산 장치.
  9. 제 7 항에 있어서, 상기 연산 블록은
    나누기 연산의 몫(
    Figure 112009035089086-PAT00442
    )을 입력받아 상기
    Figure 112009035089086-PAT00443
    의 가산을 수행하는 상기 가산기;
    상기
    Figure 112009035089086-PAT00444
    가 상기
    Figure 112009035089086-PAT00445
    보다 크거나 같은 경우 상기 가산기의 결과를 갱신된
    Figure 112009035089086-PAT00446
    로 출력하여 상기 가산기로 입력하고, 상기
    Figure 112009035089086-PAT00447
    가 상기
    Figure 112009035089086-PAT00448
    보다 작은 경우 상기
    Figure 112009035089086-PAT00449
    를 그대로 상기 갱신된
    Figure 112009035089086-PAT00450
    로 출력하여 상기 가산기로 귀환 입력하는 제 2 비교부;를 더 포함하며,
    상기 연산 블록의 상기
    Figure 112009035089086-PAT00451
    번째 연산에서 출력된 상기 갱신된
    Figure 112009035089086-PAT00452
    는 상기 나누기 연산의 결과인 것을 특징으로 하는 모듈러 연산 장치.
KR1020090051480A 2009-06-10 2009-06-10 모듈러 연산 방법 및 이를 위한 장치 KR101592920B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020090051480A KR101592920B1 (ko) 2009-06-10 2009-06-10 모듈러 연산 방법 및 이를 위한 장치
US13/377,650 US8880577B2 (en) 2009-06-10 2010-06-10 Modulo operation method and apparatus for same
PCT/KR2010/003719 WO2010143892A2 (ko) 2009-06-10 2010-06-10 나머지 연산 방법 및 이를 위한 장치
EP10786375A EP2442225A4 (en) 2009-06-10 2010-06-10 MODULO OPERATING METHOD AND DEVICE THEREFOR

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090051480A KR101592920B1 (ko) 2009-06-10 2009-06-10 모듈러 연산 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20100132728A true KR20100132728A (ko) 2010-12-20
KR101592920B1 KR101592920B1 (ko) 2016-02-12

Family

ID=43309371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090051480A KR101592920B1 (ko) 2009-06-10 2009-06-10 모듈러 연산 방법 및 이를 위한 장치

Country Status (4)

Country Link
US (1) US8880577B2 (ko)
EP (1) EP2442225A4 (ko)
KR (1) KR101592920B1 (ko)
WO (1) WO2010143892A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8569121B2 (en) 2011-11-01 2013-10-29 International Business Machines Corporation Graphene and nanotube/nanowire transistor with a self-aligned gate structure on transparent substrates and method of making same
US9535656B2 (en) 2014-03-14 2017-01-03 International Business Machines Corporation Pipelined modular reduction and division
KR102653018B1 (ko) 2019-01-16 2024-03-29 삼성전자주식회사 랜덤 넘버를 이용하여 나머지 연산을 수행하는 보안 프로세서 및 이의 동작 방법
US11507813B2 (en) * 2020-06-01 2022-11-22 Arm Limited Modulo operation unit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980077685A (ko) * 1997-04-22 1998-11-16 구자홍 키 생성 방법 및 장치와 그에 의해 생성된 키를 이용한 암호화 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4550339A (en) * 1983-11-21 1985-10-29 Rca Corporation Binary divider as for a digital auto flesh circuit
GB8815868D0 (en) * 1988-07-04 1988-08-10 British Aerospace Digital signal processing
US5237525A (en) * 1992-06-01 1993-08-17 Motorola, Inc. In a data processor an SRT divider having a negative divisor sticky detection circuit
JP3506753B2 (ja) * 1994-02-28 2004-03-15 富士通株式会社 除算方法および除算装置
US5563818A (en) * 1994-12-12 1996-10-08 International Business Machines Corporation Method and system for performing floating-point division using selected approximation values
KR100195719B1 (ko) * 1995-12-28 1999-06-15 전주범 나눗셈기
KR100206116B1 (ko) * 1996-01-17 1999-07-01 윤종용 나머지 계산방법 및 회로
KR100853787B1 (ko) * 2004-12-31 2008-08-25 동부일렉트로닉스 주식회사 가변 진법 나눗셈 연산기
US7519649B2 (en) * 2005-02-10 2009-04-14 International Business Machines Corporation System and method for performing decimal division

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980077685A (ko) * 1997-04-22 1998-11-16 구자홍 키 생성 방법 및 장치와 그에 의해 생성된 키를 이용한 암호화 시스템

Also Published As

Publication number Publication date
EP2442225A2 (en) 2012-04-18
KR101592920B1 (ko) 2016-02-12
EP2442225A4 (en) 2013-01-02
WO2010143892A2 (ko) 2010-12-16
US8880577B2 (en) 2014-11-04
WO2010143892A3 (ko) 2011-04-28
US20120089658A1 (en) 2012-04-12

Similar Documents

Publication Publication Date Title
US7689639B2 (en) Complex logarithmic ALU
JP2008506191A5 (ko)
CN111506294A (zh) 基于块浮点的fblms算法的fpga实现装置及方法
KR20100132728A (ko) 모듈러 연산 방법 및 이를 위한 장치
JP2016062404A (ja) 演算処理方法及び演算処理装置
Higham et al. Computing the action of trigonometric and hyperbolic matrix functions
CN106681691A (zh) 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置
Nenadic et al. Fast division on fixed-point DSP processors using Newton-Raphson method
US11508263B2 (en) Low complexity conversion to Montgomery domain
US11468797B2 (en) Low complexity conversion to Montgomery domain
Wang et al. An h-p version of the continuous Petrov-Galerkin method for Volterra delay-integro-differential equations
RU2559771C2 (ru) Устройство для основного деления модулярных чисел
CN107193784B (zh) 高精度低硬件复杂度的sinc插值实现方法及系统
TW201724089A (zh) 具有滑動式二階遞迴傅立葉轉換的頻域適應性濾波系統
RU2559772C2 (ru) Устройство для основного деления модулярных чисел в формате системы остаточных классов
KR101100753B1 (ko) 부스 곱셈기
Vanwormhoudt On number theoretic Fourier transforms in residue class rings
Xu et al. Low power design for FIR filter
RU2652450C1 (ru) Устройство вычисления модулярного произведения Монтгомери
JPH0721012A (ja) 割り算器
Bowlyn et al. A novel distributed arithmetic multiplierless approach for computing complex inner products
Asif et al. An RNS based modular multiplier with reduced complexity
Preethi et al. VLSI Implementation Of Multiplier Based Block LMS Adaptive Filter
Song et al. Division-less high-radix interleaved modular multiplication using a scaled modulus
KR20020054202A (ko) 유한체내에서 다단 구조의 역수 계산 장치

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