專利名稱:避讓定時機制的制作方法
技術領域:
本發明一般地涉及主設備和從設備之間的通信,而且,更具體地說,本發明涉及關于重試從主設備發送到從設備的請求,實現避讓定時(backing-off timing)的系統和方法。
背景技術:
現代的高性能計算系統可以包括多個可以實現各種計算系統的設備。例如,可以存在多個處理器(可以用作主、從或者它們二者)、存儲器、輸入/輸出(I/O)設備等。這些不同設備通常連接到總線,因此,它們可以互相通信、傳送數據等。因為可以存在許多試圖利用總線的無限帶寬進行通信的設備,所以設備之間的通信應該盡可能有效。通常以多個步驟或者多個階段實現通過總線在設備之間執行的事務(transaction)。例如,如果主設備希望將數據寫入從設備,則需要在典型系統中該主設備發出寫命令,等待來自可以接收該命令的目標從設備的確認,然后,將該寫數據傳送到總線,以便被發送到該目標從設備。通過總線,在各種設備之間同時執行的這種事務可以有許多,因此,需要實現各種機制,以防止每種事務互相干擾。
如上所述,為了有助于通過分割(split)事務總線進行通信通常實現的機制之一是重試目標設備在第一次嘗試時沒有收到的命令的避讓機制。如上所述,為了執行事務,主設備必須等待來自目標從設備的確認。如果在從設備第一次發送命令時,從設備未準備好接收該命令(例如,如果從設備的命令緩沖器是滿的),則該從設備可以將RETRY響應發送到該主設備。在該主設備收到RETRY響應時,它知道該命令未被收到,而且可以在以后的時間重試該命令。
因為設備之間通過總線執行的通信的多階段性質,可能存在兩個不同設備幾乎同時嘗試互相發送命令的情況。在相應目標設備收到每個命令時,該目標設備可以認為自己不能用于接收其他設備的命令,因為自己的未決命令,因此,該目標設備可以對其他設備發送RETRY響應。因此,兩個設備都必須在以后的時間重試發送其命令。如果在再一次發送它們的命令之前,兩個設備都等待同樣長的時間,則在接收其他設備的命令時,每個設備都再一次處于忙。如果兩個設備都陷入無窮循環,則這可以無限重復。該條件被稱為“活鎖(live lock)”。
為了避免出現活鎖情況,通常執行避讓定時機制(backing-offtiming)。通常,避讓定時機制使得設備在重試未確認的命令之前等待增加的時間。避讓定時機制還在選擇特定等待周期過程中實現隨機性因素。選擇等待周期的隨機性減少了兩個設備連續互相干擾的機會。增大等待周期的大小可以減少在重試該命令時占用的資源量(因為在短等待周期后仍忙碌的設備很可能在另一個短等待周期之后仍忙碌)。
為了實現避讓定時機制,通常需要跟蹤命令的重試次數和在應該重試該命令之前剩余的時間。在傳統系統中,對每個未決命令設置一組寄存器。這些寄存器之一存儲相應命令的重試次數(重試計數器或者指示符),而另一個寄存器用作定時器(定時器期滿值)。在每次從目標從設備收到重試響應時,更新第一寄存器。通常,第二寄存器存儲要重試該命令之前剩余的時間,因此,必須在每個周期更新它。因為典型系統提供大量未決命令(例如,8個或者16個),所以還必須提供相應數量的重試指示符(indicator)和定時器值。因此,鑒于該芯片上它們所需的空間,以及對每個命令更新定時器值所需的處理,所以傳統的避讓定時機制可能昂貴。
因此,希望提供一種用于在重試命令的過程中實現避讓定時的系統和方法,其中該系統和方法可以更有效利用該芯片上它們所需的空間以及跟蹤重試定時所需的處理資源。
發明內容
利用本發明的各種實施例可以解決上面概括說明的一個或者多個問題。總體上說,本發明包括用于對通過分割事務總線從主設備發送到從設備的命令的重試實現避讓定時的系統和方法。一個實施例包括緩沖器,具有用于存儲每個未決命令和相關信息的項,如該命令的重試次數和靜態(但是不是永久的)偽隨機定時器期滿值。根據與對應于該項的命令的重試次數相關的掩碼,將每個項的定時器期滿值與該運行計數器進行比較。在兩個值的未屏蔽位匹配時,重試該命令。在一個實施例中,用于存儲重試次數和定時器期滿值的緩沖器項的相同部分用于交替存儲與確認響應一起接收的從生成標志。在收到從生成標志時,不需要重試次數和定時器期滿值,因此,利用該標志覆蓋寫它們。
一個實施例包括避讓定時系統,該避讓定時系統包括命令緩沖器、運行計數器、一個或者多個比較器以及控制電路。該命令緩沖器具有多個項,每個項具有相應比較器。配置該控制電路,以在對于對應于該項的命令,收到重試時,將靜態定時器期滿值存儲到每個項內。控制電路還存儲重試次數的指示符。該比較器將靜態定時器期滿值的選擇位與運行計數器值的相應位進行比較。如果選擇的位匹配,則該控制電路啟動動作,例如,對應于匹配項的命令的重試。
變換實施例包括避讓定時系統,該避讓定時系統包括命令緩沖器和該命令緩沖器的控制電路。命令緩沖器具有多個項,每個項均與相應未決命令相關。配置該控制電路,以當對于對應于該項的命令收到重試響應時,將避讓定時信息存儲到每個項的第一部分內。當對于對應于該項的命令收到含有從生成標志的確認時,將該從生成標志存儲到該項的第一部分,代替該避讓定時信息。
另一個變換實施例包括用于避讓定時的方法,該方法包括存儲含有靜態定時器期滿值的多個緩沖器項;將定時器期滿值的選擇位與運行計數器進行比較;以及啟動動作,例如,對應于匹配項的命令的重試。
又一個變換實施例包括一種用于避讓定時的方法,該方法包括根據是否收到重試響應或者確認響應,存儲對應于未決命令的多個緩沖器項并將避讓定時信息或者從生成標志交替存儲到每個項的相同部分上。
還可以有許多其他實施例。
在閱讀了下面的詳細說明并參考了附圖后,本發明的其他目的和優點顯而易見。
圖1是示出具有總線的系統的方框圖,該總線將根據一個實施例的多個主設備和從設備互連在一起;圖2是示出根據一個實施例被配置成執行分割事務的主設備結構的方框圖;圖3是示出根據一個實施例交替存儲s標志或者避讓定時值的流程圖;圖4是示出根據一個實施例實現避讓定時機制的命令緩沖器和相應控制電路的結構的示意圖。
盡管本發明可以具有各種修改形式和變換形式,但是,作為例子,在附圖和下面的詳細說明中示出并說明了特定實施例。應該明白,附圖和詳細說明無意使本發明局限于所描述的特定實施例。相反,該公開意在涵蓋落入所附權利要求限定的本發明范圍內的所有修改、等同以及變換。
具體實施例方式
下面說明本發明的一個或者多個實施例。應該注意,下面描述的這些以及任何其他實施例是示例性的,意在說明本發明,而非限制本發明。
總體上說,本發明包括用于對通過分割事務總線從主設備發送到從設備的命令的重試實現避讓定時的系統和方法,其中與傳統系統和方法相比,需要的資源少。在一個實施例中,提供一組寄存器(一個命令緩沖器)用于存儲未決命令。對于每個未決命令,存在一個寄存器(緩沖器項(entry)),其被配置成存儲指出命令重試的次數和定時器期滿值的信息。保持一個運行計數器,用于與存儲在對應于未決命令的寄存器內的定時器期滿值進行比較。
在首先發出命令時,將該命令存儲到緩沖器項之一內,利用相應識別標志索引該緩沖器項。如果必須重試該命令,則將相應命令的重試次數存儲到緩沖器項內。偽隨機數存儲在緩沖器項內,作為定時器期滿值。根據該命令的重試次數,對定時器期滿值和運行計數器的值施加掩碼。在這兩個值的未屏蔽位匹配時,重試該命令(即,重發到目標從設備)。
在一個實施例中,將重試計數器和定時器期滿值存儲到與從生成標志(slave-generated tag)相同的位置。在該實施例中,在從設備響應某個命令時,提供從生成標志,以便于之后識別與各命令有關的通信(在從設備內)。然而,在命令被確認之前,不對該命令分配這種標志,不使用對該標志提供的存儲位置。因此,該存儲位置可以用于存儲重試計數器和定時器期滿值。如果從設備以重試命令的確認做出響應,而且隨該響應包括從生成標志,可以刪除先前存儲在命令緩沖器的相應項內的重試計數器和定時器期滿值,而且可以將從生成標志存儲到其位置。盡管可以在各種系統中實現本發明的各種實施例,但是下面的描述集中說明在多處理器系統內實現的特定實施例。該實施例是示例性的,而非限制性的。
參考圖1,圖1所示的方框圖示出根據一個實施例具有使多個主設備與從設備互連的總線的系統。在該實施例中,該主設備和從設備被配置成交互,以執行各種事務。例如,主設備115和主設備120之一可以對從設備125和130之一產生寫命令或者讀命令。然后,主設備可以將數據發送到該從設備,或者從該從設備接收數據。分別配置從設備125和130,以在收到該命令后發送應答。應答可以是確認、重試響應或者空響應。確認表示該從設備可以接受或者發送數據,空表示從設備不是該事務的參與者,重試表示此時不能完成請求的事務,而且該主設備需要在以后的時間重試發送該命令。
組合響應單元135被配置成從所有從設備接收應答,組合該應答,然后,對連接到該總線的所有設備(包括主設備和從設備)廣播一個組合應答。在一個實施例中,組合響應單元135被配置成如果來自一個或者多個從設備的應答是重試響應,則廣播重試組合響應。作為該事務的直接參與者的從設備(例如,數據被寫入其內,或者從其讀取數據的設備),或者作為間接參與者的從設備(例如,用于觀察(observe)該事務并根據該事務更新本地存儲信息的設備)可以產生重試響應。在這兩種情況下,該設備都沒有準備好執行該事務,因此,將重試響應發送到從設備,以遲延該事務。
因為該實施例中的事務被分割為不同部分或者階段(例如,主設備發送命令,然后,從設備應答該命令,等),所以使用標志方案使每個事務的各不同階段互相相關。產生了命令后,配置主設備,以使主標志(m標志)與產生的命令相關。與命令一起將m標志發送到從設備,然后,與從設備發送的任何響應或者數據一起,該m標志返回主設備。在主設備接收響應或者數據時,主設備使收到的響應或者數據與對應于所包含的m標志的事務相關。在一個實施例中,m標志可以是進入其中存儲了命令和/或者關于該事務的信息的主設備中的命令緩沖器的索引。利用該m標志作為索引,可以從命令緩沖器中迅速檢索關于事務的信息,而不必將該m標志與命令緩沖器內的每個項進行比較。
在該實施例中,除了主生成m標志,有時還使用從生成標志(s標志)。以與m標志非常類似的方式使用s標志。差別在于,盡管主設備產生m標志,而且該主設備利用該m標志在主設備的命令緩沖器內進行索引,從設備產生該s標志,而且該從設備利用該s標志在該從設備的命令緩沖器內進行索引。在這兩種情況下,使用各標志在相應命令緩沖器內進行索引就不需要昂貴的內容可尋址存儲器,否則,則需要它查找與收到的響應有關的事務信息。根據下面對示例性事務所做的解釋,m標志和s標志的功能更加顯而易見。
參考圖2,所示的方框圖示出根據一個實施例、被配置用于執行分割事務的主設備結構的方框圖。在該實施例中,主設備210被配置成產生寫命令,從而通過總線250,將數據從本地(local)存儲器220傳送到從設備。主設備210還被配置成產生讀命令,從而通過總線250,將數據從從設備傳送到本地存儲器220。
在一個實施例中,主設備210產生命令(例如,寫命令),然后,將該命令存儲到命令緩沖器230。可以與各種相關信息一起,例如,當前存儲了數據的本地存儲器220內的地址和要將該數據寫入其內的從設備的本地存儲器內的地址,存儲該命令。可以將該命令存儲到命令緩沖器230內,直到與該命令相關的事務結束。
為了將該命令存儲到命令緩沖器230內,從自由m標志列表225獲取m標志。該列表含有表示哪個m標志可用的信息。如果命令緩沖器內的相應存儲位置可用,則特定m標志可用。m標志用作其內存儲了命令的命令緩沖器230的索引。例如,標志1可以對應于該緩沖器內的第一位置,標志2可以對應于該緩沖器內的第二位置,等等。
然后,通過線路255,將該命令和選擇的m標志發送到總線。不僅要將數據寫入其內的從設備可以看到該命令,而且連接到總線的其他設備可以看到該命令。在進行該事務之前,主設備210發送命令(例如,發送要寫入的數據),以確保目標從設備和作為該事務的間接參與者的其他設備準備好進行該事務。如果所有設備都準備好進行該事務(例如,如果目標從設備可以接受寫命令),則主設備可以繼續執行(例如,發送該數據)。
主設備210被配置成響應先前發送到從設備的命令,通過線路260,接收應答。在該實施例中,該應答是表示連接到該總線的所有設備提供的應答的組合應答。主設備210收到的應答含有該主設備最初發送到從設備的m標志以及可以進行與該m標志相關的事務的確認,或者表示應該在以后的時間重新發送該命令的重試響應。
如果主設備210收到的應答是確認,則進行該事務。如果該事務是寫事務,則該組合響應包括s標志。(如上所述,該實施例中的從設備對該事務分配s標志,以便于在自己的命令緩沖器內查找該事務)。主設備收到的s標志和與該事務有關的其他信息一起存儲在緩沖器230內m標志索引的位置。[在其他實施例中,s標志可以存儲在緩沖器230之外的緩沖器內]。在主設備準備好處理該事務時,根據m標志,它在命令緩沖器230內進行索引,然后,檢索進行該事務所需的信息。例如,將在其上存儲寫數據的地址發送到本地存儲器,以便可以檢索該數據,而將s標志寫入s標志緩沖器245。(應該注意,主設備210幾乎立即準備好將寫數據發送到總線,因此,在主設備收到s標志時,可以將s標志存儲到緩沖器245內)。將從本地存儲器220檢索的數據發送到輸出緩沖器235,在輸出緩沖器235,使該數據排隊,以退出主設備210。然后,通過線路265,將該數據和來自s標志緩沖器245的相應s標志一起發送到從設備。然后,從命令緩沖器230刪除該命令和相應信息,并且,在自由m標志列表225內m標志被標識為可用。對于主設備,這樣完成了與寫命令有關的事務。
如果該事務是讀事務,則該從設備無需為了便于定位命令緩沖器的命令而產生s標志。因此,在收到讀命令的確認時,該主設備無需將s標志存儲到自己的命令緩沖器內。主設備210僅等待接收對應于該命令的數據。在主設備210收到讀取的數據時,與該數據一起收到相應m標志。m標志用于在命令緩沖器230內進行索引,然后,檢索與該事務有關的信息,例如,數據存儲在其上的本地存儲器220內的地址。存儲了該數據后,從命令緩沖器230內刪除該命令和相應信息,而且在自由m標志列表225內,使該m標志可用,完成該主設備內的讀事務。
如果主設備210收到的組合應答是重試響應,則必須延遲處理該事務。利用避讓定時機制實現該延遲。在該實施例中,在主設備210接收重試響應時,在命令緩沖器230內存儲或者更新重試指示符,以反映該命令的重試次數(收到的重試響應可能是第一個,它也可以是對該命令收到的幾個之一)。定時器期滿值也存儲在命令緩沖器230內。在該定時器期滿值與運行定時器的當前值匹配時,主設備210再一次發送該命令。
應該注意,在其他實施例中,重試指示符和定時器期滿值可以存儲在命令緩沖器之外的緩沖器內。還應該注意,無論重試指示符和定時器期滿值存儲在什么地方,均可以對這些值和s標志采用同樣的存儲位置。這是因為重試和定時器期滿值用于避讓定時機制,并因此在收到確認和相應s標志時,不再需要該重試和定時器期滿值。同樣,在完成與s標志有關的事務并將對應于新事務的信息存儲到該位置之前,不需要將避讓定時值存儲到該s標志使用的位置。
參考圖3,所示的流程圖示出根據一個實施例交替存儲s標志或者避讓定時值。首先,主設備確定它在其命令緩沖器內是否具有可用存儲位置。如果存在可用存儲位置,則該命令與相應m標志相關,并將它和完成該事務所需的各種其他信息一起存儲到該位置(塊305)。在該實施例中,假定主設備初始化被指定用于存儲相應s標志和/或者避讓定時值的部分存儲位置(塊305)。然后,主設備將該命令送到總線(塊305)。
在主設備發送了該命令后,該主設備等待應答。在該實施例中,根據連接到該總線的各種設備的應答,利用組合響應單元,產生應答。在主設備收到應答時(塊310),確定該應答是否是確認(塊315)。如果該應答是確認,則該應答可以包括s標志。如上所述,在一個實施例中,寫命令的確認包括s標志,而讀命令的確認不包括s標志。因此,確定該確認是否包括s標志(塊320)。如果s標志包括在該確認內,則將該s標志存儲在對相應命令指定的位置(塊321),然后,繼續進行該事務(塊325)。對于寫命令,這可以包括檢索寫數據,然后,與s標志一起,將該數據發送到總線。如果確定該確認不包括s標志(塊320),則繼續進行該事務(塊325),而沒有存儲的s標志。
如果在塊315,確定對于該命令的組合應答不是確認,則該應答是重試響應。因此,該主設備將重試指示符值和定時器期滿值存儲到相應命令緩沖器項的指定位置(塊330)。將這些值存儲到該緩沖器內后,主設備開始根據運行計數器的值檢驗定時器期滿值(塊335)。這包括對定時器期滿值和運行計數器的值施加掩碼(根據重試指示符選擇),然后,確定未屏蔽位是否匹配。下面還將對此做詳細說明。如果屏蔽值不匹配,則在遞增運行計數器之前不采取動作,然后,再將屏蔽值進行比較。在屏蔽值匹配時,重發該命令(塊340),然后,該主設備等待對應于該重發命令的應答(塊310)。
在一個實施例中,該重試指示符被實現為在每次收到對應于該指示符的重試時遞增的計數器。因此,最初,重試指示符是0,然后,在一個重試響應后,它變成1,在兩個重試響應后,它變成2,等。該計數器可被配置成在達到相應重試次數時,保持最大值。例如,在收到第八個重試響應時,計數器可以達到最大值8,而且在收到另外的重試響應時,可以保持在該值。應該注意,還可以以許多其他形式實現該重試指示符。
在一個實施例中,利用偽隨機數發生器提供定時器期滿值。在收到重試響應時,將該發生器提供的偽隨機數存儲到對應于該重試響應的命令的緩沖器項內。該值是靜態的,而且在收到新重試響應以及利用新偽隨機數覆蓋寫該定時器期滿值之前,或者在收到該確認并利用s標志或者與該確認有關的其他信息覆蓋寫該定時器期滿值之前,不更新該值。代替更新該定時器期滿值,而將該值與運行計數器(定時器)進行比較。因為運行計數器周期性地工作(即,從0遞增到N,然后,返回0,之后,再一次開始遞增),所以運行計數器是對從0開始的隨機定時器期滿值,還是對從隨機開始值開始的隨機定時器期滿值進行計數沒有差別。
與傳統機制相比,使用運行計數器和偽隨機定時器期滿值可以提高定時機制的效率,因為不是對必須分別更新的每個緩沖器項設置單獨計數器,而是僅更新一個運行計數器。因為每個周期更新一個計數器,所以顯著減少了避讓定時機制的功率消耗和更新計數器所需的處理時間。
盡管運行計數器和偽隨機定時器期滿值考慮到了不同命令重試的定時之間的變化,但是它們不獨自提供定時避讓。即,它們不提供從增大的數值范圍內選擇的隨機定時器值。在本實施例中,這是通過對比較值施加掩碼實現的。
在該實施例中,每個重試次數(最高達到最大值8)與相應掩碼相關。下面的表1示出重試次數和相應掩碼。
表1
每個掩碼都是8位長,其中0對應于屏蔽位,而1對應于未屏蔽位。對定時器期滿值的8個最高有效位施加每個掩碼,在該實施例中,定時器期滿值是16位長。(在該實施例中,s標志是24位長)。可以看出,對于每個后續的重試,定時器期滿值的一個附加位未被屏蔽。因此,對于0次重試,掩碼是“00000000”,因此,該定時器期滿值的8個最高有效位被屏蔽,而在與運行計數器進行比較時,僅使用8個最低有效位。在一次重試之后,進行比較使用的掩碼是“00000001”,因此,在將定時器期滿值與運行計數器進行比較時,使用9個最低有效位。
這種機制導致從0-255(0-28-1)內隨機選擇0次重試的重試周期,從0-511(0-29-1)內選擇1次重試的重試周期,等等。下面的表2示出對應于重試次數的重試周期(period)的范圍。
表2
由于該計數器的任意數量的最低有效位連續遞增到所有可能值,而且由于該定時器期滿值的任意數量的最低有效位本身是該屏蔽計數器范圍內的偽隨機數,因此對命令緩沖器內的所有項,同一運行計數器可以用于避讓定時機制。
在圖4所示的電路中可以實現上面描述的實施例。圖4是示出命令緩沖器和用于實現根據本實施例的避讓定時機制的相應控制電路的結構的示意圖。在主設備收到對應于寫命令的響應時,通過線路405,將包含在該響應內的m標志送到命令緩沖器,然后,鎖存在鎖存器410內。如果s標志包括在該響應內,則通過線路406,將它送到命令緩沖器。
在鎖存器410的輸出端的m標志被送到第二鎖存器411的輸入端,然后,再通過線路401,將它送到復用器421。m標志值用作復用器421的控制輸入,使復用器選擇對應于該m標志的緩沖器項430-431之一。(緩沖器項430-431設置為復用器421和復用器422的輸入-為了清楚起見,該圖中僅明確示出到復用器422的連接。)換句話說,m標志用于在命令緩沖器內進行索引。復用器421在其輸出端提供選擇的項的重試指示符值。通過線路402,將該值送到加法器416。加法器416遞增該重試指示符值,然后,將結果送到格式化器417。線性反饋移位寄存器415產生偽隨機數,而且還將該值送到格式化器417。
格式化器417接收來自線性反饋移位寄存器415和加法器416的值,然后,格式化這些值,以存儲在命令緩沖器的項內。然后,將格式化的值送到復用器423。如果s標志包括在主設備的響應內,則還通過線路406,將該s標志送到復用器423。因為該實施例用于交替存儲這些格式化的值(重試和避讓信息)或者s標志,所以格式化的避讓信息和s標志采用同樣的位數(但是,在其他實施例中,無需這樣)。主設備接收的響應的類型控制復用器423。如果該響應是重試響應,則復用器423被配置成選擇從格式化器417接收的避讓信息。如果響應是確認,則復用器423被配置成選擇在線路406上接收的s標志。在復用器423的輸出端產生選擇的值,從復用器423該值被輸入到鎖存器412。
在將m標志的值鎖存到(clock into)鎖存器411內后,該值被提供在該鎖存器的輸出端,而且該值用于在命令緩沖器內進行索引,從而選擇命令緩沖器項430-431之一。應該注意,在該實施例中,盡管命令緩沖器包括16個項,但是為了清楚起見,在該圖中僅明確示出兩個項(430和431)。在將m標志值鎖存到鎖存器411內時,將復用器423選擇的值鎖存到鎖存器412內。將存儲在鎖存器412內的值送到根據該m標志值選擇的緩沖器項,然后,將它存儲到該項內。如果主設備收到的響應是寫命令的確認,則存儲在命令緩沖器項內的值是s標志。在這種情況下,復用器422可以選擇由m標志索引的緩沖器項,以將相應信息送到鎖存器413。然后,該信息可以用于從主設備的本地存儲器檢索寫數據,然后,與相應s標志一起,將它送到總線。
如果主設備收到的響應是重試響應,則復用器423選擇格式化重試和避讓信息,以送到鎖存器412。在將該信息鎖存到鎖存器412內,而將相應m標志鎖存到鎖存器411內時,將格式化重試和避讓信息存儲到m標志索引的命令緩沖器項中。每個命令緩沖器項430-431均具有相應比較電路440-441,用于確定是否應該將存儲在該項中的命令重發到總線。例如,電路440將緩沖器項430上的重試和避讓信息與自由運行計數器418的值進行比較,而電路441將緩沖器項431的信息與該計數器的值進行比較。如果該緩沖器項內的偽隨機數的值與計數器418的值匹配(如根據避讓信息屏蔽的),則該信號被斷言(assert),以開始重試(重發)該命令。
圖中示出比較電路441的細節。可以看出,在該實施例中,將存儲在該緩沖器項431內的掩碼值和偽隨機數送到電路441。還將計數器418的值送到比較電路441。比較電路441將緩沖器項431內的偽隨機數和計數器418的值逐位進行比較。將這些比較的結果送到改進型“與”門。該改進型“與”門被配置成利用掩碼值確定應該考慮哪些比較結果,而應該忽略哪些比較結果。如上所述,該實施例中的掩碼標識應該忽略多少(0-8)個最高有效位。如果所有剩余位的比較是真(即,如果所有未屏蔽位匹配),則斷言改進型“與”門的輸出,指出現在應該重試緩沖器項441內的命令。
如上所述,上面的實施例意在說明本發明的許多可能實施例。變換實施例可以包括一個或者多個上述特征的變型。例如,不將避讓定時信息和s標志存儲到命令緩沖器內,主設備可以包括用于存儲該數據的不同緩沖器。作為另一個例子,變換實施例不存儲顯式重試計數器值。相反,與避讓定時信息一起可以存儲對應于重試值的掩碼,因此,通過與存儲的掩碼相關,可以得知重試次數。在這種實施例中,在收到重試響應時,不使該重試計數器遞增,而是在存儲之前,使該掩碼的各位移位(例如,可以使“00000001”移位到“00000011”,或者可以使“00111111”移位到“01111111”)。相反,另一個變換實施例可以顯式存儲該重試計數器值,而根據其與重試計數器值相關,可以得知要施加的掩碼。還可以有許多其他變型。
盡管本申請的公開根據多處理器計算系統描述了本發明,但是應該注意,可以更廣泛應用本發明,而且本發明可以用于其他情況下的變型。因此,不應該認為該公開使本發明局限于多媒體游戲系統領域。
本技術領域內的技術人員明白,可以利用各種不同技巧和技術之任一表示信息和信號。例如,可以利用電壓、電流、電磁波、磁場或者它們的任意組合,表示在上述整個說明中可以采用的數據、指令、命令、信息、信號、位和符號。
本技術領域內的技術人員還明白,利用電子硬件、計算機軟件或者這二者的組合,可以實現結合在此公開的實施例描述的各種示例性邏輯塊、模塊、電路以及算法步驟。為了清楚地說明硬件和軟件的這種可互換性,上面根據其功能,一般性地說明了各種示例性部件、塊、模塊、電路以及步驟。是利用硬件還是利用軟件實現這種功能取決于特定應用和對整個系統設定的設計限制。對于每種特定應用,本技術領域內的技術人員可以以各種方式實現上述功能,但是,不應該認為這種實現判定導致脫離本發明范圍。
利用通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或者用于實現在此描述的功能的其他可編程邏輯器件、分立門或者晶體管邏輯、分立硬件部件或者它們的任意組合可以實現或者實施結合在此公開的實施例描述各種示例性邏輯塊、模塊以及電路。
上面根據特定實施例描述了可以利用本發明實現的好處和優點。不應該認為這些好處和優點以及可能導致它們出現的,或者更明確表達的任意元素或者限定是權利要求之任一或者全部權利要求的重要特征、要求特征或者本質特征。應該將在此使用的術語“包括(comprises)”、“包括(comprising)”或者其任意其他變型理解為不僅僅包括這些術語后面的元素或者限定。因此,包括一組元素的系統、方法或者其他實施例并不局限于僅這些元素,而且可以包括未明確列出的,或者所要求實施例固有的其他元素。
上面對公開的實施例所做的描述是為了使本技術領域內的技術人員明白實施本發明或者使用本發明。對于本技術領域內的技術人員,這些實施例的各種修改是顯而易見的,而且在不脫離本發明實質范圍的情況下,在此定義的一般原理可以應用于其他實施例。因此,本發明無意局限于在此說明的實施例,而是符合與在此公開的和下面的權利要求引述的原理和新穎特征一致的最廣泛范圍。
權利要求
1.一種避讓定時系統,包括命令緩沖器,被配置成存儲多個項;運行計數器,被配置成周期性地通過一組值進行計數;一個或者多個比較器,被配置成對于每一項,將對應于該項的定時器期滿值的選擇位與該運行計數器的當前值的相應位進行比較;以及控制電路,被配置成響應一個或者多個比較器確定對應于所述多個項中的第一項的定時器期滿值的選擇位與該運行計數器的當前值的相應位匹配,啟動對應于所述多個項中的第一項的動作。
2.根據權利要求1所述的系統,其中在多處理器系統的主設備內實現避讓定時系統,而且其中控制電路啟動的動作包括與所述多個項中的第一項相關的命令的重試。
3.根據權利要求1所述的系統,進一步包括偽隨機數發生器,其中控制電路被配置成存儲偽隨機數發生器提供的偽隨機數作為定時器期滿值,而且當對于對應于該項的命令收到重試響應時,將重試次數指示符存儲到每個項內。
4.根據權利要求3所述的系統,其中該一個或者多個比較器被配置成根據與重試次數指示符相關的掩碼,確定定時器期滿值的選擇位。
5.根據權利要求4所述的系統,其中該一個或者多個比較器被配置成對定時器期滿值施加掩碼,而且選擇一系列未屏蔽位。
6.根據權利要求1所述的系統,其中對定時器期滿值的各位的第一子集施加該掩碼,而且其中選擇位始終包括該定時器期滿值的各位的第二子集。
7.根據權利要求1所述的系統,其中選擇的該定時器期滿值的各位的子集包括該定時器期滿值的一系列連續最低有效位。
8.根據權利要求1所述的系統,其中控制電路被配置成當對于對應于該項的命令收到重試響應時,將定時器期滿值和重試次數指示符存儲在每個項的第一部分;以及當對于對應于該項的命令收到含有從生成標志的確認時,將從生成標志存儲到每個項的第一部分。
9.一種用于避讓定時的方法,包括存儲對應于未決命令的一個或者多個項,其中每個項均包括靜態定時器期滿值;保持運行計數器,該運行計數器被配置成周期性地通過一組值進行計數;對于每個項,重復地將對應于定時器期滿值的選擇位與該運行計數器的當前值的相應位進行比較;以及響應確定對應于所述多個項中的第一項的定時器期滿值的選擇位與該運行計數器的當前值的相應位匹配,啟動對應于所述多個項中的第一項的動作。
10.根據權利要求9所述的方法,其中啟動對應于所述多個項中的第一項的動作包括與所述多個項中的第一項相關的命令的重試。
11.根據權利要求9所述的方法,進一步包括,對于每個項產生偽隨機數,并存儲該偽隨機數作為定時器期滿值;以及當對于對應于該項的命令收到重試響應時,將重試次數指示符存儲到每個項內。
12.根據權利要求11所述的方法,進一步包括根據與該項的重試次數指示符相關的掩碼,確定每個項的定時器期滿值的選擇位。
13.根據權利要求12所述的方法,進一步包括對定時器期滿值施加掩碼,以選擇一系列未屏蔽位。
14.根據權利要求13所述的方法,其中對定時器期滿值的各位的第一子集施加該掩碼,而且其中選擇位始終包括該定時器期滿值的各位的第二子集。
15.根據權利要求14所述的方法,其中確定每個項的定時器期滿值的選擇位包括選擇對應于該定時器期滿值的一系列連續最低有效位。
16.根據權利要求9所述的方法,進一步包括當對于對應于該項的命令收到重試響應時,將定時器期滿值和重試次數指示符存儲在每個項的第一部分;以及當對于對應于該項的命令收到含有從生成標志的確認時,將從生成標志存儲到每個項的第一部分。
17.一種避讓定時系統,包括命令緩沖器,被配置成存儲多個項,其中每個項與相應未決命令相關;控制電路,被配置成當對于對應于該項的命令收到重試響應時,將避讓定時信息存儲到每個項的第一部分,以及當對于對應于該項的命令收到含有從生成標志的確認時,將從生成標志存儲到每個項的第一部分。
18.根據權利要求17所述的系統,進一步包括偽隨機數發生器;運行計數器,被配置成周期性地通過一組值進行計數;其中控制電路被配置成存儲包括表示對應于該項的命令的重試次數的重試指示符和該偽隨機數發生器產生的定時器期滿值的避讓定時信息。
19.一種用于避讓定時的方法,包括存儲多個緩沖器項,其中每個項與相應未決命令相關;當對于對應于該項的命令收到重試響應時,將避讓定時信息存儲到每個項的第一部分,以及當對于對應于該項的命令收到含有從生成標志的確認時,將從生成標志存儲到每個項的第一部分。
20.根據權利要求19所述的方法,進一步包括保持運行計數器,所述運行計數器被配置成周期性地通過一組值進行計數;以及存儲表示對應于該項的命令的重試次數的重試指示器和偽隨機定時器期滿值,作為避讓定時信息。
全文摘要
用于對通過分割事務總線從主設備發送到從設備的命令的重試實現避讓定時的系統和方法。一個實施例包括緩沖器,具有用于存儲每個未決命令和相關信息的項,包括命令的重試次數和靜態偽隨機定時器期滿值。根據與對應于該項的命令的重試次數相關的掩碼,將每個項的定時器期滿值與該運行計數器進行比較。在兩個值的未屏蔽位匹配時,重試該命令。在一個實施例中,用于存儲重試次數和定時器期滿值的緩沖器項的相同部分用于交替存儲與確認響應一起接收的從生成標志。
文檔編號G06F13/14GK1845085SQ20061005987
公開日2006年10月11日 申請日期2006年3月20日 優先權日2005年4月6日
發明者淺野滋博, 石井勵 申請人:株式會社東芝