The general goal of this course is to provide a background in computer architecture and organization in order 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 a 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.
Computers are designed to calculate a solution to a specified problem by applying a set of defined steps, an algorithm, the the problem. These steps may be implemented in either hardware circuitry or in program code.
A well designed system implements the steps independent of the overall algorithm, allowing steps to be rearranged and reused to solve different algorithms with minimal cost and effort.
A valid algorithm has three primary features :
The continual evolution of technology and programming influences achievability the greatest.
An algorithmic routine is realized by executing a series of discrete simple, finite, pre-defined steps in a specified order known as a program. If these steps are sufficiently simple, they can be arranged in different orders to solve any variety of complex algorithms.
Modern computers use a combination of electronic circuits and software instructions to implement these individual steps.
From the logical viewpoint, hardware and software implementation of an algorithmic step are equivalent. In practice, each has benefits and costs.
Hardware implementation advantages and costs.
Picture a small carpentry shop. At the entrance is a sign :