4. Procesor – informacje ogólne

4.12. Technologia MMX

Technologia MMX po raz pierwszy była wprowadzona w procesorze Pentium MMX. Miała ona przyspieszyć wykonywanie operacji multimedialnych. Technologia wprowadzała:

  • osiem nowych rejestrów MMX (64-bitowych),
  • cztery nowe typy danych MMX,
  • nowe instrukcje MMX (typu SIMD – ang. Single Instruction Multiple Data).

Nowe, 64 bitowe rejestry nie były w tym przypadku całkiem nowe. Zastosowano tu pewien trik. Rejestry MMX były zamapowane w rejestry FPU. Zatem w konkretnej chwili można było korzystać albo z operacji FPU, albo MMX. Nowe typy danych są pokazane na rysunku 20.

 

Rys. 20. Typy danych MMX

 

Są to typy całkowitoliczbowe, ale dane mogą być umieszczane obok siebie, po 8, 4, 2. Pozwala to na wykonywanie wielu operacji arytmetycznych i logicznych w jednym cyklu zegara. Są to operacje typu SIMD, czyli jedna instrukcja na raz wykonuje wiele takich samych operacji. Idea jest przedstawiona na rysunku 21.

 

Rys. 21. Operacje SIMD [źródło: Intel® 64 and IA-32 Architectures

Software Developer’s Manual, Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C, January 2013]

 

Tak zdefiniowane operacje powodują problem, kiedy np. w wyniku operacji dodawania zostanie przekroczona wartość maksymalna liczby. W tradycyjnym przypadku (arytmetyka wrap around) następuje po prostu odcięcie najbardziej znaczącego bitu, który wychodzi poza zakres. Jest to niekorzystne w przypadku większości operacji multimedialnych. Dlatego wprowadzono tryb arytmetyki z nasyceniem, gdzie wartość liczby po operacji nie może przekroczyć wartości maksymalnej, czy minimalnej (czyli liczba się nasyca).