Computer Architecture Fatsum
Computer Architecture Fatsum
• List out at least six input devices and explain how they work.
Keyboard: A keyboard is an input device that allows the user to input characters and commands
into a computer.
Mouse: A mouse is a pointing device that allows the user to move a cursor or pointer on the
screen.
Touchscreen: A touchscreen is an input device that allows the user to interact with a computer
by touching the screen directly.
Scanner: A scanner is an input device that allows the user to convert physical documents or
images into digital form..
Microphone: A microphone is an input device that allows the user to record audio or voice input.
Webcam: A webcam is an input device that allows the user to capture video input.
Give at least five output devices and briefly explain how they work.
Monitor: A monitor is an output device that displays visual output from a computer.
Printer: A printer is an output device that prints text or images onto physical paper.
Speakers: Speakers are output devices that play audio output from a computer.
Projector: A projector is an output device that displays visual output from a computer onto a
larger screen or surface.
Headphones: Headphones are output devices that allow the user to listen to audio output from a
computer privately.
• Basically we have FOUR different I/O devices access method. What are these
methods?
The four different I/O devices access methods are:
Programmed I/O: In this method, the CPU communicates directly with an I/O device by writing
commands and data to the device's control registers.
Interrupt-driven I/O: In this method, the CPU sends a command to the I/O device and
continues executing other instructions. When the I/O device has completed the operation, it sends
an interrupt signal to the CPU to notify it of the completion.
Direct Memory Access (DMA): In this method, a DMA controller is used to transfer data
between an I/O device and memory without involving the CPU.
Memory-mapped I/O: In this method, the I/O device is assigned a range of memory addresses,
and the CPU communicates with the device by reading and writing to those memory addresses.
When the CPU writes data to a memory-mapped I/O address, it is sent to the I/O device.
• Explain in details Polling access method with a help of a diagram.
Polling is a basic input/output (I/O) device access method used in computer systems. In this
method, the CPU repeatedly checks the status of an I/O device to determine whether it is ready to
send or receive data.
The following diagram illustrates how the polling access method works:
In this diagram, the CPU is shown on the left, and the I/O device is shown on the right. The I/O
device has two states: Ready and Busy. When the device is in the Ready state, it is ready to send
or receive data. When it is in the Busy state, it is currently performing a data transfer operation
and is not ready for another operation.
• With a help of diagram, explain clearly interrupt access method
Interrupt-driven I/O is a commonly used I/O device access method in modern computer systems.
In this method, the CPU sends a command to the I/O device to initiate a data transfer operation
and then continues executing other instructions.
The following diagram illustrates how the interrupt-driven I/O access method works:
In this diagram, the CPU is shown on the left, and the I/O device is shown on the right. The I/O
device has two states: Ready and Busy. When the device is in the Ready state, it is ready to send
or receive data. When it is in the Busy state, it is currently performing a data transfer operation
and is not ready for another operation.
The CPU communicates with the disk controller using a control bus and a data bus. The control
bus is used to send commands to the disk controller, such as requests to read or write data. The
data bus is used to transfer data between the CPU and the disk controller.
The CPU communicates with the I/O channel using a control bus and a data bus. The control bus
is used to send commands to the I/O channel, such as requests to read or write data from an
external device. The data bus is used to transfer data between the CPU and the I/O channel.
In summary, the I/O channel provides a communication path between the CPU and external
devices, allowing the CPU to transfer data to and from the external devices.
8.Explain the term IO mapping as related to I/O architecture.
I/O mapping is a technique used in computer systems to manage the communication between the
CPU and the various input/output (I/O) devices connected to the system. It involves mapping the
I/O devices to specific memory addresses in the system's memory map.
ASSIGNMENT 5
1. What is the purpose of an instruction set?
An instruction set is a collection of commands and operations that a computer processor can
understand and execute. The purpose of an instruction set is to provide a standardized set of
commands that software programs can use to communicate with the processor and perform
various tasks.
2.Describe the difference between a Reduced Instruction Set Computing (RISC) and
Complex Instruction Set Computing (CISC) architecture.
Answer/
Reduced Instruction Set Computing (RISC) architecture is designed to have a simpler instruction
set, with instructions that can be executed quickly and efficiently.
Complex Instruction Set Computing (CISC) has a larger and more complex instruction set, with
instructions that can perform multiple operations in a single instruction.
CISC RISC
Emphasis on hardware Emphasis on software
Include multi clock complex instruction Single clock reduced instruction only
Memory-to-memory “LOAD”and”STORE” Register-to-register “LOAD”and”STORE”
Small codes size Large codes size
High cycle per seconds Low cycle per second
5.Explain the concept of register renaming and how it improves processor performance.
Answer/
Register renaming is a technique used to improve the performance of a processor by
creating a new register for each logical register. This allows the processor to execute
instructions in parallel that would otherwise be stalled due to data dependencies.
Register renaming works by creating a new register for each instruction
Register renaming can significantly improve the performance of a processor. In some
cases, it can double or even triple the number of instructions that can be executed per
second.
Register renaming can also improve performance by enabling the processor to execute more
instructions simultaneously. By allowing instructions to be executed out of order and in parallel,
the processor can utilize more of its available resources, such as multiple execution units and
memory pipelines.
Special-purpose
Feature General-purpose register register
Only used for a
Purpose Can be used for any purpose specific purpose
Speed Typically faster Typically slower
Flexibility More flexible Less flexible
Number Typically more numerous Typically less numerous
9.What is a branch delay slot and how does it impact the performance of a processor?
Answer/
A branch delay slot is a technique used to improve the performance of a processor by
executing an instruction that is likely to be executed after a branch instruction.
A branch instruction is a type of instruction that causes the processor to change the
sequence of instructions that it is executing.
Branch delay slots can improve the performance of a processor by up to 50%. This is
because branches can cause a pipeline stall, which is a delay in the execution of
instructions. A pipeline stall occurs when the processor is waiting for the outcome of a
branch instruction before it can continue executing instructions.
By inserting a branch delay slot, the processor can continue executing instructions even
if the branch instruction stalls the pipeline. This is because the instruction in the branch
delay slot is likely to be executed after the branch instruction, regardless of whether the
branch is taken or not.
Branch delay slots are a simple and effective way to improve the performance of a
processor. They are used in most modern processors, and they can significantly
improve the speed of programs that contain a lot of branche
ASSIGNMENT 6
1. What is computer performance and why is it important?
Answer/
Computer performance in computing refer to the amount of useful work accomplished by a
computer system.
Some importance are as follow:
• Productivity: Faster and more efficient computers enhance productivity by reducing the
time required to complete tasks.
• User Experience: Improved computer performance leads to a smoother and more
responsive user experience.
• Multitasking: Modern computing involves running multiple applications simultaneously.
• Efficiency: Efficient computer performance can optimize resource utilization, leading to
reduced power consumption and lower operational costs.
• Complex Computations: Certain applications and tasks, such as scientific simulations,
data analysis, video editing, and 3D rendering, require significant computing power.
• Gaming and Multimedia: Gamer and multimedia enthusiasts benefit from high computer
performance.
• Future-Proofing: As technology advances, software and applications tend to become
more demanding in terms of computer resources.
2. List and explain three factors that can affect computer performance.
Answer/
Several factors can affect computer performance. Here are three key factors:
• Processor Speed and Architecture: The processor, also known as the central processing
unit (CPU), is responsible for executing instructions and performing calculations.
Processor speed, measured in gigahertz (GHz), determines how quickly instructions are
processed.
• Memory (RAM) Capacity and Speed: Random Access Memory (RAM) is temporary
storage that holds data and instructions required by the CPU during operation.
• Storage Type and Speed: The storage subsystem of a computer includes hard disk drives
(HDDs) and solid-state drives (SSDs). HDDs are slower but typically offer higher storage
capacity at a lower cost.
3. Compare and contrast processing speed and memory capacity as measures of computer
performance.
Answer/
Processing speed is a measure of how quickly a computer can execute instructions. It is
typically measured in hertz (Hz) or gigahertz (GHz).
Memory capacity is a measure of how much data a computer can store. It is typically
measured in bytes or gigabytes (GB)
The hardware specifications of a computer are the technical details of its components, such as
the processor, memory, storage, and graphics card. Here's an overview of how hardware
specifications impact performance:
Some of the most important hardware specifications for determining computer performance
include:
• Processor speed: The processor is the "brain" of the computer and is responsible for carrying out
instructions. A faster processor will allow the computer to run programs and complete tasks more
quickly.
• Memory: Memory stores the instructions and data that the processor is currently working on. A
computer with more memory will be able to run more programs at the same time and will be less
likely to experience slowdowns.
• Storage: Storage is where the computer stores its files, programs, and operating system. A
computer with more storage space will be able to hold more files and programs.
• Graphics card: The graphics card is responsible for displaying images on the screen. A more
powerful graphics card will allow the computer to display more complex images and videos.
5. What are some common methods for improving computer performance?
6. Explain the concept of software optimization and its impact on computer performance.
Software optimization refers to the process of improving the performance, efficiency, and
resource utilization of software applications. It involves analyzing and modifying code,
algorithms, and design principles to ensure optimal execution and resource management.
Here's a closer look at the concept and its impact on computer performance:
Code Efficiency: Optimizing software involves writing efficient code that utilizes system
resources effectively.
CPU and Memory Optimization: Software optimization considers the specific capabilities and
limitations of the underlying hardware components, such as the CPU and memory.
Minimizing Disk I/O: Disk input/output (I/O) operations can be a significant performance
bottleneck.
Multithreading and Parallel Processing: Modern CPUs often have multiple cores, allowing for
parallel execution of tasks. Software optimization techniques enable effective use of
multithreading and parallel processing, splitting tasks into smaller threads that can be executed
simultaneously. This approach can improve performance, especially for tasks that can be
parallelized, such as multimedia processing or data analysis.
7. Discuss the significance of system configuration in maximizing computer performance.
System configuration plays a significant role in maximizing computer performance. It involves
adjusting various settings and parameters to optimize the interaction between hardware and
software components. Here's a look at the significance of system configuration in maximizing
computer performance:
Optimizing system configuration ensures that the computer's hardware and software components
work together efficiently, allowing users to maximize performance and achieve smoother, more
responsive computing experiences. By customizing settings to match specific hardware
capabilities, workloads, and user requirements, system configuration helps achieve the optimal
balance between performance, stability, and usability.
8. How can user behavior affect computer performance? Provide examples.
User behavior can affect computer performance in a number of ways. Some of the most common
ways include:
• Running too many programs at once. When you run too many programs at once, it can put a
strain on your computer's resources and slow it down.
• Not closing programs when you're done with them. Even if you're not actively using a program,
it can still be running in the background and using up resources.
• Not defragmenting your hard drive. Over time, files can become fragmented on your hard drive,
which can slow down your computer.
Here are some examples of how user behavior can affect computer performance:
• If you're running a lot of programs at once, your computer may start to slow down. This is
because each program is using up resources, such as memory and processing power.
• If you don't close programs when you're done with them, they can continue to run in the
background and use up resources. This can also slow down your computer.
• If you don't defragment your hard drive, files can become fragmented, which can slow down
your computer. Defragmenting your hard drive will reorganize the files so that they're stored in
contiguous blocks, which can improve performance.
• If you don't keep your computer up to date, you may not be getting the latest performance
improvements. Software updates often include performance improvements, so it's important to
install them as soon as they're available.
• If you're using a computer that's not powerful enough for your needs, it's going to slow down. If
you're trying to do something that requires a lot of resources, such as gaming or video editing,
you'll need a computer that's powerful enough to handle it.
There is a trade-off between computer performance and energy efficiency. In general, the more powerful a
computer is, the more energy it will consume. This is because more powerful computers require more
powerful components, such as processors and graphics cards, which use more power.