Next
CPU Micro-architecture - circuits grouped to perform programming tasks
   such as adding or manipulating data.

Functionally distinct CPU Logic circuits

  Instruction decoder - interprets and implements instructions.
     Hardwired - cheap, fast.

     Microcode interpreter - slower but flexible.
       Microcode
       An interpreter of instruction's operand.
       Uses type of machine code to describe steps to complete an instruction.
       Can define a complex instruction using multiple simple CPU circuits in
         the appropriate sequence.
       Factory programmable.     
       On-site programmable (possibly).

     Modern CPUs may have both preferring hardwired for simpler instructions.

  Arithmetic logic unit (ALU) - basic computations.
    Specific tasks available are determined by specific CPU design.

    Newer systems often have 2-6 ALUs, one better at integer multiplication
      that another. Helps with super-scalar design.
      Also, for executing SIMD instructions.

    1-2 Floating Point Units for complex floating point math.
       Float unit has its own registers and instruction set.

  Registers(named) - scratch memory holds information to be used or passed by 
    logic circuits. Fundamental part of architecture.
  
    Newer systems use register files - multiple copies of the standard work
      registers, allows for fast task context switching.

  Interrupt logic.
    Handles special system conditions that require pauses in normal task 
      execution.

  General Control - synchronization of all activity in CPU.
    General data movement, timing, caching, virtual memory, etc. 

  Bus - Address, Data, Control, Power

  * Data path consists of the ALU, various registers, and the instruction
     decoder.