mpu 配置内存空间_PCIE的内存地址空间、I/O地址空间和配置地址空间

pci设备与其它接口的设备(如i2c设备)最大的不同是存在内存地址空间和配置地址空间

首先区分一下IO空间和内存空间

cpu会访问的设备一般有内存和外设寄存器,如下图所示。x86架构采用独立编址将内存操作与外设IO操作分开了才有了内存空间和IO空间的区分,x86平台cpu内部对内存和外设寄存器访问的指令也是不同的。arm等其他平台都采用统一编址,不区分内存和外设的访问。

IO空间:访问外部设备寄存器的地址区域,x86平台为64k

内存空间:访问内存的地址空间,32位平台为4G

pci设备的内存空间是怎么回事呢?

常见的设备都只提供寄存器供cpu访问,对于低速外设这样的模式是足够的。但是对于需要大量、高速数据交互的外设就需要引入外设内存空间了。在网卡、显卡这样的pci高速外设中不仅有寄存器还有了一块内存。

配置空间和IO空间不都是外设的寄存器吗,它们有什么区别呢?

IO空间就和i2c设备的寄存器空间一样,用来获取外设状态、配置外设。

配置空间是一段特殊的IO空间,它的作用是为外设内存空间、IO空间分配物理地址基地址,即配置BAR(Base Address Registers)。这里类似linux对虚拟地址的映射了,但现在分配的却是物理地址。因为外设内部的内存地址都是从0开始编址的,当pci控制器接入多个pci设备时如何确保pci上的内存地址不混乱呢,这就是配置空间的一个作用,配置空间有固定的结构,在pci总线扫描设备时配置好BAR,这样各个pci设备的内存空间和IO空间才可访问,而不至于和其他设备物理地址冲突。

在pci总线之前的ISA总线是使用跳线帽来分配外设的物理地址的,每插入一个新设备都要改变跳线帽以分配物理地址,这是十分麻烦且易错的,但这样的方式似乎我们更容易理解。能够分配自己总线上挂载设备的物理地址这也是PCI总线相较于I2C、SPI等低速总线一个最大的特色。

为什么只有pci设备可以有外设内存空间,i2c、usb等设备没有?

说起外设上可以有设备专属的内存时,指的都是pci设备。我们更为常用的i2c、usb、spi、uart设备怎么都没有这样的说法呢?

这是因为在cpu内部架构中会有系统总线和外设总线。系统总线一般是连接cpu与主存的,外设总线是cpu连接外部设备的。在有pci控制器的cpu架构中pci总线就取代了cpu内部的外设总线的位置,所有外设都是挂在不同层级的pci桥上的,再由pci转成了usb、i2c、uart等接口。因此pci设备相当于直接连在cpu总线上了,这样pci设备中就可以拥有cpu总线上的物理地址,和主存共享cpu的物理地址空间,当然就可以存在外设内存(相当于pci设备与其他外设的控制器在一个层级上)。i2c等外设只能通过i2c控制器间接的与cpu通信,pci设备拥有cpu的物理地址,可以直接与cpu对话。

可简要理解为pci总线类似cpu内部总线的延伸,i2c、usb等都仅仅是纯粹的外设总线,社会层级不同。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证

在上一篇文章中,我向您展示了如何在Java应用程序中启用Spring安全性 ,今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 。 如果您使用的是Spring Security 3.1或更低版本,我将向您展示如何同时使用Java配…

网络通信协议是计算机网络的组成部分之一,通信互联网技术考点精讲之计算机网络系统的组成...

下面是由希赛小编整理的通信互联网技术考点精讲之计算机网络系统的组成,希望能帮助学友们。具体内容如下:计算机网络系统的组成计算机网络通常由3部分组成:资源子网、通信子网和通信协议?(1)资源子网:是网络中实现资源…

centos安装llvm_Linux CentOS上编译并安装Clang教程

如何在Linux CentOS上编译并安装Clang?下面小编为大家具体的介绍一下,解决你在安装Clang遇到的一系列问题。一、Minimal版CentOS安装Clang前的环境准备1,安装gcc:yum install gcc2,安装g:yum install gcc-c…

win10下JDK环境变量配置与IDEA开发工具清晰简洁步骤,迈出Java学习第一步

文章目录一、JDK下载二、win10下环境变量配置三、开发工具IDEA安装一、JDK下载 可以直接去官网下载,推荐下载JDK8.0版本 也可以这个网盘里面找一下下载:Windows下JDK8.0 提取码:0909 安装的时候建议jdk和jre都。 二、win10下环境变量配置 …

双非计算机专业考研西安交通大学,2020双非一战计算机专硕初试403经验贴

本帖最后由 Johnsonw 于 2020-7-3 10:59 编辑先自我介绍一下,我初试403分,专业课134分,本科是双非,无项目经历,无科研经历,一战西安交通大学,最终成功上岸。初试:参考书目西安交通大…

计算机二级web题目(3)--HTML基础

1 [单选题] HTML是一种标记语言。它是由&#xff08;C&#xff09;解释执行的。 A. 不需要解释 B. Windows C. 浏览器 D. 标记语言处理软件 2 [单选题] 在HTML文档中用于表示页面标题的标记对是(D)。 A. <head></head> B. <header></header> C. <Ca…

连不上机器判断机器状态_KUKA机器人为什么KPP故障联不上,断电重启hou报RDC连接连接不上...

1.RDC连不上出现的现象: 通过指示灯的判断是最简单快捷的,如果是坏了可以直接提示RDC的故障,如果灯不亮可直接判断是RDC坏了或者是线没连上.如果RDC卡连不上,指示是不亮的!那么KSP或KPP网络断,同样会引起RDC不能读取数据,这是问什么呢?表面上看在KCB总线中KSP与KPP是串行连接的…

分布式部署_业务模块化打造单体和分布式部署同步支持方案

我在2019年中国.NET开发者峰会上为大家分享了我们的微服务电商安全工程实践&#xff0c;那次会议分享的高清录播已经上传到我的腾讯课堂&#xff0c;大家可以通过底部的小程序打开直接观看(复习)。在大会上跟大家提到&#xff0c;我们当时只有4个人的创业团队。追求的是一个既可…

计算机二级web题目(4)--CSS基础

1 [单选题] CSS指的是下列&#xff08;B&#xff09;的缩写。 A. Computer style Sheets B. Cascading style Sheets C. Creative stye Sheets D. Colerful siyle Sheets 2 [单选魃] 在HTML文档中,应该在下列哪个部分引用外部样式表?&#xff08;D&#xff09; A. 文档的末尾 …

dozer bean_使用Dozer框架进行Bean操作

dozer bean介绍 如您所知&#xff0c;您可以在任何操作系统中将文件或文件夹从源位置复制到目标位置。 您是否考虑过复制基本上是POJO的java对象&#xff1f; 在很多情况下&#xff0c;您需要将源bean的内容复制到目标bean。 我不关心对象的拷贝构造函数&#xff0c;浅拷贝或深…

英语作文计算机主板,(完整版)电脑主板bios英文版的中英文对照翻译.pdf

电脑主板 BIOS 英文版的中英文对照翻译让你的电脑 BIOS 知识迅速提高滴。 Time/System Time时间 / 系统时间Date/System Date 日期/ 系统日期Level 2 Cache 二级缓存System Memory 系统内存Video Controller 视频控制器Panel Type 液晶屏型号Audio Controller 音频控制器Modem …

怎么修改提交git是的用户名_git 修改提交邮箱以及用户名-亲测

一.查看git配置$ git config --list 此命令会列出所有GIT当时能找到的配置...查看 列表项[email protected] 邮箱user.name123 用户名二.修改邮箱和用户名1.重新设置邮箱和用户名$ git config --global user.email"[email protected]&…

简而不漏,300字Java标识符命名规则规范,看一遍就可以记住,包名类名变量名常量名,让命名有迹可循

1.标识符命名规则 &#xff08;如果不遵循&#xff0c;编译不通过&#xff0c;需要严格遵守&#xff09; 由26个英文字母大小写&#xff0c;0-9&#xff0c;_&#xff0c;$组成不可以数字开头不可使用关键字和保留字&#xff0c;可以包含关键字和保留字严格区分大小写不能包含…

html文字依次显示,利用定时器和css3动画制作文字依次渐变显示的效果

如上图&#xff0c;这种效果看着是不是挺“柔”的附代码文字一次渐变出现body{background-color: #333333;padding: 20px;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}div,span{color: #ffffff;font-size: 30px;}.hidden{display: no…

面向Java程序员的20大Spring REST面试问题答案

大家好&#xff0c;过去两周来&#xff0c;我一直在与Spring教程共享一些REST&#xff0c;今天&#xff0c;我将向申请Web开发人员角色的Java开发人员共享一些常见的Spring和REST面试问题。 由于Spring Framework是用于开发Java Web应用程序和RESTful Web Services的最受欢迎的…

你还认识变量吗?Java基础学习不可略过的基本语法,简而不漏,变量的定义赋值和分类,系统认识Java中的变量有哪些?

文章目录变量的声明和赋值变量分类变量的声明和赋值 class VariableTest{public static void main(String[] args) {//变量的定义int myAge 21;//变量的使用System.out.println(myAge);//变量的声明int myNumber;//变量的赋值myNumber 9090;} }特别注意&#xff1a; ①定义变…

地图统计_庄园地图“出镜率”排名,500场数据统计,红教堂第一

在11赛季的时候很多玩家都私信趣游君&#xff0c;他们感觉自己排位经常会遇到一些让人讨厌的地图&#xff0c;也是因为经常遇到这些地图&#xff0c;所以导致自己的排位赛迟迟无法上分&#xff0c;因为要求我们做一下地图出镜率的排名。为了完成这个刷剧统计&#xff0c;趣游君…

2018安徽省计算机一级试题答案,2018年计算机等一级考试试题100题及参考答案.docx...

2018年计算机等一级考试试题100题及参考答案.docx文档编号&#xff1a;395397文档页数&#xff1a;14上传时间&#xff1a; 2018-09-03文档级别&#xff1a;精品资源文档类型&#xff1a;docx文档大小&#xff1a;28.84KB2018 年 计算机等一级考试试题 100 题 及参考答案 1. 在…

基于Spring Boot Profile的日志记录示例样本

我们希望在Spring Boot中为不同的配置文件使用不同的日志记录配置&#xff0c;例如在本地运行中&#xff0c;我们只希望控制台日志记录和用于生产&#xff0c;我们希望文件记录日志支持每天滚动日志文件。 我提出了一个示例logback配置&#xff0c;该配置将在所有应用程序中使…

简自动类型提升,精度损失类型强制转换,常用转义字符,简单帮你回顾Java基本数据类型整形浮点型字符型布尔型Boolean及其运算规则

文章目录整形浮点型字符型布尔型boolean自动类型提升强制类型转换注意整形 bit是计算机中的最小存储单位。 byte是计算机中的基本存储单元。 1MB1024KB——1KB1024B&#xff08;byte&#xff09; public class JavaTest {public static void main(String[] args) {byte b1 1…