0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取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寄存器来实现的,这篇文章来进行简单地介绍一下。

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

Base和Limit寄存器分别确定了其所有分支下设备(The device that live beneath this bridge)的地址的起始和结束地址。根据请求类型的不同,分别对应不同的Limit&Base组合:

· Prefetchable Memory Space(P-MMIO)

· Non- Prefetchable Memory Space(NP-MMIO)

· IO Space(IO)

一旦该桥分支下面的任意设备的BAR发生改变,该桥的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,最大值则取决于操作系统和BIOS

Unused Base and Limit Registers

很多情况下,我们并不需要所有的地址空间类型,比如所在某一个Endpoint中没有使用IO Space。此时,其对应的桥的Header会把Base的地址设置为大于Limit的地址,也就是把地址范围设置为无效。

注:Mindshare的书这个地方似乎写错了,以PCIe Spec为准。

一个完整的例子如下图所示:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120297
  • PCIe
    +关注

    关注

    15

    文章

    1237

    浏览量

    82620

原文标题:【博文连载】PCIe扫盲——Base & Limit寄存器详解

文章出处:【微信号:ChinaAET,微信公众号:电子威廉希尔官方网站 应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    解析CPU寄存器

    8位寄存器在16位寄存器,而16位寄存器在32位寄存器
    发表于 09-19 10:10 4129次阅读

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

    之所以要讲解这部分知识,是因为经常会遇到客户提到不明白MDK那些结构体是怎么与寄存器地址对应起来的。这里我们就做个简要的分析吧。 首先我们看看51
    发表于 01-26 14:39

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

    寄存器地址映像表可以查到。 那么在结构体里面这些寄存器又是怎么与地址一一对应的呢?这里涉及到结构体成员变量地址对齐方式方面的知识,这方面的知识大家可以在网上查看相关资料复习一下,这
    发表于 04-17 11:51

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

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理内的组成部分。寄存器是有限存贮容量
    发表于 03-08 14:26 2.2w次阅读

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

    数据寄存器,数据寄存器是什么意思 数据寄存器数据寄存器包括累加AX、基址寄存器BX、计数
    发表于 03-08 14:38 1.3w次阅读

    寄存器培训教程

    寄存器培训教程 7.4.1 寄存器1.定义2.电路举例 3.逻辑功能分析7.4.2 移位寄存器、单向移位
    发表于 03-08 14:52 1242次阅读

    ARM处理寄存器基本知识详解

    ARM处理在每种处理模式均有组相应的寄存器与之对应。即在任意
    的头像 发表于 12-11 11:48 1.7w次阅读
    ARM处理<b class='flag-5'>器</b><b class='flag-5'>中</b>的<b class='flag-5'>寄存器</b>基本知识详解

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

    移位寄存器个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用依次左移或右移。本文主要介绍了移位
    发表于 12-22 15:49 2w次阅读

    寄存器操作方法_对寄存器操作的通用方法总结

    本文主要详解寄存器操作方法以及对寄存器操作的通用方法总结,具体的跟随小编来了解一下
    的头像 发表于 05-22 15:53 2.3w次阅读

    寄存器的特性和四大种类

    寄存器是由触发组成的,个触发寄存器
    的头像 发表于 06-19 16:44 1.9w次阅读
    <b class='flag-5'>寄存器</b>的特性和四大种类

    芯片与寄存器

    先回顾一下我们以前操作过得寄存器:这是段51单片机初始化定时的代码void TIME_Init(){ TMOD = 0x11; TL0 = 0;
    发表于 11-23 16:21 50次下载
    芯片与<b class='flag-5'>寄存器</b>

    微机原理笔记——x86寄存器

    8086 CPU寄存器总共为14个,且均为16位。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。而这 14 个寄存器按照
    发表于 12-08 18:21 7次下载
    微机原理笔记——x86<b class='flag-5'>寄存器</b>

    CS,IP和PC寄存器

    CS寄存器和IP寄存器:首先强调一下,这两个寄存器非常非常重要,CS的全拼为“Code segment”,即代码段寄存器,对应于内存
    发表于 12-17 18:31 2次下载
    CS,IP和PC<b class='flag-5'>寄存器</b>

    如何在VHDL实现个简单的寄存器

    存储的位数上有所不同,具体取决于系统的配置。在本教程,我们将学习如何在 VHDL 实现个简单的寄存器
    发表于 07-29 16:48 4636次阅读
    如何在VHDL<b class='flag-5'>中</b>实现<b class='flag-5'>一</b>个简单的<b class='flag-5'>寄存器</b>

    寄存器故障分析

    寄存器故障分析是计算机硬件维护与系统稳定性保障的重要环节。寄存器作为计算机的关键组成部分,负责存储和传输数据,其稳定性和可靠性直接影响到
    的头像 发表于 08-29 11:26 996次阅读