chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PWIL:不依賴對抗性的新型模擬學習

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2020-10-13 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

強化學習 (Reinforcement Learning,RL) 是一種通過反復試驗訓練智能體 (Agent) 在復雜環(huán)境中有序決策的范式,在游戲、機器人操作和芯片設(shè)計等眾多領(lǐng)域都取得了巨大成功。智能體的目標通常是最大化在環(huán)境中收集的總獎勵 (Reward),這可以基于速度、好奇心、美學等各種參數(shù)。然而,由于 RL 獎勵函數(shù)難以指定或過于稀疏,想要設(shè)計具體的 RL 獎勵函數(shù)并非易事。

游戲
https://ai.googleblog.com/2019/06/introducing-google-research-football.html

這種情況下,模仿學習(Imitation Learning,IL) 方法便派上了用場,因為這種方法通過專家演示而不是精心設(shè)計的獎勵函數(shù)來學習如何完成任務。然而,最前沿 (SOTA) 的 IL 方法均依賴于對抗訓練,這種訓練使用最小化/最大化優(yōu)化過程,但在算法上不穩(wěn)定并且難以部署。

在“原始 Wasserstein 模仿學習”(Primal Wasserstein Imitation Learning,PWIL) 中,我們基于 Wasserstein 距離(也稱為推土機距離)的原始形式引入了一種新的 IL 方法,這種方法不依賴對抗訓練。借助 MuJoCo 任務套件,我們通過有限數(shù)量的演示(甚至是單個示例)以及與環(huán)境的有限交互來模仿模擬專家,以此證明 PWIL 方法的有效性。

原始 Wasserstein 模仿學習
https://arxiv.org/pdf/2006.04678.pdf

MuJoCo 任務套件
https://gym.openai.com/envs/#mujoco

左圖:使用任務的真實獎勵(與速度有關(guān))訓練的算法類人機器人“專家”;右圖:使用 PWIL 基于專家演示訓練的智能體

對抗模仿學習

最前沿的對抗 IL 方法的運作方式與生成對抗網(wǎng)絡(luò) (GAN) 類似:訓練生成器(策略)以最大化判別器(獎勵)的混淆度,以便判別器本身被訓練來區(qū)分智能體的狀態(tài)-動作對和專家的狀態(tài)-動作對。對抗 IL 方法可以歸結(jié)為分布匹配問題,即最小化度量空間中概率分布之間距離的問題。不過,就像 GAN 一樣,對抗 IL 方法也依賴于最小化/最大化優(yōu)化問題,因此在訓練穩(wěn)定性方面面臨諸多挑戰(zhàn)。

訓練穩(wěn)定性方面面臨諸多挑戰(zhàn)
https://developers.google.com/machine-learning/gan/problems

模仿學習歸結(jié)為分步匹配

PWIL 方法的原理是將 IL 表示為分布匹配問題(在本例中為 Wasserstein 距離)。第一步為從演示中推斷出專家的狀態(tài)-動作分布:即專家采取的動作與相應環(huán)境狀態(tài)之間的關(guān)系的集合。接下來的目標是通過與環(huán)境的交互來最大程度地減少智能體的狀態(tài)-動作分布與專家的狀態(tài)-動作分布之間的距離。相比之下,PWIL 是一種非對抗方法,因此可繞過最小化/最大化優(yōu)化問題,直接最小化智能體的狀態(tài)-動作對分布與專家的狀態(tài)-動作對分布之間的 Wasserstein 距離。

PWIL 方法

計算精確的 Wasserstein 距離會受到限制(智能體軌跡結(jié)束時才能計算出),這意味著只有在智能體與環(huán)境交互完成后才能計算獎勵。為了規(guī)避這種限制,我們?yōu)榫嚯x設(shè)置了上限,可以據(jù)此定義使用 RL 優(yōu)化的獎勵。

結(jié)果表明,通過這種方式,我們確實可以還原專家的行為,并在 MuJoCo 模擬器的許多運動任務中最小化智能體與專家之間的 Wasserstein 距離。對抗 IL 方法使用來自神經(jīng)網(wǎng)絡(luò)的獎勵函數(shù),因此,當智能體與環(huán)境交互時,必須不斷對函數(shù)進行優(yōu)化和重新估計,而 PWIL 根據(jù)專家演示離線定義一個不變的獎勵函數(shù),并且它所需的超參數(shù)量遠遠低于基于對抗的 IL 方法。

PWIL 在類人機器人上的訓練曲線:綠色表示與專家狀態(tài)-動作分布的 Wasserstein 距離;藍色表示智能體的回報(所收集獎勵的總和)

類人機器人
https://gym.openai.com/envs/Humanoid-v2/

衡量真實模仿學習環(huán)境的相似度

與 ML 領(lǐng)域的眾多挑戰(zhàn)類似,許多 IL 方法都在合成任務上進行評估,其中通常有一種方法可以使用任務的底層獎勵函數(shù),并且可以根據(jù)性能(即預期的獎勵總和)來衡量專家行為與智能體行為之間的相似度。

PWIL 過程中會創(chuàng)建一個指標,該指標可以針對任何 IL 方法。這種方法能將專家行為與智能體行為進行比較,而無需獲得真正的任務獎勵。從這個意義上講,我們可以在真正的 IL 環(huán)境中使用 Wasserstein 距離,而不僅限于合成任務。

結(jié)論

在交互成本較高的環(huán)境(例如,真實的機器人或復雜的模擬器)中,PWIL 可以作為首選方案,不僅因為它可以還原專家的行為,還因為它所定義的獎勵函數(shù)易于調(diào)整,且無需與環(huán)境交互即可定義。

這為未來的探索提供了許多機會,包括部署到實際系統(tǒng)、將 PWIL 擴展到只能使用演示狀態(tài)(而不是狀態(tài)和動作)的設(shè)置,以及最終將 PWIL 應用于基于視覺的觀察。

責任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    992

    瀏覽量

    45359
  • 智能體
    +關(guān)注

    關(guān)注

    1

    文章

    382

    瀏覽量

    11515
  • 強化學習
    +關(guān)注

    關(guān)注

    4

    文章

    269

    瀏覽量

    11894

原文標題:PWIL:不依賴對抗性的新型模擬學習

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    儲能類電池管理系統(tǒng)BMS HiL解決方案

    在北匯信息HiL測試環(huán)境中,可以在不依賴于真實電池組的情況下,為儲能BMS提供所需的高壓模擬信號、電芯電壓與溫度傳感器信號、母線電流信號以及上層系統(tǒng)的通訊指令,實現(xiàn)儲能BMS狀態(tài)估算算法、充放電邏輯、熱管理策略及故障診斷與保護機制的全面驗證。
    的頭像 發(fā)表于 11-10 14:18 ?1088次閱讀
    儲能類電池管理系統(tǒng)BMS HiL解決方案

    請問OTA是否一定依賴于ymodem協(xié)議?

    缺少什么步驟,通過對比發(fā)送的固件內(nèi)容(日志打?。┡c“downloader”內(nèi)容一致。 3,現(xiàn)在的需求是通過串口2,接收上位機發(fā)送過來的固件包更新。不依賴于ymodem等任何協(xié)議。不知這種想法是否成立。
    發(fā)表于 09-17 08:25

    太陽光模擬器 | 光輻射測量的基礎(chǔ)知識

    光輻射測量覆蓋電磁波譜全波段(紫外線UV、紅外線IR、可見光),核心優(yōu)勢是不依賴人眼視覺,可精準量化全波段光能量,這一特性在太陽光模擬器領(lǐng)域尤為關(guān)鍵:模擬太陽輻射的準確性、光譜匹配度及輻照強度控制
    的頭像 發(fā)表于 09-12 18:02 ?1121次閱讀
    太陽光<b class='flag-5'>模擬</b>器 | 光輻射測量的基礎(chǔ)知識

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之九:隊列管理模塊(上)

    這是采用PCIe設(shè)計NVMe,并非調(diào)用XDMA方式,后者在PCIe4.0時不大方便,故團隊直接采用PCIe設(shè)計,結(jié)合UVM驗證加快設(shè)計速度。 隊列管理模塊采用隊列的存儲與控制分離的設(shè)計結(jié)構(gòu)。
    的頭像 發(fā)表于 08-04 09:53 ?580次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之九:隊列管理模塊(上)

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之八:系統(tǒng)初始化

    采用XDMA是許多人常用xilinx庫實現(xiàn)NVMe或其他傳輸?shù)姆椒ā5?,XDMA介紹較少,在高速存儲設(shè)計時,尤其是PCIe4.0模式下,較難發(fā)揮其最優(yōu)性能,因此,直接采用PCIe實現(xiàn)NVMe功能。
    的頭像 發(fā)表于 07-26 15:14 ?626次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之八:系統(tǒng)初始化

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之六:性能監(jiān)測單元設(shè)計

    性能監(jiān)測單元負責監(jiān)測 NVMe over PCIe 邏輯加速引擎的運行狀態(tài)和統(tǒng)計信息, 包括復位后 運行時間信息、 NVMe 指令數(shù)量統(tǒng)計信息、 數(shù)據(jù)操作數(shù)量統(tǒng)計信息、 IOPS 性能統(tǒng)計 信息、 指令延遲統(tǒng)計信息等。
    的頭像 發(fā)表于 07-02 19:49 ?372次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之六:性能監(jiān)測單元設(shè)計

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之五:DMA 控制單元設(shè)計

    DMA 控制單元負責控制 DMA 傳輸事務, 該單元承擔了 DMA 事務到 NVMe 事務的轉(zhuǎn)換任務, 使用戶對數(shù)據(jù)傳輸事務的控制更加簡單快捷。 DMA 控制功能由 DMA寄存器組實現(xiàn)。
    的頭像 發(fā)表于 07-02 19:47 ?1877次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之五:DMA 控制單元設(shè)計

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之五:DMA 控制單元設(shè)計

    DMA 控制單元負責控制 DMA 傳輸事務, 該單元承擔了 DMA 事務到 NVMe 事務的轉(zhuǎn)換任務, 使用戶對數(shù)據(jù)傳輸事務的控制更加簡單快捷。 DMA 控制功能由 DMA寄存器組實現(xiàn)。DMA 寄存器組包含 DMA 操作寄存器、 DMA 長度寄存器、 DMA 源目的地址寄存器和 DMA 狀態(tài)寄存器。 DMA 操作寄存器定義了 DMA 請求類型, 包括寫和讀操作; DMA 長度寄存器定義了 DMA 請求的數(shù)據(jù)傳輸長度, 該長度以 NVMe 設(shè)備邏輯塊大小為單位; DMA 源地址和 DMA 目的地址寄存器定義了 DMA 請求的源數(shù)據(jù)存放的起始地址和數(shù)據(jù)傳輸?shù)哪康牡刂罚?DMA 狀態(tài)寄存器定義了當前待運行的 DMA請求數(shù)量和 DMA 請求執(zhí)行狀態(tài)信息。 DMA 寄存器組定義如表 1 所示, 其中 DMA狀態(tài)寄存器定義如表 2 所示。表 1 DMA 寄存器組定義 表 2 DMA狀態(tài)寄存器定義想進一步了解相關(guān)視頻,請搜索B站用戶:專注與守望鏈接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click
    發(fā)表于 07-02 19:45

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之四:系統(tǒng)控制模塊

    系統(tǒng)控制模塊負責實現(xiàn) NVMe over PCI 邏輯加速引擎的控制功能, 其結(jié)構(gòu)如圖 1 所示。 用戶通過系統(tǒng)控制模塊實現(xiàn)對初始化功能、 隊列管理功能、 DMA 功能等主要功能的控制, 同時邏輯加速引擎的工作狀態(tài)也通過此模塊反饋給用戶。
    的頭像 發(fā)表于 06-29 17:52 ?331次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之四:系統(tǒng)控制模塊

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之三:系統(tǒng)架構(gòu)

    所設(shè)計的新系統(tǒng)架構(gòu)中,Nvme over PCIe IP通過 PCIe 3.0x4 接口連接 NVMe固態(tài)硬盤, 并提供 AXI4-Lite 接口用于系統(tǒng)控制, 以及 AXI4 接口用于數(shù)據(jù)傳輸。 在該IP內(nèi)部, 根據(jù)功能劃分為系統(tǒng)控制模塊、 初始化模塊、 NVMe 控制模塊、 PCIe 加速模塊、 PCIE 集成塊。
    的頭像 發(fā)表于 06-29 17:46 ?879次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之三:系統(tǒng)架構(gòu)

    NVMe IP高速傳輸卻不依賴便利的XDMA設(shè)計之三:系統(tǒng)架構(gòu)

    結(jié)合目前應用需求,以及前面基礎(chǔ)分析,確定IP應具有如下特色: (1) 通用性 前端數(shù)據(jù)采集系統(tǒng)基于 FPGA 開發(fā)。 一方面, 設(shè)備類型多, 使用的 FPGA型號各不相同, 需要實現(xiàn)的設(shè)計能夠在多種類型 FPGA 上的工作; 另一方面, 為了降部署低成本, 需要實現(xiàn)脫離 CPU 的存儲控制。 綜合考慮以上兩方面因素,設(shè)計應采用純邏輯電路的方式實現(xiàn)。 (2) 高性能 前端采集的數(shù)據(jù)存在連續(xù)數(shù)據(jù)、 零散數(shù)據(jù)等多種數(shù)據(jù)量形式。 面臨大量零散數(shù)據(jù)存儲請求時, 需要增加 NVMe I/O 隊列的數(shù)量和深度來保證數(shù)據(jù)傳輸性能; 而面臨大量連續(xù)數(shù)據(jù)存儲請求時, 單隊列足以發(fā)揮性能。 在這種情況下, 需要盡可能降低功耗,減少運行中的 I/O 隊列數(shù)量。 因此, 需要實現(xiàn)動態(tài)的隊列管理功能, 在滿足高性能的同時適應不同的應用環(huán)境。 具體要求為使用 PCIe3.0 以上接口的高性能固態(tài)硬盤的順序讀寫數(shù)據(jù)吞吐量不低于2GB/s, 隨機寫IOPS不低于500000, 隨機寫延遲不高于1ms。 (3) 易集成、 易操作 實現(xiàn)的 NVMe 主機控制邏輯和 NVMe 固態(tài)硬盤作為存儲子系統(tǒng), 應能夠方便的集成到應用環(huán)境中, 并提供簡易的操作方式實現(xiàn)數(shù)據(jù)的傳輸與存儲。 因此, 設(shè)計需要采用標準化接口, 實現(xiàn)盡可能低的資源占用率, 并具備 DMA 數(shù)據(jù)傳輸功能。 基于以上需求, 本IP擬基于 FPGA 的 NVMe over PCIe(NoP) 邏輯進行設(shè)計,它具有以下特點: (1) 支持 NVMe 1.3d 協(xié)議、 支持 PCIe 3.0 協(xié)議。 (2) 基于 Xilinx PCIe Integration Block 硬核開發(fā)。 一方面, 該 PCIE 集成塊具有多種版本, 并且適用平臺多, 因此 NoP 邏輯加速引擎能夠部署在支持 PCIE 集成塊的FPGA 開發(fā)板上。 另一方面, 直接對接 PCIE 集成塊的結(jié)構(gòu)設(shè)計具有更高的數(shù)據(jù)傳輸性能。 (3) 純邏輯電路開發(fā)。 設(shè)計基于純邏輯電路, 不需要 CPU 的介入, 獨立運行,可以節(jié)省 CPU 資源, 兼容 SoC 與純邏輯環(huán)境。 (4) 使用 AXI 總線接口。 設(shè)計使用標準化的 AXI 總線接口提供系統(tǒng)控制和數(shù)據(jù)傳輸功能, 在保證了傳輸性能的同時, 更容易集成到應用環(huán)境中。 (5) 多隊列并行管理與動態(tài)配置。 支持的最大 I/O 提交隊列數(shù)量為 16, 支持的最大單 I/O 提交隊列深度為 1024, 最大 I/O 提交隊列總深度為 1024, 支持運行過程中動態(tài)的創(chuàng)建或刪除隊列。 (6) DMA 功能。 通過配置 DMA 寄存器直接請求數(shù)據(jù)傳輸, 數(shù)據(jù)傳輸通過 AXI4總線接口對接用戶邏輯, 使用突發(fā)傳輸提高數(shù)據(jù)傳輸性能。 圖1 Nvme邏 輯加速IP系統(tǒng)架構(gòu)圖 新系統(tǒng)中,Nvme邏輯加速IP通過 PCIe 3.0x4 接口連接 NVMe 固態(tài)硬盤, 并提供 AXI4-Lite 接口用于系統(tǒng)控制, 以及 AXI4 接口用于數(shù)據(jù)傳輸。 在該IP內(nèi)部, 根據(jù)功能劃分為系統(tǒng)控制模塊、 初始化模塊、 NVMe 控制模塊、 PCIe 加速模塊、 PCIE 集成塊。 以下為各功能模塊的定義: 系統(tǒng)控制模塊是實現(xiàn)NVMe over PCIe關(guān)鍵組件。 NoP 邏輯加速引擎內(nèi)部集成了各種功能, 包括初始化、 NVMe 隊列管理以及 DMA 等多種功能, 統(tǒng)由系統(tǒng)控制模塊進行管理。 為了有效管理這些功能, 系統(tǒng)控制模塊設(shè)計了對應的功能控制單元, 并提供了 AXI4-Lite 從機接口, 使得 NoP 邏輯加速引擎能夠輕松地與用戶環(huán)境集成。 通過 AXI4-Lite 接口, 用戶可以方便地訪問各個功能控制單元, 實現(xiàn)對系統(tǒng)功能的控制。 這種設(shè)計使得用戶能夠直接與 NoP 邏輯加速引擎進行交互, 靈活地配置和管理系統(tǒng)的各項功能, 從而更好地滿足特定的應用需求。 初始化模塊負責控制系統(tǒng)的初始化流程, 其中包括 PCIe 初始化和 NVMe 初始化兩個主要步驟。 在系統(tǒng)上電復位后, 首先由 PCIE 集成塊執(zhí)行物理層的鏈路訓練和速度協(xié)商, 建立有效的 PCIe 通信鏈路。 隨后, 由初始化模塊進行 PCIe 設(shè)備的枚舉與配置, 并執(zhí)行 NVMe 的初始化流程。 初始化過程是確保系統(tǒng)能夠在正確狀態(tài)下運行的前提條件, 也為后續(xù)操作提供了必要的支持。 NVMe 控制模塊是實現(xiàn) NVMe 的命令提交和完成機制的核心模塊。 首先, 該模塊負責將來自系統(tǒng)控制模塊的功能請求轉(zhuǎn)換為 NVMe 命令請求, 并執(zhí)行 NVMe 指令提交與完成機制。 其次, 該模塊實現(xiàn) NVMe 隊列管理功能, 除了基本的隊列存儲、門鈴控制、 請求仲裁、 條目解析等, 還包括了動態(tài)創(chuàng)建和刪除隊列功能。 最后, 該模塊還負責實現(xiàn) PRP 尋址機制, 根據(jù)指令管理和計算 PRP 偏移, 實現(xiàn)數(shù)據(jù)的尋址并降低 PRP 讀取延遲。 PCIe 加速模塊負責處理 PCIe TLP, 將 PCIe 事務與 NVMe 緊密結(jié)合。 一方面,該模塊將來自初始化模塊或 NVMe 控制模塊的事務請求轉(zhuǎn)換為 PCIe TLP 請求, 然后發(fā)送到 PCIE 集成塊, 同時接收 PCIE 集成塊的 TLP 響應包, 將其轉(zhuǎn)換為內(nèi)部事務響應發(fā)送到對應內(nèi)部模塊。 另一方面, 該模塊負責處理來自 NVMe 存儲設(shè)備的 TLP 請求, 根據(jù)請求內(nèi)容將請求轉(zhuǎn)發(fā)到 NVMe 控制模塊或轉(zhuǎn)換為 AXI4 總線事務, 同時將來自 NVMe 控制模塊和 AXI4 總的響應組裝為 CplD, 經(jīng)由 PCIE 集成塊發(fā)送給 NVMe存儲設(shè)備。 PCIE 集成塊實現(xiàn) PCIe 的數(shù)據(jù)鏈路層和物理層。 PCIE 集成塊是 Xilinx 提供的用于 PCIe 的高帶寬、 可擴展和靈活的通用 I/O 核, 在 NoP 邏輯加速引擎中使用 PCIE集成塊的 RC 模式實現(xiàn) Root Complex 的數(shù)據(jù)鏈路層與物理層。 PCIE 集成塊提供了四組 AXI stream 接口用于傳遞 PCIe TLP, 通過這些接口實現(xiàn) TLP 與 PCIe 鏈路信號的相互轉(zhuǎn)換, 此外還包含一組配置接口用于訪問 PCIE 集成塊的配置空間。 想進一步了解相關(guān)視頻,請搜索B站用戶:專注與守望 鏈接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click 更多博文見:https://blog.csdn.net/tiantianuser/article/details/148994728
    發(fā)表于 06-29 17:42

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之二:PCIe讀寫邏輯

    應答模塊的具體任務是接收來自PCIe鏈路上的設(shè)備的TLP請求,并響應請求。由于基于PCIe協(xié)議的NVMe數(shù)據(jù)傳輸只使用PCIe協(xié)議的存儲器讀請求TLP和存儲器寫請求TLP,應答模塊分別針對兩種TLP設(shè)置處理引擎來提高并行性和處理速度。
    的頭像 發(fā)表于 06-09 17:25 ?589次閱讀
    NVMe IP高速傳輸卻<b class='flag-5'>不依賴</b>XDMA設(shè)計之二:PCIe讀寫邏輯

    GPS對時設(shè)備,不依賴互聯(lián)網(wǎng)的&quot;獨立時鐘&quot;

    GPS對時設(shè)備的通用性使其適合應用于各種領(lǐng)域(IT、冶金、通信、電力、金融、廣電、安防、交通、水利、國防、石化、、教育等)。山東唯尚電子有限公司生產(chǎn)的產(chǎn)品是標準19英寸機架式設(shè)備,高度為1U或2U。
    的頭像 發(fā)表于 05-30 14:29 ?326次閱讀
    GPS對時設(shè)備,<b class='flag-5'>不依賴</b>互聯(lián)網(wǎng)的&quot;獨立時鐘&quot;

    NVMe IP高速傳輸卻不依賴便利的XDMA設(shè)計之二

    NVMe IP放棄XDMA原因 選用XDMA做NVMe IP的關(guān)鍵傳輸模塊,可以加速IP的設(shè)計,但是XDMA對于開發(fā)者來說,還是不方便,原因是它就象一個黑匣子,調(diào)試也非一番周折,尤其是后面PCIe4.0升級。因此決定直接采用PCIe設(shè)計,雖然要費一番周折,但是目前看,還是值得的,我們uvm驗證也更清晰。 視頻demo見B站:搜用戶名: 專注與守望 或鏈接:https://space.bilibili.com/585132944/upload/video PCIe 寫應答模塊設(shè)計 應答模塊的具體任務是接收來自PCIe鏈路上的設(shè)備的TLP請求,并響應請求。由于基于PCIe協(xié)議的NVMe數(shù)據(jù)傳輸只使用PCIe協(xié)議的存儲器讀請求TLP和存儲器寫請求TLP,應答模塊分別針對兩種TLP設(shè)置處理引擎來提高并行性和處理速度。 對于存儲器寫請求TLP,該類型的TLP使用Posted方式傳輸,即不需要返回完成報文,因此只需要接收并做處理,這一過程由寫處理模塊來執(zhí)行,寫處理模塊的結(jié)構(gòu)如圖1所示。 圖1 TLP寫處理結(jié)構(gòu) 當axis_cq 總線中出現(xiàn)數(shù)據(jù)流傳輸時,應答模塊首先對傳輸?shù)腡LP報頭的類型字段進行解析,如果為存儲器寫請求則由寫處理模塊進一步解析。寫處理模塊提取出TLP 報頭的地址字段、長度字段等,然后將數(shù)據(jù)字段寫入數(shù)據(jù)緩存中。提取出的地址字段用于進行地址映射,在NVMe協(xié)議中,設(shè)備端的請求寫分為兩種,分別是寫完 成隊列和寫數(shù)據(jù),因此地址映射的定向?qū)獮殛犃泄芾砟K的完成條目處理單元和數(shù)據(jù)傳輸AXI總線的寫通道。完成條目的字段長度為128比特,因此無需進行數(shù)據(jù)緩存,跟隨地址映射發(fā)送到隊列管理模塊。AXIMaster驅(qū)動負責將解析的字段與緩存的數(shù)據(jù)組成AXI寫傳輸事務發(fā)送到AXI寫通道,實現(xiàn)數(shù)據(jù)的寫傳輸。 PCIe 讀應答模塊設(shè)計 對于存儲器讀請求TLP,使用Non-Posted方式傳輸,即在接收到讀請求后,不僅要進行處理,還需要通過axis_cc總線返回CplD,這一過程由讀處理模塊執(zhí)行,讀處理模塊的結(jié)構(gòu)如圖2所示。 圖2 TLP讀處理模塊結(jié)構(gòu) 當axis_cq 總線接收到存儲器讀請求時,數(shù)據(jù)流被轉(zhuǎn)發(fā)到讀處理模塊。讀請求TLP只包含128比特的請求報頭,而axis總線位寬也是128比特,因此在短時間內(nèi)可能接收到多個讀請求,為了應對這種情況,讀處理模塊采用了帶有outstanding能力和事務并行處理的結(jié)構(gòu)設(shè)計,能夠有效提高讀請求事務處理效率和數(shù)據(jù)傳輸吞吐量。 首先當讀請求數(shù)據(jù)流到達讀處理模塊時,經(jīng)過解析和地址映射的兩級流水后,放入響應處理單元outstanding 緩存中,響應處理單元從緩存中獲取事務一一處理,將讀取的數(shù)據(jù)打包成CplD,并將CplD放置到發(fā)送緩存中等待axis_cc總線的發(fā)送。根據(jù)地址的不同,讀請求事務被分為三類,分別是讀隊列請求,讀PRP請求和讀數(shù)據(jù)請求,每種請求對應一個響應處理單元。 在實際應用環(huán)境中,由于隊列、PRP、數(shù)據(jù)的存儲往往在不同的位置,因此完成讀取過程的延遲也不同,在本課題中,將隊列管理與PRP都放置在了近PCIe端存儲,因此讀取隊列與PRP的延遲遠遠小于讀取數(shù)據(jù)的延遲。并且當大量不同的讀請求交叉處理時,讀處理模塊的并行處理結(jié)構(gòu)更能夠充分利用PCIe的亂序傳輸能力來提高 吞吐量。為了清晰的說明讀處理模塊對吞吐量的提升,設(shè)置如圖3所示的簡單時序樣例,樣例中PCIeTLP的tag最大為3。 圖3 TLP 讀處理時序圖 在對應圖3中第1、2行時序的低性能處理模式下,同一時間只能處理一個讀事務,并且不帶有outstanding能力,此時從接收到讀請求到成功響應所經(jīng)歷的延遲將會累積,造成axis_cq 請求總線的阻塞。在對應圖中第3、4行時序的僅帶有outstanding 能力的處理模式下,雖然可以連續(xù)接收多個讀請求處理,但同一時間內(nèi)只能處理一個事務,仍會由于較大的處理延遲導致axis總線存在較多的空閑周期,實際的數(shù)據(jù)傳輸效率并不高。在對應圖中第5、6行時序的讀處理模塊處理模式下,利用多個響應處理單元的并行處理能力和發(fā)送緩存,先行處理完成的CplD可以優(yōu)先發(fā)送,緊接著可以處理下一事務,使總線的傳輸效率和吞吐量明顯提高。
    發(fā)表于 05-25 10:20

    NVMe IP高速傳輸卻不依賴便利的XDMA設(shè)計之一

    NVMe IP放棄XDMA原因 選用XDMA做NVMe IP的關(guān)鍵傳輸模塊,可以加速IP的設(shè)計,但是XDMA對于開發(fā)者來說,還是不方便,原因是它就象一個黑匣子,調(diào)試也非一番周折,尤其是后面PCIe4.0升級。因此決定直接采用PCIe設(shè)計,雖然要費一番周折,但是目前看,還是值得的,uvm驗證也更清晰。 PCIe 加速模塊設(shè)計 PCIe 加速模塊負責處理PCIe事務層,并將其與NVMe功能和AXI接口直接綁定。如圖1所示,PCIe加速模塊按照請求發(fā)起方分為請求模塊和應答模塊。請求模塊負責將內(nèi)部請求事務轉(zhuǎn)換為配置管理接口信號或axis請求方請求接口信號(axis_rq),以及解析 axis 請求方完成接口信號(axis_rc);應答模塊負責接收axis完成方請求接口信號(axis_cq),將請求內(nèi)容轉(zhuǎn)換為AXI4接口信號或其它內(nèi)部信號做進一步處理,同時將應答事務通過axis完成方完成接口axis_cc)發(fā)送給PCIE集成塊.圖1PCIe加速模塊結(jié)構(gòu)和連接關(guān)系圖PCIe 加速模塊不僅承擔了TLP與其它接口信號的轉(zhuǎn)換功能,也是降低傳輸延遲增加吞吐量的核心部件。接下來分別對請求模塊和應答模塊的結(jié)構(gòu)設(shè)計進行具體分析。 PCIe 請求模塊設(shè)計 請求模塊的具體任務是將系統(tǒng)的請求轉(zhuǎn)換成為axis接口形式的TLP或配置管理接口信號。這些請求主要包含初始化配置請求和門鈴寫請求。初始化配置請求由初始化模塊發(fā)起,當配置請求的總線號為0時,請求通過Cfg_mgmt接口發(fā)送給PCIE集成塊;當配置請求的總線號不為0時,請求以PCIe配置請求TLP的格式從axis_rq接口發(fā)送到PCIE集成塊,然后由硬核驅(qū)動數(shù)據(jù)鏈路層和物理層通過PCIe接口發(fā)送給下游設(shè)備,下游設(shè)備的反饋通過axis_rc接口以Cpl或CplD的形式傳回。門鈴寫請求由NVMe控制模塊發(fā)起,請求以PCIe存儲器寫請求TLP的格式從axis_rq接口交由PCIE集成塊發(fā)送。由于發(fā)起請求的模塊存在多個,并且在時間順序上初始化模塊先占用請求,NVMe控制模塊后占用請求,不會出現(xiàn)請求的競爭,因此設(shè)置一條內(nèi)部請求總線用于發(fā)起請求和接收響應,該請求總線也作為請求模塊的上游接口。請求模塊的請求總線接口說明如表1所示。無論是配置請求還是門鈴寫請求,請求的數(shù)據(jù)長度都只有一個雙字,因此設(shè)置讀寫數(shù)據(jù)位寬均為32比特。表1請求總線接口在接收到請求總線接口的請求事務后,當請求類型的值為0時,表示通過PCIE集成塊的配置管理接口發(fā)送請求,由于請求接口的接口和時序與配置管理接口基本一致,因此此時直接將請求接口信號驅(qū)動到配置管理接口完成請求的發(fā)送,請求讀數(shù)據(jù)和響應也通過選通器連接到配置管理接口。當請求類型值不為0時,則需要將請求轉(zhuǎn)換為TLP以axis接口形式發(fā)送,這一過程通過請求狀態(tài)機實現(xiàn),請求狀態(tài)機的狀態(tài)轉(zhuǎn)移圖如圖2所示。 圖2PCIe請求狀態(tài)轉(zhuǎn)移圖各狀態(tài)說明如下:IDLE:空閑狀態(tài),復位后的初始狀態(tài)。當請求寫有效或請求讀有效,且請求類型值不為0時,如果請求寫有效跳轉(zhuǎn)到WR_HEAD狀態(tài),如果請求讀有效或讀寫同時有效跳轉(zhuǎn)到RD_HEAD狀態(tài),否則保持IDLE狀態(tài)。實際的上層設(shè)計中讀寫請求不會同時發(fā)生,這里的狀態(tài)跳轉(zhuǎn)條件增加了讀優(yōu)先設(shè)計,從而避免異常情況的出現(xiàn)。WR_HEAD:請求寫TLP頭發(fā)送狀態(tài)。該狀態(tài)下根據(jù)請求類型、請求地址組裝寫請求的TLP報文頭部,并將報文頭部通過axis_rq接口發(fā)送。當axis_rq接口握手時跳轉(zhuǎn)到WR_DATA狀態(tài)。WR_DATA:請求寫TLP數(shù)據(jù)發(fā)送狀態(tài)。該狀態(tài)下將請求寫的數(shù)據(jù)通過axis_rq接口發(fā)送,當axis_rq接口握手時跳轉(zhuǎn)到DONE狀態(tài)。RD_HEAD:請求讀TLP頭發(fā)送狀態(tài)。該狀態(tài)下組裝讀請求TLP報頭通過axis_rq接口發(fā)送,當接口握手時跳轉(zhuǎn)到RD_DATA狀態(tài)。RD_DATA:請求讀CplD接收狀態(tài)。該狀態(tài)下監(jiān)測axis_rc接口信號,當出現(xiàn)數(shù)據(jù)傳輸有效時,啟動握手并接受數(shù)據(jù),然后跳轉(zhuǎn)到DONE狀態(tài)。DONE:請求完成狀態(tài)。該狀態(tài)下使能req_ack請求響應信號,如果是讀請求同時將RD_DATA狀態(tài)下接收的數(shù)據(jù)發(fā)送到req_rdata請求讀數(shù)據(jù)接口。一個時鐘周期后回到IDLE狀態(tài)。
    發(fā)表于 05-24 17:09