在PowerPC处理器系统中,MSI机制的实现过程是PCIe设备向MSIIR寄存器写入指定的数据。MPIC中断控制器发现该寄存器被写入后,将向处理器提交中断请求。处理器收到这个中断请求后,将通过读取MPIC中断控制器的ACK寄存器确定中断向量,并依此确定中断源。表10-3 MSIIR寄存器PCIe设备通过MSI机制,向此寄存器写入数据时,MSIR0~7寄存器的相应位SH0~31将有一位置1。......
2023-10-20
本节主要介绍了PCI设备的中断请求在Linux系统中的处理过程。Linux系统的更新速度较快,并不断加入新的功能。本章的内容基于Linux系统,目前Linux系统支持多种架构的处理器系统,而且得到了极大的普及。对于有志于学习体系结构的工程师而言,深入了解几种操作系统是必须的。而在这些操作系统中,Linux无疑最为开放,读者也最容易了解其实现细节。但是值得注意的是,在体系结构的学习过程中,不要拘泥于Linux系统本身,Linux系统仅包含了体系结构的部分内容,也只是一种实现方法。
本书到此告一段落,而PCIe总线仍然继续向前发展,PCIe V3.0规范即将发布,其中增加了许多新的功能,而这些新的功能在许多处理器系统中并没有意义。这些新的功能在本书中多有提及,但并不是本书的重点。本书的重点是以PCIe总线为例说明处理器的体系结构,是对PCIe体系结构进行导读,更准确地说,是以PCIe总线为例说明处理器体系结构中局部总线的设计原理与使用方法。
[1]x86处理器使用的BIOS也是Firmware的一种。
[2]Linux PowerPC在setup_arch函数中也做了一些有关PCI总线的初始化工作,如初始化HOST主桥。
[3]将设备驱动程序编译到Linux内核中。
[4]System.map文件存放Linux内核使用的符号表,包括当前Linux系统使用的所有函数指针和全局变量。
[5]微软规定了一系列PnP设备规范,详见http://www.microsoft.com/whdc/system/pnppwr/pnp/default.mspx。
[6]x86处理器接收SMI中断请求后,将进入SMM模式,此时将由BIOS处理ACPI中断请求。而SCI中断也被称为ACPI中断,下文将详细介绍该中断的实现机制。
[7]EC可以连接PS2口鼠标、键盘,并可以扩展其他自定义接口。在x86处理器中,EC由一个简单的MCU(Micro Control Unit)实现。
[8]处理器系统没有打开电源开关时,处理器系统处于S5状态。通常这个开关在ATX电源模块中。
[9]这段源代码来自ACPI规范4.0,在一个实际的x86处理器系统中,电源按钮的处理可能与此不同。
[10]_PRW是Power Resources for Wake的缩写,可以将处理器从休眠状态唤醒的设备需要使用_PRW。
[11]ACPI 4.0规范的第5.6节APIC Event Programming Model中定义了一系列回调号。
[12]在FACP.dsl文件中存放SCI Interrupt使用的中断向量。
[13]该函数为ACPICA提供的OS服务层接口函数。
[14]该表由Microsoft定义,详情见http://www.microsoft.com/whdc/resources/respec/specs/simp_boot.mspx。
[15]Itanium处理器系统含有多个对等HOST主桥;而在多数x86处理器系统中,仅含有一个HOST主桥。(www.chuimin.cn)
[16]resource参数存放HOST主桥管理的存储器和I/O地址空间,secondary参数存放Secondary总线号。
[17]Linux PCI将递归调用pci_scan_child_bus函数。
[18]这些处理器的Linux系统,将在pcibios_assign_resources函数中初始化BAR空间,详见下文。
[19]如果当前PCI桥为HOST主桥,pci_read_bridge_bases函数将直接返回。因为HOST主桥使用的pci_bus结构已经在pci_create_bus函数中进行了初始化。
[20]如第14.1.3节所示,pci_legacy_init函数在执行过程中需要检查pcibios_scanned参数,当该参数为1时,该函数将直接返回。
[21]pcibios_irq_init函数需要检查pcibios_enable_irq参数,如果该参数不为NULL,该函数也将直接返回。
[22]该机制由Sun Microsystems引入,广泛应用于Sun、Apple、IBM和Freescale的非x86处理器系统中。
[23]MPC8572的PCIe总线控制器可以作为RC,也可以作为EP。
[24]I/O APIC将这种方式称为PCI Message。PCIe设备可以通过INTx中断消息报文,向I/O APIC提交中断请求,详见第6.3.4节。
[25]Linux IA在引导时可以加入“noapic”参数关闭I/O APIC,此时处理器系统将使用8259A中断控制器。
[26]在Linux系统中,该结构为irq_desc,该结构记录与irq号相关的信号。
[27]如果Linux x86并没有使用8825A作为中断控制器,irp号和中断向量并没有直接的对应关系。
[28]如果在一个处理器系统中,irp号大于16,那么irp号等于CSI号。
[29]对应Else之后的这段代码。
[30]使用8859A中断控制器的情况。
[31]使用APIC中断控制器的情况。
有关PCI Express体系结构导读的文章
在PowerPC处理器系统中,MSI机制的实现过程是PCIe设备向MSIIR寄存器写入指定的数据。MPIC中断控制器发现该寄存器被写入后,将向处理器提交中断请求。处理器收到这个中断请求后,将通过读取MPIC中断控制器的ACK寄存器确定中断向量,并依此确定中断源。表10-3 MSIIR寄存器PCIe设备通过MSI机制,向此寄存器写入数据时,MSIR0~7寄存器的相应位SH0~31将有一位置1。......
2023-10-20
1基本中断处理流程Linux内核的中断处理框架当然要满足之前提到的各种需求。对Linux内核来说,每个中断号都是通过irq_desc进行描述的,可以说irq_desc是中断处理的核心。通过这些抽象结构就可以实现整个中断处理的框架。2中断处理延时操作下面介绍系统如何解决中断中大数据量时的延时处理问题。图4-28是Linux内核中断处理流程。......
2023-11-22
纺丝成型工艺及设备是合成纤维生产过程中的关键环节。纺丝成型设备包括熔体输送管道、计量泵、喷丝头组件及保温箱体部件等。保温箱中有载热体加热,使通入计量泵、纺丝组件中的熔体在纺丝温度下完成喷丝成型。(二)计量泵计量泵又称纺丝泵,一般采用结构简单的齿轮泵。根据纺丝速度及所纺丝条的品种来确定泵供量后,应通过计算来确定计量泵的公称流量和转速。......
2023-06-16
存储过程是SQL查询语句与控制流语句的预编译集合,并以特定的名称保存在数据库中。存储过程也是数据库对象。可以在存储过程中声明变量、编写SQL语句、使用条件控制语句来实现存储过程的功能。然后,存储过程可以在数据库服务器的安全范围内进行维护,根本不触及应用程序代码。本章将介绍MySQL如何实现存储过程,不仅讨论其语法,还会展示如何创建、管理和执行存储过程。还将学习如何将存储过程集成到Web应用程序中。......
2023-10-29
图15-1 基于WEP的简单WLAN配置由于WEP对于一个接入点的所有客户端使用相同的WEP密钥,WEP的唯一目的就是防止外部攻击者进行信息窃听。这两部分连接起来形成一个64bit的WEP密钥。在扩展配置的128bit WEP密钥中,密钥长度为104bit加上24bit初始矢量。图15-2描述了WEP的加密,其工作流程如下:在发送端,发送者使用初始矢量和40bit WEP密钥形成密钥流。......
2023-06-22
在Linux系统中,如果PCI/PCIe设备需要使用MSI-X中断机制,需要调用pci_enable_msix函数,pci_enable_msix函数调用的大多数函数与pci_enable_msi类似,本节并不会重复解释这些函数,该函数的实现如源代码15-14所示。下文将以Intel的e1000e网卡驱动程序说明如何使用MSI-X中断机制挂接中断服务例程。源代码15-15 e1000e_set_interrupt_capability函数当e1000e_set_interrupt_capability函数返回后,MSI-X中断机制使用的中断向量将被保存在adapter->msix_entries数组中,之后e1000_open→e1000_request_irq→e1000_request_msix函数将多次调用request_irq函数将e1000e使用的中断服务例程挂接到系统中断服务程序中,e1000_request_msix函数的实现如源代码15-16所示。......
2023-10-20
接下来分步说明中断处理的具体实现。Linux内核irqdesc.h中有如下定义:这里可见宏NR_IRQS描述了所有中断的个数,这个数目应该是和处理器相关的。具体的级联中断的解决办法留到相应模块中进行详细说明。3中断控制器的处理接下来看看DM 3730的内核是如何实现中断控制器的管理的。图4-30引自《DM 3730芯片手册》中第2411页的框图。电源管理没有中断控制器唤醒的相关实现,由于这部分是在ARM主处理器的电源域中,并不需要这部分功能。......
2023-11-22
按生产原料不同,单丝挤出成型生产设备有多种结构布置方式。图7-28 聚氯乙烯单丝水平挤出成型生产线1—挤出机 2—机头 3—分丝板 4—牵伸装置 5—热水槽 6—第二牵伸装置 7—分丝导辊 8—收卷装置塑料单丝挤出成型原理和特性①塑料材料挤出。无论是单丝或扁丝,其成型原理相同,又都采用加热拉伸技术,可以提高纵向拉伸强度,在日常生活中随处可见。在7.3.2节中将详细介绍。......
2023-06-15
相关推荐