91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

PWIL:不依賴對(duì)抗性的新型模擬學(xué)習(xí)

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

原始 Wasserstein 模仿學(xué)習(xí)
https://arxiv.org/pdf/2006.04678.pdf

MuJoCo 任務(wù)套件
https://gym.openai.com/envs/#mujoco

左圖:使用任務(wù)的真實(shí)獎(jiǎng)勵(lì)(與速度有關(guān))訓(xùn)練的算法類(lèi)人機(jī)器人“專家”;右圖:使用 PWIL 基于專家演示訓(xùn)練的智能體

對(duì)抗模仿學(xué)習(xí)

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

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

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

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

PWIL 方法

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

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

PWIL 在類(lèi)人機(jī)器人上的訓(xùn)練曲線:綠色表示與專家狀態(tài)-動(dòng)作分布的 Wasserstein 距離;藍(lán)色表示智能體的回報(bào)(所收集獎(jiǎng)勵(lì)的總和)

類(lèi)人機(jī)器人
https://gym.openai.com/envs/Humanoid-v2/

衡量真實(shí)模仿學(xué)習(xí)環(huán)境的相似度

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

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

結(jié)論

在交互成本較高的環(huán)境(例如,真實(shí)的機(jī)器人或復(fù)雜的模擬器)中,PWIL 可以作為首選方案,不僅因?yàn)樗梢赃€原專家的行為,還因?yàn)樗x的獎(jiǎng)勵(lì)函數(shù)易于調(diào)整,且無(wú)需與環(huán)境交互即可定義。

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

責(zé)任編輯:lq

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

    關(guān)注

    2

    文章

    1010

    瀏覽量

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

    關(guān)注

    1

    文章

    476

    瀏覽量

    11604
  • 強(qiáng)化學(xué)習(xí)

    關(guān)注

    4

    文章

    270

    瀏覽量

    11967

原文標(biāo)題:PWIL:不依賴對(duì)抗性的新型模擬學(xué)習(xí)

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    在“放開(kāi)”與“限制”的夾縫中:構(gòu)建不依賴“地點(diǎn)”的芯片出廠能力

    地緣政治與市場(chǎng)力量重塑半導(dǎo)體供應(yīng)鏈,構(gòu)建不依賴特定地點(diǎn)的芯片出廠能力成為生存必需,“地理彈性” 成核心競(jìng)爭(zhēng)力。其面臨流程標(biāo)準(zhǔn)統(tǒng)一、數(shù)據(jù)全球貫通、工程無(wú)時(shí)差協(xié)同三大挑戰(zhàn)。解決方案為打造 “全球質(zhì)量網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-11 16:52 ?576次閱讀

    請(qǐng)問(wèn)OTA是否一定依賴于ymodem協(xié)議?

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

    太陽(yáng)光模擬器 | 光輻射測(cè)量的基礎(chǔ)知識(shí)

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

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

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

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

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

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

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

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

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

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

    DMA 控制單元負(fù)責(zé)控制 DMA 傳輸事務(wù), 該單元承擔(dān)了 DMA 事務(wù)到 NVMe 事務(wù)的轉(zhuǎn)換任務(wù), 使用戶對(duì)數(shù)據(jù)傳輸事務(wù)的控制更加簡(jiǎn)單快捷。 DMA 控制功能由 DMA寄存器組實(shí)現(xiàn)。DMA 寄存器組包含 DMA 操作寄存器、 DMA 長(zhǎng)度寄存器、 DMA 源目的地址寄存器和 DMA 狀態(tài)寄存器。 DMA 操作寄存器定義了 DMA 請(qǐng)求類(lèi)型, 包括寫(xiě)和讀操作; DMA 長(zhǎng)度寄存器定義了 DMA 請(qǐng)求的數(shù)據(jù)傳輸長(zhǎng)度, 該長(zhǎng)度以 NVMe 設(shè)備邏輯塊大小為單位; DMA 源地址和 DMA 目的地址寄存器定義了 DMA 請(qǐng)求的源數(shù)據(jù)存放的起始地址和數(shù)據(jù)傳輸?shù)哪康牡刂罚?DMA 狀態(tài)寄存器定義了當(dāng)前待運(yùn)行的 DMA請(qǐng)求數(shù)量和 DMA 請(qǐng)求執(zhí)行狀態(tài)信息。 DMA 寄存器組定義如表 1 所示, 其中 DMA狀態(tài)寄存器定義如表 2 所示。表 1 DMA 寄存器組定義 表 2 DMA狀態(tài)寄存器定義想進(jìn)一步了解相關(guān)視頻,請(qǐng)搜索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è)計(jì)之四:系統(tǒng)控制模塊

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

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

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

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

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

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

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

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

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

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

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

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

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