Computer Organization and Architecture
Computer technology has made incredible improvement in the past half century. In the early part of computer evolution, there were 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 effordable 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 imple mentation.
While looking for the task for computer design, both the terms computer organization and computer architecture come into picture.
it is difficult to give 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.
Basic Computer Model and different units of Computer
The model of a computer can be described by four basic units in high level abstraction which is shown in figure 1.1. These basic units are:
- Central Processor Unit
- Input Unit
- Output Unit
- Memory Unit
Figure 1.1: Basic Unit of a Computer
Basic Computer Model and different units of Computer
A. Central Processor Unit (CPU) :
Central processor unit consists of two basic blocks :
- The program control unit has a set of registers and control circuit to generate control signals.
- The execution unit or data processing unit contains a set of registers for storing data and an Arithmatic and Logic Unit (ALU) for execution of arithmatic and logical operations.
In addition, CPU may have some additional registers for temporary storage of data.
B. Input Unit :
With the help of input unit data from outside can be supplied to the computer. Program or data is read into main storage from input device or secondary storage under the control of CPU input instruction.
Example of input devices: Keyboard, Mouse, Hard disk, Floppy disk, CD-ROM drive etc.
C. Output Unit :
With the help of output unit computer results can be provided to the user or it can be stored in stograge device permanently for future use. Output data from main storage go to output device under the control of CPU output instructions.
Example of output devices: Printer, Monitor, Plotter, Hard Disk, Floppy Disk etc.
D. Memory Unit :
Memory unit is used to store the data and program. CPU can work with the information stored in memory unit. This memory unit is termed as primary memory or main memory module. These are basically semi conductor memories.
There ate two types of semiconductor memories –
- Volatile Memory : RAM (Random Access Memory).
- Non-Volatile Memory : ROM (Read only Memory), PROM (Programmable ROM)
EPROM (Erasable PROM), EEPROM (Electrically Erasable PROM).
Secondary Memory :
There is another kind of storage device, apart from primary or main memory, which is known as secondary memory. Secondary memories are non volatile memory and it is used for permanent storage of data and program.
Example of secondary memories:
|Hard Disk, Floppy Disk, Magenetic Tape||——||These are magnetic devices,|
|CD-ROM||——||is optical device|
|Thumb drive (or pen drive)||——||is semiconductor memory.|
Basic Working Principle of a Computer
Before going into the details of working principle of a computer, we will analyse how computers work with the help of a small hypothetical computer.
In this small computer, we do not consider about Input and Output unit. We will consider only CPU and memory module. Assume that somehow we have stored the program and data into main memory. We will see how CPU can perform the job depending on the program stored in main memory.
P.S. – Our assumption is that students understand common terms like program, CPU, memory etc. without knowing the exact details.
Consider the Arithmatic and Logic Unit (ALU) of Central Processing Unit :
Consider an ALU which can perform four arithmatic operations and four logical operations
To distingish between arithmatic and logical operation, we may use a signal line,
|0 –||in that signal,||represents an arithmatic operation and|
|1 –||in that signal,||represents a logical operation.|
In the similar manner, we need another two signal lines to distinguish between four arithmatic operations.
The different operations and their binary code is as follows:
Consider the part of control unit, its task is to generate the appropriate signal at right moment.
There is an instruction decoder in CPU which decodes this information in such a way that computer can perform the desired task
The simple model for the decoder may be considered that there is three input lines to the decoder and correspondingly it generates eight output lines. Depending on input combination only one of the output signals will be generated and it is used to indicate the corresponding operation of ALU.
In our simple model, we use three storage units in CPU,
Two — for storing the operand and
one — for storing the results.
These storage units are known as register.
But in computer, we need more storage space for proper functioning of the Computer.
Some of them are inside CPU, which are known as register. Other bigger chunk of storage space is known as primary memory or main memory. The CPU can work with the information available in main memory only.
To access the data from memory, we need two special registers one is known as Memory Data Register (MDR) and the second one is Memory Address Register (MAR).
Data and program is stored in main memory. While executing a program, CPU brings instruction and data from main memory, performs the tasks as per the instuction fetch from the memory. After completion of operation, CPU stores the result back into the memory.
In next section, we discus about memory organization for our small machine.
Main Memory Organization
Main memory unit is the storage unit, There are several location for storing information in the main memory module.
The capacity of a memory module is specified by the number of memory location and the information stored in each location.
A memory module of capacity 16 X 4 indicates that, there are 16 location in the memory module and in each location, we can store 4 bit of information.
We have to know how to indicate or point to a specific memory location. This is done by address of the memory location.
We need two operation to work with memory.
READ Operation: This operation is to retrive the data from memory and bring it to CPU register WRITE Operation: This operation is to store the data to a memory location from CPU register
We need some mechanism to distinguish these two operations READ and WRITE.
With the help of one signal line, we can differentiate these two operations. If the content of this signal line is
0, we say that we will do a READ operation; and if it is
1, then it is a WRITE operation.
To transfer the data from CPU to memory module and vice-versa, we need some connection. This is termed as DATA BUS.
The size of the data bus indicate how many bit we can transfer at a time. Size of data bus is mainly specified by the data storage capacity of each location of memory module.
We have to resolve the issues how to specify a particular memory location where we want to store our data or from where we want to retrive the data.
This can be done by the memory address. Each location can be specified with the help of a binary address.
If we use 4 signal lines, we have 16 different combinations in these four lines, provided we use two signal values only (say 0 and 1).
To distingush 16 location, we need four signal lines. These signal lines use to identify a memory location is termed as ADDRESS BUS. Size of address bus depends on the memory size. For a memory module of capacity of 2n location, we need n address lines, that is, an address bus of size n.
We use a address decoder to decode the address that are present in address bus
As for example, consider a memory module of 16 location and each location can store 4 bit of information
The size of address bus is 4 bit and the size of the data bus is 4 bit
The size of address decoder is 4 X 16.
There is a control signal named R/W.
If R/W = 0, we perform a READ operation and
if R/W = 1, we perform a WRITE operation
If the contents of address bus is 0101 and contents of data bus is 1100 and R/W = 1, then 1100 will be
written in location 5.
If the contents of address bus is 1011 and R/W=0, then the contents of location 1011 will be placed in data bus.
We need some more instruction to work with the computer. Apart from the instruction needed to perform task inside CPU, we need some more instructions for data transfer from main memory to CPU and vice versa.
In our hypothetical machine, we use three signal lines to identify a particular instruction. If we want to include more instruction, we need additional signal lines.
Instruction Code Meaning 1000 LDAI imm Load register A with data that is given in the program 1001 LDAA addr Load register A with data from memory location addr 1010 LDBI imm Load register B with data 1011 LDBA addr Load register B with data from memory location addr 1100 STC addr Store the value of register C in memory location addr 1101 HALT Stop the execution 1110 NOP No operation 1111 NOP No operation
With this additional signal line, we can go upto 16 instructions. When the signal of this new line is 0, it will indicate the ALU operation. For signal value equal to 1, it will indicate 8 new instructions. So, we can design 8 new memory access instructions.
We have added 6 new instructios. Still two codes are unused, which can be used for other purposes. We show it as NOP means No Operation.
We have seen that for ALU operation, instruction decoder generated the signal for appropriate ALU operation.
Apart from that we need many more signals for proper functioning of the computer. Therefore, we need a module, which is known as control unit, and it is a part of CPU. The control unit is responsible to generate the appropriate signal.
As for example, for LDAI instruction, control unit must generate a signal which enables the register A to store in data into register A.
One major task is to design the control unit to generate the appropriate signal at appropriate time for the proper functioning of the computer.
Consider a simple problem to add two numbers and store the result in memory, say we want to add 7 to 5.
To solve this problem in computer, we have to write a computer program. The program is machine specific, and it is related to the instruction set of the machine.
Main Memory Organization: Stored Program
The present day digital computers are based on stored-program concept introduced by Von Neumann. In this stored-program concept, programs and data are stored in separate storage unit called memories.
Central Processing Unit, the main component of computer can work with the information stored in storage unit only.
In 1946, Von Neumann and his colleagues began the design of a stored-program computer at the Institute for Advanced Studies in Princeton.This computer is referred as the IAS computer.
The IAS computer is having three basic units:
- The Central Processing Unit (CPU).
- The Main Memory Unit.
- The Input/Output Device.
Central Processing Unit:
This is the main unit of computer, which is responsible to perform all the operations. The CPU of the IAS computer consists of a data processing unit and a program control unit.
The data processing unit contains a high speed registers intended for temporary storage of instructions, memory addresses and data. The main action specified by instructions are performed by the arithmatic-logic circuits of the data processing unit.
The control circuits in the program control unit are responsible for fetching instructions, decoding opcodes, controlling the information movements correctly through the system, and providing proper control signals for all CPU actions.
The Main Memory Unit:
It is used for storing programs and data. The memory locations of memory unit is uniquely specified by the memory address of the location. M(X) is used to indicate the location of the memory unit M with address X.
The data transfer between memory unit and CPU takes place with the help of data register DR. When CPU wants to read some information from memory unit, the information first brings to DR, and after that it goes to appropriate position.Similarly, data to be stored to memory must put into DR first, and then it is stored to appropriate location in the memory unit.
The address of the memory location that is used during memory read and memory write operations are stored in the memory register AR.
The information fetched from the memory is a operand of an instruction, then it is moved from DR to data processing unit (either to AC or MQ). If it is an operand, then it is moved to program control unit (either to IR or IBR).
Two additional registers for the temporary storage of operands and results are included in data processing units: the accumulator AC and the multiplier-quotient register MQ.
Two instructions are fetch simultaneously from M and transferred to the program control unit. The instruction that is not to be executed immediately is placed in the instruction buffer register IBR. The opcode of the other instruction is placed in the instruction register IR where it is decoded.
In the decoding phase, the control circuits generate the required control signals to perform the specified operation in the instruction.
The program counter(PC) is used to store the address of the next instruction to be fetched from memory.
Input Output Device :
Input devies are used to put the information into computer. With the help of input devices we can store information in memory so that CPU can use it. Program or data is read into main memory from input device or secondary storage under the control of CPU input instruction.
Output devices are used to output the information from computer. If some results are evaluated by computer and it is stored in computer, then with the help of output devices, we can present it to the user. Output data from the main memory go to output device under the control of CPU output instruction.