KR20160033550A - 표현 가능한 수의 범위를 조절하는 방법 및 장치 - Google Patents

표현 가능한 수의 범위를 조절하는 방법 및 장치 Download PDF

Info

Publication number
KR20160033550A
KR20160033550A KR1020140124635A KR20140124635A KR20160033550A KR 20160033550 A KR20160033550 A KR 20160033550A KR 1020140124635 A KR1020140124635 A KR 1020140124635A KR 20140124635 A KR20140124635 A KR 20140124635A KR 20160033550 A KR20160033550 A KR 20160033550A
Authority
KR
South Korea
Prior art keywords
exponent
floating
bit configuration
value
mantissa
Prior art date
Application number
KR1020140124635A
Other languages
English (en)
Other versions
KR102165268B1 (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 KR1020140124635A priority Critical patent/KR102165268B1/ko
Priority to US14/665,205 priority patent/US9811317B2/en
Publication of KR20160033550A publication Critical patent/KR20160033550A/ko
Application granted granted Critical
Publication of KR102165268B1 publication Critical patent/KR102165268B1/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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/483Indexing scheme relating to group G06F7/483

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Analogue/Digital Conversion (AREA)
  • Complex Calculations (AREA)

Abstract

지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받고, 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 지수와 가수의 비트 구성을 결정하고, 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정하는, 표현 가능한 수의 범위를 조절하는 방법 및 장치가 개시된다.

Description

표현 가능한 수의 범위를 조절하는 방법 및 장치{THE METHOD AND APPARAUTS FOR CONTROLLING RANGE OF REPRESENTABLE NUMBER}
부동 소수점이 표현 가능한 수의 범위를 조절하는 방법 및 장치에 관한다.
그래픽 처리분야에서, 정확한 모델링과 계산을 위해 부동 소수점 방식을 주로 사용한다. 컴퓨터 시스템에서 소수를 표현하는 방법에는 두가지 방법이 있다. 고정 소수점 방식은 정수를 표현할 때와 같은 방식으로 소수를 표현하는 것으로 소수를 위한 부분을 하위 비트에 할당한다. 부동 소수점 방식은 지수 부분과 가수 부분으로 나누어 표현하는 방식이다.
부동 소수점이 표현 가능한수의 범위를 조절하는 방법 및 장치에 관한다. 또한 하드웨어가 결합되어 상기 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다. 해결하고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 측면에 따르면, 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받는 단계, 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 지수와 가수의 비트 구성을 결정하는 단계, 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정하는 단계를 포함하는 표현 가능한 수의 범위를 조절하는 방법을 개시한다.
또한, 결정된 비트 구성에 따라 지수 또는 부동 소수점 값의 가수를 기 설정된 비트 수만큼 자리 이동하는 단계를 더 포함하고, 상수값을 결정하는 단계는, 자리 이동한 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다.
또한, 결정된 비트 구성에 따른 지수, 결정된 비트 구성에 따른 가수 및 결정된 상수값을 이용하여 부동 소수점 값을 연산하는 단계를 더 포함할 수 있다.
또한, 결정된 비트 구성을 이용하여, 연산한 값의 지수부분 및 가수부분을 결정하는 단계를 더 포함할 수 있다.
또한, 결정된 가수부분의 가수를 반올림하는 단계를 더 포함할 수 있다.
또한, 지수부분 및 가수부분을 결정하는 단계는, 결정된 지수부분의 지수를, 결정된 비트 구성을 이용하여 기 설정된 비트 수만큼 자리 이동할 수 있다.
또한, 지수 및 가수를 포함한 부동 소수점 값을 출력할 수 있다.
또한 입력받는 단계는, 부동 소수점 값의 지수의 최상위 비트가 기 설정된 값으로 변환된 부동 소수점 값을 입력받을 수 있다.
또한 비트 구성을 결정하는 단계는, 부동 소수점 값의 지수의 최상위 비트에서부터 기 설정된 개수의 상위 비트들의 값에 따라 부동 소수점 값의 비트 구성을 결정할 수 있다.
다른 일 측면에 따르면, 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받는 입력부, 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 비트 구성을 결정하는 비트 구성 결정부, 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정하는 상수값 결정부를 포함하는 표현 가능한 수의 범위를 조절하는 장치를 개시한다.
또한, 결정된 비트 구성에 따라 지수 또는 부동 소수점 값의 가수를 기 설정된 비트 수만큼 자리 이동하는 자리 이동부를 더 포함하고, 상수값 결정부는, 자리 이동한 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다.
또한, 결정된 비트 구성에 따른 지수, 결정된 비트 구성에 따른 가수 및 결정된 상수값을 이용하여 부동 소수점 값을 연산하는 연산부를 더 포함할 수 있다.
또한, 결정된 비트 구성을 이용하여, 연산한 값의 지수부분 및 가수부분을 결정하는 지수가수 결정부를 더 포함할 수 있다.
또한, 결정된 가수부분의 가수를 반올림하는 반올림부를 더 포함할 수 있다.
또한, 지수가수 결정부는, 결정된 지수 부분의 지수를, 결정된 비트 구성을 이용하여 기 설정된 비트 수만큼 자리 이동할 수 있다.
또한, 지수 및 가수를 포함한 부동 소수점 값을 출력할 수 있다.
또한, 입력부는, 부동 소수점 값의 지수의 최상위 비트가 기 설정된 값으로 변환된 부동 소수점 값을 입력받을 수 있다.
또한, 비트 구성 결정부는, 부동 소수점 값의 지수의 최상위 비트에서부터 기 설정된 개수의 상위 비트들의 값에 따라 부동 소수점 값의 비트 구성을 결정할 수 있다.
도 1은 일 실시예에 따른 표현 가능한 수의 범위를 조절하는 장치의 구성도를 도시한 도면이다.
도 2는 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 장치의 구성도를 도시한 도면이다.
도 3은 일 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다.
도 4은 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다.
도 5는 또 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다.
도 6은 또 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법의 흐름도를 도시한 도면이다.
도 8은 또 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법의 흐름도를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.
도 1은 일 실시예에 따른 표현 가능한 수의 범위를 조절하는 장치의 구성도를 도시한 도면이다. 표현 가능한 수의 범위를 조절하는 장치(100)는 입력부(110), 비트 구성 결정부(120) 및 상수값 결정부(130)를 포함할 수 있다.
부동 소수점 값을 표현하는 방식에는 반정밀방식(half precision), 기본정밀방식(single precision), 더블정밀방식(double precision) 등을 포함할 수 있다. 반정밀방식은 16비트로 구성되고, 지수부는 5비트, 가수부는 10비트로 표현가능한 수의 범위는 이다. 반정밀방식은 정밀도보다는 저전력이 요구되는 경우에 주로 사용된다. 기본정밀방식은 32비트로 구성되고, 지수부는 8비트, 가수부는 23비트로, 표현가능한 수의 범위는 이다. 기본 정밀 방식은 범용적으로 사용되는 방식이다. 더블정밀방식은 64비트로 구성되고, 지수부는 11비트, 가수부는 52비트로, 표현가능한 수의 범위는 이다. 더블정밀방식은 고도로 정밀한 계산이 필요한 경우에 사용된다.
입력부(110)는 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받을 수 있다. 예를 들면, 16비트로 표현되는 부동 소수점 값에 대해서, 부호비트는 1비트, 지수는 5비트, 가수는 10비트로 표현될 수 있다. 입력부(110)는 지수는 5비트, 가수는 10비트로 표현된 부동 소수점 값을 입력받을 수 있다. 입력부(110)는 부동 소수점 값의 지수의 최상위 비트가 기 설정된 값으로 변환된 부동 소수점 값을 입력받을 수 있다. 예를 들면 입력부(110)는 부동 소수점 값의 지수의 최상위 비트가, 비트 구성을 결정하기 위한 비트로 0 또는 1로 변환된 값을 입력받을 수 있다.
비트 구성 결정부(120)는 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 비트 구성을 결정할 수 있다. 또한 비트 구성 결정부(120)는 부동 소수점 값의 지수의 최상위 비트에서부터 기 설정된 개수의 상위 비트들의 값에 따라 부동 소수점 값의 비트 구성을 결정할 수 있다. 예를 들면, 입력받은16비트의 부동 소수점 값이, 부호비트는 1비트, 지수는 5비트, 가수는 10비트라고 가정해보자. 지수의 최상위 비트의 값이 0이면 지수는 4비트, 가수는 10비트로 비트 구성을 결정할 수 있다. 지수의 최상위 비트의 값이 1이면 지수는 5비트, 가수는 9비트로 비트 구성을 결정할 수 있다.
상수값 결정부(130)는 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다. 상수 값 결정부(130)는 자리 이동한 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다. 예를 들면, 지수가 4비트로 결정된 경우, 지수는 -6 부터 7까지를 표현할 수 있다. 그러나 상수값 결정부(120)는 음수가 아닌 양수만으로 지수를 저장하기 위해 원래의 지수값에 대해, 부동 소수점 값의 연산에 필요한 상수값으로 7을 결정할 수 있다. 예를 들면, 지수가 -6인경우에, 지수에 상수값인 7을 더한 값인 1을 지수로 저장할 수 있다. 즉 상수값 결정부(130)는 지수의 최상위 비트의 값에 따라 상수값을 결정할 수 있다.
도 2는 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 장치의 구성도를 도시한 도면이다. 표현 가능한 수의 범위를 조절하는 장치(200)는 입력부(110), 비트 구성 결정부(120), 상수값 결정부(130), 자리 이동부(210), 연산부(220), 지수가수 결정부(230), 반올림부(240), 출력부(250)를 포함할 수 있다.
입력부(110)는 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받을 수 있다. 예를 들면, 16비트로 표현되는 부동 소수점 값에 대해서, 부호비트는 1비트, 지수는 5비트, 가수는 10비트로 표현될 수 있다. 입력부(110)는 지수는 5비트, 가수는 10비트로 표현된 부동 소수점 값을 입력받을 수 있다. 입력부(110)는 부동 소수점 값의 지수의 최상위 비트가 기 설정된 값으로 변환된 부동 소수점 값을 입력받을 수 있다. 예를 들면 입력부(110)는 부동 소수점 값의 지수의 최상위 비트가, 비트 구성을 결정하기 위한 비트로 0 또는 1로 변환된 값을 입력받을 수 있다.
비트 구성 결정부(120)는 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 비트 구성을 결정할 수 있다. 또한 비트 구성 결정부(120)는 부동 소수점 값의 지수의 최상위 비트에서부터 기 설정된 개수의 상위 비트들의 값에 따라 부동 소수점 값의 비트 구성을 결정할 수 있다. 예를 들면, 입력받은16비트의 부동 소수점 값이, 부호비트는 1비트, 지수는 5비트, 가수는 10비트라고 가정해보자. 지수의 최상위 비트의 값이 0이면 지수는 4비트, 가수는 10비트로 비트 구성을 결정할 수 있다. 지수의 최상위 비트의 값이 1이면 지수는 5비트, 가수는 9비트로 비트 구성을 결정할 수 있다.
상수값 결정부(130)는 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다. 상수 값 결정부(130)는 자리 이동한 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다. 예를 들면, 지수가 4비트로 결정된 경우, 지수는 -6 부터 7까지를 표현할 수 있다. 그러나 상수값 결정부(130)는 음수가 아닌 양수만으로 지수를 저장하기 위해 원래의 지수값에 대해, 부동 소수점 값의 연산에 필요한 상수값으로 7을 결정할 수 있다. 예를 들면, 지수가 -6인경우에, 지수에 상수값인 7을 더한 값인 1을 지수로 저장할 수 있다. 즉 상수값 결정부(130)는 지수의 최상위 비트의 값에 따라 상수값을 결정할 수 있다.
자리이동부(210)는, 결정된 비트 구성에 따라 지수 또는 부동 소수점 값의 가수를 기 설정된 비트 수만큼 자리 이동할 수 있다. 예를 들면, 지수가 4비트로 결정되면, 자리이동부(210)는 지수의 자리를 이동하지 않고, 지수가 5비트로 결정되면 자리이동부(210)는 지수를 한자리 좌측으로 자리이동할 수 있다. 왜냐하면, 지수가 4비트로 결정된 경우와 지수가 5비트로 결정된 경우 모두에 대하여, 같은 자리로 맞춰서 연산할 수 있도록 하기 위함이다. 또한, 지수가 4비트로 결정되어 가수가 10비트일 경우에는, 자리이동부(210)는 가수의 자리를 이동하지 않고, 지수가 5비트로 결정되어 가수가 9비트일 경우에는 가수 오른쪽에 0을 더 붙이고 한자리 좌측으로 가수를 자리이동 할 수 있다. 왜냐하면 가수가 10비트일 경우와 9비트일 경우 모두에 대하여 같은 형식으로 연산할 수 있도록 하기 위함이다.
연산부(220)는, 결정된 비트 구성에 따른 지수, 결정된 비트 구성에 따른 가수 및 결정된 상수값을 이용하여 부동 소수점 값을 연산할 수 있다. 예를 들면, 부동 소수점 값을 다른 값과 더하기, 빼기, 곱하기 및 나누기 등의 연산을 할 수 있다.
지수가수 결정부(230)는 결정된 비트 구성을 이용하여, 연산한 값의 지수부분 및 가수부분을 결정할 수 있다. 지수가수 결정부(230)는 결정된 지수부분의 지수를, 결정된 비트 구성을 이용하여 기 설정된 비트 수만큼 자리 이동할 수 있다. 예를 들면, 지수가수 결정부(230)는 연산한 부동 소수점 값에서 지수에 해당하는 지수부분과 가수에 해당하는 가수부분을 비트 구성 결정부(120)가 결정한 비트 구성을 이용하여 결정할 수 있다.
반올림부(240)는 결정된 가수부분의 가수를 반올림할 수 있다. 반올림부(240)는 결정된 가수부분의 가수에 대해서 가수가 10비트일경우에는 마지막 10비트의 오른쪽자리에서 반올림할 수 있다. 반올림부(240)는 결정된 가수부분의 가수에 대해서 가수가 9비트일경우에는 마지막 9비트 오른쪽에 0을 붙인뒤 붙인 0의 오른쪽자리에서 반올림할 수 있다.
출력부(250)는 지수 및 가수를 포함한 부동 소수점 값을 출력할 수 있다.
도 3은 일 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 부동 소수점 값의 첫번째 비트 구성(300) 및 부동 소수점 값의 두번째 비트 구성(310)으로 비트 구성을 결정하는 방법을 나타낼 수 있다. 첫번째 비트 구성(300)의 부호비트가(320) 0이면 부동 소수점 값은 양수이고, 첫번째 비트 구성(300)의 부호비트가(320) 1이면 부동 소수점 값은 음수일 수 있다. 두번째 비트 구성(310)의 부호비트가(360) 0이면 부동 소수점 값은 양수이고, 두번째 비트 구성(310)의 부호비트가(360) 1이면 부동 소수점 값은 음수일 수 있다.
첫번째 비트 구성(300)은 지수(340)의 최상위 비트가 0(330)이므로, 비트 구성 결정부(120)는 지수(340)의 비트 구성을 N(자연수)비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(350)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(340)의 N비트를 제외한 (M-N-1)비트가 될 수 있다. 두번째 비트 구성(310)은 지수(380)의 최상위 비트가 1(370)이므로, 비트 구성 결정부(120)는 지수(380)의 비트 구성을 N+1비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(390)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(380)의 (N+1)비트를 제외한 (M-N-2)비트가 될 수 있다. 이때 첫번째 비트 구성(300)의 지수(340)와 두번째 비트 구성(310)의 지수(380)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 두번째 비트 구성(310)의 지수(380)를 좌측으로 한자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 두번째 비트 구성(310)의 가수(390)의 오른쪽에 0을 추가하고 좌측으로 한자리만큼 자리 이동하여 첫번째 비트 구성(300)의 가수(350)와 같은 형식으로 변형할 수 있다. 도 4와 같은 비트 구성을 이용하면 비트 구성이 고정되어 있는 경우보다 부동 소수점 값을 표현 가능한 수의 범위가 1.5배 증가할 수 있다. 왜냐하면, 1보다 작은 수를 위한 부분은 그대로이고 1보다 큰 수의 경우 표현 가능 지수 범위가 2배 증가하기 때문이다. 추가되는 장치들은 멀티플렉서이므로 칩면적의 증가나 전력 증가는 적다.
도 4은 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다. 도 4를 참조하면, 부동 소수점 값의 첫번째 비트 구성(400) 및 부동 소수점 값의 두번째 비트 구성(410)으로 비트 구성을 결정하는 방법을 나타낼 수 있다. 첫번째 비트 구성(400)의 부호비트가(420) 0이면 부동 소수점 값은 양수이고, 첫번째 비트 구성(400)의 부호비트가(420) 1이면 부동 소수점 값은 음수일 수 있다. 두번째 비트 구성(410)의 부호비트가(460) 0이면 부동 소수점 값은 양수이고, 두번째 비트 구성(410)의 부호비트가(460) 1이면 부동 소수점 값은 음수일 수 있다.
첫번째 비트 구성(400)은 지수(440)의 최상위 비트가 0(430)이므로, 비트 구성 결정부(120)는 지수(440)의 비트 구성을 (N+1)(자연수)비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(450)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(440)의 N비트를 제외한 (M-N-2)비트가 될 수 있다. 두번째 비트 구성(410)은 지수(480)의 최상위 비트가 1(470)이므로, 비트 구성 결정부(120)는 지수(480)의 비트 구성을 N비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(490)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(480)의 N비트를 제외한 (M-N-1)비트가 될 수 있다. 이때 첫번째 비트 구성(400)의 지수(440)와 두번째 비트 구성(410)의 지수(480)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 첫번째 비트 구성(400)의 지수(440)를 좌측으로 한자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 첫번째 비트 구성(400)의 가수(450)의 오른쪽에 0을 추가하고 좌측으로 한자리만큼 자리 이동하여 두번째 비트 구성(410)의 가수(490)와 같은 형식으로 변형할 수 있다. 도 4와 같은 비트 구성을 이용하면 비트 구성이 고정되어 있는 경우보다 부동 소수점 값을 표현 가능한 수의 범위가 1.5배 증가할 수 있다. 왜냐하면, 1보다 큰 수를 위한 부분은 그대로이고 1보다 작은 수의 경우 표현 가능 지수 범위가 2배 증가하기 때문이다. 추가되는 장치들은 멀티플렉서이므로 칩면적의 증가나 전력 증가는 적다.
도 5는 또 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다. 도 5를 참조하면, 부동 소수점 값의 첫번째 비트 구성(500), 부동 소수점 값의 두번째 비트 구성(505) 및 부동 소수점 값의 세번째 비트 구성(510)으로 비트 구성을 결정하는 방법을 나타낼 수 있다. 첫번째 비트 구성(500)의 부호비트가(515) 0이면 부동 소수점 값은 양수이고, 첫번째 비트 구성(500)의 부호비트가(515) 1이면 부동 소수점 값은 음수일 수 있다. 두번째 비트 구성(505)의 부호비트가(540) 0이면 부동 소수점 값은 양수이고, 두번째 비트 구성(505)의 부호비트가(540) 1이면 부동 소수점 값은 음수일 수 있다. 세번째 비트 구성(510)의 부호비트가(565) 0이면 부동 소수점 값은 양수이고, 세번째 비트 구성(510)의 부호비트가(565) 1이면 부동 소수점 값은 음수일 수 있다.
첫번째 비트 구성(500)은 지수(530)의 최상위 비트가 0(520) 이고, 지수(530)의 최상위 비트의 다음 비트가 0(525)이므로, 비트 구성 결정부(120)는 지수(530)의 비트 구성을 N(자연수)비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(535)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(530)의 N비트를 제외한 (M-N-1)비트가 될 수 있다.
두번째 비트 구성(505)은 지수(555)의 최상위 비트가 0(545)이고, 지수(555)의 최상위 비트의 다음 비트가 1(545)이므로, 비트 구성 결정부(120)는 지수(555)의 비트 구성을 N+1비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(560)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(555)의 (N+1)비트를 제외한 (M-N-2)비트가 될 수 있다. 이때 첫번째 비트 구성(500)의 지수(530)와 두번째 비트 구성(505)의 지수(555)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 두번째 비트 구성(505)의 지수(555)를 좌측으로 한자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 두번째 비트 구성(505)의 가수(560)의 오른쪽에 0을 추가하고 좌측으로 한자리만큼 자리 이동하여 첫번째 비트 구성(500)의 가수(535)와 같은 형식으로 변형할 수 있다.
세번째 비트 구성(510)은 지수(575)의 최상위 비트가 1(570)이므로, 비트 구성 결정부(120)는 지수(575)의 비트 구성을 N+2비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(580)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(575)의 (N+2)비트를 제외한 (M-N-3)비트가 될 수 있다. 이때 첫번째 비트 구성(500)의 지수(530)와 세번째 비트 구성(510)의 지수(575)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 세번째 비트 구성(510)의 지수(575)를 좌측으로 두자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 세번째 비트 구성(510)의 가수(580)의 오른쪽에 0을 2개 추가하고 좌측으로 두자리만큼 자리 이동하여 첫번째 비트 구성(500)의 가수(535)와 같은 형식으로 변형할 수 있다. 도 5와 같은 비트 구성을 이용하면 비트 구성을 고정한 경우보다 부동 소수점 값을 표현 가능한 수의 범위가 2.75배 증가할 수 있다. 전체 표현 가능한 수의 범위의 4분의 1은 그대로 두고 나머지 4분의 1이 2배 넓어지고, 2분의 1에 해당하는 부분이 4배 넓어지면서 전체적으로 2.75배만큼 표현 가능한 수의 범위가 증가하게 된다.
도 6은 또 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 부동 소수점 값의 첫번째 비트 구성(600), 부동 소수점 값의 두번째 비트 구성(603), 부동 소수점 값의 세번째 비트 구성(606) 및 부동 소수점 값의 네번째 비트 구성(609)으로 비트 구성을 결정하는 방법을 나타낼 수 있다. 첫번째 비트 구성(600)의 부호비트가(612) 0이면 부동 소수점 값은 양수이고, 첫번째 비트 구성(600)의 부호비트가(612) 1이면 부동 소수점 값은 음수일 수 있다. 두번째 비트 구성(603)의 부호비트가(627) 0이면 부동 소수점 값은 양수이고, 두번째 비트 구성(603)의 부호비트가(627) 1이면 부동 소수점 값은 음수일 수 있다. 세번째 비트 구성(606)의 부호비트가(642) 0이면 부동 소수점 값은 양수이고, 세번째 비트 구성(606)의 부호비트가(642) 1이면 부동 소수점 값은 음수일 수 있다. 네번째 비트 구성(609)의 부호비트가(657) 0이면 부동 소수점 값은 양수이고, 네번째 비트 구성(609)의 부호비트가(657) 1이면 부동 소수점 값은 음수일 수 있다.
첫번째 비트 구성(600)은 지수(621)의 최상위 비트가 0(615) 이고, 지수(621)의 최상위 비트의 다음 비트가 0(615)이므로, 비트 구성 결정부(120)는 지수(621)의 비트 구성을 N(자연수)비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(624)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(621)의 N비트를 제외한 (M-N-1)비트가 될 수 있다.
두번째 비트 구성(603)은 지수(636)의 최상위 비트가 0(630)이고, 지수(636)의 최상위 비트의 다음 비트가 1(633)이므로, 비트 구성 결정부(120)는 지수(636)의 비트 구성을 N+1비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(639)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(636)의 (N+1)비트를 제외한 (M-N-2)비트가 될 수 있다. 이때 첫번째 비트 구성(600)의 지수(621)와 두번째 비트 구성(603)의 지수(636)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 두번째 비트 구성(603)의 지수(636)를 좌측으로 한자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 두번째 비트 구성(603)의 가수(639)의 오른쪽에 0을 추가하고 좌측으로 한자리만큼 자리 이동하여 첫번째 비트 구성(600)의 가수(624)와 같은 형식으로 변형할 수 있다.
세번째 비트 구성(606)은 지수(651)의 최상위 비트가 1(645)이고, 지수(636)의 최상위 비트의 다음 비트가 1(633)이므로, 이므로, 비트 구성 결정부(120)는 지수(651)의 비트 구성을 N+2비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(654)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(651)의 (N+2)비트를 제외한 (M-N-3)비트가 될 수 있다. 이때 첫번째 비트 구성(600)의 지수(621)와 세번째 비트 구성(606)의 지수(651)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 세번째 비트 구성(606)의 지수(651)를 좌측으로 두자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 세번째 비트 구성(606)의 가수(654)의 오른쪽에 0을 2개 추가하고 좌측으로 두자리만큼 자리 이동하여 첫번째 비트 구성(600)의 가수(624)와 같은 형식으로 변형할 수 있다.
네번째 비트 구성(609)은 지수(666)의 최상위 비트가 1(660)이고, 지수(666)의 최상위 비트의 다음 비트가 1(663)이므로, 비트 구성 결정부(120)는 지수(666)의 비트 구성을 N+3비트로 결정할 수 있다. 따라서 전체 비트수가 M(자연수)개라고 가정하면, 가수(694)의 비트 구성은 전체 비트 중 부호 비트 1개와 지수(666)의 (N+3)비트를 제외한 (M-N-4)비트가 될 수 있다. 이때 첫번째 비트 구성(600)의 지수(621)와 네번째 비트 구성(609)의 지수(666)를 같은 자리로 맞춰서 연산하기 위해, 자리 이동부(210)는 네번째 비트 구성(609)의 지수(666)를 좌측으로 세자리 자리 이동할 수 있다. 또한 자리 이동부(210)는 네번째 비트 구성(609)의 가수(669)의 오른쪽에 0을 3개 추가하고 좌측으로 세자리만큼 자리 이동하여 첫번째 비트 구성(600)의 가수(624)와 같은 형식으로 변형할 수 있다. 도 6과 같은 비트 구성을 이용하면 비트 구성을 고정한 경우보다 부동 소수점 값을 표현 가능한 수의 범위가 3.75배 증가할 수 있다. 전체 표현 가능한 수의 범위의 처음4분의 1은 그대로 두고, 두번째 4분의 1부분이 2배 넓어지고, 세번째 4분의 1에 해당하는 부분이 4배 넓어지고, 네번째 4분의 1이 8배 넓어지면서 전체적으로 3.75배만큼 표현 가능한 수의 범위가 증가하게 된다.
도 7은 일 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법의 흐름도를 도시한 도면이다. 도 7을 참조하면, 표현 가능한 수의 범위를 조절하는 방법은 도 1에 도시된 장치(100)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1에 도시된 장치(100)에 관하여 이상에서 기술된 내용은 도7의 방법에도 적용됨을 알 수 있다. 단계 S700에서, 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받을 수 있다. 단계 S710에서, 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 지수와 가수의 비트 구성을 결정할 수 있다. 단계 S720에서, 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다.
도 8은 또 다른 실시예에 따른 표현 가능한 수의 범위를 조절하는 방법의 흐름도를 도시한 도면이다. 도 8을 참조하면, 표현 가능한 수의 범위를 조절하는 방법은 도 2에 도시된 장치(200)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 2에 도시된 장치(200)에 관하여 이상에서 기술된 내용은 도8의 방법에도 적용됨을 알 수 있다.
단계 S700에서, 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받을 수 있다. 단계 S710에서, 부동 소수점 값의 지수의 최상위 비트의 값에 따라 부동 소수점 값의 지수와 가수의 비트 구성을 결정할 수 있다. 단계 S720에서, 결정된 비트 구성에 따른 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다. 단계 S800에서, 자리 이동한 지수에 따라 부동 소수점 값의 연산에 필요한 상수값을 결정할 수 있다. 단계 S810에서 결정된 비트 구성에 따른 지수, 결정된 비트 구성에 따른 가수 및 결정된 상수값을 이용하여 부동 소수점 값을 연산할 수 있다. 단계 S820에서 결정된 비트 구성을 이용하여, 연산한 값의 지수부분 및 가수부분을 결정할 수 있다. 단계S830에서, 결정된 지수 부분의 지수를, 결정된 비트 구성을 이용하여 기 설정된 비트 수만큼 자리 이동할 수 있다. 단계 S840에서, 결정된 가수 부분의 가수를 반올림 할 수 있다. 단계 S850에서, 지수 및 가수를 포함한 부동 소수점 값을 출력할 수 있다.
본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.
본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예를 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (19)

  1. 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받는 단계;
    상기 부동 소수점 값의 지수의 최상위 비트의 값에 따라 상기 부동 소수점 값의 지수와 가수의 비트 구성을 결정하는 단계;
    상기 결정된 비트 구성에 따른 지수에 따라 상기 부동 소수점 값의 연산에 필요한 상수값을 결정하는 단계를 포함하는 표현 가능한 수의 범위를 조절하는 방법.
  2. 제 1항에 있어서,
    상기 결정된 비트 구성에 따라 상기 지수 또는 상기 부동 소수점 값의 가수를 기 설정된 비트 수만큼 자리 이동하는 단계를 더 포함하고,
    상기 상수값을 결정하는 단계는,
    상기 자리 이동한 지수에 따라 상기 부동 소수점 값의 연산에 필요한 상수값을 결정하는 표현 가능한 수의 범위를 조절하는 방법.
  3. 제 1항에 있어서,
    상기 결정된 비트 구성에 따른 지수, 상기 결정된 비트 구성에 따른 상기 가수 및 상기 결정된 상수값을 이용하여 상기 부동 소수점 값을 연산하는 단계를 더 포함하는 표현 가능한 수의 범위를 조절하는 방법.
  4. 제 3항에 있어서,
    상기 결정된 비트 구성을 이용하여, 상기 연산한 값의 지수부분 및 가수부분을 결정하는 단계를 더 포함하는 표현 가능한 수의 범위를 조절하는 방법.
  5. 제 4항에 있어서,
    상기 결정된 가수부분의 가수를 반올림하는 단계를 더 포함하는 표현 가능한 수의 범위를 조절하는 방법.
  6. 제 4항에 있어서,
    상기 지수부분 및 상기 가수부분을 결정하는 단계는,
    상기 결정된 지수부분의 지수를, 상기 결정된 비트 구성을 이용하여 기 설정된 비트 수만큼 자리 이동하는 표현 가능한 수의 범위를 조절하는 방법.
  7. 제 5항에 있어서,
    상기 지수 및 상기 가수를 포함한 부동 소수점 값을 출력하는 단계를 더 포함하는 방법.
  8. 제 1항에 있어서,
    상기 입력받는 단계는,
    상기 부동 소수점 값의 지수의 최상위 비트가 기 설정된 값으로 변환된 상기 부동 소수점 값을 입력받는 표현 가능한 수의 범위를 조절하는 방법.
  9. 제 1항에 있어서,
    상기 비트 구성을 결정하는 단계는,
    상기 부동 소수점 값의 지수의 상기 최상위 비트에서부터 기 설정된 개수의 상위 비트들의 값에 따라 상기 부동 소수점 값의 비트 구성을 결정하는 표현 가능한 수의 범위를 조절하는 방법.
  10. 지수와 가수가 각각 기 설정된 비트수로 표현되는 부동 소수점 값을 입력받는 입력부;
    상기 부동 소수점 값의 지수의 최상위 비트의 값에 따라 상기 부동 소수점 값의 비트 구성을 결정하는 비트 구성 결정부;
    상기 결정된 비트 구성에 따른 지수에 따라 상기 부동 소수점 값의 연산에 필요한 상수값을 결정하는 상수값 결정부를 포함하는 표현 가능한 수의 범위를 조절하는 장치.
  11. 제 10항에 있어서,
    상기 결정된 비트 구성에 따라 상기 지수 또는 상기 부동 소수점 값의 가수를 기 설정된 비트 수만큼 자리 이동하는 자리 이동부를 더 포함하고,
    상기 상수값 결정부는,
    상기 자리 이동한 지수에 따라 상기 부동 소수점 값의 연산에 필요한 상수값을 결정하는 표현 가능한 수의 범위를 조절하는 장치.
  12. 제 10항에 있어서,
    상기 결정된 비트 구성에 따른 지수, 상기 결정된 비트 구성에 따른 상기 가수 및 상기 결정된 상수값을 이용하여 상기 부동 소수점 값을 연산하는 연산부를 더 포함하는 표현 가능한 수의 범위를 조절하는 장치.
  13. 제 12항에 있어서,
    상기 결정된 비트 구성을 이용하여, 상기 연산한 값의 지수부분 및 가수부분을 결정하는 지수가수 결정부를 더 포함하는 표현 가능한 수의 범위를 조절하는 장치.
  14. 제 13항에 있어서,
    상기 결정된 가수부분의 가수를 반올림하는 반올림부를 더 포함하는 표현 가능한 수의 범위를 조절하는 장치.
  15. 제 14항에 있어서,
    상기 지수가수 결정부는,
    상기 결정된 지수 부분의 지수를, 상기 결정된 비트 구성을 이용하여 기 설정된 비트 수만큼 자리 이동하는 표현 가능한 수의 범위를 조절하는 장치.
  16. 제 14항에 있어서,
    상기 지수 및 상기 가수를 포함한 부동 소수점 값을 출력하는 출력부를 더 포함하는 장치.
  17. 제 10항에 있어서,
    상기 입력부는,
    상기 부동 소수점 값의 지수의 최상위 비트가 기 설정된 값으로 변환된 상기 부동 소수점 값을 입력받는 표현 가능한 수의 범위를 조절하는 장치.
  18. 제 10항에 있어서,
    상기 비트 구성 결정부는,
    상기 부동 소수점 값의 지수의 상기 최상위 비트에서부터 기 설정된 개수의 상위 비트들의 값에 따라 상기 부동 소수점 값의 비트 구성을 결정하는 표현 가능한 수의 범위를 조절하는 장치.
  19. 하드웨어와 결합되어 제10항 내지 제 18항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램
KR1020140124635A 2014-09-18 2014-09-18 표현 가능한 수의 범위를 조절하는 방법 및 장치 KR102165268B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140124635A KR102165268B1 (ko) 2014-09-18 2014-09-18 표현 가능한 수의 범위를 조절하는 방법 및 장치
US14/665,205 US9811317B2 (en) 2014-09-18 2015-03-23 Method and apparatus for controlling range of representable numbers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140124635A KR102165268B1 (ko) 2014-09-18 2014-09-18 표현 가능한 수의 범위를 조절하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160033550A true KR20160033550A (ko) 2016-03-28
KR102165268B1 KR102165268B1 (ko) 2020-10-13

Family

ID=55525786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140124635A KR102165268B1 (ko) 2014-09-18 2014-09-18 표현 가능한 수의 범위를 조절하는 방법 및 장치

Country Status (2)

Country Link
US (1) US9811317B2 (ko)
KR (1) KR102165268B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042607B2 (en) * 2016-08-22 2018-08-07 Altera Corporation Variable precision floating-point multiplier
CN108055041B (zh) * 2017-12-22 2021-06-29 苏州中晟宏芯信息科技有限公司 一种数据类型转换电路单元及装置
JP7013017B2 (ja) * 2018-03-20 2022-01-31 国立研究開発法人産業技術総合研究所 演算システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520028A (ja) * 1990-12-28 1993-01-29 Matsushita Electric Ind Co Ltd 加減算のための浮動小数点演算装置の仮数部処理回路
KR19980041731A (ko) * 1996-11-18 1998-08-17 윤종용 조정 및 정규화 클래스를 구비한 부동 소수점 승산 및 누산장치
KR101043647B1 (ko) * 2010-08-27 2011-06-22 엘아이지넥스원 주식회사 데이터 변환 장치 및 데이터 변환 방법
KR20120098651A (ko) * 2009-10-23 2012-09-05 샘플리파이 시스템즈 인코포레이티드 신호 데이터의 블록 부동소수점 압축

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268855A (en) 1992-09-14 1993-12-07 Hewlett-Packard Company Common format for encoding both single and double precision floating point numbers
KR0138964B1 (ko) * 1994-12-14 1998-06-15 김주용 데이타 포멧 변화기를 포함한 차분 펄스 코드 변조기
US6253299B1 (en) 1999-01-04 2001-06-26 International Business Machines Corporation Virtual cache registers with selectable width for accommodating different precision data formats
US7720898B2 (en) * 2003-06-11 2010-05-18 Stmicroelectronics, Inc. Apparatus and method for adjusting exponents of floating point numbers
US8412760B2 (en) * 2008-07-22 2013-04-02 International Business Machines Corporation Dynamic range adjusting floating point execution unit
US20110004644A1 (en) 2009-07-03 2011-01-06 Via Technologies, Inc. Dynamic floating point register precision control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520028A (ja) * 1990-12-28 1993-01-29 Matsushita Electric Ind Co Ltd 加減算のための浮動小数点演算装置の仮数部処理回路
KR19980041731A (ko) * 1996-11-18 1998-08-17 윤종용 조정 및 정규화 클래스를 구비한 부동 소수점 승산 및 누산장치
KR20120098651A (ko) * 2009-10-23 2012-09-05 샘플리파이 시스템즈 인코포레이티드 신호 데이터의 블록 부동소수점 압축
KR101043647B1 (ko) * 2010-08-27 2011-06-22 엘아이지넥스원 주식회사 데이터 변환 장치 및 데이터 변환 방법

Also Published As

Publication number Publication date
US9811317B2 (en) 2017-11-07
KR102165268B1 (ko) 2020-10-13
US20160085507A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
CN105468331B (zh) 独立的浮点转换单元
JP6360450B2 (ja) 浮動小数点オペランドを乗算するためのデータ処理装置及び方法
GB2586559A (en) Enhanced low precision binary floating-point formatting
KR102318494B1 (ko) 곱셈 가산기
CN110955406A (zh) 浮点动态范围扩展
WO2017181342A1 (zh) 一种非线性函数运算装置及方法
Hormigo et al. New formats for computing with real-numbers under round-to-nearest
JP2015103245A (ja) 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法
CN112241291A (zh) 用于指数函数实施的浮点单元
KR20160033550A (ko) 표현 가능한 수의 범위를 조절하는 방법 및 장치
US9851947B2 (en) Arithmetic processing method and arithmetic processor having improved fixed-point error
KR102412746B1 (ko) 부동 소수점 제곱근 연산 장치 및 방법
KR20180027537A (ko) 와이드 데이터 타입들의 비교
KR102481418B1 (ko) 단일 곱셈-누산 방법 및 장치
US9143159B2 (en) DPD/BCD to BID converters
CN108021477B (zh) 执行递归操作的方法、计算机设备、制造和测试方法
JP6290886B2 (ja) 装飾構成に基づくモーダル区間計算
US8898214B2 (en) Method and apparatus to perform floating point operations
US20170010862A1 (en) Apparatus and method for performing division
US20190171419A1 (en) Arithmetic processing device and control method of arithmetic processing device
JP2018097864A (ja) リーディングゼロ予想
US9658827B2 (en) Apparatus and method for performing reciprocal estimation operation
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质
US9134958B2 (en) Bid to BCD/DPD converters

Legal Events

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