KR20140138053A - 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 - Google Patents

특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 Download PDF

Info

Publication number
KR20140138053A
KR20140138053A KR1020140060977A KR20140060977A KR20140138053A KR 20140138053 A KR20140138053 A KR 20140138053A KR 1020140060977 A KR1020140060977 A KR 1020140060977A KR 20140060977 A KR20140060977 A KR 20140060977A KR 20140138053 A KR20140138053 A KR 20140138053A
Authority
KR
South Korea
Prior art keywords
exponent
result
unit
mantissa
bit resolution
Prior art date
Application number
KR1020140060977A
Other languages
English (en)
Other versions
KR102208274B1 (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 로베르트 보쉬 게엠베하
Publication of KR20140138053A publication Critical patent/KR20140138053A/ko
Application granted granted Critical
Publication of KR102208274B1 publication Critical patent/KR102208274B1/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/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

Landscapes

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

Abstract

본 발명은 제어 장치(1) 내 모델 연산 유닛(3) 내에서의 연산을 실행하기 위한 FMA 유닛(42)에 관한 것이며, 이때 입력 변수로서 각각 부동 소수점 값의 형태로 2개의 피승수 및 하나의 피가수가 처리 가능하고, 출력 변수로서 부동 소수점 값의 형태로 연산 결과가 제공되며, FMA 유닛(42)은 곱셈 및 이에 후속하는 덧셈을 실행하기 위해 형성되며, 피승수를 위한 입력부들의 비트 분해능은 출력 변수의 비트 분해능 및 피가수를 위한 입력부의 비트 분해능보다 더 낮다.

Description

특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 FMA 유닛{FMA-UNIT, IN PARTICULAR FOR USE IN A MODEL CALCULATION UNIT FOR PURE HARDWARE-BASED CALCULATION OF A FUNCTION-MODEL}
본 발명은 제어 장치, 특히 FMA 유닛(FMA = Floating Point Multiply and Add Operation, Fused Multiply Add Operation) 내의, 하드웨어로 구현되는 유닛에 관한 것이다.
선행 기술로부터, 데이터 베이스화된 함수 모델을 연산하기 위한 별도의 모델 연산 유닛 및 메인 연산 유닛을 구비한 제어 장치가 공지되어 있다. 이와 같이, 예를 들어 공보 DE 10 2010 028 266 A1호에는 하나 또는 복수의 루프 연산으로 곱셈, 덧셈, 및 지수 함수를 순수하게 하드웨어에 기초하여 연산하기 위해 형성된 모델 연산 유닛으로서 추가의 논리 회로를 구비한 제어 장치가 도시되어 있다. 이로 인해 특히 가우스 프로세스 모델의 연산을 위해 필요한 베이즈 회귀(Bayes-Regression) 방법을 하드웨어 유닛 내에서 보조하는 것이 가능하게 된다.
이러한 모델 연산 유닛은 대체로, 데이터 베이스화된 함수 모델을 연산하기 위한 수학적인 프로세스를 매개변수 및 샘플링 포인트 또는 트레이닝 데이터에 기초하여 실행하도록 구성된다. 특히 모델 연산 유닛은 2개의 연산 루프로 지수 함수를 하드웨어에 기초하여 효율적으로 연산하기 위해 형성되므로, 소프트웨어에 의해 작동 메인 연산 유닛에서 실행될 수 있는 것보다 연산 속도가 더 향상된 가우스 프로세스 모델을 고려하는 것이 가능하다. 논리 유닛에서의 연산을 가속하기 위해 곱셈 프로세스 및 덧셈 프로세스는 덧셈 연산 및 곱셈 연산을 위한 하드웨어 구현을 특히 효율적인 방식으로 제공하는 공통의 MAK 유닛 또는 FMA 유닛 내에서 조합될 수 있다.
예를 들어 공보 US 7,080,111 B2호에는 32비트의 입력측 및 출력측 분해능을 위한 이러한 FMA 유닛이 공지되어 있다. 그러나, 공보 US 7,346,642 B1호에도 이와 같은, 그러나 정확도가 더 향상된 FMA 유닛이 공지되어 있다.
본 발명에 따라, 제1항에 따른, 제어 장치 내 모델 연산 유닛 내에서의 연산을 실행하기 위한 FMA 유닛과, 다른 독립 청구항들에 따른 제어 장치 및 모델 연산 유닛이 제공된다.
본 발명의 바람직한 추가 실시예들은 종속항들에 제시된다.
제1 양상에 따라, 제어 장치 내 모델 연산 유닛 내에서의 연산을 실행하기 위한 FMA 유닛이 제공되며, 이때 입력 변수로서 각각 부동 소수점 값의 형태로 2개의 피승수 및 하나의 피가수가 처리 가능하고, 출력 변수로서 부동 소수점 값의 형태로 연산 결과가 가수-결과 및 지수-결과에 상응하게 제공되며, FMA 유닛은 곱셈 및 이에 후속하는 덧셈을 실행하기 위해 형성되며, 피승수를 위한 입력부들의 비트 분해능은 출력 변수의 비트 분해능 및 피가수를 위한 입력부의 비트 분해능보다 더 낮다.
상기 FMA 유닛은 2개의 피승수의 곱셈과, 곱셈 결과의 하나의 피가수와의 덧셈을 실행한다. 상기 FMA 유닛은 피승수가 더 낮은 정확도로 제공되고, FMA 유닛에서의 연산의 결과 및 피가수로서 계산된다는 점에서 공지된 FMA 유닛과 차이가 있다. 또한, 피승수의 중간 결과는 정확도 손실 없이 나타난다. 개별 비트 분해능의 선택시에는, 하나 또는 복수의 연산 루프에 의한 모델 연산 유닛 내 FMA 유닛의 사용시 합산이 반복하여 누적적으로 실행되고, 이 경우 충분한 정확도가 달성되어야 한다는 점이 고려되는 가중이 실행되어야 한다. 충분한 비트 분해능은 특히 수치상의 문제에 의해, 누적값이 매우 작을 때, 즉 0에 가까운 값일 때 또는 피가수의 값이 매우 클 때 제공되어야 한다.
다른 한편으로 피승수 및 피가수의 비트 분해능이 너무 크게 선택된 경우, 알고리즘의 하드웨어 구현에 의해 더 많은 논리가 필요하게 되므로, 통합된 구조 방식의 FMA 유닛을 구현하기 위한 필요 면적은 훨씬 커지고, 또한 하드웨어의 성능도 저하된다.
상기 FMA 유닛은 정확도가 감소된 FMA 유닛의 곱셈부의 사용을 제시한다. 즉, 피승수는 추후 합산의 비트 분해능보다 더 낮은 비트 분해능으로만 사전 설정되어 계산될 수 있다. 이는 필요한 칩 면적의 눈에 띄는 절감을 야기하는데, 이는 곱셈부가 FMA 유닛에서 가장 큰 면적을 필요로 하는 부분을 나타내기 때문이다. 특히 피승수의 비트 분해능 또는 이의 가수값의 분해능이 절반 또는 절반 미만의 곱셈을 위해 출력값 및 피가수의 비트 분해능 또는 이의 가수값의 분해능에 상응하는 경우, 지금까지의 경우와 같이 덧셈을 실행할 수 있도록, 감소된 비트 분해능을 갖는 값으로의 곱셈 결과의 내부 변환이 더 이상 필요하지 않다.
오히려, 곱셈의 중간 결과의 비트 분해능은 정확도가 감소되지 않도록 선택될 수 있다. 예를 들어 8비트의 지수와 23비트의 가수를 갖는 32비트 부동 소수점 형식의 정확도[단일 정밀도(single precision)]를 갖는 피승수가 제공될 수 있다. 48비트의 소수 정확도를 유도하는 24비트 × 24비트 정수 곱셈이 적용될 수 있다. 또한 피승수의 감소된 비트 분해능을 통해, 입력 변수로서 제공될 데이터량은 감소될 수 있는데, 이는 예를 들어 64비트 분해능에 의한 원하는 최종 결과에서 2개의 피승수는 32비트 분해능으로만 제공되어야 하기 때문이다.
또한, FMA 유닛은
- 피승수의 지수를 지수의 곱셈을 위해 더하고, 상응하는 지수-중간 결과를 제공하기 위해 형성된 지수-덧셈 블록과,
- 피승수의 가수값들을 곱셈하고, 가수-곱셈 결과를 얻기 위해 형성된 곱셈 블록과,
- 피가수의 지수와 지수-중간 결과(EG) 사이의 차이를 검출하고, 지수-결과를 제공하기 위해 형성된 지수-평가 블록과,
- 가수-결과를 얻기 위해 피가수의 지수와 지수-중간 결과(EG) 사이의 검출된 차이와는 무관하게 가수-곱셈 결과 또는 피가수의 가수에 우측 이동 연산을 실행하고, 뒤이어 이를 덧셈하기 위해 형성된 덧셈 블록으로서, 이때 가수-결과와 지수-결과는 출력 변수를 제공하는 덧셈 블록을 포함할 수 있는 덧셈 블록을 포함하며,
이때, 곱셈 블록 및 지수-덧셈 블록의 입력부의 비트 분해능은 덧셈 블록 및 지수-평가 블록의 입력부의 비트 분해능보다 더 낮다.
일 실시예에 따라, 피승수는 제1 가수-비트 분해능 및 제1 지수-비트 분해능을, 피가수 및 출력 변수는 제2 가수-비트 분해능 및 제2 지수-비트 분해능을 포함할 수 있으며, 제2 가수-비트 분해능은 적어도 제1 가수-비트 분해능의 2배에 상응한다.
지수-평가 블록은 지수-결과를 더 큰 지수의 값으로서 피가수의 지수와 지수-중간 결과(EG)로부터 제공하기 위해 형성되는 것이 가능하며, 이때, 덧셈 블록은 피가수의 지수와 지수-중간 결과(EG) 사이의 검출된 차이에 따라, 더 작은 지수인 할당 지수를 갖는 피가수의 가수 또는 가수-곱셈 결과에 우측 이동 연산을 실행하기 위해 형성된다.
특히 지수-결과 및 가수-결과를 정규화하고, 상응하는 부동 소수점 표현으로 하여 제공하기 위한 정규화 블록이 제공될 수 있다.
일 양상에 따라, 하드웨어 내에서 구현되는 알고리즘을 연산하기 위해 논리 유닛을 구비한 연산 코어를 포함하는, 제어 장치를 위한 모델 연산 유닛이 제공되며, 이때 덧셈 연산 및/또는 곱셈 연산의 실행을 위한 FMA 유닛이 제공된다.
특히 논리 유닛은 베이즈 회귀를 연산하기 위해 형성될 수 있다.
일 양상에 따라,
- 소프트웨어 제어된 메인 연산 유닛과,
- 상기 모델 연산 유닛을 포함하는 제어 장치가 제공된다.
일 실시예에 따라, 샘플링 포인트 데이터 및 하이퍼 매개변수를 저장하기 위한 메모리가 제공될 수 있으며, 이때 더 낮은 비트 분해능을 갖는 샘플링 포인트 데이터 및 하이퍼 매개변수가 제공된다.
바람직한 실시예들은 하기에 첨부 도면들에 의해 더 상세히 설명된다.
도 1은 모델 연산 유닛을 구비한 제어 장치를 개략적으로 도시한 도면.
도 2는 모델 연산 유닛의 연산 코어를 개략적으로 도시한 도면.
도 3은 도 1의 모델 연산 유닛 내의 FMA 연산을 개략적으로 도시한 도면.
하기의 설명부에서 사용되는 부동 소수점은 IEEE 754 표준에 기초한다.
도 1에는 데이터에 기초한 함수 모델을 하드웨어에 기초하여 연산하기 위한 모델 연산 유닛(3) 및 메인 연산 유닛(2)이 통합된 방식으로 제공되는 통합식 제어 장치(1)를 위한 하드웨어 아키텍쳐가 개략적으로 도시되어 있다. 메인 연산 유닛(2) 및 모델 연산 유닛(3)은 예를 들어 시스템 버스와 같은 내부 통신 연결부(4)를 통해 서로 통신 연결된다. 또한, 제어 장치(1)는 내부 메모리(5) 및 DMA 유닛(6)(DMA = Direct Memory Access)을 포함할 수 있으며, 이들은 내부 통신 연결부(4)를 통해 서로 통신 연결된다.
기본적으로 모델 연산 유닛(3)은 하드 와이어링되고, 이에 상응하게 소프트웨어 코드를 실행하기 위해 형성되지는 않는다. 이러한 이유 때문에, 모델 연산 유닛(3) 내에는 프로세서도 제공되지 않는다. 이로 인해, 상기 유형의 모델 연산 유닛(3)의 리소스 최적화된 구현 또는 면적 최적화된 구조가 통합된 구조 방식으로 가능하게 된다. 모델 연산 유닛(3)은 제공된 알고리즘의 연산을 순수하게 하드웨어 내에서 구현하는 연산 코어(31)를 포함한다. 이를 위해, 연산 코어(31)는 논리 회로(43)와, 지수 함수를 하드웨어에 기초하여 연산하기 위한 지수 함수 유닛(41)과, 연결된 조합된 곱셈 연산 및 덧셈 연산을 하드웨어에 기초하여 연산하기 위한 FMA 유닛(42)을 포함한다.
데이터에 기초한 비 매개변수적인 함수 모델을 사용하는 것은 베이즈 회귀 방법에 기초한다. 베이즈 회귀의 원리는 예를 들어 C. E. 라스무쎈(Rasmussen) 외 저, "Gaussian processes for machine learning"(MIT Press 2006)에 설명되어 있다. 베이즈 회귀는 하나의 모델에 기초하는, 데이터에 기초한 방법이다. 이러한 모델의 형성을 위해, 트레이닝 데이터의 측정점과, 출력 변수의 관련 출력 데이터가 요구된다. 이러한 모델의 형성은 트레이닝 데이터에 완전히 또는 부분적으로 상응하거나 이러한 트레이닝 데이터로부터 생성되는 샘플링 포인트 데이터의 사용에 의해 실행된다. 또한, 모델 함수의 공간을 매개변수화하여, 차후 모델 예측에 대한 트레이닝 데이터의 개별 측정점의 영향을 효과적으로 가중하는 추상적인 하이퍼 매개변수가 결정된다.
연산의 시작에서 연산 유닛(2)은 DMA 유닛(6)을, 연산될 함수 모델에 적용되는 구성 데이터를 모델 연산 유닛(3)으로 전달하고, 이러한 구성 데이터에 의해 실행되는 연산을 시작하도록 지시한다. 이러한 구성 데이터는 바람직하게 어드레스 포인터에 의해, 모델 연산 유닛(3)에 할당된 메모리(5)의 어드레스 영역으로 보내지는 샘플링 포인트 데이터와, 가우스 프로세스 모델의 하이퍼 매개변수를 포함한다.
모델 연산 유닛(3)에서의 연산은 후속하는 의사-코드(pseudo code)를 통해 구현되고 상기 연산 규칙에 상응하는, 모델 연산 유닛(3) 내 하드웨어 아키텍쳐에서 실행된다. 이러한 의사-코드로부터는 연산이 내부 루프 및 외부 루프에서 실행되어 이들의 부분 결과가 누적되는 것이 인식될 수 있다.
Figure pat00001
하드웨어 구현시에는 FMA 유닛에 의해 특히 효율적인 방식으로 a × b + c의 형태를 갖는 연산이 가능하다. 이러한 FMA 유닛은 수 클럭 사이클 이내에 상응하는 연산을 실행할 수 있도록 하드웨어 내에서 구현된다. 경우에 따라, 이러한 연산은 심지어 일 클럭 사이클 이내에 실행될 수도 있다. 이러한 연산은 부가된 의사-C-코드에서 주어질 때와 마찬가지로 하드웨어 내에서 구현된다.
상기 알고리즘의 연산은 도 2에 더 상세하게 도시된 연산 코어(31) 내의 하기 유닛들에 의해 실행될 수 있다. 이를 위해, 연산 코어(31)는 논리 회로(43)와, 지수 함수 유닛(41)과, 입력 변수의 조합된 곱셈 연산 및 덧셈 연산을 부동 소수점 형식으로 제공하는 FMA 유닛(42)을 포함한다.
의사-C-코드로 주어지는 상기 연산 시퀀스는 이러한 알고리즘을 하드웨어로서 구현하는 적합한 논리 회로(43)를 통해 제어된다. 이러한 논리 회로(43)는 상응하는 와이어링 및 시퀀스 제어부를 나타낸다.
도 3에는 FMA 유닛(42) 내의 연산이 개략적으로 도시되어 있다. FMA 유닛(42)에는 a × b + c의 영역을 위한 입력 변수(a, b, c), 즉 피승수(a, b) 및 피가수(c)가 제공된다. 입력 변수(a, b, c)는 부동 소수점 형식으로 제공된다. 특히 피승수(a, b)를 위한 입력부는 제1 비트 분해능으로, 피가수(c)를 위한 입력부와 출력부는 제2 비트 분해능으로 제공된다. 제1 비트 분해능은 제2 비트 분해능보다 더 낮다. 일 실시예에서 제1 비트 분해능은 32비트이고, 제2 비트 분해능은 64비트일 수 있다.
FMA 유닛(42)은 입력 변수(피승수)(a, b)의 지수(Ea, Eb)를 지수의 곱셈을 위해 더하고, 상응하는 지수-중간 결과(EG)를 지수-평가 블록(52)에 제공하기 위한 지수-덧셈 블록(51)을 포함한다. 또한, 피승수(a, b)의 가수값들(Ma, Mb)은 곱셈 블록(53)에서 곱셈되고, 상응하는 가수-곱셈 결과(MG)는 덧셈 블록(54)에 제공된다.
또한, 지수-평가 블록(52)에는 피가수(c)의 지수(Ec)가 공급된다. 지수-덧셈 블록(51)의 지수-중간 결과(EG)는 피가수(c)의 지수(Ec)에 근사된다. 이를 위해, 피가수의 지수(Ec) 및 지수-중간 결과(EG)로부터 차이가 구해지고 덧셈 블록(54)으로 통신된다. 지수값들(Ec, EG) 중 더 큰 지수값은 지수-결과(EE)로서 하위의 정규화 블록(55)에 전달된다.
또한, 덧셈 블록(54)에는 피가수(c)의 가수(Mc)가 공급된다. 덧셈 블록에 공급된 가수들(Mc, MG) 중 하나의, 검출된 차이에 상응하는 수의 비트만큼의 상응하는 우측 이동이 실행된다. 특히, 이러한 가수들 중 하나의 크기, 즉 더 낮은 관련 지수를 갖는 가수-곱셈 결과(MG) 또는 피가수(c)의 가수(Mc)의 크기는 우측 이동 연산을 통해 증가한다. 이어서, 즉 우측 이동 연산 이후에는 가수-결과(ME)를 얻기 위해, 이제 제공되는 가수값(Mc, MG)의 덧셈 또는 뺄셈(부호에 좌우됨)이 실행된다. 가수-결과(ME)는 하위의 정규화 블록(55)에 전달된다.
이후, 가수-결과(ME) 및 지수-결과(EE)로부터 구해진 결과는 최종 결과를 구하기 위해 정규화 블록(55)을 통해 정규화된다. 바람직하게 최종 결과의 가수값은 예를 들어 1.0, 2.0 사이의 값으로 정규화된다. 정규화가 연산 방법의 종료시에만 필요하고, 이미 곱셈 이후에는 필요하지 않다. 이로 인해, 후속하는 덧셈의 비트 분해능보다 더 낮은 비트 분해능을 갖는 곱셈의 제공을 통해 바람직한 방식으로 모델 연산을 위해 사용될 수 있다.
실행된 곱셈은 가수-곱셈 결과(MG)를 얻기 위해 48비트-결과를 갖는 24비트 × 24비트 가수값(23비트 가수 + 히든-비트)을 사용한다. 이러한 곱셈은 예를 들어 승산기 어레이(Multiplier Array), 자리 올림 보존 가산기(Carry Save Adder), 또는 더 높은 라딕스 승산기(Radix Multiplier)에 의해 실행될 수 있다. 피가수(c)가 피승수(a 또는 b)보다 더 높은 비트 분해능을 갖기 때문에, 가수-곱셈 결과(MG)를 32비트-값, 즉 24비트-가수값 및 8비트-지수값을 갖는 값으로 정규화하는 것이 필요하다. 피가수(c)의 64비트 분해능을 위해 가수값의 비트 분해능은 53비트가 된다. 따라서, 가수값의 48비트-결과가 사용될 수 있고, 덧셈 이전에 53비트로 확장될 수 있다. 가장 간단한 확장은 가장 낮은 5비트들을 0들로 채우는 것이다.
또한, 마찬가지로 피가수(c)의 지수(Ec) 및 지수-중간 결과(EG)가 근사됨으로써, 사전 매칭을 실행하는 것도 가능하므로, 상기 확장은 더 낮은 지수값이 할당된 가수값의 우측 이동 연산을 포함할 수 있다. 이로 인해, 예를 들어 곱셈 결과가 24비트로 반올림되지 않으므로 가산기의 정확도 개선과 같은 여러 가지 장점들이 달성될 수 있다.
또한, 단지 24비트 × 24비트-승산기만이 필요하므로 FMA 유닛(42)의 통합된 구조 형태에서 필요 면적이 작게 유지될 수 있다. 최종 결과의 비트 분해능과 비교하여 낮은, 곱셈에 대한 입력 변수의 비트 분해능을 통해 하드웨어-연산의 높은 성능이 달성될 수 있다.

Claims (9)

  1. 제어 장치(1) 내 모델 연산 유닛(3) 내에서의 연산을 실행하기 위한 FMA 유닛(42)이며, 이때 입력 변수로서 각각 부동 소수점 값의 형태로 2개의 피승수 및 하나의 피가수가 처리 가능하고, 출력 변수로서 부동 소수점 값의 형태로 연산 결과가 제공되며, FMA 유닛(42)은 2개의 피승수를 위한 입력부와 피가수를 위한 입력부를 포함하고, 상기 피승수들의 곱셈과, 곱셈의 연산 결과와 피가수와의 후속하는 덧셈을 실행하기 위해 형성되며, 피승수를 위한 입력부들의 비트 분해능은 출력 변수의 비트 분해능 및 피가수를 위한 입력부의 비트 분해능보다 더 낮은, FMA 유닛(42).
  2. 제1항에 있어서, 피승수는 제1 가수-비트 분해능 및 제1 지수-비트 분해능을 포함하고, 피가수 및 출력 변수는 제2 가수-비트 분해능 및 제2 지수-비트 분해능을 포함하며, 제2 가수-비트 분해능은 적어도 제1 가수-비트 분해능의 2배에 상응하는, FMA 유닛(42).
  3. 제2항에 있어서, FMA 유닛은
    - 피승수의 지수를 지수의 곱셈을 위해 더하고, 상응하는 지수-중간 결과를 제공하기 위해 형성된 지수-덧셈 블록(51)과,
    - 피승수의 가수값들(Ma, Mb)을 곱셈하고, 가수-곱셈 결과(MG)를 얻기 위해 형성된 곱셈 블록(53)과,
    - 피가수의 지수(Ec)와 지수-중간 결과(EG) 사이의 차이를 검출하고, 지수-결과(EE)를 제공하기 위해 형성된 지수-평가 블록(52)과,
    - 가수-결과를 얻기 위해 피가수의 지수(Ec)와 지수-중간 결과(EG) 사이의 검출된 차이와는 무관하게 가수-곱셈 결과(MG) 또는 피가수의 가수(Mc)에 우측 이동 연산을 실행하고, 뒤이어 덧셈하기 위해 형성된 덧셈 블록(54)으로서, 이때 가수-결과(ME)와 지수-결과(EE)는 출력 변수(D)를 제공하는 덧셈 블록을 포함하고,
    곱셈 블록(53)의 입력부의 비트 분해능은 덧셈 블록의 입력부의 비트 분해능보다 더 낮은, FMA 유닛(42).
  4. 제2항 또는 제3항에 있어서, 지수-평가 블록(52)은 지수-결과(EE)를 더 큰 지수의 값으로서 피가수의 지수(Ec)와 지수-중간 결과(EG)로부터 제공하기 위해 형성되며, 덧셈 블록(54)은 피가수의 지수와 지수-중간 결과(EG) 사이의 검출된 차이에 따라, 피가수의 가수(Mc) 또는 가수-곱셈 결과(MG)로부터의, 할당 지수가 더 작은 지수인 값을 우측 이동 연산의 실행을 위해 형성되는, FMA 유닛(42).
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 지수-결과(EE) 및 가수-결과(ME)를 정규화하기 위한 정규화 블록(55)이 제공되는, FMA 유닛(42).
  6. 하드웨어 내에서 구현되는 알고리즘을 연산하기 위해 논리 유닛(43)을 구비한 연산 코어(31)를 포함하는, 제어 장치(1)를 위한 모델 연산 유닛(3)이며, 이때 덧셈 연산과 곱셈 연산 중 어느 하나 또는 이 두 연산 모두의 실행을 위한 제1항 내지 제3항 중 어느 한 항에 따른 FMA 유닛(42)이 제공되는, 제어 장치(1)를 위한 모델 연산 유닛(3).
  7. 제6항에 있어서, 연산 코어(31)는 베이즈 회귀를 연산하기 위해 형성되는, 모델 연산 유닛(3).
  8. - 소프트웨어 제어된 메인 연산 유닛(2)과,
    - 제6항에 따른 모델 연산 유닛(3)을 포함하는, 제어 장치(1).
  9. 제8항에 따라, 데이터 베이스화된 함수 모델의 샘플링 포인트 데이터 및 하이퍼 매개변수를 저장하기 위한 메모리(5)가 제공되며, 이때 더 낮은 비트 분해능을 갖는 샘플링 포인트 데이터 및 하이퍼 매개변수가 제공되는, 제어 장치(1).
KR1020140060977A 2013-05-24 2014-05-21 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 KR102208274B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102013209657.7A DE102013209657A1 (de) 2013-05-24 2013-05-24 FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen
DE102013209657.7 2013-05-24

Publications (2)

Publication Number Publication Date
KR20140138053A true KR20140138053A (ko) 2014-12-03
KR102208274B1 KR102208274B1 (ko) 2021-01-27

Family

ID=51863176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140060977A KR102208274B1 (ko) 2013-05-24 2014-05-21 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛

Country Status (5)

Country Link
US (1) US9569175B2 (ko)
JP (1) JP6382577B2 (ko)
KR (1) KR102208274B1 (ko)
CN (1) CN104182201A (ko)
DE (1) DE102013209657A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210021540A (ko) * 2018-06-19 2021-02-26 로베르트 보쉬 게엠베하 2개 이상의 피승수를 곱하기 위한 계산 유닛, 방법 및 컴퓨터 프로그램

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213420A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
CN112685693B (zh) * 2020-12-31 2022-08-02 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092636A (ja) * 1999-07-28 2001-04-06 Arm Ltd 第1、第2、第3オペランドに浮動小数点演算を適用するためのデータ処理装置および方法
US20130110749A1 (en) * 2010-04-27 2013-05-02 Robert Bosch Gmbh Control device and method for calculating an output parameter for a controller

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2139564C1 (ru) * 1995-08-31 1999-10-10 Интел Корпорейшн Устройство для выполнения операций умножения-сложения с упакованными данными
US7080111B2 (en) 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
US7346642B1 (en) 2003-11-14 2008-03-18 Advanced Micro Devices, Inc. Arithmetic processor utilizing multi-table look up to obtain reciprocal operands
US7499962B2 (en) * 2004-12-21 2009-03-03 Intel Corporation Enhanced fused multiply-add operation
US8965945B2 (en) * 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
FR2974645A1 (fr) * 2011-04-28 2012-11-02 Kalray Operateur de multiplication et addition fusionnees a precision mixte
DE102013213420A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE102013212840B4 (de) * 2013-07-02 2022-07-07 Robert Bosch Gmbh Modellberechnungseinheit und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells mit Daten in verschiedenen Zahlenformaten

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092636A (ja) * 1999-07-28 2001-04-06 Arm Ltd 第1、第2、第3オペランドに浮動小数点演算を適用するためのデータ処理装置および方法
US20130110749A1 (en) * 2010-04-27 2013-05-02 Robert Bosch Gmbh Control device and method for calculating an output parameter for a controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210021540A (ko) * 2018-06-19 2021-02-26 로베르트 보쉬 게엠베하 2개 이상의 피승수를 곱하기 위한 계산 유닛, 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
DE102013209657A1 (de) 2014-11-27
JP2014229318A (ja) 2014-12-08
KR102208274B1 (ko) 2021-01-27
JP6382577B2 (ja) 2018-08-29
US9569175B2 (en) 2017-02-14
US20140351309A1 (en) 2014-11-27
CN104182201A (zh) 2014-12-03

Similar Documents

Publication Publication Date Title
JP6495220B2 (ja) 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ
US9753695B2 (en) Datapath circuit for digital signal processors
EP3447634B1 (en) Non-linear function computing device and method
KR100242274B1 (ko) 제산 및 제곱근 계산 기능을 갖고 있는 부동 소숫점/정수 프로세서
US8990282B2 (en) Apparatus and method for performing fused multiply add floating point operation
KR20080055985A (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
US20080208945A1 (en) Method to compute an approximation to the reciprocal of the square root of a floating point number in ieee format
CN104899004A (zh) 一种用于将浮点操作数相乘的数据处理装置和方法
JPH07168697A (ja) 倍精度除算回路および方法
US8060551B2 (en) Method and apparatus for integer division
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
KR20090007478A (ko) 제어된-정밀도 반복적 산술 논리 유닛
Quinnell et al. Bridge floating-point fused multiply-add design
KR20140138053A (ko) 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛
US7752250B2 (en) Rounding floating point division results
GB2423385A (en) Determining an initial estimate of a result value of a reciprocal operation
JP6646350B2 (ja) 様々な数値フォーマットのデータを用いてデータに基づく関数モデルを計算するためのモデル計算ユニット、および制御装置
Aguilera-Galicia et al. On-chip implementation of a low-latency bit-accurate reciprocal square root unit
Sravya et al. Hardware posit numeration system primarily based on arithmetic operations
RU148925U1 (ru) Вычислительный элемент бимодульной модулярной арифметики
RU2686628C1 (ru) Устройство сложения-вычитания чисел для цифро-сигнального процессора
EP2884403A1 (en) Apparatus and method for calculating exponentiation operations and root extraction
LaMeres Floating-Point Systems
Alaoui Design and simulation of a modified architecture of carry save adder
JPWO2002029546A1 (ja) 演算器及びそれを用いた電子回路装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant