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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/727—Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting 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
본 발명은 모듈로 연산을 수행하는 회로에 관한 것으로 특히 간단한 회로 구현으로 고속연산을 하기에 적당하도록 한 모듈로 연산 회로에 관한 것이다.
이하 첨부된 도면을 참조하여 종래 모듈로 연산 회로를 설명하기로 한다.
도 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 정수값으로 수신되고 제 2 입력단으로 설정된 제 2 정수값이 상기 이전 가산부의 제 2 입력단에 수신된 값의 산술급수로 증가한 값이 수신되며, 상기 수신된 제 1, 제 2 정수값을 가산하여 다음 가산부의 제 1 입력단으로 출력하는 복수개의 가산부와;상기 복수개의 가산부 각각에서 출력된 출력 값에서 최대 부호비트(Most Significant Bit)를 추출하여 출력하는 복수개의 부호비트 추출부와;상기 복수개의 부호비트 추출부에서 출력되는 부호비트를 각각 입력받아 우선순위에 따라 가장 높은 위치의 부호비트를 출력하는 우선순위 엔코더와;상기 복수개의 가산부 각각에서 출력되는 값을 수신하고, 상기 우선순위 엔코더에서 출력되는 값에 해당하는 상기 가산부에서 수신된 값을 모듈로 값으로 출력하는 먹스(MUX)를 포함하여 구성됨을 특징으로 하는 모듈로 연산회로.
- 제 1 항에 있어서, 상기 제 1 입력단의 정수값을 A라 하고, 상기 제 2 입력단의 정수값을 B라 하며, 상기 산술급수로 증가한 값이 n인 경우,상기 복수개의 가산부 A-nB는 n개로 구성됨을 특징으로 하는 모듈로 연산회로.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2762544C1 (ru) * | 2021-04-02 | 2021-12-21 | федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" | Умножитель по модулю пять |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101318992B1 (ko) * | 2009-12-16 | 2013-10-16 | 한국전자통신연구원 | 모듈로 n 연산방법 및 그 장치 |
Citations (5)
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 |
-
2000
- 2000-10-16 KR KR10-2000-0060778A patent/KR100451720B1/ko not_active IP Right Cessation
Patent Citations (5)
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)
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 |