Professional Documents
Culture Documents
Computer Architecture 1
Computer Architecture 1
Computer Architecture 1
Computer Architecture
Introduction
By Thilina Wanshathilaka
What is software
• Software refers to a set of instructions or programs that
enable a computer or electronic device to perform
specific tasks.
• It encompasses a wide range of applications, operating
systems, utilities, and other programs designed to meet
various user needs.
• Software acts as an intermediary between the hardware
components of a computer and the user, facilitating the
execution of tasks and the management of resources.
1
1/10/2024
Type of Software
• Application Software:
• Definition: Application software refers to programs and software designed to perform specific tasks for
end-users.
• Purpose: It serves the needs and requirements of users, providing functionality for tasks such as word
processing, spreadsheet calculations, web browsing, and gaming.
• Examples: Microsoft Word, Excel, Photoshop, web browsers, and video games are all examples of
application software.
• System Software:
• Definition: System software is a type of software that provides a platform for other software to run on
and interacts directly with computer hardware.
• Purpose: It manages hardware components and provides essential services, such as memory
management, process control, and file management, facilitating communication between software and
hardware.
• Examples: Operating systems like Windows, macOS, Linux, and Unix are examples of system software.
Type of Software
• Firmware:
• Definition: Firmware is a specialized type of software that is embedded into hardware devices. It resides
in non-volatile memory and is designed to control the functionality of specific hardware components.
• Purpose: Firmware provides low-level control for the hardware it is embedded in, ensuring proper
operation and enabling communication between the hardware and higher-level software.
• Examples: Firmware can be found in devices such as routers, printers, and embedded systems like those
in household appliances and electronic gadgets.
• Programming Software:
• Definition: Programming software includes tools used by developers to create, debug, and maintain
software applications.
• Purpose: It assists programmers in writing, testing, and optimizing code. Integrated Development
Environments (IDEs) and text editors are common examples.
• Examples: Visual Studio, Eclipse, Sublime Text, and JetBrains IntelliJ IDEA are examples of programming
software
2
1/10/2024
Type of Software
• Driver Software:
• Definition: Driver software is a type of system software that facilitates communication between an
operating system and hardware devices.
• Purpose: It allows the operating system to understand and control hardware components by providing
the necessary instructions and protocols.
• Examples: Graphics drivers, printer drivers, and audio drivers are common examples of driver software.
• Utility Software:
• Definition: Utility software consists of programs designed to perform specific tasks related to the
maintenance and optimization of a computer system.
• Purpose: It enhances the performance, security, and usability of the computer by carrying out tasks such
as disk cleanup, antivirus scanning, and system optimization.
• Examples: Antivirus software, disk cleanup tools, backup utilities, and system monitoring tools are
examples of utility software.
Entertainment Firmware
Software
Programming Software
Utility Software
3
1/10/2024
• User-Centric Perspective:
• Information systems exist to serve human needs. Human operators ensure that
these systems align with user requirements, providing a user-centric approach to
system design, implementation, and maintenance.
• Adaptability and Problem Solving:
• Human operators bring adaptability and problem-solving skills to information
systems. They can respond to unexpected challenges, troubleshoot issues, and
implement solutions that automated processes might struggle to handle.
• Decision-Making and Critical Thinking:
• Complex decision-making and critical thinking are inherent to managing
information systems. Human operators bring contextual understanding, intuition,
and a nuanced perspective, contributing to strategic decision-making in system
operations.
• System Optimization:
• Human operators play a key role in optimizing system performance. They
can analyze system metrics, identify bottlenecks, and implement
enhancements to ensure efficient and effective information processing.
• Security and Compliance:
• Information systems often handle sensitive data. Human operators are
crucial for ensuring the security and compliance of systems, implementing
access controls, encryption, and other security measures to safeguard
information.
Human-Computer Interaction
• Usability and User Experience (UX):
• Human-computer interaction focuses on designing systems that are intuitive, user-friendly, and aligned
with human cognitive capabilities. Human operators contribute by providing feedback on system
usability, leading to iterative improvements.
• Interface Design and Accessibility:
• Human operators play a role in interface design, ensuring that system interfaces are accessible and
accommodating to users with diverse needs. This includes considerations for accessibility standards and
inclusive design practices.
• Feedback Mechanisms:
• Effective human-computer interaction involves providing meaningful feedback to users. Human
operators contribute by shaping how the system communicates with users, making alerts, notifications,
and feedback more informative and actionable.
• Continuous Improvement:
• Human operators engage in continuous improvement efforts for user interfaces and interactions. They
provide insights into user preferences, pain points, and emerging needs, facilitating the evolution of
information systems over time.
4
1/10/2024
Stored Program
5
1/10/2024
Control
Unit
Program Interpreter
Java Bytecode
ALU
Register
Python
Instruction 1 5A001
Control Unit
2 3 Operand 5A002
Program Counter 5A001
Program Counter 5A002
Instruction 2 5A003
Register
6
1/10/2024
Program Counter
• Function:
• The Program Counter is a special-purpose register in control unit that keeps track of the memory address of the next
instruction to be fetched and executed.
• Role in Fetch-Decode-Execute Cycle:
• During the Fetch-Decode-Execute cycle, the PC is used to fetch the next instruction from memory by providing the
address of the instruction in memory.
• Incrementing:
• After each instruction is fetched, the PC is typically incremented to point to the next sequential memory address,
preparing for the next instruction.
• Control Flow:
• The PC is crucial for managing the control flow of a program. Control flow instructions, such as branches or jumps, can
modify the value in the PC, leading to changes in the sequence of executed instructions.
• Branching and Subroutine Calls:
• Branching instructions alter the value in the PC to redirect the flow of execution.
• During subroutine calls, the return address (the address to resume execution after the subroutine completes) is often
stored in the PC.
Instruction Register
• Function:
• The Instruction Register is a special-purpose register that temporarily holds the current instruction being executed or
about to be executed.
• Role in Fetch-Decode-Execute Cycle:
• During the Fetch-Decode-Execute cycle, the CPU fetches the next instruction from memory and loads it into the IR.
• The instruction stored in the IR is then decoded to determine the operation to be performed and the operands
involved.
• Temporary Storage:
• The IR serves as a temporary storage location for the machine code instruction, allowing the CPU to perform decoding
and execution operations.
• Control Flow:
• The contents of the IR influence the control flow of the program. Control flow instructions, such as branches or jumps,
may modify the PC based on the decoded instruction.
• Incrementing the Program Counter:
• After an instruction is fetched and loaded into the IR, the PC is typically incremented to point to the next sequential
memory address for the next instruction.
Data Register
• Function:
• Data Registers (also known as Data or General Purpose Registers) are registers that hold data that the
CPU is currently processing or manipulating.
• Role in Arithmetic and Logic Operations:
• During arithmetic and logic operations, the CPU loads data from memory into a Data Register, performs
the operation, and may store the result back in the register.
• Temporary Storage for Intermediate Values:
• Data Registers serve as temporary storage for intermediate values during computations. For example, in
an addition operation, the sum might be temporarily stored in a Data Register.
• Role in Data Movement:
• Data Registers play a crucial role in data movement operations, such as loading data from memory or
storing data back to memory.
• Multiple Registers:
• Modern CPUs often have multiple Data Registers, allowing for parallel execution of instructions and
enhancing performance.
7
1/10/2024
Any Questions ?
THANK YOU
End Of Session 2