project topics |Computer Architecture Design

  
Q:   What is Computer Architecture?
Ans: Computer architecture is a science or a set of rules stating how computer software and hardware are joined together and interact to make a computer work. It not only determines how the computer works but also of which technologies the computer is capable. Computers continue to be a major part of our lives, and computer architects continue to develop new and better programs and technologies.


Von Neumann Architecture
Stored-Program Architecture

Introduction:
·      The Von Neumann architecture is a design model for a stored-program digital computer.
·      The Most Important feature is the Memory that can holds both Data and Program.
History:
·       In 1945, just after the World War, Jon Von Neumann    proposed to build a more flexible computer.
·       Von Neumann had been working on the Manhattan Project to build the first atomic bomb which needed a vast amount of manual calculations
·      Up to that time, the computers were 'programmed' by rebuilding the entire machine to carry out a different task.  
·      The new idea was that not only the data should be stored in memory, but the program processing that data should also be stored in the same memory.
·      A computer built with this architecture would be much easier to re-program.




Features of Von Neumann Architecture:
o  Memory:
In this Architecture, Memory can hold both data and also the program processing that data. In modern computers this memory is called RAM.
o  Input – Output:
This architecture allows the users to interact with the Computer.

Central Processing Unit:
1.           Arithmetic Logic Unit: (ALU)
This part of the architecture carries out    calculations upon the data.
2.           Control Unit: (CU)
    The CU manages the process of moving data and program into and out of memory and also deal with execution of program instructions - one at a time.
    The 'one-at-a-time' phrase means that the von Neumann Architecture is a sequential processing machine.

    HARVARD ARCHITECTURE
    A computer architecture with physically separate storage and signal pathways for instructions and data.
    The term originated from the Harvard Mark I relay-based computer, which stored instructions on Punched tape      (24 bits wide) and data in electro-mechanical counters.
    In some systems, instructions can be stored in read-only memory while data memory generally requires read-write memory.
    In some systems, there is much more instruction memory than data memory so instruction addresses are wider than data addresses.
Speed:
The speed of the CPU has grown many times in comparison to the access speed of the main memory.
Internal vs. external design:
    Modern high performance CPU chip designs incorporate aspects of both Harvard and von Neumann architecture. In particular, the Modified Harvard architecture is very common.
    CPU cache memory is divided into an instruction cache and a data cache. Harvard architecture is used as the CPU accesses the cache.
Digital signal processors:
Texas Instruments TMS320 C55x processors, as one example, have multiple parallel data buses (two write, three read) and one instruction bus.
Microcontrollers:
Examples include, the AVR by Atmel Corp, the PIC by Microchip Technology, Inc. and the ARM Cortex-M3 processor (not all ARM chips have Harvard architecture).
Advantages & Disadvantages
Ø      Von Neumann Architecture
Ø      Harvard Architecture

Von Neumann Architecture
Advantages:
    Control Unit gets data and instruction in the same way from one memory. It simplifies design and development of the Control Unit.
    Data from memory and from devices are accessed in the same way.
    Memory organization is in the hands of programmers.


Disadvantages:
    Serial instruction processing does not allow parallel execution of program. Parallel executions are simulated later by the Operating system.
    One bus is a bottleneck. Only one information can be accessed at the same time.
    Instruction stored in the same memory as the data can be accidentally rewritten by an error in a program.

Harvard Architecture
Advantages:
    Since it has two memories , this allows parallel access to data and instructions.
    Development of the Control Unit is expensive and needs more time
    Data and instructions are accessed the same way.
    Both memories can use different cell sizes.
Disadvantages:
    Free data memory cannot be used for instruction and vice versa.
    Production of a computer with two buses is more expensive and needs more time.












  1. Pipeline and vector processing
    • Pipelining is a technique where multiple instructions are overlapped during execution. Pipeline is divided into stages and these stages are connected with one another to form a pipe like structure. Instructions enter from one end and exit from another end.
      Pipelining increases the overall instruction throughput.
      In pipeline system, each segment consists of an input register followed by a combinational circuit. The register is used to hold data and combinational circuit performs operations on it. The output of combinational circuit is applied to the input register of the next segment.

Types of Pipeline
It is divided into 2 categories:
1.    Arithmetic Pipeline
2.    Instruction Pipeline
Arithmetic Pipeline
Arithmetic pipelines are usually found in most of the computers. They are used for floating point operations, multiplication of fixed point numbers etc. For example: The input to the Floating Point Adder pipeline is:
X = A*2^a
Y = B*2^b
Here A and B are mantissas (significant digit of floating point numbers), while a and b are exponents.
The floating point addition and subtraction is done in 4 parts:
1.    Compare the exponents.
2.    Align the mantissas.
3.    Add or subtract mantissas
4.    Produce the result.
Registers are used for storing the intermediate results between the above operations.
Instruction Pipeline
In this a stream of instructions can be executed by overlapping fetchdecode and execute phases of an instruction cycle. This type of technique is used to increase the throughput of the computer system.
An instruction pipeline reads instruction from the memory while previous instructions are being executed in other segments of the pipeline. Thus we can execute multiple instructions simultaneously. The pipeline will be more efficient if the instruction cycle is divided into segments of equal duration.
Pipeline Conflicts
There are some factors that cause the pipeline to deviate its normal performance. Some of these factors are given below:
1. Timing Variations
All stages cannot take same amount of time. This problem generally occurs in instruction processing where different instructions have different operand requirements and thus different processing time.


2. Data Hazards
When several instructions are in partial execution, and if they reference same data then the problem arises. We must ensure that next instruction does not attempt to access data before the current instruction, because this will lead to incorrect results.

3. Branching
In order to fetch and execute the next instruction, we must know what that instruction is. If the present instruction is a conditional branch, and its result will lead us to the next instruction, then the next instruction may not be known until the current one is processed.

4. Interrupts
Interrupts set unwanted instruction into the instruction stream. Interrupts effect the execution of instruction.


5. Data Dependency
It arises when an instruction depends upon the result of a previous instruction but this result is not yet available.


Advantages of Pipelining
1.    The cycle time of the processor is reduced.
2.    It increases the throughput of the system
3.    It makes the system reliable.
 Disadvantages of Pipelining
1.    The design of pipelined processor is complex and costly to manufacture.
2.    The instruction latency is more.

Arithmetic Pipeline
Arithmetic Pipelines are mostly used in high-speed computers. They are used to implement floating-point operations, multiplication of fixed-point numbers, and similar computations encountered in scientific problems.
To understand the concepts of arithmetic pipeline in a more convenient way, let us consider an example of a pipeline unit for floating-point addition and subtraction.
The inputs to the floating-point adder pipeline are two normalized floating-point binary numbers defined as:
    X = A * 2a = 0.9504 * 103
    Y = B * 2b = 0.8200 * 102
Where A and B are two fractions that represent the mantissa and a and b are the exponents.
The combined operation of floating-point addition and subtraction is divided into four segments. Each segment contains the corresponding suboperation to be performed in the given pipeline. The suboperations that are shown in the four segments are:
  1. Compare the exponents by subtraction.
  2. Align the mantissas.
  3. Add or subtract the mantissas.
  4. Normalize the result.
We will discuss each suboperation in a more detailed manner later in this section.
The following block diagram represents the suboperations performed in each segment of the pipeline.

Note: Registers are placed after each suboperation to store the intermediate results.
1. Compare exponents by subtraction:
The exponents are compared by subtracting them to determine their difference. The larger exponent is chosen as the exponent of the result.
The difference of the exponents, i.e., 3 - 2 = 1 determines how many times the mantissa associated with the smaller exponent must be shifted to the right.
2. Align the mantissas:
The mantissa associated with the smaller exponent is shifted according to the difference of exponents determined in segment one.
      X = 0.9504 *  103
      Y = 0.08200 * 103
3. Add mantissas:
The two mantissas are added in segment three.
Z = X + Y = 1.0324 * 103
4. Normalize the result:
After normalization, the result is written as:

Z = 0.1324 * 104

Instruction Pipeline
Pipeline processing can occur not only in the data stream but in the instruction stream as well.
Most of the digital computers with complex instructions require instruction pipeline to carry out operations like fetch, decode and execute instructions.
In general, the computer needs to process each instruction with the following sequence of steps.
  1. Fetch instruction from memory.
  2. Decode the instruction.
  3. Calculate the effective address.
  4. Fetch the operands from memory.
  5. Execute the instruction.
  6. Store the result in the proper place.
Each step is executed in a particular segment, and there are times when different segments may take different times to operate on the incoming information. Moreover, there are times 
when two or more segments may require memory access at the same time, causing one segment to wait until another is finished with the memory.
The organization of an instruction pipeline will be more efficient if the instruction cycle is divided into segments of equal duration. One of the most common examples of this type of organization is a Four-segment instruction pipeline.
four-segment instruction pipeline combines two or more different segments and makes it as a single one. For instance, the decoding of the instruction can be combined with the calculation of the effective address into one segment.

The following block diagram shows a typical example of a four-segment instruction pipeline. The instruction cycle is completed in four segments.
Segment 1:
The instruction fetch segment can be implemented using first in, first out (FIFO) buffer.
Segment 2:
The instruction fetched from memory is decoded in the second segment, and eventually, the effective address is calculated in a separate arithmetic circuit.
Segment 3:
An operand from memory is fetched in the third segment.
Segment 4:
The instructions are finally executed in the last segment of the pipeline organization.

In computing, a vector processor or array processoris a central processing unit (CPU) that implements an instruction set containing instructions that operate on one-dimensional arrays of data called vectors, compared to the scalar processors, whose instructions operate on single data items.














2.computer data communication
  •  transmission data and concepts of data communication, networking and their applications.



3. Memory organization
  • A memory unit is the collection of storage units or devices together. The memory unit stores the binary information in the form of bits. Generally, memory/storage is classified into 2 categories:
    • Volatile Memory: This loses its data, when power is switched off.
    • Non-Volatile Memory: This is a permanent storage and does not lose any data when power is switched off.




Microprocessor is a controlling unit of a micro-computer, fabricated on a small chip capable of performing ALU (Arithmetic Logical Unit) operations and communicating with the other devices connected to it.
Microprocessor consists of an ALU, register array, and a control unit. ALU performs arithmetical and logical operations on the data received from the memory or an input device. Register array consists of registers identified by letters like B, C, D, E, H, L and accumulator. The control unit controls the flow of data and instructions within the computer.

Block Diagram of a Basic Microcomputer

Basic Microcomputer

How does a Microprocessor Work?

The microprocessor follows a sequence: Fetch, Decode, and then Execute.
Initially, the instructions are stored in the memory in a sequential order. The microprocessor fetches those instructions from the memory, then decodes it and executes those instructions till STOP instruction is reached. Later, it sends the result in binary to the output port. Between these processes, the register stores the temporarily data and ALU performs the computing functions.

List of Terms Used in a Microprocessor

Here is a list of some of the frequently used terms in a microprocessor −
  • Instruction Set − It is the set of instructions that the microprocessor can understand.
  • Bandwidth − It is the number of bits processed in a single instruction.
  • Clock Speed − It determines the number of operations per second the processor can perform. It is expressed in megahertz (MHz) or gigahertz (GHz).It is also known as Clock Rate.
  • Word Length − It depends upon the width of internal data bus, registers, ALU, etc. An 8-bit microprocessor can process 8-bit data at a time. The word length ranges from 4 bits to 64 bits depending upon the type of the microcomputer.
  • Data Types − The microprocessor has multiple data type formats like binary, BCD, ASCII, signed and unsigned numbers.

Features of a Microprocessor

Here is a list of some of the most prominent features of any microprocessor −
  • Cost-effective − The microprocessor chips are available at low prices and results its low cost.
  • Size − The microprocessor is of small size chip, hence is portable.
  • Low Power Consumption − Microprocessors are manufactured by using metaloxide semiconductor technology, which has low power consumption.
  • Versatility − The microprocessors are versatile as we can use the same chip in a number of applications by configuring the software program.
  • Reliability − The failure rate of an IC in microprocessors is very low, hence it is reliable.
4. Multiprocessors
  • A Multiprocessor is a computer system with two or more central processing units (CPUs) share full access to a common RAM. The main objective of using a multiprocessor is to boost the system’s execution speed, with other objectives being fault tolerance and application matching.
    There are two types of multiprocessors, one is called shared memory multiprocessor and another is distributed memory multiprocessor. In shared memory multiprocessors, all the CPUs shares the common memory but in a distributed memory multiprocessor, every CPU has its own private memory.



5.Computer organization/Design
The Hardware/Software Interface presents the interaction between hardware and software at a variety of levels, which offers a framework for understanding the fundamentals of computing. explains the concepts and algorithms used in modern computer arithmetic.  complete data path and control for a processor overall understand how a system works.

Memory hierarchy


Von Neumann architectureVon Neumann architecture


Comments

  1. This posting is marvelous and what a fantastic research that you have done. It has helped me a lot. thank you very much. for more information visit Construction Company in Islamabad,
    Architecture in Islamabad

    ReplyDelete

Post a Comment

Popular posts from this blog

WHAT ETHICAL, SOCIAL, AND POLITICAL ISSUES ARE RAISED BY INFORMATION SYSTEMS?

Porter’s Value Chain Analysis

General Register organization & Components of CPU and their functions: