1. Bus issues
  a. Bus - a set of real or virtual lines that connect a system's units.
    i. Real - several separate lines for power, data, address, control.
   ii. Virtual - a limited set of lines used for multiple purposes.
  b. Bus shortcomings.
    i. Latency - any delay between issuing an action and the completion. In 
       a bus - delay that occurs because of distance and intermediate gates.
   ii. Propagation delay - an accumulating delay caused when a signal must 
       pass through a gate.
  iii. Skew - signals traveling in a set of lines will arrive at destination 
       at different times because lines will not have identical lengths.
   iv. Attenuation - the loss of the strength of a signal as it travels. 
       Digital signals tend to round, flatten, and spread.



2. Speed and Distance
  a. Bus short comings are ampified by two factors.
  b. A signal travels approx. 1 foot in 1 ns. 
  c. 1 MHZ = 1000 ns, 100 MHZ = 10ns, 1 GHz = 1ns. 
  d. Speed - faster signal changes (higher data speeds) cause skew, 
     propagation delays and latency to become more obvious.
  e. Distance - greater distances cause shew, latency, and attenuation.



3. Bus classes
  a. Synchronous bus 
    i. Clock is provided to signal to all devices when a valid information 
       transfer can occur (@, data, control).
   ii. Simplifies control and interaction between devices.
  iii. Requires that devices function a defined synchronous order.
  b. Asynchronous bus
    i. No clock.
   ii. Additional control signals needed to guarantee proper interaction.
  iii. Devices interact only when and if necessary.
   iv. Timing information often embedded in data (lowers data throughput).



4. Control bus
  a. Control bus provides a variety of signals that provide for proper 
     interaction of units.
  b. Common controls (not all found on all systems).
    i. Data direction - specified the direction of data movement between master
      and slave.
   ii. Memory/io - indicates whether address specified identifies primary
       memory or an I/O device.
  iii. Bus arbitration (request/grant)- provides correct interaction on
       multi-master systems.
   iv. Status - used by slave units to indicate their current state or 
       acknowledge an action by master.
    v. Interrupt - used to request the attention from master.
   vi. Clock - provides for synchronization of system.
  vii. Misc - example - reset - causes the system to reboot. 




5. Interrupts
  a. Interrupts are used by a client (slave) device to request attention 
     and action from the master (cpu) unit.
  b. Interrupts are generally prioritized.
    i. An attention request from a hard drive is more time sensitive than 
       one from a keyboard.
  c. Priority of interrupts are often handled by a dedicated circuit which 
     delivers a general interrupt request to the master with enough data to 
     determine interrrupt source.
  d. Interrupts come in two forms
    i. Standard or maskable (IRQ)
   ii. Non-maskable




6. Interrupts
  a. Maskable or plain interrupts. (IRQ) 
    i. Represents conditions that affect activity but not system integrity.
     (1) can be ignored.
     (2) can be delayed.
     (3) can be processed.
  b. Non-maskable. (NMI)
    i. must be processed (usually represent catastrophic condition).
     (1) generated by software.
       (a) invalid commands.
       (b) illegal memory accesses.
     (2) generated by hardware.
       (a) hardware failure.
       (b) real time critical data transfers.