Comp 255 - Computer Organization- Levels
(Fall 2007)
What is a Computer ? A computer is an electronic (?) device, operating
under control of instructions stored in its own memory unit, that
- accepts data (input)
- processes data arithmetically and logically
- displays information (output) from the processing and/or
- stores the results for future use."
The electronic circuits of a computer can recognize
and directly execute a limited set of simple instructions. This course
examines how this is actually done.
Architecture vs Organization (Implementation &Realization)
- Architecture : appearance of system to user / "virtual"
model formed by user/ "attributes that have direct impact on the logical
execution of a program" (Stallings p. 4)
- Organization - operational units and their interconnections
that realize architectural specifications/ details transparent to user.
- Implementation : internal structure - how it's really done!
- Realization : how it's built out of the technology
How Does a Computer Execute Instructions?
- The electronic circuits of a computer can recognize and directly
execute a limited set of simple instructions (e.g. add, test, move). These
primitive instructions form the machine language. The instructions are
simple in order to reduce cost and complexity.
- To make the computer easier to program, design a new set of instructions
(L1) that is "executed" by the original set of instructions (L0). This is
done by translation or interpretation.
- This can be extended. Design an L2 language that is executed by
the L1 language etc.
Thus a language defines a (virtual) machine and a (virtual) machine
defines a language.
Machine Levels (top down)
1. User/Application Level
2. High-Level Languages
Examples: Fortran, Pascal, C++, Python, Scheme
3. Assembler Language/Machine Code
The architecture of a computer is described/defined
by its set of machine code instructions; hence the
phrase Instruction Set Architecture
4. Control Level (software/hardware interface)
Microprogramming vs. Hardwired
5. Digital/Hardware Level
Examples (bottom up)
- Digital Logic : AND, OR, NOT Gates. Gates are
combined into combinatorial and sequential circuits like Adders, Multiplexors,
Decoders, Flip-Flops etc. In turn these circuits are combined into functional
units like ALU's, Registers and Memory.

- Control Level: Microprogramming : Hardware units like ALU's,
registers, memory etc are linked together into a data-path. The flow of bits
around the data-path is controlled by "gates" which allow the bits to flow
(on) or not flow (off) through the data-path. The binary instructions (1 =
on; 0 = off) that control the flow are micro-instructions.

- Assembler Language/Machine Code Level: Computers are built out of bi-stable
hardware devices - devices that maintain one of two states - high or low
which we label 1 or 0. So at the lowest level a computer can only decode
and work with patterns of bits. Ultimately everything is binary (which when
converted to octal or hexadecimal code is easier for humans to work with).
0200/7300 (PDP-8 machine code - octal)
0201/1300
0202/1301
0203/3302
0204/7402
0205/5200
0x15 0x00 (Java Byte Code)
0x15 0x01
0x60
0x36 0x02
- An operating system manages a computer's resources and provides a user
interface. Thus the operating system of a computer is intimately connect with the
instruction set architecture. Certain machine code instructions are
reserved for and can only be executed by the operating system (or other
privileged users). However, there are ISA level instructions (called
interrupts or traps). that call the operating system to provide certain
services like I/O.
*0200 (PDP-8 Assembler)
main, cla cll
tad a
tad b
dca c
hlt
jmp main
*0300
a, 02
b, 03
c, 0
$main
iload a (Assembler for Java Byte Code)
iload b
iadd
istore c
mov ax, a (Intel 80x86 assembler)
add ax, b
mov c, ax
nop
int 03
- High Level Language (C++) - User Friendly! and Platform
Independent!
c = a + b;
Key Idea : Computers are designed as series of levels with each
level built on the foundation of its predecessor. Hardware and software are logically equivalent;
what is too expensive/complicated to do in hardware can be done in software
(e.g. multiplication, floating point operations)
Return
to Comp 255 Home Page