微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 如何实现PCI Express的热插拔功能

如何实现PCI Express的热插拔功能

时间:05-23 来源:互联网 点击:

在上电自测试(POST)期间,加电时,固件创建和加载某些程序和表格。这些程序和表格的实现在“高级配置与电源接口固件规范”中已作了定义。固件也负责配置操作系统的系统地址空间。固件将系统地址划分为许多专用区域,包括用于系统存储器、系统I/O和PCI配置空间的区域,这些都是PCI器件要求的。固件地址映射通过操作系统支配这些映射的使用。

  当把PCIe端点插入PCIe开关插槽时,开关产生激活中断,如“出现检测改变的中断”。根组件把中断传给总线驱动器、Windows即插即用(PnP)管理程序和Windows电源管理程序。Windows PnP管理程序依次请求PCI总线驱动器重新列举PCI总线器件,这可能导致资源重新分配。当发现新设备时,给相应驱动器加载,然后初始化该设备并准备处理I/O(如图2所示)。


  所有在Windows 2000和Windows XP上的热插拔事件,如插入、弹出和拔出都可能通过ACPI 1.0b处理。Windows XP支持一种附加对象,是在ACPI 2.0(the _HPP object)中引入的。这些操作系统仅限在单个总线段分配资源,在运行时不能重新分配资源((I/O和存储器孔)。因此,桥或开关的插入要求为开关及开关后设备分配多级资源。

  只有当预分配的资源足够供给新设备时,操作系统才能正确启动器件。如果要分配的资源不够,特别是如果插入一个桥时,操作系统通常不能在运行时间重新配置PCI-PCI桥,以处理设备资源要求。

  “固件ACPI规范3.0”通过提供支持操作系统能力(_OSC)方法和设备特定方法(_DSM)来解决此问题。_OSC方法是一种机制,用来定义硬件的父子依存关系,把这些关系传送给操作系统,而_DSM是一种可选的ACPI控制方法,能实现专用器件控制功能并允许OS忽略PCI设备引导配置。

  Windows Vista是一种能发现PCI Express的OS,支持多级重平衡。多级重平衡能根据其后设备的资源要求来动态调节PCI桥窗口的大小。像_DSM这样的方法允许平台固件高负荷地为Windows XP和Server 2003引导配置设备,而给Windows Vista提供了忽略引导配置资源的自由,因此资源分配的灵活性更大。这样能使操作系统重新定位和/或扩展PCI桥资源窗口,以适应设备要求,否则这将是不可能,这是由于引导设备要求的限制引起的。因为Windows Vista中的多级重平衡代码不再受必须维持系统引导配置资源的限制,所以运行更有效。

  总之,PCIe在事务处理、数据链接和物理层方面具有很大的弹性,加之其点对点的特性,有助于基于PCIe的设计避免单点故障。所有这些特点,加上PCIe固有的在硬件和OS级支持热插拔的特性,所有这些都表明PCIe正在进入RAS的新纪元。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top