Floating Point Addition
4-digit decimal example
9.999∗101+1.610∗10−1
-
Allign decimal points
Shift number with smaller exponent(?)
9.999+101+0.016∗101
-
Add significands
9.999∗101+0.016∗101=10.015∗101
-
Normalize result and check for over/underflow
1.0015∗102
-
Round and renormalize if necessary
1.002∗102
4-digit binary example
1.000∗2−1+−1.110∗2−2
(0.5+−0.4375)
-
Align binary point
Shift number with smaller exponent
1.000∗2−1+−0.111∗2−1
-
Add significands
1.000∗2−1+−0.111∗2−1=0.001∗2−1
-
Normalize result and check for over/underflow
1.000∗2−4
-
Round and renormalize if necessaru
1.000∗2−4=>0.0625
Floating Point Multiplication
4-digit decimal example
1.110∗1010∗9.200∗10−5
-
Add exponents
For biased exponents, subtract bias from sum
newexponent=10+−5=5
-
Multiply significads
1.110∗9.200=10.212
=>10.212∗105
-
Normalize result and check for over/underflow
1.0212∗106
-
Round and renormalize if necessary
1.021∗106
-
Determine sign of result from signs of operands
+1.021∗106
4-digig binary example
1.000∗2−1∗−1.110∗2−2
(0.5∗−0.4375
-
Add exponents
unbiased : -1 + -2 = -3
biased : (-1 + 127) + (-2 + 127) = -3 + 254 - 127 = -3 + 127
-
Multiply significands
1.000∗1.110=1.110
=>1.110∗2−3
-
Normalize result and check for over/underflow
1.110∗2−3
-
Determine sign
−1.110∗2−3
FP Instructions in MIPS
- single precision arithmetic
- add.s, sub.s, mul.s, div.s
- double precision arithmetic
- add.d, sub.d, mul.d, div.d
- single- and double- precision comparison
- c.eq.s, c.eq.d, c.lt.s, c.lt.d, ...
- branch on FP condition code true or false
Subword Parallellism
-
원래 많은 그래픽 시스템이 화소 하나당 32bit를 사용하였다. 여기에 소리에 대한 지원도 필요하게 되었고, 소리 샘플은 16bit 정도의 정밀도면 충분하다.
-
모든 마이크로프로세서는 byte나 halfword가 메모리에 저장될 때 공간을 덜 차지하도록 지원한다. 하지만 일반적인 정수 프로그램에서 이 정도 크기의 데이터에 대한 산술연산이 많이 쓰이지 않기 때문에, 데이터 전송 이상의 지원은 거의 없었다.
-
그러다가 많은 그래픽과 오디오 응용 프로그램이 이런 데이터의 백터에 같은 연산을 반복 수행한다는 것을 설계자가 알게 되었다.
-
128bit Adder 내부의 올림수 체인을 분할하면 프로세서가 병렬성을 활용해서, 8 bit operand 16개나 16 bit operand 8개, 32 bit operand 4개, 64bit operand 2개를 동시에 연산할 수 있다.
-
큰 워드 내부에 병렬성이 있다고 할 때, 이것의 확장을 Subword Parallellism(서브워드 병렬성)이라고 한다.