CMP 298 Computer Hardware Systems
CMP 298 Computer Hardware Systems
CMP 298 Computer Hardware Systems
I. INTRODUCTION
A. Definition of a Computer System
A computer system is a combination of hardware and software components that work
together to perform various tasks and process data.
B. Importance of Understanding Computer Systems
Understanding computer systems is of paramount importance in today's digital age for a
variety of reasons:
1. Ubiquity of Computers: Computers are everywhere, from smartphones to laptops,
tablets, and even embedded systems in everyday objects. Understanding computer
systems allows individuals to interact with and use these devices effectively.
2. Career Opportunities: Many professions require a fundamental understanding of
computer systems. Whether you are in IT, programming, data analysis, or digital
marketing, a strong grasp of computer systems is crucial for success.
3. Problem Solving: Computer systems thinking can help individuals solve complex
problems, breaking them down into manageable components and developing efficient
solutions. This skill is valuable in various fields.
4. Informed Decision-Making: When purchasing hardware or software, understanding
computer systems enables individuals to make informed decisions. This can save
money, enhance productivity, and ensure compatibility.
5. Digital Literacy: In a world driven by technology, digital literacy is essential.
Understanding computer systems empowers individuals to use digital tools, navigate
the internet safely, and protect their digital identity.
6. Critical Thinking: Computer systems require logical thinking and attention to detail.
These skills are transferable to many aspects of life and are valuable for decision-
making, problem-solving, and innovation.
7. Innovation and Creativity: A strong understanding of computer systems can foster
innovation. It allows individuals to create software, develop applications, and
implement new technologies, contributing to progress in various fields.
8. Cybersecurity: With the growing threat of cyberattacks, understanding computer
systems is crucial for safeguarding personal and organizational data. It enables
individuals to recognize and mitigate security risks.
9. Communication: In a globally connected world, computer systems enable
communication and collaboration. Understanding them can improve communication
and teamwork through digital tools and platforms.
10. Educational Advancement: Many educational institutions incorporate technology
into their curricula. Understanding computer systems can help students excel in their
studies and adapt to changing educational methods.
11. Societal Impact: Computer systems play a significant role in societal development,
affecting areas such as healthcare, finance, transportation, and entertainment. An
understanding of these systems is crucial for informed participation in discussions on
these topics.
12. Personal Empowerment: Knowing how computer systems work empowers
individuals to take control of their digital lives, troubleshoot problems, and adapt to
new technologies as they emerge.
13. Future-Proofing: As technology advances, those who understand computer systems
will be better prepared for the challenges and opportunities of the future job market.
In Summary, It is important the following ways:
In today's digital age, computer systems are ubiquitous and essential for various
aspects of our lives, from personal to professional.
Understanding computer systems is fundamental for anyone working with technology,
from IT professionals to everyday users.
It provides the basis for understanding how computers work, making informed
decisions about hardware and software, and troubleshooting issues.
There are technically two types of computer memory: primary and secondary.
The term memory is used as a synonym for primary memory or as an
abbreviation for a specific type of primary memory called random access
memory (RAM). This type of memory is located on microchips that are
physically close to a computer's microprocessor.
Memory is most often referred to as the primary storage on a computer, such as RAM.
Memory is also where information is processed. It enables users to access data that is stored
for a short time. The data is only stored for a short time because primary memory is volatile,
meaning it isn't retained when the computer is turned off.
The term storage refers to secondary memory and is where data in a computer is kept. An
example of storage is a hard drive or a hard disk drive (HDD). Storage is nonvolatile,
meaning the information is still there after the computer is turned off and then back on. A
running program may be in a computer's primary memory when in use -- for fast retrieval of
information -- but when that program is closed, it resides in secondary memory or storage.
How much space is available in memory and storage differs as well. In general, a computer
will have more storage space than memory. For example, a laptop may have 8 GB of RAM
while having 250 GB of storage. The difference in space is there because a computer will not
need fast access to all the information stored on it at once, so allocating approximately 8 GB
of space to run programs will suffice.
The terms memory and storage can be confusing because their usage today is not always
consistent. For example, RAM can be referred to as primary storage -- and types of secondary
storage can include flash memory. To avoid confusion, it can be easier to talk about memory
in terms of whether it is volatile or nonvolatile -- and storage in terms of whether it is primary
or secondary.
Memory is volatile, which means that data in memory is stored temporarily. Once a
computing device is turned off, data stored in volatile memory will automatically be deleted.
When a file is saved, it will be sent to secondary memory for storage.
There are multiple types of memory available to a computer. It will operate differently
depending on the type of primary memory used, but in general, semiconductor-based memory
is most associated with memory. Semiconductor memory will be made of integrated circuits
with silicon-based metal-oxide-semiconductor (MOS) transistors.
Cache memory. This temporary storage area, known as a cache, is more readily available to
the processor than the computer's main memory source. It is also called CPU memory
because it is typically integrated directly into the CPU chip or placed on a separate chip with
a bus interconnect with the CPU.
RAM. The term is based on the fact that any storage location can be accessed directly by the
processor.
Dynamic RAM. DRAM is a type of semiconductor memory that is typically used by the data
or program code needed by a computer processor to function.
Static RAM. SRAM retains data bits in its memory for as long as power is supplied to it.
Unlike DRAM, which stores bits in cells consisting of a capacitor and a transistor, SRAM
does not have to be periodically refreshed.
Double Data Rate SDRAM. DDR SRAM is SDRAM that can theoretically improve memory
clock speed to at least 200 MHz.
Double Data Rate 4 Synchronous Dynamic RAM. DDR4 RAM is a type of DRAM that has a
high-bandwidth interface and is the successor to its previous DDR2 and DDR3 versions.
DDR4 RAM allows for lower voltage requirements and higher module density. It is coupled
with higher data rate transfer speeds and allows for dual in-line memory modules (DIMMS)
up to 64 GB.
Rambus Dynamic RAM. DRDRAM is a memory subsystem that promised to transfer up to
1.6 billion bytes per second. The subsystem consists of RAM, the RAM controller, the bus
that connects RAM to the microprocessor and devices in the computer that use it.
Read-only memory. ROM is a type of computer storage containing nonvolatile, permanent
data that, normally, can only be read and not written to. ROM contains the programming that
enables a computer to start up or regenerate each time it is turned on.
Programmable ROM. PROM is ROM that can be modified once by a user. It enables a user
to tailor a microcode program using a special machine called a PROM programmer.
Erasable PROM. EPROM is programmable read-only memory PROM that can be erased and
re-used. Erasure is caused by shining an intense ultraviolet light through a window designed
into the memory chip.
Electrically erasable PROM. EEPROM is a user-modifiable ROM that can be erased and
reprogrammed repeatedly through the application of higher than normal electrical voltage.
Unlike EPROM chips, EEPROMs do not need to be removed from the computer to be
modified. However, an EEPROM chip must be erased and reprogrammed in its entirety, not
selectively.
Virtual memory. A memory management technique where secondary memory can be used as
if it were a part of the main memory. Virtual memory uses hardware and software to enable a
computer to compensate for physical memory shortages by temporarily transferring data from
RAM to disk storage.
3. INPUT DEVICES
Examples: keyboard, mouse, touchscreen, microphone, etc.
In computing, an input device is a piece of equipment used to provide data and
control signals to an information processing system, such as a computer or
information appliance. Examples of input devices include keyboards, mouse,
scanners, cameras, joysticks, and microphones.
Input devices can be categorized based on:
Modality of input (e.g., mechanical motion, audio, visual, etc.)
whether the input is discrete (e.g., pressing of key) or continuous (e.g., a mouse's
position, though digitized into a discrete quantity, is fast enough to be considered
continuous)
the number of degrees of freedom involved (e.g., two-dimensional traditional
mice, or three-dimensional navigators designed for CAD applications)
Keyboard
A keyboard is a human interface device which is represented as a matrix of
buttons. Each button, or key, can be used to either input an alphanumeric character
to a computer, or to call upon a particular function of the computer. It acts as the
main text entry interface for most users.
Types
Keyboards are available in many form factors, depending on the use case.
Standard keyboards can be categorized by its size and number of keys, and the
type of switch it employs. Other keyboards cater to specific use cases, such as a
numeric keypad or a keyer.
Desktop keyboards are typically large, often have full key travel distance, and
features such as multimedia keys and a numeric keypad. Keyboards on laptops
and tablets typically compromise on comfort to achieve a thin figure.
There are various switch technologies used in modern keyboards, such as
mechanical switches (which use springs), scissor switches (usually found on a
laptop keyboard), or a membrane.
Other keyboards do not have physical keys, such as a virtual keyboard, or a
projection keyboard.
Ergonomic keyboard
A keyboard placing design emphasis on ergonomics and comfort.
Chorded keyboard
A keyboard used by pressing several keys together.
Thumb keyboard
A miniature keyboard found in PDAs and mobile phones.
Keyer
A chorded keyboard without the board.
Numeric keypad
While some keyboards include one (commonly found on the right side), numeric
keypads can be found as independent devices.
POINTING DEVICE
A pointing device allows a user to input spatial data to a computer. It is commonly
used as a simple and intuitive way to select items on a computer screen on a
graphical user interface (GUI), either by moving a mouse pointer, or, in the case
of a touch screen, by physically touching the item on screen. Common pointing
devices include mice, touchpads, and touch screens.
Whereas mice operate by detecting their displacement on a surface, analog
devices, such as 3D mice, joysticks, or pointing sticks, function by reporting their
angle of deflection.
Types
Pointing devices can be classified on:
Whether the input is direct or indirect. With direct input, the input space coincides
with the display space, i.e. pointing is done in the space where visual feedback or
the pointer appears. Touchscreens and light pens involve direct input. Examples
involving indirect input include the mouse and trackball.[3]
Whether the positional information is absolute (e.g. on a touch screen) or relative
(e.g., with a mouse that can be lifted and repositioned)
Direct input is almost necessarily absolute, but indirect input may be either
absolute or relative. For example, digitizing graphics tablets that do not have an
embedded screen involve indirect input and sense absolute positions and are often
run in an absolute input mode, but they may also be set up to simulate a relative
input mode like that of a touchpad, where the stylus or puck can be lifted and
repositioned. Embedded LCD tablets, which are also referred to as graphics tablet
monitors, are the extension of digitizing graphics tablets. They enable users to see
the real-time positions via the screen while being used.
Mouse
A hand-held pointing device that is moved across a surface.
Touchpad or Trackpad
A flat surface operated by moving a finger across its surface.
Touch screen
A layer placed over a computer screen, used by physically touching it.
Trackball
Similar to a mouse, a trackball has a ball held by a socket. Instead of moving the
mouse, the user rolls the ball with their finger.
Graphics tablet, digitizer, or drawing tablet
A flat surface on which a pen is used, usually to draw images or capture
signatures.
A large-format graphic tablet by manufacturer Summagraphics (OEM'd to
Gerber): The puck's external copper coil can be clearly seen. Note using of a
Digitizer mouse with a magnifying glass
A large-format graphic tablet by manufacturer Summagraphics (OEM'd to
Gerber): The puck's external copper coil can be clearly seen. Note using of a
Digitizer mouse with a magnifying glass
SENSORS
A sensor is an input device which produces data based on physical properties.
Sensors are commonly found in mobile devices to detect their physical orientation and
acceleration, but may also be found in desktop computers in the form of a thermometer used
to monitor system temperature.
Types
a Accelerometer
Detects acceleration.
b. Gyroscope
Detects spatial orientation.
c. Magnetometer
Similar to a compass, a magnetometer senses magnetic heading.
d. Proximity sensor
Detects whether an object is in proximity.
e. Barometer
Measures atmospheric pressure. May be used to determine elevation above sea
level.
f. Ultrasonic transducer
Detects movement and range of objects using ultrasound.
g. LIDAR
Detects the range of objects using laser.
h. Thermometer
Measures temperature. Usually uses a thermistor or thermocouple.
i. An infrared proximity sensor used in a smartphone allows it to turn off its screen
when held up to the user's ear.
j. An infrared proximity sensor used in a smartphone allows it to turn off its screen
when held up to the user's ear.
Some sensors can be built with MEMS, which allows them to be microscopic in size.
COMPOSITE DEVICES
Input devices, such as buttons and joysticks, can be combined on a single physical device that
could be thought of as a composite device. Many gaming devices have controllers like this.
Technically mice are composite devices, as they both track movement and provide buttons
for clicking, but composite devices are generally considered to have more than two different
forms of input.
Types
a. Joystick
Consists of a stick pivoting on a stationary base.
b. Gamepad, or joypad
Hand held device often used to play modern video games.
c. Paddle
A paddle could be a game controller consisting of a dial and a button, or an input
device such as a Griffin PowerMate[5] or a Microsoft Surface Dial.
d. Racing wheel
An imitation steering wheel that can be used to play racing video games.
e. Wii Remote
A remote control used with the Nintendo Wii video game console which
integrates an accelerometer and pointing capabilities.
VIDEO INPUT DEVICES
Video input devices are used to digitize images or video from the outside world into the
computer. The information can be stored in a multitude of formats depending on the user's
requirement.
Many video input devices use a camera sensor.
Types
Digital camera
Digital camcorder
Portable media player
Webcam
Microsoft Kinect Sensor
Image scanner
Fingerprint scanner
Barcode reader
3D scanner
Laser rangefinder
Eye gaze tracker
VOICE RECORDER
Voice input devices are used to capture sound. In some cases, an audio output device can be
used as an input device, in order to capture produced sound. Audio input devices allow a user
to send audio info to a computer for processing, recording, or carrying out commands.
Devices such as microphones allow users to speak to the computer in order to record a voice
message or navigate software. Aside from recording, audio input devices are also used with
speech recognition software.
Types
Microphones
MIDI keyboard or other digital musical instrument
Punched paper
Punched cards and punched tapes were used often in the 20th century. A punched hole
represented a one; its absence represented a zero. A mechanical or optical reader was
used to input a punched card or tape.
4. OUTPUT DEVICES
Examples: monitor, printer, speakers, etc.
5. Motherboard
The main circuit board that connects and facilitates communication between
various hardware components.
6. Expansion Cards
Additional hardware components like graphics cards, sound cards, and
network cards.
B. Software Components
1. Operating System (OS)
Manages hardware resources, provides a user interface, and supports
application software.
2. Application Software
Programs designed for specific tasks (e.g., word processors, web browsers,
games).
3. Firmware
Software stored in hardware components like BIOS, which initiates the boot
process.
III. Computer Architecture
A. Von Neumann Architecture
A theoretical framework for computer design characterized by the separation of data
and instructions, use of a central processing unit, and a stored-program concept.
The key characteristics of the Von Neumann Architecture are:
Stored-Program Concept: Programs and data are stored in the same memory, and both
are treated as sequences of binary values. This allows programs to be easily loaded,
modified, and executed.
Sequential Execution: Instructions are executed one at a time in a sequential manner,
which is controlled by the Control Unit. This sequential execution is the foundation of
the "fetch-decode-execute" cycle.
Single Memory for Data and Instructions: Both data and program instructions are
stored in the same memory, which simplifies the design of the computer but can lead
to potential bottlenecks when fetching data and instructions from memory.
While the Von Neumann Architecture has been a foundational concept in computing,
modern computers have evolved to include multiple processing cores, complex
memory hierarchies, and various specialized components to enhance performance and
efficiency. However, the Von Neumann model's fundamental principles, such as the
stored-program concept and the separation of data and instructions, remain influential
in computer system design and architecture.
B. Modern Computer Architectures
Contemporary computer systems often utilize multiple processors or cores, complex
memory hierarchies, and a variety of specialized hardware accelerators.
Modern computer architectures have evolved significantly from the classical Von
Neumann model, adapting to meet the growing demands of computing tasks and
emerging technologies. These architectures are designed to optimize performance,
power efficiency, and scalability. Here, we'll discuss some key features and types of
modern computer architectures:
Complex Instruction Set Computer (CISC) and Reduced Instruction Set Computer
(RISC) architectures offer different approaches to instruction sets.
CISC architectures, like x86, have complex instructions that can perform multiple
operations, while RISC architectures, like ARM, use simpler, more specialized
instructions.
RISC architectures tend to be more power-efficient and are prevalent in mobile
devices.
4. Superscalar and VLIW Architectures:
Vector processors and Single Instruction, Multiple Data (SIMD) architectures are
designed to perform the same operation on multiple data elements simultaneously.
These architectures are prevalent in scientific computing and multimedia applications.
7. Graphics Processing Units (GPUs):
GPUs are highly parallel processors designed for rendering graphics and performing
general-purpose computing tasks.
They are widely used in gaming, artificial intelligence, scientific simulations, and
more.
8. Heterogeneous Architectures:
Quantum computing represents a novel paradigm in which quantum bits or qubits are
used to perform quantum operations.
Quantum computers have the potential to revolutionize certain computational tasks,
particularly in cryptography and optimization.
10. Cloud Computing Architectures:
In cloud computing, data centers house a large number of interconnected servers and
storage systems.
Virtualization and distributed architectures are used to optimize resource allocation
and scalability.
11. Neuromorphic Computing:
Neuromorphic computing is inspired by the human brain's structure and function.
It aims to develop hardware and software systems that mimic neural networks for
tasks like pattern recognition and machine learning.
12. Edge Computing:
Edge computing involves processing data closer to the source of data generation,
reducing latency and improving real-time data analysis.
It's essential for applications like IoT and autonomous vehicles.
Modern computer architectures are dynamic and continuously evolving to address the
growing demand for computational power, energy efficiency, and specialized
processing needs. Understanding these architectures is crucial for computer scientists,
engineers, and software developers to make informed decisions and optimize their
applications for various computing environments.
IV. Operating Systems
A. Functions of an Operating System
1. Process Management
2. Memory Management
3. File System Management
4. Device Management
5. User Interface
6. Security and Access Control
B. Common Operating Systems
Examples: Windows, macOS, Linux, iOS, Android.
V. Computer System Performance
Computer system performance refers to the ability of a computer or computing system to
execute tasks, process data, and complete operations efficiently and effectively. It is a critical
aspect of computing, as it directly impacts the user experience, productivity, and the ability to
meet specific computing requirements. Performance can be assessed through various metrics
and is influenced by several factors. Here's a detailed discussion of computer system
performance:
Key Metrics for Computer System Performance:
CPU Clock Speed: This measures how quickly the central processing unit (CPU) executes
instructions. It is typically expressed in gigahertz (GHz). Higher clock speeds indicate faster
performance.
Throughput: Throughput measures the number of tasks or data units a system can process
within a specific time frame. It's often used in the context of data transfer rates, network
bandwidth, and storage read/write speeds.
Response Time: Response time, also known as latency, measures the time it takes for a
system to respond to a user's input. Lower response times indicate more responsive systems.
Execution Time: Execution time measures the total time taken to complete a specific task or
program. It's an important metric for evaluating the efficiency of algorithms and software.
Bandwidth: Bandwidth refers to the data transfer rate of a communication channel or data
bus. Higher bandwidth allows for the efficient transfer of data between components.
Hardware Capabilities:
CPU Performance: Faster CPUs with multiple cores can execute instructions more quickly.
Memory (RAM): Sufficient RAM allows for smoother multitasking and faster data access.
Storage Type: Solid-State Drives (SSDs) are faster than traditional Hard Disk Drives
(HDDs).
Graphics Processing Unit (GPU): GPUs accelerate graphics rendering and certain
computational tasks.
Network Hardware: Network components affect data transfer rates and latency.
Software Efficiency:
Software plays a significant role in performance. Well-optimized software runs faster and
consumes fewer system resources.
Efficient algorithms can reduce execution time and improve overall system performance.
Regular software updates can include performance enhancements and bug fixes.
Workload:
The type and intensity of tasks being performed affect performance. Running resource-
intensive applications can slow down the system.
Workload distribution across CPU cores or nodes in a distributed system can impact
efficiency.
Resource Management:
Effective resource management, such as task scheduling, memory allocation, and load
balancing, can optimize system performance.
Virtualization and containerization technologies help allocate resources more efficiently in
cloud and data center environments.
Caching:
Caches, such as CPU caches and web browser caches, store frequently used data, reducing
the need to fetch data from slower memory or storage, which can significantly boost
performance.
Parallelism:
Parallel processing, where multiple tasks are executed simultaneously, can improve
throughput and reduce execution time.
Multithreading and parallel programming techniques take advantage of multicore CPUs and
distributed computing.
I/O Operations:
Efficient I/O operations (reading and writing data) are crucial. Slow I/O can be a bottleneck
in system performance.
Networking:
In networked systems, network performance is crucial. Low latency and high bandwidth are
essential for responsive and efficient communication.
Scalability:
Scalable systems can handle increased workloads by adding more resources or nodes.
Scalability is essential for large-scale applications and services.
Power Efficiency:
Power-efficient components and system designs are crucial, especially in mobile devices and
data centers, as they impact both performance and operational costs.
Understanding computer system performance and the factors that influence it is vital for
computer professionals, system administrators, and software developers. By optimizing
hardware, software, and workloads, individuals and organizations can ensure that their
computer systems operate at their best, meeting user needs efficiently and cost-effectively.
A. Key Metrics
1. CPU Clock Speed
2. Throughput
3. Response Time
4. Latency
5. Bandwidth
B. Factors Affecting Performance
1. Hardware Capabilities
2. Software Efficiency
3. Workload
VI. Computer Security
A. Importance of Computer Security
Protecting computer systems from various threats, including viruses, malware, and
unauthorized access, is crucial.
B. Security Measures
Antivirus software, firewalls, encryption, strong authentication, and regular updates.
VII. Conclusion
A. Recap of Key Points
Understanding computer systems is essential in the digital age for both personal and
professional purposes.
B. Future Trends
Ongoing advancements in computer hardware, software, and AI will continue to
shape the field of computer systems.