Multicore Computers
Multicore Computers
Computer architecture plays a crucial role in shaping the design and functionality
of modern computing systems. It encompasses a wide range of topics, including
the organization of processors, memory, and other components that form the
backbone of a computer. This report focuses on two key aspects of computer
architecture: multicore computers and parallel processing, as well as the
architectures of RISC (Reduced Instruction Set Computer) and CISC (Complex
Instruction Set Computer) with relevant examples. Additionally, we will delve into
the organization of the Intel 8085 and 8086 processors, exploring details such as
cache organization, memory organization, and register organization. Multicore
computers have revolutionized the computing landscape by integrating multiple
processing cores onto a single chip. These systems offer significant advantages in
terms of performance, multitasking, and power efficiency. We will examine the
benefits of multicore architectures and explore how parallel processing techniques
are employed to harness the full potential of these systems. By leveraging
parallelism at various levels, such as instruction-level and thread-level parallelism,
multicore computers can execute multiple tasks simultaneously, leading to
improved performance and responsiveness. In addition to multicore computers, we
will investigate the architectures of RISC and CISC. These two prominent
instruction set architectures have distinct design philosophies and trade-offs. RISC
architectures emphasize simplicity, streamlined instructions, and efficient
pipelining, enabling faster execution and compiler optimization. On the other hand,
CISC architectures feature complex instructions that can perform multiple
operations within a single instruction, potentially reducing code size and
development time. We will delve into the characteristics of RISC and CISC
architectures, providing examples of well-known architectures within each
category. Furthermore, we will explore the organization of the Intel 8085 and 8086
processors. These processors have made significant contributions to the history of
computing and serve as prime examples of CISC architectures. We will examine
their cache organization, memory organization, and register organization to gain a
comprehensive understanding of their internal structure and functionality. By
delving into these topics, we aim to deepen our knowledge of computer
architecture, gaining insights into the design principles, trade-offs, and
advancements that have shaped the computing systems we rely on today.
Multicore computers
A multicore processor is an integrated circuit that has two or more processor cores
attached for enhanced performance and reduced power consumption. These
processors also enable more efficient simultaneous processing of multiple tasks,
such as with parallel processing and multithreading. A dual core setup is similar to
having multiple, separate processors installed on a computer. However, because
the two processors are plugged into the same socket, the connection between them
is faster.
The use of multicore processors or microprocessors is one approach to boost
processor performance without exceeding the practical limitations of
semiconductor design and fabrication. Using multicores also ensure safe operation
in areas such as heat generation.
In addition to the multiple cores, contemporary multicore chips also include L2
cache and, in some cases, L3 cache. The individual cores can execute multiple
instructions in parallel, increasing the performance of software which is written to
take advantage of the unique architecture.
The improvement in performance gained by the use of a multi-core processor
depends very much on the software algorithms used and their implementation. In
the best case, so-called embarrassingly parallel problems may realize speedup
factors near the number of cores.
However, for some purposes, there’s an upper practical limit to how many cores
yield improvements relative to the cost of adding them. Every process, however, is
governed by a primary thread that can only occupy a single core. Thus, the relative
speed of a program like a game or a video renderer is hard-limited to the capability
of the core that the primary thread consumes.
Architecture of multicore computers
The architecture of multicore processors enables communication between all
available cores to ensure that the processing tasks are divided and assigned
accurately. At the time of task completion, the processed data from each core is
delivered back to the mother board by means of a single shared gateway. This
technique significantly enhances performance compared to a single core processor
of similar speed. Multicore technology is very effective in challenging tasks and
applications, such as encoding.
Cache organization
Advantages:
Fast access: Registers provide a fast and efficient way to access data and perform
operations. Since the registers are located inside the processor, they can be
accessed quickly without having to wait for data to be fetched from memory.
Reduced memory access: The use of registers can help reduce the number of
memory accesses required, which can improve the overall performance of the
system.
Specialized functionality: Each register in the 8085 microprocessor has a specific
function, such as the accumulator for arithmetic operations and the program
counter for storing the address of the next instruction. This specialized
functionality can make programming and debugging easier.
Reduced complexity: By providing dedicated registers for specific purposes, the
8085 microprocessor reduces the complexity of the programming and execution
process.
Disadvantages:
Limited storage capacity: The 8085 microprocessor has a limited number of
registers, which can restrict the amount of data that can be stored and manipulated
at any given time.
Complex addressing modes: Some of the addressing modes used in the 8085
microprocessor can be complex, which can make programming more difficult.
Context switching: In some cases, switching between different sets of registers
can add overhead and complexity to the programming process.
Lack of flexibility: The fixed number and function of registers in the 8085
microprocessor can limit the flexibility of the system and make it more difficult to
adapt to changing requirements.
ache Organization: The 8086 processor does not have a built-in cache. Its design
predates the use of cache in processors. However, it has internal registers for
storing intermediate and final results and interfaces with memory located outside it
through the System Bus.
Memory Organization: The 8086 microprocessor has a 20-bit address bus, which
can address up to 1 MB of memory. The memory in an 8086 based system is
organized as segmented memory. One megabyte is physically organized as an odd
bank and an even bank, each of 512Kbytes, addresses in parallel by the processor.
Byte data with even address transferred on D7-D0, while byte data with odd
address is transferred on D15-D8 bus lines.
Registers Organization: The 8086 microprocessor has 8 registers each of 8 bits,
AH, AL, BH, BL, CH, CL, DH, DL. Each register can store 8 bits. To store more
than 8 bits, we have to use two registers in pairs. There are 4 register pairs AX,
BX, CX, DX. Each register pair can store a maximum of 16-bit data. General-
purpose registers are used for holding variables or data. They can be also used as
counters or as temporary storage for intermediate results during any operation.
These registers perform the following functions, Accumulator (AX) Register, Base
(BX) Register, Counter (CX) Register, Data (DX) Register. The 8086
microprocessor has a 20-bit wide physical address to access 1MB memory
location. But the registers of the 8086 microprocessor that holds the logical address
are only 16-bits wide. Thus 8086 microprocessor implements memory
segmentation for 1MB physical memory where the memory is divided into sections
or segments.
RISC
A Reduced Instruction Set Computer is a type of microprocessor architecture that
utilizes a small, highly-optimized set of instructions rather than the highly-
specialized set of instructions typically found in other architectures. RISC is an
alternative to the Complex Instruction Set Computing (CISC) architecture and is
often considered the most efficient CPU architecture technology available today.
With RISC, a central processing unit (CPU) implements the processor design
principle of simplified instructions that can do less but can execute more rapidly.
The result is improved performance. A key RISC feature is that it allows
developers to increase the register set and increase internal parallelism by
increasing the number of parallel threads executed by the CPU and increasing the
speed of the CPU's executing instructions. ARM, or “Advanced RISC Machine” is
a specific family of instruction set architecture that’s based on reduced instruction
set architecture developed by Arm Ltd. Processors based on this architecture are
common in smartphones, tablets, laptops, gaming consoles and desktops, as well as
a growing number of other intelligent devices.
RISC systems use hard-wired code with a simple instruction set that needs a less
costly CPU than a CISC device. RISC processors are used in smartphones, printers,
tablets and devices that do a specific set of repeatable activities. RISC CPU
technology is increasingly popular in data center systems because of their
performance and ease of use.
Characteristics of RISC
Simpler instruction, hence simple instruction decoding.
Instruction comes undersize of one word.
Instruction takes a single clock cycle to get executed.
More general-purpose registers.
Simple Addressing Modes.
Fewer Data types.
A pipeline can be achieved.
Advantages of RISC
Simpler instructions: RISC processors use a smaller set of simple
instructions, which makes them easier to decode and execute quickly. This
results in faster processing times.
Faster execution: Because RISC processors have a simpler instruction set,
they can execute instructions faster than CISC processors.
Lower power consumption: RISC processors consume less power than CISC
processors, making them ideal for portable devices.
Disadvantages of RISC
More instructions required: RISC processors require more instructions to
perform complex tasks than CISC processors.
Increased memory usage: RISC processors require more memory to store the
additional instructions needed to perform complex tasks.
Higher cost: Developing and manufacturing RISC processors can be more
expensive than CISC processors.
Examples of RISC architectures:
ARM: ARM (Advanced RISC Machine) is a widely used RISC architecture. It is
known for its energy efficiency and is commonly found in mobile devices,
embedded systems, and microcontrollers. ARM processors are used in popular
devices such as smartphones, tablets, and smartwatches.
MIPS: MIPS (Microprocessor without Interlocked Pipeline Stages) is another
well-known RISC architecture. It has been used in various applications, including
embedded systems, networking devices, and gaming consoles. MIPS processors
are known for their simplicity and high performance.
PowerPC: PowerPC is a RISC architecture that was originally developed by IBM,
Motorola, and Apple. It has been used in a variety of systems, including personal
computers, game consoles, and high-performance computing. PowerPC processors
have been used in Apple Macintosh computers in the past.
SPARC: SPARC (Scalable Processor Architecture) is a RISC architecture
developed by Oracle Corporation. It has been primarily used in servers and high-
performance computing systems. SPARC processors are known for their
scalability and support for multi-threading.
CISC
The design philosophy of CISC processors is to build the complexity into the CPU,
so the computing process would not be so taxing on the software and other
hardware components. This allows CISC processors to tackle complex workloads
very quickly and efficiently, and they can benefit from a technique known
as multithreading.
In addition to the inherent benefits of CISC, x86 processors enjoy a complete and
comprehensive software and hardware ecosystem, thanks in part to Intel and
AMD's long years of investing in PC. While the champion of the RISC
architecture, the ARM processor, has been making inroads into the server market,
x86 is still ubiquitous in today's server rooms and IT infrastructure. Innovative new
techniques, such as liquid cooling and immersion cooling, have been invented to
help deal with the relatively high power consumption and heat dissipation of CISC
machines.
Instruction Set Complexity: CISC architectures are known for their complex
instruction sets, which typically include a wide range of instructions with varying
formats and functionalities. These instructions can perform operations such as
arithmetic calculations, memory access, data movement, logic operations, and
control flow. The complexity of the instruction set allows programmers to
accomplish tasks with fewer instructions, potentially reducing the overall code size
and development time.
Variable-Length Instructions: In CISC architectures, instructions are often encoded
using variable-length formats. This means that instructions can have different
lengths in terms of the number of bytes they occupy in memory. Variable-length
instructions allow for a more compact encoding of complex operations and enable
the instruction set to incorporate a larger number of instructions. However, the
variable-length encoding can make instruction decoding more challenging and can
affect the efficiency of instruction fetching and pipeline design.
Addressing Modes: CISC architectures support various addressing modes to
facilitate accessing data from memory. These modes provide flexibility in
specifying the location of operands. Common addressing modes include immediate
addressing (where the operand is embedded within the instruction itself), direct
addressing (where the operand is specified using a memory address), register
indirect addressing (where the operand is stored in a register specified by the
instruction), and indexed addressing (where an index register is used to calculate
the memory address).
Memory Access: CISC architectures typically provide instructions that allow direct
memory access. These instructions can load data from memory into registers or
store data from registers into memory. Additionally, CISC architectures often
support memory access instructions that enable efficient manipulation of data
structures, such as strings or arrays, by providing operations lik
Characteristics of CISC
Complex instruction, hence complex instruction decoding.
Instructions are larger than one-word size.
Instruction may take more than a single clock cycle to get executed.
Less number of general-purpose registers as operations get performed in
memory itself.
Complex Addressing Modes.
More Data types.
Advantages of CISC
Reduced code size: CISC processors use complex instructions that can
perform multiple operations, reducing the amount of code needed to perform
a task.
More memory efficient: Because CISC instructions are more complex, they
require fewer instructions to perform complex tasks, which can result in
more memory-efficient code.
Widely used: CISC processors have been in use for a longer time than RISC
processors, so they have a larger user base and more available software.
Disadvantages of CISC
Slower execution: CISC processors take longer to execute instructions
because they have more complex instructions and need more time to decode
them.
More complex design: CISC processors have more complex instruction sets,
which makes them more difficult to design and manufacture.
Higher power consumption: CISC processors consume more power than
RISC processors because of their more complex instruction sets.