KR20170133787A - Apparatus and Method for Binary Calculation with Divisor 3 - Google Patents
Apparatus and Method for Binary Calculation with Divisor 3 Download PDFInfo
- 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
Links
Images
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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/40—Methods 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/405—Methods 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
-
- 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/40—Methods 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/44—Multiplying; Dividing
-
- 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
- G06F7/462—Multiplying; 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
Description
본 발명은 이진법(비트연산)을 사용하는 컴퓨터 프로그래밍과 하드웨어에서 나누기 연산 장치 및 방법에 관한 것으로, 특히 임의의 수를 3으로 나누는 특수한 경우에 관한 장치 및 방법에 관한 것이다.BACKGROUND OF THE
나누기 연산에 대한 구현 방법은 기존에 이미 다양하게 나와 있으며, 특정 수로 나누기보다는 일반적인 나눗셈을 구현하는 방법이 대부분이다. 나눗셈 연산의 가장 간단한 접근 방법은 피제수(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을 곱했을 때 의 꼴이 되는 값(b)를 검색하는 단계와, 상기 값(y')에 상기 값(b)를 곱한 값을 모듈러 연산하여 상기 피제수(y)를 3으로 나눈 몫(x)을 산출하는 단계를 포함한다.The present invention relates to a method of dividing by 3 a method of calculating
본 발명은 3으로 나누는 이진 연산 장치로, 입력된 피제수(y)를 모듈러 3 연산하여 나머지(r)를 산출하는 나머지 산출부와, 상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하고, 상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때 의 꼴이 되는 값(b)를 검색하고, 상기 값(y')에 상기 값(b)를 곱한 값을 모듈러 연산하여 상기 피제수(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 나누기 연산을 수행할 뿐만 아니라, 피제수의 비트수로만으로 곱하는 수를 간단하게 결정할 수 있어서 하드웨어의 복잡도와 연산 처리 시간을 획기적으로 줄일 수 있다.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을 곱했을 때 의 꼴이 되는 값(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 (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
나머지 산출부(110)는 피제수(y)가 입력됨에 따라, 모듈러 3 연산(mod(y, 3))하여 나머지(r)를 산출한다. 여기서, 모듈로 3 연산은 국내특허 KR 10-1318992(모듈로 N 연산방법 및 그 장치)을 참조할 수 있다. The
몫 산출부(120)는 피제수(y)를 3으로 나눈 몫(x)을 산출한다. 즉, 피제수(y)는 하기의 <수학식 1>과 같이 표현될 수 있다.The
<수학식 1>&Quot; (1) "
y=3x+ry = 3x + r
몫 산출부(120)는 우선 피제수(y)에서 산출된 나머지(r)를 감하여 3으로 나누어지는 값(y')을 산출한다. 즉, 값(y')는 하기의 <수학식 2>와 같이 표현될 수 있다. The
<수학식 2>&Quot; (2) "
y'=y-r=y-mod(y, 3)=3xy '= y-r = y-mod (y, 3) = 3x
그런 후, 몫 산출부(120)는 피제수(y)의 이진 비트수(n)를 고려하여, 3을 곱했을 때 의 꼴이 되는 값(b)를 검색한다. 일 실시 예에 따라, N은 2m+3이 되는 조건을 만족하는 수일 수 있다. 따라서, 하기에서는 N이 2m+3인 것으로 설명하기로 한다. 즉, 몫 산출부(120)는 하기의 <수학식 3>을 만족하는 b를 검색한다. Then, the
<수학식 3>&Quot; (3) "
a=3b= a = 3b =
또한, 일 실시 예에 따라, 몫 산출부(120) 상세하게는 2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정하고, 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택한다. Further, according to one embodiment, the
또한, 일 실시 예에 따라, 메모리(130)는 3을 곱했을 때 의 꼴이 되는 미리 계산된 값(b)들을 저장하는데, 몫 산출부(120)는 저장된 값(b) 들 중 하나를 검색할 수도 있다. 이에 대한 상세한 설명은 도 2 내지 도 3을 참조하여 후술하기로 한다.Further, according to one embodiment, the
마지막으로, 몫 산출부(120)는 값(y')에 산출된 값(b)를 곱한 값을 모듈러 연산하여 피제수(y)를 3으로 나눈 몫(x)을 산출한다. 즉, 상기 <수학식 2>의 양변에 산출된 값(b)를 곱하고, <수학식 3>을 대입하면 하기의 <수학식 4>와 같이 유도될 수 있다.Finally, the
<수학식 4>&Quot; (4) "
y'b=3xb=x3b=xa=x() y'b = 3xb = x3b = xa = x ( )
상기 <수학식 4>의 양변에 mod 연산을 하면 몫 x는 하기의 <수학식 5>와 같이 간단히 산출될 수 있다.In the above equation (4), mod Quot ;, the quotient x can be simply calculated as shown in Equation (5) below.
<수학식 5>Equation (5)
x= y'b mod x = y'b mod
도 2는 3을 곱했을 때 의 꼴이 되는 값(b)를 검색하는 과정을 설명하기 위한 도면이고, 도 3은 b에 3을 곱하여 a가 되는 과정을 도시한 도면이다.Fig. 2 shows a graph FIG. 3 is a diagram illustrating a process of multiplying b by 3 to obtain a value a.
도 2를 참조하면, 우측에는 의 꼴이 되는 a 값들이 도시되어 있고, 좌측에는 3을 곱하여 우측의 a 값들 되는 b 값들이 도시되어 있다. 도 2 및 도 3을 참조하면, a는 하기의 <수학식 6>과 같이 표현될 수 있다. Referring to FIG. 2, 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) "
<수학식 6>을 참조하면, N=2m+3이 됨을 알 수 있다. 또한, a는 modulo 연산을 이용하면 1이 되므로 곱셈연산에 유용하게 활용할 수 있다. 따라서, 본 발명에서는 이러한 성질을 이용하여 전술한 바와 같이 <수학식 5>에서 modulo를 이용하여 x를 용이하게 산출한다. 따라서, 본 발명에서 3을 곱했을 때 의 꼴이 되는 값(b)을 검색하는 것이다. Referring to Equation (6), it can be seen that N = 2m + 3. Also, a is modulo If it is 1, it can be used for multiplication. Therefore, in the present invention, as described above, using this property, modulo To easily calculate x. Therefore, in the present invention, when multiplying by 3 (B), which is a form of the search result.
또한, 도 3을 참조하면, m은 이진화된 b의 값에서 상위 비트에서부터 '10'이 반복되는 횟수임을 알 수 있다. 즉, b가 '11'일 경우, a는 ''이므로, m은 '0'이 되는데, b에서 '10'이 반복되는 횟수가 '0'이므로 m의 값과 동일함을 알 수 있다. 또한, 즉, b가 '1011'일 경우, a는 ''이므로, 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' ', 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' ', 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
장치(100)는 상기 <수학식 2>와 같이 표현되어지는 피제수(y)에서 산출된 나머지(r)를 감하여 3으로 나누어지는 값(y')을 산출한다(S430). The
그런 후, 장치(100)는 피제수(y)의 이진 비트수(n)를 고려하여, 3을 곱했을 때 의 꼴이 되는 값(b)를 검색한다(S440~S450). 일 실시 예에 따라, N은 2m+3이 되는 조건을 만족하는 수일 수 있다. 즉, 장치(100)는 상기의 <수학식 3>을 만족하는 b를 검색한다. Then, the
일 실시 예에 따라, 장치(100)는 2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정(S440)한다. 즉, y의 비트수가 a의 비트수보다 작으면 된다. 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택한다(S450). 또한, 일 실시 예에 따라, 메모리(130)는 3을 곱했을 때 의 꼴이 되는 미리 계산된 값(b)들을 저장하는데, 몫 산출부(120)는 저장된 값(b) 들 중 하나를 검색할 수도 있다. According to one embodiment, the
마지막으로, 장치(100)는 값(y')에 산출된 값(b)를 곱한 값을 mod연산하여 피제수(y)를 3으로 나눈 몫(x)을 산출한다(S460~S480). 즉, <수학식 2>의 양변에 산출된 값(b)를 곱하고(S460), <수학식 3>을 대입하여 상기의 <수학식 4>와 같이 유도하고(S470), 상기 <수학식 4>의 양변에 mod 연산을 하면 몫 x는 상기의 <수학식 5>와 같이 간단히 산출한다(S480).Finally, the
도 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
우선, (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을 곱했을 때 의 꼴이 되는 값들(b) 중 하나를 '10'이 반복되는 횟수가 m의 값 '2'와 동일한 '43'을 검색한다. 그런 후, 장치(100)는 값(y')인 '111'에 검색된 값(b)인 '43'을 곱하여 '4773'을 산출하고, '4773'값에 mod 연산하여 몫(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
Claims (8)
상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하는 단계와,
상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때 의 꼴이 되는 값(b)를 검색하는 단계와,
상기 값(y')에 상기 값(b)를 곱한 값을 모듈러 연산하여 상기 피제수(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 Searching for a value b that is an approximation of < RTI ID = 0.0 >
The value obtained by multiplying the value (y ') by the value (b) And calculating a quotient (x) by dividing the dividend (y) by three.
2m+3이 되는 조건을 만족하는 수임을 특징으로 하는 3으로 나누는 이진 연산 방법.
2. The method of claim 1,
2 < m > + 3.
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.
3을 곱했을 때 의 꼴이 되는 값(b)들을 미리 계산하여 저장하는 단계를 더 포함하고,
상기 검색하는 단계는
상기 저장된 값(b) 들 중 하나를 검색함을 특징으로 하는 3으로 나누는 이진 연산 방법.
The method according to claim 1,
When you multiply by 3 (B), which is a form of < RTI ID = 0.0 >
The searching step
And searching for one of the stored values (b).
상기 피제수(y)에서 상기 산출된 나머지(r)를 감하여 제수 3으로 나누어지는 값(y')을 산출하고, 상기 피제수(y)의 비트수(n)를 고려하여, 3을 곱했을 때 의 꼴이 되는 값(b)를 검색하고, 상기 값(y')에 상기 값(b)를 곱한 값을 모듈러 연산하여 상기 피제수(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, (B) which is a form of the modulo (y) is multiplied by the value (b) And calculating a quotient (x) obtained by dividing the dividend (y) by three.
2m+3이 되는 조건을 만족하는 수임을 특징으로 하는 3으로 나누는 이진 연산 장치.
6. The method of claim 5,
2 > m < 3 >.
2m+3의 값이 n-1의 값의 이상이 되는 조건을 만족하는 m을 결정하고, 상기 상위 비트에서부터 '10'이 반복되는 횟수가 상기 결정된 m과 동일한 이진화된 b를 선택함을 특징으로 하는 3으로 나누는 이진 연산 장치.
7. The apparatus of claim 6, wherein the quotient calculating unit
2 > + 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.
3을 곱했을 때 의 꼴이 되는 값(b)들을 미리 계산하여 저장된 메모리를 더 포함하고,
상기 몫 산출부는
상기 메모리에 저장된 값(b) 들 중 하나를 검색함을 특징으로 하는 3으로 나누는 이진 연산 장치.The method according to claim 6,
When you multiply by 3 (B), which is a form of < RTI ID = 0.0 >
The quotient calculating unit
(B) stored in said memory. ≪ Desc / Clms Page number 20 >
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)
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 |
-
2016
- 2016-05-26 KR KR1020160065003A patent/KR20170133787A/en unknown
Cited By (1)
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 |