Introduction: Computer Organization and Architecture
Computer technology has made incredible improvement in the past half-century. In the early part of computer evolution, there was no stored-program computer, the computational power was less and on the top of it, the size of the computer was a very huge one.
Today, a personal computer has more computational power, more main memory, more disk storage, smaller in size and it is available in affordable cost.
This rapid rate of improvement has come both from advances in the technology used to build computers and from innovation in computer design. In this course, we will mainly deal with the innovation in computer design.
The task that the computer designer handles is a complex one: Determine what attributes are important for a new machine, then design a machine to maximize performance while staying within cost constraints.
This task has many aspects, including instruction set design, functional organization, logic design, and implementation.
While looking for the task for computer design, both the terms computer organization and computer architecture come into the picture.
It is difficult to give a precise definition for the terms Computer Organization and Computer Architecture. But while describing computer system, we come across these terms, and in literature, computer scientists try to make a distinction between these two terms.
Computer architecture refers to those parameters of a computer system that are visible to a programmer or those parameters that have a direct impact on the logical execution of a program. Examples of architectural attributes include the instruction set, the number of bits used to represent different data types, I/O mechanisms, and techniques for addressing memory.
Computer organization refers to the operational units and their interconnections that realize the architectural specifications. Examples of organizational attributes include those hardware details transparent to the programmer, such as control signals, interfaces between the computer and peripherals, and the memory technology used.
In this course, we will touch upon all those factors and finally come up with the concept of how these attributes contribute to building a complete computer system.