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原理(从软件角度)的更多相关文章

  1. (转) 一张图解AlphaGo原理及弱点

    一张图解AlphaGo原理及弱点 2016-03-23 郑宇,张钧波 CKDD 作者简介: 郑宇,博士, Editor-in-Chief of ACM Transactions on Intellig ...

  2. (转)图解SSH原理

    图解SSH原理 原文:https://www.jianshu.com/p/33461b619d53 http://blog.51cto.com/forlinux/1352900---------SSH ...

  3. 图解LinkedHashMap原理

    1 前言 LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理 2 LinkedHashMap使用与实现 先来一张LinkedH ...

  4. 图解SSH原理及两种登录方法

    SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密. 传统的对称加密使用的是一套秘钥,数据的加密以及解密用的都是这 ...

  5. 基因组Denovo组装原理、软件、策略及实施

    目录 1. 组装算法 1)基于OLC算法 2)基于DBG算法 3)OLC vs DBG 2. 组装软件 3. 组装策略 4. 组装项目实施 1)测序前的准备 2) 测序样品准备 3)测序策略的选择 4 ...

  6. 30分钟全面解析-图解AJAX原理

    先上原理图: 高清无码图在这里:点我查看大图!!! 背景: 1.传统的Web网站,提交表单,需要重新加载整个页面. 2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差. 3 ...

  7. 白话图解HTTPS原理

        [前言]最近看过几篇文章,内容是关于"全民HTTPS"的.为什么HTTPS,突然会受到如此多业内人士的青睐呢?HTTPS究竟是什么呢?它与HTTP又有怎样的区别呢? 带着这 ...

  8. 图解SSH原理

    1. 初见SSH SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务. SSH仅仅是一协议标准,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案.使用范围最广泛的当然 ...

  9. 一张图解AlphaGo原理及弱点

    声明:本文转载自(微信公众号:CKDD),作者郑宇 张钧波,仅作学习收录之用,不做商业目的. 近期AlphaGo在人机围棋比赛中连胜李世石3局,体现了人工智能在围棋领域的突破,作为人工智能领域的工作者 ...

随机推荐

  1. bash中的管道和重定向

    管道 管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一 ...

  2. SQL Server 2008数据库备份和还原(还原是必须有完整备份)

    转自lwccc, SQLserver2008数据库备份和还原问题(还原是必须有完整备份) 首先,我要说明的是你必须拥有完整的数据库备份,下面的还原教程,才算有用. 这个连接是某高手的异常恢复方法, 实 ...

  3. openwrt开源系统LUCI配置界面

    转自:http://www.right.com.cn/forum/thread-131035-1-1.html 本人菜鸟,最近在学习这方面的知识,在参考资料的基础上总结如下内容.这篇文章针对如何对op ...

  4. Unity 加密解密

    解密无非就为了 修改游戏功能数据.提取游戏资源.加入自己想加的广告...加密就是保护游戏不被恶意修改,经常看到有人说:"加什么密,你以为自己写的代码很NB?见不得人?"我只想说,加 ...

  5. NGINX -- 详解Nginx几种常见实现301重定向方法上的区别

    Nginx下常见的301跳转有以下三种,虽然都能达到同样的目的.但是三种写法上还是有区别的,主要的区别是在正则匹配的性能上. 第一种:使用rewrite指令,通过正则匹配所有的URI后再去掉开头第一个 ...

  6. 二十四种设计模式:访问者模式(Visitor Pattern)

    访问者模式(Visitor Pattern) 介绍表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 示例有一个Message实体类,某些对象对 ...

  7. SQL精华应用

    [精确到纳秒的时间函数] SYSDATETIME().SYSUTCDATETIME()        ---- 精确程度取决于执行 SQL Server 实例的计算机硬件和 Windows 版本号 [ ...

  8. 转:ios review推送与执行

    http://mp.weixin.qq.com/s?__biz=MzA4ODk0NjY4NA==&mid=409082578&idx=1&sn=2ca1e453d3c21caa ...

  9. JAVA的面向对象编程

    JAVA的面向对象编程 面向对象主要针对面向过程. 面向过程的基本单元是函数. 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 全部的事物都有两个方面: 有什么(属性):用来描写叙 ...

  10. javascript Array(数组)

      迁移时间:2017年5月25日08:05:33 UpdateTime--2017年3月31日16:29:08 一.数组(Array) (一)用法 //js声明数组的两大类方式 // 第一类(通常使 ...