仲裁器
仲裁器是分配對共享資源的訪問的電子設備。
總線仲裁器
[編輯]執行計算機總線仲裁有多種方法,最常用的方法有:
- 動態集中式並行,其中一個中心仲裁者用於所有主機,正如本文所討論的;
- 集中式串行(或「雛菊鏈」) ,在訪問總線時,主動主機將機會傳遞給下一個總線。 本質上,每個連接的主人都包含自己的仲裁者;
- 分佈式自選仲裁(分佈式總線仲裁) ,根據當地主人使用其他主人的信息作出的決定自行授予訪問權限;
- 分佈式仲裁由碰撞偵測進行,每個主人都試圖自己訪問總線,但是發現了衝突並重新嘗試失敗的操作。
總線仲裁器是在多總線系統中使用的一種設備,它決定在每個總線周期中允許哪個總線主控制總線。 在系統總線系統中,最常見的總線仲裁器是存儲仲裁器。
內存仲裁器是共享內存系統中的一種設備,用於決定每個內存周期允許哪個 CPU 訪問該共享內存。[1][2][3]
一些原子指令依賴仲裁器來阻止其他 CPU「中途」讀取內存的原子讀-修改-寫指令。
內存仲裁器通常集成到內存控制器/DMA 控制器中。
一些系統,比如 PCI,有一個集中的總線仲裁設備,人們可以把它指向「總線仲裁者」。 其他系統使用分散的總線仲裁,其中所有設備協作決定誰下一個。[4][5]
當連接到內存仲裁器的每個 CPU 具有同步的內存訪問周期時,可以將內存仲裁器設計為同步仲裁器。 否則,內存仲裁器必須設計為異步仲裁器。
異步仲裁器
[編輯]異步電路中仲裁器的一種重要形式是在異步請求之間選擇對共享資源的訪問順序。 它的功能是防止兩個操作同時發生在不應該發生的時候。 例如,在一台有多個 CPU 或其他設備訪問計算機內存,並且有多個時鐘的計算機中,可能存在來自兩個不同步源的請求幾乎同時進入的可能性。 「接近」可以在時間上非常接近,在亞飛秒的範圍內。 然後,內存仲裁程序必須決定先服務哪個請求。 不幸的是,不可能在一個固定的時間做到這一點。[需要解釋]
異步仲裁器和亞穩態
[編輯]仲裁人斷絕關係。 就像觸發器電路一樣,仲裁器有兩個對應於這兩個選擇的穩定狀態。 如果兩個請求在幾皮秒內(今天是飛秒)到達一個仲裁器,電路可能在達到其穩定狀態之前變成亞穩態以打破平衡。 經典的仲裁者經過特殊設計,在亞穩態時不會劇烈振盪,並儘可能快地從亞穩態衰減,通常是通過使用額外的功率。 在提供輸入之後,未達到穩定狀態的概率隨時間呈指數下降。
上世紀70年代中期,人們找到了解決這一問題的可靠辦法。 儘管在固定時間內做出決定的仲裁者是不可能的,但是有時候在困難的情況下需要更長的時間(千鈞一髮)的仲裁者還是可以工作的。 必須使用多級同步電路來檢測仲裁器是否還沒有進入穩定狀態。 然後仲裁者延遲處理,直到達到穩定狀態。 理論上,仲裁者可以用任意長的時間來解決問題(見布里丹原理) ,但實際上,它很少需要幾個門延遲時間。 經典的文章描述了如何建立一個「3狀態觸發器」來解決這個問題,並提醒工程師在仲裁設計中的常見錯誤。
這個結果具有相當重要的實際意義,因為沒有它,多處理器計算機就不能可靠地工作。 第一台多處理器計算機可以追溯到20世紀60年代末,比可靠仲裁者的發展還要早。 一些早期的多處理器與獨立的時鐘為每個處理器遭受仲裁競爭條件,因此不可靠。 如今,這已不再是一個問題。
同步仲裁器
[編輯]仲裁器也用於同步上下文,以便分配對共享資源的訪問。 波前仲裁器是同步仲裁器的一個例子,存在於一種大型網絡交換機中。
參考
[編輯]- ^ Michael Fingeroff. "High-Level Synthesis Blue Book" (頁面存檔備份,存於互聯網檔案館). 2010. p. 270. quote: "The bus or memory arbiter processes the request from the different processes and decides who gets access to the bus/memory."
- ^ Arten Esa, Bryan Myers. "Design of an Arbiter for DDR3 Memory" (頁面存檔備份,存於互聯網檔案館). 2013.
- ^ Kearney, D.A.; Veldman, G. "A concurrent multi-bank memory arbiter for dynamic IP cores using idle skip round robin" (頁面存檔備份,存於互聯網檔案館). 2003. DOI: 10.1109/FPT.2003.1275789.
- ^ Tim Downey. "Bus Arbitration" (頁面存檔備份,存於互聯網檔案館)
- ^ Shun Yan Cheung. "Bus Arbitration" (頁面存檔備份,存於互聯網檔案館)
來源
[編輯]- DJ 肯尼特和 J · V · 伍茲。 數字系統中的同步和仲裁電路。 訴訟程序。 1976年10月。
- Carver Mead 和 Lynn Conway。 超大規模集成電路系統簡介。 1979年。
- Sutherland, Ivan; Ebergen, Jo, Computers without Clocks (PDF), Scientific American, August 2002, 287 (2): 62–69 [2024-03-23], Bibcode:2002SciAm.287b..62S, PMID 12140955, doi:10.1038/scientificamerican0802-62, (原始內容 (PDF)存檔於2004-12-14)Sutherland, Ivan; Ebergen, Jo (August 2002), (PDF), Scientific American, 287 (2): 62–69, Bibcode:2002SciAm.287b..62S (頁面存檔備份,存於互聯網檔案館), doi:10.1038/scientificamerican0802-62, PMID 12140955 (頁面存檔備份,存於互聯網檔案館), archived from the original(PDF) on 2004-12-14 (頁面存檔備份,存於互聯網檔案館)
- 我叫吉諾薩。 「欺騙同步器的十四種方法」ASYNC 2003。
- 安德森和高達,「故障現象的新解釋」,《信息學報》 ,卷。 1991年4月,第28頁,第4期,第297-309頁。
- Noergaard, T. Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers. Embedded technology series. Elsevier Science. 2012 [2023-07-25]. ISBN 978-0-12-382197-3. (原始內容存檔於2023-07-25).Noergaard, T. (2012). Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers (頁面存檔備份,存於互聯網檔案館). Embedded technology series. Elsevier Science. ISBN 978-0-12-382197-3. Retrieved 2023-07-25.
- Gottlieb, Allan. Class Notes for Computer Architecture. cs.nyu.edu. New York University. 1999 [25 July 2023]. (原始內容存檔於2023-07-25).Gottlieb, Allan (1999). "Class Notes for Computer Architecture" (頁面存檔備份,存於互聯網檔案館). cs.nyu.edu. New York University. Retrieved 25 July 2023.
外部連結
[編輯]- 數字邏輯亞穩態
- 時鐘 FIFO 的亞穩態性能 (頁面存檔備份,存於互聯網檔案館)
- 在 Wayback Machine 上存檔的2020-08-08「異步」書目
- 跨時鐘域的高效自定時接口