Computer Architecture Notes
Computer Architecture refers to the structure and organization of a computer system's hardware
components and how they interact with one another.
Here are key concepts and components that form the foundation of computer architecture:
1. **Basic Components of a Computer System**:
- **Central Processing Unit (CPU)**: The "brain" of the computer that executes instructions. It
consists of the Arithmetic Logic Unit (ALU), Control Unit (CU), and registers.
- **Memory**: A storage area where data and instructions are stored. Memory is divided into
primary (RAM) and secondary (hard drives, SSDs).
- **Input/Output Devices (I/O)**: Hardware interfaces through which the computer interacts with
the external world (keyboard, mouse, display, etc.).
2. **CPU Components**:
- **Arithmetic Logic Unit (ALU)**: Performs arithmetic and logical operations (addition, subtraction,
AND, OR, etc.).
- **Control Unit (CU)**: Directs the flow of data and operations within the CPU.
- **Registers**: Small, fast storage locations in the CPU that hold intermediate data during
processing.
- **Clock**: Synchronizes the operations of the CPU and other components.
3. **Memory Hierarchy**:
- **Registers**: Smallest and fastest, located in the CPU. They hold data and instructions for
immediate use.
- **Cache Memory**: Fast memory located close to the CPU to store frequently accessed data.
- **Main Memory (RAM)**: Stores data that is actively used by the CPU.
- **Secondary Storage**: Larger, slower storage (hard drives, SSDs) used to store data long-term.
- **Tertiary Storage**: Used for backup and archival data (e.g., optical drives, tape storage).
4. **Von Neumann Architecture**:
- **Program Storage**: Both data and instructions are stored in memory, and the CPU fetches
and executes them sequentially.
- **Fetch-Decode-Execute Cycle**: The basic cycle through which the CPU processes
instructions: fetch an instruction from memory, decode it, and execute the operation.
5. **Instruction Set Architecture (ISA)**:
- Defines the set of instructions the CPU can execute and how data is represented in memory.
- Includes instructions for arithmetic, logic, data movement, and control flow.
- Examples: x86, ARM, MIPS.
6. **Pipelining**:
- A technique where multiple instruction stages are overlapped, allowing for faster processing by
performing multiple operations simultaneously.
- Stages of pipelining: Instruction Fetch (IF), Instruction Decode (ID), Execute (EX), Memory
Access (MEM), Write Back (WB).
7. **Cache Memory**:
- A small, fast memory that stores frequently accessed data to reduce access time from slower
main memory.
- **Levels of Cache**:
- **L1 Cache**: Smallest and fastest, located closest to the CPU core.
- **L2 Cache**: Larger but slower, located between the CPU and main memory.
- **L3 Cache**: Even larger and slower, shared between cores in multi-core processors.
8. **Parallel Processing**:
- The use of multiple processors or cores to execute tasks simultaneously, increasing
performance for compute-intensive operations.
- **Multicore Processors**: Processors with multiple cores that can handle several tasks in
parallel.
9. **Virtual Memory**:
- A memory management technique that allows the operating system to use disk storage as an
extension of RAM.
- **Paging**: Divides memory into fixed-size pages and swaps them between RAM and disk as
needed.
- **Segmentation**: Divides memory into segments (e.g., code, data, stack) and manages them
independently.
10. **Input/Output Systems**:
- Handles communication between the CPU and external devices like keyboards, displays, and
storage.
- **Direct Memory Access (DMA)**: A system where peripherals can access memory directly
without involving the CPU, improving data transfer efficiency.
- **Interrupts**: A mechanism where the CPU is alerted to handle I/O events or exceptional
conditions.
11. **Bus Systems**:
- A collection of pathways used to transfer data between the CPU, memory, and I/O devices.
- **Data Bus**: Carries data between components.
- **Address Bus**: Carries the address of the data.
- **Control Bus**: Carries control signals for coordinating operations.
12. **RISC vs CISC Architectures**:
- **RISC (Reduced Instruction Set Computing)**: Focuses on a small set of simple instructions
that can execute in one clock cycle.
- **CISC (Complex Instruction Set Computing)**: Uses a large set of instructions, some of which
can take multiple cycles to execute.
13. **Performance Metrics**:
- **Clock Speed**: The rate at which the CPU executes instructions (measured in GHz).
- **MIPS (Million Instructions Per Second)**: A measure of how many millions of instructions the
CPU can process in one second.
- **Throughput**: The number of instructions processed over a period of time.
- **Latency**: The time it takes to process a single instruction.
14. **Energy Efficiency**:
- As processors become more powerful, energy consumption becomes a crucial factor, especially
in mobile devices and large data centers.
- **Power Consumption**: Affects the performance-to-power ratio, with techniques like dynamic
voltage scaling (DVS) used to manage energy use.
Understanding these concepts is essential for understanding how computers work at a fundamental
level, and is the basis for more advanced studies in topics like computer systems design, operating
systems, and embedded systems.