Defining Computer
Architecture
Definition
Computer architecture is a specification
describing how hardware and software
technologies interact to create a computer
platform or system. Computer architecture
consists of three main categories.
System design
– This includes all the hardware parts,
such as CPU, data processors,
multiprocessors, memory controllers and
direct memory access. This part is the actual
computer system.
Instruction set architecture
– This includes the CPU’s functions and
capabilities, the CPU’s programming
INSTRUCTION SET
ARCHITECTURE
RISC VS CISC
INSTRUCTION SET
ARCHITECTURE
The computer ISA defines all of the programmer-
visible components and operations of the computer
– memory organization
• address space -- how may locations can be
addressed?
• addressibility -- how many bits per location?
– register set (a place to store a collection of bits)
• how many? what size? how are they used?
– instruction set
• Opcodes (operation selection codes)
• data types (data types: byte or word)
• addressing modes (coding schemes to access data)
ISA provides all information needed for someone that
wants to write a program in machine language (or
translate from a high-level language to machine
language).
What Makes a Good
Instruction Set?
• implementability
– supports a (performance/cost) range
of implementations
– implies support for high performance
implementations
• programmability
– easy to express programs
• backward/forward/upward
compatibility
– implementability & programmability
across generations
– e.g., x86 generations: 8086, 286,
386, 486, Pentium, Pentium II,
INSTRUCTION CYCLE
Instruction fetch – Load the next
instruction from memory
Instruction decode – transform the bits of
the opcode into the CPU configuration
necessary to execute it.
Execute – Perform arithmetic operations
Memory – Access memory
Writeback – write results back into
destination register
INSTRUCTION FORMAT
WELL KNOWN ISA’S
x86
Based on Intel 8086 CPU in 1978
Intel family, also followed by AMD
X86-64
64-bit extensions
Proposed by AMD, also followed by Intel
ARM
32-bit & 64-bit
Initially by Acorn RISC Machine
ARM Holding
MIPS
32-bit & 64-bit
By Microprocessor without Interlocked Pipeline Stages (MIPS)
Technologies
SPARC
32-bit & 64-bit
By Sun Microsystems
PIC
8-bit to 32-bit
By Microchip
Z80
8-bit
By Zilog in 1976
Many extensions
Intel – MMX, SSE, SSE2, AVX
AMD – 3D Now!