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

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

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

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

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

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

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

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

· Prefetchable Memory Space(P-MMIO)

· Non- Prefetchable Memory Space(NP-MMIO)

· IO Space(IO)

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

下面以一個(gè)簡(jiǎn)單的例子,來(lái)分析一下:

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

P-MMIO Base & Limit

NP-MMIO Base & Limit

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

IO Base & Limit

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

Unused Base and Limit Registers

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

注:Mindshare的書這個(gè)地方似乎寫錯(cuò)了,以PCIe Spec為準(zhǔn)。

一個(gè)完整的例子如下圖所示:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)注

    31

    文章

    5295

    瀏覽量

    119824
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1200

    瀏覽量

    82353

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

文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    解析CPU寄存器

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

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

    之所以要講解這部分知識(shí),是因?yàn)榻?jīng)常會(huì)遇到客戶提到不明白MDK那些結(jié)構(gòu)體是怎么與寄存器地址對(duì)應(yīng)起來(lái)的。這里我們就做個(gè)簡(jiǎn)要的分析吧。 首先我們看看51
    發(fā)表于 01-26 14:39

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

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

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

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

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

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

    寄存器培訓(xùn)教程

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

    ARM處理寄存器基本知識(shí)詳解

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

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

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

    寄存器操作方法_對(duì)寄存器操作的通用方法總結(jié)

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

    寄存器的特性和四大種類

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

    芯片與寄存器

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

    微機(jī)原理筆記——x86寄存器

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

    CS,IP和PC寄存器

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

    如何在VHDL實(shí)現(xiàn)個(gè)簡(jiǎn)單的寄存器

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

    寄存器故障分析

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