Title: Computer Organization
1Computer Organization
2Different Types of Computers
- Mechanical
- Analog
- Digital
3Analog Computers
- Continuous-time input and output
- Useful for fixed tasks like multiplying two
inputs together, process control. - Almost all human interactions with their
environment are analog
4Digital computers
- Convert all instructions and input-output into a
stream of 1s and 0s - The power of 1s and 0s (Geraldine)
- Noise tolerant
- Our brain uses a form of digital computing
5Mixed Computing
- Humans understand analog signals
- Computers function best using digital signals
- There must be an ergonomic interface at the input
and output of the digital computer
6Basic Architecture
A computer needs the ability to store and
execute programs. This task makes certain
hardware necessary
- Devices for program and information input
- Devices for displaying results
- Permanent memory for saving executables and data
- Temporary (internal) memory for storing
intermediate results and executing programs - Main controller (processor)
- Arithmetic processor for data manipulation.
7Basic Architecture
8Early Computers
9Current Technology
The Microprocessor
10Modern Computing
Most small to medium scale problems and even some
large scale problems can be handled by the
current generation of desktop computers. In the
past the computer user had to be a skilled
programmer with an intimate knowledge of the
inner workings of the computer. With these
skills a user could devise clever programs to
solve many problems. Today the focus is on
applications software, software written and
optimized for particular tasks, and efficient
operating systems.
11Operating System
- System software refers to all the programs that
are required to direct the computer itself to do
useful work -- like accept input from a terminal,
save date on a magnetic file, and write output to
a printer, tasks handled by system utilities.
Examples of system software are MSDOS, Windows,
OS2, and UNIX. - The most important part of system software is the
operating system for each computer. It contains
the initial instructions that are loaded into
memory when the computer is powered on (booted). - From then on, the operating system controls all
aspects of the computers activity, like loading
application programs, executing them, accepting
input, and channeling input, and other
fundamental activities.
12Applications Software
- Application software refers to specific computer
programs that make use of the operating system to
perform special-purpose functions, like
calculating and printing payroll checks or
performing statistical functions on census data. - These programs are loaded and controlled by the
operating system. - Examples of application software are Microsoft
Word, Excel, Internet Explorer, and - Other examples of interest include computational
tools such a Matlab, Mathcad, Maple and Aspen a
Chemical Engineering specific tool.
13Hierarchy of Computer Interactions
14Programming
In the von Neumann model, computers perform tasks
by executing instructions in the CPU. In the
modern processor instructions usually take the
form of 32 bit strings of binary numbers. For
instance the string 0000000000100100
0000000000001001 might tell the CPU to add the
contents memory location 10012 to the
accumulator. This form of programming is the most
primitive. It is called machine language and is
intimately tied to the specific type of processor
for which it is written. In the early ENIAC days
this was the only method for programming
computers.
15Programming
Early on it became apparent that easier methods
for producing programs were necessary. The
solution was to replace machine code with
mnemonic (easily remembered) instructions. The
result is called assembly language. To add a pair
of numbers might require the following LOAD
x MULT y ADD z Assembly
instructions replace machine code with a
one-to-one correspondence. This is similar to
some of the early scientific calculators. It is
more easily readable than machine code but still
somewhat tedious and processor dependent.
16A Program
?
?
?
?
?
?
17Programming
The real breakthrough in programming came with
the introduction programming languages called
high-level languages. High level languages have
several advantages
- One high-level language instruction normally
replaces many assembly level steps. - High level languages are normally machine
independent. The instructions are processed by a
compiler which produces the machine dependent
code from the high-level machine independent
code. - High level languages are normally highly readable
when written to solve mathematical problems.
18High Level Languages
Here are some examples of the high level
statements required to find the area of a circle.
It would take tens of statements to do the same
with an assembly language.