0% found this document useful (0 votes)
187 views

Computer Architecture CHAPTER 1

The document provides an overview of computer organization and architecture, including: - A brief history of early mechanical computers from the 1600s-1940s and the limitations of early machines. - An overview of the five generations of computers from the first electronic computers of the 1940s to modern VLSI computers. - Why studying computer organization and architecture is important for tasks like program design and system evaluation. - The main components of computer architecture and organization including computer hardware, software, and firmware.

Uploaded by

Shaarvin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
187 views

Computer Architecture CHAPTER 1

The document provides an overview of computer organization and architecture, including: - A brief history of early mechanical computers from the 1600s-1940s and the limitations of early machines. - An overview of the five generations of computers from the first electronic computers of the 1940s to modern VLSI computers. - Why studying computer organization and architecture is important for tasks like program design and system evaluation. - The main components of computer architecture and organization including computer hardware, software, and firmware.

Uploaded by

Shaarvin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 47

BAB 1

COMPUTER
OPERATION
COMPUTER OPERATION

History of computer system

Basic computer logic architecture


and operation of computer
HISTORY OF COMPUTER SYSTEM
- Gottfried Liebniz (1673)
Mechanical Era (1600s-1940s)
» Mathematician and inventor
» Improved on Pascal’s machine
– Wilhelm Schickhard (1623)
» Add, subtract, multiply, and
» Astronomer and
divide
mathematician
– Charles Babbage (1822)
» Automatically add, subtract,
» “Father of modern computer”
multiply, and divide
» Difference engine
– Blaise Pascal (1642)
Government / science agreement,
» Mathematician Automatic computation of math tables
» Mass produced first working
» Analytic engine
machine (50 copies)
Perform any math operation, Punch cards
» Could only add and subtract
Modern structure: I/O, storage, ALU
» Maintenance and labor
Add in 1 second, multiply in 1 minute
problems
HISTORY OF COMPUTER SYSTEM

– Herman Hollerith (1889)


» Modern day punched card machine
» Formed Tabulating Machine • Mechanical era summary
Company (became IBM) – Mechanical computers were
designed to reduce the time
- Konrad Zuse (1938) required for calculations and
» Built first working mechanical increase accuracy of the results
computer, the Z1
– Two drawbacks
– Howard Aiken (1943) » Speed of operation limited
» Designed the Harvard Mark I
by the inertia of moving
» Implementation of Babbage’s
machine parts (gears and pulleys)
» Cumbersome, unreliable,
and expensive
HISTORY OF COMPUTER SYSTEM
• Generation 1 (1945 - 1958)
(Vaccume tube computers) » Decimal number system used
» Programmed by manually setting
– ENIAC switches
» Developed for calculating
artillery firing tables – IAS (Institute for Advanced
» Designed by Mauchly and Studies) ** Princeton
Echert of the University of » von Neumann and Goldstine
Pennsylvania » Took idea of ENIAC and developed
» Generally regarded as the first concept of storing a program in the
electronic computer memory
» BIG! » This architecture came to be known
as the “von Neumann” architecture
18,000 tubes, 70,000 resistors and has been the basis for virtually
10,000 capacitors, 6,000 every machine designed since then.
switches, 30 x 50 feet
140 kW of power
HISTORY OF COMPUTER SYSTEM
• Generation 2 (1958 - 1964) • Generation 4 (1974 - present)
(Transistorized computer) (VLSI computers)

– Technology change – Large scale integration / VLSI


– Transistors – Single board computers
– High level languages
– Floating point arithmetic • Generation 5 (? - ?)
(Development continued...)
• Generation 3 (1964 - 1974) – VLSI / ULSI
(Integrated circuit) – Computer communications
networks
– Introduction of integrated – Artificial intelligence / voice
circuits recognition
– Semiconductor memory – Massively parallel machines
- Nanotechnology
– Microprogramming
– Multiprogramming
WHY STUDY COMPUTER ORGANIZATION AND
ARCHITECTURE?

 Design better programs, including system software such as compilers, operating systems,
and device drivers.
 Optimize program behavior.
 Evaluate (benchmark) computer system performance.
 Understand time, space, and price tradeoffs.
COMPUTER ARCHITECTURE & ORGANIZATION

• Computer organization
• Encompasses all physical aspects of computer systems.
• E.g., circuit design, control signals, memory types.
• How does a computer work?

• Computer architecture
• Logical aspects of system implementation as seen by the
programmer.
• E.g., instruction sets, instruction formats, data types,
addressing modes.
• How do I design a computer?
THE ROLE & PURPOSE
Computer architecture Computer organization

- The coordination of abstract levels of a - Computer organization helps optimize


processor under changing forces, involving performance-based products.
design, measurement and evaluation. It also - Computer organization also helps plan the
includes the overall fundamental working selection of a processor for a particular
principle of the internal logical structure of a project.
computer system. - Sometimes certain tasks need additional
components as well. For example, a
- It can also be defined as the design of the computer capable of virtualization needs
task-performing part of computers, i.e. how virtual memory hardware so that the
various gates and transistors are memory of different simulated computers
interconnected and are caused to function can be kept separated.
per the instructions given by an assembly - The computer organization and features also
language programmer. affect the power consumption and the cost
of the processor.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION

COMPUTER HARDWARE

Computer hardware (usually simply called


hardware when a computing context is
implicit) is the collection of physical
elements that constitutes a computer
system.
Computer hardware is the physical parts or
components of a computer, such as the
monitor, mouse, keyboard, computer data
storage, hard disk drive (HDD), system unit
(graphic cards, sound cards, memory,
motherboard and chips), and so on, all of
which are physical objects that can be
touched
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION
COMPUTER HARDWARE

Hardware of a modern personal computer

1. Monitor 2. Motherboard 3. CPU 4.


RAM 5. Expansion cards 6. Power
supply 7. Optical disc drive 8. Hard disk
drive 9. Keyboard 10. Mouse
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION

COMPUTER SOFTWARE

• Computer software or simply software is any set of


machine-readable instructions that directs a
computer's processor to perform specific operations.
• Computer software contrasts with computer
hardware, which is the physical component of
computers.
• Computer hardware and software require each other
and neither can be realistically used without the other.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION
COMPUTER SOFTWARE
• Computer software (often called just software) is
made of one or more computer programs.
• Sometimes it means one specific program, or it can
mean all the software on a computer, including the
applications and the operating system.
• Applications are programs that do a specific thing,
such as a game or a word processor.
• The operating system (Mac OS, Microsoft Windows,
Linux, etc.) is software that helps the applications
run, and controls the display and the keyboard.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION
COMPUTER SOFTWARE

• The word software was first used in the late 1960s to show
the difference from computer hardware, which are the parts
of a machine that can be seen and touched.
• Software is the instructions that the computer follows.
• Before compact discs (CDs) or Internet downloads, software
came on various computer data storage media like paper
punch cards, magnetic discs or magnetic tape.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION
COMPUTER SOFTWARE

• The word firmware is sometimes used to describe a style


of software that is made specially for a particular type of
computer (or other electronic device) and is usually stored
on a Flash memory or ROM chip in the computer.
• Firmware usually refers to a piece of software that directly
controls a piece of hardware, for example the firmware for
a CD drive or the firmware for a modem.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION

FIRMWARE (BIOS SYSTEM)

• The BIOS (Basic Input/Output System and also known as


the System BIOS, ROM BIOS or PC BIOS) is a type of
firmware used during the booting process (power-on
startup) on IBM PC compatible computers.
• The BIOS firmware is built into personal computers (PCs),
and it is the first software they run when powered on.
• The name itself originates from the Basic Input/Output
System used in the CP/M operating system in 1975.
• Originally proprietary to the IBM PC, the BIOS has been
reverse engineered by companies looking to create
compatible systems and the interface of that original
system serves as a de facto standard.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION

FIRMWARE (BIOS SYSTEM)


• The fundamental purposes of the BIOS are to initialize and test the
system hardware components, and to load a boot loader or an operating
system from a mass memory device.
• The BIOS additionally provides an abstraction layer for the hardware, i.e.
a consistent way for application programs and operating systems to
interact with the keyboard, display, and other input/output (I/O) devices.
Variations in the system hardware are hidden by the BIOS from
programs that use BIOS services instead of directly accessing the
hardware.
• MS-DOS (PC DOS), which was the dominant PC operating system from
the early 1980s until the mid 1990s, relied on BIOS services for disk,
keyboard, and text display functions. MS Windows NT, Linux, and other
protected mode operating systems in general ignore the abstraction
layer provided by the BIOS and do not use it after loading, instead
accessing the hardware components directly.
COMPONENT OF COMPUTER ARCHITECTURE & ORGANIZATION

FIRMWARE (BIOS SYSTEM)

• Every BIOS implementation is specifically designed to work


with a particular computer or motherboard model, by
interfacing with various devices that make up the
complementary system chipset.
• Originally, BIOS firmware was stored in a ROM chip on the
PC motherboard; in modern computer systems, the BIOS
contents are stored on flash memory so it can be rewritten
without removing the chip from the motherboard.
• This allows easy updates to the BIOS firmware so new
features can be added or bugs can be fixed, but it also
creates a possibility for the computer to become infected
with BIOS rootkits.
HIGH-LEVEL LANGUAGE PROGRAMMING

• High-level language were developed in order to facilitate the programmers to


use computers without the need to know in detail the internal structure of the
computer.
• Enable the programmers to concentrate more on the logic and less on the
intricacies of the computer. It is for this reason that high level languages are
also known as Program-oriented languages.
• Basically symbolic languages that use English words and Mathematical symbols
than mnemonic codes.
• It is easy to read, write and understand.
• Every instruction which the programmer writes in high-level language is
translated into many machine language instructions.
• It is one-to-many not one-to-one as in the assembly language.
• Few examples of high-level languages are: Basic, Cobol, Fortran, Pascal, C,
C++,…….many more
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
INPUT / OUTPUT UNIT

• An input device sends information to a computer system


for processing, and an output device reproduces or
displays the results of that processing. Depending on the
interaction, a device can be both; referred to as an input
/output or I/O device.
• For example, as you can see in the image, a keyboard
sends electrical signals (input). Those signals are then
interpreted by your computer, and then displayed on a
monitor as text (output). Then in the lower half, you can
see a computer sending data to a printer that will be
reproduced on a piece of paper (output)
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
INPUT/OUTPUT UNIT
An input device, such as a computer
keyboard or mouse, can send
information (input) to the computer,
but it cannot receive or reproduce
information (output) from the
computer.
An output device, such as computer
speakers or a projector can receive
information (output) from the
computer, but it cannot send
information (input) to the computer.
An input/output device, such as a CD-
RW drive or a USB flash drive, can
both send information (input) to a
computer and receive information
(output) from a computer.
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
CENTRAL PROCESSING UNIT (CPU)

• A central processing unit (CPU) is the electronic circuitry


within a computer that carries out the instructions of a
computer program by performing the basic arithmetic,
logical, control and input/output (I/O) operations
specified by the instructions.
• The term has been used in the computer industry at least
since the early 1960s.
• Traditionally, the term CPU refers to a processing unit, or
processor, and its control unit (CU), distinguishing these
core elements of a computer from external components
such as main memory and I/O circuitry.
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
CENTRAL PROCESSING UNIT (CPU)

• The form, design and implementation of CPUs have changed


over the course of their history, but their fundamental
operation remains almost unchanged.
• Principal components of a CPU include the arithmetic logic
unit (ALU) that performs arithmetic and logic operations,
processor registers that supply operands to the ALU and store
the results of ALU operations, and a control unit that fetches
instructions from memory and executes them by directing the
coordinated operations of the ALU, registers and other
components.
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
MEMORY

• In computing, memory refers to the devices used to


store information for use in a computer.
• The term primary memory is used for storage systems
which function at high-speed (i.e. RAM), as a distinction
from secondary memory, which provides program and
data storage that is slow to access but offer higher
memory capacity.
• If needed, primary memory can be stored in secondary
memory, through a memory management technique
called virtual memory.
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
MEMORY
• The term memory, meaning primary memory is often associated with
addressable semiconductor memory, i.e. integrated circuits consisting of
silicon-based transistors, used for example as primary memory but also
other purposes in computers and other digital electronic devices.
• There are two main types of semiconductor memory: volatile and non-
volatile. Examples of non-volatile memory are flash memory (sometimes
used as secondary, sometimes primary computer memory) and
ROM/PROM/EPROM/EEPROM memory (used for firmware such as boot
programs).
• Examples of volatile memory are primary memory (typically dynamic
RAM, DRAM), and fast CPU cache memory (typically static RAM, SRAM,
which is fast but energy-consuming and offer lower memory capacity per
area unit than DRAM).
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
MEMORY

• Most semiconductor memory is organized into memory cells


or bistable flip-flops, each storing one bit (0 or 1).
• Flash memory organization includes both one bit per memory
cell and multiple bits per cell (called MLC, Multiple Level Cell).
• The memory cells are grouped into words of fixed word
length, for example 1, 2, 4, 8, 16, 32, 64 or 128 bit.
• Each word can be accessed by a binary address of N bit,
making it possible to store 2 raised by N words in the
memory.
• This implies that processor registers normally are not
considered as memory, since they only store one word and do
not include an addressing mechanism.
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
MEMORY

• The term storage is often used to describe secondary memory


such as tape, magnetic disks and optical discs (CD-ROM and
DVD-ROM).
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
BUSES SYSTEM
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
BUSES SYSTEM
• DATA BAS

• Carries data
• Remember that there is no difference between data and
instruction at this level
• Width is a key determinant of performance
• 8, 16, 32, 64 bit
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
BUSES SYSTEM

• ADDRESS BUS

• Identify the source or destination of data


• e.g. CPU needs to read an instruction (data) from a given
location in memory
• Bus width determines maximum memory capacity of system
• e.g. 8080 has 16 bit address bus giving 64k address space
BASIC COMPONENT AND PROGRAMMING OF A
DIGITAL COMPUTER
BUSES SYSTEM

• CONTROL BUS

• Control and timing information


• Memory read/write signal
• Interrupt request
• Clock signals
ASSEMBLY LANGUAGE

CISC – Complex Instruction Set Computer

• A complex instruction set computer is a computer


where single instructions can execute several low-
level operations (such as a load from memory, an
arithmetic operation, and a memory store) or are
capable of multi-step operations or addressing
modes within single instructions.
ASSEMBLY LANGUAGE

CISC – Complex Instruction Set Computer


• CISC Architecture

• Instructions are very powerful and so more closely mimics high-level languages.

• However, some key disadvantages:

• Implementation is slow.

• Slower to decode

• Need more transistors

• More complex, hence harder for engineers to implement.

• Examples: VAX, PDP-11, Motorola 68000 and Intel x86/Pentium. However, these are not truly CISC
architectures, because they decode complex instructions into internal simple micro-instructions
ASSEMBLY LANGUAGE

RISC – Reduced Instruction Set Computer


• Reduced instruction set computing, or RISC, is a
CPU design strategy based on the insight that
simplified instruction set (as opposed to a
complex set) provides higher performance when
combined with a microprocessor architecture
capable of executing those instructions using
fewer microprocessor cycles per instruction.
ASSEMBLY LANGUAGE

RISC – Reduced Instruction Set Computer


• RISC Architecture

• RISC project started in UC Berkeley in 1980 under Prof. David Patterson.


• RISC-I processor delivered in 1982: Only 32 instructions, but
outperformed all other single-chip designs.
• RISC-II delivered in 1983: 3 times faster than RISC-I
• Almost all modern RISC processors are based on the RISC-II design
• RISC-II design first commercialized by Sun Microsystems’ SPARC
processors, which dominated workstation market.
• Today, vast majority of CPUs are RISC type. Most CPUs are small
embedded CPUs in cell phones, cars and other devices.
ASSEMBLY LANGUAGE

RISC – Reduced Instruction Set Computer


• Desktop PC is dominated by Intel’s x86 architecture, which is CISC. However, internally, these processors are

actually RISC processors that emulate CISC architecture.

• On the other hand, nowadays, RISC instruction sets are growing larger, and becoming more like CISC.

• Small, highly optimized set of instructions

• Uses a load-store architecture

• Short execution time

• Pipelining

• Many registers

• Example: MIPS
ASSEMBLY LANGUAGE

RISC vs CISC

• Less transistors needed in RISC


• RISC processors have shorter design cycles
• RISC instructions take less clock cycles than CISC
instructions
- CISC instructions take up to 3 to 12 times longer
• Smaller instructions allowed for constants to be
stored in the unused bits of the instruction
- This would mean less memory calls to registers or main
memory
LANGUAGE CATEGORIES
Assembly Language

• Assembly language instructions are in one-to-one


correspondent with machine instructions. With
assembly language, a programmer can use mnemonics
for opcodes and symbols for memory locations and
operands, thus simplifying the programming.
• A utility program called an assembler will then translate
(or assemble) the assembly language program into
binary code before the program is executed.
LANGUAGE CATEGORIES
Assembly Language

• A sample program in assembly


language. These are the
instruction lines typed by
programmer on the assembler
platform to compose a program.
There are three columns, first
column is label field, second
column is mnemonics column,
and the third column is the
operand field.
LANGUAGE CATEGORIES
Assembly Language

• Figure shows the machine


codes generated automatically
by assembler for each of the
instruction lines. Column-1 is
the instruction lines number,
column-2 is the address of the
memory locations to store the
opcodes or data, column-3 is
the opcodes represent the
instruction mnemonics keyed
in by the programmer.
LANGUAGE CATEGORIES
Assembly Language

• Label field

- represent the symbolic address of the instruction.

- this field is optional for every instruction and is required only if the instruction is to be referred again and again.

example : START

• Mnemonics

- is and abbreviated word which serves as a memory aid with it sound suggesting it meaning.

example: ADD.L

• Operands

- consist of symbolic address of a memory location. This field consist of alphanumeric character and must be

separated from other field either a space or a semicolon.

example: ADD.B D0, D1


LANGUAGE CATEGORIES
Computer Languages

• A language is a means of communication. In order to


communicate with the computer, we need a language.
Computer languages can be divided into 2 major categories:
Low Level and High Level Languages.
• The Programming Language can be classified into 3
categories:
- Compiler Language
- High-Level Language
- Program-oriented languages
LANGUAGE CATEGORIES
Compiler Languages

• We know that the computer only understands machine language. So, a program written in
high level language needs to be translated into machine language before it can be executed
by the computer. This program in the case of a high level language is known as a compiler. A
compiler is so called because for every program instruction of a high level language, it
compiles a set of machine language instructions.

• When a program is to be compiled, the compiler is copied into the main memory of the
computer and is executed in the CPU. Besides translating the instruction, it also brings out
any errors related to the syntax (grammar) or semantic ( meaning) of the specified high level
language.

Illustrating the translation by a compiler


LANGUAGE CATEGORIES
Compiler Languages

• The compiler can diagnose following kinds of


errors:(logical/timing/sequential error)
i. Illegal characters
ii. Illegal combination of characters
iii. Improper sequencing of instruction in a program
• Source program containing errors will not be translated into object
program. Compiler will print out the list of errors.
• This error can then be corrected and be recompiled.
• However, it cannot diagnose errors present in the logic of the program.
Logical errors (if any) are detected only after getting the result.
• So, one must take the program coding seriously.
LANGUAGE CATEGORIES
High-Level Language

• High-level language were developed in order to facilitate the programmers to


use computers without the need to know in detail the internal structure of the
computer.
• Enable the programmers to concentrate more on the logic and less on the
intricacies of the computer. It is for this reason that high level languages are
also known as Program-oriented languages.
• Basically symbolic languages that use English words and Mathematical symbols
than mnemonic codes.
• It is easy to read, write and understand.
• Every instruction which the programmer writes in high-level language is
translated into many machine language instructions.
• It is one-to-many not one-to-one as in the assembly language.
• Few examples of high-level languages are: Basic, Cobol, Fortran, Pascal, C,
C++,…….many more

You might also like