裝置資源

以下清單列出了本版VisualApplets 所支援的所有硬體平台 的重要硬體詳細資訊。如需詳細清單,請參閱 各產品的資料表。

支援平台的硬體組態

imaFlex

資源 imaFlex CXP-12 Quad imaFlex CXP-12 Penta imaFlex 2 Dual 100
視覺處理器 Xilinx UltraScale+ XCKU3P-FFVD900-1-E Xilinx UltraScale+ XCKU3P-FFVB676-1-E Xilinx UltraScale+ XCKU15P-FFVE1517-1-E
LUT 160679 161049 447992
翻來覆去 323224 323216 895984
區塊式隨機存取記憶體 (18k) 720 720 1776
URAM 區塊 (288k) 48 48 128
嵌入式Arithmetic 邏輯單元 (DSP48) 1368 1368 1800
RAM 容量 3 x 512 MiB DDR4 5 x 512 MiB DDR4 2 @ 5 × 1024 MiB DDR4
RAM 資料位寬 384 位元 640 位元 640 位元
RAM 總頻寬(共用) 14.4 GB/1 24.0 GB/s1 2 @ 24.0 GB/s2
基準設計時鐘(預設) 312.5 MHz3 312.5 MHz3 391.5 MHz4
基準設計時脈(最大值) 400.0 MHz 400.0 MHz 420.0 MHz
主機介面 PCIe x 8 Gen 3(直接記憶體存取) PCIe x 8 Gen 3(直接記憶體存取) PCIe x 16 Gen 3(直接記憶體存取)
主機介面(PCIe ×8 Gen 3)頻寬(理論值) 8000 MB/s 8000 MB/s 16000 MB/s
主機介面(PCIe ×8 Gen 3)頻寬(典型值/最大值) 7200 MB/s 的持續資料傳輸頻寬 7200 MB/s 的持續資料傳輸頻寬 13000 MB/s 的持續資料傳輸頻寬5

1

該平台包含一個實體 RAM 記憶體區塊。 雖然每個基於 RAM 的運算子皆使用專屬的記憶體 區段,但整體 RAM 容量與記憶體頻寬 是由所有運算子共享的。另請參閱「共用記憶體概念」一節。

2

該平台包含兩個單一的實體 RAM 記憶體區塊。 雖然每個基於 RAM 的運算單元皆使用專屬的記憶體 區段,但整體 RAM 容量與記憶體頻寬 由所有停靠在 同一記憶體銀行上的運算子(最多 8 個)共享。另請參閱「共用記憶體概念」一節。

3

此平台允許使用使用者指定的基準 時脈。支援的最低時脈頻率為 312.5 MHz,而理論上的最高值為 400 MHz。運作於 在 312.5 MHz 下運作時,通常預期能滿足 時序約束。若頻率高於 312.5 MHz,則可能導致 時序違規,具體取決於 小程式演算法的實作方式。

4

此平台允許使用使用者指定的基準 時脈。支援的最低時脈頻率為 391.5 MHz,而理論上的最高值為 420 MHz。運作於 在 391.5 MHz 下運作時,通常預期能滿足 時序約束。若頻率高於此值,則可能 導致時序違規,具體情況取決於 小程式演算法的實作方式。

最小頻率與最大頻率並非精確地 為 391.5 MHz 和 420.0 MHz,而是接近 這些數值的無限大值。 最小頻率略高於 391.5 MHz,而最大頻率則略低於 420.0 MHz。 這是為了簡化可視範圍所做的設定。

5

該數值取決於主機電腦的PCIe 橋接功能 。 在大多數現代電腦上,當有效載荷 封包大小上限為 256 位元組時,通常會得到此 數值。增加有效載荷大小可提升頻寬 效率。

表 68. imaFlex 平台的硬體配置


microEnable 5 marathon

資源 mE5 marathon VCX-QP mE5 marathon VCL mE5 marathon VCLx
視覺處理器 Xilinx Kintex7 XC7K160T - 2FFG676C FPGA Xilinx Kintex7 XC7K160T - 1FBG676C FPGA Xilinx Kintex7 XC7K410T - 1FBG676C FPGA
LUT 101400 101400 254200
翻來覆去 202800 202800 508400
區塊式隨機存取記憶體 (18k) 650 650 1590
嵌入式Arithmetic 邏輯單元 (DSP48) 600 600 1540
RAM 容量 4 x 512MiB DDR3 4 x 512MiB DDR3 4 x 512MiB DDR3
RAM 資料位寬 512 位元 256 位元 256 位元
RAM 總頻寬(共用) 12.8 GB/s1 6.4 GB/s1 6.4 GB/s1
基準設計時鐘(預設) 125MHz 125MHz 125MHz
基準設計時脈(最大值) 312.5 MHz2 312.5 MHz2 312.5 MHz2
主機介面 PCIe x 4 Gen 2(直接記憶體存取) PCIe x 4 Gen 2(直接記憶體存取) PCIe x 4 Gen 2(直接記憶體存取)
主機介面(PCIe ×4 Gen 2)頻寬(理論值) 1×2000 MB/s 1×2000 MB/s 1×2000 MB/s
主機介面(PCIe ×4 Gen 2)頻寬(典型值/最大值) 持續資料傳輸頻寬高達 1800 MB/s 最高可達 1800 MB/s 的持續資料傳輸頻寬 最高可達 1800 MB/s 的持續資料傳輸頻寬

1

這些平台僅擁有一組實體 RAM 記憶體區塊 該區塊被格式化為 4 個獨立且互不重疊的 記憶體區域。 雖然記憶體本身是 專屬於每個基於 RAM 的運算子,但 RAM 頻寬是 共享的。請參閱「共享記憶體概念」一節。

2

這些平台允許使用使用者指定的基準 時脈。最低時脈頻率為 125 MHz。 理論上的最大值為 312.5 MHz。 時脈 頻率為 125 MHz 的設計,很可能符合時序 限制。時脈頻率高於 125 MHz 的設計,可能會導致時序限制違規。

表 69. 硬體配置 microEnable 5marathon


支援平台的裝置資源

每個硬體平台上的裝置資源皆有限。以下清單列出了 所有受支援平台可用的資源。運算子會消耗裝置資源,且 大多數資源實例僅能使用一次。此規則有若干例外, 例如 GPI 運算子。在此類情況下,資源消耗情況已詳載於運算子參考文件中。

裝置資源的分配方式有以下兩種:

  • 自動地,

  • 使用運算子參數,或

  • 在「資源」對話方塊中。

更多資訊請參閱「裝置資源的分配」。

imaFlex 2 Dual 100

資源 imaFlex 2 Dual 100
Port[0]CoF 巷1 4
Port[1]CoF Lane1 4
Port[0]CoF 接收觸發通道1 4
埠[1]CoF 接收觸發通道1 4
Port[0]CoF TX 觸發通道1 4
Port[1]CoF TX Trigger Lane1 4
Port[0]CoF 狀態欄1 4
Port[1]CoF 狀態欄1 4
埠[0] DF 接收資料通道1 4
埠[1] DF 接收資料通道1 4
Port[0] DF RX Meta Lane1 4
埠[1] DF RX Meta Lane1 4
埠[0] DF 傳輸資料通道1 4
埠[1] DF TX 資料通道1 4
Port[0] DF TX Meta Lane1 4
埠[1] DF TX Meta Lane1 4
Port[0] DF 綠色LED 車道1 4
Port[0] DF 紅色LED 通道1 4
波特[1] DF 格林LED1 1
Port[1] DF 紅色LED1 1
DmaToHostPort1 5
DmaFromHostPort1 1
GPI1 16
GPO1 16
EventPort2 31
事件 ID2 64
使用者LED1 6
ImageChannel3 1024
RAM4 2 @ 從 1 × 5 GiB 變更為 8 × 625 MiB

1

這些資源僅供控制用途且為唯讀,並由 操作員透過參數進行管理。

2

EventID指的是該軟體在特定 平台上所支援的 事件最大數量。EventPort代表 事件通道。每個通道最多可處理 16 個事件。

3

資源ImageChannel允許 將 TxImageLink運算子與 RxImageLink運算子連接。每個 TxImageLink 運算子僅需一個 ImageChannel資源的專用存取權。 每個ImageChannel 資源可 連接至恰好一個 RxImageLink 運算子,也就是說,最多可有 1024 個TxImageLink及 1024 個RxImageLink運算子 可應用於單一設計中。資源 ImageChannel會顯示在 「資源」對話方塊中。

4

RAM 介面分為 2 個實體 RAM 銀行。 每個 RAM 銀行的頻寬與大小皆可由 8 個基於 RAM 的運算子共享 。詳情請參閱「共用記憶體概念」一節。

表 70. 裝置資源清單imaFlex 2 Dual 100


imaFlex CXP-12 Quad 與 imaFlex CXP-12 Penta

資源 imaFlex CXP-12 Quad imaFlex CXP-12 Penta
相機連接埠 4 5
CxpStatusPort 4 5
CxpRxTriggerPort 4 5
CxpTxTriggerPort 4 5
DMA 4 5
DmaFromHostPort 1 1
GPO1 10 OUT 12 OUT
GPI2 12 英吋 12 英吋
LED 港口1 6 6
SignalChannel3 4000 4000
EventPort4 32 32
事件 ID4 64 64
ImageChannel5 1024 1024
RAM6 從 1 × 1.5 GiB 到 8 × 192 MiB 從 1 × 2.5 GiB 到 8 × 320 MiB

1

這些資源不會顯示在 「資源」對話方塊中。它們是 透過運算子來控制的。

2

GPI 不會顯示在 「資源」對話方塊中。同一項 資源可重複使用多次。此表格列出了 GPI 埠的數量。

3

資源SignalChannel允許 將 TxSignalLink運算子與 RxSignalLink運算子相互連接。每個 TxSignalLink 運算子僅需一個 SignalChannel資源,且此資源僅供其獨佔使用。 多個RxSignalLink 運算子可以 共用同一個 SignalChannel 資源,也就是說,多個 RxSignalLink運算子皆可接收 由單一 TxSignalLink 運算子所傳輸的訊號。單一設計中最多可 使用4000 個 。而 RxSignalLink運算子的數量則 不受限制。資源 SignalChannel 可在「資源」對話方塊中看到。

4

「EventID」指的是該軟體在特定平台上所支援的 事件最大數量。 「EventPort」代表事件 通道。每個通道最多可處理 16 個事件。

5

資源ImageChannel允許 將 TxImageLink運算子與 RxImageLink運算子連接。每個 TxImageLink 運算子僅需一個 ImageChannel資源的專用存取權。 每個ImageChannel 資源可 連接至恰好一個 RxImageLink 運算子,也就是說,最多可有 1024 個TxImageLink及 1024 個RxImageLink運算子 可應用於單一設計中。資源 ImageChannel會顯示在 「資源」對話方塊中。

6

所有基於 RAM 的運算子皆共用 RAM 介面 (包含頻寬與大小)。更多詳細資訊請參閱「共用記憶體概念」一節。

表 71. imaFlex CXP-12 Quad 裝置資源清單及imaFlex CXP-12 Penta


microEnable 5 marathon

資源 mE5 marathon VCX-QP mE5 marathon VCL mE5 marathon VCLx
相機連接埠 4 2 2
CameraControl - 2 2
DMA 4 4 4
GPO1 10 OUT 10 OUT 10 OUT
GPI2 12 英吋 12 英吋 12 英吋
RAM 4 × 512 MiB 4 × 512 MiB 4 × 512 MiB
LED 港口1 4 2 2
SignalChannel3 4000 4000 4000
EventPort4 14 10 10
事件 ID4 64 64 64
ImageChannel5 1024 1024 1024

1

這些資源不會顯示在 「資源」對話方塊中。它們是 透過運算子來控制的。

2

GPI 不會顯示在 「資源」對話方塊中。同一項 資源可重複使用多次。此表格列出了 GPI 埠的數量。

3

資源SignalChannel允許 將 TxSignalLink運算子與 RxSignalLink運算子相互連接。每個 TxSignalLink 運算子僅需一個 SignalChannel資源,且此資源僅供其獨佔使用。 多個RxSignalLink 運算子可以 共用同一個 SignalChannel 資源,也就是說,多個 RxSignalLink運算子皆可接收 由單一 TxSignalLink 運算子所傳輸的訊號。單一設計中最多可 使用4000 個 。而 RxSignalLink運算子的數量則 不受限制。資源 SignalChannel 可在「資源」對話方塊中看到。

4

EventID代表該軟體在特定 平台上所支援的 最大事件數量。EventPort代表 事件通道。一個事件通道最多可容納 16 個事件。

5

資源ImageChannel允許 將 TxImageLink運算子與 RxImageLink運算子連接。每個 TxImageLink 運算子僅需一個 ImageChannel資源的專用存取權。 每個ImageChannel 資源可 連接至恰好一個 RxImageLink 運算子,也就是說,最多可有 1024 個TxImageLink及 1024 個RxImageLink運算子 可應用於單一設計中。資源 ImageChannel會顯示在 「資源」對話方塊中。

表 72. 裝置資源清單 microEnable 5marathon


Shared Memory 概念

imaFlex 2 Dual 100

imaFlex 2 Dual 100 平台包含兩個獨立的實體 RAM 銀行,每個的 容量為 5 GiB。這些實體銀行會根據小程式中使用的基於 RAM 的VisualApplets 運算子數量, 依需求劃分為互不重疊的記憶體區域。 在VisualApplets 中,這些區域會以虛擬 RAM 區塊的形式呈現。當某個運算子 需要 RAM 時,它會預留一個虛擬 RAM 區塊,該區塊對應於實體 RAM 內一個專用的、 互不重疊的區域。

有關VisualApplets 記憶體運算子的實用指引,請參閱 「記憶體元素教學」主題。

在imaFlex 2 Dual 100 平台上,您可以針對每個實體 RAM 銀行定義最多 8 個不重疊的記憶體 區域,這意味著兩個 RAM 介面合計共有 16 個區域。若僅將一個 RAM 運算子指派給某個實體介面,該運算子即可存取 該介面完整的 5 GiB 容量。 當多個運算子共用同一個 實體介面時,可用記憶體將按比例分配給各運算子。舉例來說, 若將 8 個運算子指派至同一介面,每個運算子將獲得 5 GiB 記憶體的 1/8,即每個運算子約有 0.625 GiB。

在imaFlex 2 Dual 100 上,RAM頻寬會均分給所有 連接到同一物理介面的營運商;它並非專屬於任何單一 營運商。

  • 若某個設計在單一介面上使用了全部 8 個 RAM 資源,則每個基於 RAM 的運算子 將獲得約 1/8 的總介面頻寬,並根據 該運算子的效率係數進行調整。

  • 若僅使用一個基於 RAM 的運算子,它即可充分利用該介面的 最大頻寬。

  • 如果兩家營運商共用同一個介面,每家將獲得總 頻寬的一半,以此類推。

該平台的 2 個實體 RAM 介面在 VisualApplets 中被映射至 16 個虛擬 RAM 埠。第一個 RAM 介面被映射至 RAM 資源索引 0 至 7,而 第二個則被映射至 RAM 資源索引 8 至 15。

RAM 埠之間的 RAM 大小分配

未被分配(因此未被使用)的 RAM 埠,其分配到的 記憶體容量始終為 0%。這意味著,可用的總記憶體僅會分配給 那些正在主動使用 RAM 埠的操作者。

  • 若僅使用 1 個埠:該埠將獲得 100% 的可用 記憶體。

  • 若使用 2 個埠:每個埠將獲得 50% 的可用 記憶體。

  • 若使用 3 個埠:資源 ID 最低的埠可獲得 50%, 其餘 2 個埠則各佔 25%。

  • 若使用 4 個埠:這 4 個埠將各佔 25%。

  • 若使用 5 個埠:前 3 個埠(資源 ID 最小的)各 佔 25%,其餘 2 個埠則各佔 12.5%。

  • 若使用 6 個埠:資源 ID 最低的 2 個埠各佔 25%,其餘 4 個埠則各佔 12.5%。

  • 若使用 7 個埠:資源 ID 最低的埠將獲得 25%, 其餘 6 個埠則各獲得 12.5%。

  • 若使用 8 個埠:每個埠各佔 12.5%。

[注意] 非對稱記憶體分配

在非對稱大小分割的情況下,同一物理記憶體區塊內 RAM 索引值最低的埠將獲得較大的 分配量。例如,若使用 3 個 RAM 埠 (0、1 和 2),則埠 0 將獲得 50% 的 RAM 容量,而埠 1 和 2 則各獲得 25%。 若埠號為 8、9 和 10,情況亦同,因為它們雖映射至 第二個 RAM 介面,但仍屬於同一個實體 RAM 銀行。

RAM 索引無需連續;其絕對順序決定了 資源的分配。 RAM 索引為虛擬識別碼,即使序列中存在空隙,也不會影響 FPGA 資源 的使用。例如,若使用 3 個 RAM 埠 (1、5 和 7):埠 1 會分配到 RAM 容量的 50%,而埠 5 和 7 則各分配 25%。

當所有 資源皆映射至同一物理銀行時,RAM 索引的分配方式並無優劣之分。您可以使用 VisualApplets 提供的自動分配功能,或若特定設計運算子 所需的 RAM 比其他運算子更多時,可手動進行調整。

[注意] 獨立 RAM 介面

兩個實體 RAM 介面完全獨立運作。例如,若使用兩個 運算子,其中一個被指派至第一個 RAM 介面,而 另一個則被指派至第二個介面,每個運算子皆可充分利用其 所屬介面的最大 RAM 容量。

RAM 埠之間的 RAM 頻寬分配

共用記憶體控制器採用輪詢(Round-robin)演算法,將頻寬 均勻分配至實體 RAM 介面內所有已分配的埠。此演算法 基於信用點數仲裁機制。當某個埠進入活躍狀態時,只要它持續提供 新的 RAM 工作,便會保持 活躍狀態,直至達到預設的信用點數時鐘週期數為止。 若某個活躍埠已無工作任務,該埠將被停用,而 激活標記則移轉至下一個有待處理請求的埠。此機制可確保 頻寬絕不會浪費在閒置埠上。

信用值是由韌體在小程式合成期間,根據 所使用的 RAM 運算子數量所設定的。這些值無法在執行期間或透過 Framegrabber SDK 進行變更。使用者無法存取信用設定。

當一個埠處於活躍狀態時,它將佔用 100% 的記憶體控制器頻寬。如果實體記憶體區塊中的所有 8 個埠均勻地處於活躍狀態,隨著時間推移,每個埠將獲得約 1/8 的 總頻寬。在其他情況下,實際平均頻寬則取決於 各埠的負載狀況。

實體 RAM 介面是完全獨立的。將基於 RAM 的 運算子指派給不同的介面,可將頻寬效率最大化。頻寬僅 在連接至同一實體 RAM 介面的運算子之間共享。

RAM 大小與頻寬最佳化

imaFlex 2 Dual 100 提供 2 個獨立的實體 RAM 介面。每個 介面皆擁有專屬的頻寬與記憶體容量。若設計目標是達到最大頻寬與 容量,請將基於 RAM 的運算子均勻地配置於兩個 RAM 介面之間。連接埠 0 至 7 映射至第一個 RAM 介面,而連接埠 8 至 15 則映射至第二個介面。

imaFlex CXP-12 Quad 與 imaFlex CXP-12 Penta

imaFlex CXP-12 Quad 和imaFlex CXP-12 Penta 平台僅配備一個 實體 RAM 銀行(其大小因平台而異)。此單一實體銀行會 根據小程式內所使用的 基於 RAM 的VisualApplets 運算子數量,動態格式化為互不重疊的區域。這些區域在 VisualApplets 中以虛擬 RAM 銀行的形式呈現。 當運算子預留 RAM 資源時, 其實際使用的是虛擬 RAM 區塊,該區塊會映射至實體 RAM 內 一個專屬且不重疊的記憶體區域。在 imaFlex 平台上,最多可定義 8 個不重疊的區域。若僅使用 1 個 RAM 運算子,該運算子將獲得 平台完整的 RAM 容量。 每新增一位操作員所分配的大小,將按該操作員 在同一實體介面上連接的數量,按比例減少該操作員 所擁有的記憶體大小。若使用 8 位操作員,每位操作員將分配到平台 記憶體大小的 1/8。

然而,RAM 頻寬是由設計中所有基於 RAM 的運算子共享的。 當設計中使用全部 8 個 RAM 資源時,這 8 個基於 RAM 的運算單元各自可擁有 最高 1/8 GB/s 的專用頻寬,但需扣除該特定 運算單元的效率係數。若設計中僅使用一個基於 RAM 的運算單元,該運算單元將獲得 平台的總頻寬;若使用 2 個運算單元,則兩個運算單元各自 獲得總頻寬的一半,以此類推。

RAM 埠之間的 RAM 大小分配

未被分配且因此未被使用的 RAM 埠,其佔用的記憶體大小始終為 0%。

  • 已使用 1 個埠:該埠的使用率為 100%。

  • 共使用 2 個埠:這兩個已使用的埠各佔 50%。

  • 共使用 3 個埠:資源 ID 號碼最低的埠將獲得 50%,其餘 2 個被使用的埠則各佔 25%。

  • 共使用 4 個埠:這 4 個埠各佔 25%。

  • 共使用 5 個埠:資源 ID 號碼最低的 3 個埠將各佔 25%。 其餘 2 個埠將各佔 12.5%。

  • 共使用 6 個埠:資源 ID 號碼最低的 2 個埠將各佔 25%。 其餘 4 個埠將各佔 12.5%。

  • 共使用 7 個埠:資源 ID 號碼最低的埠將獲得 25%。其餘 6 個埠則各獲得 12.5%。

  • 共使用 8 個埠:每個埠各佔 12.5%。

[注意]

在 非對稱大小分區的情況下,RAM 索引較低的埠將獲得較大的分配。例如,使用 3 個 RAM 埠:0、1、2。 埠 0 獲得 50% 的 RAM 大小分配;埠 1 和 2 則各獲得 25%。

RAM 索引無需連續,其絕對順序決定 資源的分配。 RAM 索引為虛擬數值,即使順序中存在間隙,也不會影響 FPGA 資源的使用。例如,使用 3 個 RAM 埠: 1、5、7。埠 1 獲得 50% 的 RAM 大小分配,埠 5 和 7 則各 獲得 25%。

在分配運算子的 RAM 索引時, 並無優劣之分。您可以使用自動分配功能VisualApplets ,或在 特殊設計的運算子所需 RAM 空間大於其他 運算子時,手動進行調整。

RAM 埠之間的 RAM 頻寬分配

共用記憶體控制器採用輪詢(Round-robin)演算法,並將 頻寬均勻分配至所有已分配的埠。該演算法採用信用點 仲裁機制:當某個埠處於活躍狀態時,只要該埠持續提供新的 RAM 工作, 即可在信用點所對應的時鐘週期內保持活躍狀態。 一旦某個埠被啟用但 已無待處理工作,該埠即會停用,而啟用標記將跳轉至 排隊中的下一個埠,該埠需有待處理的請求工作。如此一來,頻寬便絕不會 因閒置而浪費。信用值完全由韌體在 小程式合成期間依據所使用的 RAM 運算子數量進行編程,且無法 在Framegrabber SDK/ 執行期間進行變更。 使用者無法存取 配額的設定。當一個活躍的埠佔用 RAM 介面時,它將可 存取記憶體控制器 100% 的頻寬。當所有 8 個埠皆被使用且 均勻地處於活躍狀態時,隨時間推移,每個埠的頻寬為 1/8。在所有其他 情況下,各埠的負載將決定每個 埠的實際平均頻寬。

microEnable 5 marathon

microEnable 5marathon 平台僅組裝有一個 實體 RAM 銀行(其大小因平台而異)。此單一實體銀行被 格式化為 4 個互不重疊的記憶體區域。這 4 個區域在 VisualApplets 中被表示為 4 個虛擬 RAM 銀行。 當操作員預留 RAM 資源時,其實是 在使用一個虛擬 RAM 銀行,該銀行會映射至 實體 RAM 內部一個專屬且不重疊的記憶體區域。

然而,RAM 頻寬是由設計中所有基於 RAM 的運算子共同分享的。 當設計使用全部 4 個 RAM 資源時,這 4 個基於 RAM 的運算子各自可擁有 最高 1.6 GB/s 的專用頻寬,再扣除該特定 運算子的效率係數。 當設計中僅使用一個基於 RAM 的運算器時,該運算器將獲得 6.4 GB/s 的總頻寬。當使用 2 個運算器時,每個運算器將獲得 總頻寬的一半,以此類推。

[注意] 每位操作員的頻寬

內建 RAM 提供總計 6.4GB/s 的頻寬。單一 基於 RAM 的運算子可用的頻寬,即為總頻寬除以設計中所有 已實例化的基於 RAM 的運算子數量。

RAM 架構

圖 443. RAM 架構


在使用基於 RAM 的運算子進行設計時,必須將此 RAM 架構納入考量。

由於採用共享頻寬架構,小程式開發人員應充分利用營運商記憶體介面(RAM 資料寬度)的全部 256 位元,以在使用多個基於 RAM 的運算子時,透過記憶體介面達到最大吞吐量, 即使單一 RAM 運算子在其輸入端所需的頻寬較少。

使用 imaFlex 2 Dual 100 Frame Grabber 進行資料轉發

imaFlex 2 Dual 100 提供 2 個光纖 QSFP28 連接器:C0 和 C1。

imaFlex 2 Dual 100 C1 與 C0 連接器

圖 444.imaFlex 2 Dual 100 C1 與 C0 連接器


這兩種連接器均支援CoF (光纖上的 CXP)及資料轉發協定。每個 光纖連接器皆配有專屬的 LED:連接器 C0 配有四顆 LED,而連接器 C1 則配有一顆LED 。

每個連接器皆支援 QSFP28 光模組。QSFP28 介面提供 4 條雙向光纖連接,即 4 個接收 (RX) 及 4 個傳送 (TX) 連接。一條光纖 連接稱為 通道 。每個 QSFP28 埠在接收 (RX) 與傳輸 (TX) 方向均擁有 4 條光纖通道, 標示為 0 至 3。每條通道的運作速率為 25 Gbit/s。因此,單一 QSFP28 連接器可在 傳輸 (TX) 與接收 (RX) 方向提供 100 Gbit/s 的累計頻寬。

QSFP28 介面(示意圖)

圖 445. QSFP28 介面(示意圖)


imaFlex 2 Dual 100 提供資料轉發功能,可透過多個影像擷取卡 進行雙向資料傳輸。VisualApplets 中的資料轉發功能支援各種 拓撲結構來傳輸資料與元資料,包括菊花鏈及更先進的模型。 資料轉發行為可由使用者透過VisualApplets 運算子完全控制。相機資料、 小程式所產生之資料,以及元資料皆可在 TX 與 RX 兩個方向上獨立傳輸。VisualApplets 亦支援通道多工,允許元資料與一般影像資料 透過兩個獨立的虛擬通道,經由單一光纖通道同時傳送。 元資料會被賦予優先權,以確保及時傳遞。

由於光纖技術支援雙向通訊,一種先進的主從式 應用可讓主裝置控制從屬裝置接收哪些資料,並從中收集 處理結果。在從屬裝置的GPU 或CPU上產生的處理結果,可 透過 DmaFromPC 傳送回去,再透過資料轉發運算子,轉發回 主控端幀擷取器。

在典型的資料轉發菊鏈配置中,選定的攝影機資料會被轉發 至多個影像擷取卡。這些影像擷取卡隨後會透過PCIe ,以極低的延遲將資料傳輸至外部GPU 。

資料轉發

圖 446. 資料轉發


資料轉發埠連線

圖 447. 資料轉發埠連接


CoF (CXP over Fiber) 使用四條下行連接和一條上行連接。兩個幀擷取卡之間的 資料轉發鏈路經配置為僅傳輸所需的 資料;它們不傳輸原生CoF 流量,而是傳輸VisualApplets 資料及 元資料流。CoF 與資料轉發均受前向錯誤校正 (FEC) 保護。

主幀擷取器連接至攝影機,並將選定的資料部分轉發至 下一個從屬幀擷取器。每個從屬幀擷取器會擷取其 自身處理所需的資料,並將影像流中剩餘的未處理部分轉發至序列中的 下一個從屬幀擷取器。鏈中的最後一個幀擷取器充當終端點,不會 將任何資料進一步轉發。

上述範例是菊花鏈拓撲結構的簡化示意。在更 進階的配置中,兩台相連的幀擷取卡可自由交換資料:它們之間 可建立 1 通道、2 通道、3 通道或 4 通道的連接。接收(RX)與傳輸(TX)方向可能使用 不同數量的通道。

多個光通道可組合成虛擬通道,使多個資料 通道能透過單一 QSFP28 連接器進行傳輸。除了影像資料 傳輸外,VisualApplets 還為每個光通道提供專用的元通道。此 元通道的優先級高於一般影像資料,且傳輸時具有極低的抖動與 延遲,使應用程式能夠實現時間戳記及板對板 同步。 小型側帶資訊亦可透過元通道傳輸, 例如用於配置光纖連接另一端的從屬夥伴。該 夥伴可透過其自身的元通道,將控制與狀態資訊回傳至 主機。每台影像擷取卡亦可將處理後的影像資料,以 最高達 100 Gb/s 的聚合頻寬傳送至其夥伴。

透過單一 QSFP28 介面,可在兩台幀擷取卡之間建立最多四個元通道,且在發射(TX)與接收(RX)方向上可獨立運作。每個元通道的運作速率為 25 Gb/s。 影像資料通道可橫跨 1、2、3 或 4 條光通道,以形成一個虛擬資料傳輸 通道。

QSFP28 資料轉發介面支援以下虛擬資料通道的組合:

  • 1 × 4 通道:100 Gbit/s

  • 1 × 3 通道 傳輸速率為 75 Gbit/s 以及 1 x 1 通道 傳輸速率為 25 Gbit/s

  • 2 × 2 通道 每通道傳輸速率為 50 Gbit/s

  • 1 組 2 通道 傳輸速率為 50 Gbit/s,以及 2 組 1 通道 傳輸速率為 25 Gbit/s

  • 4 × 1 通道 每通道傳輸速率為 25 Gbit/s

RX 端與 TX 端完全獨立運作。這意味著回傳(RX) 方向可視需要實作或省略。若選擇實作,該方向無須 與正向(TX)方向呈對稱關係。

元通道與資料通道獨立運作。每個元通道僅使用一條 光纖通道,並以 25 Gb/s 的速率運作。元通道專為傳輸少量 資料而設計。由於其具有優先權,元通道的傳輸會暫時中斷 同一光纖通道上的常規資料傳輸。

Data Forwarding 運算子

為了支援資料轉發功能,VisualApplets 提供了以下 運算子:

  • DFTxData – 用於傳輸影像資料的操作元,涵蓋 1 至 4 條通道。

  • DFRxData – 用於接收影像資料的操作元,涵蓋 1 至 4 條車道。

  • DFTxMeta – 用於傳輸元資料的運算子,1 條通道。

  • DFRxMeta – 用於接收元資料的運算子,1 條通道。

  • DFLed – 操作員 用於存取前插槽的 QSFP28 LED(雙色:紅、綠、橙)。C1 設有 1 LED ;C0 設有 4 顆雙色 LED(每條通道各一顆)。

Basler 提供以VisualApplets 設計形式呈現的資料轉發範例,以及一個 C++ SDK 控制應用程式。在這些範例中,您可以了解如何使用這些運算子進行 資料轉發。這些範例可於VisualApplets 的範例區中取得,網址為 Examples/Acquisition/DataForwarding. 您可以在 「CoaXPress over Fiber 擷取卡的資料轉發 (Data Forwarding for CoaXPress over Fiber Frame Grabber)」 主題在 基礎與範例.

資料轉發拓撲中主節點的 VA 設計範例

圖 448. 資料轉發拓撲中主節點的 VA 設計範例


資料轉發拓撲中從屬主節點的 VA 設計範例

圖 449. 資料轉發拓撲中從屬主節點的 VA 設計範例


資料轉發拓撲中終端從屬主節點的 VA 設計範例

圖 450. 資料轉發 拓撲中端點從屬主節點的 VA 設計範例


光學拓樸

在某些限制條件下,可以建構更複雜的攝影機-幀擷取器模型。 兩個幀擷取器之間的光學傳輸延遲極低: 一個資料字從一個幀擷取器傳輸到另一個幀擷取器,所需時間約為 120 ns。

Daisy Chain

菊花鏈拓撲是最常見的方案,用於將處理 負載分散至多個 CPU/GPU 叢集:

菊花鏈(示意圖)

圖 451. 菊花鏈(示意圖)


主幀擷取器連接至攝影機;第二個 QSFP28 埠則連接 至下一台從屬裝置。每台從屬裝置會處理部分傳入的資料,並將 剩餘的資料轉發至下一台裝置。鏈中最後一台幀擷取器作為 終點。除最後一台外,所有幀擷取器均會同時使用兩個 QSFP28 埠。

雙相機

雙相機

圖 452. 雙鏡頭


對於某些應用,可以將兩台 100 Gb/s 攝影機連接至單一 影像擷取卡。這需要攝影機未以最大 頻寬運作,或者能在將資料儲存至 RAM 之前,先透過VisualApplets 進行預處理, 以稍微降低頻寬,使兩路攝影機串流皆能容納於 兩個 RAM 介面之中。 在此配置下,幀擷取卡必須在VisualApplets 中執行額外的 處理,以降低最終的資料傳輸速率,使其符合 約13 GB/s的PCIe 有限吞吐量。

Dual Master

Dual Master

圖 453. 雙主控模式


在此情況下,每個幀擷取卡皆連接至其專屬的攝影機。第二個 QSFP28 埠用於幀擷取卡之間的通訊,可實現最高 100 Gbit/s 的雙向資料傳輸,以支援複雜的運算任務與同步作業。

Triple Master

Triple Master

圖 454. 三重大師


在此拓撲結構中,每個幀擷取卡皆連接至其專屬的攝影機。 中央幀擷取卡利用其剩餘的 QSFP28 埠,透過一條特殊的光纖纜線,將四條通道拆分為兩組各含兩條通道的 QSFP28 模組,藉此連接至另外兩台主 幀擷取卡。 兩台外側幀擷取卡的唯一直接連接, 僅包括通往各自攝影機的全四通道鏈路,以及通往中央幀擷取卡的 雙通道鏈路。這兩個通道使幀擷取卡之間能夠 以最高 50 Gbit/s 的速度進行通訊。