Apparatus and method of preventing a deadlock condition in a computer system
First Claim
1. A circuit for preventing deadlock between a microprocessor coupled to a first bus and a bus master coupled to a second bus, wherein the microprocessor has data and address outputs for connection to the first bus and has cycle control outputs, and wherein the first bus has data and address portions and is coupled to a resource, the circuit comprising:
- first means for receiving the microprocessor cycle control outputs to determine a request by the microprocessor for a microprocessor-to-second-bus cycle, wherein the microprocessor continuously drives or controls its address, data, and control cycle outputs once it starts said microprocessor-to-second-bus cycle;
second means for receiving a request from the second bus master for the first bus resource;
means coupled to said first and second receiving means for generating a float signal, said float signal being asserted if said microprocessor-to-second-bus cycle request is pending when said second bus master request is asserted; and
a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between the microprocessor data and address outputs and said first bus data and address portions, said plurality of tristate buffers being disabled if said float signal is asserted,wherein said tristate buffers are implemented with bi-directional high speed bus switches.
4 Assignments
0 Petitions
Accused Products
Abstract
Circuitry for tristating the address and data outputs of a processor to prevent a deadlock condition when the processor and another bus master is accessing a shared resource. The processor is located on a local bus and the other bus master is located on a PCI bus. Bi-directional tristate buffers are placed between the address and data output pins of the processor and the address and data portions of the first bus. If the processor is requesting a local-bus-to-PCI-bus cycle, and the PCI bus master is asserting a request for a local bus shared resource, the processor address and data output pins are tristated by the tristate buffers to allow the PCI bus master cycle to proceed. After the PCI bus master cycle completes, the tristate buffers are reenabled to allow the processor cycle to complete.
22 Citations
43 Claims
-
1. A circuit for preventing deadlock between a microprocessor coupled to a first bus and a bus master coupled to a second bus, wherein the microprocessor has data and address outputs for connection to the first bus and has cycle control outputs, and wherein the first bus has data and address portions and is coupled to a resource, the circuit comprising:
-
first means for receiving the microprocessor cycle control outputs to determine a request by the microprocessor for a microprocessor-to-second-bus cycle, wherein the microprocessor continuously drives or controls its address, data, and control cycle outputs once it starts said microprocessor-to-second-bus cycle; second means for receiving a request from the second bus master for the first bus resource; means coupled to said first and second receiving means for generating a float signal, said float signal being asserted if said microprocessor-to-second-bus cycle request is pending when said second bus master request is asserted; and a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between the microprocessor data and address outputs and said first bus data and address portions, said plurality of tristate buffers being disabled if said float signal is asserted, wherein said tristate buffers are implemented with bi-directional high speed bus switches. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A circuit for preventing deadlock between a microprocessor coupled to a first bus and a bus master coupled to a second bus, wherein the microprocessor has data and address outputs for connection to the first bus and has cycle control outputs, and wherein the first bus has data and address portions and is coupled to a resource, the circuit comprising:
-
first means for receiving the microprocessor cycle control outputs to determine a request by the microprocessor for a microprocessor-to-second bus cycle, wherein the microprocessor continuously drives or controls its address, data, and control cycle outputs once it starts said microprocessor-to-second-bus cycle; second means for receiving a request from the second bus master for the first bus resource; means coupled to said first and second receiving means for generating a float signal, said float signal being asserted if said microprocessor-to-second-bus cycle request is pending when said second bus master request is asserted; and a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between the microprocessor data and address outputs and said first bus data and address portions, said plurality of tristate buffers being disabled if said float signal is asserted, wherein the first bus is further coupled to a first bus slave device, the microprocessor capable of generating a read cycle and a write cycle on the first bus, wherein said first bus slave device drives said first bus data portion in response to a read cycle directed to said first bus slave device, and wherein said float signal generating means asserts said float signal for a predetermined amount of time after a microprocessor read cycle is complete to avoid data contention between a subsequent microprocessor write cycle and read data driven by said first bus slave device.
-
-
11. A computer system, comprising:
-
a first bus having data and address portions; a processor unit coupled to said first bus, said processor unit receiving a float signal and having address, data and cycle control output pins, said processor unit further including an 80386-type microprocessor, said processor unit address and data output pins being connected to said first bus address and data portions; a bus resource coupled to said first bus; a second bus; a second bus master coupled to said second bus; and a circuit coupled to said first and second buses, including; first means for receiving the processor cycle control output pins to determine a request by said processor unit for a processor-to-second-bus cycle, wherein said processor unit continuously drives or controls its address, data, and cycle control output pins once it starts said processor-to-second-bus cycle; second means for receiving a request from said second bus master for said first bus resource; and means coupled to said first and second receiving means for generating said float signal, said float signal being asserted if said processor-to-second-bus cycle request is pending when said second bus master request is asserted, wherein if said float signal is asserted, said processor unit floats its address and data output pins and continues to drive the cycle control output pins, wherein said processor unit further includes a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between said microprocessor data and address outputs and said processor unit data and address output pins, said plurality of tristate buffers being disabled if said float signal is asserted, and wherein said tristate buffers are implemented with bidirectional high speed bus switches. - View Dependent Claims (12, 13)
-
-
14. A computer system, comprising:
-
a first bus having data and address portions; a microprocessor coupled to said first bus and having address, data and cycle control outputs; a bus resource coupled to said first bus; a second bus; a second bus master coupled to said second bus; and a circuit coupled to said first and second buses, including; first means for receiving said cycle control outputs to determine a request by said microprocessor for a microprocessor-to-second-bus cycle, wherein said microprocessor continuously drives or controls its address, data, and cycle control outputs once it starts said microprocessor-to-second-bus cycle; second means for receiving a request from said second bus master for said first bus resource; means coupled to said first and second receiving means for generating a float signal, said float signal being asserted if said microprocessor-to-second-bus cycle request is pending when said second bus master request is asserted; and a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between said microprocessor data and address outputs and said first bus data and address portions, said plurality of tristate buffers being disabled if said float signal is asserted, wherein said tristate buffers are implemented with bi-directional high speed bus switches. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer system, comprising:
-
a first bus having data and address portions; a microprocessor coupled to said first bus and having address, data and cycle control outputs; a bus resource coupled to said first bus; a second bus; a second bus master coupled to said second bus; and a circuit coupled to said first and second buses, including; first means for receiving said cycle control outputs to determine a request by said microprocessor for a microprocessor-to-second-bus cycle, wherein said microprocessor continuously drives or controls its address, data, and cycle control outputs once it starts said microprocessor-to-second-bus cycle; second means for receiving a request from said second bus master for said first bus resource; means coupled to said first and second receiving means for generating a float signal, said float signal being asserted if said microprocessor-to-second-bus cycle request is pending when said second bus master request is asserted; and a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between said microprocessor data and address outputs and said first bus data and address portions, said plurality of tristate buffers being disabled if said float signal is asserted, wherein said first bus is further coupled to a first bus slave device, said microprocessor capable of generating a read cycle and a write cycle on said first bus, wherein said first bus slave device drives said first bus data portion in response to a read cycle directed to said first bus slave device, and wherein said float signal generating means asserts said float signal for a predetermined amount of time after a microprocessor read cycle is complete to avoid data contention between a subsequent microprocessor write cycle and read data driven by said first bus slave device.
-
-
24. A method of preventing deadlock between a microprocessor coupled to a first bus and a bus master coupled to a second bus, wherein the microprocessor has data and address outputs for connection to the first bus, and has cycle control outputs, wherein the first bus has data and address portions and is coupled to a resource, and wherein a plurality of tristate buffers are connected between the microprocessor data and address outputs and said first bus data and address portions, the method comprising the steps of:
-
receiving the microprocessor cycle control outputs to determine a request by the microprocessor for a microprocessor-to-second-bus cycle; receiving a request from the second bus master for the first bus resource; asserting a float signal if said microprocessor-to-second-bus cycle request is pending when said second bus master request is asserted, wherein said plurality of tristate buffers are disabled if said float signal is asserted; executing said second bus master request after said float signal is asserted; asserting a complete signal when said second bus master request is done; deasserting said float signal after said complete signal is asserted; and completing said microprocessor-to-second-bus cycle after said complete signal is asserted, wherein the microprocessor continuously drives or controls its data, address, and cycle control outputs once a microprocessor cycle has started and until said microprocessor-to-second-bus cycle has completed, wherein said tristate buffers are implemented with bi-directional high speed bus switches. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A microprocessor having address, data and cycle control output pins and receiving a float signal, the microprocessor comprising:
-
a microprocessor core having address, data, and cycle control outputs, wherein said microprocessor core continuously drives or controls its address, data, and cycle control outputs once it starts a cycle; and means coupled to said microprocessor core address, data and cycle control outputs for coupling said microprocessor core address, data and cycle control outputs to said microprocessor address, data and cycle control output pins, said means receiving the float signal, wherein if the float signal is asserted, said means floats said microprocessor address and data output pins and continues to drive said microprocessor cycle control output pins, wherein said coupling means includes a plurality of tristate buffers responsive to said float signal, said tristate buffers being connected between said microprocessor core data and address outputs and said microprocessor data and address output pins, said plurality of tristate buffers being disabled if said float signal is asserted, and wherein said tristate buffers are implemented with bi-directional high speed bus switches. - View Dependent Claims (33, 34)
-
-
35. A computer system, comprising:
-
a first bus having data and address portions; a second bus; a storage system coupled to the first bus or the second bus; a microprocessor coupled to the first bus, the microprocessor having address, data, and cycle control outputs, wherein the microprocessor continuously drives or controls its address, data, and cycle control outputs once it starts a microprocessor-to-second-bus cycle; a first bus resource coupled to the first bus; a second bus master coupled to the second bus; and a deadlock prevention circuit, including; a plurality of bi-directional high speed bus switches connected between the microprocessor data and address outputs and the first bus data and address portions; microprocessor-to-second-bus cycle decode logic coupled to the microprocessor cycle control outputs and decoding a pending microprocessor-to-second-bus cycle; second bus master to first bus resource decode logic coupled to the second bus master via the second bus and decoding a request from the second bus master for the first bus resource; and switch control logic coupled to and controlling the plurality of bi-directional high speed bus switches responsive to the microprocessor-to-second-bus cycle decode logic and the second bus master to first bus resource logic, the switch control logic disabling the switches when a microprocessor-to-second-bus cycle is pending while the second bus master is requesting the first bus resource. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42)
-
-
43. A computer system, comprising:
-
a first bus having data and address portions; a second bus; a storage system coupled to the first bus or the second bus; a microprocessor coupled to the first bus, the microprocessor having address, data, and cycle control outputs, wherein the microprocessor continuously drives or controls its address, data, and cycle control outputs once it starts a microprocessor-to-second-bus cycle, and wherein the microprocessor can generate a read cycle and a write cycle on the first bus; a first bus resource coupled to the first bus; a second bus master coupled to the second bus; a first bus slave device coupled to the first bus, the first bus slave device driving the data portion of the first bus in response to a microprocessor read cycle; and a deadlock prevention circuit, including; a plurality of tristate buffers connected between the microprocessor data and address outputs and the first bus data and address portions; microprocessor-to-second-bus cycle decode logic coupled to the microprocessor cycle control outputs and decoding a pending microprocessor-to-second-bus cycle; second-bus-master-to-first-bus-resource decode logic coupled to the second bus master via the second bus and decoding a request from the second bus master for the first bus resource; and switch control logic coupled to and controlling the plurality of tristate buffers responsive to the microprocessor-to-second-bus cycle decode logic and the second-bus-master-to-first-bus-resource decode logic, the switch control logic turning off the tristate buffers when a microprocessor-to-second-bus cycle is pending while the second bus master is requesting the first bus resource, and the switch control logic turning off the tristate buffer for a predetermined amount of time after a microprocessor read cycle is complete to avoid data contention between a subsequent microprocessor write cycle and read data driven by the first bus slave device.
-
Specification