KR101084581B1 - 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 - Google Patents

고정 소수점 지수함수 연산 방법, 장치 및 기록매체 Download PDF

Info

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
Application number
KR1020090104896A
Other languages
English (en)
Other versions
KR20110048200A (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 KR1020090104896A priority Critical patent/KR101084581B1/ko
Publication of KR20110048200A publication Critical patent/KR20110048200A/ko
Application granted granted Critical
Publication of KR101084581B1 publication Critical patent/KR101084581B1/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/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/544Methods 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/556Logarithmic or exponential functions
    • 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

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

고정 소수점 지수함수 연산 방법, 장치 및 기록매체{Method and Apparatus for Operating of Fixed-point Exponential Function, and Recording Medium thereof}
본 발명은 고정 소수점 지수함수 연산 방법, 장치 및 기록매체에 관한 것으로서, 보다 상세하게는, 부동 소수점 형식의 입력값을 고정 소수점 기반의 프로세서에서 효율적으로 처리할 수 있도록 고정 소수점 형식으로 변환하는 고정 소수점 지수함수 연산 방법, 장치 및 기록매체에 관한 것이다.
새로운 알고리즘의 개발 등에 있어서 다양한 부동 소수점 비선형 함수들이 사용되는 것이 일반적이며, 각종 공학 분야에서 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를 적용한다면 입력값에
Figure 112009067182131-pat00001
을 곱한 결과값에서 정수 부분만을 산출하는 방법이 될 수 있다. Q포맷에서 입력값에 곱해지는 값은 본 발명이 적용되는 사용환경이나 입력되는 데이터 형식 등에 의해 적절하게 설정되는 것이 바람직하다.
지수함수변환단계(S103)는 고정 소수점 형식으로 변환된 입력값을 지수함수 형식으로 변환하는 단계이다. 사용되는 진법에 따라 지수함수의 밑수가 결정된다. 예를 들어 2진법의 경우 2가 되며, 10진법의 경우 10이 된다. 지수의 경우 고정소수점 형식의 입력값이 된다. 밑수의 경우 본 발명이 적용되는 사용환경에 따라 적 절하게 진법을 달리 설정될 수 있는 것이 바람직하다.
지수함수로 형식을 변환하는 이유는 하기 수학식 1에 나타나는 지수함수의 성질을 이용하기 위함이다.
Figure 112009067182131-pat00002
상기 식 중,
Figure 112009067182131-pat00003
는 지수함수의 밑수이며,
Figure 112009067182131-pat00004
는 지수함수의 지수이다. 상기 식에서 보는 바와 같이 지수함수의 지수부분이 합으로 표현되면, 전체식은 곱으로 표현된다.
이러한 성질을 이용하면 예를 들어 지수부분이 a.bcd 의 값을 갖는 경우 하기 수학식 2와 같이 표현될 수 있다.
Figure 112009067182131-pat00005
상기 식 중,
Figure 112009067182131-pat00006
는 지수함수의 밑수이고,
Figure 112009067182131-pat00007
는 지수함수의 지수이며
Figure 112009067182131-pat00008
,
Figure 112009067182131-pat00009
,
Figure 112009067182131-pat00010
Figure 112009067182131-pat00011
는 각 자릿수의 값에 해당된다.
지수함수의 상기 성질을 이용하여 임의의 입력값은 각 자릿수 별로 독립적으로 표현할 수 있으며, 이를 이용하여 이하에서 설명할 스케일팩터의 산출 및 정밀도의 조절이 가능하게 된다.
출력값범위산출단계(S104)는 입력값의 데이터 형식에 따른 입력값의 범위에 대응하는 출력값의 범위를 산출한다. 데이터 형식은 데이터를 기억 또는 입출력하 는 형태에 관한 규칙이며 입력값의 비트(bit)수에 의해 입력값이 표현될 수 있는 범위를 알 수 있다.
예컨대 입력이 8비트인 경우 출력값 범위의 하한은 각 비트가 모두 0의 값을 갖는
Figure 112009067182131-pat00012
이 되며, 출력값 범위의 상한은 각 비트가 모두 1의 값을 갖는 것이 가장 큰 수가 되므로
Figure 112009067182131-pat00013
이 될 것이다.
정밀도판단단계(S105)는 출력값의 범위가 사용자가 미리 설정한 범위에 속하는지 여부를 판단하는 단계로 결과값의 유효숫자의 자릿수가 정밀도를 판단하는 기준이 된다.
예컨대 입력이 8비트인 경우에 있어서 사용자가
Figure 112009067182131-pat00014
~
Figure 112009067182131-pat00015
범위에서 결과값을 산출되는 것을 원하는 경우 상기 범위를 요구되는 정밀도로 설정하면 이하에서 설명하는 스케일팩터에 의해 출력값이 갱신되어 사용자 설정 범위에 출력값의 범위가 전부 속하게 될 때 정밀도가 만족될 것이다. 이를 통하여 요구되는 정밀도에 대응한 조절이 가능하다.
스케일팩터산출단계(S106)는 출력값의 정밀도가 요구되는 기준에 만족되지 않는 경우에 있어서, 상기 수학식 2의 지수함수에서 지수의 덧셈은 각 지수를 갖는 지수함수간의 곱셈으로 나타나는 성질을 이용하여 입력값의 각 자릿수의 값에 대응하는 지수함수 값을 스케일팩터로 산출한다. 이는 하기 수학식 3에 의한다.
Figure 112009067182131-pat00016
상기 식 중,
Figure 112009067182131-pat00017
는 지수함수의 밑수이고,
Figure 112009067182131-pat00018
는 스케일팩터이다. 스케일팩터의 윗첨자는 지수함수의 지수의 값으로 고정소수점 형식으로 표현된 입력값의 각 자릿수의 값에 해당되고, 스케일팩터의 아랫첨자는 지수가 입력값에서 위치하는 자릿수를 나타낸다. 일 예로
Figure 112009067182131-pat00019
은 입력값의 두번째 자릿수의 값이 1이며 이에 대응하는 스케일팩터임을 나타낸다.
본 발명이 적용되는 진법수에 따라 각 자릿수에 대한 스케일팩터의 개수가 결정된다. 예를 들어 2진법인 경우(
Figure 112009067182131-pat00020
=2) 각 자릿수의 값은 0 또는 1이 되며 따라서 각 자릿수에 대한 스케일팩터는 2개가 될 것이다. 이 경우 첫째 자릿수에 대한 스케일 팩터는
Figure 112009067182131-pat00021
,
Figure 112009067182131-pat00022
이 되며, 입력값의 첫째 자릿수에 대응하는 출력값의 가능범위의 최대값은
Figure 112009067182131-pat00023
+
Figure 112009067182131-pat00024
와 같이 스케일팩터의 합으로 표현될 수 있다.
이러한 스케일팩터를 이용하면 예를 들어 지수부분이 10101101 의 값을 갖는 경우 하기 수학식 4와 같이 표현될 수 있다.
Figure 112009067182131-pat00025
상기 식에 따라 고정 소수점 형식으로 표현된 입력값 10101101은 입력값의 각 자릿수의 값에 대응하는 스케일팩터 8개의 곱으로 나타낼 수 있다.
본 발명의 경우 요구되는 정밀도를 만족하는지 여부를 판단하여 만족하지 않는 경우 첫째 자릿수의 값에 대응하는 스케일팩터를 산출하여 이하에서 설명되는 출력값범위갱신단계(S107)에서 출력값의 범위를 갱신하여 좁히고, 다시 정밀도판단단계(S105)를 수행하게 된다.
다시 판단한 경우에도 출력값의 범위가 요구되는 정밀도를 만족시키지 못하는 경우에는 스케일팩터산출단계(S106)에서 두번째 자릿수의 값에 대응하는 스케일팩터를 산출하고 이를 이용하여 다시 출력값의 범위를 갱신하여 좁힌다.
즉, 요구되는 정밀도를 만족하는 때까지 상기 과정을 반복하며, 반복되는 과정에서 스케일팩터는 앞서 산출된 스케일팩터의 기준이 된 자릿수의 다음 자릿수의 값에 대응하는 스케일팩터로 산출된다.
본 발명의 일실시예에 따르면 본 발명의 고정 소수점 지수함수 연산 방법이 내장형 칩 등의 형태로 구현되는 경우에는 스케일팩터는 스케일팩터의 테이블을 저장하는 형태로 구현될 수 있다.
출력값범위갱신단계(S107)는 입력값의 자릿수의 값에 따라 출력값 범위의 하한 값에 입력값의 각 자릿수 값에 대응하는 스케일팩터의 값을 곱함으로써 출력값 범위를 갱신한다.
입력값의 데이터 형식에 따라 가능한 출력값의 범위가 산출되었으므로 이에 대해 각 자릿수의 값에 대응하는 스케일팩터를 적용하여 그 범위를 좁히는 단계이다. 요구되는 정밀도를 만족할 때까지 다음 자릿수에 대응하는 스케일팩터를 적용 하여 갱신과정을 반복한다.
도 3a 내지 도 3c는 본 발명의 일실시예에 따른 출력값의 범위의 최종결정 방법의 설명에 제공되는 도면이다.
임의의 입력 값에 의해 최초 출력값의 가능 범위가 정해지고, 각 자릿수에 대한 스케일팩터의 합은 그 자릿수에 대응하는 출력값의 범위의 최대값과 같으므로 입력값의 자릿수에 대응되는 스케일팩터를 출력값의 상한과 하한에 적용함으로써 범위를 좁히는 과정을 반복하여 출력값 범위의 정밀도를 높히게 된다.
예컨대 2진법을 사용하는 시스템이라 할 때, 고정소수점으로 표현한 입력 값이 10101101일 경우 최초 출력값의 범위는 도 3a와 같이 하한값이
Figure 112009067182131-pat00026
, 상한값이
Figure 112009067182131-pat00027
으로 나타날 것이다.
입력값의 첫째 자리의 값이 1이므로 이에 대응하는 스케일팩터
Figure 112009067182131-pat00028
의 값은
Figure 112009067182131-pat00029
이 되며, 이를 출력값의 하한값에 곱하면 갱신된 출력값의 범위의 하한값은 도 3b에 도시된 바와 같이
Figure 112009067182131-pat00030
이 된다. 자릿수의 값이 1인 경우 하한값이 변경되는 이유는 입력값인
Figure 112009067182131-pat00031
이 갱신된 하한값인
Figure 112009067182131-pat00032
보다 크기 때문이다.
다음으로 둘째 자리의 값이 0이므로 이에 대응하는 스케일팩터
Figure 112009067182131-pat00033
이 상한값에 적용되고 갱신된 출력값의 범위의 상한값은 도 3c에 도시된 바와 같이
Figure 112009067182131-pat00034
이 된다. 자릿수의 값이 0인 경우 상한값이 변경되는 이유는 입력값인
Figure 112009067182131-pat00035
이 갱신된 상한값인
Figure 112009067182131-pat00036
보다 작기 때문이다. 이 경우 실질적인 계산은
Figure 112009067182131-pat00037
이 되어 곱셈으로 구현이 가능할 것이다.
계속적으로 상기 과정을 입력값의 자릿수의 값에 따라 수행하며 미리 설정된 정밀도를 만족하는 경우까지 반복함으로써 요구되는 정밀도에 대응한 조절이 가능하다.
이상에서는 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)

  1. 임의의 입력값에 대하여 상기 입력값을 지수함수의 지수로 하고, 미리 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수변환단계;
    상기 입력값의 데이터 형식 중 입력값의 비트(bit)수에 따라 상기 입력값이 가질 수 있는 범위에 대응하는 출력값의 범위를 산출하는 출력값범위산출단계;
    상기 출력값 범위의 정밀도가 미리 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단단계;
    상기 출력값 범위의 정밀도가 상기 정밀도요구값을 만족하지 않는 경우에는 상기 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출단계;
    상기 스케일팩터를 상기 출력값 범위의 하한값에 곱하는 연산을 통하여 출력값 범위를 갱신하는 출력값범위갱신단계; 및
    갱신된 출력값 범위의 정밀도가 상기 정밀도요구값을 만족하는 경우 상기 갱신된 출력값 범위 내에서 결과값을 산출하는 결과값산출단계;
    를 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  2. 제 1항에 있어서,
    상기 입력값이 고정 소수점 형식인지를 판단하는 입력값형식판단단계; 및
    상기 입력값이 부동 소수점 형식이면 상기 고정 소수점 형식으로 변환하는 고정소수점변환단계;
    를 더 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  3. 제 2항에 있어서, 상기 고정소수점변환단계는
    상기 입력값이 부동 소수점 형식인 경우 Q포맷을 적용하여 고정소수점 형식으로 변환하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  4. 제 1항에 있어서,
    상기 정밀도판단단계 내지 상기 출력값범위갱신단계는
    상기 출력값 범위의 정밀도가 상기 정밀도요구값을 만족할 때까지 반복되는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  5. 제 1항에 있어서, 상기 진법수는
    가변될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  6. 제 1항에 있어서, 상기 정밀도요구값은
    상기 결과값의 유효숫자의 자릿수로서 미리 설정될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  7. 제 1항에 있어서, 상기 스케일팩터는
    상기 밑수에 대하여 상기 입력값을 지수로 갖는 값으로 산출되는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  8. 제 1항에 있어서, 상기 결과값산출단계는
    상기 갱신된 출력값 범위 내의 중간값을 결과값으로 산출하는 것을 특징으로 하는 고정 소수점 지수함수 연산 방법.
  9. 임의의 입력값에 대하여 상기 입력값을 지수함수의 지수로, 미리 설정된 진법의 진법수를 지수함수의 밑수로 하여 지수함수 형식으로 변환하는 지수함수형식변환부;
    상기 입력값의 데이터 형식 중 입력값의 비트수에 따라 입력값이 가질 수 있 는 범위에 대응하는 출력값의 범위를 얻는 출력값범위산출부;
    상기 출력값 범위의 정밀도가 미리 설정된 정밀도요구값을 만족하는지 여부를 판단하는 정밀도판단부;
    상기 출력값 범위의 정밀도가 상기 정밀도요구값을 만족하지 않는 경우에는 상기 입력값의 각 자릿수의 값에 대응하는 스케일팩터(scale factor)를 산출하는 스케일팩터산출부;
    상기 스케일팩터를 상기 출력값 범위의 하한값에 곱하는 연산을 통하여 출력값 범위를 갱신하는 출력값범위갱신부; 및
    상기 정밀도요구값을 만족하는 경우 출력값 범위 내에서 결과값을 산출하는 결과값산출부;
    를 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  10. 제 9항에 있어서,
    상기 입력값이 고정 소수점 형식인지를 판단하여 상기 입력값이 부동 소수점 형식이면 고정 소수점 형식으로 변환하는 고정소수점형식변환부;
    를 더 포함하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  11. 제 10항에 있어서, 상기 고정소수점형식변환부는
    상기 입력값이 부동 소수점 형식인 경우 Q포맷을 적용하여 고정소수점 형식으로 변환하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  12. 제 9항에 있어서, 상기 진법수는
    가변될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  13. 제 9항에 있어서, 상기 정밀도요구값은
    상기 결과값의 유효숫자의 자릿수로서 미리 설정될 수 있는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  14. 제 9항에 있어서, 상기 스케일팩터는
    상기 밑수에 대하여 상기 입력값을 지수로 갖는 값으로 산출되는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  15. 제 9항에 있어서, 상기 결과값산출부는
    상기 갱신된 출력값 범위 내의 중간값을 결과값으로 산출하는 것을 특징으로 하는 고정 소수점 지수함수 연산 장치.
  16. 제 1항 내지 제 8항 중 어느 한 항에 기재된 고정 소수점 지수함수 연산 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020090104896A 2009-11-02 2009-11-02 고정 소수점 지수함수 연산 방법, 장치 및 기록매체 KR101084581B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102252375B1 (ko) 2014-09-18 2021-05-14 삼성전자주식회사 광선-노드 교차검사를 수행하는 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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