Fundamentals of Computer Assignment Report
Fundamentals of Computer Assignment Report
MWENDIA
REG NO.ENG -219-085/2024 1)THE STRUCTURE OF A
COMPUTER SYSTEM AND THE ROLES OF THE CPU,MEMORY AND I/O
COMPONENTS AND THEIR INTERACTIONS AS IN A TYPICAL Von Nuemann
architecture .
Role: It holds both the data and the program (instructions) that the CPU needs to execute.
The memory address for the next instruction is stored in the Program Counter (PC), which
the CPU uses to access the next operation.
After the CPU processes the data, it may write back results into memory.
Role: The CPU is the core component that executes instructions, performing computations
and managing data flow.
• Its Components:
Control Unit (CU): Directs the operation of the processor and coordinates the actions of the
CPU with the rest of the system. It fetches instructions from memory, decodes them, and
orchestrates the execution.
Arithmetic Logic Unit (ALU): Handles all arithmetic and logical operations.
Registers: Small, fast storage locations within the CPU that temporarily hold data and
instructions during execution.
Decode: The control unit decodes the fetched instruction to determine what action to
perform.
Execute: The ALU performs the required operation, such as an arithmetic calculation or a
data move between memory and I/O.
I/O operations are usually managed through interrupts or polling. When I/O devices send
data, the CPU either waits for the data to be available (polling) or receives an interrupt
signal when the data is ready.
Role: I/O devices (e.g., keyboard, mouse, display, disk drives) are responsible for sending
data to and receiving data from the external environment.
Data from I/O devices is either sent directly to memory through Direct Memory Access
(DMA) or through the CPU.
The CPU can send data to an I/O device or retrieve data from it through I/O controllers,
which act as intermediaries between the CPU and the I/O device. These controllers handle
device-specific operations.
❖ B)Comparison of how the IBM System/370,ARM Cortex series and Intel X86
architectures implement these fundamental component s.
❖ COMPARISON OF ARCHITECTURES IMPLEMENTATIONS OF THIS COMPONENTS
AND ANY UNIQUE STRUCTURE FEATURES.
1. IBM System/370 Architecture (Mainframe)
CPU:
Memory;
System/370 supports large-scale memory and uses segmented paging for memory
management. This allows the system to handle large datasets efficiently.
Uses cache memory to speed up data access, which is crucial for high-performance
applications.
I/O Devices:
System/370 uses channel I/O architecture, where I/O operations are managed by
dedicated I/O processors called channels.
Supports multiplexing of I/O devices, allowing multiple I/O operations to run concurrently.
• Unique Features:
Channel I/O: Offloads I/O processing from the CPU, allowing it to focus on other tasks.
CPU : The ARM Cortex series follows a RISC (Reduced Instruction Set Computer) design,
focusing on efficiency and simplicity. The architecture is streamlined for performance and
low power consumption, making it suitable for mobile and embedded devices.
It has a three-stage pipeline (fetch, decode, execute) for instruction processing, enabling
faster execution.
Memory:
The ARM Cortex series implements a Harvard architecture, where the CPU has separate
instruction and data caches. This reduces memory access bottlenecks and increases the
speed of data retrieval.
I/O Devices:
ARM architecture supports interrupt-driven I/O, where I/O devices can signal the CPU to
handle data transfer.
Unique Features:
✓ Power Efficiency: The ARM Cortex is designed for low-power environments, with
features like dynamic voltage scaling and efficient sleep modes to conserve energy.
✓ Simplicity and Scalability: ARM’s modular design allows it to scale from simple
embedded devices to more complex processors used in smartphones and tablets.
2. Intel x86 Architecture (General Purpose/PCs)
▪ The x86 architecture is a CISC design, similar to IBM System/370 but more widely
used in general-purpose computing.
➢ It has a deep instruction pipeline and supports out-of-order execution and
speculative execution, improving performance for a wide variety of tasks.
1. Memory:
X86 processors implement virtual memory with paging, allowing large addressable memory
spaces.
X86 systems use hierarchical caches (L1, L2, L3) to ensure faster data access, reducing
latency for frequent memory accesses.
2.I/O Devices:
Intel x86 systems use a programmable I/O controller for managing interactions between
the CPU and I/O devices.
• Unique Features:
Backward Compatibility: One of x86’s defining features is its backward compatibility with
older software and hardware. It retains support for older instruction sets while introducing
new features.
Advanced Parallelism: With features like SIMD and hyper-threading, x86 is optimized for
modern computing tasks that involve multimedia processing and multitasking.
Wide Usage in PCs: x86 dominates the PC market due to its balance between complexity
and performance, making it suitable for desktops, laptops, and servers.
Operation Codes (Opcodes): The binary codes that specify which operations to perform
(e.g., arithmetic, logic, data movement).
Data Types: The types of data that the processor can handle (e.g., integers, floating-point
numbers, characters).
Registers: The number, type, and function of processor registers available for temporary
storage during program execution.
Addressing Modes: The ways in which the processor can access data in memory (e.g.,
immediate, direct, indirect, indexed).
In essence, the ISA serves as the programmer’s view of the machine and defines how the
processor interprets and executes software instructions.
▪ The ISA specifies what operations the processor can perform, like addition,
subtraction, data movement, and branching (conditional or unconditional). This set
of instructions determines how a processor interacts with the system memory and
I/O devices.
▪ Bridge Between Hardware and Software:
✓ The ISA acts as a contract between the hardware (processor design) and the
software (programs). Programmers write software based on the ISA, and the
processor’s microarchitecture is designed to execute those instructions efficiently.
The ISA plays a critical role in determining compatibility across different generations of
processors. For instance, the Intel x86 family maintains backward compatibility at the ISA
level, allowing newer processors to run older programs.
It also ensures that software written for a particular ISA can be ported to any processor that
implements the same ISA, making it easier for software developers to write cross-platform
applications.
Impact on Performance:
➢ The complexity and design of the ISA can have a significant impact on performance.
For example:
a.RISC (Reduced Instruction Set Computing) ISAs, like the ARM architecture, focus on a
small, highly optimized set of instructions, which can be executed quickly with minimal
processor cycles.
b.CISC (Complex Instruction Set Computing) ISAs, like Intel’s x86, include more complex
instructions that can accomplish more in one operation but may take more time to
execute.
The ISA influences the design of the processor’s microarchitecture. For instance, in a RISC
architecture, the processor might prioritize pipelining and parallel execution because of the
simplicity of the instruction set. In contrast, a CISC architecture might involve more
complex decoding logic due to a larger, more diverse instruction set.
C. Power Efficiency:
A well-designed ISA can minimize the number of instructions and processing cycles
needed to perform a task, thus conserving energy.
D. Innovation in Computing:
The ISA can foster innovation by allowing the integration of new instruction sets (e.g., SIMD
for parallel processing or cryptography-specific instructions), enabling the processor to
handle specialized tasks more efficiently.
2b.Compare the ISAs of IBM System /370,ARM Cortex and Intel X86,in
terms of: instructions formats and lengths, addressing mode, data types and
operations supported, register sets.
2.B).In William Stallings’ book he provides a detailed comparison of various Instruction Set
Architectures (ISAs) across different processor designs.
a. Instruction Format: System/370 uses a variety of instruction formats, including RR, RX,
RS, SI, and SS. The basic formats include fields for operation codes, register numbers, and
addresses.
b.Instruction Length: The instructions are typically 2, 4, or 6 bytes long, depending on the
format and operation. The flexible instruction length allows for a wide range of operations
and operands, which is typical of CISC architectures.
❖ ARM Cortex:
Instruction Format: ARM uses a fixed-length instruction format typical of RISC (Reduced
Instruction Set Computer) architectures. The instructions are generally 32 bits (4 bytes)
long in the standard ARM instruction set, but it also has a 16-bit instruction format (called
Thumb) for more compact code in memory-constrained environments.
Instruction Length: ARM instructions are either 16-bit (Thumb) or 32-bit in length, with 16-
bit instructions designed to improve code density while sacrificing some operational
flexibility.
❖ Intel x86:
Instruction Format: x86, being a CISC architecture, uses variable-length instructions. The
instruction format is complex, consisting of an opcode followed by optional prefixes,
modem, displacement, and immediate values.
✓ Instruction Length: Instructions can range from 1 to 15 bytes in length, with a high
degree of flexibility in operand specification and operation encoding, reflecting its
CISC nature. This allows for a broad set of operations within the instruction set.
1. Addressing Modes:
IBM System/370:
Indexed: Uses an index register in addition to the base register and displacement for
memory addressing.
The addressing modes are versatile and well-suited for handling large amounts of memory,
reflecting the system’s design for enterprise-scale data processing.
❖ ARM Cortex:
Base plus Offset: The effective address is computed by adding a constant offset to the
base register.
The addressing modes are optimized for simplicity and performance, reducing complexity
in instruction decoding and execution.
❖ Intel x86:
X86 supports a large and complex set of addressing modes, including:
Base plus Index: Combines base and index registers with optional scaling.
The wide range of addressing modes supports the execution of complex instructions.
Operations: The instruction set includes arithmetic, logical, bit manipulation, and control
instructions.
❖ ARM Cortex:
Integer (8, 16, and 32-bit values), floating-point (single and double precision), and SIMD
(Single Instruction, Multiple Data) types.
This lack of parallelism limits the performance in terms of instruction-level parallelism (ILP)
but simplifies the hardware.
❖ ARM Cortex:
ARM processors often use superscalar execution in high-performance cores. For example,
the ARM Cortex-A9 and Cortex-A72 can execute multiple instructions per clock cycle.
❖ Intel x86:
Modern Intel x86 processors are heavily superscalar. Processors can issue multiple
instructions per cycle and have several parallel execution units (integer, floating-point,
etc.).
3. Power Efficiency
Power efficiency is becoming increasingly important in modern CPU designs, especially for
mobile and embedded processors, where battery life and thermal management are critical
concerns.
❖ IBM System/370:
Power efficiency was not a major focus for IBM System/370, as it was designed for
mainframe environments, where performance and reliability were more important than
power consumption.
The lack of pipelining and parallelism means that its power efficiency is low by modern
standards.
❖ ARM Cortex:
ARM processors are highly optimized for power efficiency, which is a key design focus,
especially for mobile and embedded systems.
ARM’s RISC design results in simple, small instructions that are easy to execute,
minimizing the power required per instruction.
Techniques such as dynamic voltage and frequency scaling (DVFS) and clock gating are
used to reduce power consumption when full performance is not needed.
Intel x86 processors, especially in recent generations, balance performance and power
efficiency, though traditionally, power efficiency was secondary to performance.
Intel’s Turbo Boost technology allows for dynamic scaling of frequency and power based on
workload, but these CPUs are more power-hungry compared to ARM.
Pipeline Depth Shallow pipeline, limited pipelining support Moderate depth (5-
15 stages), optimized for power efficiency Deep pipeline (up to 20 stages), high clock
speeds but complex management.
4(b)The design choices of the IBM System/370, ARM Cortex, and Intel x86 architectures
align closely with their primary use cases and market targets, reflecting trade-offs in
performance, power efficiency, scalability, and compatibility.
1. IBM System/370
Design Choices:
2. ARM Cortex
Market Target: Mobile, IoT (Internet of Things), embedded systems, and low-
power computing markets.
Design Choices:
Power Efficiency: ARM processors are highly optimized for energy efficiency, a
crucial factor for mobile devices where battery life is a primary concern. ARM’s
architecture allows for high performance-per-watt.
Scalability: ARM Cortex designs are modular, allowing for a wide range of
performance levels (from Cortex-A for high-performance applications to Cortex-
M for microcontroller-level applications).
Licensing Model: ARM doesn’t manufacture chips but licenses its architecture to
manufacturers, allowing for wide market penetration across various sectors
(smartphones, automotive, industrial).
Design Choices:
Instruction Set Extensions: Over time, Intel has added extensions like MMX, SSE,
and AVX, enhancing multimedia, cryptographic, and parallel processing tasks.
Market Target Alignment: Intel x86’s design suits a broad spectrum of computing
needs, from consumer desktops and laptops to high-performance servers.
Comparative Alignment:
IBM System/370 targets high-reliability, transaction-heavy environments,
emphasizing compatibility, reliability, and I/O throughput, making it ideal for
enterprises.
Intel x86 balances performance and flexibility, aligning with consumer desktops,
laptops, and server markets, while maintaining backward compatibility and
supporting a wide range of applications.
One of the primary reasons backward compatibility was essential for Intel’s x86
development is the vast base of software written for previous x86 processors.
Maintaining compatibility ensured that this software could run seamlessly on
newer processors without requiring extensive rewriting or adaptation.
For example, Intel 80386 (released in 1985) introduced 32-bit processing but
retained the ability to run 16-bit software developed for the earlier 80286
processor. This preservation allowed businesses to upgrade hardware without
losing access to existing software, making x86 highly attractive for enterprise
customers and consumers alike.
For instance, the transition to 64-bit architecture (x86-64) with the introduction
of Intel’s Pentium 4 and later processors (like Core and Xeon) was handled
carefully to ensure that legacy 16-bit and 32-bit applications would still run.
Rather than discarding old instructions, Intel extended the x86 instruction set
through various generations to improve performance in specific areas while
keeping backward compatibility. Extensions like MMX (Multimedia Extensions),
SSE (Streaming SIMD Extensions), and AVX (Advanced Vector Extensions) were
introduced to improve processing for multimedia, parallel processing, and high-
performance computing tasks. These extensions coexist with older instructions
rather than replacing them, enabling x86 to handle both modern and legacy
tasks.
For example, when MMX was introduced in 1996 with the Pentium MMX
processors, it was designed to accelerate multimedia applications.
Protected mode (from the 80286) for accessing advanced memory management
features and multitasking.
Long mode (introduced with x86-64) for 64-bit computing, while still allowing
legacy 32-bit and 16-bit applications to run.
These modes ensure that new processors can support a wide range of
applications.
Impact: This flexibility has been crucial for enterprises and individuals with
diverse software needs, ensuring that old programs do not become obsolete
with each hardware upgrade.
5. Transition to x86-64
Impact: The ability to run older 32-bit and 16-bit applications while also
embracing 64-bit computing was a key factor in the widespread adoption of x86-
64, particularly in enterprise servers and desktop computers.
Even when Apple switched from PowerPC to Intel x86 processors in 2006, one of
the major factors was the superior performance of Intel’s chips and the wide
availability of compatible software, much of which was built on x86.
Impact: Backward compatibility has allowed Intel to dominate the PC market for
decades, creating a powerful ecosystem around the x86 architecture that
continues to grow.
Conclusion:
Trade-off: The x86 architecture, for example, suffers from certain performance
inefficiencies due to its need to support legacy instructions. RISC-based
processors, such as ARM, can outperform x86 in specific tasks like power
efficiency and performance per watt by focusing only on modern instruction
sets. The performance penalty for backward compatibility is offset by the ability
to run a broad array of existing software, giving x86 its market dominance in
desktop and server computing.
Trade-off: Intel’s x86 architecture has remained dominant due to the stability it
offers to software developers, but this has arguably slowed the rate of
architectural innovation compared to other architectures that can move more
quickly toward new features. ARM, by contrast, has been able to introduce
innovations more rapidly because it isn’t as constrained by legacy software
requirements.
RISE OF ARM IN MOBILE AND EMBEDDED SYSTEMS.
1. Power Efficiency
Mobile and Embedded Market Needs: Mobile devices and embedded systems
are highly constrained by power consumption, as they often run on batteries or
have limited power sources. Battery life and energy efficiency are therefore
critical, particularly in mobile phones, tablets, and IoT devices.
ARM Cortex-R: Built for real-time computing in embedded systems that require
deterministic processing, such as automotive or industrial applications.
Impact: The scalability of ARM architecture, combined with its licensing model,
has enabled companies to design tailored processors for a vast array of mobile
and embedded devices. This modularity ensures that ARM can cater to both low-
power microcontrollers and high-performance smartphones, giving it an edge in
a diverse set of markets.
3. Licensing Model
Licensing Flexibility: ARM does not manufacture its own chips; instead, it
licenses its architecture to a wide range of manufacturers (e.g., Qualcomm,
Apple, Samsung, NVIDIA), allowing them to integrate ARM cores into their own
system-on-chip (SoC) designs. This model has fueled the widespread adoption
of ARM across industries.
Cost Sensitivity in Embedded Markets: Embedded systems are often highly cost-
sensitive, particularly for large-scale deployments in IoT devices, sensors, or
industrial control systems. A key requirement is that processors must be
inexpensive while still offering adequate performance.
5. Performance Efficiency
Impact: ARM’s transition from mobile devices into the broader embedded and
server markets demonstrates its flexibility and adaptability. While ARM’s
dominance in mobile devices is well-established, its increasing presence in IoT,
automotive, and even data centers shows the growing relevance of its
architecture across the computing spectrum.
Scalability: RISC architectures like ARM and RISC-V are scalable, making them
suitable for a wide range of devices, from low-power embedded systems to high-
performance processors in smartphones and even servers. This scalability is a
key feature driving the widespread adoption of RISC designs in IoT, mobile
devices, and increasingly in data centers.
Multicore Systems: The simplicity of RISC instruction sets and pipelines also
makes it easier to design multicore systems, where multiple processing cores
work in parallel to improve overall performance. RISC-V, ARM, and other RISC-
based architectures are highly optimized for multicore configurations, making
them ideal for both high-performance servers and mobile devices.
Impact on Future Designs: As the need for more computational power grows,
particularly in areas like artificial intelligence (AI) and machine learning (ML),
RISC-based processors are likely to play a critical role in multicore and parallel
processing environments.
Security Benefits of RISC: The simpler and more predictable nature of RISC
architectures can also have security advantages. Fewer and more streamlined
instructions reduce the potential attack surface for vulnerabilities.
Custom RISC Processors for AI: The modularity and flexibility of RISC-V make it
an ideal platform for building custom processors optimized for AI workloads.
Developers can extend the RISC-V instruction set with specialized instructions
for AI acceleration, such as vector processing units or custom AI cores designed
to handle specific machine learning tasks.
HILLARY MWENDIA,
REG NO .ENG-219-085/2024