手机版

PCIe体系结构导读(17)

发布时间:2021-06-11   来源:未知    
字号:

目前PCIe总线规范,依然在迅猛发展,但并不是所有PCIe设备都支持这些在PCIe总线的最新规范中提及的概念。一般说来,PCIe总线规范提出的新的概念,最先在x86处理器系统的Chipset和Intel设计的PCIe设备中出现。

与Legacy中断方式相比,PCIe设备使用MSI或者MSI-X中断机制,可以消除INTx这个边带信号,而且可以更加合理地处理PCIe总线的“序”。目前绝大多数PCIe设备使用MSI或者MSI-X中断机制提交中断请求。

MSI和MSI-X机制的基本原理相同,其中MSI中断机制最多只能支持32个中断请求,而且要求中断向量连续,而MSI-X中断机制可以支持更多的中断请求,而并不要求中断向量连续。与MSI中断机制相比,MSI-X中断机制更为合理。本章将首先介绍MSI/MSI-XCapability结构,之后分别以PowerPC处理器和x86处理器为例介绍MSI和MSI-X中断机制。

--------------------------------------------------------------------------------

[1]通过发送Assert_INTx和Deassert_INTx消息报文进行中断请求,即虚拟中断线方式。

第11章PCI/PCIe总线的序

在一个处理器系统的实现中,开发者需要注意两类问题,一个是Cache的一致性(CacheCoherency),另一个是数据的完整性(DataConsistency)。深入理解这两部分内容的过程贯穿处理器体系结构学习的始终。在一个处理器系统的实现过程中,由这两类问题引发的系统错误是最难定位的。因为这两种系统错误的表现形式很难与“Cache共享一致性”与“序”联系在一起,即便最后定位是这两种原因引发的系统错误,也不容易复现这些系统错误。

本章主要讲述在PCI/PCIe总线中,数据传送的“序”与可能出现的死锁。在总线体系结构的设计中需要重点考虑序与死锁的问题,序和死锁一直是系统架构设计的重点所在,也是一个逻辑性要求较强,最容易出错,同时也是系统程序员容易忽略的内容。

所谓“序”是指数据传送的顺序,是保证数据完整性的基础。而死锁是指两个以上的设备在访问临界资源时,相互等待对方释放这些资源,而无法访问这些资源的情况。合理地安排访问“序”是解决死锁的一个有效方法。

在PCI/PCIe总线中,序与生产/消费者模型密切相关。生产/消费者模型是一种并发协作模型,PCI/PCIe设备使用该模型进行数据传递。在PCI/PCIe总线中,访问“序”的安排必须要保证生产/消费者模型的正确运转,这也意味着在PCI/PCIe总线中,数据的传送规则需要与生产/消费者模型一致。

合理安排数据访问的“序”对于一个系统设计是至关重要的,同时也是一个系统设计的基础。对于一个专用系统,生产消费者模型使用的数据缓冲、Flag和Status位在系统中的位置相对固定,以此为基础设计合理的数据访问“序”也许并不困难。

但是对于一个通用处理器系统,数据缓冲、Flag和Status位的在系统中位置并不固定,此时合理安排数据访问“序”需要异常缜密的思维。而PCI/PCIe总线针对的就是这样的一个通用处理器系统。

PCIe体系结构导读(17).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)