Wikipedysta:Doles/Brudnopis

  • Przygotować informacje o FPU wraz z obrazkami wyjaśniającymi nature FPU (to będzie proste)
  • Przygotować dane o rejestrach MMX i XMM. Wyjaśnić krótko technologię SIMD (dużo pisania ale w gruncie rzeczy proste)
  • Przebudować dział architektura, gdzie jest mowa o SIMD (masa roboty...)

Schemat stosu danych FPU

FPU - układ ten odpowiada za operacje arytmetyczne na liczbach zmiennoprzecinkowych (liczbach rzeczywistych). Liczby te są składowane w rejestrach od R0 do R7 w postaci o podwójnej, rozszerzonej precyzji (ang. double extended-precision). Dane mogą być liczbami rzeczywistymi, całkowitymi, liczbami w kodzie BCD (upakowane lub nie), które zostaną automatycznie przekonwertowane do formatu FPU (jeśli wcześniej nie były). Jeśli zaś pewna liczba zapisana w rejestrze koprocesora ma zostać zapisana do komórki pamięci, może być w dowolnym formacie, np w postaci kodu BCD. Do rejestrów R0-R7 programista nie ma bezpośredniego dostępu, może się do nich odwoływać poprzez ich "aliasy" jakimi są rejestry ST0-ST7. W związku z tym, że FPU ma budowę stosu rejestr ST0 jest jego szczytem i wcale nie oznacza to, że jest ustawiony na R0. Aliasy nie są przypisane na stałe poszczególnym rejestrom, wręcz przeciwnie są ruchome. ST0 raz może pokazywać na R3 raz na R2. W praktyce programistę w ogóle nie interesują rejestry R(X), dla nas istotne są tylko rejestry ST(X). Oprócz rejestrów przechowujących liczby, analogicznie jak w CPU są także rejestry stanu i flag które mają te same zastosowanie co flagi procesora - dzięki nim zachodzą odpowiednie instrukcje warunkowe. Cały schemat rejestrów wraz z ich rozmiarami jest zamieszczony poniżej:

Flagi koprocesora są zupełnie kompatybilne z flagami CPU. Mówiąc jaśniej odpowiednie flagi FPU są na tej samej pozycji co flagi CPU w słowie flag, np flaga C3 jest na tym samym bicie co flaga ZF w EFLAGS.

Mikroprocesor 8086, protoplasta serii X86

Prototyp