Crossing transfers for maximizing the effective bandwidth in a dual-bus architecture
First Claim
1. A method of communicating data between devices in a computer system, the method comprising:
- providing a bidirectional first bus, said first bus having an architecture wherein a transfer initiated on said first bus includes an address signifying a device with which communication is to be established, said architecture having a bus control signal selectively indicating that the transfer is claimed by a device addressed by said address;
providing a bidirectional second bus;
providing selective bidirectional coupling between said first and second buses;
coupling a bus master to said first bus;
coupling a slave to a selected one of said first and second buses;
storing bus configuration data for a plurality of address regions, at least some of said configuration data associating at least one of said address regions with said first bus;
initiating a particular transfer on said first bus, said particular transfer being initiated by said bus master and including a particular address;
determining whether said particular address corresponds to one of said address regions associated with said first bus; and
if not, enabling a crossing transfer from said first bus to said second bus without waiting for assertion of said bus control signal.
3 Assignments
0 Petitions
Accused Products
Abstract
A dual-bus architecture that includes a high-speed system bus, called the NexBus (20), and a slower peripheral bus, called the alternate bus or AB (25). The NexBus and AB are coupled by control logic (45) which includes an arbiter (50) and an alternate bus interface (ABI) (60). The ABI is treated as a master for both the NexBus and the AB. While it would be possible to have the adapter always request the AB (which also requires the NexBus), that would slow down NexBus operations to the bandwidth of the AB. This problem is avoided by providing two request lines for each adapter, -NREQ (NexBus only) and -AREQ (both buses), having the adapter normally assert -NREQ first. However, if the addressed device is on the AB, the ABI automatically detects this fact and attempts to do a crossing transfer to the AB, even though the request was for the NexBus only. If the ABI is unable to do the crossing transfer because the AB was busy, the ABI automatically causes the NexBus adapter to retry, the request using the -AREQ line. Thus the slower AB is only accessed when actually necessary.
182 Citations
68 Claims
-
1. A method of communicating data between devices in a computer system, the method comprising:
-
providing a bidirectional first bus, said first bus having an architecture wherein a transfer initiated on said first bus includes an address signifying a device with which communication is to be established, said architecture having a bus control signal selectively indicating that the transfer is claimed by a device addressed by said address; providing a bidirectional second bus; providing selective bidirectional coupling between said first and second buses; coupling a bus master to said first bus; coupling a slave to a selected one of said first and second buses; storing bus configuration data for a plurality of address regions, at least some of said configuration data associating at least one of said address regions with said first bus; initiating a particular transfer on said first bus, said particular transfer being initiated by said bus master and including a particular address; determining whether said particular address corresponds to one of said address regions associated with said first bus; and if not, enabling a crossing transfer from said first bus to said second bus without waiting for assertion of said bus control signal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of communicating data between devices in a computer system, the method comprising the steps of:
-
providing a bidirectional first bus having a first architecture that supports coupling to a first bus master that initiates a first bus transfer, said first bus transfer including a first address signifying a slave with which communication is to be established, said first architecture having a first bus control signal selectively indicating said first bus transfer is claimed by a device addressed by said first address; providing a bidirectional second bus having a second architecture that supports coupling to a second bus master that initiates a second bus transfer including a second address, said second address signifying a slave with which communication is to be established; providing selective bidirectional coupling between said first and second buses; coupling said first bus master to said first bus; coupling said second bus master to said second bus; coupling a slave to a selected one of said first and second buses; storing bus configuration data for a plurality of address regions, at least some of said configuration data associating at least one of said address regions with said first bus; enabling a first type of crossing transfer from said first bus to said second bus if said first bus master initiates a first bus transfer including a particular first address, and if said first bus control signal is not asserted within a predefined waiting period after said first bus master initiates said first bus transfer; and enabling a second type of crossing transfer from said second bus to said first bus if said second bus master initiates a second bus transfer including a particular second address, and if said particular second address of said second bus transfer corresponds to one of said address regions associated with said first bus. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A method of communicating data between devices in a computer system, the method comprising:
-
providing a bidirectional first bus; providing a bidirectional second bus having a second architecture that supports coupling to a bus master that initiates a bus transfer including an address, said address signifying a slave with which communication is to be established; coupling said bus master to said second bus; coupling said slave to a selected one of said first and second buses; storing bus configuration data for a plurality of address regions, at least some of said configuration data associating at least one of said address regions with said first bus, said address regions including explicit memory ranges corresponding to video memory and BIOS extensions; and enabling a crossing transfer from said second bus to said first bus if said bus master initiates said bus transfer including a particular address, and if said particular address of said bus transfer corresponds to one of said address regions associated with said first bus. - View Dependent Claims (15, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A method of maximizing the effective bandwidth in a dual-bus architecture computer, said method comprising:
-
providing a bidirectional first bus; providing a bidirectional second bus; providing selective coupling between said first and second buses; providing a CPU coupled to said first bus, said CPU including a microprocessor and cache memory, said CPU being capable of initiating a bus transfer on said first bus; providing an I/O device, said I/O device being capable of responding as a slave at a particular address, said particular address being within a first address region, said I/O device being a selected one of a first bus type or a second bus type, said first and second bus type I/O devices being respectively designed physically and electrically for respectively associated use on said first bus and said second bus; installing said I/O device of said selected type on said respectively associated one of said first or second buses; storing first bus configuration data for a plurality of address regions to permit said address regions to be associated with said first bus, said address regions including said first address region, wherein said configuration data associates said first address region with said first bus, if said I/O device of said selected type is installed on said first bus, and wherein said configuration data does not associate said first address region with said first bus, if said I/O device of said selected type is installed on said second bus; providing a program, said program being in binary object code compatible with said CPU, said program being independent of said selected type of I/O device, said program including a reference to said I/O device as a slave having said particular address; running said program on said CPU, said CPU initiating a transfer as a master on said first bus in accordance with said running program, said transfer referencing said I/O device as a slave having said particular address; maintaining said first and second buses uncoupled during said bus transfer on said first bus, if said stored configuration data associates said first address region with said first bus; and performing a crossing transfer from said first bus to said second bus during said bus transfer on said first bus, if said configuration data does not associate said first address region with said first bus. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A computer system comprising:
-
a bidirectional first bus having an architecture that supports a bus transfer including an address, said architecture having a bus control signal selectively indicating said bus transfer is claimed by a device addressed by said address; a bidirectional second bus; a bus master coupled to said first bus, said bus master having logic for placing said address of said bus transfer on said first bus signifying a slave with which communication is to be established; a slave coupled to a selected one of said first and second buses; bidirectional first bus interface logic coupled to said first bus; bidirectional second bus interface logic coupled to said second bus; at least one path selectively coupled between said first bus and said second bus, said path including said first bus interface logic and said second bus interface logic; address mapping logic having programmable storage for first bus configuration data for a plurality of address regions to permit said address regions to be associated with said first bus; and control logic means, coupled to said first and second bus interface logic and to said address mapping logic, said control logic means being responsive to said address, for enabling a crossing transfer from said first bus to said second bus without waiting for assertion of said first bus control signal if said address of said first bus transfer is not mapped to one of said address regions that is associated with said first bus. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
-
-
60. A bus interface unit for a computer system having at least a first bus and a second bus, wherein the architecture of said first bus has a multimaster arbitration protocol and supports coupling to a bus master for generating a bus transfer, said transfer including an address, said architecture having a bus control signal selectively indicating said bus transfer is claimed by a device addressed by said address, said bus interface unit comprising:
-
bidirectional first bus interface logic coupled to said first bus; bidirectional second bus interface logic coupled to said second bus; at least one path selectively coupled between said first bus and said second bus, said path including said first bus interface logic and said second bus interface logic; control logic means, coupled to said first and second bus interface logic, for enabling a crossing transfer from said first bus to said second bus over said path if said bus control signal is not asserted within a predefined waiting period after said bus master initiates said bus transfer; and a buffer, coupled to said path, for storing said first bus transfer, to permit other operations on said first bus while said crossing transfer to said second bus is completed. - View Dependent Claims (61, 62, 63, 64, 65, 66, 67, 68)
-
Specification