多核导航模块(Multicore Navigator)
1.基本概念介紹
? ? ? ?多核導航器:多核導航器由QMSS和PKTDMA兩部分組成。用于在設備之間控制和實現數據包的高速傳輸,有效提高系統的總體性能。QMSS(隊列管理器)是一個硬件模塊,它負責包隊列的加速管理。可以通過向隊列管理器寫入32位描述符地址,將包加入到特定地址的包隊列中。然后可以通過讀取特定隊列的地址,使包出隊。PKTDMA(Packet DMA)與普通DMA不同,它的目標地址由目標主體和空閑描述符隊列索引決定,并不是一個絕對的存儲地址。在接收模式中,PKTDMA傳輸負載數據到緩存中,并且將描述符加入到目標隊列中。在發送模式,PKTDMA使描述符從發送隊列中出隊,從緩存中讀取負載數據,并將負載數據發送到發送端口。
包數據結構協處理器(APDSP):KeyStone I 的QMSS中有兩個 DSP,每個PDSP都有運行QMSS固件的能力。
描述符累加器固件:用于監控指定隊列中的描述符,當隊列中的描述符達到一定數量,或者超時,則向主機發送中斷。它還提供了一個回收功能,它可以自動地將描述符重新循環到隊列中。
QoS固件:該固件負責確保外設和主機CPU沒有被包吞沒,換句話說,就是擁塞控制。
事件管理器固件:它提供了CorePacs的動態負載平衡。
主機包描述符:大小固定,包含一個指向數據緩存的指針。
主機緩存描述符:主機緩存描述符用于鏈接到主機包描述符或者其他的主機緩存描述符。
單一包描述符:與主機包描述符不同,它將負載數據包含在了描述符內
1.1 PKTDMA(Packet DMA)
KeyStone架構的設備(芯片)上的多個Packet DMA外設可以通過PKTDMA之間數據高速傳輸, 如下圖,其中PA和SRIO是所有KeyStone架構的設備都具有的,AIF2和FFTC僅為在KeyStone設備上用于無線通訊用途。
1.2 PKTDMA特點:
a、獨立的Rx和TX核心:
①?TX核心:
? ? ? -通過來自QM的硬件qpend信號觸發TX通道。
? ? ? -TX核心控制是通過描述符編程的。
? ? ? -4級優先級(循環)TX調度器
? ? ? -AIF 2附加TX調度程序接口(僅用于無線應用)
② RX核心:
? ? ? -RX通道通過Rx流I/F觸發。
? ? ? -RX核心控制是通過一個“Rx流”來編程的(稍后會有更多)
b、用于TX輸出和Rx輸入的2x128位對稱流I/F
? ? ? -這些被連接在一起以便在QMSS的PKTDMA形成回路。
? ? ? -連接到外圍設備的匹配流I/F(TX->Rx,Rx->TX)
c、基于數據包,所以Rx或TX核心都不關心有效載荷格式。
1.3 Navigator描述符類型
Navigator中使用了兩種描述符類型:Host(主機包類型)和Monolithic(單一包類型)
① Host類型:提供了靈活性,但更難使用。
? ? -包含一個頭部,它帶有一個指向有效負載的指針"。
? ??-多個Host描述符可以鏈接在一起(數據包長度是有效負載(緩沖區)大小之和)。
② Monolithic類型不太靈活,但更容易使用。
? ? -描述符包含頭部和有效負載。
? ??-不能連在一起。
? ? -每個Monolithic類型描述符的有效載荷緩沖區大小相等(每個區域)。
1.4?描述符隊列(多個描述符鏈接)
下圖顯示了幾個一起排隊的描述符。要注意的事情:只有主機數據包在鏈接主機描述符中排隊。主機數據包總是在SOP中使用,然后是零或多個主機緩沖區類型。多個描述符類型可以一起排隊,盡管在實踐中并不常見。
1.5?數據流流向
- Peripheral input and?output:
- 通過QM and?PKTDMA的驅動數據流
- Infrastructure or core-to- core?transfers:
- 從一個核的L2到另一個核的L2或者DDR
? 參考:“https://my.oschina.net/u/3690543/blog/1802772”
總結
以上是生活随笔為你收集整理的多核导航模块(Multicore Navigator)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NAND FLASH 和NOR FLAS
- 下一篇: 为什么要进行字节对齐?