NVMe高速傳輸之擺脫XDMA設計21:PCIe請求模塊設計(下)


在接收到請求總線接口的請求事務后,當請求類型的值為0時,表示通過PCIE硬核的配置管理接口發送請求,由于請求接口的接口和時序與配置管理接口基本一致,因此此時直接將請求接口信號驅動到配置管理接口完成請求的發送,請求讀數據和響應也通過選通器連接到配置管理接口。當請求類型值不為0時,則需要將請求轉換為TLP以axis接口形式發送,這一過程通過請求狀態機實現,請求狀態機的狀態轉移圖如圖1所示。各狀態說明如下:

PCIe請求狀態轉移圖

IDLE:空閑狀態,復位后的初始狀態。當請求寫有效或請求讀有效,且請求類型值不為0時,如果請求寫有效跳轉到WR_HEAD狀態,如果請求讀有效或讀寫同時有效跳轉到RD_HEAD狀態,否則保持IDLE狀態。實際的上層設計中讀寫請求不會同時發生,這里的狀態跳轉條件增加了讀優先設計,從而避免異常情況的出現。

WR_HEAD:請求寫TLP頭發送狀態。該狀態下根據請求類型、請求地址組裝寫請求的TLP報頭,并將報頭通過axis_rq接口發送。當axis_rq接口握手時跳轉到WR_DATA狀態。

WR_DATA:請求寫TLP數據發送狀態。該狀態下將請求寫的數據通過axis_rq接口發送,當axis_rq接口握手時跳轉到DONE狀態。

RD_HEAD:請求讀TLP頭發送狀態。該狀態下組裝讀請求TLP報頭通過axis_rq接口發送,當接口握手時跳轉到RD_DATA狀態。

RD_DATA:請求讀CPLD接收狀態。該狀態下監測axis_rc接口信號,當出現數據傳輸有效時,啟動握手并接受數據,然后跳轉到DONE狀態。

DONE:請求完成狀態。該狀態下使能req_ack請求響應信號,如果是讀請求同時將RD_DATA狀態下接收的數據發送到req_rdata請求讀數據接口。一個時鐘周期后回到IDLE狀態。

B站已給出相關性能的視頻,如想進一步了解,請搜索B站用戶:專注與守望
鏈接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click

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

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

相關文章

機器學習sklearn:不純度與決策樹構建

不純度與決策樹構建不純度概念:決策樹通過不純度指標來選擇最佳分割節點和分枝方式不純度衡量節點中樣本類別的混雜程度不純度越低,節點中樣本類別越純凈,擬合效果越好常用不純度指標:信息熵(Entropy):基于信息論的概念…

rk356x IR紅外發射與接收之NEC協議

紅外接收紅外接收頭解碼器(紅外信號解碼,主要是NEC解碼)紅外發射器紅外發光二極管晶振NEC編碼組成共32位(4bit):由8位用戶碼1 8位用戶碼2 8位命令碼 8位命令碼反碼有時會存在按鍵一直按下的一幀信息&…

C++算法之單調棧

C算法中的單調棧:從入門到實戰指南 大家好!今天我們來聊聊C算法中一個超級實用的工具——單調棧。別被名字嚇到,它其實很簡單,就像排隊買奶茶一樣:隊伍總是從矮到高(或從高到矮)排得整整齊齊&a…

React入門指南——指北指南(第二節)

React 實踐:創建你的第一個待辦事項列表 在前面的章節中,我們學習了 React 的核心概念(組件、Props、State 等)。本節將通過一個實際案例——創建待辦事項列表(Todo List),幫助你鞏固這些概念,并掌握 React 中處理用戶交互、動態數據的基本方法。 案例目標 我們將構…

WAIC看點:可交付AI登場,場景智能、專屬知識將兌現下一代AI價值

7月28日,為期三天的2025世界人工智能大會(WAIC 2025)在上海落下帷幕。作為全球 AI 領域最受關注的盛會之一,今年 WAIC 聚焦 AI 關鍵命題,圍繞大模型與智能體應用、算力新基建及大數據、智能終端與具身智能、AI金融、AI…

設計模式(十一)結構型:外觀模式詳解

設計模式(十一)結構型:外觀模式詳解外觀模式(Facade Pattern)是 GoF 23 種設計模式中的結構型模式之一,其核心價值在于為一個復雜的子系統提供一個統一、簡化的高層接口,從而降低客戶端與子系統…

接口測試核心概念與實踐指南

核心概念什么是接口?軟件不同部分之間進行通信和數據交換的約定或契約。定義了:請求方 (Client/Consumer) 如何調用(方法、URL、參數)。提供方 (Server/Provider) 如何響應(數據結構、狀態碼)。雙方需要遵循…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 熱詞數量分析日期統計功能實現

大家好,我是java1234_小鋒老師,最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程,持續更新中,計劃月底更新完,感謝支持。今天講解熱詞數量分析日期統計功能實現 視頻在線地…

ICPC 2024 網絡賽(I)

M. Find the Easiest Problem 題目大意 給定所有的提交記錄&#xff0c;找到通過隊伍最多且字典序最小的題目。 解題思路 按題意模擬即可 代碼實現 #include <bits/stdc.h>using i64 long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std…

【快捷指令】ios/macos快捷指令如何調用api接口(json請求例子)

一、步驟 之前已經寫了一個【n8n】使用 n8n 創建插入數據到mysql的api&#xff08;圖解步驟&#xff09;博客,感興趣的可以看一下. 流程&#xff1a; 快捷指令調用api—開源工作流n8n上設置個快速寫數據庫的工作流 這樣就實現了記錄體重的一個快捷指令 二、步驟說明 1、…

「源力覺醒 創作者計劃」_文心大模型4.5系列開源模型,意味著什么?對開發者、對行業生態有何影響?

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄「源力…

CanMV-K230 AI學習筆記系列

在學習了一段時間CanMV-K230后&#xff0c;感覺雖然可以直接調用復雜的模型&#xff0c;但是很多環節不是很明白&#xff0c;因此希望能夠從基礎的模型開始逐漸深入學習。 下面為已經完成的一些筆記及計劃&#xff1a; 1 CanMV K230使用經驗分享 這個是剛開始學習K230時&#…

EtherCAT IGH別名(Alias)

EtherCAT 中的 Alias 是一個 16 位的數值&#xff0c;用于在拓撲結構中唯一標識從站&#xff08;除 Position 外的輔助定位方式&#xff09;IGH查看別名 “0:0”, 第一個0是別名(alias)&#xff0c;后面是位置(position) sudo ethercat slave -p 0 0 0:0 PREOP SV660_1Axi…

墨者:通過sqlmap解決SQL手工注入漏洞測試(PostgreSQL數據庫)

使用Kali Linux中的sqlmap工具進行PostgreSQL手工注入漏洞測試實戰 前言 SQL注入是Web安全中最常見的漏洞之一。本文將演示如何使用Kali Linux中的sqlmap工具對PostgreSQL數據庫進行手工注入測試&#xff0c;通過實戰案例幫助安全研究人員更好地理解漏洞原理和測試方法。 測…

Linux筆記5——常用命令-4

幫助命令man 命令&#xff08;查看命令的幫助&#xff09;注&#xff1a;C7版本中有中文解釋例&#xff1a;man lsman -f 命令 #查看命令有哪些級別的幫助&#xff0c;使用前要執行mandb生成man緩存信息&#xff0c;否則命令執行不成功man級別1.查看命令的幫助3.查看函數…

優化Linux高并發:文件描述符與端口范圍的協同調優

既然已經通過調整nofile&#xff08;最大文件描述符數量&#xff09;來支持高并發&#xff0c;為什么還需要調整net.ipv4.ip_local_port_range&#xff08;本地端口范圍&#xff09;&#xff1f;這兩個參數看似都與高并發有關&#xff0c;但它們的作用和影響范圍不同。 1. 文件…

.NET-鍵控服務依賴注入

有時候我們在服務注冊的時候會遇到這樣一個場景&#xff0c;我們的同一個接口&#xff0c;有著多個實現&#xff0c;且我們還要同時使用這些實現的時候&#xff0c;這個時候該怎么辦&#xff1f;我們可以使用鍵控服務依賴注入 鍵控服務依賴注入&#xff08;Keyed Dependency In…

VTK交互——ImageClip

概要 這段代碼https://examples.vtk.org/site/Cxx/Interaction/ImageClip/實現了一個交互式圖像裁剪工具,使用VTK庫創建了一個雙窗口界面,左側顯示原始圖像,右側顯示裁剪后的圖像。用戶可以通過拖動邊框小部件在左側圖像上選擇裁剪區域,右側窗口會實時顯示裁剪結果。 代…

【vue vapor jsx 未雨綢繆】

隨著vue3.6.0 alpha的發布&#xff0c;vapor mode進入正式版本只是時間上的問題&#xff0c;可以預見的是各個組件庫都將積極適配vapor&#xff0c;這篇文章主要側重vue中使用jsx而非SFC&#xff0c;所以不涉及template相關。目前vue官方也是提供了vue-jsx-vapor這個倉庫&#…

go語言數據結構與排序算法

package mainimport "fmt"func main() {Bubble_Sort()Select_Sort()Insert_Sort()Shell_Sort()Heap_Sort()Merge_Sort()Quick_Sort() }一、1、冒泡排序 // 冒泡排序 func Bubble_Sort() {str : []int{9, 1, 5, 8, 3, 7, 4, 6, 2}// 正向冒泡for i : 0; i < len(st…