KR101084581B1 - 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 - Google Patents
고정 소수점 지수함수 연산 방법, 장치 및 기록매체 Download PDFInfo
- Publication number
- KR101084581B1 KR101084581B1 KR1020090104896A KR20090104896A KR101084581B1 KR 101084581 B1 KR101084581 B1 KR 101084581B1 KR 1020090104896 A KR1020090104896 A KR 1020090104896A KR 20090104896 A KR20090104896 A KR 20090104896A KR 101084581 B1 KR101084581 B1 KR 101084581B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- exponential function
- range
- precision
- format
- 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/48—Methods 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/544—Methods 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 for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- 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/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
부동 소수점 기반의 입력값에 대해 고정 소수점 기반으로 연산을 수행할 수 있도록 입력값을 고정소수점 형식으로 변환하는 고정 소수점 지수함수 연산 방법, 장치 및 기록매체가 제안된다. 제안된 고정 소수점 지수함수 연산 방법은 지수함수변환단계, 출력값범위산출단계, 정밀도판단단계, 스케일팩터(scale factor) 산출단계, 출력값범위갱신단계 및 결과값산출단계를 포함한다.
부동소수점, 고정소수점, 지수함수, 연산
Description
본 발명은 고정 소수점 지수함수 연산 방법, 장치 및 기록매체에 관한 것으로서, 보다 상세하게는, 부동 소수점 형식의 입력값을 고정 소수점 기반의 프로세서에서 효율적으로 처리할 수 있도록 고정 소수점 형식으로 변환하는 고정 소수점 지수함수 연산 방법, 장치 및 기록매체에 관한 것이다.
새로운 알고리즘의 개발 등에 있어서 다양한 부동 소수점 비선형 함수들이 사용되는 것이 일반적이며, 각종 공학 분야에서 exponential 지수함수 등 다양한 지수함수들이 사용된다. 특히 MPEG에서 표준화된 오디오 코덱과 같은 경우 부동 소수점 기반으로 구성되는 등 부동 소수점 데이터의 처리는 공학 전반에 걸쳐 주요 관심분야에 속한다.
이러한 지수 함수를 포함한 오디오 코덱이나 다양한 알고리즘을 고정 소수점 기반의 프로세서에서 개발하거나, 고정 소수점 기반의 칩으로 개발하기 위해서는 부동 소수점 기반의 지수 함수를 고정 소수점 기반으로 개발해야 할 필요가 있다.
종래에는 고정 소수점 기반으로 개발하는 경우 커다란 테이블을 사용하거나 개발자가 원하는 수준의 정밀도에 능동적으로 대처하지 못하는 문제점이 있었다.
또한, 종래의 비선형 함수의 연산을 위한 연산 방법으로 Taylor-Maclaurin 급수를 기반으로 exponential 지수 함수를 구현한 방법이 있으나, 복잡도가 높은 나눗셈 연산을 사용하고 있으며, 오버플러우(overflow)가 쉽게 발생할 수 있는 문제점이 있었다.
따라서, 부동소수점 기반의 비선형 함수를 고정소수점 기반의 연산으로 수행하기 위한 보다 효율적인 연산 방법에 대한 기술개발이 요청된다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 부동소수점 기반의 입력값을 고정소수점 기반의 결과값으로 변환하여 고정소수점 기반에서 연산을 효율적으로 수행할 수 있도록 하고, 고정 소수점 형식으로 변환된 결과값의 정밀도를 조절 가능하도록 하는 고정 소수점 지수함수 연산 방법, 장치 및 기록매체를 제공하는데 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 측면에 따른 고정 소수점 지수함수 연산 방법은 임의의 입력값에 대하여 입력값을 지수함수의 지수로 하고, 미리 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수변환단계, 입력값의 데이터 형식 중 입력값의 비트(bit)수에 따라 입력값이 가질 수 있는 범위에 대응하는 출력값의 범위를 산출하는 출력값범위산출단계, 출력값 범위의 정밀도가 미리 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단단계, 출력값 범위의 정밀도가 정밀도요구값을 만족하지 않는 경우에는 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출단계, 스케일팩터를 출력값 범위의 하한값에 곱하는 연산을 통하여 출력값 범위를 갱신하는 출력값범위갱신단계 및 갱신된 출력값 범위의 정밀도가 정밀도요구값을 만족하는 경우 갱신된 출력값 범위 내에서 결과값을 산출하는 결과값산출단 계를 포함한다.
본 발명은 입력값이 고정 소수점 형식인지를 판단하는 입력값형식판단단계 및 입력값이 부동 소수점 형식이면 고정 소수점 형식으로 변환하는 고정소수점변환단계를 더 포함할 수 있다.
고정소수점변환단계는 입력값이 부동 소수점 형식인 경우 Q포맷을 적용하여 입력값을 고정소수점 형식으로 변환한다.
정밀도판단단계 내지 출력값범위갱신단계는 출력값 범위의 정밀도가 정밀도요구값을 만족할 때까지 반복될 수 있다.
진법수는 가변될 수 있다.
정밀도요구값은 산출되는 결과값의 유효숫자의 자릿수로서 미리 설정될 수 있다.
스케일팩터는 밑수에 대하여 입력값을 지수로 갖는 값으로 산출된다.
결과값산출단계는 출력값 범위 내의 중간값을 결과값으로 산출한다.
또한 본 발명의 다른 일측면에 따르면 임의의 입력값에 대하여 입력값을 지수함수의 지수로, 미리 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수형식변환부, 입력값의 데이터 형식 중 입력값의 비트수에 따라 입력값이 가질 수 있는 범위에 대응하는 출력값의 범위를 얻는 출력값범위산출부, 출력값 범위의 정밀도가 미리 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단부, 출력값 범위의 정밀도가 정밀도요구값을 만족하지 않는 경 우에는 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출부, 스케일팩터를 출력값 범위의 하한값에 곱하는 연산을 통하여 출력값 범위를 갱신하는 출력값범위갱신부 및 정밀도요구값을 만족하는 경우 출력값 범위 내에서 결과값을 산출하는 결과값산출부를 포함한다.
본 발명은 입력값이 고정 소수점 형식인지를 판단하여 입력값이 부동 소수점 형식이면 고정 소수점 형식으로 변환하는 고정소수점형식변환부를 더 포함할 수 있다.
고정소수점형식변환부는 입력값이 부동 소수점 형식인 경우 Q포맷을 적용하여 입력값을 고정소수점 형태로 변환한다.
진법수는 가변될 수 있다.
정밀도요구값은 산출되는 결과값의 유효숫자의 자릿수로서 미리 설정될 수 있다.
스케일팩터는 밑수에 대하여 입력값을 지수로 갖는 값으로 산출된다.
결과값산출부는 출력값 범위 내의 중간값을 결과값으로 산출한다.
또한 본 발명은 고정 소수점 지수함수 연산 방법을 컴퓨터에 실행시키기 위한 고정 소수점 지수함수 연산 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체인 것을 또 다른 특징으로 한다.
본 발명에 따르면, 출력값의 정밀도를 조절할 수 있으며 이에 따라 복잡도 또한 조절이 가능하다.
부동소수점 지수 함수가 사용되어 개발된 다양한 알고리즘에 능동적으로 대처 가능하며, 고정소수점 지수 함수 개발에 요구되는 테이블의 크기가 종래의 일반적으로 사용되는 테이블 기반의 고정 소수점 지수함수의 테이블보다 작아 효율적이다.
또한 연산방식이 곱셈으로 이루어져 있으므로 연산의 복잡도가 낮아 연산 속도가 빨라지는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시형태를 설명한다. 그러나, 본 발명의 실시형태는 여러가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로 한정되는 것은 아니다. 본 발명의 실시형태는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다.
도 1은 본 발명의 일실시예에 따른 고정 소수점 지수함수 연산 방법의 순서도이다.
입력값형식판단단계(S101)에서는 입력값이 고정 소수점 형식으로 표현되어 있는지 아니면 부동 소수점 형식으로 표현되어 있는지 여부를 판단한다.
고정 소수점 형식은 소수점이 최하위 비트의 바로 오른쪽에 있다고 가정한 것으로서 소수점이 없는 정수형 상수의 표현법이며, 부동 소수점 형식은 소수부와 지수부를 두어서 표현하는 실수 형태의 표현법이다.
고정 소수점 형식으로 표현된 경우 바로 지수함수변환단계(S103)로 진행되며, 부동 소수점 형식으로 표현된 경우 고정소수점변환단계(S102)로 진행된다. 이를 통하여 입력값의 형식과 관련 부동 소수점 형식 및 고정 소수점 형식 모두의 처리가 가능하다.
고정소수점변환단계(S102)는 입력값의 형식이 부동 소수점 형식인 경우 고정소수점형식변환부(201)를 통하여 입력값을 고정 소수점 형식으로 변환하는 단계이다. 고정 소수점으로의 변환은 Q포맷(Q format)을 적용하여 고정소수점 형태로 변환한다.
Q포맷은 부동 소수점 값을 고정 소수점 형식인 정수(integer)로 나타내기 위하여 일정한 값을 곱한 후 결과값에서 정수부분만을 획득하는 방법이다. 예컨대 Q15를 적용한다면 입력값에 을 곱한 결과값에서 정수 부분만을 산출하는 방법이 될 수 있다. Q포맷에서 입력값에 곱해지는 값은 본 발명이 적용되는 사용환경이나 입력되는 데이터 형식 등에 의해 적절하게 설정되는 것이 바람직하다.
지수함수변환단계(S103)는 고정 소수점 형식으로 변환된 입력값을 지수함수 형식으로 변환하는 단계이다. 사용되는 진법에 따라 지수함수의 밑수가 결정된다. 예를 들어 2진법의 경우 2가 되며, 10진법의 경우 10이 된다. 지수의 경우 고정소수점 형식의 입력값이 된다. 밑수의 경우 본 발명이 적용되는 사용환경에 따라 적 절하게 진법을 달리 설정될 수 있는 것이 바람직하다.
지수함수로 형식을 변환하는 이유는 하기 수학식 1에 나타나는 지수함수의 성질을 이용하기 위함이다.
이러한 성질을 이용하면 예를 들어 지수부분이 a.bcd 의 값을 갖는 경우 하기 수학식 2와 같이 표현될 수 있다.
지수함수의 상기 성질을 이용하여 임의의 입력값은 각 자릿수 별로 독립적으로 표현할 수 있으며, 이를 이용하여 이하에서 설명할 스케일팩터의 산출 및 정밀도의 조절이 가능하게 된다.
출력값범위산출단계(S104)는 입력값의 데이터 형식에 따른 입력값의 범위에 대응하는 출력값의 범위를 산출한다. 데이터 형식은 데이터를 기억 또는 입출력하 는 형태에 관한 규칙이며 입력값의 비트(bit)수에 의해 입력값이 표현될 수 있는 범위를 알 수 있다.
예컨대 입력이 8비트인 경우 출력값 범위의 하한은 각 비트가 모두 0의 값을 갖는 이 되며, 출력값 범위의 상한은 각 비트가 모두 1의 값을 갖는 것이 가장 큰 수가 되므로 이 될 것이다.
정밀도판단단계(S105)는 출력값의 범위가 사용자가 미리 설정한 범위에 속하는지 여부를 판단하는 단계로 결과값의 유효숫자의 자릿수가 정밀도를 판단하는 기준이 된다.
예컨대 입력이 8비트인 경우에 있어서 사용자가 ~ 범위에서 결과값을 산출되는 것을 원하는 경우 상기 범위를 요구되는 정밀도로 설정하면 이하에서 설명하는 스케일팩터에 의해 출력값이 갱신되어 사용자 설정 범위에 출력값의 범위가 전부 속하게 될 때 정밀도가 만족될 것이다. 이를 통하여 요구되는 정밀도에 대응한 조절이 가능하다.
스케일팩터산출단계(S106)는 출력값의 정밀도가 요구되는 기준에 만족되지 않는 경우에 있어서, 상기 수학식 2의 지수함수에서 지수의 덧셈은 각 지수를 갖는 지수함수간의 곱셈으로 나타나는 성질을 이용하여 입력값의 각 자릿수의 값에 대응하는 지수함수 값을 스케일팩터로 산출한다. 이는 하기 수학식 3에 의한다.
상기 식 중, 는 지수함수의 밑수이고, 는 스케일팩터이다. 스케일팩터의 윗첨자는 지수함수의 지수의 값으로 고정소수점 형식으로 표현된 입력값의 각 자릿수의 값에 해당되고, 스케일팩터의 아랫첨자는 지수가 입력값에서 위치하는 자릿수를 나타낸다. 일 예로 은 입력값의 두번째 자릿수의 값이 1이며 이에 대응하는 스케일팩터임을 나타낸다.
본 발명이 적용되는 진법수에 따라 각 자릿수에 대한 스케일팩터의 개수가 결정된다. 예를 들어 2진법인 경우(=2) 각 자릿수의 값은 0 또는 1이 되며 따라서 각 자릿수에 대한 스케일팩터는 2개가 될 것이다. 이 경우 첫째 자릿수에 대한 스케일 팩터는 , 이 되며, 입력값의 첫째 자릿수에 대응하는 출력값의 가능범위의 최대값은 + 와 같이 스케일팩터의 합으로 표현될 수 있다.
이러한 스케일팩터를 이용하면 예를 들어 지수부분이 10101101 의 값을 갖는 경우 하기 수학식 4와 같이 표현될 수 있다.
상기 식에 따라 고정 소수점 형식으로 표현된 입력값 10101101은 입력값의 각 자릿수의 값에 대응하는 스케일팩터 8개의 곱으로 나타낼 수 있다.
본 발명의 경우 요구되는 정밀도를 만족하는지 여부를 판단하여 만족하지 않는 경우 첫째 자릿수의 값에 대응하는 스케일팩터를 산출하여 이하에서 설명되는 출력값범위갱신단계(S107)에서 출력값의 범위를 갱신하여 좁히고, 다시 정밀도판단단계(S105)를 수행하게 된다.
다시 판단한 경우에도 출력값의 범위가 요구되는 정밀도를 만족시키지 못하는 경우에는 스케일팩터산출단계(S106)에서 두번째 자릿수의 값에 대응하는 스케일팩터를 산출하고 이를 이용하여 다시 출력값의 범위를 갱신하여 좁힌다.
즉, 요구되는 정밀도를 만족하는 때까지 상기 과정을 반복하며, 반복되는 과정에서 스케일팩터는 앞서 산출된 스케일팩터의 기준이 된 자릿수의 다음 자릿수의 값에 대응하는 스케일팩터로 산출된다.
본 발명의 일실시예에 따르면 본 발명의 고정 소수점 지수함수 연산 방법이 내장형 칩 등의 형태로 구현되는 경우에는 스케일팩터는 스케일팩터의 테이블을 저장하는 형태로 구현될 수 있다.
출력값범위갱신단계(S107)는 입력값의 자릿수의 값에 따라 출력값 범위의 하한 값에 입력값의 각 자릿수 값에 대응하는 스케일팩터의 값을 곱함으로써 출력값 범위를 갱신한다.
입력값의 데이터 형식에 따라 가능한 출력값의 범위가 산출되었으므로 이에 대해 각 자릿수의 값에 대응하는 스케일팩터를 적용하여 그 범위를 좁히는 단계이다. 요구되는 정밀도를 만족할 때까지 다음 자릿수에 대응하는 스케일팩터를 적용 하여 갱신과정을 반복한다.
도 3a 내지 도 3c는 본 발명의 일실시예에 따른 출력값의 범위의 최종결정 방법의 설명에 제공되는 도면이다.
임의의 입력 값에 의해 최초 출력값의 가능 범위가 정해지고, 각 자릿수에 대한 스케일팩터의 합은 그 자릿수에 대응하는 출력값의 범위의 최대값과 같으므로 입력값의 자릿수에 대응되는 스케일팩터를 출력값의 상한과 하한에 적용함으로써 범위를 좁히는 과정을 반복하여 출력값 범위의 정밀도를 높히게 된다.
예컨대 2진법을 사용하는 시스템이라 할 때, 고정소수점으로 표현한 입력 값이 10101101일 경우 최초 출력값의 범위는 도 3a와 같이 하한값이 , 상한값이 으로 나타날 것이다.
입력값의 첫째 자리의 값이 1이므로 이에 대응하는 스케일팩터 의 값은 이 되며, 이를 출력값의 하한값에 곱하면 갱신된 출력값의 범위의 하한값은 도 3b에 도시된 바와 같이 이 된다. 자릿수의 값이 1인 경우 하한값이 변경되는 이유는 입력값인 이 갱신된 하한값인 보다 크기 때문이다.
다음으로 둘째 자리의 값이 0이므로 이에 대응하는 스케일팩터 이 상한값에 적용되고 갱신된 출력값의 범위의 상한값은 도 3c에 도시된 바와 같이 이 된다. 자릿수의 값이 0인 경우 상한값이 변경되는 이유는 입력값인 이 갱신된 상한값인 보다 작기 때문이다. 이 경우 실질적인 계산은 이 되어 곱셈으로 구현이 가능할 것이다.
계속적으로 상기 과정을 입력값의 자릿수의 값에 따라 수행하며 미리 설정된 정밀도를 만족하는 경우까지 반복함으로써 요구되는 정밀도에 대응한 조절이 가능하다.
이상에서는 2진법을 기준으로 설명하였으나 그 이외의 진법에 의한 경우도 같은 원리로서 적용이 가능할 것이다.
결과값산출단계(S108)에서는 출력값 범위 내에서 결과값을 산출한다. 상기 과정을 거친 출력값의 범위는 요구되는 정밀도를 만족하므로, 최종 출력값의 범위내의 수치라면 어느 수치라도 결과값으로 산출되어도 무방하다. 본 발명의 일실시예에 의하면 결과값은 최종 출력값의 범위의 중간값으로 산출되는 것이 바람직하다.
도 2는 본 발명의 일실시예에 따른 고정 소수점 지수함수 연산 장치의 구성도이다.
도 2에 도시된 바와 같이 본 발명의 고정 소수점 지수함수 연산 장치는 입력값이 고정 소수점 형식인지를 판단하여 입력값이 부동 소수점 형식이면 고정 소수점 형식으로 변환하는 고정소수점형식변환부(201), 입력값을 지수함수의 지수로, 기 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수형식변환부(202), 입력값의 범위에 대응하는 출력값의 범위를 얻는 출력값범위산출부(203), 출력값 범위의 정밀도가 기 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단부(204), 출력값 범위의 정밀도가 정밀도요구값을 만족하지 않는 경우에는 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출부(205), 스케일팩터를 이용하여 출력값 범위를 갱신하는 출력값범위갱신부(206) 및 정밀도요구값을 만족하는 경우 출력값 범위 내에서 결과값을 산출하는 결과값산출부(207)를 포함한다.
고정소수점형식변환부(201)는 입력값이 고정 소수점 형식으로 표현되어 있는지 아니면 부동 소수점 형식으로 표현되어 있는지 여부를 판단하여 입력값의 형식이 부동 소수점 형식인 경우 입력값을 고정 소수점 형식으로 변환한다. 고정 소수점으로의 변환은 Q포맷(Q format)을 적용하여 고정소수점 형태로 변환한다.
지수함수변환부(202)는 고정 소수점 형식으로 변환된 입력값을 지수함수 형식으로 변환한다. 사용되는 진법에 따라 지수함수의 밑수가 결정된다. 지수의 경우 고정소수점 형식의 입력값이 지수가 된다. 밑수의 경우 본 발명이 적용되는 사용환경에 따라 적절하게 진법을 달리 설정될 수 있는 것이 바람직하다.
지수함수로 형식을 변환하는 이유는 상기 수학식 1에서 보는 바와 같이 지수함수의 지수부분이 합으로 표현되면, 전체식은 곱으로 표현되는 성질을 이용하기 위함이다.
이러한 성질을 이용하면 예를 들어 지수부분이 a.bcd 의 값을 갖는 경우 상기 수학식 2와 같이 표현될 수 있으며 이러한 지수함수의 성질을 이용하여 임의의 입력값은 각 자릿수 별로 독립적으로 표현할 수 있고, 스케일팩터의 산출 및 정밀도의 조절이 가능하게 된다.
출력값범위산출부(203)는 입력값의 데이터 형식에 따른 입력값의 범위에 대응하는 출력값의 범위를 산출한다. 데이터 형식이란 데이터를 기억 또는 입출력하는 형태에 관한 규칙으로 입력값의 비트(bit)수에 의해 입력값이 표현될 수 있는 범위를 알 수 있다. 최초의 출력값의 범위는 입력값의 범위의 하한과 상한을 각각 Q포맷한 값이 출력값의 범위의 하한과 상한으로 산출된다.
정밀도판단부(204)는 출력값의 범위가 사용자가 기 설정한 범위에 속하는지 여부를 판단하며 결과값의 유효숫자의 자릿수가 정밀도를 판단하는 기준이 된다. 사용자는 사용환경 등에 맞게 결과값의 유효숫자의 자릿수를 설정할 수 있으며, 이를 통하여 요구되는 정밀도의 조절이 가능하다.
스케일팩터산출부(205)는 출력값의 정밀도가 요구되는 기준에 만족되지 않는 경우에 있어서, 상기 수학식 2의 지수함수에서 지수의 덧셈은 각 지수를 갖는 지수함수간의 곱셈으로 나타나는 성질을 이용하여 입력값의 각 자릿수의 값에 대응하는 지수함수 값을 스케일팩터로 산출한다.
스케일팩터산출부(205)는 첫째 자릿수의 값에 대응하는 스케일팩터를 산출하며 갱신된 출력값의 범위가 여전히 요구 정밀도를 만족하지 않는 경우 요구되는 정밀도를 만족할 때까지 앞서 산출된 스케일팩터의 기준이 된 자릿수의 다음 자릿수의 값에 대응하는 스케일팩터를 산출한다.
본 발명의 일실시예에 따르면 본 발명이 내장형 칩 등의 형태로 구현되는 경 우에는 스케일팩터는 스케일팩터의 테이블을 저장하는 형태로 구현될 수 있다.
출력값범위갱신부(206)는 입력값의 자릿수의 값에 따라 출력값 범위의 하한 값에 입력값의 각 자릿수 값에 대응하는 스케일팩터의 값을 곱함으로써 출력값 범위를 갱신한다.
입력값의 데이터 형식에 따라 가능한 출력값의 범위가 산출되었으므로 이에 대해 각 자릿수의 값에 대응하는 스케일팩터를 적용하여 그 범위를 좁히며, 요구되는 정밀도를 만족할 때까지 다음 자릿수에 대응하는 스케일팩터를 적용하여 갱신과정을 반복한다.
결과값산출부(207)는 출력값 범위 내에서 결과값을 산출한다. 최종 출력값의 범위는 요구되는 정밀도를 만족하므로, 최종 출력값의 범위내의 수치라면 어느 수치를 결과값으로 산출하여도 무방하다. 본 발명의 일실시예에 의하면 결과값은 최종 출력값의 범위의 중간값으로 산출되는 것이 바람직할 것이다.
상기 고정 소수점 지수함수 연산 방법은 컴퓨터에서 실행시키기 위해 고정 소수점 지수함수 연산 프로그램으로 구현될 수 있으며, 이러한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니라, 첨부된 청구범위에 의해 해석되어야 한다. 또한, 본 발명에 대하여 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 형태의 치환, 변 형 및 변경이 가능하다는 것은 당해 기술분야의 통상의 지식을 가진 자에게 자명할 것이다.
도 1은 본 발명의 일실시예에 따른 고정 소수점 지수함수 연산 방법의 순서도이다.
도 2는 본 발명의 일실시예에 따른 고정 소수점 지수함수 연산 장치의 구성도이다.
도 3a 내지 도 3c는 본 발명의 일실시예에 따른 출력값의 범위의 최종결정 방법의 설명에 제공되는 도면이다.
<도면의 주요부분에 대한 부호의 설명>
200: 고정소수점 지수함수연산장치 201: 고정소수점형식변환부
202: 지수함수형식변환부 203: 출력값범위산출부
204: 정밀도판단부 205: 스케일팩터산출부
206: 출력값범위갱신부 207: 결과값산출부
Claims (16)
- 임의의 입력값에 대하여 상기 입력값을 지수함수의 지수로 하고, 미리 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수변환단계;상기 입력값의 데이터 형식 중 입력값의 비트(bit)수에 따라 상기 입력값이 가질 수 있는 범위에 대응하는 출력값의 범위를 산출하는 출력값범위산출단계;상기 출력값 범위의 정밀도가 미리 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단단계;상기 출력값 범위의 정밀도가 상기 정밀도요구값을 만족하지 않는 경우에는 상기 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출단계;상기 스케일팩터를 상기 출력값 범위의 하한값에 곱하는 연산을 통하여 출력값 범위를 갱신하는 출력값범위갱신단계; 및갱신된 출력값 범위의 정밀도가 상기 정밀도요구값을 만족하는 경우 상기 갱신된 출력값 범위 내에서 결과값을 산출하는 결과값산출단계;를 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 1항에 있어서,상기 입력값이 고정 소수점 형식인지를 판단하는 입력값형식판단단계; 및상기 입력값이 부동 소수점 형식이면 상기 고정 소수점 형식으로 변환하는 고정소수점변환단계;를 더 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 2항에 있어서, 상기 고정소수점변환단계는상기 입력값이 부동 소수점 형식인 경우 Q포맷을 적용하여 고정소수점 형식으로 변환하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 1항에 있어서,상기 정밀도판단단계 내지 상기 출력값범위갱신단계는상기 출력값 범위의 정밀도가 상기 정밀도요구값을 만족할 때까지 반복되는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 1항에 있어서, 상기 진법수는가변될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 1항에 있어서, 상기 정밀도요구값은상기 결과값의 유효숫자의 자릿수로서 미리 설정될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 1항에 있어서, 상기 스케일팩터는상기 밑수에 대하여 상기 입력값을 지수로 갖는 값으로 산출되는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 제 1항에 있어서, 상기 결과값산출단계는상기 갱신된 출력값 범위 내의 중간값을 결과값으로 산출하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
- 임의의 입력값에 대하여 상기 입력값을 지수함수의 지수로, 미리 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수형식변환부;상기 입력값의 데이터 형식 중 입력값의 비트수에 따라 입력값이 가질 수 있 는 범위에 대응하는 출력값의 범위를 얻는 출력값범위산출부;상기 출력값 범위의 정밀도가 미리 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단부;상기 출력값 범위의 정밀도가 상기 정밀도요구값을 만족하지 않는 경우에는 상기 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출부;상기 스케일팩터를 상기 출력값 범위의 하한값에 곱하는 연산을 통하여 출력값 범위를 갱신하는 출력값범위갱신부; 및상기 정밀도요구값을 만족하는 경우 출력값 범위 내에서 결과값을 산출하는 결과값산출부;를 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 9항에 있어서,상기 입력값이 고정 소수점 형식인지를 판단하여 상기 입력값이 부동 소수점 형식이면 고정 소수점 형식으로 변환하는 고정소수점형식변환부;를 더 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 10항에 있어서, 상기 고정소수점형식변환부는상기 입력값이 부동 소수점 형식인 경우 Q포맷을 적용하여 고정소수점 형식으로 변환하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 9항에 있어서, 상기 진법수는가변될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 9항에 있어서, 상기 정밀도요구값은상기 결과값의 유효숫자의 자릿수로서 미리 설정될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 9항에 있어서, 상기 스케일팩터는상기 밑수에 대하여 상기 입력값을 지수로 갖는 값으로 산출되는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 9항에 있어서, 상기 결과값산출부는상기 갱신된 출력값 범위 내의 중간값을 결과값으로 산출하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
- 제 1항 내지 제 8항 중 어느 한 항에 기재된 고정 소수점 지수함수 연산 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090104896A KR101084581B1 (ko) | 2009-11-02 | 2009-11-02 | 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090104896A KR101084581B1 (ko) | 2009-11-02 | 2009-11-02 | 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110048200A KR20110048200A (ko) | 2011-05-11 |
KR101084581B1 true KR101084581B1 (ko) | 2011-11-17 |
Family
ID=44239396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090104896A KR101084581B1 (ko) | 2009-11-02 | 2009-11-02 | 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101084581B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593625B2 (en) | 2017-10-19 | 2023-02-28 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102252375B1 (ko) | 2014-09-18 | 2021-05-14 | 삼성전자주식회사 | 광선-노드 교차검사를 수행하는 방법 및 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100443395B1 (ko) | 2000-11-13 | 2004-08-23 | 엔이씨 일렉트로닉스 가부시키가이샤 | 축소된 회로 규모로 고정 소수점 데이터를 생성하는 회로및 방법 |
WO2008016438A2 (en) | 2006-08-01 | 2008-02-07 | Brainmedia Llc | Method for reducing round-off error in fixed-point arithmetic |
-
2009
- 2009-11-02 KR KR1020090104896A patent/KR101084581B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100443395B1 (ko) | 2000-11-13 | 2004-08-23 | 엔이씨 일렉트로닉스 가부시키가이샤 | 축소된 회로 규모로 고정 소수점 데이터를 생성하는 회로및 방법 |
WO2008016438A2 (en) | 2006-08-01 | 2008-02-07 | Brainmedia Llc | Method for reducing round-off error in fixed-point arithmetic |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593625B2 (en) | 2017-10-19 | 2023-02-28 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
Also Published As
Publication number | Publication date |
---|---|
KR20110048200A (ko) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451658B (zh) | 浮点运算定点化方法及系统 | |
CN101133389B (zh) | 多用途乘法-加法功能单元 | |
EP1857925A2 (en) | Method and apparatus for decimal number multiplication using hardware for binary number operations | |
WO2002023326A1 (en) | Handler for floating-point denormalized numbers | |
KR20120053344A (ko) | 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 | |
KR101084581B1 (ko) | 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 | |
JP2021056734A (ja) | 情報処理装置、情報処理方法、情報処理プログラム | |
US20030191788A1 (en) | Method of performing quantization within a multimedia bitstream utilizing division-free instructions | |
KR100847934B1 (ko) | 스케일링된 정수를 사용하는 부동 소수점 연산 | |
JP6290886B2 (ja) | 装飾構成に基づくモーダル区間計算 | |
US20070266073A1 (en) | Method and apparatus for decimal number addition using hardware for binary number operations | |
KR101107923B1 (ko) | 부호대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산 | |
Boldo et al. | Some functions computable with a fused-mac | |
JP2010218197A (ja) | 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム | |
US20220291899A1 (en) | Processing unit, method and computer program for multiplication | |
WO2009017849A1 (en) | Method and system for creating fixed-point software code | |
CN114691082A (zh) | 乘法器电路、芯片、电子设备及计算机可读存储介质 | |
Hass | Synthesizing optimal fixed-point arithmetic for embedded signal processing | |
Campos et al. | FPGA implementation of custom floating-point logarithm and division | |
JP4243277B2 (ja) | データ処理装置 | |
JP4528924B2 (ja) | 量子化ステップパラメータ初期値決定装置および量子化ステップパラメータ初期値決定方法、並びに量子化ステップパラメータ初期値決定プログラム | |
CN117270813A (zh) | 运算器、处理器和电子设备 | |
WO2023004799A1 (zh) | 电子设备及神经网络量化方法 | |
KR940008610B1 (ko) | 고속 수렴 인자 결정 방법 및 프로세서 | |
JP2002344316A (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 | ||
LAPS | Lapse due to unpaid annual fee |