图解PCIE原理(从软件角度)
1 PCIE基本概念
1.1 PCIE拓扑架构图
1.2 PCIE Switch内部结构图
1.3 PCIE协议结构图
2 PCIE枚举原理
2.1 Type0&Type1配置头空间

2.2 拓扑示例
连接Device0的端口设为Port0,连接Device1的端口设为Port1 (Port可以看作PCI Bridge)
2.3 枚举过程
Port0、Port1的相关Bus Register变化过程如下图
2.4 资源分配
2.4.1 非桥设备资源分配
以Device0的资源分配为例:需要64KB IO Memory 以及 256 Byte IOPort
(IOPort Base = 0x10000000, IOMem Base = 0x20000000)
2.4.2 桥设备资源分配
Port0为支持Devic0 IO & Memory Routing相关的Register设定
3 PCIE事务交互
3.1 配置空间读写
Read Conf Space: Device0 offset 4
3.2 内存空间读写
MMIO Read: addr = 0x20000004
3.3 中断发起、取消
转载:http://blog.csdn.net/hulidong971/article/details/41412199
图解PCIE原理(从软件角度)的更多相关文章
- (转) 一张图解AlphaGo原理及弱点
		一张图解AlphaGo原理及弱点 2016-03-23 郑宇,张钧波 CKDD 作者简介: 郑宇,博士, Editor-in-Chief of ACM Transactions on Intellig ... 
- (转)图解SSH原理
		图解SSH原理 原文:https://www.jianshu.com/p/33461b619d53 http://blog.51cto.com/forlinux/1352900---------SSH ... 
- 图解LinkedHashMap原理
		1 前言 LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理 2 LinkedHashMap使用与实现 先来一张LinkedH ... 
- 图解SSH原理及两种登录方法
		SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密. 传统的对称加密使用的是一套秘钥,数据的加密以及解密用的都是这 ... 
- 基因组Denovo组装原理、软件、策略及实施
		目录 1. 组装算法 1)基于OLC算法 2)基于DBG算法 3)OLC vs DBG 2. 组装软件 3. 组装策略 4. 组装项目实施 1)测序前的准备 2) 测序样品准备 3)测序策略的选择 4 ... 
- 30分钟全面解析-图解AJAX原理
		先上原理图: 高清无码图在这里:点我查看大图!!! 背景: 1.传统的Web网站,提交表单,需要重新加载整个页面. 2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差. 3 ... 
- 白话图解HTTPS原理
		[前言]最近看过几篇文章,内容是关于"全民HTTPS"的.为什么HTTPS,突然会受到如此多业内人士的青睐呢?HTTPS究竟是什么呢?它与HTTP又有怎样的区别呢? 带着这 ... 
- 图解SSH原理
		1. 初见SSH SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务. SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案.使用范围最广泛的当然 ... 
- 一张图解AlphaGo原理及弱点
		声明:本文转载自(微信公众号:CKDD),作者郑宇 张钧波,仅作学习收录之用,不做商业目的. 近期AlphaGo在人机围棋比赛中连胜李世石3局,体现了人工智能在围棋领域的突破,作为人工智能领域的工作者 ... 
随机推荐
- 常见Linux版本
			一 常见Linux版本 website feature description http://www.ubuntu.com/ 当前最流行 Ubuntu 正是基于 Debian 之上,旨在创建一个可 ... 
- js中定义变量的三种方式const,val,let 的区别
			js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始 ... 
- img转base64的两种方式的比较
			关于图片转base64然后提交后台,项目中一直用的是canvas的toDataUrl方法,但是之前看HTML5 API文档的时候,一直记得好像有个叫fileReader的东西也可以做到.于是过年无事的 ... 
- 16.同步类容器Collections.synchronized
			voctor动态数组.同步类容器,底层实现基于:Collections.synchronized package demo5; import java.util.ArrayList; import j ... 
- CDN混战何去何从,史上最全分析
			近日,CDN市场风起云涌,十几年平稳的市场格局瞬时战火纷飞.一路从传统CDN即蓝汛.网宿为主的 "双雄争霸".演变为多家云CDN厂商阿里云.腾讯云.百度云等的降价大战.更有 ... 
- 003java面试笔记——【java基础篇】从团八百失败面试总结的java面试题(未完待续)
			8.java 线程 1)线程概念,线程与进程 线程:线程是“进程”中某个单一顺序的控制流.也被称为轻量进程.线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程.线 ... 
- Zend Guard Run-time support missing 问题的解决
			Zend Guard是目前市面上最成熟的PHP源码加密产品了. 刚好需要对自己的产品进行加密,折腾了一晚上,终于搞定,将碰到的问题及解决方法记录下来,方便日后需要,也可以帮助其他人. 我使用的是Wam ... 
- java线程总结(2/5)
			线程基本信息和优先级别 方 法 功 能 isAlive() 判断线程是否还“活”着,即线程是否还未终止. getPriority() 获得线程的优先级数值 setPriority() ... 
- Spark修炼之道——Spark学习路线、课程大纲
			课程内容 Spark修炼之道(基础篇)--Linux基础(15讲).Akka分布式编程(8讲) Spark修炼之道(进阶篇)--Spark入门到精通(30讲) Spark修炼之道(实战篇)--Spar ... 
- JMeter 十四:最佳实践
			参考:http://jmeter.apache.org/usermanual/best-practices.html 1. 总是使用最新版本的JMeter 2. 使用合适数目的Thread Threa ... 
