KR20170133787A - Apparatus and Method for Binary Calculation with Divisor 3 - Google Patents

Apparatus and Method for Binary Calculation with Divisor 3 Download PDF

Info

Publication number
KR20170133787A
KR20170133787A KR1020160065003A KR20160065003A KR20170133787A KR 20170133787 A KR20170133787 A KR 20170133787A KR 1020160065003 A KR1020160065003 A KR 1020160065003A KR 20160065003 A KR20160065003 A KR 20160065003A KR 20170133787 A KR20170133787 A KR 20170133787A
Authority
KR
South Korea
Prior art keywords
value
dividend
quotient
calculating
remainder
Prior art date
Application number
KR1020160065003A
Other languages
Korean (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 KR1020160065003A priority Critical patent/KR20170133787A/en
Publication of KR20170133787A publication Critical patent/KR20170133787A/en

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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/405Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay binary
    • 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/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/44Multiplying; 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/46Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
    • G06F7/462Multiplying; dividing

Landscapes

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

Abstract

The present invention relates to a method for binary operations with divisor 3. The method includes: a step of dividing an inputted dividend (y) by modular 3 to calculate the rest (r); a step of deducting the rest (r) from the dividend (y) to calculate a value (y) which is able to be divided by the divisor 3; a step of searching for a value (b), which becomes a 2^N+1 when multiplied by 3, considering a bit number (n) of the dividend (y); and a step of calculating a share (x), which is calculated by dividing the dividend (y) by 3, by conducting a modular operation with a value calculated by multiplying the value (y) by the value (b). As such, the present invention is capable of considerably reducing the complexity of hardware and time for processing operations.

Description

3으로 나누는 이진 연산 장치 및 방법{Apparatus and Method for Binary Calculation with Divisor 3}[0001] Apparatus and Method for Binary Calculation with Divisor [

본 발명은 이진법(비트연산)을 사용하는 컴퓨터 프로그래밍과 하드웨어에서 나누기 연산 장치 및 방법에 관한 것으로, 특히 임의의 수를 3으로 나누는 특수한 경우에 관한 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and a method for computing division in hardware and computer programming using a binary method (bit operation), and more particularly to an apparatus and a method for a special case in which arbitrary numbers are divided by three.

나누기 연산에 대한 구현 방법은 기존에 이미 다양하게 나와 있으며, 특정 수로 나누기보다는 일반적인 나눗셈을 구현하는 방법이 대부분이다. 나눗셈 연산의 가장 간단한 접근 방법은 피제수(dividend)를 제수(divisor)로 반복적으로 빼는 방법인데, 이 경우 반복 연산 때문에 대기 지연(latency)을 피할 수 없으며 피제수와 제수의 숫자 크기 차이에 따라 대기 지연(latency) 값의 변동이 크다.The implementation method for the divide operation is already various, and most of the methods to implement the general division rather than the division by a certain number. The simplest approach to divide operations is to subtract divisor by divisor. In this case, latency is inevitable due to iterative operation. The number of divisors, latency value is large.

한편, 3은 나누는 수 중에 간단하게 처리할 수 있는 2를 제외한 가장 작은 값으로, 2를 제외한 최소의 소수로 나눗셈 연산에 대한 요구 빈도수는 높은 편이다. 그런데, 3은 나누는 수 중에 간단하게 처리할 수 있는 2를 제외한 가장 작은 값이므로 종래의 나눗셈 연산 방법이나 장치를 이용하면 피제수가 조금만 커져도 지연이 커지고 그 값 또한 피제수의 크기에 따라 달라져서 연산 처리의 효율성이 저하된다. On the other hand, 3 is the smallest value except the 2 that can be easily processed in the dividing number, and the minimum frequency of the divide operation is the minimum except for 2. However, since 3 is the smallest value except for 2 that can be simply processed in the dividing number, when the conventional dividing operation method or apparatus is used, even if the dividend is slightly increased, the delay increases and the value also varies depending on the size of the dividend, .

본 발명은 3으로 나누는 연산을 연산의 복잡도를 줄이는 것은 물론 대기 지연을 최소화하는 동시에 어떤 크기의 수로 나누든 일정하게 하는 3으로 나누는 이진 연산 방법 및 장치를 제공한다. The present invention provides a binary operation method and apparatus for dividing a division operation into three, which reduces the complexity of the operation, minimizes the waiting delay, and divides the division into three by a certain number.

본 발명은 3으로 나누는 이진 연산 방법으로, 입력된 피제수(y)를 모듈러 3 연산하여 나머지(r)를 산출하는 단계와, 상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하는 단계와, 상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때

Figure pat00001
의 꼴이 되는 값(b)를 검색하는 단계와, 상기 값(y')에 상기 값(b)를 곱한 값을 모듈러
Figure pat00002
연산하여 상기 피제수(y)를 3으로 나눈 몫(x)을 산출하는 단계를 포함한다.The present invention relates to a method of dividing by 3 a method of calculating modulo 3 of an inputted dividend y to calculate the remainder r, calculating the remaining sum r by subtracting the calculated remainder r from the dividend y, Calculating a divided value y 'by multiplying 3 by the number of bits (n) of the dividend y,
Figure pat00001
Searching for a value (b) that is a form of a modulo (x, y); and modulo a value obtained by multiplying the value (y '
Figure pat00002
And calculating a quotient (x) by dividing the dividend (y) by three.

본 발명은 3으로 나누는 이진 연산 장치로, 입력된 피제수(y)를 모듈러 3 연산하여 나머지(r)를 산출하는 나머지 산출부와, 상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하고, 상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때

Figure pat00003
의 꼴이 되는 값(b)를 검색하고, 상기 값(y')에 상기 값(b)를 곱한 값을 모듈러
Figure pat00004
연산하여 상기 피제수(y)를 3으로 나눈 몫(x)을 산출하는 몫 산출부를 포함한다. The present invention relates to a binary arithmetic unit for dividing into three, comprising: a remainder calculating unit for calculating modulo 3 of an inputted dividend y to calculate a remainder (r); a subtracter for subtracting the calculated remainder (r) (Y ') divided by 3 and taking the bit number (n) of the dividend y as a reference, when multiplying by 3
Figure pat00003
(B) which is a form of the modulo (y) is multiplied by the value (b)
Figure pat00004
And calculating a quotient x by dividing the dividend y by three.

본 발명은 간단한 곱셈과 모듈러(modulo) 연산만으로 3 나누기 연산을 수행할 뿐만 아니라, 피제수의 비트수로만으로 곱하는 수를 간단하게 결정할 수 있어서 하드웨어의 복잡도와 연산 처리 시간을 획기적으로 줄일 수 있다.The present invention can not only perform a 3-division operation by a simple multiplication and a modulo operation but also can easily determine the number of times multiplied by the number of bits of a dividend, thereby drastically reducing hardware complexity and processing time.

도 1은 본 발명의 일 실시 예에 따른 3으로 나누는 이진 연산 장치의 블록 구성도이다.
도 2는 3을 곱했을 때

Figure pat00005
의 꼴이 되는 값(b)를 검색하는 과정을 설명하기 위한 도면이다.
도 3은 b에 3을 곱하여 a가 되는 과정을 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 3으로 나누는 이진 연산 방법을 설명하기 위한 순서도이다.
도 5는 본 발명에 따라 3으로 나누는 연산을 수행한 예들을 도시한 도면이다.FIG. 1 is a block diagram of a binary division unit for division into three according to an embodiment of the present invention.
Fig. 2 shows a graph
Figure pat00005
(B) which is a form of a search result.
3 is a diagram showing a process of multiplying b by 3 to obtain a.
FIG. 4 is a flowchart for explaining a 3-division binary operation method according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating examples of performing an operation of dividing by 3 according to the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. , Which may vary depending on the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.Each block of the accompanying block diagrams and combinations of steps of the flowcharts may be performed by computer program instructions (execution engines), which may be stored in a general-purpose computer, special purpose computer, or other processor of a programmable data processing apparatus The instructions that are executed through the processor of the computer or other programmable data processing equipment will generate means for performing the functions described in each block or flowchart of the block diagram.

이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of the flowchart.

그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.And computer program instructions may be loaded onto a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the data processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.Also, each block or step may represent a portion of a module, segment, or code that includes one or more executable instructions for executing the specified logical functions, and in some alternative embodiments, It should be noted that functions may occur out of order. For example, two successive blocks or steps may actually be performed substantially concurrently, and it is also possible that the blocks or steps are performed in the reverse order of the function as needed.

이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the following embodiments of the present invention may be modified into various other forms, and the scope of the present invention is not limited to the embodiments described below. The embodiments of the present invention are provided to enable those skilled in the art to more fully understand the present invention.

도 1은 본 발명의 일 실시 예에 따른 3으로 나누는 이진 연산 장치의 블록 구성도이다.FIG. 1 is a block diagram of a binary division unit for division into three according to an embodiment of the present invention.

도 1을 참조하면, 3으로 나누는 이진 연산 장치(이하 '장치'라 기재함)(100)는 나머지 산출부(110) 및 몫 산출부(120)를 포함한다. 부가적으로, 메모리(130)를 더 포함할 수 있다.Referring to FIG. 1, a binary operation unit (hereinafter referred to as a "device") 100 divided by 3 includes a remaining calculation unit 110 and a quotient calculation unit 120. In addition, the memory 130 may further include a memory.

나머지 산출부(110)는 피제수(y)가 입력됨에 따라, 모듈러 3 연산(mod(y, 3))하여 나머지(r)를 산출한다. 여기서, 모듈로 3 연산은 국내특허 KR 10-1318992(모듈로 N 연산방법 및 그 장치)을 참조할 수 있다. The remaining calculation unit 110 calculates modulus (3) (mod (y, 3)) to calculate the remainder (r) as the dividend y is input. Here, the modulo 3 operation can be referred to the domestic patent KR 10-1318992 (modulo N operation method and its apparatus).

몫 산출부(120)는 피제수(y)를 3으로 나눈 몫(x)을 산출한다. 즉, 피제수(y)는 하기의 <수학식 1>과 같이 표현될 수 있다.The quotient calculating unit 120 calculates the quotient x by dividing the dividend y by three. That is, the dividend y can be expressed by Equation (1) below.

<수학식 1>&Quot; (1) &quot;

y=3x+ry = 3x + r

몫 산출부(120)는 우선 피제수(y)에서 산출된 나머지(r)를 감하여 3으로 나누어지는 값(y')을 산출한다. 즉, 값(y')는 하기의 <수학식 2>와 같이 표현될 수 있다. The quotient calculating unit 120 first subtracts the remainder r calculated from the dividend y and calculates a value y 'divided by three. That is, the value y 'can be expressed as Equation (2) below.

<수학식 2>&Quot; (2) &quot;

y'=y-r=y-mod(y, 3)=3xy '= y-r = y-mod (y, 3) = 3x

그런 후, 몫 산출부(120)는 피제수(y)의 이진 비트수(n)를 고려하여, 3을 곱했을 때

Figure pat00006
의 꼴이 되는 값(b)를 검색한다. 일 실시 예에 따라, N은 2m+3이 되는 조건을 만족하는 수일 수 있다. 따라서, 하기에서는 N이 2m+3인 것으로 설명하기로 한다. 즉, 몫 산출부(120)는 하기의 <수학식 3>을 만족하는 b를 검색한다. Then, the quotient calculating unit 120 calculates the number of binary bits (n) of the dividend y by multiplying 3
Figure pat00006
(B), which is the shape of the image. According to one embodiment, N may be a number satisfying the condition that 2m + 3. Therefore, in the following description, it is assumed that N is 2m + 3. That is, the quotient calculating unit 120 searches b that satisfies the following Equation (3).

<수학식 3>&Quot; (3) &quot;

a=3b=

Figure pat00007
a = 3b =
Figure pat00007

또한, 일 실시 예에 따라, 몫 산출부(120) 상세하게는 2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정하고, 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택한다. Further, according to one embodiment, the quotient calculating unit 120, more specifically, determines m satisfying the condition that the value of 2m + 3 is greater than or equal to the value of n-1, and repeats '10' The binarized b whose number of times is equal to the determined m is selected.

또한, 일 실시 예에 따라, 메모리(130)는 3을 곱했을 때

Figure pat00008
의 꼴이 되는 미리 계산된 값(b)들을 저장하는데, 몫 산출부(120)는 저장된 값(b) 들 중 하나를 검색할 수도 있다. 이에 대한 상세한 설명은 도 2 내지 도 3을 참조하여 후술하기로 한다.Further, according to one embodiment, the memory 130 may be programmed
Figure pat00008
(B) that is a form of the stored value (b), and the quotient calculation unit 120 may retrieve one of the stored values (b). A detailed description thereof will be given later with reference to FIG. 2 to FIG.

마지막으로, 몫 산출부(120)는 값(y')에 산출된 값(b)를 곱한 값을 모듈러

Figure pat00009
연산하여 피제수(y)를 3으로 나눈 몫(x)을 산출한다. 즉, 상기 <수학식 2>의 양변에 산출된 값(b)를 곱하고, <수학식 3>을 대입하면 하기의 <수학식 4>와 같이 유도될 수 있다.Finally, the quotient calculating unit 120 multiplies the value (y ') by the calculated value (b)
Figure pat00009
And calculates the quotient x by dividing the dividend y by 3. That is, by multiplying the value (b) calculated on both sides of Equation (2) and substituting Equation (3), it can be derived as Equation (4).

<수학식 4>&Quot; (4) &quot;

y'b=3xb=x3b=xa=x(

Figure pat00010
) y'b = 3xb = x3b = xa = x (
Figure pat00010
)

상기 <수학식 4>의 양변에 mod

Figure pat00011
연산을 하면 몫 x는 하기의 <수학식 5>와 같이 간단히 산출될 수 있다.In the above equation (4), mod
Figure pat00011
Quot ;, the quotient x can be simply calculated as shown in Equation (5) below.

<수학식 5>Equation (5)

x= y'b mod

Figure pat00012
x = y'b mod
Figure pat00012

도 2는 3을 곱했을 때

Figure pat00013
의 꼴이 되는 값(b)를 검색하는 과정을 설명하기 위한 도면이고, 도 3은 b에 3을 곱하여 a가 되는 과정을 도시한 도면이다.Fig. 2 shows a graph
Figure pat00013
FIG. 3 is a diagram illustrating a process of multiplying b by 3 to obtain a value a.

도 2를 참조하면, 우측에는

Figure pat00014
의 꼴이 되는 a 값들이 도시되어 있고, 좌측에는 3을 곱하여 우측의 a 값들 되는 b 값들이 도시되어 있다. 도 2 및 도 3을 참조하면, a는 하기의 <수학식 6>과 같이 표현될 수 있다. Referring to FIG. 2,
Figure pat00014
And b values obtained by multiplying the left side by 3 and the a values on the right side are shown. Referring to FIG. 2 and FIG. 3, a can be expressed by Equation (6) below.

<수학식 6>&Quot; (6) &quot;

Figure pat00015
Figure pat00015

<수학식 6>을 참조하면, N=2m+3이 됨을 알 수 있다. 또한, a는 modulo

Figure pat00016
연산을 이용하면 1이 되므로 곱셈연산에 유용하게 활용할 수 있다. 따라서, 본 발명에서는 이러한 성질을 이용하여 전술한 바와 같이 <수학식 5>에서 modulo
Figure pat00017
를 이용하여 x를 용이하게 산출한다. 따라서, 본 발명에서 3을 곱했을 때
Figure pat00018
의 꼴이 되는 값(b)을 검색하는 것이다. Referring to Equation (6), it can be seen that N = 2m + 3. Also, a is modulo
Figure pat00016
If it is 1, it can be used for multiplication. Therefore, in the present invention, as described above, using this property, modulo
Figure pat00017
To easily calculate x. Therefore, in the present invention, when multiplying by 3
Figure pat00018
(B), which is a form of the search result.

또한, 도 3을 참조하면, m은 이진화된 b의 값에서 상위 비트에서부터 '10'이 반복되는 횟수임을 알 수 있다. 즉, b가 '11'일 경우, a는 '

Figure pat00019
'이므로, m은 '0'이 되는데, b에서 '10'이 반복되는 횟수가 '0'이므로 m의 값과 동일함을 알 수 있다. 또한, 즉, b가 '1011'일 경우, a는 '
Figure pat00020
'이므로, m은 '1'이 되는데, b에서 '10'이 반복되는 횟수가 '1'이므로 m의 값과 동일함을 알 수 있다. Also, referring to FIG. 3, it can be seen that m is the number of times '10' is repeated from the upper bit in the value of binarized b. That is, when b is' 11 ', a is'
Figure pat00019
', So m is 0, which is equal to the value of m since the number of times'10' is repeated in 'b'is' 0 '. In other words, when b is' 1011 ', a is'
Figure pat00020
', So m is equal to' 1 ', and the number of times'10' is repeated in 'b'is' 1 '.

도 4는 본 발명의 일 실시 예에 따른 3으로 나누는 이진 연산 방법을 설명하기 위한 순서도이다.FIG. 4 is a flowchart for explaining a 3-division binary operation method according to an embodiment of the present invention.

도 4를 참조하면, 장치(100)는 상기 <수학식 1>과 같이 표현될 수 있는 피제수(y)을 3으로 나누도록 요청됨(S410)에 따라, 모듈러 3 연산(mod(y, 3))하여 나머지(r)를 산출한다(S420). Referring to FIG. 4, the apparatus 100 receives a modulo 3 operation mod (y, 3) according to a request to divide the dividend y, which can be expressed as Equation (1) ) To calculate the remainder r (S420).

장치(100)는 상기 <수학식 2>와 같이 표현되어지는 피제수(y)에서 산출된 나머지(r)를 감하여 3으로 나누어지는 값(y')을 산출한다(S430). The apparatus 100 calculates a value y 'divided by 3 by subtracting the remainder r calculated from the dividend y expressed by Equation (2) (S430).

그런 후, 장치(100)는 피제수(y)의 이진 비트수(n)를 고려하여, 3을 곱했을 때

Figure pat00021
의 꼴이 되는 값(b)를 검색한다(S440~S450). 일 실시 예에 따라, N은 2m+3이 되는 조건을 만족하는 수일 수 있다. 즉, 장치(100)는 상기의 <수학식 3>을 만족하는 b를 검색한다. Then, the apparatus 100 considers the number of binary bits (n) of the dividend y and multiplies it by 3
Figure pat00021
(B) (S440 to S450). According to one embodiment, N may be a number satisfying the condition that 2m + 3. That is, the apparatus 100 searches b that satisfies Equation (3).

일 실시 예에 따라, 장치(100)는 2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정(S440)한다. 즉, y의 비트수가 a의 비트수보다 작으면 된다. 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택한다(S450). 또한, 일 실시 예에 따라, 메모리(130)는 3을 곱했을 때

Figure pat00022
의 꼴이 되는 미리 계산된 값(b)들을 저장하는데, 몫 산출부(120)는 저장된 값(b) 들 중 하나를 검색할 수도 있다. According to one embodiment, the apparatus 100 determines m that satisfies the condition that the value of 2m + 3 is greater than or equal to the value of n-1 (S440). That is, the number of bits of y may be smaller than the number of bits of a. The binarized b whose number of times '10' is repeated from the upper bit is equal to the determined m is selected (S450). Further, according to one embodiment, the memory 130 may be programmed
Figure pat00022
(B) that is a form of the stored value (b), and the quotient calculation unit 120 may retrieve one of the stored values (b).

마지막으로, 장치(100)는 값(y')에 산출된 값(b)를 곱한 값을 mod

Figure pat00023
연산하여 피제수(y)를 3으로 나눈 몫(x)을 산출한다(S460~S480). 즉, <수학식 2>의 양변에 산출된 값(b)를 곱하고(S460), <수학식 3>을 대입하여 상기의 <수학식 4>와 같이 유도하고(S470), 상기 <수학식 4>의 양변에 mod
Figure pat00024
연산을 하면 몫 x는 상기의 <수학식 5>와 같이 간단히 산출한다(S480).Finally, the device 100 multiplies the value (y ') by the calculated value (b)
Figure pat00023
And calculates the quotient x by dividing the dividend y by 3 (S460 to S480). That is, the value b calculated on both sides of Equation (2) is multiplied (S460), and Equation (3) is substituted into Equation (4) > Mod on both sides
Figure pat00024
If the calculation is performed, the quotient x is simply calculated as in Equation (5) above (S480).

도 5는 본 발명에 따른 3으로 나누는 연산을 수행한 예들을 도시한 도면이다.FIG. 5 is a diagram illustrating examples of performing a divide-by-three operation according to the present invention.

도 5를 참조하면, 장치(100)가 피제수(y)으로 '113'이 입력됨에 따라, 3으로 나누었을 때 몫(x)와 나머지(r)을 구하는 예들이 도시되어 있다. Referring to FIG. 5, examples in which the quotient x and the remainder r are obtained when the apparatus 100 divides by 3 as '113' is input to the dividend y.

우선, (a)를 살펴보면, 장치(100)는 모듈러 3 연산(mod(113, 3))하여 나머지(r) '2'를 산출한다. 그런 후, 장치(100)는 y인 '113'에서 산출된 나머지(r)인 '2'를 감하여 3으로 나누어지는 값(y')인 '43' 을 산출한다. 그런 후, 장치(100)는 '113'의 이진 비트수(n)인 '7'을 고려하여, 2m+3의 값이 n-1의 값 이상이 되는 조건을 만족하도록 m을 결정한다. 즉, m은 '2'로 결정될 수 있다. 그런 후, 장치(100)는 도 2에 도시된 3을 곱했을 때

Figure pat00025
의 꼴이 되는 값들(b) 중 하나를 '10'이 반복되는 횟수가 m의 값 '2'와 동일한 '43'을 검색한다. 그런 후, 장치(100)는 값(y')인 '111'에 검색된 값(b)인 '43'을 곱하여 '4773'을 산출하고, '4773'값에 mod
Figure pat00026
연산하여 몫(x)으로 '37'이라는 올바른 값을 산출한다. 이때, 장치(100)는 ‘4773'의 이진수에서 하위 '2m+3' 비트인 '7'에 해당하는 수인 '37'을 몫으로 산출하게 된다. 한편, (b)를 참조하면, m의 값을 '1'로 잘못 결정함에 따라 오류가 발생된 예를 도시하고 있다. 즉, m이 1로 결정됨에 따라, 하위 '2m+3' 비트인 '5'에 해당하는 수를 읽으면 5가 되어 원래의 몫인 37과 전혀 다른 값이 된다. 모듈로 연산을 이용한 것이기 때문에 값이 반복되어야 하는데, 도 5를 참조하면, 올바른 값인 (a)의 경우에는 마지막 줄에 음영 표시한대로 2m+3 비트 단위로 동일한 값이 반복되는 반면, 오류가 있는 (b)의 경우에는 반복되지 않음을 확인할 수 있다.First, looking at (a), the device 100 computes the remainder (r) '2' by performing a Modular 3 operation (mod 113, 3). Then, the apparatus 100 calculates' 43 'which is a value (y') divided by 3 by subtracting '2' which is the remainder (r) calculated from '113' y. Then, the apparatus 100 determines m to satisfy the condition that the value of 2m + 3 is equal to or greater than the value of n-1, taking into consideration '7' which is the number (n) of binary bits of '113'. That is, m may be determined as '2'. Then, the apparatus 100, when multiplying 3 shown in Fig. 2
Figure pat00025
The number of times '10' is repeated is '43' which is the same as the value '2' of m. Then, the apparatus 100 calculates' 4773 'by multiplying' 111 'as the value (y') by '43' as the retrieved value (b)
Figure pat00026
And calculates a correct value of '37' as a quotient (x). At this time, the device 100 calculates' 37 'corresponding to' 7 ', which is the lower 2m + 3' bit, from the binary number of '4773' as a quotient. Referring to (b), an error is generated by erroneously determining the value of m as '1'. That is, when m is determined to be 1, if the number corresponding to '5', which is the lower 2m + 3 bit, is read, the value becomes 5, which is completely different from the original quotient of 37. Referring to FIG. 5, in the case of the correct value (a), the same value is repeated in units of 2m + 3 bits as shaded on the last line, while the same value is repeated In the case of b), it can be confirmed that it is not repeated.

Claims (8)

입력된 피제수(y)를 모듈러 3 연산하여 나머지(r)를 산출하는 단계와,
상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하는 단계와,
상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때
Figure pat00027
의 꼴이 되는 값(b)를 검색하는 단계와,
상기 값(y')에 상기 값(b)를 곱한 값을 모듈러
Figure pat00028
연산하여 상기 피제수(y)를 3으로 나눈 몫(x)을 산출하는 단계를 포함함을 특징으로 하는 3으로 나누는 이진 연산 방법.
Calculating moduler 3 of the inputted dividend y to calculate the remainder r;
Subtracting the calculated remainder (r) from the dividend (y) and calculating a value (y ') divided by a divisor 3;
When the number of bits (n) of the dividend y is taken into account and multiplied by 3
Figure pat00027
Searching for a value b that is an approximation of &lt; RTI ID = 0.0 &gt;
The value obtained by multiplying the value (y ') by the value (b)
Figure pat00028
And calculating a quotient (x) by dividing the dividend (y) by three.
제1 항에 있어서, 상기 N은
2m+3이 되는 조건을 만족하는 수임을 특징으로 하는 3으로 나누는 이진 연산 방법.
2. The method of claim 1,
2 &lt; m &gt; + 3.
제2 항에 있어서, 상기 검색하는 단계는
2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정하는 단계와,
상기 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택하는 단계를 포함함을 특징으로 하는 3으로 나누는 이진 연산 방법.
3. The method of claim 2,
Determining m that satisfies a condition that a value of 2m + 3 is equal to or greater than a value of n-1;
And selecting a binarized b whose number of times '10' is repeated from the upper bit is equal to the determined number m.
제1 항에 있어서,
3을 곱했을 때
Figure pat00029
의 꼴이 되는 값(b)들을 미리 계산하여 저장하는 단계를 더 포함하고,
상기 검색하는 단계는
상기 저장된 값(b) 들 중 하나를 검색함을 특징으로 하는 3으로 나누는 이진 연산 방법.
The method according to claim 1,
When you multiply by 3
Figure pat00029
(B), which is a form of &lt; RTI ID = 0.0 &gt;
The searching step
And searching for one of the stored values (b).
입력된 피제수(y)를 모듈러 3 연산하여 나머지(r)를 산출하는 나머지 산출부와,
상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하고, 상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때
Figure pat00030
의 꼴이 되는 값(b)를 검색하고, 상기 값(y')에 상기 값(b)를 곱한 값을 모듈러
Figure pat00031
연산하여 상기 피제수(y)를 3으로 나눈 몫(x)을 산출하는 몫 산출부를 포함함을 특징으로 하는 3으로 나누는 이진 연산 장치.
A remaining calculation unit for modulo-3 calculation of the inputted dividend y to calculate the remainder r,
The value y 'divided by the divisor 3 is calculated by subtracting the calculated remainder r from the dividend y and when the number of bits is multiplied by 3 in consideration of the bit number n of the dividend y,
Figure pat00030
(B) which is a form of the modulo (y) is multiplied by the value (b)
Figure pat00031
And calculating a quotient (x) obtained by dividing the dividend (y) by three.
제5 항에 있어서, 상기 N은
2m+3이 되는 조건을 만족하는 수임을 특징으로 하는 3으로 나누는 이진 연산 장치.
6. The method of claim 5,
2 &gt; m &lt; 3 &gt;.
제6 항에 있어서, 상기 몫 산출부는
2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정하고, 상기 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택함을 특징으로 하는 3으로 나누는 이진 연산 장치.
7. The apparatus of claim 6, wherein the quotient calculating unit
2 &gt; + 3 is greater than or equal to a value of n-1, and selects a binarized bin whose number of times of repeating '10' from the upper bit is equal to the determined m. A binary operation unit divided by three.
제6 항에 있어서,
3을 곱했을 때
Figure pat00032
의 꼴이 되는 값(b)들을 미리 계산하여 저장된 메모리를 더 포함하고,
상기 몫 산출부는
상기 메모리에 저장된 값(b) 들 중 하나를 검색함을 특징으로 하는 3으로 나누는 이진 연산 장치.
The method according to claim 6,
When you multiply by 3
Figure pat00032
(B), which is a form of &lt; RTI ID = 0.0 &gt;
The quotient calculating unit
(B) stored in said memory. &Lt; Desc / Clms Page number 20 &gt;
KR1020160065003A 2016-05-26 2016-05-26 Apparatus and Method for Binary Calculation with Divisor 3 KR20170133787A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160065003A KR20170133787A (en) 2016-05-26 2016-05-26 Apparatus and Method for Binary Calculation with Divisor 3

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160065003A KR20170133787A (en) 2016-05-26 2016-05-26 Apparatus and Method for Binary Calculation with Divisor 3

Publications (1)

Publication Number Publication Date
KR20170133787A true KR20170133787A (en) 2017-12-06

Family

ID=60922594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160065003A KR20170133787A (en) 2016-05-26 2016-05-26 Apparatus and Method for Binary Calculation with Divisor 3

Country Status (1)

Country Link
KR (1) KR20170133787A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363687A (en) * 2020-11-27 2021-02-12 Oppo广东移动通信有限公司 Integer modular operation method and device and terminal equipment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363687A (en) * 2020-11-27 2021-02-12 Oppo广东移动通信有限公司 Integer modular operation method and device and terminal equipment

Similar Documents

Publication Publication Date Title
US8271571B2 (en) Microprocessor
KR20140092852A (en) Vector processor having instruction set with vector convolution function for fir filtering
US20070083585A1 (en) Karatsuba based multiplier and method
KR102318494B1 (en) Multiply adder
JP2009048532A (en) Microprocessor
US9354893B2 (en) Device for offloading instructions and data from primary to secondary data path
CN1258710C (en) Circuit method for high-efficiency module reduction and multiplication
KR20170133787A (en) Apparatus and Method for Binary Calculation with Divisor 3
JP2010079840A (en) Digital arithmetic circuit
KR102528467B1 (en) Method, device and recording medium for processing division operation
JPH07239774A (en) Method and device for division
CN102646033B (en) Provide implementation method and the device of the RSA Algorithm of encryption and signature function
CN113485751A (en) Method for performing Galois field multiplication, arithmetic unit and electronic device
JP4159565B2 (en) Vector product-sum operation circuit
JPH10333883A (en) Multiplying method and circuit therefor
CN103390022A (en) Method for searching a lookup table
JP2009089343A (en) Angle computation method, and associated circuit
JP5813484B2 (en) VLIW processor, instruction structure and instruction execution method
JP5305392B2 (en) IQ data square sum route calculation means
JP2013037613A (en) Arithmetic circuit and arithmetic unit
US8805904B2 (en) Method and apparatus for calculating the number of leading zero bits of a binary operation
CN118466900A (en) Divider operation method and device for vector machine
CN105468566B (en) Method and apparatus for computing data
Narmadha et al. An Optimized Montgomery Modular Multiplication Algorithm for Cryptography
JP6484957B2 (en) Arithmetic processing unit