Question: – 4(a) What are micro-operations? What are its various types? Illusterate the implementation of each category of micro-operations through its block diagram(s).
Answer:- Computer Organization | Micro-Operation
In computer central processing units, micro-operations (also known as micro-ops) are the functional or atomic, operations of a processor. These are low level instructions used in some designs to implement complex machine instructions. They generally perform operations on data stored in one or more registers. They transfer data between registers or between external buses of the CPU, also performs arithmetic and logical operations on registers.
In executing a program, operation of a computer consists of a sequence of instruction cycles, with one machine instruction per cycle. Each instruction cycle is made up of a number of smaller units – Fetch, Indirect, Execute and Interrupt cycles. Each of these cycles involves series of steps, each of which involves the processor registers. These steps are referred as micro-operations. the prefix micro refers to the fact that each of the step is very simple and accomplishes very little. Figure below depicts the concept being discussed here.
Summary: Execution of a program consists of sequential execution of instructions. Each instruction is executed during an instruction cycle made up of shorter sub-cycles(example – fetch, indirect, execute, interrupt). The performance of each sub-cycle involves one or more shorter operations, that is, micro-operations.
What are the different types of micro-operations?
The micro-operations in computers are classified into the following categories:
– Register transfer micro-operations: These type of micro operations are used to transfer from one register to another binary information.
– Arithmetic micro-operations : These micro-operations are used to perform on numeric data stored in the registers some arithmetic operations.
– Logic micro-operations: These micro operations are used to perform bit style operations / manipulations on non numeric data.
– Shift micro operations: As their name suggests they are used to perform shift operations in data store in registers
We all know computer system is very useful thing in today’s era and if I tell about architecture of this great invention it has various components and it has very complex hardware implemented perfectly. So today this post is all about Microoperations
used by hardware of computer system and it is also considered in architecture of computer system.
In system design using modular approach having components and join these components to make a system, components could be registers, multiplexers, decoders, adders etc.
Microoperations are the basic operations that can be performed by system on data stored in registers. Each microoperation describes a simple operation performed on data in one or more registers.
Microoperations are used by processors to complete their tasks to transfer data from one place to another. If we take this more specific then microoperation could be for transfer data from register to register, between registers and external bus, or accomplish a simple ALU operation.
Types of Microoperations
- ARITHMETIC MICROOPERATIONS
- LOGIC MICROOPERATIONS
- SHIFT MICROOPERATIONS
We know basic arithmetic operations are Addition, Subtraction, Increment, Decrement, and Shift.
(In this operation, data presented in R1 register is added with data in R2 register and result will be stored in R3 register)
(Data presented in R2 register is subtracted from data in R1 register and result will be stored in R3 register)
One’s Complement Microoperation
(Data value in R2 register is first complemented then will be replaced with itself)
Like these arithmetic microoperations there are many more microoperations for arithmetic. But concept is same perform arithmetic operation on data values in registers and store them into the same register or another.
In Logic Microoperation there could be different operations like OR, AND, NOT, XOR etc. but these are basic microperation in logic type.
OR Microoperation: –
Symbol used for OR Microoperation is “v” or “+”. “v” this symbol is used when we are showing OR microoperation on bits and “+” this symbol is used for showing OR microoperation when we are using Registers (R1, R2 etc) for implementing OR Microoperation.
Example: – 100110 v 1010110 = 1110110
Explanation of example, in this example each bit starting from right side will be compared with OR operation and we will get result after all comparisons and in last if bits are left we can place them as it is.
AND Microoperation: –
This is very similar to OR microoperation but, it have different symbol and different operation that is AND Gate concept.
Symbol is “^”
Example: – 100110 ^ 1010110 = 0000110
Bits are compared from right side with AND gate operation.
In NOT Microoperation “bar” symbol is used
There are much more logic microoperations are there but process of implementation is same just have their own different calculations.
Logic Microoperations Hardware Implementation
The hardware implementation of logic microoperations requires that logic gates be inserted for each bit or pair of bits in the registers to perform the required logic function
Most computers use only four (AND, OR, XOR, and NOT) from which all others can be derived.
Question: -4 (b) what is a Control Unit? What is micro programmed design of control unit? Illustrate its working.
Answer: -Control Unit
A control unit or CU is circuitry that directs operations within a computer’s processor. It lets the computer’s logic unit, memory, as well as both input and output devices know how to respond to instructions received from a program. Examples of devices that utilize control units include CPUs and GPUs.
A control unit works by receiving input information that it converts into control signals, which are then sent to the central processor. The computer’s processor then tells the attached hardware what operations to carry out. The functions that a control unit performs are dependent on the type of CPU, due to the variance of architecture between different manufacturers. The following diagram illustrates how instructions from a program are processed.
Design of Control Unit
Control unit generates timing and control signals for the operations of the computer. The control unit communicates with ALU and main memory. It also controls the transmission between processor, memory and the various peripherals. It also instructs the ALU which operation has to be performed on data.
Control unit can be designed by two methods which are given below:
Hardwired Control Unit
It is implemented with the help of gates, flip flops, decoders etc. in the hardware. The inputs to control unit are the instruction register, flags, timing signals etc. This organization can be very complicated if we have to make the control unit large.
If the design has to be modified or changed, all the combinational circuits have to be modified which is a very difficult task.
Onlinestudy.guru —> explains Control Unit (CU)
A CU takes its input from the instruction and status registers. Its rules of operation, or microprogram, are encoded in a programmable logic array (PLA), random logic or read-only memory (ROM).
CU functions are as follows:
- Controls sequential instruction execution
- Interprets instructions
- Guides data flow through different computer areas
- Regulates and controls processor timing
- Sends and receives control signals from other computer devices
- Handles multiple tasks, such as fetching, decoding, execution handling and storing results
CUs are designed in two ways:
- Hardwired control: Design is based on a fixed architecture. The CU is made up of flip-flops, logic gates, digital circuits and encoder and decoder circuits that are wired in a specific and fixed way. When instruction set changes are required, wiring and circuit changes must be made. This is preferred in a reduced instruction set computing (RISC) architecture, which only has a small number of instructions.
- Microprogram control: Microprograms are stored in a special control memory and are based on flowcharts. They are replaceable and ideal because of their simplicity.
THE MICRO-PROGRAMMED CONTROL
- The logic of the control unit is specified by a micro-program. A micro-program is also called firmware (midway between the hardware and the software). It consists of:
- (a) One or more micro-operations to be executed; and
- (b) The information about the micro-instruction to be executed next.
- The general configuration of a micro-programmed control unit is demonstrated in Figure 5 below:
- The micro-instructions are stored in the control memory. The address register for the control memory contains the address of the next instruction that is to be read. The control memory Buffer Register receives the micro-instruction that has been read. A micro-instruction execution primarily involves the generation of desired control signals and signals used to determine the next micro-instruction to be executed. The sequencing logic section loads the control memory address register. It also issues a read command to control memory. The following functions are performed by the micro-programmed control unit:
- The sequence logic unit specifies the address of the control memory word that is to be read, in the Address Register of the Control Memory. It also issues the READ signal.
- The desired control memory word is read into control memory Buffer Register.
- The content of the control memory buffer register is decoded to create control signals and next-address information for the sequencing logic unit.
- The sequencing logic unit finds the address of the next control word on the basis of the next-address information from the decoder and the ALU flags.
- This decoder translates the opcode of the IR into a control memory address.
Question: – 5(a) Explain Superscalar architecture.
Answer: -Superscalar architecture
Superscalar describes a microprocessor design that makes it possible for more than one instruction at a time to be executed during a single clock cycle . In a superscalar design, the processor or the instruction compiler is able to determine whether an instruction can be carried out independently of other sequential instructions, or whether it has a dependency on another instruction and must be executed in sequence with it. The processor then uses multiple execution units to simultaneously carry out two or more independent instructions at a time. Superscalar design is sometimes called “second generation RISC .”
A superscalar CPU can execute more than one instruction per clock cycle. Because processing speeds are measured in clock cycles per second (megahertz), a superscalar processor will be faster than a scalar processor rated at the same megahertz.
A superscalar architecture includes parallel execution units, which can execute instructions simultaneously. This parallel architecture was first implemented in RISCprocessors, which use short and simple instructions to perform calculations. Because of their superscalar capabilities, RISC processors have typically performed better than CISC processors running at the same megahertz. However, most CISC-based processors (such as the Intel Pentium) now include some RISC architecture as well, which enables them to execute instructions in parallel. Nearly all processors developed after 1998 are superscalar.
Question: – 5(a) Explain CPU Registers.
Answer: – CPU Registers
A processor register (CPU register) is one of a small set of data holding places that are part of the computer processor.
A register may hold an instruction, a storage address, or any kind of data (such as a bit sequence or individual characters). Some instructions specify registers as part of the instruction. For example, an instruction may specify that the contents of two defined registers be added together and then placed in a specified register.
A register must be large enough to hold an instruction – for example, in a 64-bit computer, a register must be 64 bits in length. In some computer designs, there are smaller registers – for example, half-registers – for shorter instructions. Depending on the processor design and language rules, registers may be numbered or have arbitrary names.
A processor typically contains multiple index registers, also known as address registers or registers of modification. The effective address of any entity in a computer includes the base, index, and relative addresses, all of which are stored in the index register. A shift register is another type. Bits enter the shift register at one end and emerge from the other end. Flip flops, also known as bistable gates, store and process the data.
Register is a very fast computer memory, used to store data/instruction in-execution.
A Register is a group of flip-flops with each flip-flop capable of storing one bit of information. An n-bitregister has a group of n flip-flops and is capable of storing binary information of n-bits.
A register consists of a group of flip-flops and gates. The flip-flops hold the binary information and gates control when and how new information is transferred into a register. Various types of registers are available commercially. The simplest register is one that consists of only flip-flops with no external gates.
These days registers are also implemented as a register file.
The transfer of new information into a register is referred to as loading the register. If all the bits of register are loaded simultaneously with a common clock pulse than the loading is said to be done in parallel.
Register Transfer Language
The symbolic notation used to describe the micro-operation transfers amongst registers is called Register transfer language. The term “register transfer” means the availability of hardware logic circuits that can perform a stated micro-operation and transfer the result of the operation to the same or another register. The word “language” is borrowed from programmers who apply this term to programming languages. This programming language is a procedure for writing symbols to specify a given computational process.
Following are some commonly used registers:
- Accumulator: This is the most common register, used to store data taken out from the memory.
- General Purpose Registers: This is used to store data intermediate results during program execution. It can be accessed via assembly programming.
- Special Purpose Registers: Users do not access these registers. These registers are for Computer system,
- MAR:Memory Address Register are those registers that holds the address for memory unit.
- MBR:Memory Buffer Register stores instruction and data received from the memory and sent from the memory.
- PC:Program Counter points to the next instruction to be executed.
- IR:Instruction Register holds the instruction to be executed.
Information transferred from one register to another is designated in symbolic form by means of replacement operator.
R2 ← R1
It denotes the transfer of the data from register R1 into R2.
Normally we want the transfer to occur only in predetermined control condition. This can be shown by following if-then statement: if (P=1) then (R2 ← R1)
Here P is a control signal generated in the control section
This article is contributed by Tarun Jangra. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.