如何识别PCI/PCIE设备需要申请多大的地址空间?

1、PCI/PCIE设备的配置空间

(1)PCI/PCIE设备需要的资源都在配置空间里进行指定,其中需要的地址空间资源在配置空间的基地址寄存器里指定;
(2)参考博客:《PCI设备和PCI桥的配置空间(header_type0、header_type1)和配置命令(type0、type1)详解》;

2、PCI/PCIE的host计算出设备要申请的地址资源

2.1、读取设备基地址寄存器

在这里插入图片描述

(1)桥设备的配置空间也有2个基地址寄存器,非桥设备有6个基地址寄存器;
(2)基地址寄存器的位图含义如上,首先读出基地址寄存器的值,bit0是只读的,bit0是0代码申请内存空间地址,bit0是1表示申请I/O空间地址;
(3)如果是申请内存空间地址,则高28位是可以配置的,低4位表示固定的含义;如果是申请I/O空间地址,则高30位是可以配置的;

2.2、计算需要申请地址空间大小

(1)首先读出基地址寄存器的值,判断是要申请内存地址还是I/O地址;
(2)将0xFFFFFFFF写到基地址寄存器中,然后再读取出来;
(3)判断读取出来的值,高位有多少个1。因为有些bit位是只读的,所以不会被写成1;
(4)计算出需要分配的地址空间大小,将分配给设备的PCIE地址空间的基地址写到基地址寄存器;

2.3、举例

在这里插入图片描述

(1)读取出基地址寄存器的值,知道设备要申请内存地址空间;
(2)将0xFFFFFFFF写进基地址寄存器,再读取出来;
(3)从高位到低位依次判断读取出来的值,高12bit是1;
(4)则设备需要申请的内存地址空间是2的20次方,也就是1M空间;
(5)在PCIE地址空间中申请1M大小的地址,将首地址写到基地址寄存器中;
补充:将基地址寄存器全部位写1,但是基地址寄存器有的位是只读的并且默认是0,所以可以通过先写全1再读取的方式来计算需要申请的地址空间大小;

3、内存地址空间和I/O地址空间区别

内存地址空间:
(1)内存地址空间是可以支持预取和合并的;
(2)内存是你写1读出来就是1,不会自己改变;
I/O地址空间:
(1)I/O地址,更多的是反馈外部的状态,比如读取gpio引脚,这个引脚的高低状态是外部设备决定的,可以通过读取gpio引脚电平来得知外设状态;
(2)I/O地址是不支持预取和合并的。比如:要根据时序来先拉高再拉低,不能将两个动作合并成一个动作,只做最后拉低的动作;

4、内核中pcie的HOST驱动对地址分配的优化

(1)内核的PCIE控制器驱动程序,会扫描完挂载的所有设备,计算出每个设备需要的地址空间;
(2)因为申请的地址空间是需要对齐的,为了避免地址空间浪费,需要对地址空间分配的先后顺序进行排序,基本原则:先分配比较大的地址空间,再分配小的地址空间;
(3)比如现在要分配三个地址空间:1M、4K、2M。其中地址都有对齐要求,2M大小的地址空间要求首地址2M对齐,1M大小的地址空间要求首地址1M对齐,4K大小的地址空间要求首地址4K对齐。最优的分配顺序:先分配2M,再分配1M,最后分配4K,这样能最大程度避免因为地址对齐带来的地址空间的浪费;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1618202.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

4.21 用了 TCP 协议,数据一定不会丢吗?

目录 数据包的发送流程: 建立连接时丢包 流量控制丢包 网卡丢包 RingBuffer过小导致丢包 网卡性能不足 接收缓冲区丢包 两端之间的网络丢包 ping命令查看丢包: mtr命令: 发生丢包了怎么办 用了TCP协议就一定不会丢包吗​编辑 这类丢包问题怎…

c++中的基本类型

专栏简介:为什么我要重新介绍c的相关知识,在此之前,我对于c的了解也仅仅是在表面。而在后来与c慢慢的接触中,c编程语言越来越让我觉得深奥,所以还是想要重新开创一个专栏来介绍c。对于c的介绍,本专栏会先介…

DTC状态变化例子 4

例子1: 此示例概述了两个操作周期排放相关的 OBD DTC 中 DTC 状态位的操作。该图显示了两个操作周期排放相关的 OBD DTC 的处理。该处理也可应用于非排放相关的 OBD DTC,此处显示仅供一般参考。 0 接收到清除诊断信息 → DTC 状态字节初始化。 1, 2 相关…

CPU深度解析

操作系统课程 计算机组成 ALU:计算单元(运算器)PC:pc寄存器存执行指令Registers:寄存器存数据MMU:控制器程序的构成:指令+数据 总线:一个程序读入内存,全是由0和1构成,从内存读取到cpu计算,需要通过总线。一段01数据段是指令还是数据是通过来源总线区分的。总线分…

c语言练习题34:打印整数二进制的奇数位和偶数位

打印整数二进制的奇数位和偶数位 获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列 思路: 1. 提取所有的奇数位,如果该位是1,输出1,是0则输出0 2. 以同样的方式提取偶数位置检测num中某一位是0还…

储能辅助电力系统调峰的容量需求研究(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《储能辅助电力系统调峰的容量需求研究》,是一个很常规很经典的matlab优化代码,主要是对火电、风电和储能等电力设备主体进行优化调度,在调峰能力达不到时采…

特殊要求!2023年初级会计考试报名需要这些材料!

不少小伙伴都在关心 23年初级会计考试什么时候报名 目前,23年初级会计考试报名简章暂未公布 不过每年的报名流程都大同小异 参考22年考试流程, 给大家做了个初级会计考试的整体流程图 2023年初会报考条件 一、基本条件 报名参加会计资格考试的人员…

青岛计算机操作员初级考试时间,青岛市2021年初级会计考试时间安排在这里!...

各位报考2021年初级会计考试的小伙伴们,山东省青岛市2021年初级会计考试时间在这里!大家肯定非常关心一件事情,那便是2021年初级会计考试时间!小编为大家整理了相关信息,详情如下~ 初级会计考试时间 考试日期为2021年5…

青岛计算机操作员初级考试时间,青岛市2021年初级会计考试时间公布了吗?

山东省青岛市2021年初级会计职称考试时间公布了吗?目前青岛市2021年初级会计考试时间已经公布了哦,定于2021年5月15日举行。详细内容如下: 2021年初级会计考试时间 初级资格考试于2021年5月15日至19日,5月22日至23日,分…

湖北计算机初级考试时间,湖北省2021年初级会计考试时间安排在这里!

各位报考2021年初级会计考试的小伙伴们,湖北省2021年初级会计考试时间在这里!大家肯定非常关心一件事情,那便是2021年初级会计考试时间!小编为大家整理了相关信息,详情如下~ 初级会计考试时间 考试日期为2021年5月15日…

2023年初级会计考试详细报考流程(图文)

2023年2月7日,会计师考试报名官网“全国会计资格评价网"正式开通考试报名系统。 报名流程 1.登录官网 全国会计资格评价网(网址:http://kzp.mof.gov.cn/index.jsp) 进入网站后,点击左上角考试报名。 2.进入初级会…

2022年初级会计考试精选复习题及答案

1、某公司签发一张商业汇票,根据《票据法》的规定,该公司的下列签章行为中。正确的是(  )。 A.公司盖章 B.公司法定代表人李某盖章 C.公司法定代表人李某签名加盖章 D.公司盖章加公司法定代表人李某盖章 2、第15题&#xf…

2022年初级会计考试仿真试题及答案

1、某公司共有职工500名,其中生产工人为400名,管理人员为100名。2016年12月份,该公司向职工发放自产产品作为福利,每人发放一台。该产品的成本为每台150元,计税价格为200元,增值税税率为17%。不…

初会考试怎么用计算机,2020年初级会计考试系统自带的是哪种计算器?怎么使用?...

2020年初级会计职称考试即将在8月29日开考,初级会计考试考场纪律是非常严格的,考试即将开始,很多考生都在问初级会计考试可以提前交卷吗?能否提前离开考场?2020年初级会计考试系统自带的是哪种计算器?怎么使…

初级会计可以用计算机,初级会计考试能带计算机吗?还不知道速看!

哈喽大家好,随着初级考试的临近,同学们也有了越来越多的考试相关的问题,其中就有人问考试时能带计算器吗? 答案是不能 2020初级会计考试采用无纸化方式,《全国会计专业技术资格无纸化考试考场规则》其中明确规定了考生…

2020计算机初级考试地点,2020年初级会计考试地点在哪里呢?

2020年初级会计职称考试地点在哪里,你知道吗?这跟我们的考试与关系的,大家可以参考下面内容。那初级会计考试时长变了吗?2020年初级会计考试地点在哪里呢?接下来,就和中公初级会计职称小编一起往下看吧~ 20…

初级会计考试用计算机,注意:今年初级会计考试有一个新变化!考试可以带计算器吗?...

原标题:注意:今年初级会计考试有一个新变化!考试可以带计算器吗? 初级算是会计类考试中,机考操作相对简单的一门考试,但依旧还是有很多考生都会栽在机考操作上,所以,小编提醒你们&am…

2022年初级会计考试综合试题及答案

1、下列各项中,应通过“其他应付款”科目核算的是(  )。 A.应付现金股利 B.应交教育费附加 C.应付租入包装物租金 D.应付管理人员工资 2、甲企业本期主营业务收入为450万元,主营业务成本为300万元,其他业务收入…

2022年初级会计考试精选模拟题

1、 企业在计提固定资产折旧时,对于当月增加的固定资产当月照提折旧,当月减少的固定资产当月不提折旧。 ( ) A.正确 B.错误 2、甲股份有限公司采用回购本公司的股票方式减资,回购本公司股票时应该借记的会计科目是…

2022年长沙初级会计考试及答案

1、 某商场2010年1月1日针织品存货25万元,本月购进60万元,本月销售收入78万元,发生的销售折让为1.5万元。上季度该类商品毛利率为20%,本月月末库存商品的成本为( )元。 A.90000 B.75000 C.226000 D.238000 2、 某企业为经税…