KR101753162B1 - 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치 - Google Patents

이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치 Download PDF

Info

Publication number
KR101753162B1
KR101753162B1 KR1020110011214A KR20110011214A KR101753162B1 KR 101753162 B1 KR101753162 B1 KR 101753162B1 KR 1020110011214 A KR1020110011214 A KR 1020110011214A KR 20110011214 A KR20110011214 A KR 20110011214A KR 101753162 B1 KR101753162 B1 KR 101753162B1
Authority
KR
South Korea
Prior art keywords
function
zero bit
bit number
candidate value
leading zero
Prior art date
Application number
KR1020110011214A
Other languages
English (en)
Other versions
KR20120090666A (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 KR1020110011214A priority Critical patent/KR101753162B1/ko
Priority to US13/171,536 priority patent/US8805904B2/en
Publication of KR20120090666A publication Critical patent/KR20120090666A/ko
Application granted granted Critical
Publication of KR101753162B1 publication Critical patent/KR101753162B1/ko

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/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
    • 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/50Adding; Subtracting
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

이진수의 연산시 입력된 피연산자에 대한 이진 트리 구조를 이용하여 선행 제로 비트수를 정확하게 예측하고, 피연산자의 비트수 증가에 따른 연산지연 시간을 줄일 수 있는 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치에 관한 기술로써, 일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산방법은 입력된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성하는 단계와, 제1 함수를 조합하여 제2 함수 및 제2 함수의 선행 제로 비트수 후보값을 계산하는 단계와, 계산하는 단계를 n번 반복하여, 최종 선행 제로 비트수제로 비트수는 단계를 포함한다.

Description

이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치{METHOD FOR CALCULATING OF LEADING ZERO, APPARATUS THEREOF}
이진수 연산의 선행 제로 비트수 계산방법 및 그 장치에 관한 것으로, 더욱 상세하게는 이진 트리 구조를 이용하여 대수적으로 이진수 연산시 발생하는 선행 제로 비트수를 계산하는 방법 및 그 장치에 관한 기술이다.
선행 제로 비트 예상기(Leading Zero Anticipator, 이하 'LZA'라 함)는 입력되는 이진수 형태의 두 피연산자에 대해 가산 또는 감산을 수행한 후, 이진수 결과에 대해서 최상위 비트(MSB)로부터 최초로 '1'이 발생하는 위치 정보를 예측하는 논리기기이다. 어떤 정규화된 이진수의 가산과 감산을 수행하는 경우 연산 후 결과값의 정규화를 위해 필요한 자릿수만큼의 비트 이동이 필요하다. 이 경우, LZA는 가감산 연산과 동시에 비트이동을 예상함으로써 연산의 고속화에 기여한다.
부동소수점 연산 중에 가산 혹은 감산 연산의 경우는, 정규화를 위해서 선행하는 '1'비트가 최상위 비트로 위치하도록 비트를 이동하는 것이 필요하다. 이는 가산 혹은 감산 연산결과에서 선행하는 '1'비트 이전에 '0'비트의 비트수를 추적하고, '0'비트의 갯수만큼 비트 이동을 수행하는 것이다. 이 경우, LZA는 가산 혹은 감산 연산과 동시에 비트 이동에 필요한 선행 '1'비트의 위치 및 '0'비트의 개수 정보를 획득함으로써 임계 경로 지연을 감소시킨다.
종래의 LZA는 정확한 선행 '1'비트의 위치에 대해서 자릿수 오차를 가지는 경우 부정확한 결과를 산출한다. 이는 LZA를 구현하는데 있어서, 하위 비트로부터의 캐리를 고려하지 않고 입력에 대해서 상위비트로부터 하위비트 방향으로만 결과를 조사하기 때문이다. 또한, 종래의 LZA 중에는 정확한 예측값을 산출하는 것도 있는데, 이들은 예측값을 계산하면서 하위비트로부터의 캐리 발생 여부를 동시에 고려한다. 그러나, 이 경우 전체 연산과정의 복잡도가 과도하게 높아지거나, 전체 연산시간이 지연이 발생한다.
이진수의 연산시 입력된 피연산자에 대한 이진 트리 구조를 이용하여 선행 제로 비트수를 정확하게 예측하고, 피연산자의 비트수 증가에 따른 연산지연 시간을 줄일 수 있는 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치에 관한 기술을 제시하고자 한다.
일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산방법은 입력된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성하는 단계와, 제1 함수를 조합하여 제2 함수 및 제2 함수의 선행 제로 비트수 후보값을 계산하는 단계와, 계산하는 단계를 n번 반복하여, 최종 선행 제로 비트수를 결정하는 단계를 포함한다.
일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산장치는 입력된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성하는 제1 함수 생성부와, 제1 함수를 조합하여 새로운 함수인 제2 함수 및 제2 함수의 선행 제로 비트수 후보값을 생성하는 제2 함수 생성부와, 제2 함수 생성부를 제어하여, 최종 선행 제로 비트수를 판단하는 판단부를 포함한다.
이진수의 연산시 입력시 선행 제로 비트수를 정확하게 예측하고, 피연산자의 비트수 증가에 따른 연산지연 시간이 선형적으로 증가하지 않고, 대수적으로 증가함으로써 전체적인 연산지연을 줄일 수 있다.
도 1은 일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산방법의 흐름도,
도 2는 일 실시예에 따른 제2 함수를 생성하는 제1 함수 조합표를 설명하기 위한 참조도,
도 3은 일 실시예에 따른 함수 트리를 생성하는 것을 설명하기 위한 참조도,
도 4a 내지 도 4d는 일 실시예에 따른 갱신된 제2 함수를 생성하는 제2 함수 조합표를 설명하기 위한 참조도,
도 5a는 일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산장치의 구성도,
도 5b은 일 실시예에 따른 선행 제로 비트수 계산장치 중 제2 함수 생성부, 판단부의 내부 구성도 및 연결관계를 설명하기 위한 참조도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산방법의 흐름도이다.
도 1을 참조하면, 먼저 두 개의 이진수를 입력받아, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성한다(100). 두 개의 피연산자는 이진수 형태로 입력되며, 이 경우 각 피연산자의 비트수(비트길이)는 2의 n승 개이다. 만약, 입력된 피연산자의 비트수가 2의 n승 개가 아닌 경우에는, 최하위 비트로 '0' 비트를 추가하여 입력된 피연산자가 2의 n승 개의 비트수를 갖도록 정규화가 가능하다. 제1 함수는 두 개의 이진수를 같은 자릿수의 비트별로 논리 연산한 값이 1이 되도록 하는 논리 연산 함수이다.
또한, 입력된 피연산자의 비트수가 2의 n 승 개의 비트수를 갖지 않더라도, 반드시 이를 2의 n승 개로 정규화할 필요는 없다. 이와 관련해서는 제2함수를 후술하면서 같이 설명하도록 한다.
제1 함수는 생성함수(Generation, G), 종료함수(Termination, T), 전달함수(Propagation, P)로 설정한다. 생성함수는 두 비트를 AND 논리 연산하여 1이 되는 함수이고, 종료함수는 두 비트를 NOT 논리 연산하여 1이 되는 함수이고, 전달함수는 두 비트를 XOR 논리 연산하여 1이 되는 함수이다. 이를 달리 설명하면, 생성함수(G)는 두 비트를 가산하여 상위 비트로 캐리를 발생한 경우를 의미하고, 종료함수(T)는 바로 연접하는 하위비트로부터 캐리를 전달받지만 상위비트로 캐리를 전달하지 않고 종료할 수 있는 경우를 의미하고, 전달함수(P)는 바로 연접하는 하위비트로부터 캐리를 전달받아, 상위비트로 캐리를 전달할 수 있는 경우를 의미한다.
예를 들어, 이진수로 표현되는 피연산자 A=00011001와 B=11110011를 가산하는 경우에 제1 함수는 다음과 같이 생성한다. A, B는 맨 왼쪽부터 자릿수를 설정하면, A0, B0는 피연산자 A, B의 최상위비트를, A7, B7는 A, B의 최하위비트를 나타낸다. A7, B7를 가산하면, 캐리가 1이 발생하므로 두 비트의 제1 함수는 생성함수(G)가 된다. A6, B6을 가산하면, 그 자체만으로는 캐리가 발생하지 않지만, 하위비트로부터 캐리를 전달받아 이를 상위비트로 전달할 수 있는 상태이므로, 두 비트의 제1 함수는 전달함수(P)가 된다. A5, B5를 가산하면, 그 자체만으로는 캐리를 발생하지 않으며, 하위비트로부터 전달된 캐리를 상위비트로 전달하지도 않고 종료할 수 있으므로 종료함수(T)가 된다. 이러한, 과정을 통해 A, B 두 피연산자의 각 자릿수를 논리 연산하면 PPPGPTPG와 같은 제1 함수가 생성된다.
다음으로, 선행 제로 비트수 계산방법은 생성된 제1 함수를 조합하여 제2 함수 및 제2 함수의 선행 제로 비트수 후보값을 계산한다(130). 제2 함수는 제1 함수를 순서대로 2 개씩 한 쌍으로 조합하여 생성한다. 제2 함수는 제1 함수를 조합하여 새로운 함수로 생성한다. 이에 따라, 제2 함수의 개수는 제1 함수의 개수의 절반으로 줄어든다. 또한, 제1 함수의 조합은 미리 설정된 조합조건에 따라 제2 함수 및 제2 함수의 선행 제로 비트수 후보값이 계산된다. 제1 함수의 조합에 따른 제2 함수 및 제2 함수의 선행 제로 비트수 후보값은 도 2를 통해 후술하도록 한다.
도 2는 일 실시예에 따른 함수 트리를 생성하는 것을 설명하기 위한 참조도이다.
도 2를 참조하면, 제1 함수가 3가지 종류인 경우의 제1 함수 조합을 나타낸다. 각 제1 함수 조합에 대해, 제2 함수 정보 및 선행 제로 비트수 후보값은 미리 설정된다. 이는 실험을 통해 계산된 값이다. 제2 함수 정보에는 제2 함수와 상태정보가 포함된다. 제2 함수는 두 개의 제1 함수를 대체할 하나의 함수를 의미하며, 상태정보는 새로 생성된 제2 함수가 제1 함수의 성질을 가지고 있는지를 나타낸다. 즉, 상태정보는 제2 함수가 G, P, T인 경우, 제1 함수의 G, P, T 함수와 같은 캐리발생 및 캐리전달 기능을 하는지를 나타낸다.
예를 들어, 제1 함수 조합이 P, T인 경우, 제2 함수는 T가 된다. 이 경우, T는 종료함수이므로 캐리를 생성하지도 않으며, 전달하지도 않을 수 있는 상태에 있다. 그러나, 제2 함수의 상태정보가 0이면 제1함수와 동일한 기능을 유지하는데 반해, 상태정보가 1이면 제1함수와 동일하지는 않지만 그와 유사한 기능을 하는 것을 나타낸다. 즉, 제2 함수가 T에 상태정보가 1이면, 이는 복수개의 비트열을 표현한지만 그 비트열에서 하위에 어떤 캐리가 발생하더라도 종료를 시키는 역할을 유지한다. 다만, 제1 함수의 T처럼 내부에 0이 아닌 1의 값을 가질 수도 있음을 나타낸다. 한편, 상태 정보 중 X로 표시된 부분은 그 값에 어떤 값이 오던지 결과에 영향이 없음을 나타낸다.
선행 제로 비트수 후보값은 1 비트로써 제2 함수마다 두 개씩 생성된다. 선행 제로 비트수 후보값은 현재 단계에서의 선행하는 제로 비트수의 후보값을 나타낸다. 제2 함수가 최종함수일 때까지 선행 제로 비트수 후보값은 비트수가 확장되며, 전 단계의 선행 제로 비트수 후보값과 조합하여 새로운 값으로 생성된다. 하나의 제2 함수에는 2개의 선행 제로 비트수 후보값이 존재한다. 선행 제로 비트수 후보값 중 후보 1은 최상위 비트에 대한 선행 제로 비트수 후보값을 나타내며, 선행 제로 비트수 후보값은 후에 최종 제로 비트수 후보값의 일부 비트의 값으로 계속 유지된다.
다시 도 1을 참조하면, 다음으로, 제2 함수가 1개인 최종 함수인지를 판단한다(150). 최초 2의 n승개의 제1 함수는 조합을 통해 1개의 최종 함수만 남게 된다. 따라서, 제2 함수가 1개인 경우에는 이를 최종 함수로 판단하고, 그 함수의 선행 제로 비트수 후보값 중 상위 후보값을 최종 제로 비트수로 결정한다(170). 만약, 제2 함수가 2개 이상인 경우에는 최종 함수가 아니므로, 제2 함수를 조합하여 제2 함수 및 그 선행 제로 비트수 후보값을 갱신한다(190). 이 경우, 한 쌍의 제2 함수 조합 각각에 대해, 미리 설정된 함수 조합 조건에 따라 갱신된 제2 함수 및 갱신된 제2 함수의 선행 제로 비트수 후보값을 계산한다. 이러한 갱신과정은 제2 함수가 최종함수일 때까지 반복된다.
2의 n승 개의 비트로 구성된 2개의 이진수를 가산하여, 2의 n승 개의 제1 함수를 생성하고, 제1 함수를 조합하여 제2 함수를 생성하며, 제2 함수가 최종함수가 될 때까지 제2 함수를 조합한다. 이에 따라, 2의 n승 개의 비트로 구성된 2개의 이진수는 총 n 단계의 제2 함수 조합 과정을 통해 최종 함수를 생성하고, 최종 선행 제로 비트수를 계산할 수 있다. 생성된 선행 제로 비트수 후보값을 두 개의 인접하는 제1 함수를 조합하여 제2 함수를 생성하는 과정 및 제2 함수를 갱신하는 과정은 도 3을 참조하여 후술하도록 한다.
도 3은 일 실시예에 따른 함수 트리를 생성하는 것을 설명하기 위한 참조도이다.
도 3을 참조하면, 앞서 설명한 바와 같이 이진수로 표현되는 2의 n승개의 비트로 구성된 두 개의 피연산자(310)가 입력되면, 각 자릿수마다 하나의 제1 함수(330)가 생성된다. 이 경우, 전체 제1 함수(330)의 개수는 2의 n승 개이다. 생성된 제1 함수(330)는 최상위비트부터 순서대로 2 개씩 조합된다. 한 쌍의 제1 함수(330) 조합은 하나의 제2 함수(350)를 생성한다. 따라서, 전체 제1 함수(330)의 개수가 2의 n승 개이므로, 제2 함수(350)의 개수는 2의 (n-1)승 개이다. 제2 함수(350)의 개수가 2개 이상인 경우에는 최종 함수(390)가 아니므로, 제2 함수(350)를 순서대로 2개씩 한 쌍으로 조합하여 제2 함수(350)를 갱신한다.
갱신된 제2 함수(370)는 미리 설정된 제2 함수(350) 조합 조건에 따라 하나의 갱신된 제2 함수(370)로 생성된다. 이러한 갱신과정은 제2 함수(350)가 하나만 존재할 때까지 반복된다. 따라서, 최종 함수(390)는 하나의 함수이고, 최종 함수(390)의 선행 제로 비트수 후보값은 이전 단계의 함수의 선행 제로 비트수 후보값과 결합하여 갱신된다. 최종 함수(390)의 선행 제로 비트수 후보값은 2개이며, 이는 이전 단계의 함수의 선행 제로 비트수 후보값과 결합되어 비트수가 증가된다. 이러한 선행 제로 비트수 후보값 중 상위 비트에 해당하는 후보값이 최종 제로 비트수 값이 된다. 제2 함수(350)를 조합하여 하나의 갱신된 제2 함수(370) 및 그 선행 제로 비트수 후보값을 구하는 과정은 도 4a 내지 도 4d를 참조하여 후술하도록 한다.
한편, 본 발명의 또 다른 실시예에 따른 선행 제로 비트수 계산방법은 제1함수의 비트수가 반드시 2의 n승개일 필요는 없다. 앞서 설명한 바와 같이, 입력된 피연산자의 비트수가 2의 n승개가 아닌 경우에는, 제1함수를 2의 n승개로 정규화하거나, 제2함수를 조합할 때 가상의 제2함수를 추가하여 최종 제2 함수를 계산할 수 있다. 예를 들어, 입력된 피연산자가 24비트인 경우, 각 피연산자의 최하위 비트에 ‘0’비트를 8개 추가하여 32비트로 정규화할 수 있으며, 정규화하지 않은 채 제1함수를 계산하는 것도 가능하다.
즉, 제1 함수는 24개가 되며, 제2 함수는 이웃하는 비트를 조합하는 과정을 반복하여 12개, 6개, 3개가 계산된다. 이 경우, 제2 함수가 3개인 경우 최종 제2 함수값을 구하기 위해, 가상의 제2 함수가 있다고 계산할 수 있다. 이 경우, 제2 함수는 종료함수(T)와 상태 정보 함수는 ‘0’으로 설정할 수 있다. 즉, 3개의 제2 함수와 1개의 가상 제2 함수를 조합하여 2개의 제2 함수를 구하고, 이를 다시 조합하여 최종 제2 함수를 계산하는 것이 가능하다.
또 다른 실시예로, 입력된 피연산자가 각각 31비트인 경우 최하위 비트로 1개의 ‘0’비트를 추가함으로써, 총 32비트로 정규화할 수 있다. 그러나, 먼저 30개의 제1 함수를 계산하고, 이를 조합하여 15개의 제2 함수를 계산한다. 그리고, 남은 1개의 제1 함수에 가상의 제1 함수를 조합하여 1개의 제2 함수를 계산한다. 따라서, 제2 함수는 총 16개가 된다. 이에 따라, 연산의 오류없이 불필요한 하드웨어의 사용을 줄일 수 있다.
도 4a 내지 도 4d는 일 실시예에 따른 갱신된 제2 함수를 생성하는 제2 함수 조합표를 설명하기 위한 참조도이다.
도 4a 내지 도 4d를 참조하면, 제1 함수를 조합하여 생성된 제2 함수 정보를 이용하여 갱신된 제2 함수 정보를 생성한다. 제2 함수 정보에는 제2 함수 및 제2 함수의 상태정보를 포함한다. 따라서, 제2 함수 정보 조합은 36가지의 경우의 수가 생긴다. 따라서, 두 개의 제2 함수(상태 정보 포함)를 조합하면, 하나의 갱신된 제2 함수 및 그 상태 정보를 계산할 수 있다. 이는 실험을 통해 계산된 값이다. 이에 따라, 갱신된 제2 함수의 개수는 갱신 전의 제2 함수의 개수보다 절반으로 줄어들게 된다.
선행 제로 비트수 후보값은 각 함수의 고유한 값으로 설정된다. 후보 1은 상위 비트이고, 후보 2는 하위 비트로, 이들 모두는 선행 제로 비트수 후보값을 나타낸다. 선택값은 갱신된 제2 함수의 선행 제로 비트수 후보값을 계산하는데 사용된다. 앞서 설명한 바와 같이, 제2 함수 또는 갱신된 제2 함수에는 1 비트씩 두 개의 고유한 선행 제로 비트수 후보값이 존재한다. 다만, 갱신과정을 거치면서 갱신된 제2 함수의 개수는 절반으로 줄어들지만, 선행 제로 비트수 후보값은 이전 단계의 선행 제로 비트수 후보값 중 하나를 선택하여, 이를 갱신된 제2 함수의 선행 제로 비트수 후보값과 조합하여 선행 제로 비트수 후보값을 생성한다.
위의 과정을 일 예로 설명하면 다음과 같다. 이진수로 표현되는 피연산자 A=00011001와 B=11110011를 가산하면, 제1 함수는 PPPGPTPG가 된다. 제1 함수를 2 개씩 순서대로 조합하면, (PP), (PG), (PT), (PG)가 되며, 이를 도 2를 참조하여 제2 함수 및 선행 제로 비트수 후보값을 계산한다. 이 경우, (PP)는 제2 함수(상태정보 포함)P0와 두 개의 선행 제로 비트수 후보값 (0, 0)을 가진다. 이런식으로 제2 함수 및 선행 제로 비트수 후보값을 구하면, P0 (0, 0)/ G0 (1, 1)/ T1 (0, 0)/ G0 (1, 1)이 된다. 이 경우 제2 함수가 4개 이므로 최종 함수를 구하기 위해 도 4a 내지 도 4d를 참조하여 제2 함수를 2 개씩 조합한다. P0 (0, 0)와 G0 (1, 1)를 조합하면, 갱신된 제2 함수는 G0가 되고, 선행 제로 비트수 후보값은 (11, 11)이 된다.
위의 경우, 선행 제로 비트수 후보값은 현 단계에서의 선행 제로 비트수 후보값 (1, 1)을 각각 상위 비트로 하고, 이전 단계의 선행 후보값 (0, 0)과 (1, 1) 중 하나씩을 선택하여 이를 하위 비트로 하여 생성된다. 이 경우, 이전 단계의 3번째, 4번째 선행 제로 비트수 후보값을 선택하므로, 제2 함수의 선행 제로 비트수 후보값은 (11, 11)이 된다. 이런식으로 갱신된 제2 함수 및 제2 함수의 선행 제로 비트수 후보값을 구하면, G0 (11, 11)/ T1 (00, 00)이 된다. 이 경우, 갱신된 제2 함수가 2개이므로 최종 함수를 구하기 위해 다시 갱신된 제2 함수를 조합한다. 따라서, 최종 함수는 G1이 되고, 선행 제로 비트수 후보값은 (100, 100)이 된다. 이 경우, 최종 제로 비트수는 최상위 비트에 대한 선행 제로 비트수 후보값인 100이 된다. 따라서, 두 피연산자를 가산한 경우의 결과값은 선행 제로 비트수가 4개임을 알 수 있다.
한편, 이진수로 표현되는 두 피연산자를 서로 감산하는 경우에는 2의 보수(2's complement)를 이용하여 하나의 피연산자를 변환한 뒤, 서로 가산하여 본 선행 제로 비트수 계산과정을 거치면 선행 제로 비트수를 계산할 수 있다.
도 5a는 일 실시예에 따른 이진수 연산의 선행 제로 비트수 계산장치의 구성도이다.
도 5a를 참조하면, 선행 제로 비트수 계산장치(500)는 제1 함수 생성부(510), 제2 함수 생성부(530), 판단부(550), 저장부(570)를 포함한다. 제1 함수 생성부(510)는 논리 연산회로이다. 제1 함수 생성부(510)는 입력된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성한다. 이 경우, 제1 함수 생성부(510)는 입력된 두 개의 이진수를 2의 n승 개의 비트로 정규화하는 비트 정규화부(도시되지 않음)와 정규화된 두 개의 이진수를 같은 자릿수의 비트별로 논리 연산한 값이 1이 되도록 하는 논리 연산하는 논리 연산부(도시되지 않음)를 포함한다. 제1 함수 생성부(510)는 제1 함수를 제2 함수 생성부(530)로 출력한다.
제2 함수 생성부(530)는 제1 함수를 조합하여 새로운 함수인 제2 함수를 생성한다. 이 경우, 제2 함수 생성부(530)는 저장부(570)에 저장된 미리 설정된 함수 조합 조건을 이용하여 새로운 함수인 제2 함수를 생성한다. 제2 함수 생성부(530)는 제2 함수의 선행 제로 비트수 후보값을 계산한다. 제2 함수 생성부(530)는 저장부(590)에 저장된 미리 설정된 함수 조합 조건을 만족하는 제2 함수의 선행 제로 비트수의 후보값을 계산한다. 판단부(550)는 제2 함수 생성부(530) 를 제어하여, 최종 선행 제로 비트수를 판단한다. 판단부(550)는 제2 함수 생성부(530)에서 출력된 제2 함수가 최종 함수인지를 판단하고, 그 결과에 따라 선행 제로 비트수의 후보값 중 하나를 최종 제로 비트수로 출력한다.
한편, 제1함수가 2의 n승개가 아닌 경우에는 생성된 제1 함수와 가상의 제1 함수를 조합하여 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 계산할 수도 있다. 이는 앞에서 설명한 바와 같다.
도 5b는 일 실시예에 따른 선행 제로 비트수 계산장치 중 제2 함수 생성부, 판단부의 내부 구성도 및 연결관계를 설명하기 위한 참조도이다.
도 5b를 참조하면, 제2 함수 생성부(530)는 제2 함수 계산부(531), 상태정보 생성부(533), 후보값 계산부(535)를 포함한한다. 제2 함수 계산부(531)는 입력된 제1 함수를 순서대로 2 개씩 한 쌍으로 조합한다. 제2 함수 계산부(531)는 조합된 함수 조합을 제2 함수 결정부(533)로 출력한다. 이 경우, 제2 함수 계산부(531)는 함수 한 쌍의 제1 함수 조합 각각에 대해, 저장부(도시되지 않음)에 저장된 미리 설정된 함수 조합 조건을 참조하여 제2 함수를 결정한다. 함수 조합 조건은 도 2에 도시되어 있다. 판단부(550)는 제2 함수 계산부(531)에서 생성된 제2 함수가 최종 함수가 아닌 경우, 복수의 제2 함수를 조함하여 새로운 제2 함수를 생성하도록 제어한다. 이 경우, 저장부(도시되지 않음)에 저장된 함수 조합 조건을 이용한다.
한편, 제2 함수 생성부(530)는 후보값 생성부(553)를 포함한다. 후보값 생성부(553)는 저장부(도시되지 않음)에 저장된 미리 설정된 함수 조합 조건을 참조하여, 하나 이상의 선행 제로 비트수 후보값을 생성한다. 후보값 생성부(553)는 복수의 선행 제로 비트수 후보값 중 하나를 선택한다. 또한, 생성된 선행 제로 비트수 후보값을 전 단계에서 계산된 선행 제로 비트수 후보값 중 하나와 조합하여 선행 제로 비트수 후보값을 갱신한다.
한편, 판단부(570)는 최종 함수 판단부(도시되지 않음)와 제어부(도시되지 않음)를 포함한다. 함수 판단부는 제2 함수 생성부(530)에서 생성된 제2 함수가 최종 함수인지 판단한다. 제어부는 제2 함수가 최종 함수인 경우에는 후보값 생성부(533)에서 계산된 선행 제로 비트수 후보값을 최종 선행 제로 비트수로 하고, 제2 함수가 최종 함수가 아닌 경우에는 제2 함수 생성부(530)를 이용하여 새로운 제2 함수 및 새로운 선행 제로 비트수 후보값을 계산하도록 제어한다.
이상에서 본 발명은 도면을 참조하면서 기술되는 바람직한 실시예를 중심으로 설명되었지만 이에 한정되는 것은 아니다. 따라서 본 발명은 기재된 실시예로부터 도출 가능한 자명한 변형예를 포괄하도록 의도된 특허청구범위의 기재에 의해 해석되어져야 한다.
310 : 피연산자
330 : 제1 함수
350 : 제2 함수
370 : 갱신된 제2 함수
390 : 최종 함수
500 : 선행 제로 비트수 계산장치
510 : 제1 함수 생성부
530 : 제2 함수 생성부
531 : 제2 함수 계산부
533 : 상태정보 생성부
535 : 후보값 계산부
550 : 판단부
570 : 저장부

Claims (17)

  1. 입력된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성하는 단계와;
    상기 제1 함수를 조합하여 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 계산하는 단계; 및
    상기 계산하는 단계를 n번 반복하여, 최종 선행 제로 비트수를 결정하는 단계;
    를 포함하는 이진수 연산의 선행 제로 비트수 계산방법.
  2. 제1항에 있어서, 상기 계산하는 단계는,
    상기 제1 함수를 순서대로 2 개씩 한 쌍으로 조합하는 단계; 및
    한 쌍의 제1 함수 조합 각각에 대해, 미리 설정된 함수 조합 조건에 따라 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 계산하는 단계;
    를 포함하는 이진수 연산의 선행 제로 비트수 계산방법.
  3. 제1항에 있어서, 상기 계산하는 단계는,
    상기 제1 함수가 2의 n승개가 아닌 경우에는, 생성된 제1 함수와 가상의 제1 함수를 조합하여 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 계산하는 이진수 연산의 선행 제로 비트수 계산방법.
  4. 제1항에 있어서, 상기 결정하는 단계는,
    상기 제2 함수를 순서대로 2개씩 한 쌍으로 조합하는 단계; 및
    한 쌍의 제2 함수 조합 각각에 대해, 미리 설정된 함수 조합 조건에 따라 상기 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 갱신하는 단계를 포함하되,
    상기 제2 함수가 1 개일 때의 선행 제로 비트수 후보값을 최종 선행 제로 비트수로 결정하는 이진수 연산의 선행 제로 비트수 계산방법.
  5. 제4항에 있어서, 상기 갱신하는 단계에서 갱신된 제2 함수의 선행 제로 비트수 후보값은,
    상기 갱신된 제2 함수의 선행 제로 비트수 후보값과 미리 생성된 복수의 제2 함수의 선행 제로 비트수 후보값 중 하나를 조합한 값인 이진수 연산의 선행 제로 비트수 계산방법.
  6. 제4항에 있어서, 상기 제2 함수 및 갱신된 제2 함수의 선행 제로 비트수 후보값은,
    상기 제2 함수 및 갱신된 제2 함수 각각에 대해 2개씩 생성되는 이진수 연산의 선행 제로 비트수 계산방법.
  7. 제1항에 있어서, 상기 제1 함수는,
    상기 두 개의 이진수를 같은 자릿수의 비트별로 논리 연산한 값이 1이 되도록 하는 논리 연산 함수인 이진수 연산의 선행 제로 비트수 계산방법.
  8. 제4항에 있어서,
    상기 제2 함수 및 갱신된 제2 함수는 상태 변경 정보를 포함하는 이진수 연산의 선행 제로 비트수 계산방법.
  9. 제1항에 있어서, 상기 계산방법은,
    상기 생성하는 단계 이전에, 상기 입력된 두 개의 이진수를 2의 n승 개의 비트로 정규화하는 단계;
    를 더 포함하는 이진수 연산의 선행 제로 비트수 계산방법.
  10. 입력된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산하여 2의 n승 개의 제1 함수를 생성하는 제1 함수 생성부와;
    상기 제1 함수를 조합하여 새로운 함수인 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 생성하는 제2 함수 생성부와;
    상기 제2 함수 생성부를 제어하여, 최종 선행 제로 비트수를 판단하는 판단부;
    를 포함하는 이진수 연산의 선행 제로 비트수 계산장치.
  11. [청구항 11은(는) 설정등록료 납부시 포기되었습니다.]
    제10항에 있어서, 상기 제1 함수 생성부는,
    상기 입력된 두 개의 이진수를 2의 n승 개의 비트로 정규화하는 비트 정규화부; 및
    상기 비트 정규화부에서 정규화된 두 개의 이진수를, 같은 자릿수의 비트별로 논리 연산한 값이 1이 되도록 하는 논리 연산하는 논리 연산부;
    를 포함하는 이진수 연산의 선행 제로 비트수 계산장치.
  12. [청구항 12은(는) 설정등록료 납부시 포기되었습니다.]
    제10항에 있어서, 상기 제2 함수 생성부는,
    상기 제 1 함수를 순서대로 2 개씩 한 쌍으로 조합하여 상기 제 2 함수를 계산하는 제 2 함수 계산부;를 더 포함하고, 상기 제 2 함수의 선행 제로 비트수 후보값을 계산하는 이진수 연산의 선행 제로 비트수 계산장치.
  13. [청구항 13은(는) 설정등록료 납부시 포기되었습니다.]
    제12항에 있어서, 상기 제2 함수 계산부는,
    상기 제2 함수가 최종 함수가 아닌 경우, 복수의 제2 함수를 조합하여 상기 제2 함수를 계산하는 이진수 연산의 선행 제로 비트수 계산장치.
  14. [청구항 14은(는) 설정등록료 납부시 포기되었습니다.]
    제12항에 있어서, 상기 제2 함수 생성부는,
    저장부에 저장된 미리 설정된 함수 조합 조건을 참조하여, 하나 이상의 선행 제로 비트수 후보값을 생성하는 후보값 생성부; 및
    상기 후보값 생성부에서 생성된 복수의 선행 제로 비트수 후보값 중 하나를 선택하는 후보값 선택부;
    를 포함하는 이진수 연산의 선행 제로 비트수 계산장치.
  15. [청구항 15은(는) 설정등록료 납부시 포기되었습니다.]
    제10항에 있어서, 상기 제2 함수 생성부는,
    상기 제1함수가 2의 n승개가 아닌 경우, 생성된 제1 함수와 가상의 제1 함수를 조합하여 제2 함수 및 상기 제2 함수의 선행 제로 비트수 후보값을 계산하는 이진수 연산의 선행 제로 비트수 계산장치.
  16. [청구항 16은(는) 설정등록료 납부시 포기되었습니다.]
    제14항에 있어서, 상기 제2 함수 생성부는,
    상기 후보값 생성부에서 생성된 선행 제로 비트수 후보값을 상기 후보값 선택부에서 선택된 선행 제로 비트수 후보값과 조합하여, 선행 제로 비트수 후보값을 갱신하는 이진수 연산의 선행 제로 비트수 계산장치.
  17. [청구항 17은(는) 설정등록료 납부시 포기되었습니다.]
    제14항에 있어서, 상기 판단부는,
    상기 제2 함수 생성부에서 생성된 제2 함수가 최종 함수인지 판단하는 최종 함수 판단부와;
    상기 제2 함수가 최종 함수인 경우에는 상기 제2 함수 생성부에서 계산된 선행 제로 비트수 후보값을 최종 선행 제로 비트수로 하고, 상기 제2 함수가 최종 함수가 아닌 경우에는 상기 제2 함수 생성부를 이용하여 새로운 제2 함수 및 새로운 선행 제로 비트수 후보값을 계산하도록 제어하는 제어부;
    를 포함하는 이진수 연산의 선행 제로 비트수 계산장치.
KR1020110011214A 2011-02-08 2011-02-08 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치 KR101753162B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110011214A KR101753162B1 (ko) 2011-02-08 2011-02-08 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치
US13/171,536 US8805904B2 (en) 2011-02-08 2011-06-29 Method and apparatus for calculating the number of leading zero bits of a binary operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110011214A KR101753162B1 (ko) 2011-02-08 2011-02-08 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치

Publications (2)

Publication Number Publication Date
KR20120090666A KR20120090666A (ko) 2012-08-17
KR101753162B1 true KR101753162B1 (ko) 2017-07-04

Family

ID=46601405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110011214A KR101753162B1 (ko) 2011-02-08 2011-02-08 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치

Country Status (2)

Country Link
US (1) US8805904B2 (ko)
KR (1) KR101753162B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101753162B1 (ko) * 2011-02-08 2017-07-04 삼성전자주식회사 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100217531B1 (ko) 1994-09-29 1999-09-01 포만 제프리 엘 이진 데이타 필드에서 선행 0 또는 1의 양을 결정하기 위한 방법 및 장치
KR100264962B1 (ko) 1996-11-18 2000-09-01 윤종용 결합된 선두 1 및 선두 제로 예상기
JP2010218197A (ja) 2009-03-17 2010-09-30 Nec Computertechno Ltd 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493520A (en) 1994-04-15 1996-02-20 International Business Machines Corporation Two state leading zero/one anticipator (LZA)
JP3429927B2 (ja) 1995-10-16 2003-07-28 三菱電機株式会社 浮動小数点演算装置の正規化回路装置
US5796644A (en) 1996-11-18 1998-08-18 Samsung Electronics Company, Ltd. Floating-point multiply-and-accumulate unit with classes for alignment and normalization
JP3728858B2 (ja) * 1996-12-20 2005-12-21 ソニー株式会社 演算装置の演算方法、記憶媒体及び演算装置
US6487576B1 (en) * 1998-10-06 2002-11-26 Texas Instruments Incorporated Zero anticipation method and apparatus
KR100929423B1 (ko) 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
US8489663B2 (en) * 2009-06-05 2013-07-16 Advanced Micro Devices Decimal floating-point adder with leading zero anticipation
KR101753162B1 (ko) * 2011-02-08 2017-07-04 삼성전자주식회사 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100217531B1 (ko) 1994-09-29 1999-09-01 포만 제프리 엘 이진 데이타 필드에서 선행 0 또는 1의 양을 결정하기 위한 방법 및 장치
KR100264962B1 (ko) 1996-11-18 2000-09-01 윤종용 결합된 선두 1 및 선두 제로 예상기
JP2010218197A (ja) 2009-03-17 2010-09-30 Nec Computertechno Ltd 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム

Also Published As

Publication number Publication date
US8805904B2 (en) 2014-08-12
KR20120090666A (ko) 2012-08-17
US20120203811A1 (en) 2012-08-09

Similar Documents

Publication Publication Date Title
KR101735677B1 (ko) 부동 소수점의 복합 연산장치 및 그 연산방법
US5798955A (en) High-speed division and square root calculation unit
JP4500358B2 (ja) 演算処理装置および演算処理方法
CN107273090A (zh) 面向神经网络处理器的近似浮点乘法器及浮点数乘法
CN107305485A (zh) 一种用于执行多个浮点数相加的装置及方法
JP2007156748A (ja) 演算処理装置,情報処理装置,及び演算処理方法
CN106970775A (zh) 一种可重构定浮点通用加法器
JP2021517301A (ja) 確率的丸めロジック
GB2543511A (en) Rounding reciprocal square root results
KR940004326B1 (ko) 캐리 프리딕션을 이용한 고성능 가산기
KR101753162B1 (ko) 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US10185545B2 (en) Trailing or leading zero counter having parallel and combinational logic
JP2018097864A (ja) リーディングゼロ予想
US20170344342A1 (en) Rounding circuitry and method
US9229686B2 (en) Accuracy configurable adders and methods
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
JP7120320B2 (ja) 演算処理装置および演算処理装置の制御方法
JP4109181B2 (ja) 論理回路、および、それを使用した浮動小数点演算回路とマイクロプロセッサ
JPH08202533A (ja) 除算処理装置
WO2020084692A1 (ja) 演算処理装置及び演算処理装置の制御方法
JP4868408B2 (ja) 演算装置、逆数の近似計算プログラムおよび近似計算方法
KR101179932B1 (ko) 모듈러 3 연산 장치 및 방법
JPH01125625A (ja) 除算装置
JP2002268873A (ja) 除算器およびそれに用いる選択装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant