Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4
COMPUTER ARCHITECTURE
Computer architecture is the design and organization of the fundamental components in a
computer system, defining how they interact to perform tasks. It includes the structure and functionality of the processor, memory hierarchy, input/output (I/O) systems, and the interconnection between components. 1.Central Processing Unit (CPU): The CPU, also referred to as the “central” or “main” processor, is a complex set of electronic circuitry that runs the machine’s operating system and apps. Control Unit (CU): The control unit orchestrates the fetching, decoding, and execution of instructions. It determines the flow of data between the CPU and other components by interpreting the commands in the instruction set and signaling the ALU, registers, and other parts to perform tasks in sequence. Arithmetic Logic Unit (ALU): Executes arithmetic and logic operations. Registers: These are Small, fast storage locations within the CPU for immediate data processing. There are different types of registers, such as data registers (to store operands), address registers (to store memory addresses), and special-purpose registers like the program counter (PC) that keeps track of instruction execution. Cache Memory: Cache is a small, high-speed memory between the CPU and main memory, storing frequently accessed data to reduce latency. It’s usually divided into levels: L1 Cache: Closest to the CPU, with the smallest size and highest speed. L2 Cache: Larger and slightly slower, usually shared by multiple cores. L3 Cache: Further from the core but larger in size, often shared across cores in multi-core processors. 2.Memory Hierarchy: The memory hierarchy is organized to minimize access time, with each level being progressively larger and slower: Registers, Cache, Main Memory: RAM holds data and programs actively in use. It’s volatile, meaning data is lost when power is turned off. RAM’s speed impacts overall system performance, as it feeds instructions and data to the CPU cache. Secondary Storage (SSD, HDD): These are non-volatile memory types that store data long-term. Solid State Drives (SSDs) are faster than Hard Disk Drives (HDDs) due to their lack of moving parts, making SSDs essential in modern systems, especially where fast data access is crucial. 3. Input/Output (I/O) System: The I/O system manages the exchange of data between the computer and external devices (e.g., keyboards, displays, storage drives). The I/O subsystem includes components such as: I/O Controllers: Specialized processors that manage communication with peripheral devices. Buses: Buses carry data between the CPU, memory, and I/O devices. Types of buses include: Address Bus: Carries memory addresses from the CPU to other components. Data Bus: Transports actual data between the CPU, memory, and I/O. Control Bus: Transmits control signals like read/write commands. 4. Bus Architecture: Buses are essential for data flow and often have a significant impact on system performance. Modern systems use high-speed buses like PCIe (Peripheral Component Interconnect Express), allowing high bandwidth communication for devices like GPUs, SSDs, and network cards. 5. Instruction Set Architecture (ISA): An ISA is the set of instructions that the CPU can execute. Different ISAs provide unique benefits: CISC (Complex Instruction Set Computing): CISC architectures have many complex instructions, each potentially performing multiple operations. This reduces the number of instructions a program needs but can increase decoding complexity. It’s typically found in older architectures like x86. RISC (Reduced Instruction Set Computing): RISC architectures focus on simpler instructions, each completing in a single cycle. This approach simplifies the CPU design and speeds up processing, making RISC common in modern designs (e.g., ARM processors used in mobile devices). Modern Extensions: Many CPUs today combine aspects of RISC and CISC, with extensions like SIMD (Single Instruction, Multiple Data) and vector processing to handle multimedia, graphics, and scientific computations. 6.Pipeline and Parallelism: Techniques to improve CPU efficiency and speed, such as dividing tasks into pipeline stages or employing multiple processors to execute instructions simultaneously. In the context of memory and storage, specific architectural elements are critical: Memory Controller: Manages data flow between the CPU and memory, optimizing for speed and efficiency. Error Correction: Techniques like ECC (Error Correction Code) detect and correct errors in memory, crucial in applications requiring high reliability. Non-Volatile Memory Architecture: Architectures like NAND flash and NOR flash are designed with durability and low power in mind, especially important in ASICs for storage. Trends and Developments Modern computer architecture is also increasingly focused on areas such as low-power design, the incorporation of specialized processing units (like GPUs and TPUs), and support for AI and machine learning tasks. A Graphics Processing Unit (GPU) is a specialized processor optimized for parallel computing, essential for rendering graphics, and widely used in applications like artificial intelligence, scientific computing, and data analytics. Core Components of a GPU: Stream Processors (Cores): Thousands of simple cores handle multiple tasks concurrently, ideal for parallel processing. Memory (VRAM): Dedicated high-speed memory (like GDDR or HBM) stores data for rapid access, optimized for graphics and compute workloads. Warp/Thread Scheduler: Manages threads by grouping them into "warps," efficiently distributing work across cores. GPU vs. CPU: While CPUs are optimized for sequential, single-threaded tasks and low-latency execution, GPUs excel at handling parallel tasks and high-throughput computing: Parallelism: GPUs have many small cores, ideal for parallel tasks (e.g., image processing, neural networks). Throughput Focus: Optimized for high data volume (throughput) rather than low-latency, single- task execution. Key GPU Technologies: CUDA(Compute Unified Device Architecture): NVIDIA's API enabling general-purpose parallel processing on GPUs. OpenCL (Open Computing Language): Open standard for running code on various GPUs, CPUs, and FPGAs. Trends and Future Directions: AI-Specific Enhancements: Increasing AI cores (like Tensor Cores) for efficient neural network processing.
OPERATING SYSTEM FUNDAMENTALS
Operating System (OS) Fundamentals focus on the essential concepts and functions of an OS, which acts as an intermediary between hardware and software, managing system resources and providing a user interface. 1. An OS is system software that: Manages Hardware Resources: CPU, memory, storage, I/O devices. Provides Services: Interfaces for running applications and enabling user interaction. Ensures Efficient Operation: Optimizes resource usage, ensuring multitasking and responsiveness. 2. Functions of an Operating System: a. Process Management: Processes: An instance of a running program. Tasks: Scheduling, Assigns CPU time to processes. Context Switching, Switches between processes efficiently. Inter- Process Communication (IPC), Allows processes to share data. b. Memory Management: Allocating memory to processes, Ensuring safe memory access, Using virtual memory for efficient utilization. Techniques: Paging, Divides memory into fixed-size blocks. Segmentation, Divides memory into variable-size blocks based on logical divisions. c. File System Management: Manages data storage and retrieval on devices like HDDs, SSDs, etc., Organizes data into files and directories, Tracks file metadata (permissions, ownership, size). d. Device Management: Manages communication with peripheral devices through device drivers. Handles I/O operations using buffers, queues, and interrupts. e. User Interface: Provides a command-line interface (CLI) or graphical user interface (GUI) for interaction. Examples: Linux (CLI), Windows (GUI). 3. Types of Operating Systems: Batch OS, Time-Sharing OS, Real-Time OS (RTOS, Distributed OS, Embedded OS. 4. OS Architectures: Monolithic Kernel, Microkernel, Hybrid Kernel. Examples of Modern Operating Systems: Windows: General-purpose OS with a GUI. Linux: Open-source, widely used in servers and embedded systems. MacOS: UNIX-based OS optimized for Apple hardware. Android/iOS: Mobile operating systems with touch-based interfaces. RTOS: VxWorks, FreeRTOS for real-time applications. 7. Importance of Operating Systems: Facilitates hardware-software interaction. Ensures efficient resource utilization. Provides security and stability. Supports multitasking and user convenience.