KR100451720B1 - 모듈로 연산 회로 - Google Patents

모듈로 연산 회로

Info

Publication number
KR100451720B1
KR100451720B1 KR10-2000-0060778A KR20000060778A KR100451720B1 KR 100451720 B1 KR100451720 B1 KR 100451720B1 KR 20000060778 A KR20000060778 A KR 20000060778A KR 100451720 B1 KR100451720 B1 KR 100451720B1
Authority
KR
South Korea
Prior art keywords
value
output
adder
adders
received
Prior art date
Application number
KR10-2000-0060778A
Other languages
English (en)
Other versions
KR20020030193A (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 KR10-2000-0060778A priority Critical patent/KR100451720B1/ko
Publication of KR20020030193A publication Critical patent/KR20020030193A/ko
Application granted granted Critical
Publication of KR100451720B1 publication Critical patent/KR100451720B1/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/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • 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/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders

Landscapes

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

Abstract

본 발명은 모듈로 연산회로에 관한 것으로 특히 간단한 회로 구현으로 고속연산이 가능한 모듈로 연산회로에 관한 것이다. 이와 같은 모듈로 연산회로는 제 1입력단으로 이전 가산부에서 출력된 출력값이 제 1 정수값으로 수신되고 제 2 입력단으로 설정된 제 2 정수값이 상기 이전 가산부의 제 2 입력단에 수신된 값의 산술급수로 증가한 값이 수신되며, 상기 수신된 제 1, 제 2 정수값을 가산하여 다음 가산부의 제 1 입력단으로 출력하는 복수개의 가산부와, 상기 복수개의 가산부 각각에서 출력된 출력 값에서 최대 부호비트(Most Significant Bit)를 추출하여 출력하는 복수개의 부호비트 추출부와, 상기 복수개의 부호비트 추출부에서 출력되는 부호비트를 각각 입력받아 우선순위에 따라 가장 높은 위치의 부호비트를 출력하는 우선순위 엔코더와, 상기 복수개의 가산부 각각에서 출력되는 값을 수신하고, 상기 우선순위 엔코더에서 출력되는 값에 해당하는 상기 가산부에서 수신된 값을 모듈로 값으로 출력하는 먹스(MUX)를 포함하여 구성된다.

Description

모듈로 연산 회로{Modulo operation circuit}
본 발명은 모듈로 연산을 수행하는 회로에 관한 것으로 특히 간단한 회로 구현으로 고속연산을 하기에 적당하도록 한 모듈로 연산 회로에 관한 것이다.
이하 첨부된 도면을 참조하여 종래 모듈로 연산 회로를 설명하기로 한다.
도 1은 종래 기술에 따른 모듈로 연산 회로를 나타낸 도면이다.
종래 기술에 따른 모듈로 연산 회로(1)는, 1998년 8월 11일 미국특허청(USPTO)에 특허등록(특허번호 5,793,660)된 "Circuit for finding M modulo N"로써, 이와 같은 모듈로 연산 회로(1)는 각각 2진 값으로 구성되는 m(2)과 n(3)이 정수 m에 대한 모듈로 n값을 찾기 위한 것으로 m과 n은 각각 4비트로 구성되며, 비교기(4)로 공급된다.
비교기(4)로 공급된 2진 값 m(2)과 n(3)은 3종류의 엔코딩(encoding) 출력을 갖는데, n 〉m인 경우는 0, n = 1 또는 n = m인 경우는 1, 그리고 m 〉n인 경우는 2의 값을 갖는 2비트의 출력이 제 1 먹스(14)로 입력된다.
그리고 m(2)과 n(3)은 복수개의 배율 감산기(multiplier-subtractor)(5 내지 11)로 공급되며, 배율 감산기(5 내지 11)의 출력값은 부호(sign)를 갖게 된다. 그리고 m-Nn으로 표시되는 배율 감산기(5 내지 11)는 CAD(Computer Aided Design) 프로그램을 이용하여 구현한다.
이어서 배율 감산기(5 내지 11)의 출력중 1비트의 최대 부호비트(MSB)는 우선순위 엔코더(12)에, 4비트의 최소 부호비트(LSB)는 제 2 먹스(13)에 공급된다. 이때 우선순위 엔코더(12)에서 지시하는 값에 따라 제 2 먹스(13)로 입력된 배율 감산기(5 내지 11)의 출력 값 중 하나의 배율 감산기(5 내지 11)의 최소부호비트(LSB)가 선택되어 제 1 먹스(14)로 출력된다.
즉, 제 1 먹스(14)로는 m(2) 값((0))과, 0(zero)로 표시된 4비트((1))와, 우선순위 엔코더(12)에 의해 선택된 제 2 먹스(13)의 출력((2))이 입력된다.
이때, 제 1 먹스(14)의 출력값(m mod n)(15)은 비교기(4)의 출력 코드가 0이면 m(2)이 모듈로 값으로 출력되고, 출력 코드가 1이면 4비트로 구성된 0(zero)이 모듈로 값으로 출력되며, 출력 코드가 2이면 제 2 먹스(13)에서 입력된 값이 모듈로 값으로 출력된다.
이와 같은 종래 모듈로 연산회로에 있어서는 다음과 같은 문제점이 있었다.
첫째, 복수개의 배율 감산기를 구현하기 위해서는 곱셈기가 필요하게 되고, 설계를 위하여 CAD(Computer Aided Design(Cadence Design System)) 프로그램을 사용하고 있는데, 이는 곱셈기의 설계가 쉽지 않을 뿐만 아니라 곱셈기의 특성상 모듈로 연산회로의 크기가 커지고, 긴 처리 시간을 필요로 하며 전력소모 또한 많은 문제점이 있었다.
둘째, 비교기가 n-m과 m-n 두 개의 감산기와, n=1 또는 n=m의 비교회로를 필요로 하는 문제점이 있었다.
셋째, 모듈로 연산결과가 제 1, 제 2 먹스의 두 단계를 거쳐서 결정되므로 회로가 커질뿐만 아니라 처리속도가 늦는 문제점이 있었다.
본 발명은 이와 같은 문제점을 해결하기 위하여 안출한 것으로, 회로가 단순하고, 고속연산이 가능하며 저전력 구동이 가능한 모듈로 연산회로를 제공하는 데 그 목적이 있다.
이와 같은 본 발명의 목적을 달성하기 위한 본 발명에 따른 모듈로 연산회로는 제 1입력단으로 이전 가산부에서 출력된 출력값이 제 1 정수값으로 수신되고 제 2 입력단으로 설정된 제 2 정수값이 상기 이전 가산부의 제 2 입력단에 수신된 값의 산술급수로 증가한 값이 수신되며, 상기 수신된 제 1, 제 2 정수값을 가산하여 다음 가산부의 제 1 입력단으로 출력하는 복수개의 가산부와, 상기 복수개의 가산부 각각에서 출력된 출력 값에서 최대 부호비트(Most Significant Bit)를 추출하여 출력하는 복수개의 부호비트 추출부와, 상기 복수개의 부호비트 추출부에서 출력되는 부호비트를 각각 입력받아 우선순위에 따라 가장 높은 위치의 부호비트를 출력하는 우선순위 엔코더와, 상기 복수개의 가산부 각각에서 출력되는 값을 수신하고, 상기 우선순위 엔코더에서 출력되는 값에 해당하는 상기 가산부에서 수신된 값을 모듈로 값으로 출력하는 먹스(MUX)를 포함하여 구성된다.
도 1은 종래 기술에 따른 모듈로 연산회로의 블록 구성도를 나타낸 도면
도 2는 본 발명에 따른 모듈로 연산회로의 블록 구성도를 나타낸 도면
도면의 주요 부분에 대한 부호의 설명
101, 102, 103, 10i-1 : 가산기 110 : 우선순위 엔코더
120 : 먹스(MUX)
이하, 본 발명의 바람직한 일 실시 예를 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 2는 본 발명에 따른 모듈로 연산회로를 나타낸 블록 구성도이다.
본 발명에 따른 모듈로 연산회로는 제 1입력단(+)으로는 이전 가산부에서 출력되는 출력값을 제 1 정수값으로 하여 수신하고, 제 2 입력단(-)으로는 설정된 제 2 정수값을 상기 이전 가산부의 제 2 입력단(-)에 수신된 값의 산술급수로 증가한 값으로 수신하며, 상기 수신된 제 1, 제 2 정수값을 가산하여 다음 가산부의 제 1 입력단(+)으로 출력하는 복수개의 가산부(101, 102, 103 ···10i-1)와, 상기 복수개의 가산부(101, 102, 103 ···10i-1) 각각에서 출력된 출력 값에서 최대 부호비트(Most Significant bit)를 추출하여 출력하는 복수개의 부호비트 추출부(Sign Bit)와, 상기 복수개의 부호비트 추출부(Sign Bit)에서 출력되는 부호비트를 각각 입력받아 우선순위에 따라 상기 가장 높은 위치의 부호비트를 출력하는 우선순위 엔코더(110)와, 상기 복수개 가산부(101, 102, 103 ···10i-1) 각각의 제 1 입력부(+)에 입력되는 값을 각각 수신하고, 상기 우선순위 엔코더(110)에서 출력되는 값에 해당하는 상기 가산부(101, 102, 103 ···10i-1)에서 수신된값을 모듈로 값으로 출력하는 먹스(MUX)로 구성된다.
본 발명의 실시예에서는 WCDMA 터보 부호기의 내부 인터리버(Internal Interleaver)에 사용되는 모듈로 연산회로에서 8개의 가산기(또는 감산기)를 이용한 것을 설명하며, 복수개의 가산부(101, 102, 103 ···10i-1)는 각각 가산기 또는 감산기를 이용해 구성한다.
이와 같은 모듈로 연산회로에서 연산회로는 0 또는 양수인 A와 양수인 B의 모듈로 연산을 수행한다.
여기서 가산부(101, 102, 103 ···10i-1)의 개수는 가산부(101, 102, 103 ···10i-1)의 제 1, 제 2 입력단(+,-)으로 입력되는 양수인 A와 B가 가질 수 있는 값을 고려하여 결정하게 된다. 즉, n을 1,2,3과 같이 산술급수적으로 증가시키면서 A-nB를 계산하여 모든 A와 B의 조합에서 A-iB가 음수인i를 얻으면, i개의 가산부를 사용한다. 왜냐하면 음수인 모듈로 값은 없기 때문이다.
이렇게 모듈로 연산기를 구성하면 A-nB(n=1,2, ···i-2)가 모두 양수이고, A-(i-1)B가 양수이거나 0이 되는 경우가 발생하는데, 이 경우에 A-(i-1)B가 모듈로 값이 된다.
우선 모듈로 연산을 간략히 설명하면 다음과 같다.
0 또는 양수인 A와 양수인 B가 있다고 가정할 경우, A-B가 음수이면 A가 모듈로 값이 된다. 예를 들면 3 % 5(또는 3 mod 5)의 모듈로 값은 3이 된다.
그러나 A-B가 양수 또는 0이고(음수가 아니고), A-2B가 음수이면, A-B가 모듈로 값이 된다. 예를 들면, 7 % 5인 경우에는 2가 모듈로 값이고, 5 % 5인 경우에는 0이 모듈로 값이다.
계속해서 A-B, A-2B, A-3B, ···A-(n-1)B가 음수가 아니고(양수 또는 0이고), A-nB가 음수이면 바로 앞의 경우처럼 A-(n-1)B가 모듈로 값이 된다.
따라서 우선 A-nB를 계산해야 하며, 표1과 같이 곱셈을 가산/감산으로 대체한다.
A-B A-B
A-2B (A-B)-B 또는 A-2B
A-3B (A-B)-2B 또는 (A-4B)+B
A-4B A-4B 또는 (A-2B)-2B
A-5B (A-4B)-B
A-6B (A-4B)-2B 또는 (A-8B)+2B
이와 같은 표1의 수식에서 2B,4B,8B 등은 회로의 결선을 조작하여 구현할 수 있는 것으로 추가적인 회로가 필요한 것은 아니며, 괄호('()')안에 표시한 값은 다른 가산/감산을 이용할 수 있음을 나타내고 있다.
이때, 가감산의 결과에서 최대부호비트(MSB)가 1이면 A-nB가 음수이다. 즉, 부호 비트 추출부(Sign Bit)는 가감산결과에서 최대부호비트(MSB)만을 추출하여 출력하는데 부호 비트 추출부는 개념적인 블록으로 실제로는 가감산 결과중에서 한 비트를 추출하는 역할을 한다.
그리고 우선 순위 엔코더(110)는 0번 입력이 가장 높은 우선순위를 갖는데, 0번 입력이 '1'이면(A-nB의 결과가 음수이면) 0을 먹스(120) 출력하고, 0번 입력이 '1'이 아니고, 1번 입력신호가 '1'이면 1을 먹스(120) 출력한다.
같은 방법으로 0에서 i-3 입력이 '0'이고 i-2번의 신호가 '1'이면 i-2를 먹스(120)로 출력한다. 그리고 모든 입력신호가 '0'이고 i-1번의 신호가 '1'이면 i-1을 먹스(120)로 출력한다.
그리고 먹스(120)는 우선순위 엔코더(110)의 결과를 입력받아 그에 해당하는 가산부(101, 102, 103 ···10i-1)에서의 입력을 출력하는데 그 출력이 A mod B(A % B)값이 된다.
또한 A-nB를 실제로 구현할 때는 회로의 크기와 속도 및 전력소모 등을 고려하여 가산기 또는 감산기를 선택하게 되고, WCDMA에 채택된 터보 부호기의 내부 인터리버(Internal Interleaver)에서는 예를 들면 A-2B는 "9비트-10비트"로써, 결과가 11비트인 감산기가 필요하지만 (A-B)-B는 7비트-9비트로써, 결과가 10비트인 감산기로도 구현이 가능하다. 그리고 모듈로 값은 반드시 양수이거나 0 이므로 음수가 나오는 경우는 고려하지 않아도 된다는 성질까지 고려하면 결과가 9비트인 감산기 A-B를 구현할 수 있다.
본 발명에 따른 모듈로 연산회로는 다음과 같은 효과가 있다.
첫째, 모듈로 곱셈기를 사용하지 않고 연산기 가감산기만을 이용하므로 회로의 크기를 줄일 수 있고, 속도를 개선하여 전력소모를 최소화할 수 있다.
둘째, 비교기를 없애고 및 먹스를 최소화하여 회로를 집적화함은 물론 속도개선, 전력소모의 감소가 가능하다.

Claims (2)

  1. 제 1입력단으로 이전 가산부에서 출력된 출력값이 제 1 정수값으로 수신되고 제 2 입력단으로 설정된 제 2 정수값이 상기 이전 가산부의 제 2 입력단에 수신된 값의 산술급수로 증가한 값이 수신되며, 상기 수신된 제 1, 제 2 정수값을 가산하여 다음 가산부의 제 1 입력단으로 출력하는 복수개의 가산부와;
    상기 복수개의 가산부 각각에서 출력된 출력 값에서 최대 부호비트(Most Significant Bit)를 추출하여 출력하는 복수개의 부호비트 추출부와;
    상기 복수개의 부호비트 추출부에서 출력되는 부호비트를 각각 입력받아 우선순위에 따라 가장 높은 위치의 부호비트를 출력하는 우선순위 엔코더와;
    상기 복수개의 가산부 각각에서 출력되는 값을 수신하고, 상기 우선순위 엔코더에서 출력되는 값에 해당하는 상기 가산부에서 수신된 값을 모듈로 값으로 출력하는 먹스(MUX)를 포함하여 구성됨을 특징으로 하는 모듈로 연산회로.
  2. 제 1 항에 있어서, 상기 제 1 입력단의 정수값을 A라 하고, 상기 제 2 입력단의 정수값을 B라 하며, 상기 산술급수로 증가한 값이 n인 경우,
    상기 복수개의 가산부 A-nB는 n개로 구성됨을 특징으로 하는 모듈로 연산회로.
KR10-2000-0060778A 2000-10-16 2000-10-16 모듈로 연산 회로 KR100451720B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0060778A KR100451720B1 (ko) 2000-10-16 2000-10-16 모듈로 연산 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0060778A KR100451720B1 (ko) 2000-10-16 2000-10-16 모듈로 연산 회로

Publications (2)

Publication Number Publication Date
KR20020030193A KR20020030193A (ko) 2002-04-24
KR100451720B1 true KR100451720B1 (ko) 2004-10-08

Family

ID=19693716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0060778A KR100451720B1 (ko) 2000-10-16 2000-10-16 모듈로 연산 회로

Country Status (1)

Country Link
KR (1) KR100451720B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2762544C1 (ru) * 2021-04-02 2021-12-21 федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" Умножитель по модулю пять

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101318992B1 (ko) * 2009-12-16 2013-10-16 한국전자통신연구원 모듈로 n 연산방법 및 그 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007009A (en) * 1987-11-30 1991-04-09 Indata Systems Kabushiki Kaisha Non-recovery parallel divider circuit
US5016210A (en) * 1989-11-15 1991-05-14 United Technologies Corporation Binary division of signed operands
KR910018898A (ko) * 1990-04-03 1991-11-30 정호선 나눗셈기
US5784307A (en) * 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers
US5793660A (en) * 1997-04-14 1998-08-11 Hewlett-Packard Company Circuit for finding m modulo n

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007009A (en) * 1987-11-30 1991-04-09 Indata Systems Kabushiki Kaisha Non-recovery parallel divider circuit
US5016210A (en) * 1989-11-15 1991-05-14 United Technologies Corporation Binary division of signed operands
KR910018898A (ko) * 1990-04-03 1991-11-30 정호선 나눗셈기
US5784307A (en) * 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers
US5793660A (en) * 1997-04-14 1998-08-11 Hewlett-Packard Company Circuit for finding m modulo n

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2762544C1 (ru) * 2021-04-02 2021-12-21 федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" Умножитель по модулю пять

Also Published As

Publication number Publication date
KR20020030193A (ko) 2002-04-24

Similar Documents

Publication Publication Date Title
US20210349692A1 (en) Multiplier and multiplication method
US6601077B1 (en) DSP unit for multi-level global accumulation
CN101739231A (zh) 布斯-华莱士树型乘法器
EP0921462B1 (en) Arithmetic unit
TWI416959B (zh) 編碼視訊壓縮的方法與系統
KR100451720B1 (ko) 모듈로 연산 회로
CN115034163B (zh) 一种支持两种数据格式切换的浮点数乘加计算装置
KR0146656B1 (ko) 다치 논리합 연산장치
CN110890895B (zh) 借助表示法变换执行极化解码的方法及相关极化解码器
Armand et al. Low power design of binary signed digit residue number system adder
KR100679324B1 (ko) 다중 비교기
EP0470793B1 (en) Digital signal orthogonal transformer apparatus
CN109190084B (zh) 一种正余弦计算的硬件实现方法
CN114895868B (zh) 基于两位商计算的除法运算单元及除法器
KR20020024937A (ko) 입력연산자 정규화를 이용한 테이블참조 기반 고속통신용위상계산기
CN117521581B (zh) 一种除法器及其运用方法、除法运算系统
US20220091820A1 (en) Storage medium and operation device
RU2709653C1 (ru) Двоичный вычитатель
JPH11237973A (ja) 乗算器
US20050171985A1 (en) Data coding method and corresponding data processing unit having a coding/decoding circuit
CN112422979B (zh) 应用于离散及逆离散正弦余弦变换的运算电路
KR100474685B1 (ko) 휴대용기기에 사용되는 저전력 아날로그/디지털 컨버터장치 및 동작 방법
KR950010822B1 (ko) 다치논리와 2치논리의 배타적 논리합 연산기 및 연산방법
SU1658142A1 (ru) Сумматор по модулю п ть
CN117111885A (zh) 一种三角函数计算方法、装置、计算机设备及微处理器

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080618

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee