国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

這篇具有很好參考價值的文章主要介紹了【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??個人主頁:highman110

??作者簡介:一名硬件工程師,持續(xù)學習,不斷記錄,保持思考,輸出干貨內(nèi)容?

參考書籍:

PCI_Express體系結(jié)構(gòu)導讀、

深入淺出SSD:固態(tài)存儲核心技術(shù)、原理與實戰(zhàn)

目錄

概述

EP的配置空間

switch的配置空間


概述

????????每個PCIe設(shè)備都有這樣一段空間,主機軟件可以通過讀取它獲得該設(shè)備的一些信息,也可以通過它來配置該設(shè)備,這段空間就稱為PCIe的配置空間。不同于每個設(shè)備的其他空間,PCIe設(shè)備的配置空間是協(xié)議規(guī)定好的,哪個地方放什么內(nèi)容,都是有定義的。

????????PCIE設(shè)備的配置空間定義部分從PCI總線繼承,PCIE新增了一個擴展配置寄存器空間,PCI配置空間共256字節(jié),PCIE配置空間共4096字節(jié),如下圖:

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

????????Capacity這個字段先不討論,我們先看一下Header,PCI和PCIE的Header定義是一樣的,和地址路由相關(guān)的信息也在這里。

????????這里包括EP(type0)和switch(type1)兩種配置空間Header定義:

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

EP的配置空間

????????Device ID和Vender ID:設(shè)備ID和供應商ID,這個沒什么好說的,只讀。

????????Command:PCI設(shè)備的命令寄存器,初始化時為0,這時的設(shè)備只能接收配置請求總線事務,不能接收存儲器或IO請求的總線事務。需要軟件設(shè)置該寄存器后,才能訪問該設(shè)備的存儲器或IO空間。寄存器定義如下圖:

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

????????Status:保存PCI設(shè)備的狀態(tài),如下圖:

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

????????Revision ID:設(shè)備版本號,只讀。

????????Class Code:供系統(tǒng)軟件識別當前PCIE設(shè)備的分類,共24bit,分為三個字節(jié):Base class code(bit23:16將設(shè)備分類為顯卡、網(wǎng)卡、橋設(shè)備等類型)、Sub class code(bit15:8進一步細分類)、interface(bit7:0定義編程接口)。

????????Header Type:8bit,只讀,定義如下表:

比特位

定義

7

1:表示當前PCI設(shè)備是多功能設(shè)備

0:表示當前PCI設(shè)備是單功能設(shè)備

6:0

0:表示該設(shè)備使用PCI agent設(shè)備(就是endpoint)的配置空間

1:表示該設(shè)備使用PCI橋設(shè)備(swtich、RC)的配置空間

2:表示該設(shè)備使用cardbus橋片的配置空間

????????Cache line size:記錄Host處理器使用的cache行長度。

????????Latency timer:用來控制PCI設(shè)備占用PCI總線的時間,PCIE不用,改值必須為0。

????????Expansion ROM base address:某些顯卡、硬盤、橋片等設(shè)備,在處理器還沒有運行操作系統(tǒng)之前,就需要完成基本的初始化設(shè)置,就是要自己加載一段firmware給自己初始化,初始化完成了才能跟主機對接。Expansion ROM base address字段就是這段固件代碼存放的基地址。

????????Capabilities pointer:存放capabilities寄存器組的基地址。

????????Interrupt line:記錄當前PCIE設(shè)備使用的中斷向量號。

????????Interrupt pin:用來保存PCI設(shè)備使用的中斷引腳,PCI設(shè)備有INTA#、INTB#、INTC#、INTD#四個中斷引腳,該寄存器為1表示使用INTA#,寄存器為2、3、4依次表示使用INTB#、INTC#、INTD#。PCIE設(shè)備沒有中斷引腳,但是它也可以使用此寄存器,通過INTx中斷消息模擬PCI設(shè)備的INTA#、INTB#、INTC#、INTD#四個中斷信號。

????????Base address register:BAR寄存器,這是本節(jié)的重點。對Endpoint Configuration(Type 0)提供了最多6個BAR,而對Switch(Type 1)來說只有2個。BAR寄存器保存 PCI設(shè)備使用的地址空間的基地址,該基地址保存的是該設(shè)備在PCI總線域中的地址。

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

switch的配置空間

????????一個TLP要到達指定EP,必然會有switch或多端口RC(就是PCI橋設(shè)備)的路由選路過程(如果是一個RC對接一個EP就不需要什么路由了),而路由信息存儲在橋設(shè)備的Configuration空間里,因此,很有必要先理解Switch的Configuration空間,就是前面提到的Type1 header:

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

????????有部分字段和EP type0 header一樣,這里不贅述。但是PCI橋除了作為PCI設(shè)備之外,它還要管理其下連接的其他設(shè)備,這些設(shè)備同樣有配置讀寫、內(nèi)存讀寫、message等總線事務需要處理,所以PCI橋肯定要有一些寄存器來關(guān)聯(lián)到這些設(shè)備的總線號、存儲器空間,不然當一個訪問switch下面EP的TLP報文來到switch時,switch將不知道報文該往哪里轉(zhuǎn)發(fā)。下面大致介紹一下橋設(shè)備的type1 header相關(guān)字段。

????????BAR:功能和EP type0 header一樣,但是對switch來說,不一定會有私有寄存器,也就不需要使用這兩組寄存器設(shè)置BAR空間,這種設(shè)備就是PCI中的透明橋。

????????Primary bus、secondary bus、subordinate bus:這三種bus用張圖來重點解釋下,它們是ID路由尋址的關(guān)鍵寄存器。以PCI-PCI橋1為目標設(shè)備進行介紹。

????????Primary bus:表示一個橋設(shè)備直接相連的上游Bus Number,就是總線0。注意,下圖雖然是PCI的結(jié)構(gòu)圖,但是PCIE的類似,swtich內(nèi)部在邏輯上就是PCI to PCI橋,最上面的HOST主橋,在邏輯上可以等同于RC。

????????Secondary bus:表示一個橋設(shè)備直接相連的下游Bus Number,就是總線1。

????????Subordinate bus:表示這個橋下游最遠、總線號最大的Bus Number,就是總線2,因為圖中總線1下面只掛了一個橋2,如果再增加一個橋3,橋3下面的總線號為3,則此時Subordinate bus number就是3。

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間

????????下面再用一張PCIE結(jié)構(gòu)圖說明:

【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間?

????????對上圖紅框中的端口(注意,這個swtich端口就相當于一個PCI橋設(shè)備,每個端口都有一個Configuration空間,而不是整個switch共一個Configuration空間)來說,與他直接相連的上游總線號為5,也就是其primary bus number為5,與他直接相連的下游總線號為6,也就是其secondary bus number為6,他下面最遠最大的總線號為9,也就是其subordinate bus number為9。

????????Secondary status:記錄secondary bus的狀態(tài)。

????????Status:記錄PCI橋作為PCI設(shè)備時使用的狀態(tài)。

????????Secondary latency timer:管理secondary bus的超時機制,即管理PCI橋發(fā)向下游的總線事務,另一個寄存器latency timer則是管理PCI橋發(fā)向上游的總線事務。

????????I/O limit、I/O base:傳統(tǒng)PCI設(shè)備使用,PCI橋使用這兩個寄存器存放其下PCI子樹中所有設(shè)備使用的I/O地址空間集合的基地址(base)和大?。╨imit)。

????????Memory limit、Memory base:PCI橋使用這兩個寄存器存放其下PCI子樹中所有設(shè)備使用的存儲器地址空間集合的基地址(base)和大小(limit)。對上游端口來說,其Configuration描述的地址范圍是它下游所有設(shè)備的映射空間范圍,而對每個下游端口的Configuration,描述了連接它端口設(shè)備的映射空間范圍。PCI橋規(guī)定這個空間的大小至少為1MB。

????????Prefetchable Memory Limit、Prefetchable Memory Base:存放這些PCI設(shè)備使用的可預取存儲器空間的基地址和大小。關(guān)于PCI預讀機制詳情還有待研究。

????????I/O Base Upper 16 Bits、I/O Limit Upper 16:如果PCI橋僅支持16位的I/O端口,這組寄存器只讀,且其值為0。如果PCI橋支持32位I/O端口,這組寄存器可以提供I/O端口的高16位地址。

????????Bridge Control:該寄存器用來管理PCI橋的Secondary Bus,其主要位的描述如下:

????????Secondary Bus Reset位,第6位,可讀寫。當該位為1時,將使用下游總線提供的 RST#信號復位與PCI橋的下游總線連接的PCI設(shè)備。通常情況下與PCI橋下游總線連接的PCI設(shè)備,其復位信號需要與PCI橋提供的RST#信號連接,而不能與HOST主橋提供的RST#信號連接。

????????Primary Discard Timer位,第8位,可讀寫。PCI橋支持Delayed傳送方式,當PCI橋的Primary總線上的主設(shè)備使用Delayed方式進行數(shù)據(jù)傳遞時,PCI橋使用Retry周期結(jié)束Primary總線的Non-Posted數(shù)據(jù)請求,并將這個Non-Posted數(shù)據(jù)請求轉(zhuǎn)換為Delayed數(shù)據(jù)請求,之后主設(shè)備需要擇時重試相同的Non-Posted數(shù)據(jù)請求。當該位為1時,表示在Primary Bus上的主設(shè)備需要在2^10個時鐘周期之內(nèi)重試這個數(shù)據(jù)請求,為0時,表示主設(shè)備需要在2^15個時鐘周期之內(nèi)重試這個數(shù)據(jù)請求,否則PCI橋?qū)G棄Delayed數(shù)據(jù)請求。

????????Secondary Discard Timer位,第9位,可讀寫。當該位為1時,表示在Secondary Bus上的主設(shè)備需要在2^10個時鐘周期之內(nèi)重試這個數(shù)據(jù)請求,為0時,表示主設(shè)備需要在2^15個時鐘周期之內(nèi)重試這個數(shù)據(jù)請求,如果主設(shè)備在規(guī)定的時間內(nèi)沒有進行重試時,PCI橋?qū)G棄Delayed數(shù)據(jù)請求。具體可參考PCI-to-PCI Bridge Architecture Specification Revision 1.2。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-412970.html

?

?

?

到了這里,關(guān)于【PCIE體系結(jié)構(gòu)五】PCIE配置和地址空間的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 《PCI Express體系結(jié)構(gòu)導讀》隨記 —— 第I篇 第2章 PCI總線的橋與配置(20)

    《PCI Express體系結(jié)構(gòu)導讀》隨記 —— 第I篇 第2章 PCI總線的橋與配置(20)

    接前一篇文章:《PCI Express體系結(jié)構(gòu)導讀》隨記 —— 第I篇 第2章 PCI總線的橋與配置(19) PCI總線定義了兩類配置請求,一個是Type 00h配置請求,另一個是Type 01h配置請求。PCI總線使用這些配置請求訪問PCI總線樹上的設(shè)備配置空間,包括PCI橋和PCI Agent設(shè)備的配置空間。 其中,

    2024年01月21日
    瀏覽(20)
  • 軟件設(shè)計模式與體系結(jié)構(gòu)-軟件體系-層次軟件體系結(jié)構(gòu)

    軟件設(shè)計模式與體系結(jié)構(gòu)-軟件體系-層次軟件體系結(jié)構(gòu)

    層次之間存在接口, 通過接口形成call/return的關(guān)系 ,上層是下層的客戶端 層次系統(tǒng)的基本構(gòu)件: 各層次內(nèi)部包含的構(gòu)件 連接件: 層間的交互協(xié)議 拓撲結(jié)構(gòu): 分層 拓撲約束: 對相鄰層間交互的約束 層次軟件體系結(jié)構(gòu)(Layered Software Architecture)是一種常見的軟件設(shè)計模式,

    2024年02月13日
    瀏覽(90)
  • OSI體系結(jié)構(gòu)和TCP/IP體系結(jié)構(gòu)

    OSI體系結(jié)構(gòu)和TCP/IP體系結(jié)構(gòu)

    ?在第一章(?計網(wǎng)第一章 )的時候,曾經(jīng)提到過OSI體系結(jié)構(gòu)和TCP/IP體系結(jié)構(gòu),并對它們進行了簡單的對比。這篇博客在其基礎(chǔ)上進行更深層次的理解。 計算機網(wǎng)絡(luò)在邏輯功能上可以分為通信子網(wǎng)和資源子網(wǎng)兩部分。 事實上,OSI將低三層稱為通信子網(wǎng),即為了聯(lián)網(wǎng)而附加的通

    2024年02月07日
    瀏覽(91)
  • 【體系結(jié)構(gòu)】山東大學計算機體系結(jié)構(gòu)知識點清單

    【體系結(jié)構(gòu)】山東大學計算機體系結(jié)構(gòu)知識點清單

    涵蓋所有考點,復習絕對高效,點贊+留郵箱獲取pdf版本 1. 計算機系統(tǒng)的層次結(jié)構(gòu) 語言實現(xiàn)的兩種基本技術(shù): 翻譯:先把 N+1 級程序全部轉(zhuǎn)換成 N 級程序后,再去執(zhí)行新產(chǎn)生的 N 級程序,在執(zhí)行過程中 N+1 級程序不再被訪問。 解釋:每當一條 N+1 級指令被譯碼后,就直接去執(zhí)

    2024年02月11日
    瀏覽(133)
  • 計算機網(wǎng)絡(luò)七層體系結(jié)構(gòu)(OSI七層結(jié)構(gòu))、TCP/IP四層模型、網(wǎng)絡(luò)五層體系結(jié)構(gòu)

    計算機網(wǎng)絡(luò)七層體系結(jié)構(gòu)(OSI七層結(jié)構(gòu))、TCP/IP四層模型、網(wǎng)絡(luò)五層體系結(jié)構(gòu)

    計算機網(wǎng)絡(luò)七層體系結(jié)構(gòu)(OSI七層結(jié)構(gòu))、TCP/IP四層模型、網(wǎng)絡(luò)五層體系結(jié)構(gòu) 七層體系結(jié)構(gòu)(OSI七層結(jié)構(gòu)) :為了使全世界不同體系結(jié)構(gòu)的計算機能夠互聯(lián),國際化標準組織ISO提出開放系統(tǒng)互聯(lián)基本參考模型,簡稱OSI,即所謂的7層協(xié)議體系結(jié)構(gòu)。 TCP/IP四層模型 :是由實際

    2024年02月06日
    瀏覽(98)
  • 計算機網(wǎng)絡(luò)——計算機網(wǎng)絡(luò)體系結(jié)構(gòu)(2/4)-分層的必要性(五層協(xié)議原理體系結(jié)構(gòu))

    計算機網(wǎng)絡(luò)——計算機網(wǎng)絡(luò)體系結(jié)構(gòu)(2/4)-分層的必要性(五層協(xié)議原理體系結(jié)構(gòu))

    目錄 物理層 數(shù)據(jù)鏈路層 網(wǎng)絡(luò)層 運輸層 應用層 計算機網(wǎng)絡(luò)是個非常復雜的系統(tǒng)。 早在最初的ARPANET設(shè)計時就提出了分層的設(shè)計理念。 \\\"分層\\\"可將龐大而復雜的問題,轉(zhuǎn)化為若干較小的局部問題,而這些較小的局部問題就比較易于研究和處理。 下面,我們以五層原理結(jié)構(gòu)體系

    2024年02月07日
    瀏覽(34)
  • 了解 PostgreSQL 體系結(jié)構(gòu)

    PostgreSQL 是客戶端/服務器關(guān)系數(shù)據(jù)庫管理系統(tǒng) (RDMS)。 PostgreSQL 還支持各種擴展插件,例如 Azure Database for PostgreSQL 超大規(guī)模 Citus 選項中的 Citus 擴展插件。 將擴展插件加載到數(shù)據(jù)庫中后,它將像任何內(nèi)置功能一樣正常運行。 PostgreSQL 也有自己的查詢語言,稱為 pgsql。 此外,

    2024年02月16日
    瀏覽(28)
  • 計算機體系結(jié)構(gòu)

    計算機體系結(jié)構(gòu)

    目錄 第一章 基本概念 1.虛擬計算機 2.計算機系統(tǒng)結(jié)構(gòu)的定義 3.佛林(Flynn)分類法 4.Amdahl定律 5.CPU性能公式 6.程序訪問的局部性原理 第二章 指令系統(tǒng) 1.數(shù)據(jù)表示與數(shù)據(jù)類型 2.浮點數(shù)的表示方式 3.編址方式 4.尋址方式 5.指令系統(tǒng)的優(yōu)化設(shè)計? 6.Huffman編碼法 7.拓展編碼 8.兩種方

    2024年02月06日
    瀏覽(27)
  • JVM 體系結(jié)構(gòu)

    JVM 體系結(jié)構(gòu)

    JVM: 跨平臺語言 需要不同語言由自己編譯器,生成符合 JSR-292 JVM規(guī)范的字節(jié)碼文件,即可在 Java 虛擬機中運行 ?多語言混合編程: Java 平臺上的多語言混合編程正成為主流,通過特定領(lǐng)域的語言去解決特定領(lǐng)域的問題是當前軟件開發(fā)應對日趨復雜的項目需求的一個方向 每個應

    2024年02月03日
    瀏覽(51)
  • Spring的體系結(jié)構(gòu)

    Spring的體系結(jié)構(gòu)

    【Spring技術(shù)】Spring的體系結(jié)構(gòu) 【Spring技術(shù)】Spring之IOC和DI入門案例 【Spring技術(shù)】Spring之Bean的配置與實例 【Spring技術(shù)】Spring依賴注入(DI配置) 【Spring技術(shù)】Spring第三方資源配置管理 【Spring技術(shù)】Spring容器技術(shù) 【Spring技術(shù)】Spring注解開發(fā) 【Spring技術(shù)】Spring整合MybatisJunit單元測

    2023年04月22日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包