学习笔记——PCIe

本文为学习笔记,故只对知识点依据自己的理解作概要总结,方便以后复习激活记忆

如有错误,欢迎指正!

一、编址

学习PCIe关键要弄清楚采用PCIe的计算机系统中是怎么编址的,这样才能理解DMA、P2P DMA等通信是如何进行的

PCIe计算机硬件系统结构

上图是一个采用NUMA架构的PCIe计算机硬件系统结构。为了方便理解,CPU的结构是基于Intel的Sky Lake架构抽象得到,主要表达CPU内部各个硬件电路的关系,并非硬件实际电路结构。GPU为PCIe版GPU,并且两个NUMA节点下的GPU使用的是NvLink桥接器进行直接连接。此外,假设操作系统为Linux 64位操作系统

在这样一个计算机系统中,总共有三个地址空间:虚拟地址空间,物理地址空间,PCIe总线地址空间

虚拟地址空间

虚拟地址空间是操作系统虚拟出来的一个地址空间,每个进程都有这样的一个虚拟地址空间,并且相互独立。直观来讲,这个地址空间就是编程时看到的地址空间,比如使用C语言的printf函数输出某个变量的地址,这个地址就是虚拟地址。这么设计的目的就在于可以在有限的内存资源中虚拟出非常庞大的内存资源来给进程使用;并且由于采用相同的地址空间,操作系统在进行管理的时候也非常方便

Linux 64位系统虚拟地址空间

上图展示了Linux 64位系统中每个进程的虚拟地址空间的结构。其中,内核空间在地址的高位,用户空间在地址的低位,中间的地址不做使用,如果程序访问这段地址则会产生无效访问的错误。

物理地址空间

本文所

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值