NAME : BELLO JAMIU MUHAMMAD
MATRIC NO : FUO/22/0218
COURSE CODE : CPS 206
ASSIGNMENT 2
Hardware Components:
Processor (CPU):
The processor, also known as the Central Processing Unit (CPU), serves as the brain
of the computer. It executes instructions and performs calculations to carry out
various tasks. Within the CPU, there are essential components such as the
Arithmetic Logic Unit (ALU), which handles arithmetic and logic operations, and the
Control Unit (CU), responsible for coordinating and managing the execution of
instructions. Registers are small, fast memory units used to store data temporarily
during processing. Key metrics used to evaluate CPU performance include clock
speed, which determines the number of instructions processed per second, the
number of cores, enabling parallel processing, and cache size, enhancing data access
speeds.
Core components:
(i). ALU
(ii). Control Unit
(iii). Registers
Performance metrics:
(i). Clock speed
(ii). Number of cores
(iii). Cache size
Memory:
Memory plays a crucial role in storing data and instructions temporarily while the
computer is in operation. Random Access Memory (RAM) provides volatile storage, allowing
fast access to data and programs currently in use by the CPU. Read-Only Memory (ROM)
stores essential firmware and BIOS information, ensuring that critical system instructions
are retained even when the power is turned off.
Types:
(i). (Random Access Memory)
(ii). ROM (Read-Only Memory)
1
BUS
The bus is a communication pathway that enables the transfer of data between different
components within the computer. It consists of several types, including the Data bus, which
carries data between the CPU, memory, and peripherals, the Address bus, responsible for
specifying memory addresses, and the Control bus, which manages the control signals for
synchronizing activities among components. The bus system plays a vital role in facilitating
efficient data transfer and coordination within the computer system.
Types:
(i). Data bus
(ii). Address bus
(iii). Control bus
Secondary Storage:
Secondary storage provides non-volatile storage for long-term retention of data and
programs. Unlike primary memory (RAM), secondary storage retains data even when the
power is turned off. Examples of secondary storage devices include Hard Disk Drives (HDDs),
which store data magnetically on rotating disks, Solid State Drives (SSDs), which use flash
memory for faster access speeds, and Optical Discs such as CDs and DVDs.
Examples include: Hard Disk Drives (HDD), Solid State Drives (SSD), Optical Discs
Clocks:
Clocks play a crucial role in synchronizing operations within the CPU and other components
of the computer system. The clock speed, measured in Hertz (Hz) or Gigahertz (GHz),
determines the rate at which the CPU executes instructions. Higher clock speeds result in
faster processing, while lower clock speeds may lead to slower performance. Clocks ensure
the coordination and synchronization of activities among various components, contributing
to the overall efficiency of the system.
Note: Clock speed measured in Hertz (Hz) or Gigahertz (GHz)
Peripheral Devices:
Peripheral devices are input/output devices that connect to the computer to facilitate user
interaction and data exchange. These devices include input devices such as keyboards and
mice, output devices such as monitors and printers, and communication devices like
modems and network cards. Peripheral devices enhance the functionality and usability of
the computer system by enabling users to input data, receive output, and communicate
with external devices or networks.
2
⦁ Input Devices: Keyboard, Mouse
⦁ Output Devices: Monitor, Printer
⦁ Communication Devices: Modems, Network Interface Cards (NICs)
Software Overview:
Machine Language:
Machine language is the lowest-level programming language understood by computers. It
consists of binary code, represented by sequences of 0s and 1s, corresponding to specific
machine instructions. Each instruction performs a particular operation, such as arithmetic
calculations or data movement. Machine language programs are directly executable by the
CPU, making them essential for computer operation.
Assembly Language:
Assembly language is a low-level programming language that uses mnemonic codes to
represent machine instructions. These mnemonic codes are easier to understand and
remember than the binary representation used in machine language. Assembly language
programs are converted into machine code using an assembler. While assembly language
provides more readability than machine language, it still requires a deep understanding of
computer architecture and instruction set.
High-Level Language:
High-level languages are programming languages that abstract away from machine code,
providing a more human-readable and understandable syntax. These languages include
constructs such as variables, functions, and control structures, making programming more
accessible and intuitive for developers. High-level languages like C, Python, Java, and
JavaScript are closer to natural language and allow for faster development and easier
maintenance of software projects.
NOTE::
Understanding the different layers of software abstraction, from machine language to
high-level languages, is essential for software development and programming. Each layer
offers varying levels of complexity and abstraction, catering to different programming needs
and preferences. Whether writing low-level code for hardware interaction or high-level
code for application development, understanding the underlying principles of software
architecture is crucial for building robust and efficient software systems.