用於發起設備向接收設備發送的事務請求的動態資源分配的製作方法
2023-05-12 13:20:51 1
專利名稱:用於發起設備向接收設備發送的事務請求的動態資源分配的製作方法
技術領域:
本發明的領域涉及數據處理系統,並且尤其涉及具有向許多接收者設備發送事務請求的許多發起者設備的系統以及用於執行這些事務請求的接收者設備內的資源分配。
背景技術:
例如分布式共享存儲器中用於多個發起者設備訪問多個接收者設備的資源分配需要被謹慎地管理以便確保每種類型的事務請求的向前進展。在現有技術的系統中,這已經以多種方式實現,但是通常通過使用隱式或顯式的資源分配。已使用從接收者設備發送並且向發起者設備表示事務請求是否已被接受的確認信號來實現隱式資源分配。如果事務請求未被接受,那麼發起者設備將在隨後重新發送事務請求,希望這次它將被接受。這種方式的缺點在於難於限制用於每一個事務請求的等待時間,因為事務請求可不斷地嘗試並且不成功。此外,連續嘗試具有與其相關的時間、功率和帶寬的開銷。一種替代系統是例如在啟動時,向每個發起者設備給予用於與接收者設備的事務的某數量的信用證(credit),並且當使用信用證時,一旦使用它的事務請求完成則發送新的信用證。該方式的缺點在於隨著系統變得更大,為了向所有發起者提供用於每一個接收者的信用證,接收者上用於存儲掛起(pending)事務的緩衝區需要變得越來越大。將期望能夠動態地分配資源,使得有效地使用事務請求存儲器,並且各個事務請求的等待時間仍然保持很低。
發明內容
本發明的第一方面提供了 一種接收者設備,用於經由至少一個互連裝置從多個發起者設備接收事務請求,所述接收者設備包括:至少一個埠,用於從所述至少一個互連裝置接收所述事務請求以及向其發送請求和信號;確認信號生成器,被配置為生成和輸出表示請求已被所述接收者設備接收但還未被所述接收者設備接受的拒絕確認信號;緩衝區,用於在所述接收者設備執行之前存儲接受和掛起的事務請求;信用證生成器,所述信用證生成器被配置為:在所述緩衝區中保留至少一個可用的存儲位置;以及對於發送未由所述接收者設備接受的所述事務請求之一的發起者設備生成信用證授予,所述信用證授予向所述發起者設備表示至少存在一個保留的存儲位置,以使得來自所述發起者設備的隨後的事務請求將由所述接收者設備接受。本發明認識到與以下相關的競爭問題:將接收者設備上的事務請求存儲保持為較低以便減少區域開銷,而不會過度增加可能由沒有存儲事務請求的空間的接收者設備不斷拒絕的某些事務請求的等待時間。它通過提供當用於掛起事務請求的存儲位置變得可用時保留存儲位置並且向已被拒絕了事務請求的發起者發送信用證授予的接收者設備來解決該問題。發起者設備然後可重新發送該事務請求並且被保證事務請求將被接受。以該方式,接收者設備本身知道哪些發起者設備具有已被拒絕的掛起事務請求並且當接收者設備的緩衝區中的存儲位置變為可用時,它可向所選擇的一個發起者設備發送信用證,首先保留了存儲位置以使得它們僅可由接收了信用證授予的發起者設備使用。以該方式,可向發起者設備確保將會接受響應於信用證授予所發送的事務請求。這提供了一種分配接收者設備資源的相對簡單但有效的方式,其既確保將在某時刻接受事務請求,但又並不需要接收者設備中更大的緩衝區。在某些實施例中,所述接收者設備被配置為接受事務請求和在所述至少一個所保留存儲位置中存儲所述事務請求,所述事務請求包括表示發送所述事務請求的所述發送者接收的信用證授予正在被使用的指示符。接收者設備可通過與事務請求相關的表示已接收信用證授予的發起者設備何時正在發送事務請求的指示符來確定該時間。響應於該事務請求,知道存在可用的保留存儲位置的接收者設備可接受事務請求,並且以該方式,具有信用證授予指示符的事務請求總是被接收者設備接受。因為關於信用證授予的信息連同事務請求一起被發送,所以接收者設備不需要存儲關於先前未被接受的事務請求的信息,並且這降低了接收者設備的存儲要求。在某些實施例中,所述信用證生成器包括用於存儲保留的可用存儲位置的數量計數的計數器,所述信用證生成器被配置為響應於確定所述存儲位置之一變為可用而遞增所述計數值並且響應於接收包括表示所接收信用證授予正被使用的指示符的事務請求而遞減所述計數值。當發送用於被拒絕事務請求的信用證授予時,緩衝區中的存儲位置被保留以使得當接收了具有相關聯的信用證授予指示符的事務請求時,其可被保證接受。不是保留用於特定事務請求的特定存儲位置,而是信用證生成器僅僅遞增表示為具有與其關聯的信用證授予的事務請求保留的緩衝區內的存儲位置數量的計數值。以該方式,通過僅僅存儲計數值,信用證生成器知道為具有信用證授予的事務請求保留了多少存儲位置,以及多少存儲位置可用於其它事務請求。在這點上,可通過在事務請求被存儲到緩衝區時讓對空閒存儲位置計數的另一個計數器遞減以及在從緩衝區移除事務請求時讓該另一個計數器遞增來確定後者。在某些實施例中,所述信用證生成器還包括對應於所述多個發起者設備的多個計數器,每一個計數器用於存儲表示從所述各個發起者設備接收的尚未被所述接收者設備接受的掛起事務請求的數量的計數值,所述信用證生成器被配置為響應於所述接收者設備從所述對應的發起者設備接收但是不接受至少某些所述事務請求來遞增所述計數器之一,以及響應於從所述對應的發起者設備接收包括表示所接收信用證授予正在被使用的指示符的事務請求來遞減所述計數器之一。如前所述,接收者設備不需要存儲未被接受的各個事務請求的細節。在某些實施例中,它具有對應於發起者設備數量的許多計數器,並且這些計數器存儲表示接收者設備從每個發起者設備已接收但未接受的事務請求數量的計數值。存儲該信息使得接收者設備知道哪些發起者設備具有掛起和被接收者設備拒絕了的大量事務請求。然後,在選擇哪個發起者設備以將信用證授予向其發送時,它可使用該信息。再次,信息以區域效率高的方式存儲。在某些實施例中,所述信用證生成器被配置為響應於被所述接收者設備接收但未由所述接收者設備接受的全部所述事務請求來遞增所述計數器之一。而在其它實施例中,所述信用證生成器被配置為僅響應於被所述接收者設備接收但未由所述接收者設備接受並且包括信用證授予指示符的所述事務請求來遞增所述計數器之一。對於未由接收者設備接受的每個事務請求,可能接收者設備將遞增表示事務請求已被拒絕的計數器並且以後將向該發起者設備發送信用證授予。在該情況下,在首次拒絕事務請求之後,發起者設備將不會再次發送事務請求,直到已接收了信用證授予。或者,可能系統被設計為使得事務請求在其等待信用證授予之前被發送某個次數。在後者的情況下,為了讓接收者設備知道是否將再次發送事務請求或者是否它正等待信用證授予,事務請求當其已被發送了必要的次數時將具有與其關聯的信用證授予指示符。響應於該指示符,接收者設備將遞增對應於發送事務請求的發起者設備的計數器之一,並且這將向接收者設備表示發起者設備正在等待信用證授予。僅發送一次事務請求並且然後等待信用證的優點是人們不需要跟蹤事務請求已被發送並且未被接受多少次,並且不需要關於事務請求的指示符來表示事務請求需要信用證授予。然而,在某些情況下,很可能事務請求將在第二次或第三次被接受,並且因此,在請求和等待信用證授予以及相應的存儲位置保留之前僅發送一次事務請求是不必要的開銷。在該情況下,將事務請求在其請求授予之前被拒絕的次數設置為特定次數可改進系統效率。顯然,它依賴於操作條件以及發起者設備和接收者設備的功能並且因此,在某些實施例中,可相應地設置值。在某些實施例中,所述信用證生成器包括優先化邏輯,用於優先化未由所述接收者設備接受的所述掛起事務請求,所述優先化邏輯被配置為依賴於優先化算法和所述計數器的計數值來選擇所述發起者設備中的所述一個來發送所述信用證授予。為了確保接收者設備的資源被公平地分配到發起者設備並且沒有發起者設備必須為事務請求被接受等待很久,可使用優先化邏輯,其具有為下一個信用證授予選擇發起者設備的優先化算法。該優先化算法可使用計數器的計數值,該計數值向其表示每個發起者設備已拒絕了多少個事務請求。在某些實施例中,所述信用證生成器響應於在所述至少一個埠接收的信用證拒絕請求(其表示已被生成並且輸出到所述發起者設備之一的信用證授予不被所述發起者設備需要),使得所述保留存儲位置之一可用並且遞減與所述發起者設備中的所述一個相關的所述計數器。如果接收者設備可響應於信用證拒絕請求而使得保留存儲位置可用並且遞減與發送信用證拒絕請求的發起者設備相關的計數器,可能是有利的。在某些情況下,信用證授予被發送到將不會重新發送事務請求的發起者設備。這在事務請求被推測地發送並且未由接收者設備接受以及觸發信用證授予的情況下可發生。事務請求的該推測式發送將不會重複,並且因此,信用證授予不被發起者設備需要。不是為不需要它的該發起者設備永久地保留存儲位置,而是如果發起者設備可發送信用證拒絕信號來向接收者設備表示不需要保留的存儲位置以使得該存儲位置可被釋放來存儲另一個掛起的事務請求,則是有利的。在某些實施例中,所述信用證生成器響應於在所述至少一個埠處接收的來自發起者設備的信用證授予需求,來確定何時存儲位置在所述緩衝區中變為可用並且保留可用的存儲位置,以及生成和向所述發起者設備輸出信用證授予。
還可能有利的是,接收者設備可響應於信用證授予需求來向發起者設備發送信用證授予。發起者設備能夠確定何時它們要進入操作周期,在該周期中它們需要訪問接收者設備。在該情況下,可能有利的是,它們可預先請求信用證授予以使得當隨後訪問接收者設備時事務請求被確保接受並且改進系統的性能。本發明的第二方面提供了一種發起者設備,用於經由至少一個互連裝置向多個接收者設備發送事務請求,所述發起者設備包括:至少一個埠,用於從所述至少一個互連裝置接收請求和信號以及向其發送事務請求;所述發起者設備包括事務請求發送電路,用於向各個所述接收者設備發送所述事務請求並且用於接收表示所述發送的事務請求尚未由所述各個接收者設備接受的確認信號,所述事務請求發送電路被配置為響應於接收表示所述發送的事務請求之一尚未被所述各個接收者設備接受的至少一個確認信號,不再發送所述發送的事務請求中的所述一個,直到在從所述各個接收者設備接收了信用證授予之後,所述信用證授予表示所述各個接收者設備將接受來自所述發起者設備的隨後的事務請求。本發明提供了一種發起者設備,其響應於從接收者設備接收表示事務請求尚未被接受的確認信號,將不會重新發送事務請求,直到在從各個接收者設備接收了信用證授予之後。信用證授予向發起者設備表示隨後的事務請求將被接收者設備接受。以該方式而不是不斷地發送可被不斷拒絕的事務請求,發起者設備僅等待接收信用證授予,由此它知道事務請求將被接受並且它可再次發送事務請求。以該方式保證了事務請求的接受並且避免了被不斷拒絕的特定事務請求的較長等待時間。此外,通過避免連續重新發送事務請求以及對它們的連續拒絕,可降低功耗和互連裝置帶寬。在某些實施例中,所述事務請求發送電路響應於表示所述發送的事務請求之一尚未由所述各個接收者設備接受的每個確認信號,不再發送所述事務請求中的所述一個,直到在接收了來自所述各個接收者設備的信用證授予之後。發起者設備可響應於表示事務請求尚未被接受的每個確認信號,不再發送事務請求並且等待信用證授予。或者,發起者設備可包括將跟蹤事務請求未被接受的次數的計數器,並且發起者設備將僅在事務請求未被接受某個次數之後不再發送事務請求。可能有利的是,推測地嘗試發送事務請求某個次數,因為非常可能它將被接受。然而,為了避免它被不斷地拒絕,可能有利的是,跟蹤它被拒絕的次數並且在某數量之後請求信用證授予。因為通過計數器在發起者設備處跟蹤次數,所以該事務請求已經被拒絕預定次數並且需要信用證授予的信息可通過將信用證授予指示符附加到事務請求(一旦該事務請求已被拒絕了該某個次數)而被發送到接收者設備。這使得能夠向發起者設備確保事務請求將僅被拒絕某個次數並且在此之後響應於信用證授予的接收當被再次發送時它將被接受。在某些實施例中,所述事務請求發送電路被配置為響應於所述發起者設備的所檢測操作條件而改變所述預定值。用於重新發送事務請求的次數的優選值取決於發起者設備和接收者設備的操作條件並且可在處理期間改變。因此,可能有利的是,該預定值可改變。許多發起者設備以突發(bursty)方式訪問接收者設備,使得在某些時刻發起者設備很少訪問接收者設備,而在其它時刻發起者設備可非常頻繁地訪問接收者設備。如果訪問模式是這種類型,那麼最優的預定值將隨著訪問模式改變,並且因此,能夠在操作期間改變該值使得系統能夠被調整為更有效率地操作。在某些實施例中,所述事務請求發送電路被配置為響應於信用證授予的接收來發送信用證拒絕請求,所述信用證授予是響應於未由所述各個接收者設備接受並且所述發起者設備將不會重新發送的所發送事務請求而被接收的。發起者設備可能發送未由接收者設備接受但是發起者設備不再有興趣發送的事務請求。例如,它可以是推測式的數據訪問。在該情況下,如果信用證被發送到發起者設備,那麼發起者設備不需要該信用證授予並且如果它可發送信用證拒絕請求以使得可釋放接收者設備中為該信用證授予保留的存儲位置則是方便的。在某些實施例中,事務請求發送電路包括信用證授予需求生成器,用於生成至少一個信用證授予需求並且用於向所述多個接收者設備中的一個發送所述信用證授予需求,所述信用證授予需求觸發所述接收者設備中的所述一個向所述發起者設備發送信用證授予,以使得從所述發起者設備向所述接收者設備中的所述一個發送的隨後事務請求將被接受。可能方便的是,發起者設備具有可在事務請求之前就需要信用證授予的信用證授予需求生成器。可能存在某些操作周期,其中發起者設備將需要頻繁地訪問接收者設備,並且這些操作周期可能是低等待時間很重要的操作周期。在該情況下,能夠預先請求信用證授予將改進發起者設備的性能。在某些實施例中,所述事務請求發送電路被配置為響應於接收所述信用證授予來選擇事務請求以向所述各個接收者設備發送,並且在發送所述所選擇事務請求之前向其附加表示所述信用證授予正被使用的指示符。當信用證授予被發起者設備接收時,發起者設備不需要將它用於未被接受並且實際上觸發了該信用證授予的事務請求。發起者設備可根據它自己的優先化邏輯來選擇可能相比於被拒絕的事務請求在性能上更關鍵的掛起事務請求並且可發送它與表示信用證授予已被接收的指示符,這將確保該事務請求被接受。以該方式,發起者設備可優先化性能關鍵的事務請求並且接收者設備可僅通過監視與事務請求關聯的指示符來跟蹤哪些信用證授予已被使用。本發明的第三方面提供了一種數據處理裝置,其包括多個發起者設備、多個接收者設備和將所述多個發起者設備連接到所述多個接收者設備的至少一個互連裝置,至少一個所述發起者設備是根據本發明第二方面的發起者設備,並且至少一個所述接收者設備是根據本發明第一方面的接收者設備。本發明的第三方面提供了一種確定在接收多個發起者設備發送的事務請求的接收者設備處接受哪些事務請求的方法,包括:接收所述事務請求;為被所述接收者設備接收但是未由所述接收者設備接受的事務請求生成拒絕確認信號;在由所述接收者設備執行之前在緩衝區中存儲所接受和掛起的事務請求;在所述緩衝區中保留至少一個可用的存儲位置;為發送未由所述接收者設備接受的所述事務請求之一的發起者設備生成信用證授予;向所述發起者設備輸出表示存在保留存儲位置的所述信用證授予,使得來自所述發起者設備的隨後事務請求將由所述接收者設備接受。本發明的第四方面提供了一種向多個接收者設備發送事務請求的方法,所述方法包括:向所述多個接收者設備中相應的一個接收者設備發送所述事務請求之一;從所述相應的一個接收者設備接收表示所述發送的事務請求尚未被所述相應的一個接收者設備接受的確認信號;響應於表示所述發送的事務請求之一尚未被所述相應的一個接收者設備接受的至少一個確認信號,不再發送所述事務請求,直到接收了來自所述相應的一個接收者設備的信用證授予之後,所述信用證授予表示所述相應的一個接收者設備將接受來自所述發起者設備的隨後事務請求。 本發明的第五方面提供了 一種接收者裝置,用於經由至少一個互連裝置從多個發起者裝置接收事務請求,所述接收者裝置包括:至少一個埠裝置,用於從所述至少一個互連裝置接收所述事務請求以及向其發送請求和信號;確認信號生成裝置,用於生成和輸出表示請求已被所述接收者裝置接收但還未被所述接收者裝置接受的拒絕確認信號;存儲裝置,用於在所述接收者設備執行之前存儲接受和掛起的事務請求;信用證生成裝置,用於在所述存儲裝置中保留至少一個可用的存儲位置,並且對於發送未由所述接收者裝置接受的所述事務請求之一的發起者裝置生成信用證授予,所述信用證授予向所述發起者裝置表示至少存在一個保留的存儲位置,以使得來自所述發起者裝置的隨後的事務請求將由所述接收者裝置接受。本發明的第六方面提供了一種發起者裝置,用於經由至少一個互連裝置向多個接收者裝置發送事務請求,所述發起者裝置包括:至少一個埠裝置,用於從所述至少一個互連裝置接收請求和信號以及向其發送事務請求;所述發起者裝置包括事務請求發送裝置,用於向各個所述接收者裝置發送所述事務請求並且用於從所述互連裝置接收表示所述發送的事務請求尚未由所述各個接收者裝置接受的確認信號,並且用於響應於表示所述事務請求尚未被所述各個接收者裝置接受的至少一個確認信號,而不再發送所述事務請求,直到在從所述各個接收者裝置接收了信用證授予之後,所述信用證授予表示所述各個接收者裝置將接受來自所述發起者裝置的隨後的事務請求。根據應結合附圖來閱讀的說明性實施例的以下詳細描述,本發明的上面和其它目的、特徵和優點將是明顯的。
圖1根據本發明實施例示出了接收者設備;圖2根據本發明實施例示出了發起者設備;圖3示出了包括都由互連裝置互連的多個發起者設備和多個接收者設備的數據處理系統;圖4根據本發明實施例示意性地示出了數據處理系統中的事務請求的進展;圖5根據本發明實施例示出示出了接收者設備執行的方法中的步驟的流程圖;並且圖6根據本發明實施例示出示出了發起者設備執行的方法中的步驟的流程圖。
具體實施例方式圖1根據本發明實施例示出了接收者設備10。該接收者設備通常可以是系統中的從動裝置(slave),例如一致性(coherency)控制器或輸入/輸出橋接器。該接收者設備在埠 12接收從發起者設備經由互連裝置發送的事務請求。接收者設備10包括緩衝區15,用於在已接收的掛起事務請求由接收者設備執行之前先將其存儲。因此,響應於接收事務請求,接收者設備10將接受事務請求並且在緩衝區15中存儲它(如果存在可用的存儲位置)。是否存在可用的存儲位置由仲裁器20來確定。掛起的事務請求存儲在緩衝區15中,直到接收者設備可執行它們,然後事務請求從緩衝區15移除。一旦接收者設備已執行了掛起事務請求,那麼完成的確認系統被發送回發起者設備。存在對可用存儲位置數量進行計數的與仲裁器20關聯的計數器28,並且仲裁器20根據該計數器確定存儲位置的可用性。當所接收事務請求存儲在緩衝區15中時,那麼計數器28遞減,而當事務請求從緩衝區15移除時,計數器遞增。如果仲裁器20確定在緩衝區15中沒有可用空間,那麼事務請求不能被接收者設備10接受並且它被拒絕。仲裁器20用信號將該拒絕通知給確認信號生成器25,確認信號生成器25經由埠 12將表示事務請求未被接受的信號發送回發送事務請求的發起者設備。如果事務請求具有與其關聯的信用證授予需求,那麼仲裁器20用信號向信用證生成器30通知需要信用證,並且信用證生成器30遞增與發送事務請求的發起者設備相關的計數器32並且計數器的該遞增向信用證生成器表示對於該發起者設備需要信用證。應當注意,在某些實施例中,全部拒絕的事務請求將觸發信用證生成器30遞增計數器32之一併且在時間滿足時發送信用證。在其它實施例中,僅僅被接收的具有與其關聯的信用證授予需求的那些事務請求觸發該行為。還應當注意,計數器32必須被安排為適合的大小,使得它們可為每個發起者設備對正在等待信用證授予的全部掛起的被拒絕事務請求進行計數。信用證生成器30進行監視以便確定何時存在可用的存儲位置。它可通過監視計數器28來實現此。當信用證生成器30具有掛起的所拒絕事務請求時,即當至少一個計數器32不是O時,當它檢測到可用的存儲位置時它將保留該位置,並且信用證生成器30內的優先化邏輯34將確定哪個具有掛起的被拒絕事務請求的發起者設備應當接收該信用證。然後它將生成該信用證並且將其發送到發起者設備。它還將遞減與它把信用證發送到其的發起者設備相關的計數器32。為了保留信用證,信用證生成器30遞增表示所保留存儲位置的數量的計數器36。計數器28可對可用存儲位置的總數量,即被保留的以及空閒但未被保留的那些位置進行計數,或者它可僅對未保留的空閒存儲位置進行計數。優先化邏輯34可使用多種算法之一來選擇特定的發起者設備。當選擇發起者設備時它將考慮計數器32的值。如果發起者設備具有已被拒絕並且正在掛起的許多事務請求,那麼它通常將比具有更少的事務請求的發起者設備具有更高的優先級。在某些情況下,所有的計數值可能為零,在該情況下,信用證生成器將不會保留任何的存儲位置,而是將在保留可用的存儲位置和發出信用證之前等待計數值遞增。通常,用於分配保留的緩衝區存儲位置的優先化應當以公平的方式來實現,該公平的方式考慮正在等待信用證的所有掛起的被拒絕事務請求並且在某些實施例中考慮它們的服務質量QOS需求。在需要QOS優先化的系統中,信用證授予跟蹤應當也跟蹤被重試的請求的QOS值,因此,與發起者設備相關的至少一個QOS值應當連同用於該設備的計數器一起被存儲。在該系統中,QOS值將關聯於事務請求並且其可連同計數器被存儲。在每個發起者設備僅存儲一個QOS的情況下,用於最近被拒絕的事務請求的值可被存儲。當信用證被授予時,可減少該QOS值的值或將其刪除。對接收信用證授予的下一個發起者設備的選擇應當考慮QOS值的優先級。系統還應當實現防止餓死的機制以便防止較低優先級的請求餓死,即從未接收信用證。挑選要分配的下一個信用證授予的仲裁可在兩個級別上實現。第一次挑選基於最高的QOS值,並且下一次挑選以循環(round robin)方式在相同的QOS值中挑選請求。除了接收事務請求之外,接收者設備10可從發起者設備接收信用證授予請求。這可在發起者設備認識到它將要進入它將需要訪問接收者設備並且所執行的代碼是應當以低等待時間執行的關鍵代碼的操作模式的情況下發生。在該情況下,期望的是,它可預先從接收者設備10接收信用證以使得當它發出它的事務請求時能夠保證由接收者設備10接受。響應於該信用證授予請求,信用證生成器30將向發起者設備發送信用證。它還將遞增計數器36。接收者設備10也可從發起者設備接收信用證拒絕請求。這可在發起者設備已接收了用於它不希望重新發送的掛起的所拒絕事務請求的信用證的情況下發生。在該情況下,不是保持將使得緩衝區15中的存儲位置被保留的信用證,發起者設備可使用信用證授予拒絕信號返回信用證,並且響應於此,信用證生成器30將通過遞減計數器36來釋放所保留的存儲位置。通過在信用證被授予時遞增計數器36並且在它們被使用或返回時遞減計數器36,信用證生成器30可以區域效率高且直接的方式跟蹤所保留存儲位置的數量,並且不需要跟蹤哪些事務請求已被拒絕以及哪些觸發了哪些存儲位置的保留。當確定是否存在空閒的存儲位置用於新接收的事務請求時,仲裁器20讀取計數器值36和計數器值28。如果新接收的事務請求具有與其關聯的信用證指示符,那麼它將由仲裁器20存儲在緩衝區15中並且計數器36將遞減。類似地,當信用證被授予時,計數器36遞增。如果相對於空閒並且未保留的存儲位置,計數器28跟蹤空閒(保留或未保留)的存儲位置,則它將連同計數器36 —起被更新,而如果它僅跟蹤未保留的空閒存儲位置,那麼所保留存儲位置的分配和變得空閒將不影響該計數器的值。圖2根據本發明實施例示出了發起者設備40。該發起者設備可能是主動裝置(master),例如處理器核心。該發起者設備40生成事務請求並且這些事務請求在由事務請求發送器50發送到埠 42之前存儲在仲裁器57內的緩衝區中。事務請求發送器50內具有優先化邏輯55和信用證取消器58,仲裁器57使用優先化邏輯55來選擇要被發送的掛起事務請求之一。事務請求發送器50將發送事務請求並且這些事務請求將經由埠被發送到互連裝置並且然後發送到接收者設備,例如圖1中所示的接收者設備10。如果事務請求未由接收者設備接受,那麼表示事務請求已被拒絕的確認信號將被發送到發起者設備40並且在埠 42處被接收。響應於該拒絕確認信號,計數器60的計數值將遞增。比較器61確定計數器60的計數值是否等於數據存儲器62中存儲的預定值。如果不等於,那麼事務請求發送器將在仲裁器57的控制下重新發送該事務請求。事務請求發送器可在重新發送事務請求之前等待預定時間或者它幾乎可以立即重新發送事務請求。如果計數值等於數據存儲器62中存儲的值,那麼事務請求發送器50將重新發送具有關聯於其的信用證授予請求指示符的事務請求。然後,它將不再重新發送事務請求,直到它從接收者設備接收了信用證。當從接收者設備接收了信用證時,那麼事務請求發送器可發送具有信用證授予指示符的事務請求,該信用證授予指示符將確保事務請求被接受。然而,它可使用仲裁器57和優先化邏輯55來判定以便將不同的事務請求發送到請求了信用證的接收者設備。發送的所選擇事務請求將與關聯於其的信用證授予指示符一起發送。這將保證接收者將接受事務請求。以該方式,優先化邏輯55可優先化事務請求並且確保對於性能而言關鍵的事務請求被優先化並且因此它們的等待時間減少。當事務請求連同信用證授予指示符被發送時,那麼清除計數器60。在某些實施例中,發起者設備可跟蹤掛起事務請求的服務質量QOS值。這使得優先化邏輯55能夠優先化並且選擇向其提供信用證授予的適當的事務請求。在該實施例中,僅示出了單個計數器,然而可存在多個計數器,因為發起者設備40可發送多個事務請求,並且可為每一個保持計數,以使得每一個事務請求可在某時間點請求信用證授予。如果向除了觸發信用證生成的事務請求之外的事務請求發送了信用證,那么正等待信用證的該事務請求可被重新發送一次,而無需信用證授予。在某些實施例中,它可被連同與其關聯的信用證請求一起立即重新發送,,或者它可被重新發送而無需信用證授予並且它的計數器設置為零,使得在請求信用證之前它被再重新發送數據存儲器62中的值所確定的次數。在某些實施例中,發起者設備40沒有計數器60或比較器61或數據存儲器62。在這些實施例中,未被接受的每個事務請求觸發接收者設備生成信用證授予並且每個事務請求僅被發送一次並且然後等待信用證的接收。在某些實施例中,數據存儲器62中存儲的值可實時地改變,使得當操作條件改變時,事務請求在請求信用證授予之前被發送的次數也可被改變。這使得系統能夠被調整到當前的操作條件並且可提高性能。在該實施例中,事務請求發送器50也具有與其關聯的信用證取消器58。在發起者設備40接收了用於它可能推測地發送了並且不希望重新發送的掛起事務請求的信用證的情況下,該信用證取消器可發送信用證取消信號。不是保持信用證,而是有利的是,信用證取消器58發送信用證取消信號,該信用證取消信號被發送到接收者設備並且用於釋放為該特定信用證保留的存儲位置。圖3示意性地示出了包括經由互連裝置70連接到多個接收者設備10的多個發起者設備40的數據處理系統。每個發起者設備將經由互連裝置70向任何一個接收者設備10發送事務請求。這些設備將接受事務請求,或者將拒絕它們,並且如果是後者則將會發送表示此的確認信號。信用證信號隨後可被發送,並且響應於這些,事務請求可經由互連裝置與附著到其的信用證指示符一起被重新發送。圖4非常示意性地示出了來自對應於圖2的發起者設備40的請求節點的事務請求在可能被發送到存儲控制器之前如何在對應於例如圖1中所示的目的地或接收者設備的本地節點(home node)處被處理。在第一示例中,讀取請求由請求者節點發出,其附著有信用證。這在本地節點處被接收並且存儲在那裡的緩衝區中的所保留存儲位置。然後,它通過被發送到存儲控制器而被執行,並且數據返回到請求節點。在第二示例中,類似的讀取請求從請求節點被發送但是在該情況下,沒有信用證附著到其。當它到達本地節點時,在緩衝區中恰好存在沒有為具有信用證的事務請求保留的可用空間,並且因此,讀取請求被接受並且存儲在緩衝區中,直到它被執行並且繼續發送到存儲控制器,然後數據被發送回初始請求節點。第三示例類似於前面的示例,然而在該情況下,緩衝區中沒有可用空間,並且因此,因為讀取請求沒有附著到其的信用證,所以它在本地節點未被接受並且否定確認信號被發送回請求節點。請求節點不再發送事務請求,直到它接收了來自本地節點的信用證。一旦它接收了信用證,那麼它可通過再次發送具有附著到其的信用證的讀取請求來繼續,如在第一不例中那樣。圖5根據本發明實施例示出示出了在接收者設備處執行的方法中的步驟的流程圖。在該方法中,從發起者設備接收事務請求並且接收者確定是否存在關聯於其的信用證指示符。如果不存在,那麼它確定緩衝區中是否存在可用的存儲位置。如果存在可用的存儲位置,那麼它將接受事務請求並且在緩衝區內存儲它。然後它將遞減對空閒存儲位置數量進行計數的計數器並且將接收下一個事務請求。如果存在關聯於事務請求的信用證指示符,那麼表示緩衝區中保留存儲位置數量的計數器將遞減並且事務請求將被接受並且存儲在緩衝區內。在該示例中,對空閒存儲位置數量進行計數的計數器對總空閒存儲位置(即,被保留的和未被保留但是可用的那些空閒存儲位置)進行計數,並且因此,在這時該計數器也遞減。在其它實施例中,空閒存儲位置計數器可僅對未保留的可用位置進行計數,在該情況下在此時該計數器將不會遞減。如果請求沒有關聯於其的信用證指示符,並且緩衝區中沒有可用的存儲空間,那麼事務請求將不被接受,並且拒絕確認信號將被發送回發起者設備。在該情況下,接收者將確定事務請求是否具有關聯於其的信用證授予指示符。如果它沒有,那麼接收者對於該事務請求將不執行另外的動作。如果它有關聯於其的信用證授予指示符,那麼接收者將遞增用於發送該事務請求的發起者設備的計數器。這將及時觸發用於該發起者設備的信用證授予。這在圖5的第二部分示出。圖5流程圖的第二部分示出了如何授予信用證。因此,信用證生成器確定是否有任何被拒絕的事務請求掛起,它通過確定與不同發起者設備關聯的任何計數器是否為非零來實現此。如果有任何被拒絕的事務請求掛起,那麼它確定緩衝區中是否存在可用的存儲位置。如果存在,那麼它保留存儲位置,這在該情況下通過遞增保留存儲位置計數器來實現。信用證授予器然後選擇具有掛起的被拒絕事務請求的發起者。它使用基於為特定發起者設備掛起的被拒絕事務請求的數量來選擇發起者設備的優先化邏輯實現此。然後,它將向它選擇的發起者設備發送信用證並且它將遞減與該發起者設備相關聯的計數器,以使得它知道對於正在等待信用證授予的該發起者設備,掛起的被拒絕事務請求少了一個。然後,它將確定是否有任何另外的被拒絕事務請求掛起,並且如果存在,則它將再次查看是否在緩衝區中存在可用的存儲位置。
儘管未示出,但信用證授予生成器也可接收用於信用證的請求,並且如果是這樣的情況,則它也將查看是否在緩衝區中存在可用的存儲位置,並且當存在時,它將保留存儲位置並且將信用證發送到發起者。它也可接收表示不再需要先前授予的信用證的信號。在該情況下,它將遞減表示所保留存儲位置的數量的計數器。圖6根據本發明實施例示出示出了在發起者設備處執行的方法中的步驟的流程圖。在該方法中,事務請求由發起者設備發送,所述發起者設備然後確定事務請求是否已被接受。如果未被接受,則它接收拒絕確認信號,並且然後它確定事務請求是否已發送了一定次數。其可僅為一次,在該情況下,將跳到信用證授予接收框。如果多於一次,那麼它確定事務請求是否還未被發送「N」次。如果還未,那麼對發送了該事務的次數進行計數的計數器遞增並且事務請求將被再次發送。這可能在一段時延之後或者可能是立即發生。如果事務請求已被發送了所需的N次,那麼它與關聯於其的信用證請求一起再次被發送。然後它將確定事務請求是否被接受。如果是,那麼信用證請求未由接收者設備處理並且發起者設備僅發出下一個事務請求。如果事務請求未被接受,那麼事務請求不被重新發送而是等待信用證授予。一旦接收了信用證授予,那麼事務請求與確保它被接受的信用證指示符一起被發送。在這方面,已被拒絕η次的事務請求可與該信用證指示符一起被發送,或者發起者設備可選擇另一個事務請求發送。應當注意,信用證授予信號可以是獨自被發送的信號,或者它可以是與對所拒絕事務請求而發送的響應信號相關聯的指示符。儘管這裡相關於附圖詳細描述了本發明的說明性實施例,但是應當理解,本發明不限於那些精確的實施例,並且本領域技術人員可在其中實現各種改變和修改,而不會偏離如權利要求所定義的本發明的範圍和精神。例如,以下從屬權利要求的特徵的各種組合可用獨立權利要求的特徵來實現,而不會偏離本發明的範圍。
權利要求
1.一種接收者設備,用於經由至少一個互連裝置從多個發起者設備接收事務請求,所述接收者設備包括: 至少一個埠,用於從所述至少一個互連裝置接收所述事務請求以及向所述至少一個互連裝置發送請求和信號; 確認信號生成器,被配置為生成和輸出拒絕確認信號,該拒絕確認信號表示請求已被所述接收者設備接收但還未被所述接收者設備接受; 緩衝區,用於在所述接收者設備執行之前存儲接受和掛起的事務請求; 信用證生成器,所述信用證生成器被配置為: 在所述緩衝區中保留至少一個可用的存儲位置;以及 對於發送未由所述接收者設備接受的所述事務請求之一的發起者設備生成信用證授予,所述信用證授予向所述發起者設備表示至少存在一個保留的存儲位置,以使得來自所述發起者設備的隨後的事務請求將由所述接收者設備接受。
2.根據權利要求1所述的接收者設備,其中所述接收者設備被配置為接受事務請求和在所述至少一個所保留存儲位置中存儲所述事務請求,所述事務請求包括表示發送所述事務請求的所述發送者接收的信用證授予正在被使用的指示符。
3.根據權利要求2所述的接收者設備,其中所述信用證生成器包括用於存儲保留的可用存儲位置的數量計數的計數器,所述信用證生成器被配置為響應於確定所述存儲位置之一變為可用而遞增所述計數值並且響應於接收包括表示所接收信用證授予正被使用的指示符的事務請求而遞減所述計數值。
4.根據權利要求1所述的接收者設備,所述信用證生成器還包括對應於所述多個發起者設備的多個計數器,每一個計數器用於存儲表示從所述各個發起者設備接收的尚未被所述接收者設備接受的掛起事務請求的數量的計數值,所述信用證生成器被配置為響應於所述接收者設備接收但是不接受來自所述對應的發起者設備的至少某些所述事務請求來遞增所述計數器之一,以及響應於從所述對應的發起者設備接收包括表示所接收信用證授予正在被使用的指示符的事務請求來遞減所述計數器之一。
5.根據權利要求4所述的接收者設備,其中所述信用證生成器被配置為響應於被所述接收者設備接收但未由所述接收者設備接受的全部所述事務請求來遞增所述計數器之一。
6.根據權利要求4所述的接收者設備,其中所述信用證生成器被配置為僅響應於被所述接收者設備接收但未由所述接收者設備接受並且包括信用證授予指示符的所述事務請求來遞增所述計數器之一。
7.根據權利要求4所述的接收者設備,其中所述信用證生成器包括優先化邏輯,用於優先化未由所述接收者設備接受的所述掛起事務請求,所述優先化邏輯被配置為依賴於優先化算法和所述計數器的計數值來選擇將所述信用證授予發送到的所述發起者設備中的所述一個。
8.根據權利要求4所述的接收者設備,其中所述信用證生成器響應於在所述至少一個埠接收的信用證拒絕請求,該信用證拒絕請求表示已被生成並且輸出到所述發起者設備之一的信用證授予不被所述發起者設備需要,使得所述保留存儲位置之一可用並且遞減與所述發起者設備中的所述一個相關的所述計數器。
9.根據權利要求1所述的接收者設備,其中所述信用證生成器響應於在所述至少一個埠處接收的來自發起者設備的信用證授予需求,來確定何時存儲位置在所述緩衝區中變為可用並且保留可用的存儲位置,以及生成和向所述發起者設備輸出信用證授予。
10.一種發起者設備,用於經由至少一個互連裝置向多個接收者設備發送事務請求,所述發起者設備包括: 至少一個埠,用於從所述至少一個互連裝置接收請求和信號以及向所述至少一個互連裝置發送事務請求; 所述發起者設備包括事務請求發送電路,用於向各個所述接收者設備發送所述事務請求並且用於接收表示所述發送的事務請求尚未由所述各個接收者設備接受的確認信號,所述事務請求發送電路被配置為響應於接收表示所述發送的事務請求之一尚未被所述各個接收者設備接受的至少一個確認信號,不再發送所述發送的事務請求中的所述一個,直到在接收了來自所述各個接收者設備的信用證授予之後,所述信用證授予表示所述各個接收者設備將接受來自所述發起者設備的隨後的事務請求。
11.根據權利要求10所述的發起者設備,所述事務請求發送電路響應於表示所述發送的事務請求之一尚未由所述各個接收者設備接受的每個確認信號,不再發送所述事務請求中的所述一個,直到在接收了來自所述各個接收者設備的信用證授予之後。
12.根據權利要求10所述的發起者設備,其中所述事務請求發送電路包括計數器並且被配置為通過遞增所述計數器來跟蹤事務請求未由所述各個接收者設備接受的次數,並且響應於所述次數達到預定值而發送具有信用證授予指示符的所述事務請求,並自不再發送所述事務請求,直到在接收了來自所述各個接收者的所述信用證授予之後。
13.根據權利要求12所述的發起者設備,所述事務請求發送電路被配置為響應於所述發起者設備的所檢測操作條件而改變所述預定值。
14.根據權利要求10 所述的發起者設備,其中所述事務請求發送電路被配置為響應於信用證授予的接收來發送信用證拒絕請求,所述信用證授予是響應於未由所述各個接收者設備接受並且所述發起者設備將不會重新發送的所發送事務請求而被接收的。
15.根據權利要求10所述的發起者設備,所述事務請求發送電路包括信用證授予需求生成器,用於生成至少一個信用證授予需求並且用於向所述多個接收者設備中的一個發送所述信用證授予需求,所述信用證授予需求觸發所述接收者設備中的所述一個向所述發起者設備發送信用證授予,以使得從所述發起者設備向所述接收者設備中的所述一個發送的隨後事務請求將被接受。
16.根據權利要求10所述的發起者設備,所述事務請求發送電路被配置為響應於接收所述信用證授予來選擇事務請求以向所述各個接收者設備發送,並且在發送所述所選擇事務請求之前向其附加表示所述信用證授予正被使用的指示符。
17.一種數據處理裝置,包括多個發起者設備、多個接收者設備和將所述多個發起者設備連接到所述多個接收者設備的至少一個互連裝置,至少一個所述發起者設備是根據權利要求10所述的發起者設備,並且至少一個所述接收者設備是根據權利要求1所述的接收者設備。
18.一種確定在接收多個發起者設備發送的事務請求的接收者設備處接受哪些事務請求的方法,包括: 接收所述事務請求;為被所述接收者設備接收但是未由所述接收者設備接受的事務請求生成拒絕確認信號; 在由所述接收者設備執行之前在緩衝區中存儲所接受和掛起的事務請求; 在所述緩衝區中保留至少一個可用的存儲位置; 為發送未由所述接收者設備接受的所述事務請求之一的發起者設備生成信用證授予; 向所述發起者設備輸出表示存在保留存儲位置的所述信用證授予,使得來自所述發起者設備的隨後事務請求將由所述接收者設備接受。
19.一種向多個接收者設備發送事務請求的方法,所述方法包括: 向所述多個接收者設備中相應的一個接收者設備發送所述事務請求之一; 從所述相應的一個接收者設備接收表示所述發送的事務請求尚未被所述相應的一個接收者設備接受的確認信號; 響應於表示所述發送的事務請求之一尚未被所述相應的一個接收者設備接受的至少一個確認信號,不再發送所述事務請求,直到接收了來自所述相應的一個接收者設備的信用證授予之後,所述信用證授予表示所述相應的一個接收者設備將接受來自所述發起者設備的隨後事務請求。
20.一種接收者裝置,用於經由至少一個互連裝置從多個發起者裝置接收事務請求,所述接收者裝置包括: 至少一個埠裝置,用於從所述至少一個互連裝置接收所述事務請求以及向所述至少一個互連裝置發送請求和信號; 確認信號生成裝置,用於生成和輸出表示請求已被所述接收者裝置接收但還未被所述接收者裝置接受的拒絕確認信號; 存儲裝置,用於在所述接收者設備執行之前存儲接受和掛起的事務請求; 信用證生成裝置,用於在所述存儲裝置中保留至少一個可用的存儲位置,並且對於發送未由所述接收者裝置接受的所述事務請求之一的發起者裝置生成信用證授予,所述信用證授予向所述發起者裝置表示至少存在一個保留的存儲位置,以使得來自所述發起者裝置的隨後的事務請求將由所述接收者裝置接受。
21.一種發起者裝置,用於經由至少一個互連裝置向多個接收者裝置發送事務請求,所述發起者裝置包括: 至少一個埠裝置,用於從所述至少一個互連裝置接收請求和信號以及向所述至少一個互連裝置發送事務請求; 所述發起者裝置包括事務請求發送裝置,用於向各個所述接收者裝置發送所述事務請求並且用於從所述互連裝置接收表示所述發送的事務請求尚未由所述各個接收者裝置接受的確認信號,並且用於響應於表示所述事務請求尚未被所述各個接收者裝置接受的至少一個確認信號,而不再發送所述事務請求,直到在從所述各個接收者裝置接收了信用證授予之後,所述信用證授予表示所述各個接收者裝置將接受來自所述發起者裝置的隨後的事務請求。
全文摘要
公開了用於發起設備向接收設備發送的事務請求的動態資源分配。公開了用於生成事務請求的發起者設備和用於接收其的接收者設備。在存在用於事務請求的可用緩衝區存儲的情況下,接收者設備接受事務請求。若沒有可用的存儲空間,確認信號生成器生成並且輸出表示請求已被接收但未被接收者設備接受的拒絕確認信號。信用證生成器可保留緩衝區中至少一個可用的存儲位置,並為發送未由接收者設備接受的事務請求之一的接收者設備生成信用證授予。信用證授予向發起者設備表示存在至少一個保留存儲位置,使得來自發起者設備的隨後事務請求將由接收者設備接受。
文檔編號G06F9/46GK103164266SQ20121029019
公開日2013年6月19日 申請日期2012年8月8日 優先權日2011年8月8日
發明者潘尼德拉·庫瑪·曼娜瓦, 詹姆師德·加拉, 拉瑪穆爾西·古魯·普拉薩哈, 麥可·艾倫·菲利波, 布魯斯·詹姆斯·梅休森, 蒂姆斯·查爾斯·梅斯 申請人:Arm有限公司