KR101735677B1 - 부동 소수점의 복합 연산장치 및 그 연산방법 - Google Patents

부동 소수점의 복합 연산장치 및 그 연산방법 Download PDF

Info

Publication number
KR101735677B1
KR101735677B1 KR1020100114564A KR20100114564A KR101735677B1 KR 101735677 B1 KR101735677 B1 KR 101735677B1 KR 1020100114564 A KR1020100114564 A KR 1020100114564A KR 20100114564 A KR20100114564 A KR 20100114564A KR 101735677 B1 KR101735677 B1 KR 101735677B1
Authority
KR
South Korea
Prior art keywords
bit
mantissa
value
partial product
carry
Prior art date
Application number
KR1020100114564A
Other languages
English (en)
Other versions
KR20120053343A (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 KR1020100114564A priority Critical patent/KR101735677B1/ko
Priority to US13/153,885 priority patent/US8805915B2/en
Publication of KR20120053343A publication Critical patent/KR20120053343A/ko
Application granted granted Critical
Publication of KR101735677B1 publication Critical patent/KR101735677B1/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
    • 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/52Multiplying; Dividing
    • 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/5443Sum of products

Abstract

부동 소수점 복합연산시 불필요한 연산과정을 생략하여 전력 소모를 최소화 하고, 연산 처리 속도를 향상시킬 수 있는 연산장치 및 그 연산방법을 제공한다. 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치는, 부동 소수점인 제1값과 제2값의 가수(mantissa)를 n비트 단위로 나누어 부분곱을 계산하고, 계산된 부분곱들을 가산하여 하나의 부분곱 합과 부분곱 캐리를 생성하는 부분곱 생성부와, 생성된 부분곱 합과 부분곱 캐리를 부동 소수점인 제3값의 가수의 최하위 비트와 합산하여 기 설정된 비트 수인 제1 비트로 표현되는 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 생성하는 캐리 저장 가산부와, 생성된 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 제3값의 가수의 최상위 비트와 합산하여 기 설정된 비트 수인 제2 비트로 표현되는 가수를 생성하는 캐리 선택 가산부와, 제3값의 가수 값이 0인지 여부에 따라, 제1 비트 부분곱 합과 제1 비트 부분곱 캐리가 캐리 저장 가산부 또는 캐리 선택 가산부로 전송되도록 선택하는 제1 선택부를 포함한다. 이에 따라, 부동 소수점 복합연산시 불필요한 연산과정을 생략하여 전력 소모를 최소화 할 수 있다.

Description

부동 소수점의 복합 연산장치 및 그 연산방법{APPARATUS FOR MULTIPLY ADD FUSED UNIT OF FLOATING POINT NUMBER, AND METHOD THEREOF}
부동 소수점의 복합 연산에 관한 것으로, 더욱 상세하게는 설정된 조건에 따라 연산과정을 단순화하여 연산을 수행하는 연산방법 및 그 연산장치에 관한 것이다.
오늘날 부동 소수점 유닛은 방대한 수치를 처리할 수 있는 고성능 유닛으로써, 컴퓨터 수치 제어, 로봇 제어 등에 널리 사용되고 있다. 최근에는 내장형 마이크로 프로세서의 응용 분야에도 사용되고 있다. 특히, 무선 통신 시스템, 이동형 멀티미디어 시스템, 3D TV, 3D 모바일 게임 등에서는 부동 소수점 곱셈 연산, 부동 소수점 곱셈 및 덧셈 연산인 MAF(Multiply Add Fused)연산을 정확하고 빠르게 처리하는 기술이 요구된다.
부동 소수점의 국제 표준인 IEEE-754에 기초한 부동 소수점인 제1값과 제2값의 곱에 제3값을 더하는 연산을 수행하는 종래의 부동 소수점 복합 연상장치는 A+B*C와 같은 연산을 수행한다. 만약, A의 값을 0으로 설정하면 B*C의 연산만을 수행하므로 덧셈 모듈을 사용할 필요가 없으며, C의 값을 1로 설정하면 A+B의 연산만을 수행하므로 곱셈 모듈을 사용할 필요가 없게 된다. 그러나, 종래의 부동 소수점 연산장치의 경우 실제 연산이 덧셈만 필요한지, 곱셈만 필요한지 여부에 관계없이 모든 연산과정을 수행하고 있다.
부동 소수점 복합연산시 불필요한 연산과정을 생략하여 전력 소모를 최소화 하고, 연산 처리 속도를 향상시킬 수 있는 연산장치 및 그 연산방법을 제공한다.
본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치는, 부동 소수점인 제1값과 제2값의 가수(mantissa)를 n비트 단위로 나누어 부분곱을 계산하고, 계산된 부분곱들을 가산하여 하나의 부분곱 합과 부분곱 캐리를 생성하는 부분곱 생성부와, 생성된 부분곱 합과 부분곱 캐리를 부동 소수점인 제3값의 가수의 최하위 비트와 합산하여 기 설정된 비트 수인 제1 비트로 표현되는 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 생성하는 캐리 저장 가산부와, 생성된 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 제3값의 가수의 최상위 비트와 합산하여 기 설정된 비트 수인 제2 비트로 표현되는 가수를 생성하는 캐리 선택 가산부와, 제3값의 가수 값이 0인지 여부에 따라, 제1 비트 부분곱 합과 제1 비트 부분곱 캐리가 캐리 저장 가산부 또는 캐리 선택 가산부로 전송되도록 선택하는 제1 선택부를 포함한다.
본 발명의 일 실시예에 따른 부동 소수점 복합 연산방법은, 부동 소수점인 제1값과 제2값의 가수(mantissa)를 n비트 단위로 나누어 부분곱을 계산하고, 계산된 부분곱들을 가산하여 하나의 부분곱 합과 부분곱 캐리를 생성하는 단계와, 부동 소수점인 제3값의 가수 값이 0인지 판단하는 단계와, 제3값의 가수 값이 0인 경우, 생성된 부분곱 합과 부분곱 캐리를 설정된 비트 수로 표현되는 제1 비트 부분곱 합과 제 비트 부분곱 캐리로 생성하고, 제3값의 가수의 비트 수를 확장하는 단계와, 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 확장된 비트 수를 가지는 제3값의 가수와 합산하여, 설정된 비트수인 제2 비트로 표현되는 가수를 생성하는 단계를 포함한다.
부동 소수점 복합연산시 불필요한 연산과정을 생략하여 전력 소모를 최소화 할 수 있다. 또한, 불필요한 연산 과정을 생략함으로써 전체적인 부동 소수점 연산의 처리 속도를 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치의 구성도,
도 2a는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치 중 곱셈 연산을 처리하는 모듈의 예시도,
도 2b는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치 중 정규화를 처리하는 모듈의 예시도,
도 3a는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산방법 중 곱셈 연산방법의 흐름도,
도 3b는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산방법 중 정규화방법의 흐름도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치의 구성도이다.
도 1을 참조하면, 부동 소수점 복합 연산장치(100)는 부분곱 생성부(110), 제1 선택부(115), 캐리 저장 가산부(120), 캐리 선택 가산부(130)를 포함한다. 부분곱 생성부(110)는 곱셈이 가능한 연산모듈이다. 예를 들어, 가수가 64비트인 경우에는 Radix 8 booth 53 × 53 array multiplier를 이용한다. 부분곱 생성부(110)는 부동 소수점 수인 제1값과 제2값의 가수(mantissa)를 입력받는다. 본 발명의 복합 연산장치(100)는 부동 소수점인 제1값, 제2값, 제3값을 입력받아, 제1값에 제2값을 곱하고, 그 결과값에 제3값을 더하는 연산을 수행한다. 이 경우, 제1값과 제2값은 서로 곱셈연산의 대상이 되는 값이고, 제3값은 제1값에 제2값을 곱한 결과값에 더해지는 값이다.
또한, 입력되는 제1값, 제2값, 제3값은 부동 소수점의 국제 표준인 IEEE-754의 형식을 따른다. 국제 표준 IEEE-754에서 단정도(single precision)는 총 32비트로 표현되며, 1비트는 부호비트, 8비트는 지수비트, 나머지 23비트는 가수비트를 나타낸다. 배정도(double precision)는 총 64비트로 표현되며, 1비트는 부호비트, 11비트는 지수비트, 52비트는 가수비트를 나타낸다.
부분곱 생성부(110)는 입력된 제1값, 제2값의 가수를 설정된 n비트 단위로 나누어 부분곱들을 생성한다. 부분곱 생성부(110)는 생성된 부분곱들을 합산하여, 하나의 부분곱 합(sum)과 부분곱 캐리(carry)를 생성한다. 부분곱 생성부(110)는 생성된 부분곱 합과 부분곱 캐리를 후술하는 제1 선택부(115)로 전송한다. 제1 선택부(115)의 선택에 따라, 생성된 부분곱 합과 부분곱 캐리는 캐리 저장 가산부(120) 또는 캐리 선택 가산부(130)로 전송된다.
캐리 저장 가산부(120)는 덧셈 기능을 가지는 연산 모듈이다. 예를 들어, 캐리 저장 가산부(120)는 3 to 2 CSA(Carry Save Adder)가 사용된다. CSA는 덧셈을 고속으로 하기 위해 1회째의 덧셈에서 각 자리의 부분합 출력(sum)과 자리 올림 출력(carry)을 함께 보존하여 다음번의 덧셈에 이월하는 구조로 덧셈을 하는 회로이다. 캐리 저장 가산부(120)는 부분곱 생성부(110)에서 생성된 부분곱 합(sum)과 부분곱 캐리(carry)를 제3값의 가수의 최하위 비트를 합산한다.
또한, 캐리 저장 가산부(120)는 부분곱 생성부(110)에서 생성된 부분곱 합(sum)과 캐리(carry)를 제3값의 가수의 최하위 비트를 합산하여, 캐리 선택 가산부(130)로 출력한다. 따라서, 제1값, 제2값, 제3값의 가수를 입력받아, 새로운 부분곱 합(sum)과 부분곱 캐리(carry)를 출력한다. 이 경우, 출력되는 부분곱 합과 부분곱 캐리는 사용자의 설정에 따라 특정 비트 수의 제1비트로 표현된다. 예를 들어, 제1 비트는 배정도(double precision)의 비트 수보다 2배 이상의 비트 수를 가진다.
캐리 선택 가산부(130)는 고속의 덧셈 기능을 가지는 연산 모듈이다. 예를 들어, 캐리 선택 가산부(130)는 161 bits hybrid carry select adder가 사용된다. 캐리 선택 가산부(130)는 제1비트로 표현되는 부분곱 합과 부분곱 캐리를 제3값의 가수의 최상위 비트와 합산한다. 제3값의 가수의 최상위 비트는 캐리 저장 가산부(120)에 입력되는 제3값의 최하위 비트를 제외한 나머지 비트를 말한다.
캐리 선택 가산부(130)는 제1비트로 표현되는 부분곱 합과 부분곱 캐리를 제3값의 가수의 최상위 비트와 합산하여, 설정된 비트인 제2비트로 표현되는 가수를 생성한다. 이 경우, 제2비트는 배정도(double precision)의 비트 수보다 3배 이상인 비트 수를 가진다.
제1 선택부(115)는 한 개의 입력을 받으며, 2개 이상의 출력을 보내는 역다중화기(demultiplexer)이다. 제1 선택부(115)는 부분곱 생성부(110)로부터 부분곱 합과 부분곱 캐리를 입력받으며, 부분곱 합과 부분곱 캐리를 캐리 저장 가산부(120) 또는 캐리 선택 가산부(130)로 전송한다. 이 경우, 제1 선택부(115)는 제3값의 가수 값이 0인지 여부에 관한 신호를 입력받는다. 제3값의 가수 값이 0인 경우, 부동 소수점 복합 연산장치(100)는 제1값과 제2값의 곱셈만을 연산하게 된다.
제3값의 가수 값이 0이면, 가수의 모든 비트가 0이 된다. 따라서, 제3값의 가수의 최하위 비트는 0이고, 캐리 저장 가산부(120)에서의 연산을 생략해도 전체 결과값은 달라지지 않는다. 제1 선택부(115)는 제3값의 가수 값이 0이면 출력을 캐리 선택 가산부(130)로 선택하고, 제3값의 가수 값이 0이 아니면 출력을 캐리 저장 가산부(120)로 선택한다. 이에 따라, 곱셈 연산에서 불필요한 과정을 생략함으로써 전력 소비를 줄이고, 연산처리 속도가 개선된다.
한편, 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치(100)는 비트 정렬부(140), 비트 확장부(141), 제2 선택부(145)를 더 포함한다.
비트 정렬부(140)는 제3값의 가수의 비트를 제2비트로 정렬하는 연산모듈이다. 비트 정렬부(140)는 제3값의 가수의 비트를 인버트(invert)하고, 이를 설정된 비트 수인 제2비트로 정렬한다. 제2비트는 배정도(double precision)의 비트 수보다 3배 이상인 비트 수를 가진다. 예를 들어, 제2비트가 161비트로 설정되고, 제3값의 가수가 53비트인 경우, 제3값의 가수를 이동시켜 총 161비트로 정렬된다. 비트 정렬부(140)는 전체 비트를 제2비트로 정렬하고, 제2비트는 최하위 비트와 최상위 비트로 구분된다. 비트 정렬부(140)는 최하위 비트를 캐리 저장 가산부(120)로 출력한다. 비트 정렬부(140)는 최상위 비트를 캐리 선택 가산부(130)로 출력한다.
비트 확장부(141)는 제3값의 가수에 0으로 설정된 비트를 추가한다. 앞서 설명한 바와 같이, 비트 정렬부(140)는 제3값의 가수를 제2비트로 정렬한다. 이 경우, 제2비트는 최상위 비트와 최하위 비트로 구성된다. 예를 들어, 제2비트가 161비트인 경우 최상위 비트는 55비트로 설정되고, 최하위 비트는 106비트로 설정된다. 제3값이 배정도의 가수인 경우, 52비트인 가수 비트와 오버플로우 비트에 추가적인 2비트를 추가해야 55비트가 된다. 비트 확장부(141)는 최상위비트를 형성하기 위해 비트를 추가하여 정렬한다. 비트 확장부(141)는 비트가 확장된 제3값의 가수를 캐리 선택 가산부(130)로 출력한다.
제2 선택부(145)는 한 개의 입력을 받고, 2개 이상의 출력을 보내는 역다중화기(demultiplexer)이다. 제2 선택부(145)는 제3값의 가수 입력을 비트 정렬부(140) 또는 비트 확장부(141)로 출력한다. 이 경우, 제2 선택부(145)는 제3값의 가수 값이 0인지 여부에 관한 신호를 입력받는다. 제2 선택부(145)는 제3값의 가수 값이 0인 경우 비트 확장부(141)로 제3값의 가수를 출력하고, 제3값의 가수 값이 0이 아닌 경우 비트 정렬부(140)로 제3값의 가수를 출력한다.
제3값의 가수 값이 0이면 모든 비트가 0이므로, 비트를 정렬하여 최하위 비트를 캐리 저장 가산부(120)로 전송하지 않더라도 전체 결과는 달라지지 않는다. 이 경우, 비트 정렬부(140)의 연산을 생략할 수 있다. 이에 따라, 곱셈 연산에서 불필요한 과정을 생략함으로써 전력 소비를 줄이고, 연산처리 속도가 개선된다.
한편, 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치(100)는 부호 판단부(131), 보수 생성부(150), 저장부(151), 제3 선택부(155)를 더 포함한다.
부호 판단부(131)는 캐리 선택 가산부(130)로부터 제2비트로 표현되는 가수의 부호 정보를 입력받는다. 부호 판단부(131)는 제2비트로 표현되는 가수의 최상위 비트를 판단하여 부호를 가지는지 여부를 판단한다. 부동 소수점 수는 절대값을 표현하므로 부호를 가지지 않는다. 따라서, 캐리 선택 가산부(130)에서 제2비트로 표현되는 가수를 생성하는 과정에서 오버플로우(overflow) 등으로 부호가 있는 표현이 된다. 부호 판단부(131)는 제2비트로 표현되는 가수의 부호정보를 보수 생성부(150)로 전송한다.
보수 생성부(150)는 제2비트로 표현되는 가수를 1의 보수(1's complement)로 변환하는 논리 연산 모듈이다. 앞서 설명한 바와 같이, 부동 소수점 수는 부호를 가지지 않는다. 따라서, 부호 판단부(131)로부터 제2비트로 표현되는 가수가 부호를 가진다는 정보를 입력받으면, 제2비트로 표현되는 가수를 1의 보수로 변환한다. 보수 생성부(150)는 1의 보수로 변환된 데이터를 저장부(151)로 출력한다. 보수 생성부(150)는 제2비트로 표현되는 가수가 부호를 가지지 않는 경우에는 1의 보수로 변환하지 않고 저장부(151)로 출력한다. 저장부(151)는 제2비트로 표현되는 가수를 임시로 저장하는 메모리이다.
제3 선택부(155)는 한 개의 입력을 받으며, 2개 이상의 출력을 보내는 역다중화기(demultiplexer)이다. 제3 선택부(155)는 캐리 선택 가산부(130)로부터 제2비트로 표현되는 가수를 입력받는다. 제3 선택부(155)는 입력된 가수를 보수 생성부(150) 또는 저장부(151)로 전송한다. 제3 선택부(155)는 제3값의 가수 값이 0인지 여부에 대한 신호를 입력받는다. 제3값의 가수 값이 0인 경우에는 캐리 선택 가산부(130)에 입력되는 제3값의 최상위 비트는 모두 0이다. 이 경우, 곱셈 연산에서 부호가 발생하지 않으며, 1의 보수를 생성할 필요가 없다.
제3 선택부(155)는 제3값의 가수 값이 0인 경우에는 제2 비트로 표현되는 가수를 부호 판단부(131)와 보수 생성부(150)가 아닌 저장부(151)로 직접 출력한다. 제3값이 가수 값이 0이 아닌 경우에는 제2 비트로 표현되는 가수를 보수 생성부(150)로 전송하게 된다. 이에 따라, 곱셈 연산에서 불필요한 과정을 생략함으로써 전력 소비를 줄이고, 연산처리 속도가 개선된다. 앞서 설명한 제1 선택부(115), 제2 선택부(145) 및 제3 선택부(155)를 이용하여 곱셈 연산시 처리 속도를 개선하는 기술과 관련하여 도 2a를 참조하여 후술하도록 한다.
도 2a는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치 중 곱셈 연산을 처리하는 모듈의 예시도이다.
도 2a를 참조하면, 제1 선택부(115)는 두 개의 역다중화기로 구성될 수 있다. 하나의 역다중화기는 부분곱 생성부(110)로부터 부분곱 합을 입력받아 이를 캐리 저장 가산부(120) 또는 캐리 선택 가산부(130)로 전송한다. 다른 하나의 역다중화기는 부분곱 생성부(110)로부터 부분곱 캐리를 입력받아 이를 캐리 저장 가산부(120) 또는 캐리 선택 가산부(130)로 전송한다. 제1 선택부(115)는 제3값의 가수 값이 0인 경우에는 부분곱 합과 부분곱 캐리를 캐리 저장 가산부(120)가 아닌 캐리 선택 가산부(130)로 직접 전송한다.
제2 선택부(145)는 제3값의 가수 값이 0인지 여부에 따라 제3값의 가수를 비트 확장부(141) 또는 비트 정렬부(140)로 전송한다. 제3값의 가수 값이 0인 경우, 제3값의 가수를 비트 확장부(141)로 전송하면, 비트 정렬부(140)와 캐리 저장 가산부(120)에서의 연산이 생략된다. 제3 선택부(155)는 캐리 선택 가산부(130)로부터 입려되는 제2비트로 표현되는 가수를 보수 생성부(150) 또는 저장부(151)로 전송한다. 제3값의 가수 값이 0인 경우, 전체적인 연산에서 부호 판단 및 보수 처리를 생략하게 된다.
이와 같이, 부동 소수점 복합 연산장치(100)가 곱셈만을 수행할 때에는 캐리 저장 가산부(120), 비트 정렬부(140), 부호 판단부(131), 보수 생성부(150)에서의 연산이 생략된다. 이에 따라, 전체적인 연산이 처리가 단순화되어 처리 속도가 증가하고, 전력 소모가 감소한다.
다시 도 1로 돌아가서, 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치(100)는 정규화부(160), 라운드 판단부(170), 비교 판단부(180), 제4 선택부(175) 및 제5 선택부(185)를 더 포함한다.
정규화부(160)는 저장부(151)에 저장된 제2 비트로 표현되는 가수를 기 설정된 비트 수인 제3 비트로 정규화한다. 이 경우, 제3 비트는 배정도(double precision)의 가수의 비트와 같거나 많은 비트 수를 가진다. 예를 들어, 배정도의 경우 제3 비트는 52비트일 수 있다. 저장부(151)에 저장된 제2 비트로 표현되는 가수가 161비트인 경우에는 실질적으로 표현되는 52비트를 제3 비트로 비트의 자리를 정렬한다. 정규화부(160)는 정규화된 제3 비트로 표현되는 가수를 제4 선택부(175)로 전송한다.
라운드 판단부(170)는 저장부(151)에 저장된 제2 비트로 표현되는 가수를 제3 비트로 정규화시 라운드가 발생하는지를 판단한다. IEEE-754 국제 표준에는 4가지 라운드 모드가 정의되어 있다. 라운드 모드에는 가까운 쪽으로 라운드(Round to nearest), 0으로 라운드(Round toward zero), 양의 무한대로 라운드(Round toward positive infinity), 음의 무한대로 라운드(Round toward negative infinity)가 있다. 라운드 모드는 내부적으로 설정된다. 라운드 판단부(170)는 제2 비트로 표현되는 가수를 제3 비트로 정규화시 라운드 모드에 따른 라운드 발생여부를 판단한다.
라운드 판단부(170)는 정규화시 라운드가 발생하면 라운드를 반영한 제3 비트로 표현되는 가수를 후술하는 제4 선택부(175)로 전송한다. 또한, 라운드 판단부(170)는 라운드 업이 발생하는지에 관한 정보를 후술하는 비교 판단부(180)로 전송한다. 또한, 라운드 판단부(170)는 제4 선택부(175)의 선택입력으로 라운드 발생정보를 전송한다.
제4 선택부(175)는 두 개의 입력을 받아 하나의 출력을 보내는 다중화기(multiplexer)이다. 제4 선택부(175)는 라운드 판단부(170)와 정규화부(160)로부터 입력을 받으며, 라운드 판단부(170)로부터 입력된 라운드 발생정보에 따라 하나의 출력을 선택한다. 제4 선택부(175)는 라운드가 발생하면, 라운드가 반영된 제3 비트 가수 값을 출력한다. 제4 선택부(175)는 라운드가 발생하지 않으면, 정규화부(160)로부터 입력된 제3 비트 가수 값을 출력한다. 제4 선택부(175)는 선택된 제3 비트 가수 값을 후술하는 제5 선택부(185)로 출력한다.
비교 판단부(180)는 정규화부(160)에서 제2 비트 가수를 제3 비트로 정규화하기 이전에 2차 정규화(post-normalization)의 실행여부를 미리 판단한다. 비교 판단부(180)는 저장부(151)에 저장된 제2 비트 가수의 최하위 비트 값이 모두 1인지 여부를 판단한다. 즉, 비교 판단부(180)는 제2 비트 수의 모든 비트가 1로 설정된 데이터가 저장되어 있으며, 이를 저장부(151)에 저장된 제2 비트 가수의 최하위 비트를 비교한다.
또한, 비교 판단부(180)는 라운드 판단부(170)로부터 제2 비트로 표현되는 가수를 제3 비트로 정규화시 라운드 업(round up) 발생정보를 입력받는다. 즉, 저장부(151)에 저장된 제2 비트 가수의 제3 비트의 비트 수를 가지는 최하위 비트가 모두 1이고, 제2 비트 가수를 정규화시 라운드 업이 발생하면 2차 정규화를 해야한다. 따라서, 정규화를 하기 전에 미리 2차 정규화의 발생정보를 미리 알 수 있다. 비교 판단부(180)는 2차 정규화 정보를 후술하는 제5 선택부(185)로 전송한다.
제5 선택부(185)는 두 개의 입력을 받아 하나의 출력을 보내는 다중화기(multiplexer)이다. 제5 선택부(185)는 비교 판단부(180)로부터 입력되는 2차 정규화 발생정보에 따라, 제4 선택부(175)의 출력값 또는 모든 값이 0으로 설정된 제3 비트로 표현되는 가수 값 중 하나를 출력한다. 앞서 설명한 바와 같이 제2 비트 가수의 최하위 비트가 모두 1이고, 제3 비트로 정규화시 라운드 업이 발생하면 제3 비트의 모든 비트는 0이 된다. 따라서, 제5 선택부(185)는 미리 2차 정규화의 발생여부를 판단하여 2차 정규화의 발생이 예상되는 경우, 모든 비트가 0인 제3 비트의 가수를 출력한다.
도 2b는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산장치(100) 중 정규화를 처리하는 모듈의 예시도이다.
도 2b를 참조하면, 저장부(151)에 저장된 제2 비트로 표현되는 가수는 비교 판단부(180), 라운드 판단부(170), 정규화부(160)에 입력된다. 비교 판단부(180)는 제2 비트로 표현되는 가수의 최하위 비트가 모두 1인지 판단한다. 최하위 비트는 미리 설정된 비트 수인 제3 비트이다. 비교 판단부(180)는 라운드 판단부(170)로부터 라운드 업 발생정보를 입력받는다. 따라서, 비교 판단부(180)는 제2 비트 가수의 최하위 비트가 모두 1이고, 제3 비트로 라운드시 라운드 업이 발생하면 2차 정규화 정보를 제5 선택부(185)의 선택(selection)으로 출력한다.
제4 선택부(175)는 라운드 판단부(170)와 정규화부(160)로부터 제3 비트 가수를 입력받으며, 라운드 판단부(170)로부터 입력되는 라운드 발생정보를 선택입력으로 하여 하나의 입력을 선택한다. 제4 선택부(175)는 제5 선택부(185)로 선택된 제3 비트 가수를 출력한다.
제5 선택부(185)는 모든 비트가 0으로 설정된 제3 비트 가수와 제4 선택부(175)로부터 입력된 제3 비트 가수 중 하나를 선택한다. 이 경우, 앞서 설명한 바와 같이 비교 판단부(180)로부터 2차 정규화 정보를 입력받는다. 제5 선택부(185)는 2차 정규화가 필요한 경우에는 모든 비트가 0인 제3 비트 가수를 출력한다. 제5 선택부(185)는 2차 정규화가 필요하지 않은 경우에는 제4 선택부(175)로부터 입력된 제3 비트 가수를 출력한다. 이에 따라, 2차 정규화(post-normalization)가 필요한지 미리 판단함으로써 연산 처리 속도가 향상된다.
도 3a는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산방법 중 곱셈 연산방법의 흐름도이다.
도 3a를 참조하면, 먼저 부동 소수점 수인 제1값, 제2값의 가수를 설정된 비트 단위인 n 비트 단위로 나눈 부분곱들을 가산하여 하나의 부분곱 합과 부분곱 캐리를 생성한다(400). 다음으로, 부동 소수점인 제3값의 가수 값이 0인지 여부를 판단한다(410). 부동 소수점 복합 연산은 제1값과 제2값을 곱한후, 그 결과값에 제3값을 더한다. 이 경우, 제3값의 가수 값이 0이면, 제1값과 제2값의 곱셈연산만 수행하면 된다. 따라서, 제3값의 가수 값을 미리 확인함으로써 불필요한 덧셈 과정이 생략된다.
제3값의 가수가 0이면, 생성된 부분곱 합과 부분곱 캐리를 설정된 비트 수인 제1 비트의 부분곱 합과 제1 비트의 부분곱 캐리를 생성하며, 제3값의 가수의 최상위 비트의 비트 수를 확장한다(420). 이 경우, 제1 비트는 배정도(double precision)의 비트 수보다 2배 이상의 비트 수를 가지다.
다음으로, 제1비트 부분곱 합과 제1비트 부분곱 캐리를 제3값의 가수의 확장된 최상위 비트와 합산하여, 설정된 비트 수로 표현되는 제2 비트 가수를 생성한다(430). 이 경우, 제2 비트는 배정도(double precision)의 비트 수보다 3배 이상의 비트 수를 가진다.
제3값의 가수 값이 0이 아닌 경우, 생성된 부분곱 합과 부분곱 캐리를 제3값의 최하위 비트와 합산하여 설정된 비트 수로 표현되는 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 생성한다(440). 다음으로, 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 제3값의 최상위 비트와 합산하여, 제2 비트 가수를 생성한다.
도 3b는 본 발명의 일 실시예에 따른 부동 소수점 복합 연산방법 중 정규화방법의 흐름도이다.
도 3b를 참조하면, 먼저 앞의 도 3a 방법을 통해 생성된 제2 비트 가수가 부호를 가지는지 판단한다(500). 다음으로, 제2 비트 가수가 부호를 가지는 경우 제2 비트 가수를 1의 보수로 변환한다(510). 부동 소수점 수는 절대값으로 표현되므로, 부호가 있는 경우에는 이를 1의 보수로 생성해야 한다.
다음으로, 제2 비트 가수를 미리 설정된 비트 수인 제3 비트로 표현되도록 정규화하고, 정규화시 라운드가 발생하는지 판단한다(520). 제2 비트 가수를 정규화시 라운드가 발생하지 않으며, 제3 비트 가수를 출력한다(540). 제3 비트는 배정도(double precision)의 가수의 비트와 같거나 많은 비트 수를 가진다. 라운드가 발생하는 경우에는 제2 비트 가수의 최하위 비트가 모두 1인지 판단한다(530). 이 경우, 제2 비트 가수 중 제3 비트 수의 비트가 최하위 비트다. 최하위 비트가 1인 경우에는 모든 비트가 0인 제3 비트의 가수를 출력한다(550). 최하위 비트가 모두 1이 아닌 경우에는 라운드 된 제3 비트 가수를 출력한다(560).
이상에서 본 발명은 도면을 참조하면서 기술되는 바람직한 실시예를 중심으로 설명되었지만 이에 한정되는 것은 아니다. 따라서 본 발명은 기재된 실시예로부터 도출 가능한 자명한 변형예를 포괄하도록 의도된 특허청구범위의 기재에 의해 해석되어져야 한다.
100 : 부동 소수점 복합 연산장치
110 : 부분곱 생성부
115 : 제1 선택부
120 : 캐리 저장 가산부
130 : 캐리 선택 가산부
131 : 부호 판단부
140 : 비트 정렬부
141 : 비트 확장부
145 : 제2 선택부
150 : 보수 생성부
151 : 저장부
155 : 제3 선택부
160 : 정규화부
170 : 라운드 판단부
175 : 제4 선택부
180 : 비교 판단부
185 : 제5 선택부

Claims (13)

  1. 부동 소수점인 제1값과 제2값의 가수(mantissa)를 n비트 단위로 나누어 부분곱을 계산하고, 계산된 부분곱들을 가산하여 하나의 부분곱 합과 부분곱 캐리를 생성하는 부분곱 생성부와;
    상기 생성된 부분곱 합과 부분곱 캐리를 부동 소수점인 제3값의 가수의 최하위 비트와 합산하여 기 설정된 비트 수인 제1 비트로 표현되는 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 생성하는 캐리 저장 가산부와;
    상기 생성된 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 상기 제3값의 가수의 최상위 비트와 합산하여 기 설정된 비트 수인 제2 비트로 표현되는 가수를 생성하는 캐리 선택 가산부; 및
    상기 제3값의 가수 값이 0이면 상기 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 상기 캐리 선택 가산부로 전송하고, 상기 제3값의 가수 값이 0이 아니면 상기 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 상기 캐리 저장 가산부로 전송하는 제1 선택부를 포함하는 부동 소수점의 복합 연산장치.
  2. 제1항에 있어서, 상기 부동 소수점의 복합 연산장치는,
    상기 제3값의 가수를 제2 비트로 정렬하여, 상기 제3값의 가수의 최하위 비트를 상기 캐리 저장 가산부로 출력하고, 상기 제3값의 가수의 최상위 비트를 상기 캐리 선택 가산부로 출력하는 비트 정렬부와;
    상기 제3값의 가수의 최상위 비트의 비트 수를 확장하여 상기 캐리 선택 가산부로 출력하는 비트 확장부; 및
    상기 제3값의 가수 값이 0이면 상기 제3값의 가수를 상기 비트 확장부로 전송하고, 상기 제3값의 가수 값이 0이 아니면 상기 제3값의 가수를 상기 비트 정렬부로 전송하는 제2 선택부를 더 포함하는 부동 소수점의 복합 연산장치.
  3. 제1항에 있어서, 상기 부동 소수점의 복합 연산장치는,
    상기 캐리 선택 가산부에서 생성된 제2 비트로 표현되는 가수가 부호를 가지는지 판단하는 부호 판단부와;
    상기 제2 비트로 표현되는 가수가 부호를 가지는 경우, 상기 제2 비트로 표현되는 가수를 1의 보수로 생성하는 보수 생성부와;
    상기 캐리 선택 가산부에서 생성된 제2 비트로 표현되는 가수를 저장하는 저장부; 및
    상기 제3값의 가수 값이 0이면 상기 캐리 선택 가산부에서 생성된 제2 비트로 표현되는 가수를 상기 저장부로 전송하고, 상기 제3값의 가수 값이 0이 아니면 상기 캐리 선택 가산부에서 생성된 제2 비트로 표현되는 가수를 상기 보수 생성부로 전송하는 제3 선택부를 더 포함하는 부동 소수점의 복합 연산장치.
  4. 제3항에 있어서, 상기 부동 소수점의 복합 연산장치는,
    상기 저장부에 저장된 제2 비트로 표현되는 가수를 기 설정된 비트 수인 제3 비트로 정규화하는 정규화부와;
    상기 정규화부에서 라운드가 발생하는지 판단하고, 라운드가 발생하는 경우 라운드가 반영된 제3 비트로 표현되는 가수를 생성하는 라운드 판단부; 및
    라운드가 발생하면 상기 라운드가 반영된 제3 비트로 표현되는 가수를 선택하고, 라운드가 발생하지 않으면 상기 제3 비트로 정규화된 가수를 선택하는 제4 선택부를 더 포함하는 부동 소수점의 복합 연산장치.
  5. 제4항에 있어서, 상기 부동 소수점의 복합 연산장치는,
    상기 저장부에 저장된 제2 비트로 표현되는 가수의 최하위 비트 값이 모두 1인지 여부를 판단하고 상기 제2 비트로 표현되는 가수를 제3 비트로 정규화시 라운드 업이 발생하는지를 판단하는 비교 판단부와;
    상기 저장부에 저장된 제2 비트로 표현되는 가수의 최하위 비트 값이 모두 1이고 상기 제2 비트로 표현되는 가수를 제3 비트로 정규화시 라운드 업이 발생하면 모든 값이 0으로 설정된 제3 비트로 표현되는 가수를 선택하고, 그렇지 않으면 상기 제4 선택부에서 선택된 가수를 선택하는 제5 선택부를 더 포함하는 부동 소수점의 복합 연산장치.
  6. 제1항에 있어서,
    상기 제1 비트는 배정도(double precision)의 비트 수보다 2배 이상의 비트 수를 가지는 부동 소수점의 복합 연산장치.
  7. 제1항에 있어서,
    상기 제2 비트는 배정도(double precision)의 비트 수보다 3배 이상인 비트 수를 가지는 부동 소수점의 복합 연산장치.
  8. 제5항에 있어서,
    상기 제3 비트는 배정도(double precision)의 가수의 비트와 같거나 많은 비트 수를 가지는 부동 소수점의 복합 연산장치.
  9. 부동 소수점인 제1값과 제2값의 가수(mantissa)를 n비트 단위로 나누어 부분곱을 계산하고, 계산된 부분곱들을 가산하여 하나의 부분곱 합과 부분곱 캐리를 생성하는 단계;
    부동 소수점인 제3값의 가수 값이 0인지 판단하는 단계와;
    상기 제3값의 가수 값이 0인 경우, 상기 생성된 부분곱 합과 부분곱 캐리를 설정된 비트 수로 표현되는 제1 비트 부분곱 합과 제 비트 부분곱 캐리로 생성하고, 상기 제3값의 가수의 비트 수를 확장하는 단계; 및
    상기 제1 비트 부분곱 합과 제1 비트 부분곱 캐리를 상기 확장된 비트 수를 가지는 제3값의 가수와 합산하여, 설정된 비트수인 제2 비트로 표현되는 가수를 생성하는 단계를 포함하는 부동 소수점의 복합 연산방법.
  10. 제9항에 있어서, 상기 부동 소수점의 복합 연산방법은,
    상기 제2 비트로 표현되는 가수의 최하위 비트가 모두 1인지 판단하는 단계와;
    상기 제2 비트로 표현되는 가수를 정규화하고, 라운드 발생여부를 판단하는 단계; 및
    상기 제2 비트로 표현되는 가수의 최하위 비트가 모두 1이고, 정규화시 라운드 업이 발생하는 경우, 모든 비트가 0이고 설정된 비트 수인 제3 비트로 표현되는 가수를 출력하는 단계를 더 포함하는 부동 소수점의 복합 연산방법.
  11. 제9항에 있어서,
    상기 제1 비트는 배정도(double precision)의 비트 수보다 2배 이상의 비트 수를 가지는 부동 소수점의 복합 연산방법.
  12. 제9항에 있어서,
    상기 제2 비트는 배정도(double precision)의 비트 수보다 3배 이상인 비트 수를 가지는 부동 소수점의 복합 연산방법.
  13. 제10항에 있어서,
    상기 제3 비트는 배정도(double precision)의 가수의 비트와 같거나 많은 비트 수를 가지는 부동 소수점의 복합 연산방법.
KR1020100114564A 2010-11-17 2010-11-17 부동 소수점의 복합 연산장치 및 그 연산방법 KR101735677B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100114564A KR101735677B1 (ko) 2010-11-17 2010-11-17 부동 소수점의 복합 연산장치 및 그 연산방법
US13/153,885 US8805915B2 (en) 2010-11-17 2011-06-06 Fused multiply-add apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100114564A KR101735677B1 (ko) 2010-11-17 2010-11-17 부동 소수점의 복합 연산장치 및 그 연산방법

Publications (2)

Publication Number Publication Date
KR20120053343A KR20120053343A (ko) 2012-05-25
KR101735677B1 true KR101735677B1 (ko) 2017-05-16

Family

ID=46048784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100114564A KR101735677B1 (ko) 2010-11-17 2010-11-17 부동 소수점의 복합 연산장치 및 그 연산방법

Country Status (2)

Country Link
US (1) US8805915B2 (ko)
KR (1) KR101735677B1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US8924454B2 (en) * 2012-01-25 2014-12-30 Arm Finance Overseas Limited Merged floating point operation using a modebit
US9104474B2 (en) * 2012-12-28 2015-08-11 Intel Corporation Variable precision floating point multiply-add circuit
US9317251B2 (en) 2012-12-31 2016-04-19 Nvidia Corporation Efficient correction of normalizer shift amount errors in fused multiply add operations
GB2511314A (en) 2013-02-27 2014-09-03 Ibm Fast fused-multiply-add pipeline
US9389871B2 (en) 2013-03-15 2016-07-12 Intel Corporation Combined floating point multiplier adder with intermediate rounding logic
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US10671347B2 (en) * 2016-01-28 2020-06-02 International Business Machines Corporation Stochastic rounding floating-point multiply instruction using entropy from a register
US10489152B2 (en) 2016-01-28 2019-11-26 International Business Machines Corporation Stochastic rounding floating-point add instruction using entropy from a register
US10402168B2 (en) * 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US20180121168A1 (en) 2016-10-27 2018-05-03 Altera Corporation Denormalization in multi-precision floating-point arithmetic circuitry
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10534578B1 (en) * 2018-08-27 2020-01-14 Google Llc Multi-input floating-point adder
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
KR20200135059A (ko) 2019-05-24 2020-12-02 삼성전자주식회사 데이터를 처리하는 방법 및 장치
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
WO2023113445A1 (ko) * 2021-12-14 2023-06-22 서울대학교산학협력단 부동 소수점 연산 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101244A1 (en) 2004-11-10 2006-05-11 Nvidia Corporation Multipurpose functional unit with combined integer and floating-point multiply-add pipeline
US20090248779A1 (en) 2008-03-28 2009-10-01 Brooks Jeffrey S Processor which Implements Fused and Unfused Multiply-Add Instructions in a Pipelined Manner
KR100929423B1 (ko) 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3600026B2 (ja) 1998-08-12 2004-12-08 株式会社東芝 浮動小数点演算器
US6427159B1 (en) 1999-08-03 2002-07-30 Koninklijke Philips Electronics N.V. Arithmetic unit, digital signal processor, method of scheduling multiplication in an arithmetic unit, method of selectively delaying adding and method of selectively adding during a first or second clock cycle
US7240184B2 (en) 2004-11-10 2007-07-03 Nvidia Corporation Multipurpose functional unit with multiplication pipeline, addition pipeline, addition pipeline and logical test pipeline capable of performing integer multiply-add operations
US7225323B2 (en) 2004-11-10 2007-05-29 Nvidia Corporation Multi-purpose floating point and integer multiply-add functional unit with multiplication-comparison test addition and exponent pipelines
JP4891252B2 (ja) 2004-11-10 2012-03-07 エヌヴィディア コーポレイション 汎用乗算加算機能ユニット
US7428566B2 (en) 2004-11-10 2008-09-23 Nvidia Corporation Multipurpose functional unit with multiply-add and format conversion pipeline
US8106914B2 (en) 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (ko) 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
US20060101244A1 (en) 2004-11-10 2006-05-11 Nvidia Corporation Multipurpose functional unit with combined integer and floating-point multiply-add pipeline
US20090248779A1 (en) 2008-03-28 2009-10-01 Brooks Jeffrey S Processor which Implements Fused and Unfused Multiply-Add Instructions in a Pipelined Manner

Also Published As

Publication number Publication date
KR20120053343A (ko) 2012-05-25
US20120124117A1 (en) 2012-05-17
US8805915B2 (en) 2014-08-12

Similar Documents

Publication Publication Date Title
KR101735677B1 (ko) 부동 소수점의 복합 연산장치 및 그 연산방법
CN107273090B (zh) 面向神经网络处理器的近似浮点乘法器及浮点数乘法
CN108287681B (zh) 一种单精度浮点融合点乘运算装置
CN107291419B (zh) 用于神经网络处理器的浮点乘法器及浮点数乘法
US9639326B2 (en) Floating-point adder circuitry
US8606840B2 (en) Apparatus and method for floating-point fused multiply add
EP1857925B1 (en) Method and apparatus for decimal number multiplication using hardware for binary number operations
JPH02196328A (ja) 浮動小数点演算装置
KR101718817B1 (ko) 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법
KR20080055985A (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
US5148386A (en) Adder-subtracter for signed absolute values
CN101692202A (zh) 一种64比特浮点乘加器及其浮点运算流水节拍处理方法
CN104246690A (zh) 数字信号处理器中用于信号处理的系统和方法
US8316071B2 (en) Arithmetic processing unit that performs multiply and multiply-add operations with saturation and method therefor
US20170293471A1 (en) Arithmetic units and related converters
US20100125621A1 (en) Arithmetic processing device and methods thereof
CN112130803A (zh) 具有正确舍入的浮点点积运算器
US8554819B2 (en) System to implement floating point adder using mantissa, rounding, and normalization
US20070038693A1 (en) Method and Processor for Performing a Floating-Point Instruction Within a Processor
KR20170138143A (ko) 단일 곱셈-누산 방법 및 장치
CN112130804A (zh) 具有正确舍入的混合精度浮点数的融合乘加运算器
CN109976705B (zh) 浮点格式数据处理装置、数据处理设备及数据处理方法
US9575725B1 (en) Specialized processing block with embedded pipelined accumulator circuitry
EP3647939A1 (en) Arithmetic processing apparatus and controlling method therefor
US20140136582A1 (en) Method and apparatus for digital automatic gain control

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