CN102906692B - 修改适配器功能参数的指令的方法和系统 - Google Patents

修改适配器功能参数的指令的方法和系统 Download PDF

Info

Publication number
CN102906692B
CN102906692B CN201080066886.XA CN201080066886A CN102906692B CN 102906692 B CN102906692 B CN 102906692B CN 201080066886 A CN201080066886 A CN 201080066886A CN 102906692 B CN102906692 B CN 102906692B
Authority
CN
China
Prior art keywords
adapter
address
instruction
amendment
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201080066886.XA
Other languages
English (en)
Other versions
CN102906692A (zh
Inventor
D·格雷纳
D·克拉多克
T·格雷格
M·法雷尔
B·格伦迪宁
P·斯茨韦德
G·西特曼三世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102906692A publication Critical patent/CN102906692A/zh
Application granted granted Critical
Publication of CN102906692B publication Critical patent/CN102906692B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

本发明提供了用于建立适配器的各种操作参数的指令。这些参数例如包括适配器中断参数、输入/输出地址转换参数、重置错误指示、设置测量参数以及设置拦截控制。所述指令指定在某些情况下在建立所述参数中使用的功能信息块,所述功能信息块是所述适配器使用的设备表项的程序表示。还提供了存储(store)指令,此指令存储所述功能信息块的当前内容。

Description

修改适配器功能参数的指令的方法和系统
技术领域
本发明一般地涉及计算环境的输入/输出处理,具体地说,涉及促进与计算环境的适配器的通信。 
背景技术
计算环境可以包括一个或多种类型的输入/输出设备,包括各种类型的适配器。可以包括的一种类型适配器是外围组件互连(PCI)或快速外围组件互连(PCIe)适配器。所述适配器使用通用的行业标准总线级别和链路级别协议以便通信。然而,其指令级别协议是供应商特定的。PCI规范可从万维网获得,网址为www.pcisig.com/home。 
美国公开2008/0126648 A1“Message Signaled Interrupt Management For A Computer Input/Output Fabric Incorporating Platform Independent Interrupt Manager(包含独立于平台的中断管理器的计算机输入/输出光纤通道网络的消息信号中断管理)”(2008年5月29日公开,Brownlow等人)描述了一种将多个客户端共享的消息信号中断(MSI)资源动态绑定到具有MSI能力的计算机中的中断工具的装置、程序产品和方法。此外,此类绑定的管理可以使用独立于平台的中断管理器实现,所述中断管理器能够管理MSI资源到中断工具之间的多个MSI绑定,并通过平台特定的封装程序代码与计算机的底层硬件平台对接。 
美国公开US 2007/0226386 A1“Method and Apparatus For Using A Single Multi-Function Adapter With Different Operating Systems(用于将单个多功能适配器与不同操作系统一起使用的方法和装置)”(2007年9 月27日公开,Sharp等人)介绍了一种灵活布置,其允许根据需要出现单一以太网通道适配器(ECA)硬件功能布置以符合各种操作系统部署模型。PCI接口呈现一种适合于相关操作系统的虚拟设备逻辑模型。映射参数和值与分组流关联,以便允许根据所呈现的逻辑模型和所需的操作正确处理分组流。映射在主机侧和网络侧发生,以便在仍允许在每个接口处正确递送的同时,允许执行ECA的多个操作。 
美国专利第6,978,338B2号“PCI Extended Function Interface andPCI Device Using the Same(PCI扩展功能接口和使用相同接口的PCI设备)”(2005年12月20日公开,Wang等人)披露了一种PCI扩展功能接口和使用此类接口的PCI设备。所述PCI扩展功能接口适合于用于包括一个主设备和至少一个从设备的PCI设备。所述PCI扩展功能接口包括至少一个连接端口和第一电路。所述从设备耦合到对应的连接端口,并且所述PCI扩展功能接口通过所述连接端口传输控制信号以控制对应从设备的操作。所述第一电路用于确定配置空间。 
设备和系统之间的通信需要某种初始化以及建立特定数据结构。 
发明内容
根据本发明的一个方面,提供了一种用于促进适配器和处理器之间的通信的能力。例如,提供了一种可针对与适配器关联的特定操作设置操作参数的能力。在本发明的另一方面,使得所述操作参数的副本可用于操作系统。 
通过提供一种用于在中央处理单元中执行机器指令的计算机程序产品,克服现有技术的缺点并提供优点。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并存储指令以便由所述处理电路执行以执行一种方法。所述方法例如包括:获得要执行的机器指令,根据计算机架构定义所述机器指令以供计算机执行,所述机器指令包括:操作码字段,其标识修改适配器指令;第一字段,其标识位置,所述第一字段的内容包括标识适配器的功能句柄、与修改操作所应用的所 述适配器关联的地址空间的指定,以及指定要针对所述适配器执行的操作的操作控制,所述操作控制指定可以选择的多个操作中的一个操作;以及第二字段,其用于标识所述修改操作要使用的功能信息块的地址;以及执行所述机器指令,所述执行包括:确定所述操作控制的值;以及响应于所述操作控制而修改包括与所述适配器关联的参数的表项,其中所述修改包括根据所述操作控制并根据与所述操作控制相关的一项或多项检查而有选择地更新所述表项的一个或多个参数。 
根据本发明的另一个方面,提供了一种用于在中央处理单元中执行机器指令的计算机程序产品。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并存储指令以便由所述处理电路执行以执行一种方法。所述方法例如包括:获得要执行的机器指令,根据计算机架构定义所述机器指令以供计算机执行,所述机器指令例如包括:操作码字段,其标识存储指令;第一字段,其标识位置,所述第一字段的内容包括标识适配器的功能句柄以及与所述存储操作所应用的适配器关联的地址空间的指定;以及第二字段,其用于标识存储所述指令的结果的位置;以及执行所述机器指令,所述执行例如包括:从与所述适配器关联的功能信息块获得信息;以及响应于一项或多项有效性检查的成功完成,将所述信息从所述功能信息块复制到所述位置。 
在此还描述和要求保护了与本发明的一个或多个方面相关的方法和系统。通过本发明的技术实现了其他特性和优点。在此详细描述了本发明的其他实施例和方面并将它们视为要求保护的发明的一部分。 
附图说明
现在,仅通过实例的方式参考附图描述本发明的优选实施例,这些附图是: 
图1A示出了包含或使用本发明的一个或多个方面的计算环境的一个实施例; 
图1B示出了位于图1A的I/O集线器中并根据本发明的一方面使用的 设备表项的一个实施例; 
图1C示出了包含并使用本发明的一个或多个方面的计算环境的另一个实施例; 
图2示出了根据本发明的一方面的适配器功能的地址空间的一个例子; 
图3A示出了根据本发明的一方面使用的功能表项的一个例子; 
图3B示出了根据本发明的一方面使用的功能句柄的一个实施例; 
图4A示出了根据本发明的一方面使用的修改PCI功能控制指令的一个实施例; 
图4B示出了根据本发明的一方面的由图4A中的修改PCI功能控制指令所使用的字段的一个实施例; 
图4C示出了根据本发明的一方面的由图4A的修改PCI功能控制指令使用的另一个字段的一个实施例; 
图4D示出了根据本发明的一方面而使用的功能信息块(FIB)的内容的一个实施例; 
图5示出了根据本发明的一方面的修改PCI功能控制的逻辑的概况的一个实施例; 
图6示出了根据本发明的一方面,与由修改PCI功能控制指令指定的注册适配器中断操作有关的逻辑的一个实施例; 
图7示出了根据本发明的一方面,与由修改PCI功能控制指令指定的注销适配器中断操作有关的逻辑的一个实施例; 
图8示出了根据本发明的一方面,与由修改PCI功能控制指令指定的注册I/O地址转换参数操作有关的逻辑的一个实施例; 
图9示出了根据本发明的一方面,与由修改PCI功能控制指令指定的注销I/O地址转换参数操作有关的逻辑的一个实施例; 
图10示出了根据本发明的一方面,与由修改PCI功能控制指令指定的重新注册I/O地址转换参数操作有关的逻辑的一个实施例; 
图11示出了根据本发明的一方面,与由修改PCI功能控制指令指定 的重置错误状态指示操作有关的逻辑的一个实施例; 
图12示出了根据本发明的一方面,与由修改PCI功能控制指令指定的重置加载/存储阻止指示操作有关的逻辑的一个实施例; 
图13示出了根据本发明的一方面,由修改PCI功能控制指令指定的设置PCI功能测量参数操作的逻辑的一个实施例; 
图14示出了根据本发明的一方面,由修改PCI功能控制指令指定的设置拦截控制操作的一个实施例; 
图15A示出了根据本发明的一方面使用的存储PCI功能控制指令的一个实施例; 
图15B示出了根据本发明的一方面,由图15A的存储PCI功能控制指令使用的字段的一个实施例; 
图15C示出了根据本发明的一个方面的由图15A的存储PCI功能控制指令使用的另一个字段的一个实施例; 
图16A-16B示出了根据本发明的一方面使用的与存储PCI功能控制指令有关的逻辑的一个实施例; 
图17示出了包含本发明的一个或多个方面的计算机程序产品的一个实施例; 
图18示出了包含并使用本发明的一个或多个方面的主计算机系统的一个实施例; 
图19示出了包含并使用本发明的一个或多个方面的计算机系统的另一个例子; 
图20示出了包括包含并使用本发明的一个或多个方面的计算机网络的计算机系统的另一例子; 
图21示出了包含并使用本发明的一个或多个方面的计算机系统的各个元件的一个实施例; 
图22A示出了包含并使用本发明的一个或多个方面的图21的计算机系统的执行单元的一个实施例; 
图22B示出了包含并使用本发明的一个或多个方面的图21的计算机 系统的分支单元的一个实施例; 
图22C示出了包含并使用本发明的一个或多个方面的图21的计算机系统的加载/存储单元的一个实施例;以及 
图23示出了包含并使用根据本发明的一个或多个方面的仿真(emulated)主计算机系统的一个实施例。 
具体实施方式
根据本发明的一个方面,提供了一种用于针对适配器建立各种操作参数的通用机制。具体地说,提供了被称为修改PCI功能控制(Modify PCIFunction Controls)指令的指令,此指令使能根据指定的操作控制建立适配器的各种操作参数。此指令由操作系统发出(如在此使用的,操作系统包括设备驱动程序)并由处理器的固件执行,使能根据指定的操作控制有选择和有控制地修改设备表项(由硬件采用)和其他固件控制。 
此外,在本发明的另一方面,提供了被称为存储PCI功能控制(StorePCI Function Controls)指令的另一指令,此指令在可由操作系统访问的指定位置中存储操作参数的当前值(例如,功能信息块的内容)。 
如这里所使用的,术语适配器包括任意类型的适配器(例如存储适配器、网络适配器、处理适配器、PCI适配器、加密适配器、其他类型的输入/输出适配器等)。在一个实施例中,一适配器包括一个适配器功能。但是,在其他实施例中,一适配器可包括多个适配器功能。本发明的一个或多个方面可以应用,不管一适配器包含一个适配器功能或多个适配器功能。在一个实施例中,如果一适配器包括多个适配器功能,则可根据本发明的一方面设置每个功能的操作参数。此外,在这里展示的例子中,适配器是与适配器功能(例如PCI功能)可互换地使用的,除非另外说明。 
参考图1A描述包含并使用本发明的一个或多个方面的计算环境的一个实施例。在一个例子中,计算环境100是由国际商业机器公司提供的System服务器。System服务器是基于由国际商业机器公司提供的z/关于z/的细节在IBM出版中描述,该 出版物的标题是“z/Architecture Principles of Operation”(z/Architecture操作原理),IBM出版号SA22-7832-07,2009年2月。和z/是位于纽约州阿蒙克的国际商业机器公司的注册商标。在此使用的其他名字可以是国际商业机器公司或其他公司的注册商标、商标或产品名称。 
在一个例子中,计算环境100包括经由存储控制器106耦合到系统存储器104(也称为主存储器)的一个或多个中央处理单元(CPU)102。CPU 102经由存储器控制器106访问系统存储器,其包括一个或多个地址空间(分配给特定组件(例如,适配器)的存储器部分)。为了访问系统存储器104,中央处理单元102发出包括被用于访问系统存储器的地址的读或写请求。包括在请求中的地址典型地不能直接用于访问系统存储器,且因此,其被转换为可直接用于访问系统存储器的地址。所述地址经由转换机制(XLATE)108而被转换。例如,使用例如动态地址转换(DAT),将地址从虚拟地址转换为真实或绝对的地址。 
包括(必要时转换的)地址的请求被存储控制器106接收。在一个例子中,存储控制器106包含硬件且被用于仲裁对系统存储器的访问并维持存储器的一致性。该仲裁针对从CPU 102接收的请求以及从一个或多个适配器110接收的请求而执行。与中央处理单元类似,适配器向系统存储器104发出请求以获得对系统存储器的访问。 
在一个例子中,适配器110是外围组件互连(PCI)或PCI Express(PCIe)适配器,其包括一个或多个PCI功能。PCI功能发出请求,该请求经由一个或多个交换器(例如,PCIe交换器)114被路由到输入/输出集线器112(例如,PCI集线器)。在一个例子中,输入/输出集线器包括含有一个或多个状态机的硬件,并经由I/O到存储器总线120耦合到存储器控制器106。 
输入/输出集线器例如包括从交换机接收请求的根复合体116。所述请求包括被提供给地址转换和保护单元118的输入/输出地址,地址转换和保护单元118访问用于所述请求的信息。作为例子,所述请求可以包括用于 执行直接存储器访问(DMA)操作或请求消息信号中断(MSI)的输入/输出地址。地址转换和保护单元118访问用于所述DMA或MSI请求的信息。作为一个特定例子,对于DMA操作,可以获得信息以转换所述地址。然后将转换后的地址转发到存储器控制器以访问系统存储器。 
在一个例子中,如参考图1B所描述的,从位于I/O集线器中(例如,在地址转换和保护单元中)的设备表132的设备表项130中获得用于由适配器发出的DMA或MSI请求的信息。所述设备表项包括适配器的信息。具体地说,它包括用于执行与其适配器有关的某些操作的操作参数。所存储的特定参数依赖于操作并将下面更全面地描述。 
每个适配器具有与之关联的至少一个设备表项。例如,分配给适配器的每个地址空间(在系统存储器中)具有一个设备表项。对于从适配器(例如,PCI功能138)发出的请求,使用在该请求中提供的请求者ID查找设备表项。 
在计算环境的另一实施例中,除了一个或多个CPU 102之外或者替代一个或多个CPU 102,参考图1C,将中央处理复合体耦合到存储器控制器106。在此例子中,中央处理复合体150例如包括一个或多个分区或区域152(例如,逻辑分区LP1-LPn)、一个或多个中央处理器(例如,CP1-CPm)154以及系统管理程序156(例如,逻辑分区管理器),将在下面描述它们中的每一个。 
每个逻辑分区152能够用作单独的系统。即,每个逻辑分区可以独立重置,初始使用操作系统或系统管理程序(例如,位于纽约阿蒙克的国际商业机器公司提供的z/)加载,并使用不同的程序运行(如果需要)。在逻辑分区中运行的操作系统、系统管理程序或应用程序看似可以访问完整的系统,但系统仅有一部分可用。硬件和许可内部代码(也称为微代码或毫代码)的组合阻止逻辑分区中的程序干扰不同逻辑分区中的程序。这允许多个不同的逻辑分区以时间片方式在单个或多个物理处理器上运行。在此特定例子中,每个逻辑分区都具有常驻操作系统158,对于一个或多个逻辑分区,常驻操作系统158可能有所不同。在一个实施例中,操作系 统158是位于纽约阿蒙克的国际商业机器公司提供的z/或zLinux操作系统。z/和z/是位于纽约阿蒙克的国际商业机器公司的注册商标。 
中央处理器154是分配给逻辑分区的物理处理器资源。例如,逻辑分区152包括一个或多个逻辑处理器,每个逻辑处理器表示分配给该分区的物理处理器资源154的全部或部分。可以将底层处理器资源专用于此分区或与另一个分区共享。 
逻辑分区152通过在处理器154上运行的固件实现的系统管理程序156管理。逻辑分区152和系统管理程序156均包括一个或多个程序,这些程序驻留在与中央处理器关联的中央存储器的相应部分中。系统管理程序156的一个例子是位于纽约阿蒙克的国际商业机器公司提供的Processor Resource/Systems Manager(PR/SM)。 
如在此使用的,固件例如包括处理器的微代码、毫代码和/或宏代码。它例如包括用于实现更高级机器代码的硬件级别指令和/或数据结构。在一个实施例中,它例如包括专用代码,所述专用代码通常作为包括特定于底层硬件的可信软件或微代码的微代码提供,并控制操作系统对系统硬件的访问。 
尽管在此例子中描述了具有逻辑分区的中央处理复合体,但其他处理单元(其中包括未被分区的单处理器或多处理器处理单元)可以包括并使用本发明的一个或多个方面。在此描述的中央处理复合体只是一个例子。 
如上所述,适配器可以向处理器发出请求各种操作(例如直接存储器访问、消息信号中断等)的请求。此外,处理器可以向适配器发出所述请求。例如,返回图1B,处理器102可以发出请求以访问适配器功能138。经由I/O集线器112和一个或多个交换机114将所述请求从处理器路由到适配器。在此实施例中,存储器控制器未被示出。然而,I/O集线器可以直接或经由存储器控制器耦合到处理器。 
在一个特定例子中,在处理器中执行的操作系统140向适配器功能发出请求特定操作(例如,读取/写入)的指令。在另一个例子中,根据本发 明的一个方面,操作系统发出指令以针对适配器功能建立操作参数或获得特定于适配器功能的操作参数的副本。这些指令分别被称为修改PCI功能控制指令和存储PCI功能指令,并由处理器执行。 
在此例子中,由操作系统发出的修改PCI功能控制指令和存储PCI功能控制指令特定于I/O基础架构。即,因为I/O基础架构基于PCI或PCIe(它们在此都被称为PCI,除非另外说明),所以所述指令是PCI指令。尽管在此例子中所述I/O基础架构和指令基于PCI,但在其他实施例中,可以使用其他基础架构和对应的指令。 
参考图2描述了有关适配器功能138的进一步细节。如图2中所示,适配器功能138包括存储器200,存储器200被定义为多个地址空间,例如包括:配置空间202(例如,PCI功能的PCI配置空间);I/O空间204(例如,PCI I/O空间);以及一个或多个存储器空间206(例如,PCI存储器空间)。在其他实施例中,可以提供更多、更少或不同的地址空间。 
功能表项与每个适配器功能关联。如图3A中所示,在一个例子中,功能表300包括一个或多个功能表项(FTE)302。在一个例子中,每个适配器功能具有一个功能表项。每个功能表项302包括用于与其适配器功能关联的处理的信息。在一个例子中,功能表项302例如包括: 
实例号308:此字段指示与功能表项关联的适配器功能句柄的特定实例; 
设备表项(DTE)索引1…n:存在一个或多个设备表索引,且每个索引是到一个设备表中的索引,用于定位设备表项(DTE)。每个适配器功能有一个或多个设备表项,且每个项包括与其适配器功能有关的信息,包括用于处理适配器功能的请求(例如,DMA请求、MSI请求)的信息以及涉及与适配器功能有关的请求(例如,PCI指令)的信息。每个设备表项与分配给适配器功能的系统存储器内的一个地址空间有关。适配器功能可具有分配给适配器功能的系统存储器内的一个或多个地址空间。 
示忙器312:该字段指示适配器功能是否忙; 
持久错误状态指示器314:该字段指示适配器功能是否处于持久错误 状态; 
恢复启动指示器316:该字段指示是否已启动对于适配器功能的恢复; 
许可指示器318:该字段指示尝试控制适配器功能的操作系统是否有权限这么做; 
使能指示器320:该字段指示适配器功能是否被使能(例如1=使能,0=禁止); 
请求者标识符(RID)322:这是适配器功能的标识符,且包括例如总线号、设备号和功能号。 
在一个例子中,此字段用于访问适配器功能的配置空间。例如,可以通过在操作系统(或其他配置)向所述适配器功能发出的指令中指定配置空间来访问该配置空间。在所述指令中指定到所述配置空间的偏移以及用于查找包括RID的适当功能表项的功能句柄。固件接收指令并确定其用于配置空间。因此,它使用RID来生成对I/O集线器的请求,且I/O集线器创建访问适配器的请求。适配器功能的定位是基于RID,且该偏移指定到适配器功能的配置空间中的偏移。 
基地址寄存器(BAR)(1到n)324:该字段包括多个无符号整数,被指定为BAR0-BARn,其与原始指定的适配器功能有关,且其值也被存储在与适配器功能有关的基地址寄存器中。每个BAR指示适配器功能内的存储器空间或I/O空间的开始地址,并也指示地址空间的类型,即,它是例如64或32位的存储空间,或是32位的I/O空间; 
在一个例子中,它被用于访问适配器功能的存储空间和/或I/O空间。例如,在访问适配器功能的指令中提供的偏移被添加到与在指令中指定的地址空间有关的基地址寄存器中的值,以获得用于访问适配器功能的地址。在指令中提供的地址空间标识符标识将被访问的适配器功能内的地址空间,以及将被使用的对应的BAR; 
大小(Size)1…n:该字段包括多个无符号整数,被指定为SIZE0-SIZEN;大小字段的值,当不是零时,表示每个地址空间的大小,且每个项对应于先前描述的BAR。 
以下将描述关于BAR和Size的进一步细节。 
1.当BAR没有针对适配器功能而实现时,BAR字段及其对应的大小字段都被存储为零。 
2.当BAR字段表示I/O地址空间或者32位存储器地址空间时,对应的大小字段是非零的并表示地址空间的大小。 
3.当BAR字段表示64位存储器地址空间时, 
a.BARn字段表示最低有效(least significant)的地址位。 
b.下一个连续BARn+1字段表示最高有效(most significant)的地址位。 
c.对应的SIZEn字段是非零的,并表示地址空间的大小。 
d.对应的SIZEn+1字段不是有意义的,且被存储为零。 
内部路由信息328:该信息被用于执行到适配器的特定路由。作为例子,它包括例如节点、处理器芯片和集线器寻址信息。 
状态指示330:这提供了关于例如加载/存储操作是否被阻止或适配器是否处于错误状态的指示,以及其他指示。 
在一个例子中,示忙器、持久错误状态指示器以及恢复启动指示器基于由固件执行的监督而被设置。而且,许可指示器基于例如策略而被设置;且BAR信息基于在处理器(例如,处理器的固件)的总线行走(bus walk)期间发现的配置信息而被设置。在其他实施例中,功能表项可包括更多、更少或不同的信息。包括的信息可取决于由适配器功能支持或使能的操作。 
在一个实施例中,为了在包括一个或多个项的功能表中定位功能表项,使用功能句柄。例如,使用功能句柄的一个或多个位作为到功能表的索引以定位特定功能表项。每个适配器功能具有一个功能句柄。在一个特定例子中,如图3B中所示,功能句柄350例如包括使能指示器352,其指示是否使能句柄;功能号354,其标识功能(这是静态标识符,并且可以用于作为到功能表的索引);以及实例号356,其指定此功能句柄的特定实例。 
根据本发明的一方面,为配置(例如,操作系统)提供了用于针对适配器功能建立操作参数的能力。针对或代表适配器功能为执行的特定操作 设置这些操作参数。在一个例子中,此能力包括修改PCI功能控制指令,将参考图4A-4D描述此指令的一个例子。 
参考图4A,修改PCI功能控制指令400例如包括操作码402,其指示修改PCI功能控制指令;第一字段404,其指定位置,在该处包括有关针对其建立操作参数的适配器功能的各种信息;以及第二字段406,其指定从该处获取PCI功能信息块(FIB)的位置。下面将进一步描述由字段1和2指定的位置的内容。 
在一个实施例中,字段1指定包括各种信息的通用寄存器。如图4B中所示,该寄存器的内容例如包括:功能句柄410,其标识代表其执行修改指令的适配器功能的句柄;地址空间412,其指定与所述功能句柄指定的适配器功能关联的系统存储器中的地址空间;操作控制414,其指定要针对适配器功能执行的操作;以及状态416,其在以预定义代码完成指令时,提供有关所述指令的状态。 
在一个例子中,如图4C中所示,字段2指定PCI功能信息块(FIB)的逻辑地址420,所述FIB包括有关关联的适配器功能的信息。根据本发明的一方面,功能信息块用于更新与适配器功能关联的设备表项和/或功能表项(或其他位置)。在发出所述指令之前,在适配器的初始化和/或配置期间和/或响应于特定事件,将所述信息存储在FIB中。 
参考图4D描述关于功能信息块的进一步细节。在一个实施例中,功能信息块450包括以下字段: 
格式451:该字段指定FIB的格式。 
拦截控制452:该字段被用来指示特定指令由可调页模式客户(pageable mode guest)进行的客户执行是否导致指令拦截; 
错误指示454:该字段包括用于直接存储器访问和适配器中断的错误状态指示。当该位被设置(例如1)时,在执行用于适配器功能的直接存储器访问或适配器拦截时,检测到一个或多个错误; 
加载/存储阻止456:该字段指示加载/存储操作是否被阻止; 
PCI功能有效458:该字段包括用于适配器功能的使能控制。当该位 被设置(例如1)时,适配器功能被认为对于I/O操作而被使能; 
地址空间注册460:该字段包括用于适配器功能的直接存储器访问使能控制。当该字段被设置(例如1)时,直接存储访问被使能; 
页大小461:该字段指示将被DMA存储器访问所访问的页或其他存储单元的大小; 
PCI基地址(PBA)462:该字段是用于分配给适配器功能的系统存储器中的地址空间的基地址。它表示适配器功能被允许使用以直接存储器访问指定的DMA地址空间的最低虚拟地址; 
PCI地址界限(PAL)464:该字段表示适配器功能被允许在指定的DMA地址空间内访问的最高虚拟地址; 
输入/输出地址转换指针(IOAT)466:输入/输出地址转换指针指定由PCI虚拟地址转换使用的任何转换表中的第一个,或者它可直接指定作为转换结果的存储帧的绝对地址; 
中断子类(ISC)468:该字段包括用于针对适配器功能给出适配器中断的中断子类; 
中断数(NOI)470:该字段指定针对适配器功能接受的不同的中断代码的数量。该字段也以位定义了由适配器中断位向量地址和适配器中断位向量偏置字段指定的适配器中断位向量的大小; 
适配器中断位向量地址(AIBV)472:该字段指定用于适配器功能的适配器中断位向量的地址。该向量在中断处理中使用; 
适配器中断位向量偏移474:该字段指定用于适配器功能的第一适配器中断位向量位的偏移; 
适配器中断概要位地址(AISB)476:该字段提供指定可选地在中断处理中使用的适配器中断概要位的地址; 
适配器中断概要位偏移478:该字段提供到适配器中断概要位向量中的偏移; 
功能测量块(FMB)地址480:该字段提供用于收集关于适配器功能的测量的功能测量块的地址; 
功能测量块键(key)482:该字段包括访问功能测量块的访问键; 
概要位通知控制484:该字段指示是否存在正使用的概要位向量; 
指令授权令牌486:该字段用于确定可调页存储模式客户(例如,V=V客户)是否被授权执行PCI指令而没有主机干预。 
在一个例子中,在z/中,可调页客户经由开始解释执行(SIE)指令以解释等级2被解释性地执行。例如,逻辑分区(LPAR)系统管理程序执行SIE指令以开始物理的、固定的存储器中的逻辑分区。如果z/是该逻辑分区中的操作系统,它发出SIE指令以在其V=V(虚拟)存储中执行其客户(虚拟)机。因此,LPAR系统管理程序使用等级1SIE,且z/管理程序使用等级2SIE;以及 
地址转换格式487:该字段指示用于将在转换中使用的最高级转换表的地址转换的所选择的格式(例如,最高级表(例如,段表、区域(region)第三等)的指示以及所选择的格式(例如,CPU DAT兼容、I/O扩展地址转换格式、旁路(bypass)格式、无取回格式)的指示)。 
根据本发明的一方面,在修改PCI功能控制指令中指定的功能信息块被用于修改选择的设备表项、功能表项或与在指令中指定的适配器功能有关的其他固件控制。通过修改设备表项、功能表项和/或其他固件控制,为适配器提供某些服务。这些服务包括,例如,适配器中断;地址转换;重置错误状态;重置加载/存储阻止;设置功能测量参数;以及设置拦截控制 
参考图5描述与修改PCI功能控制指令有关的逻辑的一个实施例。在一个例子中,指令由操作系统(或其他配置)发出并由执行操作系统的处理器(例如,固件)执行。在此处的例子中,指令和适配器功能是基于PCI的。但是,在其他实施例中,可使用不同的适配器结构和相应的指令。 
在一个例子中,操作系统向指令提供以下操作数(例如,在由指令指定的一个或多个寄存器中);PCI功能句柄;DMA地址空间标识符;操作控制;以及功能信息块的地址。 
参考图5,初始地,确定是否安装了允许修改PCI功能控制指令的工具(facility),查询500。该确定通过例如检查存储在例如控制块中的指 示器而做出。如果工具未安装,提供异常条件,步骤502。否则,确定指令是否由可调页存储模式客户(或其他客户,例如不可调页存储模式客户)发出,查询504。如果是,主机操作系统将仿真用于该客户机的操作,步骤506。 
否则,确定一个或多个操作数是否被对准,查询508。例如,确定功能信息块的地址是否是在双字边界。在一个例子中,这是可选的。如果操作数未被对准,则提供异常条件,步骤510。否则,确定功能信息块是否可访问,查询512。如果否,则提供异常条件,步骤514。否则,确定在修改PCI功能控制指令的操作数中提供的句柄是否被使能,查询516。在一个例子中,该确定通过检查句柄中的使能指示器而做出。如果句柄没有被使能,则提供异常条件,步骤518。 
如果句柄被使能,则句柄被用于定位功能表项,步骤520。即,至少一部分句柄被用于索引到功能表中以定位对应于适配器功能的功能表项,操作参数将为该适配器功能建立。 
确定功能表项是否被发现,查询522。如果否,则提供异常条件,步骤524。否则,如果发出指令的配置是客户,查询526,则提供异常条件(例如拦截到主机),步骤528。如果配置不是客户,则该查询可被忽略,或者如果指定的话,可检查其他授权。 
随后确定该功能是否被使能,查询530。在一个例子中,该确定是通过检查功能表项中的使能指示器而做出的。如果它未被使能,则提供异常条件,步骤532。 
如果功能被使能,则确定恢复是否是活动的,查询534。如果由功能表项中的恢复指示器确定恢复是活动的,则提供异常条件,步骤536。但是,如果恢复不是活动的,则进一步确定功能是否忙,查询538。该确定是通过查询功能表项中的示忙器而做出的。如果功能忙,则提供忙条件,步骤540。利用该忙条件,可重试该指令,而不是放弃它。 
如果功能不忙,则进一步确定功能信息块格式是否有效,查询542。例如,检查FIB的格式字段以确定该格式是否由系统支持。如果它是无效 的,则提供异常条件,步骤544。如果功能信息块格式是有效的,则进一步确定在指令的操作数中指定的操作控制是否是有效的,查询546。即,该操作控制是否是用于该指令的指定操作控制中的一个。如果它是无效的,则提供异常条件,步骤548。但是,如果该操作控制是有效的,则继续处理指定的特定操作控制。 
在一个例子中,操作控制是注册适配器中断操作,其被用于控制适配器中断。响应于该操作控制,基于功能信息块的合适内容,与适配器中断相关的适配器功能参数在设备表项中被设置。 
参考图6来描述与该操作相关的逻辑的一个实施例。作为一个例子,从功能信息块获取的用于该操作的操作数包括例如:中断子类(ISC);允许的中断数(NOI);适配器中断位向量偏移(AIBVO);概要通知(S);适配器中断概要位向量偏移(ABVSO);适配器中断位向量(AIBV)地址;以及适配器中断概要位向量(AISB)地址。 
参考图6,开始,在查询600,确定在FIB中指定的中断数(NOI)是否大于依赖于模型的最大值。如果是,则在步骤602,提供异常条件。但是,如果中断数不大于依赖于模型的最大值,则在查询604,进一步确定中断数加上适配器中断位向量偏移(NOI+AIBVO)是否大于依赖于模型的最大值。如果是,则在步骤606,提供异常条件。如果NOI加上AIBVO不大于依赖于模型的最大值,则在查询608,进一步确定AIBV地址加上NOI是否跨越4k边界。如果它确实跨越4k边界,则在步骤610,提供异常条件。否则,在步骤612,确定对于任何所需的资源是否有足够的资源可用。如果没有足够的资源,则在步骤614,提供异常条件。 
否则,在步骤616,确定是否已经为该功能注册适配器中断。在一个实施例中,这可以通过检查(例如FIB中的)一个或多个参数来确定。特别地,与中断相关的参数例如NOI被检查。如果字段被填充,则为中断注册适配器。如果适配器已经被注册,则在步骤618,提供异常条件。否则,从FIB获取中断参数,并将其放置于功能表项(或其他指定的位置)和相应的设备表项(DTE)中。此外,在步骤620,在DTE中设置MSI使能 指示器。即,基于从功能信息块取回的信息,在FTE和/或DTE中设置与适配器中断相关的PCI功能参数。这些参数包括例如ISC、NOI、AIBVO、S、AIBVSO、AIBV地址和AISB地址。 
除了上述之外,可被指定的另一操作控制是注销存储器中断操作,其例子将参考图7来描述。使用该操作,与适配器中断相关的适配器功能参数被重置。 
参考图7,开始,在查询700,确定是否为中断注册了功能句柄所指定的适配器。如果不是,则在步骤702,提供异常条件。否则,在步骤704,将功能表项(或其他位置)和相应设备表项中的中断参数设置为0。在一个例子中,这些参数包括ISC、NOI、AIBVO、S、AIBSO、AIBV地址和AISB地址。 
除了上述之外,可以指定的另一个操作控制是用于控制适配器的地址转换的注册I/O地址转换参数操作。通过此操作,从FIB的适当参数设置与I/O地址转换相关的PCI功能参数。这些参数例如包括:PCI基地址;PCI地址限制(也称为PCI限制或限制);I/O地址转换指针;地址转换格式;以及页面大小,它们是此操作的操作数。还具有隐含操作数,包括起始DMA地址(SDMA)和结束DMA地址(EDMA),它们被存储在可由执行指令的处理器访问的位置中。 
参考图8描述了用于针对I/O地址转换建立操作参数的逻辑的一个实施例。首先,确定FIB中的PCI基地址是否大于FIB中的PCI限制(查询800)。如果基地址和限制的比较指示基地址大于限制,则识别异常条件(步骤802)。然而,如果基地址小于或等于限制,则进一步确定转换格式和页面大小是否有效(查询804)。如果它们无效,则提供异常条件(步骤806)。然而,如果它们有效,则进一步确定地址空间的大小(根据基地址和限制)是否超过转换容量(查询808)。在一个例子中,根据上级表的格式,将地址空间的大小与可能的最大地址转换容量相比较。例如,如果上级表是DAT兼容的段表,则最大转换容量是2GB。 
如果地址空间的大小超过转换容量,则提供异常条件(步骤810)。 否则,进一步确定基地址是否小于起始DMA地址(查询812)。如果小于,则提供异常条件(步骤814)。否则,另外确定地址限制是否大于结束DMA地址(查询816)。如果大于,则提供异常条件(步骤818)。在一个例子中,起始DMA地址和结束DMA地址基于系统范围策略。 
之后,确定是否提供足够资源(如果需要)以执行I/O地址转换(查询820)。如果没有,则提供异常条件(步骤822)。否则,进一步确定是否已经在DTE和FTE中注册I/O地址转换参数(查询824)。这通过检查DTE/FTE中的参数的值来确定。例如,如果DTE/FTE中的值是零或另一个定义的值,则尚未执行注册。为了定位FTE,使用在指令中提供的句柄,为了定位DTE,使用FTE中的设备索引。 
如果已经针对地址转换注册适配器功能,则提供异常条件(步骤826)。如果没有,则确定指定的DMA地址空间是否有效(即,它是否是已针对其使能DTE的地址空间)(查询828)。如果无效,则提供异常条件(步骤830)。如果所有检查都成功,则将转换参数放在设备表项中,并且可选地放在对应功能表项(或其他指定的位置)中(步骤832)。例如,从功能信息块复制与I/O地址转换相关的PCI功能参数并将其放在DTE/FTE中。这些参数例如包括PCI基地址、PCI地址限制、I/O地址转换指针、地址转换格式和页面大小。此操作使能DMA访问指定的DMA地址空间。它针对适配器功能使能I/O地址转换。 
可以由修改PCI功能控制指令指定的另一个操作控制是注销I/O地址转换参数操作,参考图9描述了此操作的一个例子。通过此操作,将与I/O地址转换相关的功能参数重置为零。此操作禁用DMA对指定的DMA地址空间的访问并导致清除此DMA地址空间的I/O转换后备缓冲区项。它将禁用地址转换。 
参考图9,在一个实施例中,确定是否未注册I/O地址转换参数(查询900)。在一个例子中,通过检查DTE或FTE中的适当参数的值进行此确定。如果这些字段是零或某一指定的值,则它们未被注册。因此,提供异常条件(步骤902)。如果它们被注册,则确定DMA地址空间是否 有效(查询904)。如果它无效,则提供异常条件(步骤906)。如果DMA地址空间有效,则清除设备表项中的转换参数,并且可选地清除对应功能表项中的转换参数(步骤908)。 
另一个操作控制是用于调整DMA地址空间大小的重新注册I/O地址转换参数操作。通过此操作,使用FIB的适当参数替换与I/O地址转换相关的PCI功能参数。这些参数例如包括:PCI地址限制;I/O地址转换指针;格式;以及页面大小,从FIB作为操作数提供这些参数。设备表项或功能表项中当前注册的PCI基地址以及结束DMA地址也是隐含操作数。 
参考图10描述了与此操作关联的逻辑的一个实施例。首先,确定来自功能表项的当前基地址是否大于在功能信息块中指定的PCI地址限制(查询1000)。如果大于,则提供异常条件(步骤1002)。如果不大于,则确定转换格式和大小是否有效(查询1004)。如果无效,则提供异常条件(步骤1006)。如果地址转换表的格式和页面(或其他存储单位)的大小有效,则进一步确定地址空间的大小是否超过转换容量(查询1008)。如果地址空间大小超过转换容量,则提供异常条件(步骤1010)。如果未超过,则确定地址限制是否大于结束DMA地址(查询1016)。如果大于,则提供异常条件(步骤1018)。如果不大于,则确定是否具有足够资源(如果需要)以执行此操作(查询1020)。如果没有足够的资源,则提供异常条件(步骤1022)。 
如果提供足够资源,则确定是否针对适配器功能注册I/O地址转换(查询1024)。如果未注册,则提供异常条件(步骤1026)。否则,确定地址空间是否有效(步骤1028)。如果地址空间无效,则提供异常条件(步骤1030)。如果检查成功,则更新设备表项中的转换参数,并且可选地更新对应功能表项(或其他指定的位置)中的转换参数(步骤1032)。即,使用来自功能信息块的操作数替换与I/O地址转换相关的PCI功能参数。这些参数包括PCI地址限制、转换格式和I/O地址转换指针字段。DMA地址空间和PCI基地址字段保持不变。响应于检查这些条件,用于更改这些字段的请求被忽略或提供异常条件。此外,在一个实施例中,如果减小 DMA地址空间的大小,则清除I/O集线器中的转换后备缓冲区。I/O转换保持被使能。 
在此操作的一个方面,包括指示与重新注册地址转换参数相关的更新的特定排序的控制。例如,如果增加转换级别数(即,使用更高级转换表),则在包括PCI地址限制和检查之前更改输入/输出地址转换指针以确保此更改。此外,如果减少级别数量,则提供检查以确保在地址转换指针之前更新限制。然后,执行任何相关的转换后备缓冲区的清除。 
可以执行的另一操作是用于重置错误条件的重置错误状态指示操作,参考图11描述了此操作的一个例子。通过此操作,将错误状态和加载/存储阻止指示设置为零,从而允许I/O集线器处理从适配器接收的后续DMA和MSI。在一个实施例中,确定适配器功能是否处于错误状态,如由此参数的值指示的那样(查询1100)。如果否,则提供异常条件(步骤1102)。否则,将功能表项和对应设备表项中的错误状态和加载/存储阻止指示重置为零(步骤1104)。 
可以指定的另一个操作控制是重置加载/存储阻止指示操作。通过此操作,将加载/存储阻止指示设置为零,从而允许向此适配器发出PCI加载/存储指令。参考图12描述了与此操作关联的逻辑的一个实施例。首先,确定功能是否处于加载/存储阻止状态,如由此参数中的值指示的那样(查询1200)。如果否,则提供异常条件(步骤1202)。否则,将功能表项和对应设备表项中的加载/存储阻止指示重置为零(步骤1204)。 
可以由操作控制指定的另一操作是用于维护测量的设置PCI功能测量参数操作。通过此操作,从功能信息块设置与PCI功能测量相关的PCI功能参数。如果功能测量块地址字段包含非零地址,则使能PCI功能测量。然而,如果功能测量块地址字段包含零,则禁用PCI功能测量。在一个例子中,从功能信息块获得的此操作的操作数包括功能测量块地址和功能测量块键。隐含操作数包括DMA地址空间数,其从功能表项中获得。 
参考图13描述了与此操作关联的逻辑的一个实施例。在一个例子中,确定功能测量块地址是否等于零(查询1300)。如果等于零,则将功能表 项中的功能测量参数重置为零(步骤1302)。此外,清除并禁用I/O集线器中的DMA计数器,并且禁用测量。 
返回查询1300,如果功能测量块地址不为零,则进一步确定所有设备表项的功能测量块是否跨越4K边界(查询1306)。在一个例子中,对于每个DMA地址空间,通过将功能测量块地址、固定功能测量块大小以及DMA地址空间特定扩展相加来确定4K块跨越。如果功能测量块跨越4K边界,则提供异常条件(步骤1308)。否则,从功能信息块的功能测量块地址和功能测量块键参数设置功能表项中的功能测量参数(例如,FMBA和FMBK)(步骤1312)。此外,清除并使能I/O集线器中的DMA计数器,并且使能测量。 
可以由修改PCI功能控制指令的操作控制指定的另一操作是用于控制主机操作系统的指令拦截的设置拦截控制操作。通过此操作,从功能信息块的中断控制字段设置与拦截控制相关的PCI功能参数。当由可调页存储模式客户发出时,认为此操作控制被保留。 
参考图14描述了设置拦截控制操作的逻辑的一个实施例。在一个例子中,操作数是来自功能信息块的拦截控制。响应于指定此操作,将功能表项中的拦截控制设置为来自功能信息块的拦截控制(步骤1400)。 
如上所述,使用修改PCI功能控制指令,使用FIB中的值替换指定PCI功能的选定程序可修改控制。这使得操作系统能够请求对DTE(和FTE)的更改,而无需为操作系统提供对DTE的直接访问。固件执行选定操作并且能够使用各种有效性检查提供控制,如上所述。检查特定于被请求的操作。 
除了修改PCI功能控制指令之外,存储PCI功能控制指令也可用于配置。此指令用于将功能信息块的当前内容存储在操作系统指定的位置中。参考图15A-15C描述了存储PCI功能控制指令的一个实施例。 
参考图15A,存储PCI功能控制指令1500例如包括:操作码1502,其指示存储PCI功能控制指令;第一字段1504,其指定位置,在该处包括有关针对其执行存储的适配器功能的各种信息;以及第二字段1506,其指 定在该处存储PCI功能信息块的逻辑地址的位置。 
在一个实施例中,字段1指定包括各种信息的通用寄存器。如图15B中所示,寄存器的内容例如包括:功能句柄1510,其标识针对其执行存储指令的适配器功能的句柄;状态1512,其在以预定义代码完成指令时,提供有关该指令的状态;以及地址空间1514,其指定与功能句柄所指定的适配器功能关联的系统存储器中的地址空间。 
在一个例子中,如图15C中所示,字段2指定PCI功能信息块的逻辑地址1516,PCI功能信息块包括有关适配器功能的信息,并根据本发明的一个方面被复制到此指定的位置。 
参考图16A-16B描述了与存储PCI功能控制指令关联的逻辑的一个实施例。在一个例子中,此指令的操作数包括使能的功能句柄、DMA地址空间标识符,以及结果缓冲区(例如,用户存储器中的功能信息块)的地址。在一个例子中,操作系统发出此由处理器执行的指令。 
参考图16A,首先,确定是否安装了允许存储PCI功能控制指令的工具(查询1600)。例如,通过检查例如存储在控制块中的指示器进行此确定。如果未安装该工具,则提供异常条件(步骤1602)。否则,确定指令是否由可调页存储模式客户(或其他客户)发出(查询1604)。如果是,则主机操作系统将仿真此客户机的操作(步骤1606)。 
否则,确定操作数是否对齐(查询1608)。例如,确定功能信息块将存储到的地址是否在双字边界上。在一个例子中,这是可选的。如果操作数未对齐,则提供异常条件(步骤1610)。否则,确定功能信息块是否可存储(查询1612)。即,它是否适合结果缓冲区。如果否,则提供异常条件(步骤1614)。否则,使用句柄定位功能表项(步骤1616)。即,使用句柄的至少一部分作为到功能表的索引,以定位对应于针对其执行存储的适配器功能的功能表项。 
确定是否找到功能表项(查询1618)。如果未找到,则提供异常条件(步骤1620)。否则,如果发出指令的配置是客户机,则确定是否配置功能以供客户机使用(查询1622)。如果客户机未被授权,则提供异常条件 (步骤1624)。否则,确定功能是否忙(查询1626)。通过检查功能表项中的示忙器进行此确定。如果功能忙,则提供忙条件(步骤1628)。在忙条件的情况下,可以重试指令,而不是放弃。 
如果功能不忙,则进一步确定地址空间是否有效(查询1630)。如果地址空间无效,则提供异常条件(步骤1632)。然而,如果地址空间有效,则确定是否针对此适配器功能激活恢复(查询1634)。如果激活恢复,则提供异常条件(步骤1636)。如果未激活恢复,则进一步确定是否存在永久错误(查询1638)。如果存在永久错误,则提供异常条件(步骤1640)。否则,处理继之以确定是否使能功能(查询1650)(图16B)。 
在一个例子中,通过检查功能表项中的使能指示器进行此确定。如果未使能功能,则确定是否使能句柄(查询1652)。在一个实施例中,通过检查句柄中的使能指示器进行此确定。如果使能句柄但未使能功能,则提供异常条件(步骤1654)。然而,如果功能或句柄均未被使能,则将零存储在结果缓冲区中(步骤1656)。 
返回查询1650,如果使能功能,则再次确定是否使能句柄(查询1660)。如果功能和句柄均被使能,则将来自FIB的功能信息存储在操作系统指定的位置(在此被称为结果缓冲区)中(步骤1662)。 
然而,如果使能功能但未使能句柄,则将来自FIB的功能信息存储在结果缓冲区中,并使用所使能的句柄替换所输入的功能句柄(步骤1664)。这将完成存储PCI功能控制指令的处理。 
如上所述,提供了存储PCI功能控制指令,此指令使能将功能信息块的副本放在操作系统指定的位置中。 
修改和存储指令使得操作系统能够请求特定操作,例如针对适配器功能(修改指令)设置各种操作参数和/或获得包含适配器功能(存储)的特性的功能信息块的副本。响应于执行这些指令的操作系统请求,固件执行指令并确保在完成被请求操作之前进行某些检查,从而提供对操作系统的某些控制。 
根据本发明的一个方面,提供了一种机制,其中主机数据结构(a)在 PCI设备可以与系统通信之前建立,(b)在PCI访问期间动态更新,以及(c)当终止PCI通信时被取消。这些结构例如包括: 
限制可由PCI功能访问的主存储器的范围的边界; 
PCI功能的直接存储器访问(DMA)协议使用的I/O地址转换表; 
用于发信号通知I/O操作的进度(包括完成)的中断位向量和概要位向量; 
用于PCI功能的性能测量的结构;以及 
用于其他PCI指令的解释性执行的结构。 
在一个例子中,所述机制包括修改PCI功能控制指令。 
在此描述的实施例中,适配器是PCI适配器。如在此使用的,PCI指根据由外围组件互连特别兴趣组(PCI-SIG)定义的基于PCI的规范而实现的任何适配器,包括但不限于PCI或PCIe。在一个特定例子中,快速外围组件互连(PCIe)是组件级互连标准,其定义了用于I/O适配器和主机系统之间的事务的双向通信协议。根据用于PCIe总线上的传输的PCIe标准,PCIe通信被封装在包中。源于I/O适配器且止于主机系统的事务被称为上行事务。源于主机系统且止于I/O适配器的事务被称为下行事务。PCIe拓扑基于成对(例如,一个上行链路,一个下行链路)以形成PCIe总线的点对点单向链路。PCIe标准由PCI-SIG维护并公布。 
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。 
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的 系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。 
现在参考图17,在一个例子中,计算机程序产品1700包括,例如,一个或多个计算机可读存储介质1702,在其上存储有计算机可读的程序代码装置或逻辑1704,以提供并方便本发明的一个或多个方面。 
体现在计算机可读介质上的程序代码可以用任何适当的介质传输,所述介质包括但不限于:无线、有线、光缆、RF等,或上述的任意合适的组合。 
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。 
本文中将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图 中的方框中规定的功能/操作的装置。 
也可以将这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制品(manufacture)。 
也可以将计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。 
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 
除了上述,本发明的一个或多个方面可由服务提供商提供、许诺(offer)、部署、管理、服务等,该服务提供商提供用户环境的管理。例如,服务提供商可创建、维持、支持等计算机代码和/或计算机基础设施,其为一个或多个用户执行本发明的一个或多个方面。反过来,服务提供商可例如根据预订和/或费用协议从用户接受付费。额外地或可替换地,服务提供商可从向一个或多个第三方销售广告内容接受付费。 
在本发明的一个方面,可部署用于执行本发明的一个或多个方面的应用。作为一个例子,部署应用包括提供计算机基础设施,其可操作以执行 本发明的一个或多个方面。 
作为本发明的又一个方面,可部署计算基础设施,其包括将计算机可读代码集成到计算机系统,其中与计算系统结合的代码能够执行本发明的一个或多个方面。 
作为本发明的再一个方面,可提供用于集成计算基础设施包括将计算机可读码集成到计算机系统的过程。计算机系统包括计算机可读介质,其中计算机介质包括本发明的一个或多个方面。与计算机系统结合的代码能够执行本发明的一个或多个方面。 
尽管以上描述了各种实施例,这些仅是例子。例如,其他体系结构的计算环境可包含并使用本发明的一个或多个方面。作为例子,除了System 服务器之外的服务器,诸如由国际商业机器公司提供的Power Systems服务器或其他服务器,或其他公司的服务器,可包括、使用和/或受益于本发明的一个或多个方面。而且,尽管在此示出的例子中,适配器和PCI集线器被认为是服务器的一部分,在其他实施例中,它们不是必须被认为是服务器的一部分,而是可被简单地认为是耦合到计算环境的系统存储器和/或其他组件。计算环境不需要是服务器。此外,尽管描述了表,但是可以使用任何数据结构并且术语表将包括所有此类数据结构。而且,尽管适配器是基于PCI的,可与其他适配器或其他I/O组件一起使用本发明的一个或多个方面。适配器和PCI适配器仅仅是例子。此外,FTE、DTE、FIB和/或其他结构可以包括更多、更少或不同的信息。此外,可以以不同的顺序执行在指令、操作和/或命令中执行的检查,和/或可以使用更多、更少或不同的检查。许多其他变化是可能的。 
而且,其他类型的计算环境可受益于本发明的一个或多个方面。作为例子,可使用适于存储和/或执行程序代码的数据处理系统,其包括至少两个通过系统总线直接或间接耦合到存储元件的处理器。存储器元件包括,例如,在程序代码的实际执行期间使用的本地存储器、大容量存储器以及高速缓冲存储器,其提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储器取回代码的次数。 
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备、DASD、磁带、CD、DVD、拇指驱动器(thumb drive)以及其他的存储介质等)可直接或通过介于其间的I/O控制器被耦合到系统。网络适配器也可被耦合到系统以使得数据处理系统能够通过介于其间的私有或公共网络而耦合到其他的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些可获得的网络适配器类型。 
参考图18,其描述了实施本发明的一个或多个方面的主机计算机系统5000的代表性组件。代表性主机计算机5000包括与计算机存储器(即,中央存储器)5002通信的一个或多个CPU 5001,以及到存储介质设备5011和网络5010的I/O接口,以用于与其他计算机或SAN等通信。CPU 5001符合具有架构指令集和架构功能的架构。CPU 5001可具有动态地址转换(DAT)5003,其用于将程序地址(虚拟地址)转变为存储器的真实地址。DAT典型地包括用于高速缓存转换的转换后备缓冲器(TLB)5007,这样稍后对计算机存储器5002块的访问不需要地址转换的延迟。典型地,高速缓存5009被使用在计算机存储器5002和处理器5001之间。高速缓存5009可以是分层的,具有可被多于一个的CPU获得的大高速缓存,以及大高速缓存和每个CPU之间的较小、较快(较低级)的高速缓存。在一些实施方式中,较低级的高速缓存被拆分以为指令获取和数据访问提供单独的低级高速缓存。在一个实施例中,由指令获取单元5004经由高速缓存5009从存储器5002获取指令。指令在指令解码单元5006中被解码,且(在一些实施例中与其他指令一起)被发送到一个或多个指令执行单元5008。典型地,使用若干执行单元5008,例如算术执行单元、浮点执行单元和分支指令执行单元。指令被执行单元执行,如需要,从指令指定的寄存器或存储器访问操作数。如果将从存储器5002访问(加载或存储)操作数,加载/存储单元5005典型地在被执行的指令的控制下处理该访问。指令可在硬件电路或内部微代码(固件)中或其组合中被执行。 
需注意的是,计算机系统包括本地(或主)存储器中的信息,以及寻址、保护以及引用和改变记录。寻址的一些方面包括地址格式、地址空间 的概念、地址的各种类型和其中一种类型的地址被转换为另一种类型的地址的方式。一些主存储器包括持久分配地存储位置。主存储器向系统提供直接可被寻址的快速访问的数据存储。数据和程序在可被处理之前都将(从输入设备)被加载到主存储器。 
主存储器可包括一个或多个更小、更快速访问的缓冲存储器,有时候被称为高速缓存。高速缓存典型地与CPU或I/O处理器物理地关联。物理结构以及不同存储介质的使用的效果,除了在性能上,通常不会被程序观察到。 
可维护用于指令和数据操作数的单独的高速缓存。高速缓存中的信息可被维护为相邻的字节,所述字节位于被称为高速缓存块或高速缓存线(或简称为线)的整数界限上。模型可提供EXTRACT CACHE ATTRIBUTE(提取高速缓存属性)指令,其返回高速缓存线的字节大小。模型也可提供PREFETCH DATA(预取数据)和PREFETCH DATA RELATIVELONG(预取较长数据)指令,其实现存储到数据或指令高速缓存中的预取,或数据从高速缓存的释放。 
存储器被视为位的长水平串。对于大部分操作来说,以从左到右的顺序进行对存储器的访问。位串被细分为八个位的单位。八位单位被称为字节,其是所有信息格式的基本构件。存储器中的每个字节位置由唯一的非负整数标识,该非负整数是该字节位置的地址,或简称为字节地址。相邻的字节位置具有连续的地址,在左边从0开始且以从左到右的顺序进行。地址是无符号二进制整数,且是24、31或64位。 
信息一次一个字节或一组字节地在存储器和CPU或通道子系统之间传递。除非另有指定,例如在z中,存储器中的一组字节由该组的最左边的字节寻址。组中的字节的数量可由将被执行的操作暗示或显式地指定。当在CPU操作中使用时,一组字节被称为字段。在字节的每个组内,例如在z中,位以从左到右的顺序被编号。在z/中,最左边的位有时候被称为“高阶”位且最右边的位被称为“低阶”位。但是,位数不是存储器地址。仅字节可被寻址。为了操 作存储器中的字节的单个位,访问整个字节。字节上的位从左到右被编号为0到7(例如在z/中)。地址中的位被编号为对于24位地址的8-31或40-63,或者对于31位地址的1-31或33-63;它们被编号为对于64位地址的0-63。在多个字节的任何其他的固定长度的格式中,构成格式的位从0开始被连续编号。为了错误检测,且优选地为了校正,一个或多个校验位可与每一个字节或一组字节一起被传递。这样的校验位由机器自动生成且不能被程序直接控制。存储容量以字节的数量来表示。当存储器操作数字段的长度由指令的操作码暗示时,字段被称为具有固定长度,其可以是一个、两个、四个、八个或十六个字节。可为某些指令暗示更大的字段。当存储器操作数字段的长度没有被暗示,而是被显式地表示时,该字段被称为具有可变长度。可变长度的操作数可以一个字节的增量(或者对于一些指令,以两个字节倍数或其他倍数)在长度上可变。当信息被放在存储器中时,仅替换被包括在指定的字段中的哪些字节位置的内容,即使到存储器的物理路径的宽度可能大于正被存储的字段的长度。 
某些信息单元位于存储器中的整数界限上。对于信息单元,当其存储器地址是以字节表示的单元长度的倍数时,界限被称为是整数的。特殊的名称被给予整数界限上的2、4、6、8和16字节的字段。半字是两字节边界上的一组两个连续的字节,且是指令的基本构件。字是四字节边界上的一组四个连续的字节。双字是八字节边界上一组八个连续的字节。四倍长字(quadword)是16字节边界上的一组16个连续的字节。当存储器地址指定半字、字、双字和四倍长字时,地址的二进制表示分别包括一个、两个、三个或四个最右边的零位。指令将位于二字节整数边界上。大多数指令的存储器操作数不具有界限对准要求。 
在为指令和数据操作数实现单独的高速缓存的设备上,如果程序在高速缓存线中存储且指令被随后从该高速缓存线获取,可经历显著的延迟,不管该存储是否改变随后被获取的指令。 
在一个实施例中,本发明可被软件(有时候被称为许可的内部代码、固件、微代码、毫代码、微微代码(pico-code)等,其任何一个都将符合 本发明)实施。参考图18,体现本发明的软件程序代码可典型地由主系统5000的处理器从长期存储介质设备5011(诸如CD-ROM驱动器、磁带驱动或硬盘驱动器)访问。软件程序代码可体现在与数据处理系统一起使用的各种已知介质(诸如软磁盘、硬盘驱动或CD-ROM)中的任何一个上。代码可在这样的介质上被分发,或可从一个计算机系统的计算机存储器5002或存储设备通过网络5010被分发给其他计算机系统的用户,以由这样的其他系统的用户使用。 
软件程序代码包括操作系统,其控制各种计算机组件和一个或多个应用程序的功能和交互。程序代码通常可从存储介质设备5011调页到相对更高速的计算机存储器5002,在此它对于处理器5001是可用的。用于在存储器中、物理介质上和/或体现软件程序代码或经由网络分发软件代码的技术和方法是熟知的,且不会在此被进一步讨论。当程序代码被创建并存储在有形介质(包括但不限于电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带等)上时,其经常被称为“计算机程序产品”。计算机程序产品介质典型地可由优选地位于计算机系统中的处理电路读取以由处理电路执行。 
图19示出了可在其中实施本发明的代表性工作站或服务器硬件系统。图19的系统5020包括代表性基本计算机系统(base computer system)5021,诸如个人计算机、工作站或服务器,包括可选的外围设备。根据已知技术,基本计算机系统5021包括一个或多个处理器5026以及被用于连接并使能处理器5026和系统5021的其他组件之间的通信的总线。总线将处理器5026连接到存储器5025以及可包括例如硬盘驱动器(例如,包括磁介质、CD、DVD和闪存中的任何一个)或磁带驱动器的长期存储器5027。系统5021也可包括用户接口适配器,其经由总线将微处理器5026连接到一个或多个接口设备,诸如键盘5024、鼠标5023、打印机/扫描仪5030和/或其他接口设备,其可以是任何用户接口设备,诸如触摸敏感屏、数字化输入垫(digitized entry pad)等。总线也可经由显示适配器将诸如LCD屏幕或监视器的显示设备5022连接到微处理器5026。 
系统5021可通过能与网络5029通信5028的网络适配器与其他计算机或计算机网络通信。示例性网络适配器是通信通道、令牌环网、以太网或调制解调器。或者,系统5021可使用诸如CDPD(蜂窝数字分组数据)卡的无线接口来通信。系统5021可与局域网(LAN)或广域网(WAN)中的这样的其他计算机关联,或系统5021可以是与另一个计算机的客户机/服务器安排中的客户机等。所有这些配置以及合适的通信硬件和软件在本领域中是已知的。 
图20示出了其中可实施本发明的数据处理网络5040。数据处理网络5040可包括多个单独的网络,诸如无线网和有线网,其每个可包括多个单独的工作站5041、5042、5043、5044。此外,本领域技术人员将理解,可包括一个或多个LAN,其中LAN可包括多个耦合到主处理机的智能工作站。 
仍然参考图20,网络也可包括大型计算机或服务器,诸如网关计算机(客户机服务器5046)或应用服务器(远程服务器5048,其可访问数据储存库,且也可直接从工作站5045被访问)。网关计算机5046用作到每个单独网络的进入点。当将一个连网协议连接到另一个时,需要网关。网关5046可通过通信链路优选地耦合到另一个网络(例如因特网5047)。也可使用通信链路将网关5046直接耦合到一个或多个工作站5041、5042、5043、5044。可以利用可从国际商业机器公司获得的IBM eServerTM 服务器来实现网关计算机。 
同时参考图19和20,可体现本发明的软件编程代码可被系统5020的处理器5026从诸如CD-ROM驱动器或硬盘驱动器的长期存储介质5027访问。软件编程代码可被体现在与数据处理系统一起使用的各种已知介质(诸如软盘、硬盘驱动器或CD-ROM)中的任一个上。代码可在这样的介质上被分发,或从一个计算机系统的存储器或存储设备通过网络被分发到其他计算机系统的用户5050、5051,以供这样的其他系统的用户使用。 
或者,编程代码可体现在存储器5025中,且由处理器5026使用处理器总线访问。这样的编程代码包括操作系统,其控制各种计算机组件和一 个或多个应用程序5032的功能和交互。程序代码通常从存储介质5027调页到高速存储器5025,在此它可用于由处理器5026进行处理。用于在存储器中、在物理介质上体现软件编程代码和/或经由网络分发软件代码的技术和方法是公知的,且不会在此进一步讨论。程序代码,当其被创建且在有形介质(包括但不限于电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带等)上存储时,通常被称为“计算机程序产品”。计算机程序产品介质典型地可以被优选地位于计算机系统中的处理电路读取以由处理电路执行。 
最容易被处理器使用的高速缓存(通常比处理器的其他高速缓存更快更小)是最低级(L1或级别1)高速缓存,且主存储(主存储器)是最高级高速缓存(如果有三个级别的话是L3)。最低级高速缓存经常被分为保持将被执行的机器指令的指令缓存(I-高速缓存),和保持数据操作数的数据高速缓存(D-高速缓存)。 
参考图21,为处理器5026示出了示例性处理器实施例。典型地,使用一个或多个级别的高速缓存5053来缓冲存储器块,以便改善处理器性能。高速缓存5053是高速缓冲器,其保持很可能被使用的存储器数据的高速缓存线。典型的高速缓存线是64、128或256字节的存储器数据。通常使用单独的高速缓存以用于缓存指令而不是缓存数据。高速缓存一致性(存储器和高速缓存中的线的副本的同步)通常由本领域中熟知的各种“窥探”算法提供。处理器系统的主存储器5025通常被称为高速缓存。在具有4个级别的高速缓存5053的处理器系统中,主存储器5025有时候被称为级别5(L5)高速缓存,因为它典型地更快,且仅保持可被计算机系统使用的非易失性存储器(DASD、磁带等)的一部分。主存储器5025可“高速缓存”由操作系统向主存储器5025调页入或从其调页出的数据页。 
程序计数器(指令计数器)5061保持跟踪将被执行的当前指令的地址。z/处理器中的程序计数器是64位的,且可被截短为31或24位以支持先前的寻址界限。程序计数器典型地体现在计算机的PSW(程序状态字)中,这样它可在上下文转换中持续。因此,具有程序计数器值的 进行中的程序可被例如操作系统中断(从程序环境到操作系统环境的上下文转换)。当程序不活动时,程序的PSW维持程序计数器值,且在操作系统执行时,操作系统的(PSW中的)程序计数器被使用。典型地,程序计数器以等于当前指令的字节数的量增量。RISC(精简指令集计算)指令典型地是固定长度,而CISC(复杂指令集计算)指令典型地是可变长度。IBMz/的指令是具有长度为2、4或6字节的CISC指令。程序计数器5061被例如上下文转换操作或分支指令的分支采取操作修改。在上下文转换操作中,当前的程序计数器值与关于正被执行的程序的其他状态信息(诸如条件码)一起被保存在程序状态字中,且新程序计数器值被载入并指向将被执行的新程序模块的指令。执行分支采取操作,以通过将分支指令的结果加载到程序计数器5061中而允许程序进行决定或在程序内循环。 
典型地,使用指令获取单元5055代表处理器5026获取指令。获取单元可获取“下一序列指令”、分支采取指令的目标指令或上下文转换后的程序的第一指令。现在的指令获取单元通常使用预取技术基于被预取的指令将被使用的可能性来推测性地预取指令。例如,获取单元可获取16字节的指令,其包括下一顺序指令以及进一步的顺序指令的额外字节。 
获取的指令随后被处理器5026执行。在一实施例中,获取的指令被传递给获取单元的分派单元5056。分派单元解码指令并将关于解码的指令的信息转送给合适的单元5057、5058、5060。执行单元5057将典型地从指令获取单元5055接收关于解码的算术指令的信息,并将根据指令的操作码对操作数执行算术操作。优选地从存储器5025、架构寄存器5059或从正被执行的指令的立即字段(immediate field)向执行单元5057提供操作数。执行的结果,当被存储时,被存储在存储器5025、寄存器5059或其他机器硬件(诸如控制寄存器、PSW寄存器等)中。 
处理器5026典型地具有一个或多个用于执行指令的功能的单元5057、5058、5060。参考图22A,执行单元5057可通过接口逻辑5071与架构通用寄存器5059、解码/分派单元5056、加载存储单元5060和其他5065处 理器单元通信。执行单元5057可使用几个寄存器电路5067、5068、5069来保持算术逻辑单元(ALU)5066将操作的信息。ALU执行诸如加减乘除的算术操作,以及诸如和、或以及异或(XOR)、旋转和移位的逻辑运算。优选地,ALU支持依赖于设计的专门操作。其他电路可提供其他架构工具5072,例如包括条件码和恢复支持逻辑。典型地,ALU操作的结果被保持在输出寄存电路5070中,该输出寄存器电路可将结果转送到多种其他处理功能。有许多处理器单元安排,本说明书仅旨在提供对一个实施例的代表性理解。 
例如,ADD指令将在具有算术和逻辑功能的执行单元5057中被执行,而例如浮点指令将在具有专用浮点能力的浮点执行中被执行。优选地,执行单元通过在操作数上执行操作码定义的功能在由指令标识的操作数上操作。例如,ADD指令可被执行单元5057在由指令的寄存器字段标识的两个寄存器5059中发现的操作数上执行。 
执行单元5057对两个操作数执行算术加法,并在第三操作数中存储结果,其中第三操作数可以是第三寄存器或两个源寄存器中的一个。执行单元优选地利用算术逻辑单元(ALU)5066,其能执行多种逻辑功能,诸如移位、旋转、和、或以及异或,以及多种代数函数,包括加减乘除中的任何一个。一些ALU5056被设计为用于标量运算,且有些用于浮点。根据架构,数据可以是大端(big endien)(其中最低有效字节位于最高字节地址)或小端(little endien)(其中最低有效字节位于最低字节地址)。IBMz/是大端。根据架构,带符号字段可以是符号和幅度、1的补码或2的补码。2的补码数是有利的,其在于ALU不需要设计减法能力,因为不管是2的补码中的负值还是正值,都仅要求ALU中的加法。数字通常以速记描述,其中12位的字段定义了4096字节块的地址,且通常被描述为例如4Kbyte(千字节)块。 
参考图22B,用于执行分支指令的分支指令信息典型地被发送到分支单元5058,该分支单元经常使用诸如分支历史表5082的分支预测算法,在其他条件运算完成前预测分支结果。在条件运算完成前,当前分支指令 的目标将被获取并推测性地执行。当条件运算完成时,基于条件运算的条件和推测的结果,推测性执行的分支指令或被完成或被丢弃。典型的分支指令可测试条件码,以及如果条件码满足分支指令的分支要求,分支到目标地址,分支地址可基于若干数被计算,所述数包括例如在寄存器字段或是指令的立即字段中找到的数。分支单元5058可利用具有多个输入寄存器电路5075、5076、5077和一个输出寄存器电路5080的ALU 5074。分支单元5058可与例如通用寄存器5059、解码分派单元5056或其他电路5073通信。 
一组指令的执行可由于多个原因中断,所述原因包括例如由操作系统发起的上下文转换、引起上下文转换的程序异常或错误、引起上下文转换的I/O中断信号或多个程序(在多线程环境中)的多线程活动。优选地,上下文转换动作保存关于当前执行的程序的状态信息,且随后加载关于正被调用的另一个程序的状态信息。状态信息可被存储在例如硬件寄存器或存储器中。状态信息优选地包括指向将被执行的下一个指令的程序计数器值、条件码、存储器转换信息和架构寄存器内容。上下文转换活动可被硬件电路、应用程序、操作系统程序或固件代码(微代码、微微代码或许可内部码(LIC))单独地或其组合实现。 
处理器根据指令定义的方法而访问操作数。指令可使用指令的一部分的值提供立即操作数,可提供一个或多个寄存器字段,其显式地指向通用寄存器或专用寄存器(例如浮点寄存器)。指令可利用由操作码字段确定的暗示的寄存器作为操作数。指令可利用用于操作数的存储器位置。可由寄存器、立即字段或寄存器和立即字段的组合提供操作数的存储器位置,如由z/长位移工具(facility)所例示的,其中该指令定义了基寄存器、索引寄存器和立即字段(位移字段),它们加到一起,以提供例如存储器中的操作数的地址。此处的位置典型地意味着主存储器(主存储设备)中的位置,除非另外指明。 
参考图22C,处理器使用加载/存储单元5060访问存储器。加载/存储单元5060可以通过获取存储器5053中的目标操作数的地址并将操作数加 载到寄存器5059或其他存储器5053位置中,来执行加载操作,或可以通过获取存储器5053中的目标操作数的地址并将从寄存器5059或另一个存储器5053位置获得的数据存储在存储器5053中的目标操作数位置,来执行存储操作。加载/存储单元5060可以是推测性的,且可以相对于指令顺序来说无序的顺序访问存储器,但是加载/存储单元5060将向程序维持指令按顺序执行的外观。加载/存储单元5060可与通用寄存器5059、解密/分派单元5056、高速缓存/存储器接口5053或其他元件5083通信,且包括各种寄存器电路、ALU 5085和控制逻辑5090以计算存储器地址并提供流水线顺序以使操作保持次序。一些操作可不按顺序,但加载/存储单元提供功能以使不按顺序执行的操作对程序看起来如已按顺序执行一样,如本领域所熟知的。 
优选地,应用程序“看到的”地址通常被称为虚拟地址。虚拟地址有时候被称为“逻辑地址”和“有效地址”。这些虚拟地址之所以虚拟,在于它们由多种动态地址转换(DAT)技术中的一种重定向到物理存储器位置,所述动态地址转换技术包括但不限于简单地给用偏移值给虚拟地址加前缀、经由一个或多个转换表转换虚拟地址,所述转换表优选地包括至少一个段表和页表(单独地或组合地),优选地,段表具有指向页表的项。在z/中,提供转换分级结构,包括区域第一表、区域第二表、区域第三表、段表和可选的页表。转换表的性能通常通过利用转换后备缓冲器(TLB)被改善,该转换后备缓冲器包括将虚拟地址映射到相关的物理存储位置的项。当DAT使用转换表转换虚拟地址时,创建项。于是,虚拟地址的随后使用可利用快的TLB的项,而不是慢的顺序转换表访问。TLB内容可由包括LRU(最少最近使用的)多个替换算法来管理。 
在处理器是多处理器系统的处理器的情况下,每个处理器具有保持共享资源的责任,所述共享资源诸如I/O、高速缓存、TLB和存储器,它们互锁以实现一致性。典型地,“窥探”技术将被用于维持高速缓存一致性。在窥探环境中,每个高速缓存线可被标记为正处于共享状态、独占状态、改变状态、无效状态等中的一个,以便有助于共享。 
I/O单元5054(图21)向处理器提供用于附加到例如包括磁带、盘、打印机、显示器和网络的外围设备的装置。I/O单元通常由软件驱动器向计算机程序呈现。在诸如来自的大型计算机中,通道适配器和开放系统适配器是提供操作系统和外围设备之间的通信的大型计算机的I/O单元。 
而且,其他类型的计算环境可受益于本发明的一个或多个方面。作为例子,环境可包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括例如指令执行、诸如地址转换的架构功能、以及架构寄存器)或其子集被仿真(例如,在具有处理器和存储器的本机计算机系统中)。在这样的环境中,仿真器的一个或多个仿真功能可实施本发明的一个或多个方面,即使执行仿真器的计算机可具有与正被仿真的能力不同的架构。作为一个例子,在仿真模式中,解码正被仿真的特定指令或操作,且建立合适的仿真功能以实施单个指令或操作。 
在仿真环境中,主计算机包括例如存储器以存储指令和数据;指令获取单元以从存储器获取指令,且可选地,提供用于获取的指令的本地缓冲;指令解码单元以接收获取的指令并确定已被获取的指令的类型;以及指令执行单元以执行该指令。执行可包括将数据从存储器加载到寄存器;从寄存器将数据存储回存储器;或执行如由解码单元确定的某些类型的算术或逻辑运算。在一个例子中,每个单元在软件中实现。例如,被所述单元执行的操作被实现为仿真器软件中的一个或多个子例程。 
更具体地,在大型计算机中,程序员(通常是如今的“C”程序员)一般通过编译器应用使用架构机器指令。存储在存储介质中的这些指令可以在z/服务器中本机地执行,或在执行其他架构的机器中执行。它们可在现有的和未来的大型计算机服务器以及的其他机器(例如,Power Systems服务器和服务器)中被仿真。它们可在使用由AMDTM等制造的硬件的各种机器上运行Linux的机器中被执行。除了在z下的该硬件上执行,Linux也可被用于这样的机器,其使用由Hercules或FSI(Fundamental Software, Inc)提供的仿真,其中,一般来说执行是在仿真模式中。在仿真模式中,仿真软件由本机处理器执行以仿真被仿真处理器的架构。关于以上引用的仿真器产品的信息可从万维网获得,网址为www.hercules-390.org和www.funsoft.com。 
本机处理器典型地执行仿真软件,其包括固件或本机操作系统,以执行被仿真处理器的仿真程序。仿真软件负责获取并执行被仿真处理器架构的指令。仿真软件维护仿真的程序计数器以保持跟踪指令界限。仿真软件可一次获取一个或多个仿真的机器指令,并将所述一个或多个仿真的机器指令转换为对应的本机机器指令组,以由本机处理器执行。这些转换的指令可被高速缓存,这样可完成更快的转换。尽管,仿真软件将维持被仿真的处理器架构的架构规则以保证为被仿真处理器编写的操作系统和应用正确操作。而且,仿真软件将提供由被仿真的处理器架构确定的资源,包括但不限于控制寄存器、通用寄存器、浮点寄存器、例如包括段表和页表的动态地址转换功能、中断机制、上下文转换机制、日中时间(TOD)时钟和到I/O子系统的架构接口,这样被设计为在被仿真处理器上运行的操作系统或应用程序可在具有仿真软件的本机处理器上运行。 
解码正被仿真的特定指令,且调用子例程以执行该单个指令的功能。仿真被仿真处理器的功能的仿真软件功能例如在“C”子例程或驱动器中实现,或由提供用于特定硬件的驱动器的其他方法实现,如本领域技术人员在理解优选实施例的描述后将理解的。包括但不限于Beausoleil等人的标题为“Multiprocessor for Hardware Emulation”的美国专利证书号5,551,013;以及Scalzi等人的标题为“Preprocessing of Stored TargetRoutines for Emulating Incompatible Instructions on a Target Processor”的美国专利证书号6,009,261;以及Davidian等人的标题为“Decoding GuestInstruction to Directly Access Emulation Routines that Emulate the GuestInstructions”的美国专利证书号,5,574,873;以及Gorishek等人的标题为“Symmetrical Multiprocessing Bus and Chipset Used for CoprocessorSupport Allowing Non-Native Code to Run in a System”的美国专利证书号 6,308,255;以及Lethin等人的标题为“Dynamic Optimizing Object CodeTranslator for Architecture Emulation and Dynamic Optimizing ObjectCode Translation Method”的美国专利证书号6,463,582,;以及Eric Traut的标题为“Method for Emulating Guest Instructions on a Host ComputerThrough Dynamic Recompilation of Host Instructions”的美国专利证书号5,790,825;以及许多其他专利的各种软件和硬件仿真专利示出各种已知的方式来实现针对可为本领域技术人员获得的目标机器对为不同机器进行架构设计的指令格式的仿真。 
在图23中,提供了仿真主计算机系统5092的例子,其仿真主架构的主计算机系统5000’。在仿真主计算机系统5092中,主处理器(CPU)5091是仿真主处理器(或虚拟主处理器),并包括具有与主计算机5000’的处理器5091不同的本机指令集架构的仿真处理器5093。仿真主计算机系统5092具有可被仿真处理器5093访问的存储器5094。在示例性实施例中,存储器5094被分区为主计算机存储器5096部分和仿真例程5097部分。根据主计算机架构,主计算机存储器5096对于仿真主计算机5092的程序来说是可用的。仿真处理器5093执行与被仿真处理器5091不同架构的架构指令集的本机指令(即来自仿真程序处理器5097的本机指令),且可通过使用从顺序和访问/解码例程获得的一个或多个指令从主计算机存储器5096中的程序访问用于执行的主机指令,所述顺序和访问/解码例程可解码访问的主机指令,以确定用于仿真被访问的主机指令的功能的本机指令执行例程。被定义用于主计算机系统5000’架构的其他工具可被架构工具例程仿真,所述架构工具例程包括诸如通用寄存器、控制寄存器、动态地址转换和I/O子系统支持和处理器高速缓存等工具。仿真例程也可利用在仿真处理器5093中可获得功能(诸如通用寄存器和虚拟地址的动态转换)以改善仿真例程的性能。也可提供专用硬件和卸载引擎以辅助处理器5093来仿真主计算机5000’的功能。 
在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式, 除非上下文另外清楚地指明。还将理解,当在说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/或组件。 
所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作以及等价物,如有的话,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述功能的任何结构、材料或操作。呈现本发明的说明是为了示出和描述的作用,但不是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说是明显的,且不脱离本发明的范围。选择和描述实施例是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施例理解本发明。 

Claims (19)

1.一种用于在中央处理单元中执行机器指令的方法,所述方法包括以下步骤:
获得要执行的机器指令,根据计算机架构定义所述机器指令以供计算机执行,所述机器指令包括:
操作码字段,其标识修改功能控制的适配器指令,该指令执行为适配器功能建立操作参数的修改功能控制的适配器指令、针对或代表适配器功能为执行的特定操作设置操作参数、以及从多个功能控制的适配器指令操作中选择的特定操作;
第一字段,其标识位置,所述第一字段的内容包括标识适配器的功能句柄、与修改操作所应用的所述适配器关联的地址空间的指定,以及指定要针对所述适配器执行的所述特定操作的操作控制,所述操作控制指定可以选择的多个操作中的一个操作;以及
第二字段,其用于标识所述修改功能控制的适配器指令要使用的功能信息块的地址;以及
执行所述机器指令,所述执行包括:
确定所述操作控制的值;以及
响应于所述操作控制而修改包括与所述适配器关联的参数的表项,其中所述修改包括根据所述操作控制并根据与所述操作控制相关的一项或多项检查而有选择地更新所述表项的一个或多个参数;
其中在特定功能控制的适配器指令的特定执行中要执行的特定操作在由修改功能控制的适配器指令的操作控制指定。
2.根据权利要求1的方法,其中由操作系统发出所述指令,并且其中所述修改包括使用所述功能信息块中的信息来修改所述一个或多个参数,所述操作系统可访问从存储器获取的所述功能信息块。
3.根据权利要求2的方法,其中所述表项包括位于耦合到所述适配器和所述处理器的集线器中的设备表项或与所述适配器关联的另一表项。
4.根据权利要求3的方法,其中更新所述设备表项或所述另一表项。
5.根据权利要求2的方法,其中所述操作控制包括注册所述适配器的适配器中断,并且其中所述修改包括修改特定于适配器中断的一个或多个参数,所述一个或多个参数包括所述适配器的适配器中断向量的地址、所述适配器中断向量内的偏移、适配器中断概要向量的地址、所述适配器中断概要向量内的偏移、概要通知控制以及所述适配器支持的中断数。
6.根据权利要求2的方法,其中所述操作控制包括注册输入/输出地址转换参数,并且其中所述修改包括修改特定于地址转换的一个或多个参数,所述一个或多个参数包括所述地址空间的基地址、所述地址空间的限制、指示要使用的最高级地址转换表的转换指针、存储单元的大小以及地址转换格式。
7.根据权利要求2的方法,其中所述操作包括重新注册地址转换参数,并且其中所述修改包括修改特定于重新注册地址转换的一个或多个参数,所述一个或多个参数包括所述地址空间的限制以及指示要使用的最高级地址转换表的地址转换指针,并且其中所述修改使用一个或多个控件指示与重新注册所述地址转换参数相关的更新的特定排序。
8.根据权利要求7的方法,其中另一地址转换参数包括所述地址空间的基地址,并且其中响应于修改所述基地址的请求而使用所述一个或多个控件来防止更新所述基地址。
9.根据权利要求2的方法,其中所述操作控制包括设置适配器功能测量参数,并且其中所述修改包括修改特定于适配器测量的一个或多个参数,所述一个或多个参数包括样本计数、一个或多个指令计数以及一个或多个直接存储器访问计数。
10.根据权利要求1的方法,其中所述操作控制包括重置错误状态指示,并且其中所述修改包括重置所述表项中的一个或多个状态指示器。
11.根据权利要求1的方法,其中所述操作控制包括注销适配器中断,并且其中所述修改包括重置特定于适配器中断的一个或多个参数,所述一个或多个参数包括所述适配器的适配器中断向量的地址、所述适配器中断向量内的偏移、适配器概要向量的地址、所述适配器中断概要向量内的偏移、概要通知控制以及所述适配器支持的中断数。
12.根据权利要求1的方法,其中所述操作控制包括注销输入/输出地址转换,并且其中所述修改包括重置特定于地址转换的一个或多个参数,所述一个或多个参数包括所述地址空间的基地址、所述地址空间的限制、指示要使用的最高级地址转换表的地址转换指针、存储单元的大小以及地址转换格式。
13.一种用于在中央处理单元中执行机器指令的计算机系统,所述计算机系统包括:
用于由处理器获得要执行的机器指令,根据计算机架构定义所述机器指令以供计算机执行的装置,所述机器指令包括:
操作码字段,其标识修改功能控制的适配器指令,该指令执行为适配器功能建立操作参数的修改功能控制的适配器指令、针对或代表适配器功能为执行的特定操作设置操作参数、以及从多个功能控制的适配器指令操作中选择的特定操作;
第一字段,其标识位置,所述第一字段的内容包括标识适配器的功能句柄、与修改操作所应用的所述适配器关联的地址空间的指定,以及指定要针对所述适配器执行的所述特定操作的操作控制,所述操作控制指定可以选择的多个操作中的一个操作;以及
第二字段,其用于标识所述修改功能控制的适配器指令操作要使用的功能信息块的地址;以及
用于执行所述机器指令的装置,所述执行装置包括:
确定所述操作控制的值;以及
响应于所述操作控制而修改包括与所述适配器关联的参数的表项,其中所述修改包括根据所述操作控制并根据与所述操作控制相关的一项或多项检查而有选择地更新所述表项的一个或多个参数;
其中在特定功能控制的适配器指令的特定执行中要执行的特定操作在由修改功能控制的适配器指令的操作控制指定。
14.根据权利要求13的计算机系统,其中由操作系统发出所述指令,并且其中所述修改包括使用所述功能信息块中的信息来修改所述一个或多个参数,所述操作系统可访问从存储器获取的所述功能信息块。
15.根据权利要求14的计算机系统,其中所述表项包括位于耦合到所述适配器和所述处理器的集线器中的设备表项或与所述适配器关联的另一表项。
16.根据权利要求14的计算机系统,其中所述操作控制包括注册所述适配器的适配器中断,并且其中所述修改包括修改特定于适配器中断的一个或多个参数,所述一个或多个参数包括所述适配器的适配器中断向量的地址、所述适配器中断向量内的偏移、适配器中断概要向量的地址、所述适配器中断概要向量内的偏移、概要通知控制以及所述适配器支持的中断数。
17.根据权利要求14的计算机系统,其中所述操作控制包括注册输入/输出地址转换参数,并且其中所述修改包括修改特定于地址转换的一个或多个参数,所述一个或多个参数包括所述地址空间的基地址、所述地址空间的限制、指示要使用的最高级地址转换表的转换指针、存储单元的大小以及地址转换格式。
18.根据权利要求14的计算机系统,其中所述操作控制包括设置适配器功能测量参数,并且其中所述修改包括修改特定于适配器测量的一个或多个参数,所述一个或多个参数包括样本计数、一个或多个指令计数以及一个或多个直接存储器访问计数。
19.根据权利要求14的计算机系统,其中所述操作包括重新注册地址转换参数,并且其中所述修改包括修改特定于重新注册地址转换的一个或多个参数,所述一个或多个参数包括所述地址空间的限制以及指示要使用的最高级地址转换表的地址转换指针,并且其中所述修改使用一个或多个控件指示与重新注册所述地址转换参数相关的更新的特定排序。
CN201080066886.XA 2010-06-23 2010-11-08 修改适配器功能参数的指令的方法和系统 Active CN102906692B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/821,181 2010-06-23
US12/821,181 US8615645B2 (en) 2010-06-23 2010-06-23 Controlling the selectively setting of operational parameters for an adapter
PCT/EP2010/067036 WO2011160717A1 (en) 2010-06-23 2010-11-08 Method for executing an instruction for selectively modifying adapter function parameters; computer system and computer program product for the same

Publications (2)

Publication Number Publication Date
CN102906692A CN102906692A (zh) 2013-01-30
CN102906692B true CN102906692B (zh) 2015-02-11

Family

ID=43502943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080066886.XA Active CN102906692B (zh) 2010-06-23 2010-11-08 修改适配器功能参数的指令的方法和系统

Country Status (7)

Country Link
US (3) US8615645B2 (zh)
EP (1) EP2433212B1 (zh)
JP (1) JP5736044B2 (zh)
CN (1) CN102906692B (zh)
MX (1) MX2012014857A (zh)
SI (1) SI2433212T1 (zh)
WO (1) WO2011160717A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8510599B2 (en) * 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
CN105264506B (zh) * 2013-01-29 2018-01-26 慧与发展有限责任合伙企业 向内存映射配置分配处理器
US9384158B2 (en) 2014-03-14 2016-07-05 International Business Machines Corporation Dynamic universal port mode assignment
US9465768B2 (en) * 2014-03-14 2016-10-11 International Business Machines Corporation PCI function measurement block enhancements
CN103986602B (zh) * 2014-05-16 2017-12-12 华为技术有限公司 一种启动操作系统的方法、相关设备和系统
US10089129B2 (en) * 2014-06-30 2018-10-02 International Business Machines Corporation Supporting flexible deployment and migration of virtual servers via unique function identifiers
US10013385B2 (en) * 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests
JP6418021B2 (ja) * 2015-03-18 2018-11-07 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US10120818B2 (en) 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output command
US10120822B2 (en) * 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output measurement data
US10063376B2 (en) 2015-10-01 2018-08-28 International Business Machines Corporation Access control and security for synchronous input/output links
US10126962B2 (en) * 2016-04-22 2018-11-13 Microsoft Technology Licensing, Llc Adapted block translation table (BTT)
US10095620B2 (en) * 2016-06-29 2018-10-09 International Business Machines Corporation Computer system including synchronous input/output and hardware assisted purge of address translation cache entries of synchronous input/output transactions
US10514932B2 (en) * 2016-09-26 2019-12-24 Amazon Technologies, Inc. Resource configuration based on dynamic group membership
US11269640B2 (en) * 2017-02-13 2022-03-08 Qualcomm Incorporated Speculative transitions among modes with different privilege levels in a block-based microarchitecture
US11221606B2 (en) * 2017-09-26 2022-01-11 Honeywell International Inc. System and method for depicting and using one logical connection with collection of input/output (I/O) modules as multiple individual logical connections
US10572259B2 (en) * 2018-01-22 2020-02-25 Arm Limited Hints in a data processing apparatus
US11194606B2 (en) * 2018-11-28 2021-12-07 Red Hat, Inc. Managing related devices for virtual machines utilizing shared device data
CN111382429B (zh) * 2018-12-27 2022-12-27 华为技术有限公司 指令的执行方法、装置及存储介质
CN114840146A (zh) * 2022-05-20 2022-08-02 广东天太机器人有限公司 一种能在运行时的参数修改方法及系统、设备和存储介质
CN114968877B (zh) * 2022-08-01 2022-11-25 摩尔线程智能科技(北京)有限责任公司 硬件的管理方法、适配器、主机及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1607504A (zh) * 2003-05-12 2005-04-20 国际商业机器公司 在多个输入/输出子系统映像上共享通信适配器

Family Cites Families (267)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3976979A (en) 1974-01-02 1976-08-24 Honeywell Information Systems, Inc. Coupler for providing data transfer between host and remote data processing units
US4028668A (en) 1975-12-22 1977-06-07 Honeywell Information Systems, Inc. Apparatus for selectively addressing sections and locations in a device controller's memory
US4323963A (en) 1979-07-13 1982-04-06 Rca Corporation Hardware interpretive mode microprocessor
US4271468A (en) 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
JPS57191826A (en) 1981-05-19 1982-11-25 Matsushita Electric Ind Co Ltd Magnetic head demagnetizer
AU7804381A (en) 1981-10-13 1983-05-05 International Business Machines Corp. Method and apparatus for measurements of channel operation
JPS6273347A (ja) 1985-09-27 1987-04-04 Hitachi Ltd アドレス変換装置
US5053952A (en) * 1987-06-05 1991-10-01 Wisc Technologies, Inc. Stack-memory-based writable instruction set computer having a single data bus
JPH0250744A (ja) 1988-08-12 1990-02-20 Nec Corp アドレス変換方式
JPH0282343A (ja) 1988-09-20 1990-03-22 Hitachi Ltd マルチプロセッサシステムの割込処理方式
US5282274A (en) 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5170472A (en) 1991-03-28 1992-12-08 International Business Machines Corp. Dynamically changing a system i/o configuration definition
US5465355A (en) 1991-09-04 1995-11-07 International Business Machines Corporation Establishing and restoring paths in a data processing I/O system
JPH05165715A (ja) 1991-12-12 1993-07-02 Nec Corp 情報処理装置
JPH0821015B2 (ja) 1992-01-20 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータならびにそのシステム再構成化装置および方法
US5617554A (en) 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5418956A (en) 1992-02-26 1995-05-23 Microsoft Corporation Method and system for avoiding selector loads
US5600805A (en) 1992-06-15 1997-02-04 International Business Machines Corporation Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems
US5265240A (en) 1992-07-24 1993-11-23 International Business Machines Corporation Channel measurement method and means
US5465332A (en) 1992-09-21 1995-11-07 International Business Machines Corporation Selectable 8/16 bit DMA channels for "ISA" bus
JP2500101B2 (ja) 1992-12-18 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用変数の値を更新する方法
WO1994027215A1 (en) 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
US5535352A (en) 1994-03-24 1996-07-09 Hewlett-Packard Company Access hints for input/output address translation mechanisms
US5551013A (en) 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
JPH10502197A (ja) 1994-06-28 1998-02-24 インテル・コーポレーション Pci−isa割込みプロトコルコンバータ及び選択機構
US5748950A (en) 1994-09-20 1998-05-05 Intel Corporation Method and apparatus for providing an optimized compare-and-branch instruction
US5901312A (en) 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US5802590A (en) 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
WO1996023260A1 (de) 1995-01-27 1996-08-01 Gmd - Forschungszentrum Informationstechnik Gmbh Verfahren zum betreiben einer adressumsetzvorrichtung
US5586268A (en) 1995-03-03 1996-12-17 Advanced System Products, Inc. Multiple peripheral adapter device driver architecture
JPH08263424A (ja) 1995-03-20 1996-10-11 Fujitsu Ltd コンピュータ装置
EP0747872B1 (en) 1995-06-07 1999-03-03 International Business Machines Corporation Video processor with addressing mode control
US5671365A (en) 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
US5790825A (en) 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
US5960213A (en) 1995-12-18 1999-09-28 3D Labs Inc. Ltd Dynamically reconfigurable multi-function PCI adapter device
US5974440A (en) 1996-03-25 1999-10-26 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for interrupt handling during virtual task operation
US5819053A (en) 1996-06-05 1998-10-06 Compaq Computer Corporation Computer system bus performance monitoring
US5761448A (en) 1996-08-30 1998-06-02 Ncr Corporation Physical-to-logical bus mapping scheme for computer systems having multiple PCI bus configuration
US5838960A (en) 1996-09-26 1998-11-17 Bay Networks, Inc. Apparatus for performing an atomic add instructions
US5995745A (en) 1996-12-23 1999-11-30 Yodaiken; Victor J. Adding real-time support to general purpose operating systems
US5826084A (en) 1997-03-25 1998-10-20 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selectively bypassing external interrupts past the monitor program during virtual program operation
US6349379B2 (en) 1997-04-30 2002-02-19 Canon Kabushiki Kaisha System for executing instructions having flag for indicating direct or indirect specification of a length of operand data
KR100263672B1 (ko) 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
US5914730A (en) 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US6067595A (en) 1997-09-23 2000-05-23 Icore Technologies, Inc. Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6078970A (en) 1997-10-15 2000-06-20 International Business Machines Corporation System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory
US6009261A (en) 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6023736A (en) 1997-12-19 2000-02-08 International Business Machines Corporation System for dynamically configuring I/O device adapters where a function configuration register contains ready/not ready flags corresponding to each I/O device adapter
US6021458A (en) 1998-01-21 2000-02-01 Intel Corporation Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
US6223299B1 (en) 1998-05-04 2001-04-24 International Business Machines Corporation Enhanced error handling for I/O load/store operations to a PCI device via bad parity or zero byte enables
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6460094B1 (en) 1998-07-08 2002-10-01 Microsoft Corporation Peripheral device configured to detect the type of interface to which it is connected and configuring itself accordingly
US6615305B1 (en) 1998-08-27 2003-09-02 Intel Corporation Interrupt pacing in data transfer unit
US6463582B1 (en) 1998-10-21 2002-10-08 Fujitsu Limited Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
US6408347B1 (en) 1998-12-10 2002-06-18 Cisco Technology, Inc. Integrated multi-function adapters using standard interfaces through single a access point
US6397350B1 (en) 1999-02-19 2002-05-28 International Business Machines Corporation Method of providing direct data processing access using a queued direct input-output device
US6519645B2 (en) 1999-02-19 2003-02-11 International Business Machine Corporation Method and apparatus for providing configuration information using a queued direct input-output device
US6349380B1 (en) 1999-03-12 2002-02-19 Intel Corporation Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
US6557035B1 (en) 1999-03-30 2003-04-29 International Business Machines Corporation Rules-based method of and system for optimizing server hardware capacity and performance
US6330656B1 (en) 1999-03-31 2001-12-11 International Business Machines Corporation PCI slot control apparatus with dynamic configuration for partitioned systems
JP2000293476A (ja) 1999-04-09 2000-10-20 Nec Corp Pciデバイスへのリソース割当方式及びその方法
US6578191B1 (en) 1999-05-17 2003-06-10 International Business Machines Corporation Method and apparatus for dynamic generation of adapters
US6330647B1 (en) 1999-08-31 2001-12-11 Micron Technology, Inc. Memory bandwidth allocation based on access count priority scheme
US6772097B1 (en) 1999-09-30 2004-08-03 Intel Corporation Retrieving I/O processor performance monitor data
US6493741B1 (en) 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6970992B2 (en) 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6651126B1 (en) 1999-10-29 2003-11-18 Texas Instruments Incorporated Snapshot arbiter mechanism
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6529978B1 (en) 2000-02-23 2003-03-04 International Business Machines Corporation Computer input/output (I/O) interface with dynamic I/O adaptor processor bindings
US6963940B1 (en) 2000-03-30 2005-11-08 International Business Machines Corporation Measuring utilization of individual components of channels
US6581130B1 (en) 2000-04-04 2003-06-17 Hewlett Packard Development Company, L.P. Dynamic remapping of address registers for address translation between multiple busses
US6629175B1 (en) 2000-04-14 2003-09-30 International Business Machines Corporation Efficient adapter context switching
US6772264B1 (en) 2000-05-22 2004-08-03 International Business Machines Corporation Enabling a docking station for ISA adapters
US6715011B1 (en) 2000-05-31 2004-03-30 International Business Machines Corporation PCI/PCI-X bus bridge with performance monitor
US6654818B1 (en) 2000-06-22 2003-11-25 International Business Machines Corporation DMA access authorization for 64-bit I/O adapters on PCI bus
US6658599B1 (en) 2000-06-22 2003-12-02 International Business Machines Corporation Method for recovering from a machine check interrupt during runtime
US6751752B1 (en) 2000-09-01 2004-06-15 Intel Corporation Checking events generated by a device
US6611883B1 (en) 2000-11-16 2003-08-26 Sun Microsystems, Inc. Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US6704831B1 (en) 2000-11-16 2004-03-09 Sun Microsystems, Inc. Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol
US6658521B1 (en) 2000-12-22 2003-12-02 International Business Machines Corporation Method and apparatus for address translation on PCI bus over infiniband network
US6721839B1 (en) 2000-12-27 2004-04-13 International Business Machines Corporation Method of mapping multiple address spaces into single PCI bus
US6938138B2 (en) 2001-01-11 2005-08-30 International Business Machines Corporation Method and apparatus for managing access to memory
TW499795B (en) 2001-03-19 2002-08-21 Realtek Semiconductor Corp PCI extended function interface and the PCI device using the same
US6792492B1 (en) 2001-04-11 2004-09-14 Novell, Inc. System and method of lowering overhead and latency needed to service operating system interrupts
US6820164B2 (en) 2001-04-17 2004-11-16 International Business Machines Corporation Peripheral component interconnect bus detection in logically partitioned computer system involving authorizing guest operating system to conduct configuration input-output operation with functions of pci devices
US20020161907A1 (en) 2001-04-25 2002-10-31 Avery Moon Adaptive multi-protocol communications system
US6968446B1 (en) 2001-08-09 2005-11-22 Advanced Micro Devices, Inc. Flags handling for system call instructions
US6842870B2 (en) 2001-09-20 2005-01-11 International Business Machines Corporation Method and apparatus for filtering error logs in a logically partitioned data processing system
US6880021B2 (en) 2001-09-28 2005-04-12 International Business Machines Corporation Intelligent interrupt with hypervisor collaboration
US6801993B2 (en) 2001-09-28 2004-10-05 International Business Machines Corporation Table offset for shortening translation tables from their beginnings
US20040025166A1 (en) 2002-02-02 2004-02-05 International Business Machines Corporation Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel
US6901537B2 (en) 2002-02-27 2005-05-31 International Business Machines Corporation Method and apparatus for preventing the propagation of input/output errors in a logical partitioned data processing system
US6907510B2 (en) 2002-04-01 2005-06-14 Intel Corporation Mapping of interconnect configuration space
US7302692B2 (en) 2002-05-31 2007-11-27 International Business Machines Corporation Locally providing globally consistent information to communications layers
US20040049603A1 (en) 2002-09-05 2004-03-11 International Business Machines Corporation iSCSI driver to adapter interface protocol
US7299266B2 (en) 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7197585B2 (en) 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US7054972B2 (en) 2002-12-13 2006-05-30 Lsi Logic Corporation Apparatus and method for dynamically enabling and disabling interrupt coalescing in data processing system
KR100449807B1 (ko) 2002-12-20 2004-09-22 한국전자통신연구원 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
US7065598B2 (en) 2002-12-20 2006-06-20 Intel Corporation Method, system, and article of manufacture for adjusting interrupt levels
US20040139304A1 (en) 2003-01-09 2004-07-15 International Business Machines Corporation High speed virtual instruction execution mechanism
US20040139305A1 (en) 2003-01-09 2004-07-15 International Business Machines Corporation Hardware-enabled instruction tracing
JP4256693B2 (ja) 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP2004248985A (ja) 2003-02-21 2004-09-09 Air Water Inc 注射器およびそれに用いるパッキン
US7073002B2 (en) 2003-03-13 2006-07-04 International Business Machines Corporation Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system
US7107382B2 (en) 2003-04-03 2006-09-12 Emulex Design & Manufacturing Corporation Virtual peripheral component interconnect multiple-function device
US7139940B2 (en) 2003-04-10 2006-11-21 International Business Machines Corporation Method and apparatus for reporting global errors on heterogeneous partitioned systems
US7010633B2 (en) 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US7281075B2 (en) 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7290070B2 (en) 2003-05-12 2007-10-30 International Business Machines Corporation Multiple logical input/output subsystem facility
US7127599B2 (en) 2003-05-12 2006-10-24 International Business Machines Corporation Managing configurations of input/output system images of an input/output subsystem, wherein a configuration is modified without restarting the input/output subsystem to effect a modification
US7177961B2 (en) 2003-05-12 2007-02-13 International Business Machines Corporation Managing access, by operating system images of a computing environment, of input/output resources of the computing environment
US6996638B2 (en) 2003-05-12 2006-02-07 International Business Machines Corporation Method, system and program products for enhancing input/output processing for operating system images of a computing environment
US7000036B2 (en) 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7130938B2 (en) 2003-05-12 2006-10-31 International Business Machines Corporation Method, system and program products for identifying communications adapters of a computing environment
US7130949B2 (en) 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
US7134052B2 (en) 2003-05-15 2006-11-07 International Business Machines Corporation Autonomic recovery from hardware errors in an input/output fabric
US6931460B2 (en) 2003-05-19 2005-08-16 Emulex Design & Manufacturing Corporation Dynamically self-adjusting polling mechanism
US7420931B2 (en) 2003-06-05 2008-09-02 Nvidia Corporation Using TCP/IP offload to accelerate packet filtering
US7991918B2 (en) 2003-06-05 2011-08-02 Nvidia Corporation Transmitting commands and information between a TCP/IP stack and an offload unit
EP1489491A1 (en) 2003-06-19 2004-12-22 Texas Instruments Incorporated Dynamically changing the semantic of an instruction
US7013358B2 (en) 2003-08-09 2006-03-14 Texas Instruments Incorporated System for signaling serialized interrupts using message signaled interrupts
US7979548B2 (en) 2003-09-30 2011-07-12 International Business Machines Corporation Hardware enforcement of logical partitioning of a channel adapter's resources in a system area network
JP2005122640A (ja) 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。
US7146482B2 (en) 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation
US7552436B2 (en) 2003-11-25 2009-06-23 International Business Machines Memory mapped input/output virtualization
US7277968B2 (en) 2004-01-23 2007-10-02 International Business Machines Corporation Managing sets of input/output communications subadapters of an input/output subsystem
US7107384B1 (en) 2004-03-01 2006-09-12 Pericom Semiconductor Corp. Dynamic PCI-bus pre-fetch with separate counters for commands of commands of different data-transfer lengths
JP2005309553A (ja) 2004-04-19 2005-11-04 Hitachi Ltd 計算機
US7530071B2 (en) 2004-04-22 2009-05-05 International Business Machines Corporation Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
US7506214B2 (en) 2004-04-22 2009-03-17 International Business Machines Corporation Application for diagnosing and reporting status of an adapter
US7209994B1 (en) 2004-05-11 2007-04-24 Advanced Micro Devices, Inc. Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
US7941799B2 (en) * 2004-05-27 2011-05-10 International Business Machines Corporation Interpreting I/O operation requests from pageable guests without host intervention
US20050289271A1 (en) 2004-06-29 2005-12-29 Martinez Alberto J Circuitry to selectively produce MSI signals
US7496706B2 (en) 2004-06-30 2009-02-24 Intel Corporation Message signaled interrupt redirection table
US20060005083A1 (en) 2004-06-30 2006-01-05 International Business Machines Corporation Performance count tracing
US7418572B2 (en) 2004-08-18 2008-08-26 International Business Machines Corporation Pretranslating input/output buffers in environments with multiple page sizes
JP4788124B2 (ja) 2004-09-16 2011-10-05 株式会社日立製作所 データ処理システム
TWI252397B (en) 2004-09-17 2006-04-01 Ind Tech Res Inst Method and apparatus of built-in self-diagnosis and repair in a memory with syndrome identification
US7444493B2 (en) 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
US7340582B2 (en) 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US7334107B2 (en) 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US7373446B2 (en) 2004-11-05 2008-05-13 Microsoft Corporation Method and system for dynamically patching an operating system's interrupt mechanism
US7296120B2 (en) 2004-11-18 2007-11-13 International Business Machines Corporation Mechanism that provides efficient multi-word load atomicity
US7188346B2 (en) 2004-11-29 2007-03-06 International Business Machines Corporation Method, system and program product for correlating data between operating environments
US7284112B2 (en) 2005-01-14 2007-10-16 International Business Machines Corporation Multiple page size address translation incorporating page size prediction
US7562366B2 (en) 2005-02-03 2009-07-14 Solarflare Communications, Inc. Transmit completion event batching
US7886086B2 (en) 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
US7464191B2 (en) 2005-02-25 2008-12-09 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US7260664B2 (en) 2005-02-25 2007-08-21 International Business Machines Corporation Interrupt mechanism on an IO adapter that supports virtualization
US7493425B2 (en) 2005-02-25 2009-02-17 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US20060195617A1 (en) 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US7475166B2 (en) 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US7567567B2 (en) 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7200704B2 (en) 2005-04-07 2007-04-03 International Business Machines Corporation Virtualization of an I/O adapter port using enablement and activation functions
US7260663B2 (en) 2005-04-07 2007-08-21 International Business Machines Corporation System and method for presenting interrupts
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7502872B2 (en) 2005-05-23 2009-03-10 International Bsuiness Machines Corporation Method for out of user space block mode I/O directly between an application instance and an I/O adapter
US7225287B2 (en) 2005-06-01 2007-05-29 Microsoft Corporation Scalable DMA remapping on a computer bus
US7516252B2 (en) 2005-06-08 2009-04-07 Intel Corporation Port binding scheme to create virtual host bus adapter in a virtualized multi-operating system platform environment
US20060288130A1 (en) 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7631097B2 (en) 2005-07-21 2009-12-08 National Instruments Corporation Method and apparatus for optimizing the responsiveness and throughput of a system performing packetized data transfers using a transfer count mark
US8028154B2 (en) 2005-07-29 2011-09-27 Broadcom Corporation Method and system for reducing instruction storage space for a processor integrated in a network adapter chip
US7657662B2 (en) 2005-08-31 2010-02-02 International Business Machines Corporation Processing user space operations directly between an application instance and an I/O adapter
US7546487B2 (en) 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US20070073955A1 (en) 2005-09-29 2007-03-29 Joseph Murray Multi-function PCI device
US7474623B2 (en) 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US7882489B2 (en) * 2005-11-22 2011-02-01 International Business Machines Corporation Integrated code generation for adapter-specific property template
US20070136554A1 (en) 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
US7475183B2 (en) 2005-12-12 2009-01-06 Microsoft Corporation Large page optimizations in a virtual machine environment
US7398343B1 (en) 2006-01-03 2008-07-08 Emc Corporation Interrupt processing system
US7328296B1 (en) 2006-01-03 2008-02-05 Emc Corporation Interrupt processing system
US7548999B2 (en) 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
US7653803B2 (en) 2006-01-17 2010-01-26 Globalfoundries Inc. Address translation for input/output (I/O) devices and interrupt remapping for I/O devices in an I/O memory management unit (IOMMU)
US7673116B2 (en) 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
US20070174723A1 (en) 2006-01-18 2007-07-26 Omar Cardona Sub-second, zero-packet loss adapter failover
US7849232B2 (en) 2006-02-17 2010-12-07 Intel-Ne, Inc. Method and apparatus for using a single multi-function adapter with different operating systems
US7739422B2 (en) 2006-03-21 2010-06-15 International Business Machines Corporation Method to improve system DMA mapping while substantially reducing memory fragmentation
US7412589B2 (en) 2006-03-31 2008-08-12 International Business Machines Corporation Method to detect a stalled instruction stream and serialize micro-operation execution
US8621120B2 (en) 2006-04-17 2013-12-31 International Business Machines Corporation Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism
US7613847B2 (en) 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
US7954099B2 (en) 2006-05-17 2011-05-31 International Business Machines Corporation Demultiplexing grouped events into virtual event queues while in two levels of virtualization
JP4961833B2 (ja) 2006-05-19 2012-06-27 日本電気株式会社 クラスタシステム、負荷分散方法、最適化クライアントプログラム、及び調停サーバプログラム
TW200801952A (en) 2006-06-02 2008-01-01 Via Tech Inc Method for setting up a peripheral component interconnect express (PCIE)
US7571307B2 (en) 2006-07-26 2009-08-04 International Business Machines Corporation Capacity upgrade on-demand for I/O adapters
US7546398B2 (en) 2006-08-01 2009-06-09 International Business Machines Corporation System and method for distributing virtual input/output operations across multiple logical partitions
US7496707B2 (en) 2006-08-22 2009-02-24 International Business Machines Corporation Dynamically scalable queues for performance driven PCI express memory traffic
US8725914B2 (en) 2006-08-28 2014-05-13 International Business Machines Corporation Message signaled interrupt management for a computer input/output fabric incorporating platform independent interrupt manager
US7627723B1 (en) 2006-09-21 2009-12-01 Nvidia Corporation Atomic memory operators in a parallel processor
US20080126652A1 (en) 2006-09-27 2008-05-29 Intel Corporation Managing Interrupts in a Partitioned Platform
US7552298B2 (en) 2006-09-28 2009-06-23 Broadcom Corporation Method and system for deferred pinning of host memory for stateful network interfaces
JP2008090375A (ja) 2006-09-29 2008-04-17 Hitachi Ltd 割込み制御システム、およびこれを利用した記憶制御システム
US9135951B2 (en) 2006-10-10 2015-09-15 Qualcomm Incorporated System and method for dynamic audio buffer management
US7587575B2 (en) 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US20080091868A1 (en) 2006-10-17 2008-04-17 Shay Mizrachi Method and System for Delayed Completion Coalescing
US20080098197A1 (en) 2006-10-20 2008-04-24 International Business Machines Corporation Method and System For Address Translation With Memory Windows
US7849287B2 (en) 2006-11-13 2010-12-07 Advanced Micro Devices, Inc. Efficiently controlling special memory mapped system accesses
JP2008123298A (ja) 2006-11-13 2008-05-29 Canon Inc 情報処理方法及びシステム
US7624235B2 (en) 2006-11-30 2009-11-24 Apple Inc. Cache used both as cache and staging buffer
US7984454B2 (en) 2006-12-19 2011-07-19 International Business Machines Corporation Migration of single root stateless virtual functions
US7529860B2 (en) 2006-12-19 2009-05-05 International Business Machines Corporation System and method for configuring an endpoint based on specified valid combinations of functions
US7617340B2 (en) 2007-01-09 2009-11-10 International Business Machines Corporation I/O adapter LPAR isolation with assigned memory space
US20080168208A1 (en) 2007-01-09 2008-07-10 International Business Machines Corporation I/O Adapter LPAR Isolation In A Hypertransport Environment With Assigned Memory Space Indexing a TVT Via Unit IDs
JP5119686B2 (ja) 2007-03-06 2013-01-16 日本電気株式会社 情報処理装置および設定方法
US20080263391A1 (en) 2007-04-20 2008-10-23 International Business Machines Corporation Apparatus, System, and Method For Adapter Card Failover
EP2075696A3 (en) 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
JP5018252B2 (ja) 2007-06-06 2012-09-05 株式会社日立製作所 デバイス割り当て変更方法
US7617345B2 (en) 2007-07-02 2009-11-10 International Business Machines Corporation Prioritization of interrupts in a storage controller based on interrupt control directives received from hosts
US20090024823A1 (en) 2007-07-20 2009-01-22 Wenjeng Ko Overlayed separate dma mapping of adapters
US8250254B2 (en) 2007-07-31 2012-08-21 Intel Corporation Offloading input/output (I/O) virtualization operations to a processor
US8127296B2 (en) 2007-09-06 2012-02-28 Dell Products L.P. Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration
US8762999B2 (en) 2007-09-27 2014-06-24 Oracle America, Inc. Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US8141094B2 (en) 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
US7689734B2 (en) 2007-12-18 2010-03-30 International Business Machines Corporation Method for toggling non-adjacent channel identifiers during DMA double buffering operations
US7913030B2 (en) 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging capability
US8151083B2 (en) 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8037221B2 (en) 2008-01-16 2011-10-11 International Business Machines Corporation Dynamic allocation of DMA buffers in input/output adaptors
US7996628B2 (en) 2008-02-14 2011-08-09 International Business Machines Corporation Cross adapter shared address translation tables
US8332846B2 (en) 2008-02-28 2012-12-11 Sony Mobile Communications Ab Selective exposure to USB device functionality for a virtual machine by filtering descriptors
JP2009249108A (ja) 2008-04-04 2009-10-29 Mitsubishi Electric Building Techno Service Co Ltd エレベーター押ボタン一体型位置表示器
JP2009259108A (ja) 2008-04-18 2009-11-05 Toshiba Corp 情報処理装置および情報処理装置の制御方法
US20090276774A1 (en) 2008-05-01 2009-11-05 Junji Kinoshita Access control for virtual machines in an information system
US7743189B2 (en) 2008-05-05 2010-06-22 International Business Machines Corporation PCI function south-side data management
US8032680B2 (en) 2008-06-27 2011-10-04 Microsoft Corporation Lazy handling of end of interrupt messages in a virtualized environment
US8359408B2 (en) 2008-06-30 2013-01-22 Intel Corporation Enabling functional dependency in a multi-function device
US9262357B2 (en) 2008-09-29 2016-02-16 International Business Machines Corporation Associating process priority with I/O queuing
US8645596B2 (en) 2008-12-30 2014-02-04 Intel Corporation Interrupt techniques
CN101634975B (zh) 2009-08-20 2011-09-14 广东威创视讯科技股份有限公司 一种实现dma数据传输的方法及装置
JP5266590B2 (ja) 2009-09-18 2013-08-21 株式会社日立製作所 計算機システムの管理方法、計算機システム及びプログラム
US10341804B2 (en) 2009-10-28 2019-07-02 International Business Machines Corporation System, method and computer program product for accessing data from a source by a variety of methods to improve performance and ensure data integrity
US8713350B2 (en) 2009-12-08 2014-04-29 Hewlett-Packard Development Company, L.P. Handling errors in a data processing system
EP2510439B1 (en) 2009-12-08 2022-05-04 Hewlett Packard Enterprise Development LP Managing errors in a data processing system
US8321615B2 (en) 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
US8850166B2 (en) 2010-02-18 2014-09-30 International Business Machines Corporation Load pair disjoint facility and instruction therefore
US20110314263A1 (en) 2010-06-22 2011-12-22 International Business Machines Corporation Instructions for performing an operation on two operands and subsequently storing an original value of operand
US8914619B2 (en) 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8572635B2 (en) * 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8683108B2 (en) 2010-06-23 2014-03-25 International Business Machines Corporation Connected input/output hub management
US8566480B2 (en) * 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8615645B2 (en) * 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US9342352B2 (en) * 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8478922B2 (en) * 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8639858B2 (en) * 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1607504A (zh) * 2003-05-12 2005-04-20 国际商业机器公司 在多个输入/输出子系统映像上共享通信适配器

Also Published As

Publication number Publication date
EP2433212A1 (en) 2012-03-28
US8615645B2 (en) 2013-12-24
US20120216022A1 (en) 2012-08-23
EP2433212B1 (en) 2014-08-27
US9383931B2 (en) 2016-07-05
JP5736044B2 (ja) 2015-06-17
JP2013534667A (ja) 2013-09-05
US9134911B2 (en) 2015-09-15
CN102906692A (zh) 2013-01-30
WO2011160717A1 (en) 2011-12-29
US20140101400A1 (en) 2014-04-10
MX2012014857A (es) 2013-02-01
US20110320772A1 (en) 2011-12-29
SI2433212T1 (sl) 2014-11-28

Similar Documents

Publication Publication Date Title
CN102906692B (zh) 修改适配器功能参数的指令的方法和系统
CN102906722B (zh) 将消息信号中断转换为i/o适配器事件通知
CN102906719B (zh) 输入/输出地址到存储器地址的转换
CN102906701B (zh) 在计算环境中控制对适配器的访问的方法和系统
CN102947808B (zh) 一种有利于存储器访问的系统及方法
CN102906704B (zh) 控制处理适配器中断请求的速率
CN102906702B (zh) 对适配器的地址空间的访客端访问
CN102918516B (zh) 适配器中断源的类型的标识
CN102906705B (zh) 将消息信号中断转换为对客户操作系统的i/o适配器事件通知
CN102906721B (zh) 与访问地址空间并行地对地址空间调整大小
CN102906711B (zh) 用于适配器功能的测量工具
CN102906720B (zh) 启用/禁用计算环境的适配器
CN102906707B (zh) 管理与硬件事件关联的处理
CN102906694B (zh) 用于与适配器进行通信的加载指令的方法和系统
CN102906716B (zh) 促进计算环境的系统存储器的管理的方法
CN102906708B (zh) 响应于适配器事件采取的动作的操作系统通知
CN103562892B (zh) 配置存储级内存命令的系统和方法
CN103597459B (zh) 执行开始子通道指令的方法和系统
CN102906693B (zh) 用于执行用于将数据存储在适配器中的存储指令的方法及系统
CN103562874B (zh) 解除配置存储级内存命令
CN104252586A (zh) 选择的指令的预测获取和解码方法和系统
CN110162380A (zh) 用来防止软件侧通道的机制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1180801

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant