This Application claims priority of China Patent Application No. 201510870619.2, filed on Dec. 2, 2015, the entirety of which is incorporated by reference herein.
Field of the Invention
The present invention relates to resource allocation arbiters.
Description of the Related Art
Arbiters are electronic devices that allocate access rights to a shared resource to multiple engines.
For bus applications, a bus arbiter is operated to allocate the bus cycles of different data buses to a plurality of engines. A memory arbiter is operated to allocate the access rights to a shared memory to a plurality of engines. Furthermore, an arbiter is also required for a plurality of engines to share a chip, such as a Graphics User Interface chip (GUI chip).
How to increase arbiter efficiency is an important topic in the field of the invention.
A computing resource controller in accordance with an exemplary embodiment of the disclosure has an arbiter, a monitoring module, an arbiter strategy control center and an arbiter parameter updating module. The arbiter allocates access rights to a shared resource to a plurality of engines. The monitoring module monitors the demands for the shared resource requested by the engines. Based on monitored results obtained from the monitoring module, the arbiter strategy control center determines an arbiter strategy suitable to the arbiter. Based on the arbiter strategy determined by the arbiter strategy control center, the arbiter parameter updating module, setting parameters of the arbiter and thereby the arbiter uses newly-set parameters to allocate the access rights to the shared resource to the engines. In this manner, the parameters of the arbiter are dynamically adjusted in accordance with the demands for the shared resource requested by the engines.
In another exemplary embodiment, a control method for a plurality of engines to share a shared resource is shown, which comprises the following steps: providing an arbiter to allocate access rights to the shared resource to the plurality of engines; providing a monitoring module to monitor the demands for the shared resource requested by the engines; and determining an arbiter strategy suitable to the arbiter based on monitored results obtained from the monitoring module to set parameters of the arbiter, and operating the arbiter to use newly-set parameters to allocate the access rights to the shared resource to the engines.
A detailed description is given in the following embodiments with reference to the accompanying drawings.
The present invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein:
The following description shows exemplary embodiments carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
The arbiter 112 allocates the access rights to the shared resource 104 to the engines 102. The monitoring module 114 monitors the demands for the shared resource 104 requested by the engines 102. According to the monitored results obtained from the monitoring module 114, the arbiter strategy control center 116 determines an arbiter strategy suitable to the arbiter 112. According to the arbiter strategy determined by the arbiter strategy control center 116, the arbiter parameter updating module 118 sets the parameters of the arbiter 112 and then the arbiter 112 allocates the access rights to the shared resource 104 to the engines 102 according to the newly-set parameters. In this manner, the parameters of the arbiter 112 are dynamically adjusted according to the demands for the shared resource 104 requested by the engines 102.
The demands for the shared resource 104 requested by the engines 102 may be monitored at the engine (102) side. In an exemplary embodiment, the monitoring module 114 monitors delayed events of the engines 102 due to the inaccessibility of the shared resource 104. Thus, a back pressure at the engine (102) side is measured.
The demands for the shared resource 104 requested by the engines 102 may be monitored at the arbiter (112) side. In an exemplary embodiment, the arbiter 112 includes a plurality of queues 120. The requests for the shared resource 104 issued from the engines 102 queue in the plurality of queues 120. The monitoring module 114 is operative to: monitoring the amount of requests accumulated in the queues 120 or/and the amount of communication data (workload) issued by the requests accumulated in the queues 120; or/and monitoring the congestion of the queues 120 (i.e., the back pressure of the queues 120 of the arbiter 112).
In an exemplary embodiment, after the arbiter 112 finishes a first round of resource allocation for the engines 102, the arbiter parameter updating module 118 sets the parameters of the arbiter 112 in accordance with the arbiter strategy determined by the arbiter strategy control center 116 as suitable to the arbiter 112. Then, during a second round of resource allocation, the arbiter 112 allocates the access rights to the shared resource 104 to the engines 102 based on the newly updated parameters. The duty periods allocated to the engines 102 by the arbiter 112 based on the original parameters may be summed up as the time interval for the first round of resource allocation. The duty periods allocated to the engines 102 by the arbiter 112 based on the newly-set parameters may be summed up as the time interval for the second round of resource allocation.
Furthermore, the monitoring module 114 further monitors the shared resource 104. Accordingly, the arbiter 112 allocates the access rights to the shared resource 104 to the engines 102 based on the operations of the shared resource 104.
As shown in
The monitoring module of
The arbiter strategy control center 116 is discussed in this paragraph. The monitored results obtained from the module BP0_M, WL_M, BP1_M and R_M are input to the arbiter strategy control center 116. According to the delayed events of the engines E1, E2 . . . En monitored by the module BP0_M or/and the workload monitoring of the write request queues Q1W, Q2W . . . QnW performed by the module WL_M, the arbiter strategy control center 116 determines an arbiter strategy suitable to the multi-engine write arbiter 210. According to the delayed events of the engines E1, E2 . . . En monitored by the module BP0_M or/and the workload monitoring of the read request queues Q1R, Q2R . . . QnR performed by the module WL_M, the arbiter strategy control center 116 determines an arbiter strategy suitable to the multi-engine read arbiter 212. According to the congestion of the general write queue W_Q and the general read queue R_Q monitored by the module BP1_M, the arbiter strategy control center 116 determines an arbiter strategy suitable to the read and write arbiter 214. According to the monitoring of self-refresh operations of memory banks performed by the module R_M, the arbiter strategy control center 116 provides the arbiter 200 with an indication signal R_S of the self-refresh operations of the memory banks. In this manner, the arbiter 200 allocates the access rights to the DRAM 202 to the engines E1, E2 . . . En based on the self-refresh operations of the memory banks of the DRAM 202.
As shown, according to suitable arbiter strategies determined by the arbiter strategy control center 116, the arbiter parameter updating module 118 adjusts the parameters of the arbiter 200. After a first round of resource allocation for the engines E1, E2 . . . En, the arbiter strategy control center 116 updates the parameters of the arbiter 200 according to the suitable arbiter strategies obtained from the monitored results obtained during the first round of resource allocation. During a second round of resource allocation for the engines E1, E2 . . . En, the arbiter 200 allocates the access rights to the DRAM 202 to the engines E1, E2 . . . En based on the newly-set parameters.
According to the aforementioned concepts, a control method for a plurality of engines to share a shared resource is also introduced in the disclosure. With respect to
While the invention has been described by way of example and in terms of the preferred embodiments, it should be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.
Number | Date | Country | Kind |
---|---|---|---|
2015 1 0870619 | Dec 2015 | CN | national |
Number | Name | Date | Kind |
---|---|---|---|
6219728 | Yin | Apr 2001 | B1 |
8032678 | Tardieux et al. | Oct 2011 | B2 |
20020176431 | Golla et al. | Nov 2002 | A1 |
20070150690 | Chen | Jun 2007 | A1 |
20080115137 | Gower | May 2008 | A1 |
20090274049 | Lai | Nov 2009 | A1 |
20100115167 | Tardieux | May 2010 | A1 |
20110119421 | Basu et al. | May 2011 | A1 |
20110179422 | Stegaru | Jul 2011 | A1 |
20110231614 | Spracklen | Sep 2011 | A1 |
20120096153 | Weiser | Apr 2012 | A1 |
20130198755 | Kim | Aug 2013 | A1 |
20150199251 | Buendgen | Jul 2015 | A1 |
20170228257 | Dong | Aug 2017 | A1 |
Number | Date | Country |
---|---|---|
101739372 | Jun 2010 | CN |
2510345 | Aug 2014 | GB |
200947957 | Nov 2009 | TW |
TIN 200947957 | Nov 2009 | TW |
WO 2014029308 | Feb 2014 | WO |
Entry |
---|
Chinese language office action dated Oct. 12, 2016, issued in application No. TW 104141656. |
Number | Date | Country | |
---|---|---|---|
20170161110 A1 | Jun 2017 | US |