Model Question
BIM 3rd Semester/IT236:Microprocessor and Computer Architecture
Group “A”
Brief answer questions:
1.What is instruction cycle?
Ans: The instruction cycle, also known as the fetch-decode-execute cycle, is a fundamental concept in computer architecture that describes the process by which a computer executes instructions.
2.What do you mean by Data and Address Bus?
Ans: The data bus is a bi-directional pathway used for transferring data between the CPU (Central Processing Unit), memory, and peripherals such as input/output devices.
The address bus is another set of parallel wires used for specifying a physical memory address.
3.Define DMA.
Ans: DMA stands for Direct Memory Access. It’s a feature of computer systems that allows certain hardware subsystems within the computer to access system memory for reading from or writing to it independently of the central processing unit (CPU).
4.Explain about SAP2.
Ans:
SAP2 is an improvement over SAP1, featuring a more advanced architecture. It includes a more sophisticated instruction set, additional registers, and more complex control logic.SAP2 has separate buses for data and instructions, allowing for simultaneous instruction fetch and data transfer.
5.What do you mean by Operation Code?
Ans: “Operation code” generally refers to a set of instructions that a computer’s central processing unit (CPU) can execute. In computing, it’s often represented in binary form (0s and 1s) and corresponds to specific operations that the CPU can perform, such as arithmetic operations (addition, subtraction, multiplication, division), logical operations (AND, OR, NOT), data movement (loading from memory, storing to memory), and control flow operations (branching, jumping).
6.Define Instruction Format.
Ans: An instruction format refers to the structure or layout used to encode instructions in a computer’s machine language. It specifies how different parts of an instruction are arranged within a binary representation, which the CPU (Central Processing Unit) can interpret and execute.
7.What do you mean by Shift Microoperations.
Ans: Shift microoperations are fundamental operations in digital computer systems that involve shifting the binary digits (bits) of a binary number to the left or right by a certain number of positions. These operations are commonly used in various computational tasks, including data manipulation, arithmetic operations, and control operations within the CPU.
8.Define CLSC architecture.
Ans: The CLSC (Closed-Loop Supply Chain) architecture refers to a supply chain model that integrates both the forward and reverse flows of products, materials, and information.
9.What do you mean by Memory Hierarchy?
Ans: Memory hierarchy refers to the arrangement of different types of memory storage devices in a computer system, organized in a hierarchy based on their speed, capacity, and cost.
10.Define Data Dependency.
Ans: Data dependency refers to the relationship between instructions in a computer program, where the execution of one instruction relies on the result produced by another instruction. In other words, it describes the flow of data between different operations or instructions within a program.
Group- “B”
Short Answers Question
Attempt any Five Questions
11.Differentiate between Microprocessor and Computer Architecture.
Ans: Here is the different between Microprocessor and computer Architecture:
Aspect | Microprocessor | Computer Architecture |
---|---|---|
Definition | A microprocessor is a single-chip CPU that contains the arithmetic logic unit (ALU), control unit, and registers. It executes instructions stored in memory. | Computer architecture refers to the design and structure of the computer system, including its hardware components, organization, and how they interact to perform tasks. |
Scope | Primarily focuses on the internal operations and functionalities of the CPU. | Encompasses a broader spectrum, including CPU design, memory hierarchy, input/output systems, and interconnection networks. |
Functionality | Executes instructions, performs arithmetic and logical operations, and manages data flow within the CPU. | Defines the overall system organization, instruction set architecture (ISA), memory organization, input/output systems, and system-level functionalities. |
Components | Includes ALU, control unit, registers, instruction decoder, and execution units. | Encompasses CPU, memory subsystem, input/output devices, buses, cache memory, and interconnection networks. |
Implementation | Implemented as a single integrated circuit (IC) or chip. | Implemented as a combination of hardware and software components, including integrated circuits, buses, and peripheral devices. |
Focus | Focuses on optimizing the performance and efficiency of the CPU. | Focuses on designing a well-balanced system that meets performance, cost, and power consumption requirements. |
Examples | Intel Core i7, AMD Ryzen series, ARM Cortex series. | x86 architecture, ARM architecture, MIPS architecture. |
12.Discuss the Intel 8085 Instructions.
Ans:
The Intel 8085 microprocessor supports five types of interrupts to handle different events or conditions. Interrupts provide a mechanism for the microprocessor to temporarily suspend its current task and respond to a specific event.
Here are the types of interrupts in the Intel 8085:
- RST (Restart) Interrupts (RST 7.5, RST 6.5, RST 5.5):
- RST 7.5, RST 6.5, and RST 5.5 are hardware interrupts that are vectored to specific memory locations. They are often used for handling external events or for initiating specific routines.
- The interrupt vector addresses for these interrupts are 7.5 times the corresponding number (e.g., RST 7.5 vector address is 7.5 * 8 = 60).
- TRAP Interrupt:
- The TRAP interrupt is a non-maskable interrupt that is intended for handling priority-level tasks or critical events.
- It has the highest priority among the interrupts in the Intel 8085.
- INTE (Interrupt Enable) and INT (Interrupt Request) Pins:
- The INTE pin is used to enable or disable interrupts. When INTE is high, interrupts are enabled; when it is low, interrupts are disabled.
- The INT pin is the interrupt request pin. When an interrupt is requested, the microprocessor checks the status of the INTE pin.
- External Hardware Interrupt (INTR):
- The INTR pin is another interrupt request pin that is used to request a hardware interrupt.
- If INTE is high and the microprocessor recognizes a high signal on the INTR pin, it acknowledges the external interrupt.
- SID (Serial Input Data) and SOD (Serial Output Data) Pins:
- These pins are used for serial communication and can be used to interrupt the microprocessor during serial data transfer.
13.Explain the Arithmetic Microoperations with example.
Ans: Arithmetic microoperation is such type of microoperation which performs arithmetic operation on numeric data stored in the registers.
Here’s an explanation of arithmetic microoperations with examples:
Addition: In the context of microoperations, addition involves adding the contents of two registers and storing the result in another register. For example:
A = 1010 (decimal 10)
B = 0011 (decimal 3)
------------------
A + B = 1101 (decimal 13)
This operation would involve transferring the contents of registers A and B to the ALU, performing the addition operation in the ALU, and then transferring the result back to a register.
Subtraction: In microoperations, subtraction involves subtracting the contents of one register from another and storing the result in another register. For example:
A = 1010 (decimal 10)
B = 0011 (decimal 3)
------------------
A - B = 0111 (decimal 7)
Like addition, subtraction would involve transferring the contents of registers A and B to the ALU, performing the subtraction operation in the ALU, and then transferring the result back to a register.
Increment: Increment involves adding 1 to the content of a register. For example:
A = 1010 (decimal 10)
After incrementing A:
A = 1011 (decimal 11)
Incrementing a register typically involves transferring the content of the register to the ALU, performing the addition operation with the value 1, and then storing the result back in the same register.
Decrement: Decrement involves subtracting 1 from the content of a register. For example:
A = 1010 (decimal 10)
After decrementing A:
A = 1001 (decimal 9)
Decrementing a register typically involves transferring the content of the register to the ALU, performing the subtraction operation with the value 1, and then storing the result back in the same register.
shift: shift operations are a type of logical shift operation where the bits of a binary number are shifted to the left or right.
14.Discuss the Symbolic Microinstructions.
Ans: Symbolic microinstructions are representations of microoperations using symbolic codes rather than binary codes. These symbolic codes are easier for humans to understand and manipulate. Symbolic microinstructions are typically used in microprogramming, where the control unit of a processor executes a sequence of microinstructions to carry out complex operations.
Some key aspects of symbolic microinstructions are:
Mnemonic Representation:
Each microoperation is represented by a mnemonic, which is a symbolic code that describes the operation in a human-readable format. Mnemonics are chosen to be intuitive and descriptive, making it easier for programmers and designers to understand the microprogram.
Operands and Addressing Modes:
Symbolic microinstructions may include operands to specify data or addresses involved in the operation. These operands can be represented symbolically, such as register names or memory addresses. Additionally, symbolic microinstructions may support various addressing modes, such as immediate, direct, indirect, or indexed addressing.
Control Signals:
Symbolic microinstructions also specify control signals that activate various components of the processor, such as registers, ALU, or buses. These control signals determine the behavior of the microoperation and facilitate the flow of data within the processor.
Macroinstructions:
Symbolic microinstructions can also include macroinstructions, which represent higher-level operations composed of multiple microoperations. Macroinstructions provide a way to abstract and simplify complex operations, making microprogramming more manageable.
Assembler Language:
Symbolic microinstructions are often defined using an assembler language, which is a programming language specifically designed for writing microprograms. Assembler language provides syntax and constructs for defining symbolic microinstructions, including mnemonics, operands, control signals, and macroinstructions.
15.Explain the Control Unit of Basic Computer.
Ans: The Control Unit (CU) is a crucial component of a basic computer’s architecture, responsible for coordinating and controlling the operations of the entire system. It plays a fundamental role in fetching, decoding, executing, and managing instructions from the computer’s memory.
The main functions and components typically found in the Control Unit of a basic computer:
- Instruction Fetch (IF):
- The Control Unit fetches instructions from the memory unit sequentially, usually from the Program Counter (PC) or Instruction Register (IR).
- The PC holds the address of the next instruction to be fetched, and after fetching an instruction, it gets updated to point to the next instruction in sequence.
- Instruction Decode (ID):
- Once an instruction is fetched, the Control Unit decodes it to determine what operation needs to be performed.
- Instruction decoding involves interpreting the instruction opcode and identifying the operands, if any.
- Control Signal Generation:
- Based on the decoded instruction, the Control Unit generates control signals that direct the various components of the computer to perform the necessary operations.
- Control signals may include commands to fetch data from memory, perform arithmetic or logical operations, store results, or modify the program flow.
- Execution of Instructions:
- After decoding and generating the necessary control signals, the Control Unit oversees the execution of the instruction.
- This involves coordinating the activities of the Arithmetic Logic Unit (ALU) and other relevant components to perform the required computation or data manipulation.
- Branching and Control Transfer:
- The Control Unit manages control transfer instructions, such as branches and jumps, which alter the flow of program execution.
- It updates the PC accordingly to ensure that the next instruction fetched corresponds to the correct address in memory.
- Error Detection and Handling:
- The Control Unit may also be responsible for detecting and handling errors during the execution of instructions.
- It monitors for various types of errors, such as arithmetic overflow, invalid memory accesses, or illegal instructions, and takes appropriate actions to handle them, such as halting the execution or signaling an error condition.
16.Explain I/O Processor with example.
Ans: An Input-Output Processor (IOP), also known as an I/O processor, is a specialized processor or microcontroller dedicated to handling input and output operations in a computer system. Its primary function is to manage data transfers between the central processing unit (CPU), memory, and various peripheral devices such as disk drives, network interfaces, keyboards, and displays.
Here’s an example to illustrate how an I/O processor works:
Let’s consider a scenario where a computer system needs to read data from a hard disk and display it on a monitor.
- Data Request:
- The CPU initiates a data read operation from the hard disk by sending a request to the I/O processor.
- I/O Processing:
- The I/O processor receives the request and manages the communication with the hard disk controller.
- It sends commands to the hard disk controller to read the requested data from the disk.
- Data Transfer:
- Once the data is retrieved from the hard disk, the I/O processor buffers it in its memory temporarily.
- CPU Notification:
- Upon completing the data transfer, the I/O processor notifies the CPU that the requested data is ready.
- Data Display:
- The CPU then accesses the data from the I/O processor’s memory and processes it as needed.
- If the data is meant to be displayed on the monitor, the CPU sends instructions to the display controller through the I/O processor.
- Display Output:
- The I/O processor communicates with the display controller to render the data on the monitor.
Group “C”
Long Answer Question.
Attempt any three questions.
17.Explain the memory mapping function with example.
Ans: Memory mapping is a technique used in computer systems to associate a file or device with a range of memory addresses. This allows the file or device to be accessed as if it were an array in memory, simplifying input/output operations and improving performance.
Here’s a simplified explanation of how memory mapping works, along with an example:
- Mapping the File: When a file is memory-mapped, a portion of the file is loaded into memory and associated with a range of memory addresses. This range is typically managed by the operating system’s memory management unit.
- Accessing the File: Once the file is mapped into memory, you can access its contents as if you were accessing memory directly. This means you can read from or write to the file using standard memory access operations, such as reading from or writing to specific memory addresses.
- Benefits: Memory mapping offers several benefits:
- Efficiency: Accessing memory-mapped files is often faster than using traditional file I/O operations because it avoids the overhead of system calls for each read or write operation.
- Simplicity: Memory-mapped files can be accessed using familiar memory access techniques, making it easier to work with files in memory.
- Integration: Memory-mapped files can be seamlessly integrated with existing memory-based data structures and algorithms
18.Multiply -7×8 using Booth multiplication algorithm.
Ans:
First, let’s convert -7 and 8 to their binary representations:
-7 = 1001 (2’s complement of 7) 8 = 0100
Now, we’ll use the Booth’s algorithm to multiply these two numbers.
Step 1: AC = 0000, QR = 1001, Qn+1 = 0, SC = 4
Step 2: Qn Qn+1 = 00, so we do AC + (BR’)+1, which gives AC = 0101
Step 3: Right shift AC and QR, we get: AC = 0010, QR = 1100, Qn+1 = 1
Step 4: Qn Qn+1 = 10, so we do AC + BR, which gives AC = 1101
Step 5: Right shift AC and QR, we get: AC = 1110, QR = 1110, Qn+1 = 0
Step 6: Qn Qn+1 = 00, so we do right shift only: AC = 1111, QR = 0111, Qn+1 = 0
Step 7: Qn Qn+1 = 00, so we do right shift only: AC = 1111, QR = 0011, Qn+1 = 1
Step 8: Qn Qn+1 = 10, so we do AC + BR, which gives AC = 0100
Step 9: Right shift AC and QR, we get: AC = 0010, QR = 0001, Qn+1 = 0
The final product is calculated as: Product = AC QR Product = 0010 0001 = -56
19.Explain with example of Arithmetic Pipeline.
Ans: Arithmetic Pipelining divides an arithmetic problem into various sub problems for execution in various pipeline segments. It is used for floating point operations, multiplication and various other computations.
The suboperations of Arithmetic pipeline for floating point addition and Subtraction involve 4 stages:
- Compare the exponents.
- Align the mantissas.
- Add or subtract the mantissas.
- Normalise the result
Example:
Let us consider two numbers:-
Explanation: First of all the two exponents are subtracted to give 3-2=1. Thus 3 becomes the exponent of result and the smaller exponent is shifted 1 times to the right to give
Finally the two numbers are added to produce
As the result is already normalized the result remains the same.
20.Describe the Data Transfer Instruction.
Ans: Data transfer instructions are fundamental operations in computer architecture that facilitate the movement of data between different storage locations within the computer’s memory, registers, or between memory and I/O devices.
Here’s a description of data transfer instructions:
Load (LD) Instruction:
The load instruction transfers data from the memory into a register within the CPU. It typically involves specifying the memory address from which data is to be loaded. Once fetched, the data is stored in the designated register for further processing by the CPU.
Store (ST) Instruction:
The store instruction transfers data from a register within the CPU to a specified location in memory. Like the load instruction, it involves specifying the memory address where the data is to be stored. The content of the register is then written to that memory location.
Move (MOV) Instruction:
The move instruction copies data from one location to another within the CPU or between CPU registers and memory. It is used when the source and destination are different but the data size remains the same. Move instructions are commonly used for register-to-register transfers.
Push and Pop Instructions:
These instructions are often used in stack-based architectures. Push instruction stores data onto the stack (memory) and decreases the stack pointer, while pop instruction retrieves data from the stack and increases the stack pointer. They are commonly used for subroutine calls, managing function parameters and local variables.
Exchange (XCHG) Instruction:
This instruction exchanges the contents of two specified data locations. It is often used for swapping the values of two registers or memory locations without needing an additional temporary storage location.
Input/Output (I/O) Instructions:
These instructions transfer data between the CPU and external devices such as keyboards, displays, and storage devices. They are essential for communication between the CPU and peripherals.
Move Immediate (MOVI) Instruction:
This instruction moves a constant value directly into a register or memory location. It is particularly useful for initializing variables or providing immediate data to be used in arithmetic or logical operations.
Group “D”
Comprehensive Questions
Attempt all questions.
21.Explain the main purpose of addressing mode techniques use in the computers? Mention the different types of addressing modes and compare them.
Ans: Addressing modes in computer architecture refer to the various methods by which the CPU accesses operands or data in memory. The main purpose of addressing modes is to provide flexibility and efficiency in accessing data and instructions during program execution. Different addressing modes offer different advantages and are suited to different programming scenarios.
Here are some common addressing modes and their comparisons:
- Immediate Addressing Mode:
- In this mode, the operand itself is provided in the instruction.
- It is fast and straightforward, as the operand is directly available.
- However, it is limited in the range of values that can be directly encoded in the instruction.
- Direct Addressing Mode:
- The operand’s memory address is directly specified in the instruction.
- Simple and easy to understand.
- It requires the entire memory address to be specified in the instruction, which can limit the range of addresses accessible.
- Indirect Addressing Mode:
- The instruction contains a memory address, which in turn contains the actual operand.
- Allows for more flexibility as the address can be dynamically determined during execution.
- Requires an additional memory access, which can introduce overhead.
- Register Addressing Mode:
- The operand is located in a CPU register.
- Fastest mode as registers are located within the CPU.
- Limited number of available registers.
- Register Indirect Addressing Mode:
- The address of the operand is stored in a register.
- Provides flexibility similar to indirect addressing but with potentially faster access.
- Still requires an additional register for addressing.
- Indexed Addressing Mode:
- The operand’s address is calculated by adding an index value to a base address stored in a register.
- Useful for accessing elements in arrays or structures.
- Requires additional arithmetic operations for address calculation.
- Relative Addressing Mode:
- The address of the operand is calculated relative to the current instruction’s address.
- Often used in branching instructions.
- Simplifies addressing for branching operations but may restrict the range of addresses accessible.
- Stack Addressing Mode:
- Operands are implicitly accessed from the top of the stack.
- Commonly used for subroutine calls and managing local variables.
- Efficient for managing program flow but can introduce overhead due to stack manipulation.
22.Differentiate between restoring and non-restoring division. Divide 7/3 using non-restoring division.
Ans: Here is the different between restoring and non – restoring division:
Aspect | Restoring Division | Non-Restoring Division |
---|---|---|
Operation | Subtracts the divisor from the partial remainder | Adds or subtracts the divisor from the partial remainder, based on the sign of the result |
Sign of Quotient | Initially set to 0 (positive), changes during division | Initially set to 0 (positive), changes during division |
Partial Remainder | Always positive or zero | Can be negative or positive depending on the operation |
Correcting Step | Always required | Only required when the partial remainder becomes negative |
Algorithm Complexity | More complex, requires additional steps for correction | Slightly simpler, avoids some correction steps |
Division Speed | Generally slower due to additional correction steps | Generally faster due to fewer correction steps |
Hardware Implementation | More complex hardware required for correction logic | Simpler hardware can be used due to fewer correction steps |