The present disclosure relates generally to methods and systems of bus master arbitration, and more particularly to the parking of a bus master.
Data processing systems having multiple bus masters are commonplace in data processing environments. Parking of a bus master refers to a technique whereby it is anticipated which one of a plurality of bus masters is going to next request access to a specific system bus, or will have the greatest need to access the system bus quickly when it makes a request for the bus. If the parked bus master is indeed the master device that next requests access to the specific system bus, the arbitration overhead is reduced, thereby resulting in a more efficient use of system bus and bandwidth. Methods and systems that can improve bus master parking techniques would be useful.
Various advantages, features and characteristics of the present disclosure as well as methods, operation, and functions of related elements of structure, and the combination of parts and economies of manufacture, will become apparent upon consideration of the following description and claims with reference to the accompanying drawings, all of which form a part of this specification.
In accordance with the present disclosure, a method of parking a bus master is disclosed that selects one set of a plurality of sets of programmable bus master parking information based upon an operational context of the system. By being able to select different sets of programmable bus master parking information based upon an operational context, the bus master parked on a system bus can be updated quickly based upon the context change. In order to facilitate a better understanding,
Bus Masters 111–113 are coupled to the Arbiter 150 via bus 142 to provide bus request signals BR(1)–BR(3), respectively. In addition, Bus Masters 111–113 are coupled to the Arbiter 150 via bus 143 to receive bus grant signals BG(1)–BG(3), respectively. A System Bus 141, that is a slave bus, couples each Bus Master 111–113 to each slave device 121–123. The context monitor 130 is coupled to receive information from one or more of the slave devices 121–123 via buses 126–128, and other system context 129, and to provide a context signal 131 to the Arbiter 150.
In operation, the Arbiter 150 of system 100 has access to storage locations 151 and 152 that are used to store bus master parking information. Each set of bus master parking information at a storage location will generally indicate a specific manner for implementing bus master parking for a specific slave bus, such as system bus 141. Whether the Arbiter 150 accesses the bus master parking information at location 151 or 152 is based upon a state of the CONTEXT SIGNAL provided from the Context Monitor 130 and received at the PARK CONTEXT SELECT input of the Arbiter 150.
The Context Monitor 130 monitors information from one or more of the slave devices 121–123 as well as other system context 129 from other portions of system 100. In one embodiment, the information monitored by the Context Monitor 130 is interrupt information from one or more of the devices 121–123. In another embodiment, the information monitored by the Context Monitor 130 is state information, which with respect to the memory 121 can indicate a fullness of the memory 121. While Context Monitor 130 is illustrated as only monitoring the slave devices 121–123, it will be appreciated that the Context Monitor 130 can also be coupled to one or more of the Masters 111–113. In addition, other system context from system 100 may be monitored. As the context of the system is monitored, the state of the context signal can vary dynamically, thereby selecting a different set of bus master parking information to be used by the Arbiter 150. Although a single context signal 131 is shown, alternate embodiments may have multiple context signals 131 that are used to select bus master parking information.
When the PARK TYPE indicates that the PARK 212 field is to be used, a specific bus master indicated in the PARK field will be parked. Informational box 222 indicates values used to indicate which bus master should be parked. It will be appreciated that the PARK TYPE 211 field and the PARK 212 field can be writeable fields that can be changed as necessary by system and/or user software control. Alternatively, system and/or user control may provide park control information by way of one or more external terminals, such as an integrated circuit connection such as a conductive pin or bump.
Of particular interest with reference to the timing diagram of
Each slave Port SP1–SP3 of the Multi-Port Cross Bar 520 has an arbiter associated with it to arbitrate among the Masters 511–513, and to handle parking of masters.
Part of the arbitration process can include indicating which master is to be parked on the system bus 536. Different sets of parking information is stored in a plurality of SP1 Park Information locations including SP1 Park Information 631 and SP1 Park Information 632, which can contain parking information and options such as those described previously herein. One of the SP1 Park Information 631 and 632 is accessed based upon a PARK CONTEXT SELECT signal, which is provided from a system device over the system bus 536 to a multiplex function 627. Because each slave port has equivalent arbitration logic available (not illustrated), each slave port can provide its own PARK CONTEXT SELECT signal as well as have its own sets of parking information available to control arbitration. Therefore, each slave port SP1–SP3 can have the same, or different, master ports MP1–MP3 parked at any given time.
In summary it should be apparent from a review of the foregoing disclosure that various advantages can be achieved by using multiple sets of bus parking information in the various manners indicated. By reducing the time needed to switch bus parking information in response to a system context being changed, increased system performance can be realized.
In the preceding detailed description of the figures, reference has been made to the accompanying drawings, which form a part thereof, and in which is shown by way of illustrations specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it should be understood that other embodiments may be utilized and that logical, mechanical, chemical, and electrical changes may be made without departing from the spirit or scope of the invention. To avoid detail not necessary to enable those skilled in the art to practice the invention, the description may omit certain information known to those skilled in the art. Furthermore, many other varied embodiments that incorporate the teachings of the invention may be easily constructed by those skilled in the art. Accordingly, the present disclosure is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included within the spirit and scope of the invention. The preceding detailed description is therefore not to be taken in a limiting sense and the scope of the present disclosure is defined only by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5119486 | Albonesi | Jun 1992 | A |
5193149 | Awiszio et al. | Mar 1993 | A |
5297292 | Morimoto et al. | Mar 1994 | A |
5345566 | Tanji et al. | Sep 1994 | A |
5463740 | Taniai et al. | Oct 1995 | A |
5572686 | Nunziata et al. | Nov 1996 | A |
5581782 | Sarangdhar et al. | Dec 1996 | A |
5596729 | Lester et al. | Jan 1997 | A |
5752010 | Herbert | May 1998 | A |
5826045 | Reams | Oct 1998 | A |
5915102 | Chin | Jun 1999 | A |
5923859 | Melo et al. | Jul 1999 | A |
6073199 | Cohen et al. | Jun 2000 | A |
6092219 | Porterfield | Jul 2000 | A |
6157989 | Collins et al. | Dec 2000 | A |
6163826 | Khan et al. | Dec 2000 | A |
6269102 | Hayashi | Jul 2001 | B1 |
6564280 | Walsh | May 2003 | B1 |
6571306 | Smith | May 2003 | B1 |
6823410 | Koike | Nov 2004 | B1 |
6823411 | Hofmann et al. | Nov 2004 | B1 |
20020099892 | Olarig | Jul 2002 | A1 |
20030097505 | Kato | May 2003 | A1 |
20030110231 | Roy | Jun 2003 | A1 |
20030200375 | Kawaguchi | Oct 2003 | A1 |
Number | Date | Country |
---|---|---|
2000035943 | Feb 2000 | JP |
Number | Date | Country | |
---|---|---|---|
20040193766 A1 | Sep 2004 | US |