Computer Hardware and Software

Tom Kelliher, CS17

February 7, 1996

Computer Hardware

The ``body'' of a computer system.

Hierarchical organization:

Secondary vs. main memory

The memory hierarchy:

  1. Registers
  2. L1 (on-chip) cache
  3. L2 (off-chip) cache
  4. RAM
  5. Disk
  6. Tape

How is data (text, numeric) stored in memory?

Numeric: stored in fixed-size pieces (bytes, words, long-words, etc.) in binary code --- powers of 2


How does the computer ``decide'' whether a memory location holds a number or a character?


The ``mind'' of a computer system. It is what makes the hardware usable and useful.

Two categories: system software, application software

System Software

The Operating System

Language Translation

Interpreted languages

Applications Software

Software layering:

Programming Languages

A programming language is an artificial and formal language that has a limited vocabulary consisting of a set of keywords for making up instructions and a set of precise grammar rules.

High-Level Languages


Single instruction at this level corresponds to multiple instructions at the next (assembler) level


netPay = grossPay - deductions;

Some HLLs:

History of C, C++

Assembly Language

Human ``understandable'' machine code (program, language)

Single instruction at this level corresponds to a single instruction at the next (machine) level


lw $16, gross($0)
lw $17, deduct($0)
sub $16, $16, $17
sw $16, net($0)

Machine dependent, due to oneness with machine code

Machine Language

Thomas P. Kelliher
Tue Feb 6 15:39:17 EST 1996
Tom Kelliher