注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

dp: 生活的脚步,进步的点滴...

Cam、DSP、FPGA、PM、Life、More ...

 
 
 

日志

 
 

PCIe设备总线地址和物理地址的区别  

2012-06-13 08:59:47|  分类: 专业 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PCI设备总线地址与CPU物理地址的区别
1.域的概念
域的概念对理解总线地址和物理地址很重要,区分这两个域是理解两个地址的基础。
PCI设备域包括: PCI设备,PCI设备上的DMA Enginer, CPU端的DMA 控制器。
CPU域包括: CPU

2.物理地址到总线地址的映射
物理地址和总线地址一一映射,而且在绝大多数平台上,为了简便,总线地址和物理地址起始地址也是一样的。虽然方便,但是很多开发者弄不清楚某个具体值到底是物理地址还是总线地址。有了域的概念,就好理解多了,如设备的PCI config space 中的BAR地址就是总线地址,因为它是给设备用的。而调用kernel API pci_resource_start(dev,...) 返回的值则是CPU域的物理地址。


PCIe从硬件,链路到上层应用也分成多个层次,每层都完成特定的功能。
从硬件的角度看,主要分成三层:
物理层:
链路层:
协议层:
从驱动和应用软件看,分成四层:
OS 层:
设备驱动层
OS Lib+API层:
应用软件层:
  评论这张
 
阅读(1065)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016