Computer Archit
Computer Archit
**Objective:**
**Key Topics:**
**Learning Outcomes:**
- Understand the architecture and organization of a computer system and its components.
- Identify and evaluate the elements of modern instruction sets and their impact on processor design.
- Explain the function and organization of a memory hierarchy and compare different methods for
computer I/O.
**Cognitive Skills:**
This foundational knowledge in computer architecture and organization is critical for understanding how
modern computers are built and how they operate efficiently.
---
**Definition**:
**Main Components**:
- **I/O Devices**: Allow interaction with the computer (e.g., keyboard, mouse, printer).
- **System Bus**: Facilitates communication between CPU, memory, and I/O devices.
---
- **Control Unit (CU)**: Directs operations within the CPU by decoding instructions and generating
control signals.
- **Registers**: Small, fast storage locations within the CPU for temporary data handling.
- **Data Path**: The part of the CPU that performs operations on data.
**Key Terms**:
- **Clock Speed**: The speed at which a processor executes instructions, measured in GHz.
- **Instruction Cycle**: Fetch, decode, execute, and store results.
---
- Reduces the number of instructions per program but can complicate processor design.
**Processor Design**:
- **Pipeline Architecture**:
- Breaks down instruction execution into several stages (fetch, decode, execute, etc.).
- **Superscalar Architecture**:
- Executes more than one instruction per clock cycle by dispatching multiple instructions to different
execution units.
**Key Metrics**:
- **IPC (Instructions Per Cycle)**: A measure of how many instructions a processor can execute per
clock cycle.
- **Throughput**: The amount of work a processor can complete in a given amount of time.
---
**Memory Hierarchy**:
- **Cache Memory**: Small, fast memory located close to the CPU to speed up access to frequently
used data.
- **Main Memory (RAM)**: Larger but slower than cache, used for active processes.
- **Secondary Storage**: Non-volatile, large capacity storage like HDDs and SSDs.
- **Segmentation**: Divides memory into segments based on the logical division of programs.
- **I/O Devices**: Peripherals like keyboards, mice, printers, and storage devices.
- **I/O Ports**: Interfaces through which data is transferred between the computer and peripherals.
- **DMA (Direct Memory Access)**: Allows devices to transfer data to/from memory without CPU
intervention, improving efficiency.
- **Interrupt-Driven I/O**: Devices signal the CPU to handle data transfer, reducing CPU idle time.
- **Direct Memory Access (DMA)**: Offloads data transfer tasks to a dedicated controller, freeing up
the CPU.
---
- **CPU Time** = (Number of Instructions) * (Cycles per Instruction) * (Clock Cycle Time)
- **Speedup** = 1 / [(1 - P) + P / S]
- **Effective Access Time** = (Hit Ratio * Cache Access Time) + (Miss Ratio * Main Memory Access
Time)
- **Miss Penalty**: Time taken to fetch data from lower levels of the memory hierarchy.
---
### **Study Tips**
1. **Understand Core Concepts**: Grasp the basics of computer architecture, such as CPU structure,
memory hierarchy, and I/O mechanisms.
2. **Analyze Processor Design**: Compare different processor architectures (RISC vs. CISC) and
understand their impact on performance.
3. **Utilize Diagrams**: Use block diagrams to visualize the components and data flow within a
computer system.
4. **Practice Problem-Solving**: Solve problems related to CPU performance, memory hierarchy, and
instruction sets to reinforce your understanding.
5. **Study Real-World Examples**: Look at the architectures of modern processors to see how
theoretical concepts are applied in practice.
6. **Use Simulation Tools**: Tools like Logisim or software simulators can help you visualize and
experiment with computer architecture concepts.
By focusing on these notes and utilizing the study tips provided, you will develop a strong understanding
of computer architecture and organization, which is essential for designing and analyzing modern
computer systems.