Computer Architecture : Chapter 0
Computer Architecture Overview
Before we study computer architecture we first must know what is a 'Computer Architecture'. So, this will be a small overview about what we are going to study.First of all What is a Computer Architecture ?
It might be a real simple question to ask. But will be the hardest to answer. According to wikipedia, Computer Architecture is set of rules and methods that describes the functionality, organization and implementation of a Computer System.
Some definitions may refer it to as describing then capabilities and programming models of a Computer System.
But for both definitions Computer Architecture is something that is bound to a Computer System. Computer Architecture Consists of several components.
So I have identified three major components.
- System Design :
- This includes all the hardware components of a computer system.
- CPU, Memory controllers etc.
- Instruction Set Architecture (ISA):
- Embedded Programming Language of CPU. Defines CPU functions and Capabilities based on what programming it can do or process.
- Micro-architecture :
- This is computer organization. Defines data paths, data processing and storage elements as well as how they should be implemented in ISA.
Computer Architecture Classification
We can find several kinds of Computer Architectures'. Where some of them has real implementations and some of them does not. Architectures are classified in relevance with stream of data and instructions they can process.. According to Flynn's Classification there are four main Computer Architectures'.- SISD (Single Instruction - Single Data)
- A Single Processor Computer in which a single stream of instructions is generated from a program.
- Von Neumann Computer.
- SIMD (Single Instruction - Multiple Data)
- Multiple processing units of the same type, process on multiple data streams.
- Array Processing Machine.
- MISD (Multiple Instruction - Single Data)
- Multiple Processing units operating on one single data stream.
- Never implemented.
- MIMD (Multiple Instruction - Multiple Data)
- Several processing units operating on multiple data streams.
- Distributed Systems.
Motivations to Study Computer Architecture
There could be many motivations to study Computer Architecture. Basically the emerging trends will stand-off when it comes to study of computer architecture. Many-core vs Multi-core processors, Mobile vs Server type processors, Virtualisation and Cloud Computing will be the best motives to some one to study computer architecture.But to me studying Computer Architecture provides means to upgrade our CPU power.
If any body who wants to expand the Computing power of a Computer System, he should be ready to study and explore the computer architecture.
I have used a term Computing Power. How could we measure a power of a Computer ?
Easy answer is to measure the CPU throughput. How to measure CPU throughput ?
CPU Throughput = Instructions Per Second (IPS)
IPS = (Instructions) / (Seconds)
= (Cycles * Instructions) / (Seconds * Cycles)
= (Cycles / Seconds) / (Cycles / Instructions)
IPS = Cycles per Seconds(CPS) / Cycles per Instruction(CPI)
To extend our IPS, we should lower the CPI. CPI, given by computer manufactures is an average value. It depends on the High Level Language Code which used to check the CPU throughput. So, then IPS dependent on the application.
According to Moore's Law CPU power doubles every 18 months. So, IPS getting doubled every one and half years. But this is not valid for today.
There are some complications on making IPS value even higher. So, it cannot be extend using the same hardware strategy. We will need some new perspective of designing CPUs.
When concerning on IPS, it is better to lower the CPI value. There are three scenarios we are going to exploit.
- CPI > 1 :
- Typical Non-pipelining.
- CPI = 1 :
- Should make use of pipelining and Cache.
- CPI < 1 :
- Multiple issue pipelining.
Comments
Post a Comment