Lecture 1 - 4

Cards (31)

  • Computer Architecture
    Attributes of the system that are visible to the software programmer and have a direct impact on the logical execution of a program, like the number of bits used to represent various data types, the instruction set of the computer, technique for addressing memory, method used for input, output, etc.
  • Main categories considered in computer architecture design
    • System Design
    • Instruction Set Architecture
    • Micro Architecture
  • System Design
    Hardware components used for building the system
  • Instruction Set Architecture
    Includes all the instructions provided to the computer system
  • Micro Architecture
    Gives minute detail about storage elements
  • Computer Organization
    The way the various components of a computer system are interconnected and work together to perform tasks and execute programs
  • 5 basic components of a computer
    • Input Unit
    • Output Unit
    • Memory Unit
    • Control Unit
    • Arithmetical and Logical Unit
  • Input Unit
    Where commands are given to the device
  • Output Unit
    Where the result of a task is displayed
  • Memory Unit
    Stores the entered information and transmits it to other parts of the CPU
  • Control Unit
    Manages the entire functioning of the computer device
  • Arithmetical and Logical Unit

    Performs mathematical calculations and comparison/decision-making actions
  • Instruction Set Architecture (ISA)

    Part of the abstract model of a computer that defines how the CPU is controlled by the software, acting as an interface between hardware and software
  • RISC Processor
    • Microprocessor architecture with a simple and highly customized set of instructions
    • Each instruction cycle requires only one clock cycle, with fetch, decode and execute stages
    • Combines complex instructions into simpler ones
    • RISC Chips - Requires fewer transistors, making it cheaper to design and reducing execution time
  • CISC Processor
    Has a large collection of complex instructions from simple to specialized, taking longer to execute
  • Types of Memory Hierarchy
    • External Memory/Secondary Memory
    • Internal Memory/Primary Memory
  • External Memory/Secondary Memory
    • Hard Disk Drive (HDD)
    • Solid State Drive (SSD)
    • USB Flash Drive
    • External Hard Drive
    • Memory Card
    • NAS or File Servers
    • Cloud Storage
  • Internal Memory/Primary Memory
    • Random Access Memory (RAM)
    • Cache Memory
    • Registers
    • Memory Controllers
    • On-Chip Memory (L1,L2, L3 Cache)
    • Non-volatile Memory (ROM)
  • Registers
    Tiny, lightning-fast memory units inside the CPU that store data temporarily during processing
  • Types of Registers
    • Program Counter (PC)
    • Instruction Register (IR)
    • Memory Address Register (MAR)
    • Memory Data Register (MDR)
    • Accumulator (ACC)
  • Cache Memory
    Super-fast memory that stores frequently used data from main memory, located close to the CPU to reduce access time
  • Cache Mapping Techniques
    • Direct Mapping
    • Associative Mapping
    • Set-Associative Mapping
  • RAM
    crucial part of modern computers that stores programs and information for the processor to use, working closely with the CPU and I/O devices
  • Types of Main Memory
    • Static RAM
    • Dynamic RAM
  • Secondary Storage
    Non-volatile memory with larger storage capacity than main memory, used to store data and instructions not currently being used by the CPU
  • Design Principles and Trade-offs in Memory Hierarchy

    • Principle of Locality
    • Cost-Performance Trade-off
    • Caching
    • Block Size
    • Replacement Policy
    • Write Policy
  • Pipelining
    Technique that allows a processor to execute multiple instructions at the same time by breaking them down into smaller steps
  • How Pipelining Works
    1. Instruction Fetch
    2. Instruction Decode
    3. Instruction Execute
    4. Memory Access
    5. Write Back
  • Types of Pipelines
    • Instruction pipeline
    • Arithmetic pipeline
  • Benefits of Pipelining
    • Improves processor efficiency by reducing idle time between instructions
    • Overlaps execution of different instructions in different stages
  • Challenges of Pipelining
    • Dependency problem - when an instruction depends on the result of a previous unfinished instruction
    • Branch problem - when the processor has to make a decision based on a condition, leading to mispredictions and stalls