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

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

3天內不再提示

分析一下PortB的Header中的Base & Limit寄存器

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-05-11 09:42 ? 次閱讀

上一篇文章介紹了Type0型配置空間Header中的BAR的作用和用法,但是PCIe中的橋設備(Switch和Root中的P2P)又是如何判斷某一請求(Request)是否屬于自己或者自己的分支下的設備的呢?這實際上是通過Type1型配置空間Header中的Base和Limit寄存器來實現(xiàn)的,這篇文章來進行簡單地介紹一下。

Base和Limit寄存器在Type1 Header中的位置如下圖所示:

Base和Limit寄存器分別確定了其所有分支下設備(The device that live beneath this bridge)的地址的起始和結束地址。根據(jù)請求類型的不同,分別對應不同的Limit&Base組合:

· Prefetchable Memory Space(P-MMIO)

· Non- Prefetchable Memory Space(NP-MMIO)

· IO Space(IO)

一旦該橋分支下面的任意設備的BAR發(fā)生改變,該橋的Base&Limit寄存器也需要做出對應的改變。

下面以一個簡單的例子,來分析一下:

如上圖所示,連接到Switch的PortB上的PCIe Endpoint分別配置了NP-MMIO、P-MMIO和IO空間。下面來簡單地分析一下PortB的Header中的Base & Limit 寄存器。

P-MMIO Base & Limit

NP-MMIO Base & Limit

需要注意的是,Endpoint的需要的NP-MMIO的大小明明只有4KB,PortB的Header卻給其1MB的空間(最小1MB),也就是說剩余的空間都將會被浪費掉,并且其他的Endpoint都將無法使用這一空間。

IO Base & Limit

注:IO空間可分配的最小值為4KB,最大值則取決于操作系統(tǒng)和BIOS

Unused Base and Limit Registers

很多情況下,我們并不需要所有的地址空間類型,比如所在某一個Endpoint中沒有使用IO Space。此時,其對應的橋的Header會把Base的地址設置為大于Limit的地址,也就是把地址范圍設置為無效。

注:Mindshare的書這個地方似乎寫錯了,以PCIe Spec為準。

一個完整的例子如下圖所示:

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

    關注

    31

    文章

    5275

    瀏覽量

    119678
  • PCIe
    +關注

    關注

    15

    文章

    1176

    瀏覽量

    82267

原文標題:【博文連載】PCIe掃盲——Base & Limit寄存器詳解

文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    解析CPU寄存器

    8位寄存器在16位寄存器,而16位寄存器在32位寄存器。
    發(fā)表于 09-19 10:10 ?3814次閱讀

    MDK寄存器地址名稱映射分析

    之所以要講解這部分知識,是因為經(jīng)常會遇到客戶提到不明白MDK那些結構體是怎么與寄存器地址對應起來的。這里我們就做個簡要的分析吧。 首先我們看看51
    發(fā)表于 01-26 14:39

    MDK寄存器地址名稱映射分析

    寄存器地址映像表可以查到。 那么在結構體里面這些寄存器又是怎么與地址一一對應的呢?這里涉及到結構體成員變量地址對齊方式方面的知識,這方面的知識大家可以在網(wǎng)上查看相關資料復習一下,這
    發(fā)表于 04-17 11:51

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計數(shù)
    發(fā)表于 03-08 14:38 ?1.2w次閱讀

    寄存器培訓教程

    寄存器培訓教程 7.4.1 寄存器1.定義2.電路舉例 3.邏輯功能分析7.4.2 移位寄存器、單向移位
    發(fā)表于 03-08 14:52 ?1226次閱讀

    ARM處理寄存器基本知識詳解

    ARM處理在每種處理模式均有組相應的寄存器與之對應。即在任意
    的頭像 發(fā)表于 12-11 11:48 ?1.7w次閱讀
    ARM處理<b class='flag-5'>器</b><b class='flag-5'>中</b>的<b class='flag-5'>寄存器</b>基本知識詳解

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器個具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用依次左移或右移。本文主要介紹了移位
    發(fā)表于 12-22 15:49 ?2w次閱讀

    寄存器操作方法_對寄存器操作的通用方法總結

    本文主要詳解寄存器操作方法以及對寄存器操作的通用方法總結,具體的跟隨小編來了解一下。
    的頭像 發(fā)表于 05-22 15:53 ?2.2w次閱讀

    寄存器的特性和四大種類

    寄存器是由觸發(fā)組成的,個觸發(fā)寄存器
    的頭像 發(fā)表于 06-19 16:44 ?1.9w次閱讀
    <b class='flag-5'>寄存器</b>的特性和四大種類

    芯片與寄存器

    先回顧一下我們以前操作過得寄存器:這是段51單片機初始化定時的代碼void TIME_Init(){ TMOD = 0x11; TL0 = 0;
    發(fā)表于 11-23 16:21 ?50次下載
    芯片與<b class='flag-5'>寄存器</b>

    微機原理筆記——x86寄存器

    8086 CPU寄存器總共為14個,且均為16位。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,F(xiàn)LAG,CS,DS,SS,ES 共 14 個。而這 14 個寄存器按照
    發(fā)表于 12-08 18:21 ?7次下載
    微機原理筆記——x86<b class='flag-5'>寄存器</b>

    CS,IP和PC寄存器

    CS寄存器和IP寄存器:首先強調一下,這兩個寄存器非常非常重要,CS的全拼為“Code segment”,即代碼段寄存器,對應于內存
    發(fā)表于 12-17 18:31 ?2次下載
    CS,IP和PC<b class='flag-5'>寄存器</b>

    如何在VHDL實現(xiàn)個簡單的寄存器

    存儲的位數(shù)上有所不同,具體取決于系統(tǒng)的配置。在本教程,我們將學習如何在 VHDL 實現(xiàn)個簡單的寄存器
    發(fā)表于 07-29 16:48 ?4463次閱讀
    如何在VHDL<b class='flag-5'>中</b>實現(xiàn)<b class='flag-5'>一</b>個簡單的<b class='flag-5'>寄存器</b>

    寄存器故障分析

    寄存器故障分析是計算機硬件維護與系統(tǒng)穩(wěn)定性保障的重要環(huán)節(jié)。寄存器作為計算機的關鍵組成部分,負責存儲和傳輸數(shù)據(jù),其穩(wěn)定性和可靠性直接影響到
    的頭像 發(fā)表于 08-29 11:26 ?563次閱讀