KR101718817B1 - 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 - Google Patents
부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 Download PDFInfo
- Publication number
- KR101718817B1 KR101718817B1 KR1020100114565A KR20100114565A KR101718817B1 KR 101718817 B1 KR101718817 B1 KR 101718817B1 KR 1020100114565 A KR1020100114565 A KR 1020100114565A KR 20100114565 A KR20100114565 A KR 20100114565A KR 101718817 B1 KR101718817 B1 KR 101718817B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- binary data
- round
- bias value
- information
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 컴퓨터 연산 수행시 부동 소수점 수와 정수 간의 데이터 변환을 수행하는데 있어서, 반올림과 2의 보수화 기능을 통합적으로 실행할 수 있는 데이터 변환 방법 및 그 장치가 개시된다. 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환장치는, 입력된 이진 데이터의 부호 및 변환형식을 판단하여, 입력된 이진 데이터를 1의 보수 형식으로 변환하는 데이터 변환부와, 입력된 이진 데이터의 라운드 모드에 따라 라운드 여부를 판단하고, 바이어스 값을 생성하는 바이어스 값 생성부와, 변환된 이진 데이터와 바이어스 값을 합산하여 입력된 이진 데이터를 2의 보수 형식으로 변환하는 가산부를 포함한다. 이에 따라, 컴퓨터 연산을 수행시 부동 소수점 수와 정수 간의 데이터 변환을 수행하는데 있어서 반올림과 2의 보수화 기능을 통합적으로 실행할 수 있다.
Description
이진 데이터의 표현 형식의 변환에 관한 것으로, 더욱 상세하게는 데이터 표현 형식 변환시 수행되는 라운드와 2의 보수화 과정을 통합하는 장치 및 방법에 관한 것이다.
컴퓨터 연산에는 모든 수를 0과 1로 표현하는 이진 데이터를 사용하게 된다. 이진 데이터는 필요에 따라 다양한 형식으로 표현될 수 있다. 부동 소수점 장치(Floating Point Unit, FPU) 에서는 부동 소수점 수(floating point number)로 표현된 이진 데이터를 처리한다. 따라서, 입력된 데이터가 정수(integer) 또는 고정 소수점 수(fixed point number)인 경우에는 이를 부동 소수점 수로 변환해야한다.
이진 데이터의 부동 소수점 수의 표현은 부호 절대값으로 표현된다. 이에 반해, 정수나 고정 소수점 수는 2의 보수로 표현된다. 따라서, 부동 소수점 수와 정수 간의 변환의 경우에는 라운드(round) 모듈과 2의 보수(2's complement) 처리 모듈이 필요하다. 예를 들어, 부동 소수점 수를 정수로 변환하는 경우에는 반올림(round up)이 발생하면 1을 더해 주어야 하고, 부동 소수점 수를 1의 보수로 변환한 후 다시 1을 더해 주어야 2의 보수 형태로 표현되는 정수가 될 수 있다.
위와 같이 부동 소수점 수와 정수 간의 데이터를 변환하는 변환 장치를 구현하기 위해서는 기본적으로 2개의 가산기(adder)가 필요하다. 하나는 반올림(round up)이 발생하는 경우 1을 더하기 위해서이고, 다른 하나는 1의 보수를 2의 보수로 변환하기 위해 1을 더하기 위함이다.
컴퓨터 연산을 수행시 부동 소수점 수와 정수 간의 데이터 변환을 수행하는데 있어서 반올림과 2의 보수화 기능을 통합적으로 실행할 수 있는 데이터 변환 방법 및 그 장치를 제공한다.
본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환장치는, 입력된 이진 데이터의 부호 및 변환형식을 판단하여, 입력된 이진 데이터를 1의 보수 형식으로 변환하는 데이터 변환부와, 입력된 이진 데이터의 라운드 모드에 따라 라운드 여부를 판단하고, 바이어스 값을 생성하는 바이어스 값 생성부와, 변환된 이진 데이터와 바이어스 값을 합산하여 입력된 이진 데이터를 2의 보수 형식으로 변환하는 가산부를 포함한다.
또한, 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환장치의 바이어스 값 생성부는 입력된 이진 데이터의 변환형식, 부호, 라운드 모드, 라운드 비트 및 스티키 비트를 이용하여 라운드 정보를 생성하는 라운드 정보 생성부와, 라운드 정보에 따른 바이어스 값을 계산하는 바이어스 값 계산부를 포함한다.
본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환 방법은, 입력된 이진 데이터의 부호 및 변환형식을 판단하여, 입력된 이진 데이터를 1의 보수 형식으로 변환하는 단계와, 입력된 이진 데이터의 라운딩 모드에 따라 라운드 여부를 판단하고, 바이어스 값을 생성하는 단계와, 변환된 이진 데이터와 바이어스 값을 합산하여 입력된 이진 데이터를 2의 보수 형식으로 변환하는 단계를 포함한다.
컴퓨터 연산을 수행시 부동 소수점 수와 정수 간의 데이터 변환을 수행하는데 있어서 반올림과 2의 보수화 기능을 통합적으로 실행할 수 있다. 또한, 변환 장치의 처리 속도를 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환 장치의 구성도,
도 2는 본 발명의 일 실시예에 따른 변환 장치의 내부 정도(internal precision) 참조도,
도 3a 내지 도 3h는 본 발명의 일 실시예에 따른 라운드 모드에 따른 바이어스 값 테이블 참조도,
도 4는 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환 방법의 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 변환 장치의 내부 정도(internal precision) 참조도,
도 3a 내지 도 3h는 본 발명의 일 실시예에 따른 라운드 모드에 따른 바이어스 값 테이블 참조도,
도 4는 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환 방법의 흐름도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환장치(100)의 구성도이다.
도 1을 참조하면, 본 발명의 부동 소수점 데이터와 정수형 데이터 간의 변환장치(100)는 데이터 변환부(110), 바이어스 값 생성부(130), 가산부(150), 오버플로우 정보 생성부(170), 최종 데이터 생성부(190)를 포함한다.
데이터 변환부(110)는 1의 보수를 계산하는 논리소자로 구성될 수 있다. 데이터 변환부(110)는 이진 데이터가 입력되면, 입력된 이진 데이터의 최상위 비트를 통해 부호를 판단한다. 또한, 데이터가 변환되어야 할 변환형식을 판단한다. 이 경우, 변환형식은 변환모듈에 따라 내부적으로 결정된 상태일 수 있다. 예를 들어, 부동 소수점 수의 정수 변환모듈의 경우 내부적으로 입력은 부동 소수점 수이고 변환형식은 정수라고 정해져 있다. 입력된 이진 데이터의 내부 정도(internal precision)는 도 2를 참조하여 후술한다.
도 2는 본 발명의 일 실시예에 따른 변환장치(100)의 내부 정도(internal precision)의 참조도이다.
도 2를 참조하면, 입력되는 이진 데이터의 최상위 비트는 부호를 나타낸다. 최상위 비트가 0이면 양수를 나타내고, 최상위 비트가 1이면 음수를 나타낸다. 최하위 비트는 라운드 비트(round bit)와 스티키 비트(sticky bit)로 구성될 수 있다. 이러한, 라운드 비트와 스티키 비트는 부호와 라운드 모드에 따라 결정되는 바이어스 값을 결정하는데 사용된다. 본 발명의 내부 정도(internal precision)에서, 최상위 비트와 라운드 비트, 스티키 비트를 제외한 나머지 비트는 이진 데이터의 값을 나타낸다.
부동 소수점 수의 국제적 표준인 IEEE-754에는 단정도(single precision)를 32비트, 배정도(double precision)를 64비트로 정의하고 있다. 따라서, 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환장치(100)는 67비트 이상의 데이터로 표현될 수 있다. 부동 소수점 수를 정수로 변환하는 경우, 입력된 이진 데이터는 내부 정도에서 최하위 비트를 기준으로 정렬될 수 있다. 정수를 부동 소수점 수로 변환하는 경우, 입력된 이진 데이터는 내부 정도에서 최상위 비트를 기준으로 정렬될 수 있다.
다시 도 1을 참조하면, 데이터 변환부(110)는 입력된 이진 데이터를 부호와 출력형식에 따라 1의 보수 형식으로의 변환 여부를 판단한다. 부동 소수점 수의 경우 부호 절대값(sign magnitude) 형식으로 표현되며, 정수(고정 소수점 수 포함)의 경우 2의 보수 형식으로 표현된다. 부호 절대값의 표현이나 2의 보수 표현은 1의 보수 표현과 밀접한 관련이 있다. 1의 보수는 부호 절대값의 표현에서 음수의 표현순서가 바뀐 것이다. 예를 들어, 4비트의 이진 데이터 1000, 1001, 1010은 부호 절대값 표현으로 각각 정수의 -0, -1, -2를 나타낸다. 그러나, 1의 보수 표현에서는 각각 정수의 -7, -6, -5를 나타낸다.
한편, 2의 보수 표현은 부호 절대값의 1의 보수에 0001을 더한 값으로 표현된다. 예를 들면, 부호 절대값 표현으로 1010의 1의 보수는 0101이고, 1010의 2의 보수는 0110이 된다. 따라서, 1010은 1의 보수로 -5를 나타내지만, 2의 보수로는 -6을 나타낸다. 데이터 변환부(110)는 입력된 이진 데이터가 음수의 정수형 데이터로 변환되어야 하는 경우에는 입력된 이진 데이터를 1의 보수 형식으로 변환한다. 즉, 입력된 이진 데이터가 부동 소수점 수의 경우에는 이를 정수로 변환하기 위해 표현형식을 1의 보수로 변환해야 한다.
데이터 변환부(110)는 입력된 이진 데이터가 정수인 경우에는 입력된 이진 데이터를 1의 보수로 변환하지 않고, 입려된 이진 데이터를 후술하는 가산부(150)로 출력한다.
바이어스 값 생성부(130)는 라운드를 실행하고, 바이어스 값을 계산하는 연산 모듈로 구성된다. 바이어스 값 생성부(130)는 입력된 이진 데이터의 라운드 모드를 파악하고, 해당 라운드 모드에 따라 입력된 이진 데이터의 라운드 발생여부를 판단한다. 바이어스 값 생성부(130)는 라운드 발생여부에 대한 정보를 이용하여 바이어스 값을 생성하고, 생성된 바이어스 값을 후술하는 가산부(150)로 출력한다.
바이어스 값 생성부(130)는 라운드 정보 생성부(131)와 바이어스 값 계산부(133)로 구성될 수 있다. 라운드 정보 생성부(131)는 입력된 이진 데이터의 변환형식, 부호, 라운드 모드, 라운드 비트 및 스티키 비트를 이용하여 라운드 정보를 생성한다. 이 경우, 데이터의 변환형식과 라운드 모드는 미리 설정될 수 있다. 데이터 변환형식은 입력된 이진 데이터가 변환될 데이터 형식을 말한다. 라운드 모드는 부동 소수점 수의 국제적 표준인 IEEE-754에서 정하고 있는 4가지 모드가 포함될 수 있다.
IEEE-754에서의 라운드 모드는 가까운쪽으로의 라운드(round to nearest), 0으로의 라운드(round toward zero), 양의 무한대로 라운드(round toward positive infinity), 음의 무한대로 라운드(round toward negative infinity)하는 방식이 있다. 0으로의 라운드는 0을 향하여 반올림하는 방식으로써, 라운드 비트나 스티키 비트와 관계없이 반올림시 버린다. 양의 무한대로 라운드는 반올림하고자 하는 수가 양수이고, 라운드 비트 또는 스티키 비트 중 최소 1개의 비트가 1이면 반올림한다. 음의 무한대로의 라운드는 반올림하고자 하는 수가 음수이고, 라운드 비트 또는 스티키 비트 중 최소 1개의 비트가 1이면 반올림 한다.
한편, 바이어스 값 계산부(133)는 라운드 정보 생성부(131)로부터 입력된 이진 데이터의 라운드 정보를 입력받는다. 입력되는 라운드 정보에는 입력된 이진 데이터의 부호, 라운드 모드, 라운드 비트와 스티키 비트의 정보가 포함된다. 바이어스 값 계산부(133)는 라운드 정보를 이용하여 바이어스 값을 계산한다. 바이어스 값 계산과 관련하여, 라운드 모드에 따른 바이어스 값은 도 3a 내지 도 3h에서 후술한다.
도 3a 내지 도 3h는 본 발명의 일 실시예에 따른 라운드 모드에 따른 바이어스 값 테이블 참조도이다.
도 3a 내지 도 3d는 입력된 이진 데이터인 부동 소수점 수를 정수(고정 소수점 수 포함)로 변환할 때, 라운드 모드에 따른 바이어스 값을 나타낸 표이다. 도 3a는 라운드 모드가 양의 무한대로 라운드인 경우이다. 예를 들어, 라운드 정보는 라운드 비트/ 스티키 비트가 10이고. 입력된 이진 데이터의 부호가 양수(positive number)이고, 라운드 모드가 양의 무한대로 라운드인 경우이므로 바이어스 값은 1이 된다. 따라서, 데이터 변환부(110)에서 출력된 1의 보수 값인 0001에 대한 바이어스 값 1을 더하면 변환된 이진 데이터인 정수가 2의 보수 값으로 표현된다.
도 3b는 라운드 모드가 음의 무한대로 라운드인 경우, 도 3c는 라운드 모드가 0으로 라운드인 경우, 도 3d는 라운드 모드가 짝수에 가까운 쪽으로의 라운드(round to nearest even)인 경우를 나타낸다.
한편, 도 3e 내지 도 3h는 입력된 이진 데이터가 정수이고, 입력된 이진 데이터를 부동 소수점 수로 변환하는 경우에 라운드 모드에 따른 바이어스 값을 나타낸 표이다. 도 3e는 라운드 모드가 양의 무한대로 라운드인 경우, 도 3f는 라운드 모드가 음의 무한대로 라운드인 경우, 도 3g는 라운드 모드가 0으로 라운드인 경우, 도 3h는 라운드 모드가 짝수에 가까운 쪽으로의 라운드인 경우를 나타낸다.
예를 들어, 도 3f에서 입력된 이진 데이터의 부호는 음수(negative number)이고, 라운드 모드는 음의 무한대로 라운드(round toward negative infinity)이며, 라운드/스티키 비트는 11인 경우 바이어스 값은 1이 된다. 즉, 입력된 이진 데이터를 변환할 때 라운드 업(round up)이 발생되며, 데이터 변환부(110)의 출력인 1의 보수인 0001 값에 바이어스 값 1을 더하게 되면 0010이 변환된 데이터의 2의 보수 형태의 데이터를 나타낸다.
다시 도 1을 참조하면, 가산부(150)는 두 개의 입력을 합산하는 논리 소자로 구성된다. 가산부(150)는 데이터 변환부(110)와 바이어스 값 생성부(130)와 연결되어 있다. 가산부(150)는 두 개의 입력을 받으며, 이 경우 하나의 입력은 데이터 변환부(110)로부터 받으며, 다른 하나의 입력은 바이어스 값 생성부(130)로부터 받게 된다. 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환장치(100)는 하나의 가산부(150)를 가지는 것을 특징으로 한다.
즉, 종래의 다른 변환장치의 경우 라운드 업(round up)이 발생하는 경우에 1을 더하는 가산부와 1의 보수 형식의 데이터를 2의 보수로 최종 변환하기 위해 1을 더하는 또 다른 가산부가 필요하였다. 그러나, 본원발명의 변환장치(100)는 하나의 가산부(150)가 사용되는 것을 특징으로 한다. 이는 바이어스 값 생성부(130)에서 라운드 업 발생과 2의 보수 변환을 위한 값을 반영하는 과정을 포함하고 있기 때문이다. 따라서, 가산부(150)는 데이터 변환부(110)로부터 입력받은 1의 보수 형식의 데이터와 바이어스 값 생성부(130)로부터 입력받은 고유의 바이어스 값을 합산함으로써, 2의 보수 형식의 데이터를 생성할 수 있다.
오버플로우 정보 생성부(170)는 본 발명의 변환장치(100)에 입력된 이진 데이터를 변환할 때 오버플로우가 발생하는지에 대한 검사를 한다. 오버플로우 정보 생성부(170)는 비트 판단부(171)와 오버플로우 판단부(173)를 포함할 수 있다. 비트 판단부(171)는 내부 정도에서 모든 비트가 1로된 비트로 구성된다. 비트 판단부(171)는 입력된 이진 데이터에 모든 비트가 1로된 비트를 합산한다. 오버플로우 판단부(173)는 비트 판단부(171)와 라운드 정보 생성부(131)와 연결되어 있다. 오버플로우 판단부(173)는 모든 비트가 1인 경우에 라운드 업이 되어 오버플로우가 발생하는지 확인하게 된다.
부동 소수점 수와 양수의 정수(고정 소수점 수 포함)의 경우, 모든 비트가 1이고, 라운드 업이 발생하면 표현할 수 있는 최대 비트를 초과하므로 오버플로우가 발생한다. 그러나, 음수인 정수(고정 소수점 수 포함)의 경우, 모든 비트가 1이더라도 라운드 업이 되어도 오버플로우가 발생하지 않는다. 오버플로우 판단부(173)는 이러한 오버플로우 발생여부를 판단한다.
오버플로우 정보 생성부(170)는 후발 정규화(post-normalizing) 기능을 수행한다. 정규화는 일종의 비트 자리를 정렬하는 것으로, 보통 데이터의 변환 전에 정규화를 하며, 변환 중에 다시 한 번 정규화를 하게 된다. 오버플로우 정보 생성부(170)는 오버 플로우 발생여부에 대한 정보와 오버플로우가 발생할 경우 모든 비트가 0인 데이터를 출력한다.
최종 데이터 생성부(190)는 여러 개의 입력 중에 하나의 출력을 선택하는 다중화기(multiplexer)로 구성될 수 있다. 최종 데이터 생성부(190)는 가산부(150)와 오버플로우 정보 생성부(170)와 연결될 수 있다. 최종 데이터 생성부(190)는 오버플로우 정보 생성부(170)로부터는 오버플로우 발생 정보와 오버플로우 발생시 데이터를 입력받는다. 최동 데이터 생성부(190)는 가산부(150)로부터 변환된 데이터의 값을 입력받는다.
최종 데이터 생성부(190)는 오버플로우 정보 생성부(170)로부터 오버플로우 발생 여부에 대한 정보를 입력받는다. 오버플로우가 발생하지 않은 경우에는 가산부(150)로부터 입력받은 데이터를 최종 데이터로 출력한다. 오버플로우가 발생한 경우에는 오버플로우 정보 생성부(170)로부터 입력받은 데이터를 최종 데이터로 출력한다.
도 4는 본 발명의 일 실시예에 따른 부동 소수점 데이터와 정수형 데이터 간의 변환방법의 흐름도이다.
도 4를 참조하면, 먼저 입력된 이진 데이터의 부호 및 변환형식을 판단하고, 입력된 이진 데이터를 1의 보수 형식으로 변환한다(410). 입력된 이진 데이터는 도 2의 같은 내부 정도(internal precision)를 가진다. 이 경우, 입력된 이진 데이터의 최상위 비트를 통해 부호를 결정할 수 있다. 데이터 변환형식은 부동 소수점 수 또는 정수(고정 소수점 수 포함) 중 하나로 결정된다.
또한, 데이터의 변환형식에 따라 입력된 데이터를 1의 보수 형식으로 변환할 수 있다. 즉, 입력된 이진 데이터가 음수인 정수로 변환되어야 하는 경우에는 1의 보수로 변환하게 되며, 그 외의 경우에는 1의 보수로 변환하지 않을 수 있다.
다음으로, 입력된 이진 데이터의 라운딩 모드에 따라 라운드 여부를 판단하고, 바이어스 값을 생성한다(420). 입력된 이진 데이터에 대한 라운딩 모드는 미리 결정될 수 있으며, 입력된 이진 데이터의 라운드 비트 및 스티키 비트, 부호를 판단하여 라운딩 업(rounding up)의 발생여부를 판단한다. 바이어스 값은 라운딩 정보를 이용하여 결정하게 된다.
다음으로, 변환된 이진 데이터와 바이어스 값을 합산하고, 입력된 이진 데이터를 2의 보수 형식으로 변환한다(430). 입력된 이진 데이터를 1의 보수로 변환한 후에 라운딩 모드에 따라 바이어스 값을 합산함으로써 최종적으로는 2의 보수 형식으로 변환이 될 수 있다.
이상에서 본 발명은 도면을 참조하면서 기술되는 바람직한 실시예를 중심으로 설명되었지만 이에 한정되는 것은 아니다. 따라서 본 발명은 기재된 실시예로부터 도출 가능한 자명한 변형예를 포괄하도록 의도된 특허청구범위의 기재에 의해 해석되어져야 한다.
100 : 부동 소수점 데이터와 정수형 데이터 간의 변환장치
110 : 데이터 변환부
130 : 바이어스 값 생성부
131 : 라운드 정보 생성부
133 : 바이어스 값 계산부
150 : 가산부
170 : 오버플로우 정보 생성부
171 : 비트 판단부
173 : 오버플로우 판단부
190 : 최종 데이터 생성부
110 : 데이터 변환부
130 : 바이어스 값 생성부
131 : 라운드 정보 생성부
133 : 바이어스 값 계산부
150 : 가산부
170 : 오버플로우 정보 생성부
171 : 비트 판단부
173 : 오버플로우 판단부
190 : 최종 데이터 생성부
Claims (12)
- 입력된 이진 데이터의 부호 및 변환형식을 판단하여, 상기 입력된 이진 데이터를 1의 보수 형식으로 변환하는 데이터 변환부와;
상기 입력된 이진 데이터의 라운드 모드에 따라 라운드 여부를 판단하고, 바이어스 값을 생성하는 바이어스 값 생성부; 및
상기 변환된 이진 데이터와 상기 바이어스 값을 합산하여 상기 입력된 이진 데이터를 2의 보수 형식으로 변환하는 가산부를 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 제1항에 있어서, 상기 데이터 변환부는,
상기 입력된 이진 데이터의 변환형식이 음수의 정수형 데이터인 경우에는 1의 보수 형식으로 변환하는 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 제1항에 있어서, 상기 바이어스 값 생성부는,
상기 입력된 이진 데이터의 변환형식, 부호, 라운드 모드, 라운드 비트 및 스티키 비트를 이용하여 라운드 정보를 생성하는 라운드 정보 생성부; 및
상기 라운드 정보에 따른 바이어스 값을 계산하는 바이어스 값 계산부를 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 제3항에 있어서,
상기 입력된 이진 데이터의 오버플로우 발생여부 정보를 생성하는 오버플로우 정보 생성부를 더 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 제4항에 있어서, 상기 오버플로우 정보 생성부는,
상기 입력된 이진 데이터의 모든 비트가 1인지 여부를 판단하는 비트 판단부; 및
상기 비트 판단부와 상기 바이어스 값 생성부로부터 입력된 이진 데이터의 비트 정보 및 라운드 정보를 입력받아 오버플로우 발생여부를 판단하는 오버플로우 판단부를 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 제4항에 있어서,
상기 가산부로부터 출력된 2의 보수 형식의 데이터와 상기 오버플로우 정보 생성부로부터 오버플로우 정보를 입력받아 최종 변환 데이터를 생성하는 최종 데이터 생성부를 더 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 제1항에 있어서,
상기 입력된 이진 데이터는 32비트 또는 64비트인 부동 소수점 데이터와 정수형 데이터 간의 변환 장치. - 입력된 이진 데이터의 부호 및 변환형식을 판단하여, 상기 입력된 이진 데이터를 1의 보수 형식으로 변환하는 단계와;
상기 입력된 이진 데이터의 라운딩 모드에 따라 라운드 여부를 판단하고, 바이어스 값을 생성하는 단계; 및
상기 변환된 이진 데이터와 상기 바이어스 값을 합산하여 상기 입력된 이진 데이터를 2의 보수 형식으로 변환하는 단계를 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 방법. - 제8항에 있어서, 상기 바이어스 값을 생성하는 단계는,
상기 입력된 이진 데이터의 변환 형식, 부호, 라운딩 모드, 라운드 비트 및 스티키 비트를 이용하여 라운드 정보를 생성하는 단계; 및
상기 라운드 정보에 따른 바이어스 값을 계산하는 단계를 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 방법. - 제9항에 있어서,
상기 입력된 이진 데이터의 오버플로우 발생여부에 관한 오버플로우 정보를 생성하는 단계를 더 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 방법. - 청구항 11은(는) 설정등록료 납부시 포기되었습니다.제10항에 있어서, 상기 오버플로우 정보를 생성하는 단계는,
상기 입력된 이진 데이터의 모든 비트가 1인지 여부를 판단하는 단계; 및
상기 모든 비트가 1인지 여부와 상기 라운드 정보를 이용하여 오버플로우 발생 여부를 판단하는 단계를 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 방법. - 청구항 12은(는) 설정등록료 납부시 포기되었습니다.제10항에 있어서,
상기 2의 보수 형식의 데이터와 상기 오버플로우 정보를 입력받아 최종 변환 데이터를 생성하는 단계를 더 포함하는 부동 소수점 데이터와 정수형 데이터 간의 변환 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100114565A KR101718817B1 (ko) | 2010-11-17 | 2010-11-17 | 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 |
US13/101,356 US8874630B2 (en) | 2010-11-17 | 2011-05-05 | Apparatus and method for converting data between a floating-point number and an integer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100114565A KR101718817B1 (ko) | 2010-11-17 | 2010-11-17 | 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120053344A KR20120053344A (ko) | 2012-05-25 |
KR101718817B1 true KR101718817B1 (ko) | 2017-03-29 |
Family
ID=46048783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100114565A KR101718817B1 (ko) | 2010-11-17 | 2010-11-17 | 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8874630B2 (ko) |
KR (1) | KR101718817B1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9059726B2 (en) * | 2012-05-11 | 2015-06-16 | Arm Limited | Apparatus and method for performing a convert-to-integer operation |
US9461667B2 (en) | 2013-12-30 | 2016-10-04 | Samsung Electronics Co., Ltd. | Rounding injection scheme for floating-point to integer conversion |
US9582248B2 (en) * | 2014-09-26 | 2017-02-28 | Arm Limited | Standalone floating-point conversion unit |
WO2018099788A1 (en) * | 2016-11-29 | 2018-06-07 | Koninklijke Philips N.V. | Floating point data compression/compressor |
US11210064B2 (en) | 2019-07-30 | 2021-12-28 | International Business Machines Corporation | Parallelized rounding for decimal floating point to binary coded decimal conversion |
US11221826B2 (en) * | 2019-07-30 | 2022-01-11 | International Business Machines Corporation | Parallel rounding for conversion from binary floating point to binary coded decimal |
CN110427172A (zh) * | 2019-08-01 | 2019-11-08 | 龙芯中科(合肥)技术有限公司 | 浮点数处理方法、装置、设备及计算机可读存储介质 |
US10934964B1 (en) * | 2020-02-03 | 2021-03-02 | Ford Global Technologies, Llc | Methods and system for storing and activating a calibration for a vehicle |
US20230126672A1 (en) * | 2021-10-27 | 2023-04-27 | Jpmorgan Chase Bank, N.A. | Systems and methods for mixed precision machine learning with fully homomorphic encryption |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523050B1 (en) | 1999-08-19 | 2003-02-18 | National Semiconductor Corporation | Integer to floating point conversion using one's complement with subsequent correction to eliminate two's complement in critical path |
JP2004023526A (ja) | 2002-06-18 | 2004-01-22 | Sony Corp | データ変換装置 |
KR100528269B1 (ko) | 1996-07-25 | 2006-02-01 | 프리스케일 세미컨덕터, 인크. | 부동소수점하드웨어를사용하여마이크로프로세서정수나눗셈연산들을실행하기위한방법및장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02267625A (ja) | 1989-04-07 | 1990-11-01 | Fujitsu Ltd | 浮動小数点演算を用いた整数部取出し方式 |
JPH0340129A (ja) | 1989-07-07 | 1991-02-20 | Fujitsu Ltd | 浮動小数点加算器 |
JP3286990B2 (ja) | 1991-10-04 | 2002-05-27 | 日本電気株式会社 | ディジタルシグナルプロセッサ |
JP3253660B2 (ja) | 1991-12-19 | 2002-02-04 | 松下電器産業株式会社 | 数値丸め装置および数値丸め方法 |
US5257215A (en) | 1992-03-31 | 1993-10-26 | Intel Corporation | Floating point and integer number conversions in a floating point adder |
US5684729A (en) | 1994-09-19 | 1997-11-04 | Hitachi, Ltd. | Floating-point addition/substraction processing apparatus and method thereof |
JPH08202530A (ja) | 1995-01-24 | 1996-08-09 | Hitachi Ltd | 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法 |
US5561615A (en) | 1994-12-02 | 1996-10-01 | Hewlett-Packard Company | Method and apparatus for floating point to fixed point conversion with compensation for lost precision |
JP2000347832A (ja) | 1999-06-09 | 2000-12-15 | Mitsubishi Electric Corp | 浮動小数点演算方式ならびに浮動小数点演算装置およびそれを備える半導体集積回路装置 |
US6385476B1 (en) * | 1999-09-21 | 2002-05-07 | Biosense, Inc. | Method and apparatus for intracardially surveying a condition of a chamber of a heart |
US6535898B1 (en) | 2000-01-24 | 2003-03-18 | Microsoft Corporation | Fast floating-point truncation to integer form |
US7774393B1 (en) | 2004-06-30 | 2010-08-10 | Oracle America, Inc. | Apparatus and method for integer to floating-point format conversion |
-
2010
- 2010-11-17 KR KR1020100114565A patent/KR101718817B1/ko active IP Right Grant
-
2011
- 2011-05-05 US US13/101,356 patent/US8874630B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100528269B1 (ko) | 1996-07-25 | 2006-02-01 | 프리스케일 세미컨덕터, 인크. | 부동소수점하드웨어를사용하여마이크로프로세서정수나눗셈연산들을실행하기위한방법및장치 |
US6523050B1 (en) | 1999-08-19 | 2003-02-18 | National Semiconductor Corporation | Integer to floating point conversion using one's complement with subsequent correction to eliminate two's complement in critical path |
JP2004023526A (ja) | 2002-06-18 | 2004-01-22 | Sony Corp | データ変換装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120124116A1 (en) | 2012-05-17 |
US8874630B2 (en) | 2014-10-28 |
KR20120053344A (ko) | 2012-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101718817B1 (ko) | 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 | |
CN105468331B (zh) | 独立的浮点转换单元 | |
US9639326B2 (en) | Floating-point adder circuitry | |
KR101735677B1 (ko) | 부동 소수점의 복합 연산장치 및 그 연산방법 | |
CA2530015C (en) | Division and square root arithmetic unit | |
EP2435904B1 (en) | Integer multiply and multiply-add operations with saturation | |
US5148386A (en) | Adder-subtracter for signed absolute values | |
Hormigo et al. | Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest | |
JPWO2007096982A1 (ja) | 演算処理装置および演算処理方法 | |
US9059726B2 (en) | Apparatus and method for performing a convert-to-integer operation | |
CN116594590A (zh) | 一种浮点数据的多功能运算装置及方法 | |
US9400635B1 (en) | Methods and apparatus for performing dynamic data alignment for floating-point operations | |
US8626807B2 (en) | Reuse of rounder for fixed conversion of log instructions | |
US11455142B2 (en) | Ultra-low precision floating-point fused multiply-accumulate unit | |
Kumar et al. | Simulation And Synthesis Of 32-Bit Multiplier Using Configurable Devices | |
KR100974190B1 (ko) | 부동 소수점을 이용한 복소수 곱셈방법 | |
JP2002344316A (ja) | 非線形量子化装置および非線形量子化方法、並びに非線形量子化プログラム | |
JPH03100722A (ja) | 精度変換命令の処理方式 | |
JPH0527949A (ja) | 浮動小数点乗算における指数部演算回路 | |
Ram et al. | Efficient Hardware Design of Parameterized Posit Multiplier and Posit Adder | |
Pal et al. | FPGA implementation of DSP applications using HUB floating point technique | |
JPS59139448A (ja) | 浮動小数点乗算装置 | |
JP2004348215A (ja) | 乗算処理装置 | |
JPH04132538U (ja) | 浮動小数点演算回路 | |
JPH01232430A (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 | ||
FPAY | Annual fee payment |
Payment date: 20200228 Year of fee payment: 4 |