Lectures
CPU instruction design issues.

Actions
  Data movement.
    Register to register

    Register to/from memory.
      Direct or indirect (effective address)

  Data conversion
    convert type1 to type2 
    - expands/contracts storage size honoring format
      32 bit signed integer to 64-bit, float to double percission, etc.

    - convert and pack ASCII/EBCDIC character representation of decimal
      values to BCD (packed) sequences.

  Math 
    Integer addition, subtraction, multiplication, division.
      Not all operators may be supported on a particular CPU architecture.
 
    Float - note that float is often performed in a dedicated processor
      core. 

  Stack manipulation.
    Stack is a dedicated area in memory used as temporary storage. It is 
    usually accessed with dedicated register, stack pointer, and data is 
    pushed/popped on and off the 'top' of the stack with this register.

    Key aspect of a stack is that you 'always' work from the 'top' of the 
    stack.

    Various CPUs offer instructions to manipulate the stack contents.
      Although specific instructions vary with architecture.
      push, pop, rotate, duplicate. 

    Intel offers a 2nd register than can be used to access the contents
      of a stack out of order with affecting the stack pointer.

    The stack is also used to store return address for calls and interrupts.

    See also : Stack machine

  Custom processors exist. 
    Graphics processor
      advanced version of floating point processor combined with circuitry 
      to drive an external display.

    Digitial Signal Processor (DSP)
      AtoD and DtoA conversion.

      Coverts between streaming data, often analog, and digitial encoding, 
      often in real-time.

      Functionality very limited but very fast.
     
Next