KR20170138143A - 단일 곱셈-누산 방법 및 장치 - Google Patents
단일 곱셈-누산 방법 및 장치 Download PDFInfo
- Publication number
- KR20170138143A KR20170138143A KR1020160070144A KR20160070144A KR20170138143A KR 20170138143 A KR20170138143 A KR 20170138143A KR 1020160070144 A KR1020160070144 A KR 1020160070144A KR 20160070144 A KR20160070144 A KR 20160070144A KR 20170138143 A KR20170138143 A KR 20170138143A
- Authority
- KR
- South Korea
- Prior art keywords
- floating point
- bits
- mode
- exponent
- basic
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
도 2는 일 실시예에 따른 단일 곱셈-누산 방법의 흐름도이다.
도 3은 일 예에 따른 부동 소수점을 나타내는 형식을 도시한다.
도 4는 일 예에 따른 두 단계 부스 알고리즘의 동작을 개략적으로 보여주는 구성도이다
도 5는 일 예에 따른 모드를 결정하는 방법의 흐름도이다.
도 6은 일 예에 따른 제1 모드에 기반하여 덧셈 결과를 생성하는 방법을 도시한다.
도 7은 일 예에 따른 제2 모드에 기반하여 덧셈 결과를 생성하는 방법을 도시한다.
도 8은 일 예에 따른 제3 모드에 기반하여 덧셈 결과를 생성하는 방법을 도시한다.
도 9는 일 예에 따른 제4 모드에 기반하여 덧셈 결과를 생성하는 방법을 도시한다.
도 10은 일 예에 따른 처리부의 아키텍쳐이다.
도 11은 일 예에 따른 단일 곱셈-누산 장치를 이용한 실험 결과를 도시한다.
110: 통신부
120: 처리부
130: 메모리
Claims (20)
- 가중된 두 단계 부스 알고리즘(weighted two-level booth algorithm)을 이용하여 제1 부동 소수점의 지수 및 제2 부동 소수점의 지수가 서로 대응하도록, 상기 제1 부동 소수점 및 상기 제2 부동 소수점 중 적어도 하나의 기본 지수를 조정하는 단계;
상기 제1 부동 소수점의 기본 지수, 상기 제2 부동 소수점의 기본 지수 및 제3 부동 소수점의 기본 지수에 기반하여, 미리 설정된 복수의 모드들 중 상기 제1 부동 소수점의 가수 및 상기 제2 부동 소수점의 가수를 곱한 곱셈 결과에 상기 제3 부동 소수점의 가수를 더하는 모드를 결정하는 단계;
상기 곱셈 결과를 생성하는 단계;
상기 곱셈 결과에 상기 제3 부동 소수점의 가수를 더함으로써 덧셈 결과를 생성하는 단계;
상기 결정된 모드에 기반하여 상기 덧셈 결과 내에 두 개의 프록시(proxy) 비트들을 정의하는 단계;
상기 두 개의 프록시 비트들에 기반하여 두 개의 스티키(sticky) 비트들을 각각 계산하는 단계; 및
상기 스티키 비트들에 기반하여 상기 덧셈 결과를 반올림함으로써 최종 결과를 생성하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제1항에 있어서,
상기 미리 설정된 복수의 모드들 중 상기 모드를 결정하는 단계는,
상기 제3 부동 소수점의 기본 지수에서 상기 제1 부동 소수점의 기본 지수 및 상기 제2 부동 소수점의 기본 지수를 곱한 값을 뺀 값에 기반하여 상기 모드를 결정하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제2항에 있어서,
상기 미리 설정된 복수의 모드들은 4개의 모드들인,
단일 곱셈-누산 방법.
- 제2항에 있어서,
상기 제3 부동 소수점의 기본 지수에서 상기 제1 부동 소수점의 기본 지수 및 상기 제2 부동 소수점의 기본 지수를 곱한 값을 뺀 값에 기반하여 상기 모드를 결정하는 단계는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 56이상인 경우 제1 모드로 결정하는 단계
를 포함하고,
상기 덧셈 결과를 생성하는 단계는,
상기 모드가 제1 모드로 결정된 경우, 상기 제3 부동 소수점의 가수의 53 비트들을 상기 덧셈 결과의 상위 53 비트들로 생성하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제2항에 있어서,
상기 제3 부동 소수점의 기본 지수에서 상기 제1 부동 소수점의 기본 지수 및 상기 제2 부동 소수점의 기본 지수를 곱한 값을 뺀 값에 기반하여 상기 모드를 결정하는 단계는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 0 이상이고, 56미만인 경우 제2 모드로 결정하는 단계
를 포함하고,
상기 덧셈 결과를 생성하는 단계는,
상기 모드가 제2 모드로 결정된 경우, 상기 곱셈 결과 및 제3 부동 소수점의 가수를 더한 결과 중 상위 53 비트들을 상기 덧셈 결과의 상위 53 비트들로 생성하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제2항에 있어서,
상기 제3 부동 소수점의 기본 지수에서 상기 제1 부동 소수점의 기본 지수 및 상기 제2 부동 소수점의 기본 지수를 곱한 값을 뺀 값에 기반하여 상기 모드를 결정하는 단계는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 -57을 초과하고, 0 이하인 경우 제3 모드로 결정하는 단계
를 포함하고,
상기 덧셈 결과를 생성하는 단계는,
상기 모드가 제3 모드로 결정된 경우, 상기 곱셈 결과에 상기 제3 부동 소수점의 가수를 더함으로써 상기 덧셈 결과를 생성하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제2항에 있어서,
상기 제3 부동 소수점의 기본 지수에서 상기 제1 부동 소수점의 기본 지수 및 상기 제2 부동 소수점의 기본 지수를 곱한 값을 뺀 값에 기반하여 상기 모드를 결정하는 단계는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 -57이하인 경우 제4 모드로 결정하는 단계
를 포함하고,
상기 덧셈 결과를 생성하는 단계는,
상기 모드가 제4 모드로 결정된 경우, 상기 곱셈 결과의 상위 54 비트들을 상기 덧셈 결과의 상위 54 비트들로 생성하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제1항에 있어서,
상기 두 개의 프록시 비트들을 정의하는 단계는,
상기 덧셈 결과의 라운드 비트의 오른쪽 첫 번째 비트 및 오른쪽 두 번째 비트를 상기 두 개의 프록시 비트들로 정의하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제1항에 있어서,
상기 두 개의 스티키 비트들을 각각 계산하는 단계는,
상기 두 개의 프록시 비트들을 논리 오어 연산(logical OR operation)함으로써 제1 스티키 비트를 계산하는 단계; 및
상기 곱셈 결과와 상기 제3 부동 소수점의 가수를 더한 결과 중 상기 덧셈 결과에 영향을 미치지 않는 비트들에 기반하여 제2 스티키 비트를 계산하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 제1항에 있어서,
상기 가중된 두 단계 부스 알고리즘을 이용하여 상기 제1 부동 소수점, 상기 제2 부동 소수점 및 상기 제3 부동 소수점 중 적어도 하나의 기본 지수를 조정하는 단계는,
기본 지수에 적용된 제1 부스 인코딩 단위보다 더 낮은 제2 부스 인코딩 단위를 이용하여 상기 제1 부동 소수점, 상기 제2 부동 소수점 및 상기 제3 부동 소수점 중 적어도 하나의 기본 지수를 조정하는 단계
를 포함하는,
단일 곱셈-누산 방법.
- 가중된 두 단계 부스 알고리즘(weighted two-level booth algorithm)을 이용하여 제1 부동 소수점의 지수 및 제2 부동 소수점의 지수가 서로 대응하도록, 상기 제1 부동 소수점 및 상기 제2 부동 소수점 중 적어도 하나의 기본 지수를 조정하고,
상기 제1 부동 소수점의 기본 지수, 상기 제2 부동 소수점의 기본 지수 및 제3 부동 소수점의 기본 지수에 기반하여, 미리 설정된 복수의 모드들 중 상기 제1 부동 소수점의 가수 및 상기 제2 부동 소수점의 가수를 곱한 곱셈 결과에 상기 제3 부동 소수점의 가수를 더하는 모드를 결정하고,
상기 곱셈 결과를 생성하고,
상기 곱셈 결과에 상기 제3 부동 소수점의 가수를 더함으로써 덧셈 결과를 생성하고,
상기 결정된 모드에 기반하여 상기 덧셈 결과 내에 두 개의 프록시(proxy) 비트들을 정의하고,
상기 두 개의 프록시 비트들에 기반하여 두 개의 스티키(sticky) 비트들을 각각 계산하고,
상기 스티키 비트들에 기반하여 상기 덧셈 결과를 반올림함으로써 최종 결과를 생성하는, 처리부; 및
상기 제1 부동 소수점, 상기 제2 부동 소수점 및 상기 제3 부동 소수점을 저장하는 메모리
를 포함하는,
단일 곱셈-누산 장치.
- 제11항에 있어서,
상기 처리부는,
상기 제3 부동 소수점의 기본 지수에서 상기 제1 부동 소수점의 기본 지수 및 상기 제2 부동 소수점의 기본 지수를 곱한 값을 뺀 값에 기반하여 상기 모드를 결정하는,
단일 곱셈-누산 장치.
- 제12항에 있어서,
상기 미리 설정된 복수의 모드들은 4개의 모드들인,
단일 곱셈-누산 장치.
- 제12항에 있어서,
상기 처리부는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 56이상인 경우 제1 모드로 결정하고,
상기 모드가 제1 모드로 결정된 경우, 상기 제3 부동 소수점의 가수의 53 비트들을 상기 덧셈 결과의 상위 53 비트들로 생성하는,
단일 곱셈-누산 장치.
- 제12항에 있어서,
상기 처리부는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 0 이상이고, 56미만인 경우 제2 모드로 결정하고,
상기 모드가 제2 모드로 결정된 경우, 상기 곱셈 결과 및 제3 부동 소수점의 가수를 더한 결과 중 상위 53 비트들을 상기 덧셈 결과의 상위 53 비트들로 생성하는,
단일 곱셈-누산 장치.
- 제12항에 있어서,
상기 처리부는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 -57을 초과하고, 0 이하인 경우 제3 모드로 결정하고,
상기 모드가 제3 모드로 결정된 경우, 상기 곱셈 결과에 상기 제3 부동 소수점의 가수를 더함으로써 상기 덧셈 결과를 생성하는,
단일 곱셈-누산 장치.
- 제12항에 있어서,
상기 처리부는,
상기 부동 소수점들이 64 비트들로 각각 표현되고, 상기 뺀 값이 -57이하인 경우 제4 모드로 결정하고,
상기 모드가 제4 모드로 결정된 경우, 상기 곱셈 결과의 상위 54 비트들을 상기 덧셈 결과의 상위 54 비트들로 생성하는,
단일 곱셈-누산 장치.
- 제11항에 있어서,
상기 처리부는,
상기 덧셈 결과의 라운드 비트의 오른쪽 첫 번째 비트 및 오른쪽 두 번째 비트를 상기 두 개의 프록시 비트들로 정의하는,
단일 곱셈-누산 장치.
- 제11항에 있어서,
상기 처리부는,
상기 두 개의 프록시 비트들을 논리 오어 연산(logical OR operation)함으로써 제1 스티키 비트를 계산하고, 상기 곱셈 결과와 상기 제3 부동 소수점의 가수를 더한 결과 중 상기 덧셈 결과에 영향을 미치지 않는 비트들에 기반하여 제2 스티키 비트를 계산하는,
단일 곱셈-누산 장치.
- 제11항에 있어서,
상기 처리부는,
기본 지수에 적용된 제1 부스 인코딩 단위보다 더 낮은 제2 부스 인코딩 단위를 이용하여 상기 제1 부동 소수점, 상기 제2 부동 소수점 및 상기 제3 부동 소수점 중 적어도 하나의 기본 지수를 조정하는,
단일 곱셈-누산 장치.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160070144A KR102481418B1 (ko) | 2016-06-07 | 2016-06-07 | 단일 곱셈-누산 방법 및 장치 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020160070144A KR102481418B1 (ko) | 2016-06-07 | 2016-06-07 | 단일 곱셈-누산 방법 및 장치 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170138143A true KR20170138143A (ko) | 2017-12-15 |
| KR102481418B1 KR102481418B1 (ko) | 2022-12-26 |
Family
ID=60954440
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020160070144A Active KR102481418B1 (ko) | 2016-06-07 | 2016-06-07 | 단일 곱셈-누산 방법 및 장치 |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102481418B1 (ko) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021046568A1 (en) * | 2019-09-05 | 2021-03-11 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
| US11537861B2 (en) | 2020-06-23 | 2022-12-27 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
| US11693657B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
| US11829729B2 (en) | 2019-09-05 | 2023-11-28 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
| WO2024117562A1 (ko) * | 2022-11-29 | 2024-06-06 | 한국전자통신연구원 | 곱셈 누적 연산 방법 및 장치 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR0139733B1 (ko) * | 1994-04-29 | 1998-07-01 | 구자홍 | 부동 소수점 덧셈/뺄셈 연산기의 반올림 방법 및 장치 |
| KR19980041776A (ko) * | 1996-11-18 | 1998-08-17 | 윤종용 | 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치 |
| KR19990074385A (ko) * | 1998-03-10 | 1999-10-05 | 한탁돈 | 부동소수점 곱셈기에서 반올림과 덧셈을 동시에 수행하는 장치및 방법 |
| JP2013012203A (ja) * | 2011-06-29 | 2013-01-17 | Arm Ltd | 浮動小数点加算器 |
-
2016
- 2016-06-07 KR KR1020160070144A patent/KR102481418B1/ko active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR0139733B1 (ko) * | 1994-04-29 | 1998-07-01 | 구자홍 | 부동 소수점 덧셈/뺄셈 연산기의 반올림 방법 및 장치 |
| KR19980041776A (ko) * | 1996-11-18 | 1998-08-17 | 윤종용 | 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치 |
| KR19990074385A (ko) * | 1998-03-10 | 1999-10-05 | 한탁돈 | 부동소수점 곱셈기에서 반올림과 덧셈을 동시에 수행하는 장치및 방법 |
| JP2013012203A (ja) * | 2011-06-29 | 2013-01-17 | Arm Ltd | 浮動小数点加算器 |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021046568A1 (en) * | 2019-09-05 | 2021-03-11 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
| US11693657B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
| US11829729B2 (en) | 2019-09-05 | 2023-11-28 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
| US11934824B2 (en) | 2019-09-05 | 2024-03-19 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
| US12333304B2 (en) | 2019-09-05 | 2025-06-17 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related systems |
| US11537861B2 (en) | 2020-06-23 | 2022-12-27 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
| US12056599B2 (en) | 2020-06-23 | 2024-08-06 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
| WO2024117562A1 (ko) * | 2022-11-29 | 2024-06-06 | 한국전자통신연구원 | 곱셈 누적 연산 방법 및 장치 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102481418B1 (ko) | 2022-12-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115934030B (zh) | 算数逻辑单元、浮点数乘法计算的方法及设备 | |
| CN112241291B (zh) | 用于指数函数实施的浮点单元 | |
| EP1857925B1 (en) | Method and apparatus for decimal number multiplication using hardware for binary number operations | |
| WO2022170809A1 (zh) | 一种适用于多精度计算的可重构浮点乘加运算单元及方法 | |
| CN112130803B (zh) | 具有正确舍入的浮点点积运算器 | |
| CN112130804B (zh) | 具有正确舍入的混合精度浮点数的融合乘加运算器 | |
| KR102481418B1 (ko) | 단일 곱셈-누산 방법 및 장치 | |
| CN109634558B (zh) | 可编程的混合精度运算单元 | |
| WO2021136259A1 (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
| Wahba et al. | Area efficient and fast combined binary/decimal floating point fused multiply add unit | |
| Hormigo et al. | Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest | |
| US20200133633A1 (en) | Arithmetic processing apparatus and controlling method therefor | |
| CN116974517A (zh) | 浮点数处理方法、装置、计算机设备和处理器 | |
| US8019805B1 (en) | Apparatus and method for multiple pass extended precision floating point multiplication | |
| Huang et al. | Low-cost binary128 floating-point FMA unit design with SIMD support | |
| CN117648959B (zh) | 支持神经网络运算的多精度操作数运算装置 | |
| Wang et al. | A survey of hardware designs for decimal arithmetic | |
| Tsen et al. | Hardware design of a binary integer decimal-based floating-point adder | |
| US9563400B2 (en) | Optimized structure for hexadecimal and binary multiplier array | |
| Shirke et al. | Implementation of IEEE 754 compliant single precision floating-point adder unit supporting denormal inputs on Xilinx FPGA | |
| CN114637488A (zh) | 人工智能运算电路 | |
| US7814138B2 (en) | Method and apparatus for decimal number addition using hardware for binary number operations | |
| JP2002023997A (ja) | 浮動小数点演算のための選択ベースの丸め方法 | |
| Gonzalez-Navarro et al. | A binary integer decimal-based multiplier for decimal floating-point arithmetic | |
| KR102737112B1 (ko) | 컴퓨팅 장치 및 이의 동작 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20160607 |
|
| PG1501 | Laying open of application | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20210604 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20160607 Comment text: Patent Application |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20221219 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20221221 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20221222 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |





