Why study architecture?

The general goal of this course is to provide a background in computer architecture and organization that will allow us to make better decisions when programming a task or selecting a system to to solve a problem.

Like a professional driver who understands how the engine, transmission, and brake system on her/his car works, he/she can elicit the best performance from each system even if he/she never actually repairs or rebuilds one of these systems.


Algorithms - steps to a solution

Computers are designed to compute solutions to specified problems. An algorithm is a set of rules describing the steps to a solution for a given problem. We implement algorithms on a computer with a program or hardware circuitry. A substantial algorithm has three primary features :


Equivalence of hardware and software

Modern computers use electronics to implement calculations at a binary level. These calculations are performed by executing a series of discrete simple, finite, pre-defined steps in a specified order known as a program. By rearranging these steps in different orders, a computer system can solve any variety of complex algorithms.

The implementation of a sequence of simple steps or algorithm may be defined at the hardware or software level.

Hardware implementation offers both advantages and costs.

An alternative is to use software to specify a task. The hardware defined tasks are left as simple discrete steps and their order of execution specified by a loadable program or software.
Productivity triangle

Picture a small carpentry shop. At the entrance is a sign :

The productivity triangle acknowledges that there are seldom only two competing ideas when attempting to choose the best technological solution. Common competing issues : As we go through this course, we will look at the design of various systems, protocols, functional units, devices, etc. with the goal of providing a general understanding of their implementation and their costs and benefits.