Computer Architecture

  1. Central Processing Unit (CPU)
    1. Components of CPU
      1. Arithmetic Logic Unit (ALU)
        1. Functions of ALU
          1. Arithmetic operations (addition, subtraction, multiplication, division)
            1. Logical operations (AND, OR, NOT, XOR)
              1. Bit-shifting operations
              2. Role in instruction execution
                1. Integration with the rest of the CPU
                2. Control Unit (CU)
                  1. Functions of the Control Unit
                    1. Instruction decoding
                      1. Register selection
                        1. Managing execution flow
                        2. Communication with other CPU components
                          1. Role in the Fetch-Decode-Execute cycle
                          2. Registers
                            1. Types of Registers
                              1. General-purpose registers
                                1. Special-purpose registers
                                  1. Instruction Register (IR)
                                    1. Program Counter (PC)
                                      1. Stack Pointer (SP)
                                        1. Status Register (SR)
                                      2. Function of registers in data processing
                                        1. Speed comparison with other memory elements
                                      3. CPU Performance Metrics
                                        1. Clock Speed
                                          1. Definition and measurement (GHz)
                                            1. Impact on CPU performance
                                              1. Heat and energy consumption considerations
                                              2. Instructions Per Cycle (IPC)
                                                1. Importance of IPC in evaluating CPU efficiency
                                                  1. Factors that influence IPC
                                                    1. Instruction pipeline efficiency
                                                      1. Cache effectiveness
                                                        1. Branch prediction accuracy
                                                      2. Benchmarking
                                                        1. Definition and purpose
                                                          1. Types of benchmarks (synthetic, real-world application tests)
                                                            1. Interpretation of benchmark results
                                                          2. Types of CPUs
                                                            1. CISC (Complex Instruction Set Computing)
                                                              1. Characteristics of CISC
                                                                1. Large set of instructions
                                                                  1. Multicycle instruction execution
                                                                  2. Advantages and disadvantages
                                                                    1. Applications and common CPUs
                                                                    2. RISC (Reduced Instruction Set Computing)
                                                                      1. Characteristics of RISC
                                                                        1. Small, highly optimized set of instructions
                                                                          1. Single-cycle instruction execution
                                                                          2. Advantages and disadvantages
                                                                            1. Practical implementations in modern CPUs
                                                                            2. VLIW (Very Long Instruction Word)
                                                                              1. Definition and key ideas
                                                                                1. Benefits in terms of instruction-level parallelism
                                                                                  1. Challenges associated with execution
                                                                                  2. Superscalar Processors
                                                                                    1. Definition and functioning
                                                                                      1. Role in parallel execution of instructions
                                                                                        1. Pipeline design considerations
                                                                                        2. Multicore Processors
                                                                                          1. Definition and significance
                                                                                            1. Parallel Processing
                                                                                              1. Concepts of thread-level parallelism
                                                                                                1. Benefits of parallel processing
                                                                                                  1. Models (e.g., hyper-threading, symmetric multiprocessing)
                                                                                                  2. Threading
                                                                                                    1. Role in concurrent execution
                                                                                                      1. Thread synchronization and management issues
                                                                                                    2. Microcontrollers
                                                                                                      1. Basic definition and comparison with standard CPUs
                                                                                                        1. Key features and integrated components
                                                                                                          1. Typical applications and use cases in embedded systems