Crossbar結構的排隊策略

目錄

一、概述

?二、排隊策略

三、輸入排隊結構(IQ)

3.1 結構特點

3.2 改進方案? ?

四、輸出排隊結構(OQ)?

五、輸入輸出聯合排隊結構(CIOQ)

六、輸入交叉節點聯合排隊結構(CICQ)


一、概述

????????Crossbar是一種全連接的交換結構,由 M×N 個交叉點(Crosspoint) 組成,可實現任意輸入到任意輸出的直接互聯,常用于交換機、NoC(片上網絡)和FPGA互連。

?二、排隊策略

????????當你在晚高峰刷視頻卡頓,或是在線游戲突然延遲飆紅時,背后隱藏的其實是交換機內部的"交通堵塞"問題。數據包像車輛一樣涌入網絡設備,但資源有限——如何調度它們高效通行,而不至于堆積成"數據堵車"?

????????這個問題的核心在于排隊策略的選擇。不同的策略決定了數據包在哪里等待、如何競爭帶寬,并最終影響網絡的速度、延遲和成本。就像現實中的交通管理:

  • 紅綠燈輪流放行 → 簡單但會出現"隊頭阻塞",一個慢車卡住整條車道
  • 給每個出口建專用停車場 → 零沖突但成本爆炸,如同在城市每個路口蓋巨型車庫
  • 微型立交橋網絡 → 極致靈活,但設計和維護復雜度飆升
  • 混合潮汐車道 → 折中方案,用少量緩沖換取性價比

????????就像現實中堵車有不同的疏導方案(比如紅綠燈、潮汐車道、高架分流),網絡世界也演化出四類經典排隊策略:

  1. 輸入端排隊(IQ)?—— 所有車擠在收費站入口,先到先走,但隊頭一輛慢全隊遭殃
  2. 輸出端排隊(OQ)?—— 給每個出口配專屬停車位,零沖突但需要海量硬件資源
  3. 交叉點隊列(CICQ)?—— 每個路口設微型立交橋,極致靈活卻結構復雜
  4. 混合排隊(CIOQ)?—— 在出入口都設緩沖帶,兼顧性價比的萬金油方案

????????想象你走進一個巨型快遞分揀站:

  • 輸入排隊(IQ):所有包裹堵在入口通道(類似早晚高峰的地鐵進站口),雖然節省了站內空間,但容易卡在隊頭。
  • 輸出排隊(OQ):包裹直接送到每個收件人的專屬貨架(像VIP通道),但需要超多工作人員和貨架空間。
  • 聯合排隊(CIOQ):入口和收件貨架都設臨時存放點(類似智能快遞柜),平衡了效率和成本。
  • 交叉點排隊(CICQ):每個傳送帶交叉口都有迷你貨籃(像蜂窩快遞柜),最智能但設備最復雜。

????????關鍵差異一句話:包裹在哪排隊?(入口?出口?還是交叉路口?)不同的選擇就像在"空間成本"和"分發效率"之間拔河!

三、輸入排隊結構(IQ)

????????輸入排隊(IQ)在Crossbar交換網絡前設置輸入緩存,數據分組先暫存于輸入端口,再經調度算法出隊,通過Crossbar傳輸至無緩存的輸出端口。其關鍵特征如下:

3.1 結構特點

????????由于Crossbar交換網絡每條輸出通道所連接的輸出端口的輸出速率是有限的,且輸出端口處和Crossbar節點不設置排隊緩存,需要在輸出端口空閑時才能讓各輸入緩存的隊列調度數據分組出隊,因此對于Crossbar網絡的單條通道來說,通道傳輸速率只需與輸出端口的輸出速率相同即可。

????????此時該結構加速比(交換結構內部速率與端口速率比值)為1,對于交換結構內部速率與緩存寫入讀取速率沒有太高要求,可擴展性較好。同時,在輸入排隊(IQ)交換結構中,仲裁器是必不可少的核心組件,其作用是為競爭同一輸出端口的數據分組分配傳輸權限。它的主要任務為:當多個輸入端口的隊列(如VOQ)都指向同一個輸出端口時(例如多個VOQ_i),必須通過仲裁機制選擇哪一個輸入端口有權發送數據,以避免數據沖突。

3.2 改進方案? ?

????????輸入排隊結構在輸入緩存只有單個先入先出(FIFO:First?In?First?Out)隊列時,會存在排頭阻塞(Head of Line,HOL)阻塞問題,當端口數較多時,會嚴重降低交換容量,比如所有輸出端口均勻分布的Bernoulli業務下,該結構只有58 .6%的吞吐率。

????????對于該問題,可以通過虛擬輸出隊列(Virtual Output Queue,VOQ)技術在輸入緩存處按照輸出端口設置隊列,以區別不同去向的數據分組。不過因為要區分多個隊列,類似于共享緩存結構,為了保障隊列之間的公平性,也自然要為每個隊列分配一定的緩存,如果端口數提升導致劃分隊列數增多,那么每個輸入端口處對于緩存資源的要求也會變高。

四、輸出排隊結構(OQ)?

????????輸出排隊(Output Queuing, OQ)是交換結構中的另一種典型設計,其核心思想是將排隊緩存移至輸出端口,而輸入端口和Crossbar內部無緩存。該結構雖然直觀且性能優異,但面臨嚴苛的硬件需求。

????????輸出排隊結構(OQ)在輸出端口處設置排隊緩存,輸入的數據分組先經過Crossbar交換網絡交換到對應輸出端口,然后再進入緩存排隊。由于該結構在輸入處和Crossbar網絡內部均不設置排隊緩存,當所有N個輸入端口同時輸入去向相同輸出端口的分組時,為保證此時不出現分組丟失,輸出排隊處的接收帶寬需要達到輸入端口的至少N倍線速(輸入端口速率相同),即加速比需要達到N。可以看出,本質上這種結構還是共享緩存,只不過是將單通道的共享緩存拆成了多條通道、分布式的共享緩存交換,自然也就繼承了共享緩存的缺點。

五、輸入輸出聯合排隊結構(CIOQ)

????????輸入輸出聯合排隊結構(CIOQ)通過同時在輸入端口和輸出端口設置緩存,并采用具有有限加速比(1 < s < N)的Crossbar網絡,有效平衡了輸入排隊(IQ)和輸出排隊(OQ)的優缺點。?

????????輸入端的虛擬輸出隊列(VOQ)解決了HOL阻塞問題,同時輸出端的緩存以較低的加速比(如s=2)吸收突發流量,避免了OQ的N倍加速比需求,在保證接近100%吞吐率的同時顯著降低了硬件實現復雜度。然而,CIOQ的調度算法需要同時處理輸入和輸出端口的隊列狀態,使得算法復雜度較高,尤其在大規模系統中,集中式或分布式調度可能帶來較高的時延與資源開銷,對FPGA等可編程硬件的實現提出了挑戰。盡管如此,CIOQ仍是當前高性能交換架構的主流選擇,尤其在數據中心和核心路由器中,通過優化調度策略(如iSLIP或貪心匹配)和硬件加速手段,能夠較好地權衡性能、成本與可擴展性。

六、輸入交叉節點聯合排隊結構(CICQ)

????????輸入交叉節點聯合排隊結構(CICQ)是輸入排隊(IQ)和交叉節點帶緩存排隊(Crosspoint Queued,CQ)的結合,與輸入排隊的區別主要是在交叉節點上設置了用于排隊的一定數量緩存。該結構在交叉開關矩陣的每個交匯點部署獨立緩存,使得輸入和輸出調度完全解耦,輸入端可采用簡單的輪詢調度,而輸出端則可選擇更高效的匹配算法,這種分布式架構尤其適合多片FPGA協同實現。隨著端口數增加,輸入隊列和交叉點緩存的總容量與端口數N的平方成正比,帶來較高的硬件資源開銷,但得益于輸入/輸出調度的解耦設計,系統整體時延和吞吐率性能在大規模交換場景中仍具有優勢,成為可擴展交換架構的重要實現方式之一。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87305.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

狀態模式 - Flutter中的狀態變身術,讓對象隨“狀態“自由切換行為!

訂單狀態流轉/播放器控制/游戲角色行為…一個模式搞定所有狀態驅動型邏輯&#xff01; 經典場景&#xff1a;訂單狀態管理 假設你在開發一個外賣App&#xff0c;訂單有以下狀態&#xff1a; 等待接單已接單配送中已完成已取消 每個狀態下&#xff1a; 顯示的UI不同可執行的…

數據庫9:數據庫字符編碼調整與校隊(排序)規則

一.常用字符編碼 1.ASCII編碼 用一個字節表示一個字符 2.ANSI編碼 每個國家為了顯示本國的語言而對ASCII碼進行了拓展 用兩個字節表示一個漢字&#xff0c;中國的ANSI編碼是GB2312編碼&#xff08;簡體&#xff09;&#xff0c;日本的ANSI編碼是JIS編碼&#xff0c;臺灣的A…

人臉活體識別4:Android實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測)

人臉活體識別4&#xff1a;Android實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測) 目錄 人臉活體識別4&#xff1a;Android實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測) 1. 前言 2.人臉活體識別方法 &#xff08;1&#xff09;基于人臉動作的檢測?? &#xff08;2&…

DAY1-Linux操作系統1

文章參考【黑馬程序員Python教程_600集Python從入門到精通教程&#xff08;懂中文就能學會&#xff09;】 https://www.bilibili.com/video/BV1ex411x7Em/?p40&share_sourcecopy_web&vd_source263bbee2ddeb835c3ab6d9d3c80e0f7c 一.常用命令簡單介紹 使用軟件 虛擬機…

第十二節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入門 - 兩種權限控制方式(附前后端代碼)

Vben5 系列文章目錄 ?? 基礎篇 ? 第一節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入門 ? 第二節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入門 - Python Flask 后端開發詳解(附源碼) ? 第三節:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入…

華為云Flexus+DeepSeek征文 | 華為云 ModelArts Studio 賦能 AI 法務:合同審查與法律文件生成系統

一、引言 在法律行業數字化轉型的浪潮中&#xff0c;AI 技術正重塑法律服務的流程與效率。本文介紹如何利用華為云 ModelArts Studio 構建一套完整的 AI 法務系統&#xff0c;實現合同審查、法律文件生成、法律咨詢與風險識別的智能化解決方案。 二、系統架構設計 &#xff0…

SQL的底層邏輯解析

SQL的底層邏輯涉及數據庫管理系統(DBMS)如何解析、優化和執行SQL查詢&#xff0c;主要包括以下幾個層面&#xff1a; ?查詢處理流程? 解析器(Parser)&#xff1a;將SQL語句轉換為語法樹查詢優化器(Optimizer)&#xff1a;基于統計信息和成本模型生成最優執行計劃執行引擎(Exe…

深入剖析AI大模型:PyTorch 技術詳解

今天說一說PyTorch。作為一名python程序員&#xff0c;可能對它了解起來還是很快的。在人工智能浪潮席卷全球的當下&#xff0c;深度學習作為其核心技術&#xff0c;被廣泛應用于圖像識別、自然語言處理、語音識別等多個領域。而在深度學習的開發框架中&#xff0c;PyTorch 憑借…

物聯網架構:定義、解釋和實例

物聯網&#xff08;IoT&#xff09;架構是一個復雜且多維度的概念&#xff0c;構成了物聯網系統的核心框架。它是勾勒物聯網設備、應用程序和技術如何相互交互以實現預期功能的藍圖。物聯網架構并非 “一刀切” 的模型&#xff0c;而是會根據相關物聯網系統的具體需求而有所不同…

拿到一臺新服務器,怎么跑AI項目

公司新采購一臺AI服務器&#xff0c;花大本錢裝了個A6000顯卡&#xff0c;今天來記錄下新服務的使用步驟。 1、查看系統。 這臺服務器預裝了Ubuntu20.04系統。 lsb_release -a 查看下cpu、內存情況 top 看著還行。 再看下硬盤空間 df -h 空間不算小&#xff0c;2T。 2、…

IO--進程實操

1.創建一個進程扇 #include <051head.h> int main(int argc, const char *argv[]) {pid_t pid;for(int i0;i<4;i){pidfork();if(pid-1) //父進程{ERRLOG("fork error..\n");} else if(pid0) //這是子進程{ …

模型預測控制(MPC)概覽

模型預測控制&#xff08;Model Predictive Control, MPC&#xff09; 一、理論基礎與發展脈絡 1. 歷史起源 20世紀70年代起源于工業過程控制&#xff08;如化工領域的動態矩陣控制DMC、模型算法控制MAC&#xff09;&#xff0c;由Richalet、Mehra等學者提出&#xff0c;核心…

Python初體驗:從入門到實踐

Python無疑是開啟編程世界大門的絕佳鑰匙。今天,就讓我們一起踏上Python的學習之旅。 #01 編寫第一個Python程序 環境搭建好之后,上節已經編寫了第一個Python程序。現在就好比,我們已經準備好了廚房和食材,要開始做第一道菜了。啟動Jupyter后,在Jupyter中新建一個文件,…

【數字后端】- 什么是AOI、OAI cell?它們后面數字的含義

是什么&#xff1f; 不管是在DC綜合階段&#xff0c;還是在PR階段&#xff0c;嘗嘗會出現OAI、AOI組合邏輯單元的身影。因為它們可以通過巧妙的串聯和并聯晶體管非常高效地實現組合邏輯&#xff0c;因此在VLSI設計中非常常用。但是它們也是高pin密度單元&#xff0c;也可能會造…

MQTTServer服務器根據MQTTClient客戶端已訂閱的主題推送 分發消息

網絡讀卡器介紹&#xff1a;https://item.taobao.com/item.htm?ftt&id22173428704&spma21dvs.23580594.0.0.52de2c1bgK3bgZ 本示例使用了MQTTNet插件 C# MQTTNETServer 源碼 using MQTTnet.Client.Receiving; using MQTTnet.Server; using MQTTnet; using System; u…

【seismic unix 合并兩個su文件】

Seismic Unix簡介 Seismic Unix&#xff08;SU&#xff09;是由科羅拉多礦業學院開發的開源地震數據處理軟件包&#xff0c;基于Unix/Linux環境運行。它提供了一系列命令行工具&#xff0c;用于地震數據加載、處理、分析和可視化&#xff0c;支持SEG-Y格式和SU自定義格式。SU廣…

【vmware虛擬機使用】安裝vmware workstations17

安裝vmware17 本章學習目標VMware虛擬機簡介開始實操下載VMware workstation虛擬機安裝虛擬機配置虛擬機網絡 總結 本章學習目標 1.安裝vmware workstation虛擬機 2.自定義配置虛擬機網絡&#xff0c;避免網絡沖突 VMware虛擬機簡介 ? VMware的核心是Hypervisor&#xff0…

QT6 源(147)模型視圖架構里的表格窗體 QTableWidget 的范例代碼舉例,以及其條目 QTableWidgetItem 類型的源代碼。

&#xff08;1&#xff09;先用一個簡單的例子&#xff0c;學習一下本類里的成員函數的使用。生成如下圖的界面&#xff0c;表格窗體與初始數據&#xff1a; 查看其 ui_widget . h 文件 &#xff0c;里面的將是最標準的表格窗體的使用代碼 &#xff1a; #ifndef UI_WIDGET_H #…

URL時間戳參數深度解析:緩存破壞與前端優化的前世今生

&#x1f50d; URL時間戳參數深度解析&#xff1a;緩存破壞與前端優化的前世今生 在日常的Web開發中&#xff0c;你是否注意到很多接口URL后面都會帶有一個時間戳參數&#xff1f;比如 xxx/getMsg?_1751413509056。這個看似簡單的參數背后&#xff0c;卻隱藏著前端緩存策略、性…

分布式鎖實現方式:基于Redis的分布式鎖實現(Spring Boot + Redis)

Redis實現分布式鎖的原理 Redis分布式鎖基于其單線程執行命令的特性&#xff0c;通過原子操作實現多節點間的互斥訪問。下面從原理、實現、問題及優化四個方面詳細解析&#xff1a; 1.原子性與互斥性 Redis分布式鎖的核心是原子性操作&#xff1a; 獲取鎖&#xff1a;使用SE…