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.
- 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 fetch, decode 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:
- Compare
the exponents by subtraction.
- Align
the mantissas.
- Add
or subtract the mantissas.
- 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.
- Fetch
instruction from memory.
- Decode
the instruction.
- Calculate
the effective address.
- Fetch
the operands from memory.
- Execute
the instruction.
- Store
the result in the proper place.
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.
A 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.
- 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
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.
- 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
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,
ReplyDeleteArchitecture in Islamabad