KR100206116B1 - 나머지 계산방법 및 회로 - Google Patents

나머지 계산방법 및 회로 Download PDF

Info

Publication number
KR100206116B1
KR100206116B1 KR1019960000832A KR19960000832A KR100206116B1 KR 100206116 B1 KR100206116 B1 KR 100206116B1 KR 1019960000832 A KR1019960000832 A KR 1019960000832A KR 19960000832 A KR19960000832 A KR 19960000832A KR 100206116 B1 KR100206116 B1 KR 100206116B1
Authority
KR
South Korea
Prior art keywords
significant bit
value
bit
output
bits
Prior art date
Application number
KR1019960000832A
Other languages
English (en)
Other versions
KR970059919A (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 KR1019960000832A priority Critical patent/KR100206116B1/ko
Publication of KR970059919A publication Critical patent/KR970059919A/ko
Application granted granted Critical
Publication of KR100206116B1 publication Critical patent/KR100206116B1/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/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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 나머지 계산방법 및 회로를 공개한다. 그 방법은 피젯수를 젯수로 나누는 계산장치의 나머지 계산방법에 있어서, 상기 젯수의 1의 보수인 제1값을 구하는 단계, 상기 제1값에 상기 젯수를 더한 제2값을 구하는 단계, 상기 제2값의 2의 보수인 제3값을 구하는 단계, 상기 피젯수에 상기 제3값을 더하여 제4값을 구하는 단계, 상기 제4값에 상기 제1값을 더하여 제5값을 구하는 단계, 상기 제5값의 최상위 비트가 1이면 상기 제4값 및 제5값을 구하는 단계를 반복적으로 수행하고 상기 제5값의 최상위 비트가 0이면 연산을 종료하고 상기 제5값을 나머지로 출력하는 단계로 이루어져 있다. 그 회로는 제1선택수단, 부분 나머지 발생수단, 반전수단, 가산수단, 및 제어수단으로 구성되어 있다. 따라서, 간단한 방법 및 회로로 나머지를 구할 수 있다.

Description

나머지 계산방법 및 회로
본 발명은 연산 방법 및 회로에 관한 것으로, 특히 나눗셈의 나머지를 계산하는 나머지 계산 방법 및 회로에 관한 것이다.
신호 처리에 사용되는 많은 알고리즘들은 복잡한 계산을 간단한 연산으로 수행하여 동일한 결과를 얻기 위하여 인덱스를 변환한다. 인덱스를 변환하는 방법으로는 나머지 정리나 비트 리버스 오더(BRO; bit reverse order)와 같은 방법등이 있다.
이중 나머지를 이용한 많은 알고리즘에서는 2의 계승 뿐만아니라 다양한 크기의 인덱스를 변환하기 위하여 레딕스(radix)가 솟수등 홀수로 나눈 나머지가 필요하게 된다. 일반적인 나눗셈의 경우 젯수와 피젯수의 상위비트(즉, 젯수의 비트수)를 비교하여 피젯수를 젯수로 뺄수 있는가를 확인한다. 뺄수 있으면 보수를 취하여 더하고 그렇지 않은 경우는 피젯수를 1비트 오른쪽으로 쉬프트하여 동일한 과정을 수행한다. 그 결과로 얻어진 나머지를 비교하고 쉬프트하여 얻어진 마지막 단계의 나머지가 젯수보다 작으면 수행을 종료한다. 이러한 종료의 방식은 비교, 쉬프트, 가산의 동작을 수행하여 하드웨어를 구성하기가 어렵다는 문제점이 있다.
일반적인 나머지 계산 방법을 설명하면 다음과 같다.
피젯수를 X, 젯수를 Y, 몫을 Q, 나머지 R이라고 하면 피젯수 X는 다음과 같이 표시된다.
예를 들어, 피젯수 X=(0110110110)2, 젯수 Y=(10001)2, 몫 Q=(11001)2, 이라고 하면 아래와 같은 방법으로 나눗셈이 된다.
상기 예에 나타낸 나머지 계산방법을 단계별로 정리하면 다음과 같다.
첫째, 젯수(Y)의 5비트와 피젯수(X)의 최상위 비트부터 5비트까지를 비교한다. 상기 예에서는 XY이다.
둘째, 피젯수가 젯수보다 작으므로, 피젯수의 최상위 비트부터 6비트와 젯수의 5비트를 비교한다. 상기 예에서는 XY이므로, 이때, 피젯수(X)를 쉬프트 라이트하고 몫(Q)=1을 넣는다. 뺄셈을 수행한다.
세째, 뺄셈의 결과 나온 부분 나머지와 젯수(Y)를 비교한다. 부분 나머지가 젯수(Y)보다 크므로 쉬프트 없이 뺄샘을 수행한다. Q=1
네째, 부분 나머지가 젯수(Y)보다 작으므로 쉬프트 라이트한다. Q=0을 넣는다.
다섯째, 네째 단계를 반복 수행한다.
여섯째, 세번째 단계를 반복 수행한다.
이와 같이 종래의 나머지 계산 방법은 젯수와 피젯수를 비교하여 그 결과에 따라, 쉬프트 라이트할 것인지, 뺄셈을 수행할 것인지를 결정하며 한 단계식 반복적으로 수행한다.
따라서, 본 발명의 목적은 일반적인 나머지 계산에서 사용되는 젯수의 부수와 피젯수를 더하기 전에 비교하는 단계를 없앰으로써 간단하게 나눗셈의 나머지를 계산할 수 있는 나머지 계산 방법을 제공하는데 있다.
본 발명의 다른 목적은 하드웨어 구성이 간단한 나머지 계산 회로를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 나머지 계산 방법은 피젯수를 젯수로 나누는 계산장치의 나머지 계산방법에 있어서, 상기 젯수의 1의 보수인 제1값을 구하는 단계, 상기 제1값에 상기 젯수를 더한 제2값을 구하는 단계, 상기 제2값의 2의 보수인 제3값을 구하는 단계, 상기 피젯수에 상기 제3값을 더하여 제4값을 구하는 단계, 상기 제4값에 상기 제1값을 더하여 제5값을 구하는 단계, 및 상기 제5값의 최상위 비트가 1이면 상기 제4값 및 제5값을 구하는 단계를 반복적으로 수행하고 상기 제5값의 최상위 비트가 0이면 연산을 종료하고 상기 제5값을 나머지로 출력하는 단계를 구비한 것을 특징으로 한다.
상기 다른 목적을 달성하기 위한 본 발명의 나머지 계산 회로는 피젯수 또는 궤환되는 나머지를 선택적으로 출력하기 위한 제1선택수단, 상기 제1선택수단에 의해서 선택된 데이타를 입력하여 만일 입력되는 데이타의 최하위 비트를 제외한 상위비트가 모두 1인 경우에 상기 최하위 비트는 그대로 출력하고, 상기 상위비트는 반전하여 출력하고, 만일 상기 최하위 비트를 제외한 상위비트가 모두 1이 아니고 상기 최하위 비트가 0인 경우에 상기 최하위 비트는 반전하여 출력하고, 상기 상위 비트는 그대로 출력하고, 만일 상기 최하위 비트를 제외한 상위비트가 모두 1이 아니고 상기 최하위 비트가 1인 경우에 상기 최하위 비트는 반전하여 출력하고, 상기 상위비트의 각각과 이웃하는 하위비트가 연속하는 1이면 상기 해당 상위비트를 반전하여 출력하고 그외의 경우에는 그대로 출력하여 부분 나머지를 발생하기 위한 부분 나머지 발생수단, 젯수를 반전하여 상기 젯수의 1의 보수를 출력하기 위한 반전수단, 상기 부분 나머지와 상기 젯수의 1의 보수를 가산하기 위한 가산수단, 및 상기 가산수단의 최상위 비트가 1인경우에 상기 멀티플렉서가 상기 가산수단으로부터 궤환되는 신호를 선택하도록 하기 위한 제어신호를 발생하기 위한 제어수단을 구비한 것을 특징으로 한다.
제1도은 본 발명의 나머지 계산회로의 블럭도이다.
제2도는 제1도에 나타낸 반전/쉬프트회로의 회로도이다.
첨부된 도면을 참고로 하여 본 발명의 나머지 계산 방법 및 회로를 설명하면 다음과 같다.
본 발명의 나머지 계산 회로를 설명하기 전에 그 방법을 설명하면 다음과 같다.
상기 식(1)을 각 단계별로 나누어 보면 다음과 같다.
상기 식(2)에서 첨자 i는 i번째의 뺄셈을 나타내는 것이다.
만일 식(3)에서 yi가 0 또는 1이라고 하면, 즉, 젯수가 m비트의 2진수라고 하면 연속되는 1의 Yi'은 다음의 식으로 표현된다.
Yi와 Yi'의 차이값인 Yi''를 구해보면 다음과 같다.
상기 식(5)에서 는의 1의 보수를 나타내는 것이다.
상기 식(2)를 다시 표면하면,
식(6)에서 Xi를 연속적인 1로 나눈 나머지는 다음과 같이 나타내어 진다.
즉, 연속되는 1로 나눈 나머지에서 젯수의 보수값을 더하여 원하는 나머지를 구할 수 있다.
Xi=(13)10=(1101)2, Yi=(5)10=(101)2인 경우를 예를 들어 설명하면 다음과 같다.
10진수의 계산식으로 상기 식(2)에 따라 표현해보면 다음과 같이 나타내어진다.
상기 식(9)를 상기 식(2)에 대입하여 보면, Xi는 13, Qi는 2, Yi는 7, 및 Ri'는 6이다.
나머지를 직접 구하여 보면 다음과 같다.
그래서, 13을 5로 나눈 나머지 3을 얻을 수 있다.
즉, 본 발명의 나머지를 구하는 방법은 피젯수에서 젯수의 2의 보수를 더하는 방법이 아니라 부분 나머지에 젯수의 2의 보수를 더하는 방법이다.
제1도는 본 발명의 나머지 계산회로의 블럭도로서, 멀티플렉서(10), 래치(12), 반전/쉬프트 회로(14), 인버터들(16), 전가산기(18), 및 어드레스 제어기(20)로 구성되어 있다.
멀티플렉서(10)는 제어신호에 응답하여 궤환되는 나머지(Ri, Ci) 또는 피젯수(Xi)를 선택적으로 출력한다. 래치(12)는 멀티플렉서(10)에 의해서 선택된 신호를 래치한다. 반전/쉬프트 회로(14)는 입력되는 피젯수(Xi)로 부터 부분 나머지(Ri')를 발생한다. 인버터들(16)은 젯수(Yi)를 반전하여 젯수(Yi)의 1의 보수인 신호(Yi'')를 발생한다. 전가산기(18)는 반전/쉬프트 회로(14)의 출력신호(Ri')와 인버터들(16)의 출력신호(Yi'')를 가산하여 나머지(Ci, Ri)를 발생한다. 여기에서, Ci는 나머지의 최상위 비트를 나타낸다. 어드레스 제어기(20)는 만일 나머지의 최상위 비트(Ci)가 발생하면 멀티플렉서(10)가 출력으로 부터 궤환되는 나머지를 선택하여 출력하도록 제어하고, 또한, 반전/쉬프트 회로(14)를 제어한다.
반전/쉬프트 회로(14)는 피젯수(Xi)에 대한 부분 나머지(Ri')의 값이 바로 출력되게끔 하기 위한 회로이다.
제2도는 제1도에 나타낸 반전/쉬프트 회로의 회로도로서, 인버터들(40,44,48,60), AND게이트들(42,46,50), OR게이트(52), 및 멀티플렉서들(54,56,58,62,64,66,68)로 구성되어 있다. 제2도에 나타낸 회로는 본 발명의 반전/쉬프트 회로의 일실시예로서, 4비트의 피젯수(Xi(a3 a2 a1 a0))를 입력하여 4비트의 부분 나머지(Ri'(r3 r2 r1 r0))를 출력하는 것을 나타내는 것이다.
인버터들(40,44,48,60)은 입력 비트(a3,a2,a1,a0)를 각각 반전한다. AND게이트들(42,46,50)은 입력 비트(a3,a2), 입력 비트(a2,a1), 입력 비트(a1,a0)를 각각 논리곱한다. OR게이트(52)는 입력 비트(a3,a2,a1)를 논리합한다. 멀티플렉서들(54,56,58)은 AND게이트들(42,46,50)의 출력신호를 각각 선택신호로 하여 인버터들(40,44,48)의 출력신호들 또는 입력 비트(a3,a2,a1)를 각각 선택적으로 출력한다. 멀티플렉서들(62,64,66,68)은 OR게이트(52)의 출력신호를 선택신호로 하여 인버터들(40,44,48)의 출력신호 및 입력 비트(a0)를 각각 출력하거나, 멀티플렉서들(54,56,58)의 출력신호 및 인버터(60)의 출력신호를 각각 출력한다.
상술한 반전/인버터 회로의 동작을 설명하면 다음과 같다.
반전/인버터 회로의 동작 모드를 다음의 4가지 경우로 구분할 수 있다.
첫째, 입력 비트(a3,a2,a1)이 모두 1인 경우
둘째, 입력 비트(a3,a2,a1)이 모두 1이 아니고, 최하위 비트(a0)가 0인 경우
세째, 입력 비트(a3,a2,a1)이 모두 1이 아니고, 최하위 비트(a0)가 0인 경우
먼저, 만일 피젯수(Xi)가 첫번째 경우와 같이 입력된다면, 입력 비트(a3,a2,a1)은 각각 반전된 값이 나오고, 최하위 비트(a0)는 그대로 출력한다.
그리고, 만일 피젯수(Xi)가 두번째 경우와 같이 입력된다면, 최하위 비트(a0)는 반전되고, 상위 비트(a3,a2,a1)는 만일 입력 비트(a0,a1)이 연속적으로 1이라면, 입력 비트(a1)의 반전된 값을 출력하고, 입력 비트(a2,a1)이 연속적으로 1이라면, 입력 비트(a2)의 반전된 값을 출력하고, 입력 비트(a3,a2)가 연속적으로 1이라면, 입력 비트(a3)의 반전된 값을 출력한다.
마지막으로, 피젯수(Xi)가 세번째 경우와 같이 입력된다면, 최하위 비트(a0)는 반전되고, 상위 비트(a3,a2,a1)는 그대로 출력된다.
상술한 실시예에서는 4비트의 경우만을 예로 들어 설명하였으나 n비트의 경우에도 본 발명의 방법을 이용하면 쉽게 구현될 수 있다.
따라서, 본 발명의 나눗셈 회로의 나머지 계산방법 및 회로는 비교나 가산과정이 필요없으므로 비교회로나 가산기 등이 필요없고, 게이트 회로와 멀티플렉서만을 이용하여 부분 나머지를 구할 수 있다. 따라서, 회로구성이 간단하여 집적화시에 칩면적을 줄일 수 있다.

Claims (2)

  1. 피젯수 또는 궤환되는 나머지를 선택적으로 출력하기 위한 제1선택수단; 상기 제1선택수단에 의해서 선택된 데이타를 입력하여 만일 입력되는 데이타의 최하위 비트를 제외한 상위비트가 모두 1인 경우에 상기 최하위 비트는 그대로 출력하고, 상기 상위비트는 반전하여 출력하고, 만일 상기 최하위 비트를 제외한 상위비트가 모두 1이 아니고 상기 최하위 비트가 0인 경우에 상기 최하위 비트는 반전하여 출력하고, 상기 상위비트는 그대로 출력하고, 만일 상기 최하위 비트를 제외한 상위비트가 모두 1이 아니고 상기 최하위 비트가 1인 경우에 상기 최하위 비트는 반전하여 출력하고, 상기 상위비트의 각각과 이웃하는 하위비트가 연속하는 1이면 상기 해당 상위비트를 반전하여 출력하고 그외의 경우에는 그대로 출력하여 부분 나머지를 발생하기 위한 부분 나머지 발생수단; 젯수를 반전하여 상기 젯수의 1의 보수를 출력하기 위한 반전수단; 상기 부분 나머지와 상기 젯수의 1의 보수를 가산하기 위한 가산수단; 및 상기 가산수단의 최상위 비트가 1인 경우에 상기 제1선택수단이 상기 가산수단으로부터 궤환되는 신호를 선택하도록 하기 위한 제어신호를 발생하기 위한 제어수단을 구비한 것을 특징으로 하는 나머지 계산회로.
  2. 제1항에 있어서, 상기 부분 나머지 계산수단은 n비트의 데이타를 반전하기 위한 n개의 반전수단; 상기 n비트의 입력 데이타의 최하위 비트를 제외한 상위비트를 논리합하기 위한 논리합수단; 상기 n비트의 입력 데이타의 상위 비트와 상기 상위 비트와 이웃하는 하위비트를 각각 논리곱하여 n-1개의 제어신호를 발생하기 위한 n-1개의 제어신호 발생수단; 상기 n-1개의 제어신호 각각에 응답하여 상기 반전수단의 출력신호를 발생하거나, 상기 n비트의 입력 데이타의 최하위 비트를 제외한 상위 비트를 선택하여 출력하기 위한 n-1개의 제2선택수단들; 및 상기 논리합수단의 출력신호에 응답하여 상기 n개의 반전수단의 최하위 비트 반전수단의 출력신호를 제외한 반전 출력신호들 및 상기 최하위 비트를 출력하거나, 상기 n-1개의 제2선택수단들의 출력신호들 및 상기 최하위 비트 반전수단의 출력신호를 출력하기 위한 n개의 제3선택수단들을 구비한 것을 특징으로 하는 나머지 계산회로.
KR1019960000832A 1996-01-17 1996-01-17 나머지 계산방법 및 회로 KR100206116B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960000832A KR100206116B1 (ko) 1996-01-17 1996-01-17 나머지 계산방법 및 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960000832A KR100206116B1 (ko) 1996-01-17 1996-01-17 나머지 계산방법 및 회로

Publications (2)

Publication Number Publication Date
KR970059919A KR970059919A (ko) 1997-08-12
KR100206116B1 true KR100206116B1 (ko) 1999-07-01

Family

ID=19449547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960000832A KR100206116B1 (ko) 1996-01-17 1996-01-17 나머지 계산방법 및 회로

Country Status (1)

Country Link
KR (1) KR100206116B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143892A3 (ko) * 2009-06-10 2011-04-28 삼성전자 주식회사 나머지 연산 방법 및 이를 위한 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160035882A (ko) * 2014-09-24 2016-04-01 (주)셀로직 나머지를 연산하는 장치 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143892A3 (ko) * 2009-06-10 2011-04-28 삼성전자 주식회사 나머지 연산 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
KR970059919A (ko) 1997-08-12

Similar Documents

Publication Publication Date Title
JP2000347836A (ja) 高次基数除算器およびその方法
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
KR100254913B1 (ko) 이진차에 대한 제로 검출
EP0642093B1 (en) Method, system and apparatus for automatically designing a multiplier circuit and multiplier circuit designed by performing said method
US5703802A (en) Method and apparatus for automatically designing logic circuit, and multiplier
KR100206116B1 (ko) 나머지 계산방법 및 회로
RU2696223C1 (ru) Арифметико-логическое устройство для формирования остатка по произвольному модулю от числа
JPH0690668B2 (ja) ファジイ演算装置
JPH0464091B2 (ko)
Kantabutra Designing optimum carry-skip adders.
JP3660075B2 (ja) 除算装置
US5781465A (en) Method and apparatus for fast carry generation detection and comparison
KR950015180B1 (ko) 고속연산형 가산기
US5978826A (en) Adder with even/odd 1-bit adder cells
Awasthi et al. Hybrid signed digit arithmetic in efficient computing: A comparative approach to performance assay
US4414642A (en) Apparatus for generating the inverse of binary numbers
EP0442220B1 (en) Decoder
RU2791440C1 (ru) Конвейерный формирователь остатков по произвольному модулю
KR0164728B1 (ko) 2진 연산처리에 있어서의 나머지를 구하는 회로
JP2705162B2 (ja) 演算処理装置
KR0161485B1 (ko) 산술 연산 장치를 이용한 부스 알고리즘 곱셈 연산 장치
JP2606339B2 (ja) 乗算器
JP3074958B2 (ja) 加算機能付きシリアル乗算器
JP3270659B2 (ja) 演算回路および演算方法
JPH0427587B2 (ko)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070327

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee