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