Back Next

Scaled - form of indexing.
  Effective address is found by adding the contents of a specified index
    register multiplied by a constant to a specified direct or indirect address.

  Supposed there is an array of 4 byte values. With standard indexing, index
  must be adjusted by 4 bytes each time.

  With scaling, index incremented by 1 but EA = Start @ + (index * 4).

  ARM : LDR R0, [R1, R2, LSL #2] 
    R0 - destination, R1 - base(indirect) register, R2 - index, LSL #2 (x4)
     
  Auto-adjust - rather than using an index, uses just a base register and
    updates base by scalar each time executed. May support increment or 
    decrement.

  LDR R0, [R1], #4
    R0 - destination, R1 - base register, #4 - amount to increment R1 by.


* SIMD instructions (vector processor).
   Single Instruction Multiple Data.
 
   SIMD is a form of parallel processing where a single instruction is
     applied to multiple work units of data.

   Commonly the instruction will list a single address as a target but 
     the CPU will actually apply the instruction across multiple words 
     of data in parallel. 

   Intel MMU support - 4 words of data.

   On various super-computers, you may be allowed to indicate the number of
     work units by an additional operand.

  Check out : https://arstechnica.com/features/2000/03/simd/