PCI 设备的数据传递

译码方式 

  • PCI设备使用“地址译码”方式接收存储器读写总线请求

  • 在PCI总线中定义了两种“地址译码”方式,一个是正向译码,一个是负向译码。

  • 正向译码

    • 当HOST主桥通过存储器或者I/O读写总线事务访问其下所有PCI设备时,PCI总线0下的所有PCI设备都将对出现在地址周期中的PCI总线地址进行译码

    • 如果这个地址在某个PCI设备的BAR空间中命中时,这个PCI设备将接收这个PCI总线请求

    • 这种方式也是大多数PCI设备所采用的译码方式

  • 负向译码

    • PCI总线上的某些设备,如PCI-to-(E)ISA桥并不使用正向译码接收来自PCI总线的请求,

    • PCI总线0上的总线事务在三个时钟周期后,没有得到任何PCI设备响应时(即总线请求的PCI总线地址不在这些设备的BAR 空间中),PCI-to-ISA 桥将被动地接收这个数据请求。

    • 可以进行负向译码的设备也被称为负向译码设备

    • 在PCI总线中有两种负向译码设备,PCI-to-E(ISA)桥和PCI桥

      • 只有PCI桥连接Dock插座时,PCI桥的Primary Bus才使用负向译码方式。

      • 这个PCI桥的Secondary Bus在接收Dock设备的请求时仍然使用正向译码方式

从PCI域到memory域

  • 即一个总线事务是从PCI桥的Secondary Bus到Primary Bus

  • 该总线事务使用的地址没有在PCI 桥所有的Memory Base 窗口命中时,表明当前总线事务不是访问该PCI桥管理的PCI子树中的设备

  • PCI桥将接收当前总线事务,并根据实际情况决定是否将这个总线事务转发到Primary Bus。

  • 处理器到PCI设备的数据传送

    • 处理器向PCI设备11进行存储器写的数据传送为例

    • 存储器域将0xF300-0008 这个地址发向HOST主桥

    • 0xF000-0000~0xF7FF-FFFF 这段地址已经由HOST主桥映射到PCI总线域地址空间,所以HOST主桥认为这是一个对PCI 设备的访问

      • HOST主桥将首先接管这个存储器写请求

    • HOST 主桥将存储器域的地址0xF300-0008转换为PCI总线域的地址0x7300-0008

      • 通过总线仲裁获得PCI总线0的使用权,启动PCI存储器写周期

      • 将这个存储器写总线事务发送到PCI总线0上

      • 值得注意的是,这个存储器读写总线事务使用的地址为0x73 00-0008,而不是0xF300-0008。

    • PCI 总线 0 的PCI 桥1发现0x7300-0008在自己管理的地址范围内,于是接管这个存储器写请求

      • 通过总线仲裁逻辑获得PCI总线1的使用权,并将这个请求转发到PCI总线1上

    • PCI 总线 1的PCI设备11发现0x7300-0008在自己的BAR0寄存器中命中,于是接收这个PCI写请求,并完成存储器写总线事务

PCI 设备的DMA操作

  • PCI设备11向存储器进行DMA写的数据传送过程

  • 首先 PCI设备11通过总线仲裁逻辑获得PCI总线1的使用权,之后将存储器写总线事务发送到PCI总线1上

    • 这个存储器写总线事务的目的地址是PCI总线域 的地址空间0x9000-0000~0x9000-FFFF

    • 这个地址是主存储器在PCI总线域的地址映像

  • PCI 总线1上的设备将进行地址译码,确定这个写请求是不是发送到自己的BAR空间

  • 首先 PCI 桥 1、2和PCI设备11对这个地址同时进行正向译码

  • PCI桥1发现这个PCI 地址并不在自己管理的PCI总线地址范围之内

    • 此时PCI桥1将接收这个存储器写总线事务

    • 因为PCI 桥1所管理的PCI总线地址范围并不包含当前存储器写总线事务的地址,所以其下所有PCI 设备都不可能接收这个存储器写总线事务。

  • PCI 桥 1 将这个存储器写总线事务 转发到上游总线。

    • 首先通过总线仲裁逻辑获得PCI总线0的使用权

    • 然后将这个总线事务转发到PCI总线0

  • HOST主桥发现0x9000-0000~0x9000-FFFF这段PCI总线地址空间与存储器域的存储器地址空间0x1000-0000~0x1000-FFFF 对应

    • 将这段 PCI 总线地址空间转换成为存储器域的存储器地址空间,并完成对这段存储器的写操作

  • 存储器控制器将从HOST主桥接收数据,并将其写入到主存储器

PCI桥提升效率的方式

  • Combining

    • PCI 桥可以将接收到的多个存储器写总线事务合并为一个突发存储器写总线事务

    • 当 PCI 桥接收到一组物理地址连续的存储器写访问时,如对PCI设备的某段空间的DW1、2和4进行存储器写访问时,PCI桥可以将这组访问转化为一个对DW1~4的突发存储器写访问,并使用字节使能信号C/BE[3: 0]#进行控制

  • Merge

    • PCI 桥可以将收到的多个对同一个DW地址的Byte、Word进行的存储器写总线事务,合并为一个对这个DW地址的存储器写总线事务

    • PCI 规范允许PCI桥进行Merge操作的存储器区域必须是可预读的,而可预读的存储器区域必须支持这种Merge操作。

    • Merge操作可以不考虑访问顺序

  • Collapsing

    • PCI 桥可以将对同一个地址进行的Byte、Word和DW 存储器写总线事务合并为一个存储器写操作。

    • 当PCI桥收到一个对“DW地址X”的Byte3进行的存储器写总线事务,之后又收到一个对“D W地址X”的Byte、Word或者DW存储器写总线事务时,而且后一个对DW地址X进行的存储器写仍然包含Byte3时,如果PCI桥支持Collapsing方式,就可以将这两个存储器写 合并为一个存储器写。

    • 通常情况下,对PCI设备的同一地址的两次写操作代表不同的含义

      • 因此绝大部分的场景,不支持这种方式

内容概要:本文探讨了法律和标准对汽车电子电气架构(EEA)的深远影响,强调了其在汽车研发、生产、销售及使用各环节中的重要性。文章详细分析了在线检测技术(OBD)、电子稳定系统(ESP)、右/左转向盘设计和安全功能四大关键方面的影响。OBD技术要求诊断接口始终保持有效,确保通信安全可靠;ESP作为安全护盾,推动了汽车安全技术发展;转向盘设计需适应不同国家的交通规则;安全功能涵盖碰撞、制动、电气等方面,确保汽车在各种工况下安全。此外,ISO26262标准为EEA的功能安全提供了全面指导,涵盖从概念到生产的各个阶段,确保系统的可靠性和安全性。功能安全不仅关乎合规,更是企业的差异化竞争力,通过智能ASIL分解等策略,可以在降低成本的同时提升安全等级。 适合人群:汽车电子工程师、汽车制造商、政策制定者及相关行业从业者。 使用场景及目标:①理解法律和标准如何规范和引导汽车EEA设计;②掌握ISO26262标准的具体要求,确保EEA的安全性和可靠性;③学习如何通过功能安全策略提升产品竞争力。 阅读建议:本文内容详实,建议读者结合自身背景和需求,重点关注与自己工作相关的部分,特别是ISO26262标准的具体条款和技术细节。同时,读者应关注功能安全不仅仅是合规要求,更是提升产品竞争力的重要手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值