You are on page 1of 3

In a computer's execution cycle, a clock pulse is the unit of time that

determines the timing of various micro-operations. While some micro-


operations can be executed in a single clock pulse, others require multiple
clock pulses. Here's why each of the given micro-operations cannot be
executed in a single clock pulse:

a) AC<- AC^ M[AR]

This micro-operation involves two memory accesses and an arithmetic


operation. Therefore, it cannot be executed in a single clock pulse. It
requires at least two clock pulses: one to read the contents of the memory
location M[AR] and perform the XOR operation with the contents of the AC
register, and another to store the result back into the AC register.

b) M[AR]<- PC, PC<- AR+1

This micro-operation involves three memory accesses and an arithmetic


operation. It cannot be executed in a single clock pulse. It requires at least
three clock pulses: one to read the contents of the PC register and store it
into the memory location M[AR], one to read the contents of the AR
register, add one to it, and store the result back into the AR register, and
another to read the contents of the AR register and store it into the PC
register.

c) AC<- M[AR]

This micro-operation involves a single memory access. It may be possible to


execute this operation in a single clock pulse, depending on the design of
the computer's memory hierarchy. However, some computers may require
more than one clock pulse to access memory. Therefore, in general, this
micro-operation cannot be guaranteed to be executed in a single clock
pulse.

Here's the sequence of micro-operations that can perform the given


operations:

a) AC<- AC^ M[AR]

1. MAR <- AR (load the memory address register with the contents of
AR)
2. MDR <- M[MAR] (read the contents of memory location M[AR] into
the memory data register)
3. AC <- AC ^ MDR (perform the XOR operation between the contents
of the AC register and MDR)
4. AR <- AR + 1 (increment the address register)

b) M[AR]<- PC, PC<- AR+1

1. MAR <- AR (load the memory address register with the contents of
AR)
2. M[MAR] <- PC (store the contents of the PC register into the memory
location M[AR])
3. AR <- AR + 1 (increment the address register)
4. PC <- AR (load the contents of the address register into the PC
register)

c) AC<- M[AR]

1. MAR <- AR (load the memory address register with the contents of
AR)
2. MDR <- M[MAR] (read the contents of memory location M[AR] into
the memory data register)
3. AC <- MDR (load the contents of MDR into the AC register)

A tristate buffer is a type of electronic circuit that is often used in digital systems to
allow multiple devices to share a common data bus without interfering with each
other.

The basic idea is that a tristate buffer can be put in a high-impedance (or "tri-state")
state, effectively disconnecting the device from the data bus. This allows multiple
devices to be connected to the same data bus without interfering with each other,
because only one device can actively drive the bus at a time.

When a device is not actively driving the bus, it can put its tristate buffer into the
high-impedance state, which effectively "turns off" the output of the buffer, allowing
other devices to drive the bus. This way, multiple devices can share the same data
bus without interfering with each other.
When a device wants to send data over the bus, it can activate its tristate buffer to
drive the data onto the bus. The other devices' tristate buffers will be in the high-
impedance state at this time, so the sending device can drive the bus without
interference.

Tristate buffers are commonly used in digital systems where multiple devices need to
share a common data bus, such as in computer memory and input/output systems.
They are especially useful when multiple devices need to be connected to a bus, but
only one device can send data at a time. In this case, each device can use a tristate
buffer to control its access to the bus, ensuring that data is transmitted without
interference.

• Similar to the multiplexers, demultiplexers are also used for Boolean function
implementation as well as combinational circuit design.
• We can design a demultiplexer to produce any truth table output by properly
controlling the select lines.
• Consider the case for implementing a demultiplexer circuit to produce the full
subtractor output.
• The Truth Table below shows the output of a full subtractor:

https://i.imgur.com/2JCXLzu.png

You might also like