Working with very large and small units of measurement.

Decimal - usually used with time issues of a system.
  Large
    Terahertz (THz?) - 1*10^12 cycles/sec
    Gigahertz (GHz) - 1*10^9 cycles/sec - cpu processing speed.
    Megahertz (MHz) - 1*10^6 cycles/sec - early cpu speeds.
    Kilohertz (kHz) - 1*10^3 cycles/sec - analog modem speeds.
  
  Small  
    millisecond (msec, ms) - 1*10^-3 seconds.
      (Modems)

    microsecond (u(mu)sec, us) - 1*10^-6 seconds. 
      (instruction speeds)

    nanosecond - (nsec, ns) - 1*10^-9 second 
    - steps in execution of single instruction or response time of gates.

    5280 ft/mi * 186,000 mi/sec = 982,080,000 ft/sec (speed of light)
      = electrons travel 1 ft/nsec  

    picosecond - (psec) - 1*10^-12 - size of binary pulses in fiber optics.

    femtosecond - 1*10^-15 - laser pulses.
      pico and femto also appear when measuring the size of very small 
      capacitors (like ones used as memory cells in DRAM)

    attosecond - 1*10^-18 - nuclear reactions.  


Converting
   If cpu speed 1 GigaHertz, what is the length of each clock?
     1 /(1*10^9 cycles/sec)  = 1*10^-9 sec/cycle = 1ns/cycle.
   
   If cpu clock pulse is 4ns, what is the cpu speed?
     1 /(4*10^-9 sec/cycle) = 1/4 * 10^9 cycles/sec 
     = .25 * 10^3 * 10^6 cycles/sec = 250 MHz 

Keep in mind that powers are powers of other powers.

1000 Kilohertz = 10^3 * 10^3 = 10^6 = 1 Megahertz
1 millisecond = 1^10-3 = 1^10^3 * 1^10^-6 = 1000 microseconds.

GB(decimal) vs. GiB(binary)
Gigabyte vs. Gibibyte

  Proposed standard.
  For the most part still not practiced.

Binary - usually used with memory addressing.
  Large
    Terabyte (TiB tebibyte) - 1 * 2^40 
    Gigabyte (GiB gibibyte) - 1 * 2^30 = 1073741824 
      = 1.074 GB or 1.074 * 10^9 bytes

    Megabyte (MiB mebibyte) - 1 * 2^20 = 1048576
    Kilobyte (KiB kibibyte) - 1 * 2^10 =    1024 

    Other powers of 2
    1*2^16 = 65536 (memory range of many early cpus)
    1*2^8 = 256  (byte)
    1*2^4 = 16   (nibble)
    1*2^2 = 4
    1*2^1 = 2
    1*2^0 = 1
     
    Binary math.
   
    32 bit address line = 2^2 * 2^30 or 4 * 1 GiB or 4GiB

Example
  If cpu capable of address 1MB memory, and memory chips come in 64K
  units, how many memory chips are needed?

  1MB = 1*2^20 bytes,  64K = 64*1K = 2^6*2^10K = 2^16 bytes/chip

  (2^20 bytes)/(2^16 bytes/chip) = 2^(20-16) = 2^4 chips = 16 chips.

  How many address lines are on each chip?  16

  A decoder will be needed to select the appropriate chip, how 
  many select lines are needed?  4^2 = 16   4