Architecture of Computers: Vistula University
Architecture of Computers: Vistula University
Vistula University
WHAT IS ARCHITECTURE OF COMPUTERS?
Computer architecture is a fundamental field in computer science and plays a crucial role in the
design and development of computer systems. Understanding computer architecture is essential
for computer scientists, engineers, and anyone working with computers, as it forms the
foundation for designing efficient and capable computing devices.
Overview
• Hardware Components
• Instruction Sets
• Memory Hierarchy
• Parallel Processing
• I/O System
• System Organization
• Hardware Components: Computer architecture deals with the physical components that
make up a computer system. These components include:
• Central Processing Unit (CPU): The CPU is the "brain" of the computer and is responsible for
executing instructions and performing calculations.
• Memory: This includes various types of memory, such as RAM (Random Access Memory) for
data storage during program execution and storage devices like hard drives or SSDs for long-
term data storage.
• Input and Output Devices: These include peripherals like keyboards, mice, monitors,
printers, and other devices used for interacting with the computer.
• Storage Devices: Hard drives, solid-state drives, and other storage media are part of
computer architecture. They are used to store data and programs.
Introduction to ARCHITECTURE OF COMPUTERS
• Instruction Sets: Computer architecture defines the set of instructions that a CPU can
understand and execute. This includes the format of instructions, their operation codes
(opcodes), and how they are decoded and executed by the CPU.
• Memory Hierarchy: Computer systems use a hierarchy of memory to store data. This
hierarchy includes registers, cache memory, main memory (RAM), and secondary storage.
Computer architecture determines how data is managed and accessed within this hierarchy.
• Data Path and Control Unit: The data path is responsible for performing arithmetic and logic
operations, while the control unit manages the execution of instructions and the flow of data
between different components.
• Parallel Processing: Computer architecture also addresses the concept of parallel processing,
where multiple processors work together to perform tasks simultaneously, increasing
computational power.
• I/O System: Computer architecture defines how input and output operations are managed,
including communication with external devices and peripherals.
• System Organization: It covers the overall organization of the computer system, including
how components are connected, how they communicate, and how they are controlled.
• Performance and Efficiency: Computer architecture aims to optimize the performance and
efficiency of a computer system. This includes considerations like clock speed, instruction
throughput, and power consumption.
• Instruction Set Architecture (ISA): ISA defines the interface between hardware and
software. It specifies how software can communicate with the hardware, including the
available instructions and their formats.
A simple computer model
– The CPU is the brain of the computer, responsible for executing instructions. In a simple
model, you can represent the CPU as a black box that performs computations.
2. Memory:
– Memory is used to store data and instructions that the CPU needs to work with. In a
simple model, you can have two types of memory:
• RAM (Random Access Memory): This is used for storing data and program
instructions that the CPU is currently working with. It's volatile, meaning its
contents are lost when the computer is turned off.
– The control unit manages the execution of instructions. It fetches instructions from
memory, decodes them, and controls the flow of data within the CPU. In your simple
model, you can show a basic control unit as a component responsible for instruction
execution.
5. Registers:
- Registers are small, high-speed storage locations within the CPU used for temporary data
storage during computations. In a basic model, you can represent a few essential registers,
such as the program counter (PC) to keep track of the current instruction, and general-
purpose registers for data manipulation.
A simple computer model
6. Instruction Set:
– Define a simple set of instructions that the CPU can execute. These instructions can
include basic arithmetic operations (add, subtract), data movement (load, store), and
control flow (jump, branch).
7. Bus:
– The bus is a communication pathway that allows data and instructions to move between
the CPU, memory, and I/O devices. In a simple model, you can represent a data bus and
an address bus for data transfer and addressing memory locations, respectively.
8. Clock:
– A clock signal is used to synchronize the operations of the CPU. It determines the speed
at which the CPU executes instructions.
A simple computer model
3. The CPU performs the operation specified by the instruction, which may involve reading data
from memory or registers, performing calculations, and storing results.
4. The program counter is updated to point to the next instruction.
1. In an SISD architecture, there is a single processing unit (CPU) that executes a single
instruction stream on a single data stream at a time. This is the classic von Neumann
architecture found in most traditional computers. The CPU fetches instructions one at a
time from memory and operates on data sequentially. This is the simplest and most
common type of computer architecture.
Flynn taxonomy
1. In a SIMD architecture, there is a single control unit that issues the same instruction to
multiple processing elements, each of which operates on different elements of a single
data stream simultaneously. SIMD architectures are well-suited for tasks that involve
parallel processing of large datasets, such as graphics processing units (GPUs) used in
graphics rendering and scientific simulations.
Flynn taxonomy
MISD architectures are not commonly found in practical computer systems. They are more
of a theoretical concept and are rarely implemented in real-world computing.
Flynn taxonomy
1. In a MIMD architecture, multiple processing units operate independently, each with its
own instruction stream and data stream. MIMD architectures are common in modern
multiprocessor and multithreaded systems. Each processor can execute different
programs or instructions on different data, making MIMD architectures highly flexible
and suitable for a wide range of parallel computing tasks. high-performance computing
HPC
Harvard and Princeton architecture
The Harvard architecture and Princeton architecture are two fundamental computer
architecture designs that differ in how they handle the storage and access of
instructions and data. Here's an overview of each architecture
Separate Instruction and Data Memory:
Advantages:
Disadvantages:
Advantages:
Disadvantages:
• Assembler: Programs written in assembly language must be translated into machine code
using an assembler, which converts the mnemonics into the corresponding binary
instructions.
• Productivity: High-level languages make programming more accessible and efficient. They
offer built-in functions and data structures that simplify common tasks.
• Examples: Some popular high-level programming languages include Python, Java, C++,
JavaScript, Ruby, and C#. These languages are used for a wide range of software
development tasks, from web development to scientific computing.
Microprocessor families
• The Intel x86 family includes a range of microprocessors that have been dominant in
personal computers and servers for several decades. The family's architecture includes
processors like the Intel 8086, 80286, 80386, Pentium, Core i-series, and many more.
• x86 processors are known for their compatibility, power, and performance. They run
operating systems like Windows and Linux and are widely used in desktops, laptops, and
servers.
• AMD (Advanced Micro Devices) also produces x86-compatible processors that compete with
Intel's offerings. AMD's processors, such as the Ryzen and EPYC series, are used in desktops,
laptops, and servers.
Microprocessor families
ARM Family:
• ARM (Advanced RISC Machines) processors are known for their energy efficiency and are
commonly found in mobile devices, embedded systems, and IoT devices. ARM architecture
licenses its designs to various manufacturers, including Apple, Qualcomm, and Samsung.
• The ARM Cortex-A series is used in smartphones and tablets, while the Cortex-M and Cortex-
R series are designed for embedded systems and real-time applications.
MIPS Family:
• MIPS (Microprocessor without Interlocked Pipeline Stages) processors have been used in
various applications, including networking equipment, embedded systems, and gaming
consoles. They are known for their simplicity and efficiency.
• MIPS processors have been used in products like Cisco routers and early versions of Sony's
PlayStation gaming consoles.
Microprocessor families
PowerPC Family:
SPARC Family:
• SPARC (Scalable Processor Architecture) processors are designed by Oracle (formerly Sun
Microsystems) and have been used in servers and high-performance computing systems.
They are known for their reliability and scalability.
Microprocessor families
RISC-V Family:
– The Zilog Z80 is a classic 8-bit microprocessor that gained popularity in the early days of
personal computing. It was used in home computers like the ZX Spectrum and some
early arcade machines.
Summary
1. Computer Architecture:
ISA defines the interface between hardware and software, specifying the set of instructions
a CPU can execute, instruction formats, addressing modes, data types, and more.
3. Flynn's Taxonomy:
Flynn's taxonomy classifies computer architectures into four categories based on the
concurrency of instruction and data streams: SISD (Single Instruction, Single Data), SIMD
(Single Instruction, Multiple Data), MISD (Multiple Instruction, Single Data), and MIMD
(Multiple Instruction, Multiple Data).
Summary
1. The Harvard architecture separates instruction and data memory, allowing for parallel
instruction fetching and data access. It's common in embedded systems.
2. The Princeton (Von Neumann) architecture uses a unified memory for both instructions
and data, with a single memory bus. It's the basis for most general-purpose computers.
5. Programming Languages:
1. Machine language consists of binary code and is the lowest-level language directly
understood by computers.
Microprocessor Families:
• Microprocessors are central processing units (CPUs) found in various computing devices.
• Intel x86 and AMD x86 for personal computers and servers.
• ARM for mobile devices and embedded systems.