floating point -> broj sa pomerljivim zarezom
za razliku od INT-a koji je ceo broj float i double rade drugacije, mogu
da prikazu jako mali broj (0.0000000000001234) ili jako veliki broj,
fora je u MANTISA+EXPONENT, dakle imas mantisu koja predstavlja
"koristan" deo broja i exponent koji pokazuje gde je taj koristan broj u
odnosu na decimalnu tacku/zarez. Ako te vise zanima o samoj
reprezentaciji pogledaj wiki
CPU koji ne ume ra radi floating point ima ALU koji ume samo da radi sa
int brojevima tako da sabiranje traje u proseku 1 takt, oduzimanje 1,
mnozenje 1-5 i slicno, sa druge strane ako treba da saberes 2 float-a
cpu to ne ume vec se to simulira u software-u i sabiranje 2 float-a
uzima u proseku 50 taktova, mnozenje 2 float-a 300 taktova i slicno .. +
zauzimaju mnogo flash-a + zauzimaju ram.
FPU ume da direktno operise floating point brojevima tako da je
sabiranje 2 floating point broja 1-2 takta, mnozenje 2-5 taktova i
slicno. Dakle FPU je modul slican kao sto je ALU jedino sto ALU
funkcionise sa int a FPU sa float. FPU moze da bude integrisan u mcu/cpu
a moze da bude externi hw modul. Uglavnom nije integrisan u mcu posto
"kosta", sastoji se iz puno tranzistora tako da ako ti treba fpu turis
externi. Integrisan je u vecinu CPU koji su namenjeni za neke "general
use" stvari (serveri, dekstopi..) a u vecinu mcu nije integrisan jer je
tu upotreba malo specijalizovanija a cena znacajna pa kome treba stavi
externi. Naravno postoje cpu bez i mcu sa integrisanim
http://en.wikipedia.org/wiki/Floating-point_unit