0% found this document useful (0 votes)
9 views17 pages

Midterm Reviewer

Uploaded by

ronjconge0930
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views17 pages

Midterm Reviewer

Uploaded by

ronjconge0930
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Introduction to Multiprocessor and Multicomputer Systems

Modern computing often involves tasks that exceed the processing capacity of a single
processor. To address this, systems with multiple processors or interconnected
computers are employed. Two common approaches are multiprocessor systems and
multicomputer systems.
Multiprocessor Systems
A multiprocessor system integrates two or more central processing units (CPUs) within a
single system. These CPUs share access to a common memory and work in tandem to
execute multiple tasks concurrently. The interconnection between processors and shared
memory can be established using one of three methods:
1. Time-Shared Common Bus: Processors take turns accessing a single shared
communication pathway.

As the name itself indicates, int this method is containing a single shared bus
through which all processor & memory unit can be communicated.
Consider Process-1 is interacting with memory unit using common shared bud in
that case all other processor must be idle as we have only one bus to
communicate.
Advantage:
 Simple to implement.
 Due to single common bus cost to implement is very less.
Disadvantage:
 Data transfer rate is slow.
2. Multiport Memories: In a multiport memory system, each processor has its own
direct connection to the memory, which helps avoid delays caused by multiple
processors trying to access memory at the same time.

Imagine a setup with four processors and four memory modules. Each processor is
linked to every memory module using its own set of wires (called buses). These
wires carry the information needed to read or write data, such as the memory
address, the data itself, and control signals.
Each memory module has four "ports," or entry points, so that all four processors
can connect to it. Inside the memory module, there’s a control system that decides
which processor gets to use the memory at any given time. To keep things simple,
the system uses a priority order based on the physical connections: CPU1 gets first
priority, followed by CPU2, then CPU3, and finally CPU4.
This design works well when there are only a few processors because it keeps the
system organized and efficient without becoming overly complex.
3. Crossbar Switch Network: The crossbar switch system is a smart way to directly
connect processors to memory modules using a grid-like arrangement. At each
intersection of a processor path and a memory module, there is a "crosspoint,"
which acts like a small switch. These switches decide whether a specific processor
can communicate with a specific memory module.

Here’s how it works:


 Each cross point switch has control logic that figures out if the processor
wants to access its connected memory module by checking the address
on the bus.
 If multiple processors try to access the same memory module, the system
uses a priority system to decide which processor gets access first. This
ensures smooth operation without conflicts.
For example, when a processor requests data from memory, the crosspoint
switch opens a direct path to the memory module. If another processor tries
to access the same memory, the system will check priorities and manage the
access accordingly.
In the functional design of a crossbar switch connected to a memory module,
multiplexers (circuits that select one input from several sources) handle the
data, address, and control signals from multiple CPUs. An arbitration logic
unit decides which CPU gets priority when multiple requests happen at the
same time. The multiplexers are controlled using a binary code generated by
the arbitration logic.

Why is this system great?


 The crossbar switch allows multiple memory modules to handle requests
from processors at the same time, creating high-speed and efficient
operations.
Benefits of using a Multiprocessor –
 Enhanced performance.
 Multiple applications.
 Multi-tasking inside an application.
 High throughput and responsiveness.
 Hardware sharing among CPUs.
Why is it challenging?
As the number of processors and memory modules grows, the hardware becomes
larger and more complex, making it more expensive and harder to manage.
This system is ideal for high-performance computing where speed and efficiency
are critical, but it’s typically used in systems with a manageable number of processors
and memory modules to avoid excessive hardware complexity.
Applications of Multiprocessor –
1. As a uniprocessor, such as single instruction, single data stream (SISD).
2. As a multiprocessor, such as single instruction, multiple data stream (SIMD), which
is usually used for vector processing.
3. Multiple series of instructions in a single perspective, such as multiple instruction,
single data stream (MISD), which is used for describing hyper-threading or
pipelined processors.
4. Inside a single system for executing multiple, individual series of instructions in
multiple perspectives, such as multiple instruction, multiple data stream (MIMD).
Advantages:
1. Improved performance: Multiprocessor systems can execute tasks faster than
single-processor systems, as the workload can be distributed across multiple
processors.
2. Better scalability: Multiprocessor systems can be scaled more easily than single-
processor systems, as additional processors can be added to the system to handle
increased workloads.
3. Increased reliability: Multiprocessor systems can continue to operate even if
one processor fails, as the remaining processors can continue to execute tasks.
4. Reduced cost: Multiprocessor systems can be
more cost-effective than building multiple single-
processor systems to handle the same workload.
5. Enhanced parallelism: Multiprocessor systems
allow for greater parallelism; as different
processors can execute different tasks
simultaneously.
2. Multicomputer
A multicomputer system consists of multiple processors interconnected to
collaboratively solve problems. Each processor operates with its own dedicated memory,
which is exclusive to that processor, and communication between processors is
facilitated through an interconnection network.
A multicomputer, capable of message passing between processors, allows for task
distribution across multiple processors, enabling distributed computing. It is more cost-
effective and easier to build compared to a multiprocessor system.
Differences between Multiprocessor and Multicomputer:
 A multiprocessor system has two or more central processing units (CPUs) working
together to perform multiple tasks, whereas a multicomputer consists of multiple
processors linked by an interconnection network to execute computational tasks.
 A multiprocessor system operates as a single machine with multiple CPUs, while a
multicomputer system is a cluster of computers working as one.
 Building a multicomputer is simpler and less expensive than constructing a
multiprocessor.
 Programming is generally easier in a multiprocessor system, whereas in a
multicomputer, it is more challenging.
 A multiprocessor system supports parallel computing, whereas a multicomputer
supports distributed computing.
Advantages:
 Improved Performance: Multicomputer systems can perform tasks more quickly
than single-computer systems by distributing the workload across multiple
machines.
 Better Scalability: Multicomputer systems can scale easily by adding more
computers to handle increased workloads.
 Increased Reliability: If one computer fails, the others can continue executing
tasks, ensuring system stability.
 Reduced Cost: Multicomputer can be more economical compared to building a
large, single computer system to handle the same tasks.
 Enhanced Parallelism: With multicomputer, different computers can execute
various tasks at the same time, improving parallelism.
Disadvantages:
 Increased Complexity: Multicomputer systems are more complex than single-
computer systems and require additional hardware, software, and management.
 Higher Power Consumption: These systems consume more power than single-
computer systems, which can increase operational costs.
 Difficult Programming: Writing software to effectively utilize multiple computers
is challenging and requires specialized programming expertise.
 Synchronization Issues: Multicomputer need synchronization between machines
to ensure correct and efficient task execution, which can add complexity.
 Network Latency: The reliance on networks for inter-computer communication
can introduce delays, affecting overall system performance.
Binary Number System
Binary Number System uses two digits, 0 and 1, and is the foundation for all modern
computing. The word binary is derived from the word “bi” which means two. But what
makes it so essential, and how does it work? In this article, we will dive deep into binary
numbers, binary decimal number conversion and vice versa, 1’s and 2’s complement,
and how they are used in computer systems.
There are generally various types of number systems and among them the four major
ones are,
1. Binary Number System (Number system with Base 2)
2. Octal Number System (Number system with Base 8)
3. Decimal Number System (Number system with Base 10)
4. Hexadecimal Number System (Number system with Base 16)

Binary Number System


Binary Number System is the number system in which we use two digits “0” and “1” to
perform all the necessary operations. In the Binary Number System, we have a base of 2.
The base of the Binary Number System is also called the radix of the number system.
In a binary number system, we represent the number as,
 (11001)2
In the above example, a binary number is given in which the base is 2. In a binary
number system, each digit is called the “bit”. In the above example, there are 5 digits.

Binary Number Table


1. What are Binary Numbers?
Numbers to base 2 is called binary numbers. It uses only two digits, 0 and 1. It is
denoted by a2, where a is a number with 0’s and 1’s.
Examples:
 1111102
 11111112
 10110012
2. What are Octal numbers?
The number to the base 8 is called octal numbers. It uses the numbers from 0 to 7. The
numbers 8 and 9 are not included in the octal number system. It is denoted by a 8 where
a is a number with digits 0 to 7.
Examples:
 21458
 71658
 468
3. Decimal Numbers (Base 10):
Decimal numbers are the most commonly used number system. It is a base-10 system,
meaning it uses ten digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Decimal numbers are the
standard form of counting that we use every day, such as in everyday transactions,
measurements, and calculations.
 Base: 10
 Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
 Denotation: Decimal numbers are typically notated without a subscript (e.g., 342,
987).
Examples of Decimal numbers:
 245
 8745
 98
4. Hexadecimal Numbers (Base 16):
Hexadecimal is a base-16 number system. It uses sixteen digits: the numbers 0 to 9, and
then the letters A, B, C, D, E, and F to represent values 10 to 15. Hexadecimal is
commonly used in computer science and digital electronics because it's a more compact
way of representing binary numbers. Every two hexadecimal digits correspond to one
byte (8 bits).
 Base: 16
 Digits: 0-9 and A-F (A=10, B=11, C=12, D=13, E=14, F=15)
 Denotation: Hexadecimal numbers are often denoted by a subscript "16" or by
the prefix "0x" (e.g., 0x1A3, 2F4, etc.).
Examples of Hexadecimal numbers:
 1A3₁₆
 2F4₁₆
 7D₁₆

Binary Conversion: Binary to Octal


Explanation:
To convert a binary number to an octal (base-8) number, group the binary digits in sets
of three (starting from the right). Then, convert each group of three binary digits to the
corresponding octal digit.
 Step 1: Start from the rightmost digit and group the binary number into groups of
three.
 Step 2: If the leftmost group has less than three digits, add leading zeros to make
it a group of three.
 Step 3: Convert each group of three binary digits into its octal equivalent.
Example:
Convert the binary number 1101010₂ to octal.
1. Group the binary digits: 1 101 010 (start from the right).
2. Add leading zeros if necessary to make each group of three digits: 001 101 010.
3. Now convert each group:
o 001₂ = 1₈
o 101₂ = 5₈
o 010₂ = 2₈
So, the octal equivalent of 1101010₂ is 152₈.

Conversion: Binary to Decimal


Explanation:
To convert a binary number to decimal (base-10), multiply each digit of the binary
number by 2 raised to the power of its position, starting from 0 on the right. Then, sum
the results.
 Step 1: Write down the binary number.
 Step 2: Multiply each binary digit by 2^n, where n is the position of the digit
(starting from 0 on the right).
 Step 3: Add up all the products.
Example:
Convert the binary number 1101₂ to decimal.
1. The binary number is 1101₂.
2. Assign powers of 2 starting from the right: 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0
3. Calculate each term:
o 1 * 2^3 = 8
o 1 * 2^2 = 4
o 0 * 2^1 = 0
o 1 * 2^0 = 1
4. Add the results: 8 + 4 + 0 + 1 = 13
So, the decimal equivalent of 1101₂ is 13₁₀.
Conversion: Binary to Hexadecimal
Explanation:
To convert a binary number to hexadecimal (base-16), group the binary digits into sets
of four (starting from the right). Then, convert each group of four binary digits to the
corresponding hexadecimal digit.
 Step 1: Group the binary number into sets of four digits starting from the right.
 Step 2: If the leftmost group has fewer than four digits, add leading zeros to make
it a group of four.
 Step 3: Convert each group of four binary digits into its hexadecimal equivalent.
Example:
Convert the binary number 10110111₂ to hexadecimal.
1. Group the binary digits: 1011 0111.
2. Add leading zeros if necessary: 1011 0111 (no need in this case).
3. Now convert each group:
o 1011₂ = B₁₆
o 0111₂ = 7₁₆
So, the hexadecimal equivalent of 10110111₂ is B7₁₆.

Conversion: Binary to Octal


Explanation:
To convert a binary number to an octal (base-8) number, group the binary digits in sets
of three (starting from the right). Then, convert each group of three binary digits to the
corresponding octal digit.
 Step 1: Start from the rightmost digit and group the binary number into groups of
three.
 Step 2: If the leftmost group has less than three digits, add leading zeros to make
it a group of three.
 Step 3: Convert each group of three binary digits into its octal equivalent.
Example:
Convert the binary number 1101010₂ to octal.
1. Group the binary digits: 1 101 010 (start from the right).
2. Add leading zeros if necessary to make each group of three digits: 001 101 010.
3. Now convert each group:
o 001₂ = 1₈
o 101₂ = 5₈
o 010₂ = 2₈
So, the octal equivalent of 1101010₂ is 152₈.
Conversion: Binary to Decimal
Explanation:
To convert a binary number to decimal (base-10), multiply each digit of the binary
number by 2 raised to the power of its position, starting from 0 on the right. Then, sum
the results.
 Step 1: Write down the binary number.
 Step 2: Multiply each binary digit by 2^n, where n is the position of the digit
(starting from 0 on the right).
 Step 3: Add up all the products.
Example:
Convert the binary number 1101₂ to decimal.
1. The binary number is 1101₂.
2. Assign powers of 2 starting from the right: 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0
3. Calculate each term:
o 1 * 2^3 = 8
o 1 * 2^2 = 4
o 0 * 2^1 = 0
o 1 * 2^0 = 1
4. Add the results: 8 + 4 + 0 + 1 = 13
So, the decimal equivalent of 1101₂ is 13₁₀.
Conversion: Binary to Hexadecimal
Explanation:
To convert a binary number to hexadecimal (base-16), group the binary digits into sets
of four (starting from the right). Then, convert each group of four binary digits to the
corresponding hexadecimal digit.
 Step 1: Group the binary number into sets of four digits starting from the right.
 Step 2: If the leftmost group has fewer than four digits, add leading zeros to make
it a group of four.
 Step 3: Convert each group of four binary digits into its hexadecimal equivalent.
Example:
Convert the binary number 10110111₂ to hexadecimal.
1. Group the binary digits: 1011 0111.
2. Add leading zeros if necessary: 1011 0111 (no need in this case).
3. Now convert each group:
o 1011₂ = B₁₆
o 0111₂ = 7₁₆
So, the hexadecimal equivalent of 10110111₂ is B7₁₆.
Octal decimal Conversion: Octal to Binary
Explanation:
To convert an octal (base-8) number to binary (base-2), each octal digit is replaced by its
corresponding 3-bit binary equivalent.
 Step 1: Take each octal digit and convert it to a 3-bit binary equivalent.
 Step 2: Concatenate the resulting binary digits.
Example:
Convert the octal number 156₈ to binary.
1. Convert each octal digit to binary:
o 1₈ = 001₂
o 5₈ = 101₂
o 6₈ = 110₂
2. Combine the results: 001 101 110
So, the binary equivalent of 156₈ is 001101110₂ (which can also be written as 1101110₂
without the leading zero).

Conversion: Octal to Decimal


Explanation:
To convert an octal number to decimal (base-10), multiply each octal digit by 8 raised to
the power of its position, starting from 0 on the right. Then, sum the results.
 Step 1: Write down the octal number.
 Step 2: Multiply each octal digit by 8^n, where n is the position of the digit
(starting from 0 on the right).
 Step 3: Add up all the products.
Example:
Convert the octal number 156₈ to decimal.
1. The octal number is 156₈.
2. Assign powers of 8 starting from the right: 1 * 8^2 + 5 * 8^1 + 6 * 8^0.
3. Calculate each term:
o 1 * 8^2 = 1 * 64 = 64
o 5 * 8^1 = 5 * 8 = 40
o 6 * 8^0 = 6 * 1 = 6
4. Add the results: 64 + 40 + 6 = 110
So, the decimal equivalent of 156₈ is 110₁₀.

Conversion: Octal to Hexadecimal


Explanation:
To convert an octal number to hexadecimal (base-16), first convert the octal number to
binary, and then convert the binary number to hexadecimal.
 Step 1: Convert the octal number to binary (group each octal digit into its 3-bit
binary equivalent).
 Step 2: Convert the resulting binary number into hexadecimal (group the binary
digits into sets of four and convert each set to its hexadecimal equivalent).
Example:
Convert the octal number 156₈ to hexadecimal.
1. Convert octal to binary:
o 1₈ = 001₂
o 5₈ = 101₂
o 6₈ = 110₂
Combine the binary digits: 001 101 110 or 1101110₂.
2. Convert binary to hexadecimal:
o Group the binary digits into sets of four: 0001 1011 10 (add leading zeros if
necessary).
o 0001₂ = 1₁₆
o 1011₂ = B₁₆
o 0010₂ = 2₁₆
So, the hexadecimal equivalent of 1101110₂ is 1B2₁₆.
Thus, the hexadecimal equivalent of 156₈ is 1B2₁₆.
Decimal Conversion: Decimal to Binary
Explanation:
To convert a decimal number to binary (base-2), repeatedly divide the decimal number
by 2, keeping track of the remainders. The binary number is formed by writing the
remainders in reverse order (from last to first).
 Step 1: Divide the decimal number by 2.
 Step 2: Record the remainder (either 0 or 1).
 Step 3: Divide the quotient again by 2, and repeat the process.
 Step 4: Once you reach a quotient of 0, the binary number is the list of
remainders read from bottom to top.
Example:
Convert the decimal number 13₁₀ to binary.
1. Divide 13 by 2:
o Quotient = 6, Remainder = 1
2. Divide 6 by 2:
o Quotient = 3, Remainder = 0
3. Divide 3 by 2:
o Quotient = 1, Remainder = 1
4. Divide 1 by 2:
o Quotient = 0, Remainder = 1
Read the remainders in reverse order: 1101₂.
So, the binary equivalent of 13₁₀ is 1101₂.

Conversion: Decimal to Octal


Explanation:
To convert a decimal number to octal (base-8), repeatedly divide the decimal number by
8, keeping track of the remainders. The octal number is formed by writing the
remainders in reverse order.
 Step 1: Divide the decimal number by 8.
 Step 2: Record the remainder (between 0 and 7).
 Step 3: Divide the quotient again by 8, and repeat the process.
 Step 4: Once you reach a quotient of 0, the octal number is the list of remainders
read from bottom to top.
Example:
Convert the decimal number 110₁₀ to octal.
1. Divide 110 by 8:
o Quotient = 13, Remainder = 6
2. Divide 13 by 8:
o Quotient = 1, Remainder = 5
3. Divide 1 by 8:
o Quotient = 0, Remainder = 1
Read the remainders in reverse order: 156₈.
So, the octal equivalent of 110₁₀ is 156₈.

Conversion: Decimal to Hexadecimal


Explanation:
To convert a decimal number to hexadecimal (base-16), repeatedly divide the decimal
number by 16, keeping track of the remainders. The hexadecimal number is formed by
writing the remainders in reverse order. Hexadecimal uses digits 0-9 and letters A-F to
represent values.
 Step 1: Divide the decimal number by 16.
 Step 2: Record the remainder (between 0 and 15). If the remainder is 10 or
higher, use letters A-F (A = 10, B = 11, ..., F = 15).
 Step 3: Divide the quotient again by 16, and repeat the process.
 Step 4: Once you reach a quotient of 0, the hexadecimal number is the list of
remainders read from bottom to top.
Example:
Convert the decimal number 110₁₀ to hexadecimal.
1. Divide 110 by 16:
o Quotient = 6, Remainder = 14 (which is E in hexadecimal)
2. Divide 6 by 16:
o Quotient = 0, Remainder = 6
Read the remainders in reverse order: 6E₁₆.
So, the hexadecimal equivalent of 110₁₀ is 6E₁₆.
Hexadecimal Conversion: Hexadecimal to Binary
Explanation:
To convert a hexadecimal number (base-16) to binary (base-2), replace each
hexadecimal digit with its 4-bit binary equivalent. Each hexadecimal digit corresponds to
exactly 4 binary digits.
 Step 1: Write down the hexadecimal number.
 Step 2: Replace each hexadecimal digit with its 4-bit binary equivalent.
 Step 3: Concatenate the binary groups.
Example:
Convert the hexadecimal number 3F₁₆ to binary.
1. Convert each hexadecimal digit to binary:
o 3₁₆ = 0011₂
o F₁₆ = 1111₂
So, the binary equivalent of 3F₁₆ is 00111111₂, or simply 111111₂ without the leading
zeros.
Conversion: Hexadecimal to Octal
Explanation:
To convert a hexadecimal number to octal (base-8), follow these two steps:
1. First, convert the hexadecimal number to binary.
2. Then, convert the binary number to octal by grouping the binary digits into sets of
three and converting each set to its octal equivalent.
Example:
Convert the hexadecimal number 3F₁₆ to octal.
1. Convert Hexadecimal to Binary:
o 3₁₆ = 0011₂
o F₁₆ = 1111₂
So, 3F₁₆ becomes 00111111₂.
2. Convert Binary to Octal:
o Group the binary digits into sets of three: 000 111 111
o Convert each group:
 000₂ = 0₈
 111₂ = 7₈
 111₂ = 7₈
So, the octal equivalent of 3F₁₆ is 077₈.
Conversion: Hexadecimal to Decimal
Explanation:
To convert a hexadecimal number to decimal (base-10), multiply each hexadecimal digit
by 16 raised to the power of its position, starting from 0 on the right.
 Step 1: Write down the hexadecimal number.
 Step 2: For each digit, multiply it by 16^n (where n is the position of the digit,
starting from 0).
 Step 3: Add up all the products to get the decimal value.
Example:
Convert the hexadecimal number 3F₁₆ to decimal.
1. The hexadecimal number is 3F₁₆.
2. Assign powers of 16 starting from the right:
o 3 * 16^1 = 3 * 16 = 48
o F * 16^0 = 15 * 1 = 15 (since F in hexadecimal is 15 in decimal)
3. Add the results: 48 + 15 = 63
So, the decimal equivalent of 3F₁₆ is 63₁₀.

You might also like