CN102906720B - 启用/禁用计算环境的适配器 - Google Patents

启用/禁用计算环境的适配器 Download PDF

Info

Publication number
CN102906720B
CN102906720B CN201080066955.7A CN201080066955A CN102906720B CN 102906720 B CN102906720 B CN 102906720B CN 201080066955 A CN201080066955 A CN 201080066955A CN 102906720 B CN102906720 B CN 102906720B
Authority
CN
China
Prior art keywords
adapter
function
enable
instruction
list item
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
CN201080066955.7A
Other languages
English (en)
Other versions
CN102906720A (zh
Inventor
D·格雷纳
C·盖尼
D·克拉多克
A·康奈斯基
B·格伦迪宁
M·法雷尔
T·格雷格
U·恩乔库-查尔斯
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 CN102906720A publication Critical patent/CN102906720A/zh
Application granted granted Critical
Publication of CN102906720B publication Critical patent/CN102906720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

启用适配器以供使用。所述启用包括根据请求为所述适配器分配一个或多个地址空间。对于分配给所述适配器的每个地址空间,分配对应的设备表项。当不再需要所述适配器时,将其禁用并且所分配的设备表项变得可用。

Description

启用/禁用计算环境的适配器
背景技术
本发明一般地涉及计算环境的输入/输出处理,具体地说,涉及启用/禁用计算环境的适配器。
当今,计算环境具有各种配置并使用各种类型的输入/输出(I/O)设备。为了使用I/O设备,启用此设备,然后一旦完成其使用,将其禁用。启用/禁用I/O设备的方式与设备相关。
在国际商业机器公司提供的z/及其先前产品中,I/O设备的启用和禁用传统上根据通道路径、控制单元和子通道执行。ChannelSubsystemCall(通道子系统调用)指令的各种功能提供接口,操作系统可以通过这些接口操纵各种I/O资源。
然而,可以使用不包括通道和子通道的其他类型的I/O设备。例如,外围组件互连(PCI)适配器使用不同于传统I/O设备的连接和通信范例。PCI规范可从万维网获得,网址为www.pcisig.com/home。
美国公开第2004/0117534A1号“ApparatusandMethodforDynamicallyEnablingandDisablingInterruptCoalescinginDataProcessingSystem(用于在数据处理系统中动态启用和禁用中断联合的装置和方法)”(2004年6月17日公开,Parry等人)描述了一种用于在数据处理系统中动态启用和禁用中断联合的装置和方法。该发明涉及持续监视IO适配器的IOP上的IO负载。IO适配器上的固件可以具有全局变量,其存储PCI功能寄存器的计数器。每个计数器跟踪对应PCI功能寄存器的未完成IO的数量。每当接收到新IO时,计数器递增,并且将完成的消息回传到OS时,计数器递减。定期生成计时器中断以便可以定期执行ISR。在ISR中,分析自从上一次计数器中断以来看到的每个计数器所存储的最大值。当存储的最大值大于预定阈值时,启用中断联合。
美国公开第2010/0005234A1号“EnablingFunctionalDependencyinaMulti-FunctionDevice(在多功能设备中实现功能依赖性)”(2010年1月7日公开,Ganga等人)描述了在一个实施例中,该发明包括一种方法,用于从多功能设备(MFD)读取配置信息、根据所述配置信息构建所述MFD执行的功能的功能依赖性的依赖性树(指示所述MFD能够执行至少一个依赖于其他功能的功能),以及至少部分地根据所指示的功能依赖性按顺序加载与所述功能关联的软件。描述和要求保护了其他实施例。
美国公开第2004/0199700A1号“VirtualPeripheralComponentInterconnectMultiple-FunctionDevice(虚拟外围组件互连多功能设备)”(2004年10月7日公开,ShawnAdamClayton)描述了一种外围组件互连(PCI)设备,其包括耦合到组件互连总线的总线接口、多组配置空间寄存器,以及虚拟多功能逻辑。每组配置空间寄存器与一个功能关联。所述虚拟多功能逻辑耦合到所述总线接口和所述多组配置空间寄存器。所述虚拟多功能逻辑提供对多个配置空间寄存器的访问以获得多个功能。所述虚拟多功能逻辑还使得多个功能能够共享所述总线接口和其他内部逻辑。
发明内容
根据本发明的一个方面,提供了一种用于启用/禁用适配器(例如PCI适配器)的能力。在一个实例中,所述能力向操作系统显示时,跨所述适配器通用,因此被视为与设备无关。
通过提供一种用于在计算环境中启用适配器的计算机程序产品,克服现有技术的缺点并提供优点。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并存储指令以便由所述处理电路执行以执行一种方法。所述方法例如包括:响应于执行用于启用适配器的CallLogicalProcessor(CLP)指令,所述CLP指令包括标识所述适配器并具有适配器未启用指示器的功能句柄,所述CLP指令请求多个直接存储器访问(DMA)地址空间,启用一个或多个DMA地址空间的所述执行包括以下a)和b):a)启用所述适配器,其中所述启用包括针对所述适配器启用注册以便进行地址转换以及启用中断以便支持直接存储器访问和消息信号中断;以及b)返回具有适配器已启用指示器的功能句柄。
在此还描述和要求保护与本发明的一个或多个方面相关的方法和系统。
通过本发明的技术实现其他特性和优点。在此详细描述本发明的其他实施例和方面并将它们视为要求保护的发明的一部分。
附图说明
现在仅通过实例的方式参考附图描述本发明的一个优选实施例,这些附图是:
图1A示出了用于结合并使用本发明的一个或多个方面的计算环境的一个实施例;
图1B示出了用于结合并使用本发明的一个或多个方面的计算环境的另一个实施例;
图2示出了根据本发明的一个方面的图1A和1B的系统存储器和I/O集线器的进一步细节的一个实施例;
图3A示出了根据本发明的一个方面的所使用的功能表项的一个实例;
图3B示出了根据本发明的一个方面的所使用的功能句柄的一个实施例;
图4A示出了根据本发明的一个方面的所使用的CallLogicalProcessor指令的一个实施例;
图4B示出了根据本发明的一个方面的由图4A的CallLogicalProcessor指令使用的请求块的一个实施例;
图4C示出了根据本发明的一个方面的由图4A的CallLogicalProcessor指令提供的响应块的一个实施例;
图5示出了根据本发明的一个方面的用于启用PCI功能的逻辑的一个实施例;
图6示出了根据本发明的一个方面的用于禁用PCI功能的逻辑的一个实施例;
图7示出了结合本发明的一个或多个方面的计算机程序产品的一个实施例;
图8示出了用于结合并使用本发明的一个或多个方面的主机计算机系统的一个实施例;
图9示出了用于结合并使用本发明的一个或多个方面的计算机系统的另一实例;
图10示出了包含用于结合并使用本发明的一个或多个方面的计算机网络的计算机系统的另一个实例;
图11示出了用于结合并使用本发明的一个或多个方面的计算机系统的各种元件的一个实施例;
图12A示出了用于结合并使用本发明的一个或多个方面的图11的计算机系统的执行单元的一个实施例;
图12B示出了用于结合并使用本发明的一个或多个方面的图11的计算机系统的分支单元的一个实施例;
图12C示出了用于结合并使用本发明的一个或多个方面的图11的计算机系统的加载/存储单元的一个实施例;以及
图13示出了用于结合并使用本发明的一个或多个方面的仿真的主机计算机系统的一个实施例。
具体实施方式
根据本发明的一个方面,提供了一种用于启用/禁用计算环境的适配器的能力。从操作系统角度,所述能力与设备无关。即,无论适配器的类型为何,操作系统都执行相同的逻辑。
如在此使用的,固件例如包括处理器的微代码、毫代码和宏代码。它例如包括用于实现更高级机器代码的硬件级别指令和/或数据结构。在一个实施例中,它例如包括专用代码,所述专用代码通常作为包括可信软件的微代码或特定于底层硬件的微代码来提供,并控制操作系统对系统硬件的访问。
此外,术语适配器包括任何类型的适配器(例如,存储适配器、处理适配器、PCI适配器、其他类型的输入/输出适配器等)。此外,在此处提供的实例中,适配器与适配器功能(例如,PCI功能)互换使用。在一个实施例中,适配器包括一个适配器功能。然而,在其他实施例中,适配器可以包括多个适配器功能。无论适配器包括一个适配器功能还是多个适配器功能,本发明的一个或多个方面都适用。在一个实施例中,根据本发明的一个方面,如果适配器包括多个适配器功能,则可以启用/禁用每个功能。
参考图1A描述了用于结合并使用本发明的一个或多个方面的计算环境的一个实施例。在一个实例中,计算环境100是国际商业机器公司提供的System服务器。System基于国际商业机器公司提供的z/在标题为“z/ArchitecturePrinciplesofOperation(z/Architecture操作原理)”(编号为SA22-7832-07的IBM出版物,2009年2月)的出版物中描述了有关z/的详细信息。System和z/是位于纽约阿蒙克的国际商业机器公司的注册商标。在此使用的其他名称可能是国际商业机器公司或其他公司的注册商标、商标或产品名称。
在一个实例中,计算环境100包括一个或多个中央处理单元(CPU)102,它们通过存储器控制器106耦合到系统存储器104(也称为主存储器)。为了访问系统存储器104,中央处理单元102发出包括用于访问系统存储器的地址的读取或写入请求。包括在所述请求中的地址通常不可直接用于访问系统存储器,因此将它转换为可直接用于访问系统存储器的地址。通过转换机制(XLATE)108转换地址。例如,使用例如动态地址转换(DAT)将地址从虚拟地址转换为实地址或绝对地址。
存储器控制器106接收包括所述地址(已转换,如有必要)的请求。在一个实例中,存储器控制器106由硬件组成,并用于仲裁对系统存储器的访问以及维护存储器的一致性。此仲裁针对从CPU102接收的请求以及从一个或多个适配器110接收的请求执行。与中央处理单元相同,适配器向系统存储器104发出请求以获得对系统存储器的访问。
在一个实例中,适配器110是包括一个或多个PCI功能的外围组件互连(PCI)或PCIexpress(PCIe)适配器。PCI功能发出请求,此请求通过一个或多个交换机(例如,PCIe交换机)114路由到输入/输出集线器112(例如,PCI集线器)。在一个实例中,输入/输出集线器包括含有一个或多个状态机的硬件,并通过I/O到存储器总线120耦合到存储器控制器106。
输入/输出集线器例如包括从交换机接收请求的根复合体116。所述请求包括被提供给地址转换和保护单元118的输入/输出地址,地址转换和保护单元118访问用于所述请求的信息。作为实例,所述请求可以包括用于执行直接存储器访问(DMA)操作或请求消息信号中断(MSI)的输入/输出地址。地址转换和保护单元118访问用于所述DMA或MSI请求的信息。作为一个特定实例,对于DMA操作,可以获得信息以转换所述地址。然后将转换的地址转发到存储器控制器以访问系统存储器。
在计算环境的另一实施例中,除了一个或多个CPU102之外或者替代一个或多个CPU102,将中央处理复合体耦合到存储器控制器106,如图1B中所示。在此实例中,中央处理复合体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的一个实例是位于纽约阿蒙克的国际商业机器公司提供的ProcessorResource/SystemManager(PR/SM)。
尽管在此实例中描述了具有逻辑分区的中央处理复合体,但其他处理单元(其中包括未被分区的单处理器或多处理器处理单元)可以结合并使用本发明的一个或多个方面。在此描述的中央处理复合体只是一个实例。
参考图2描述了有关系统存储器和输入/输出集线器的进一步细节。在此实例中,存储器控制器未被示出,但可以使用。I/O集线器可以直接或通过存储器控制器耦合到系统存储器104和/或处理器204。
参考图2,在一个实例中,系统存储器104包括一个或多个地址空间200。地址空间是已分配给计算环境的特定组件(例如特定适配器)的系统存储器的特定部分。在一个实例中,地址空间可由适配器发起的直接存储器访问(DMA)访问,因此地址空间在此处实例中被称为DMA地址空间。然而,在其他实例中,不使用直接存储器访问来访问地址空间。
在一个实例中,具有在处理器204(例如,CPU102或分配给LP152的CP154)中执行的操作系统202,操作系统202将DMA地址空间分配给特定适配器。此分配通过注册过程执行,所述注册过程导致初始化(例如通过可信软件)此适配器的设备表项210。每个分配的地址空间具有一个设备表项,并且此设备表项与单个适配器关联。设备表项位于设备表212中,设备表212位于I/O集线器112中。例如,设备表212位于I/O集线器的地址转换和保护单元中。
在一个实例中,设备表项210包括可在为适配器提供各种服务中使用的信息。例如,设备表项包括启用指示器214,启用指示器214指示是否针对特定适配器启用设备表项。设备表项可以包括更多、更少或不同的用于启用/禁用操作以及其他提供的服务(例如地址转换、中断处理等)的信息。
在一个实施例中,使用位于与适配器关联的PCI功能220发出的请求中的请求者标识符(RID)(和/或地址的一部分),查找发出请求的特定适配器要使用的设备表项。将请求者id(例如,指定例如总线号、设备号和功能号的16位值)包括在请求以及要使用的I/O地址中。通过例如用于提供索引值的交换机114,将请求(包括所述RID和所述I/O地址)提供给例如内容可寻址存储器(CAM)230。例如,CAM包括多个项,每个项对应于到设备表的索引。每个CAM项包括RID的值。例如,如果接收的RID与CAM中的项中包含的值匹配,则使用对应的设备表索引查找设备表项。即,使用CAM的输出作为设备表212的索引以查找设备表项210。如果不存在匹配,则丢弃所接收的分组。(在其他实施例中,不需要CAM或其他查找,并使用所述RID作为索引。)
除了设备表项之外,另一个数据结构也与适配器关联,所述数据结构包括有关适配器的信息。在此处描述的特定实例中,所述适配器是PCI功能,因此所述数据结构被称为功能表项(FTE)。尽管此处的实例涉及PCI功能,但在其他实施例中,根据本发明的一个方面,可以启用/禁用其他适配器功能或适配器。
如图3A中所示,在一个实例中,功能表项300是例如存储在安全存储器中的功能表302中的项。每个功能表项300包括在与其适配器关联的处理中使用的信息。在一个实例中,功能表项300包括:实例号308,其指示与功能表项关联的适配器功能的特定实例;一个或多个设备表项索引310,每个设备表项索引用作到所述设备表的索引以查找其对应的设备表项(PCI功能可以具有多个为其分配的地址空间,因此具有多个DTE);繁忙指示器312,其指示PCI功能是否繁忙;持久错误状态指示器314,其指示功能是否处于持久错误状态;恢复启动指示器316,其指示是否已针对功能启动恢复;许可指示器318,其指示操作系统是否尝试使PCI功能具有执行此操作的权限;以及启用指示器320,其指示是否已启用功能(例如,1=已启用,0=已禁用)。
在一个实例中,根据固件执行的监视设置所述繁忙指示器、持久错误状态指示器和恢复启动指示器。进而,例如根据策略设置所述许可指示器。在其他实施例中,功能表项可以包括更多、更少或不同的信息。
在一个实施例中,为了在包括一个或多个项的功能表中查找功能表项,使用诸如功能句柄之类的功能标识符。例如,使用功能句柄的一个或多个位作为对功能表的索引以查找特定功能表项。
参考图3B,描述了有关功能句柄的其他细节。在一个实例中,功能句柄350包括:启用指示器352,其指示是否启用PCI功能句柄;PCI功能号354,其标识功能(这是静态标识符),并且在一个实施例中,它是对功能表的索引;以及实例号356,其指示此功能句柄的特定实例。例如,每次启用功能时,递增功能号以提供新的实例号。
为了使用PCI功能,要启用此功能。例如,想要使用PCI功能的操作系统执行查询以确定它有资格使用的一个或多个功能(根据I/O配置),并选择要启用的这些功能之一。在一个实例中,使用CallLogicalProcessor指令的setPCIfunction命令启用所述功能。图4A中示出了此指令的一个实施例。如所示出的,在一个实例中,CallLogicalProcessor指令400包括:操作码402,其指示它是CallLogicalProcessor指令;以及命令指示404。在一个实例中,此指示是描述要执行的命令的请求块的地址。图4B中示出了此类请求块的一个实施例。
如图4B中所示,在一个实例中,请求块420包括多个参数,例如长度字段422,其指示请求块的长度;命令字段424,其指示setPCIfunction命令;PCI功能句柄426,其是要提供给启用或禁用功能的句柄;操作码428,其用于指定启用或禁用操作;以及DMA地址空间(DMAAS)数430,其指示要与特定PCI功能关联的所请求的地址空间数。其他实施例中可以包括更多、更少或不同的信息。
例如,在其中由可调页存储模式客户的主机发出指令的虚拟环境中,提供客户标识。还可能具有其他变型。在一个实例中,在z/中,可调页客户经由StartInterpretiveExecution(SIE)指令以解释等级2被解释性地执行。例如,逻辑分区(LPAR)系统管理程序执行SIE指令以开始物理的、固定的存储器中的逻辑分区。如果z/是该逻辑分区中的操作系统,它发出SIE指令以在其V=V(虚拟)存储中执行其客户(虚拟)机。因此,LPAR系统管理程序使用等级1SIE,且z/系统管理程序使用等级2SIE。
响应于发出并处理CallLogicalProcessor指令,返回响应块并且所述响应块中包括的信息与执行的操作相关。图4C中示出了响应块的一个实施例。在一个实例中,响应块450包括:长度字段452,其指示响应块的长度;响应代码454,其指示命令的状态;以及PCI功能句柄456,其标识PCI功能。响应于启用命令,PCI功能句柄是PCI功能的已启用句柄。进而,完成禁用操作时,PCI功能句柄是可以在未来由启用功能启用的通用句柄。
参考图5描述了用于启用PCI功能的逻辑的一个实施例。在一个实例中,响应于发出其中将命令设置为setPCIfunction命令并将操作码设置为启用功能的CallLogicalProcessor指令,启动此逻辑。响应于被授权执行此逻辑的操作系统或操作系统的设备驱动程序发出所述指令,例如由处理器执行此逻辑。在其他实施例中,可以在不使用CallLogicalProcessor指令的情况下执行所述逻辑。
参考图5,首先判定CallLogicalProcessor指令的请求块中提供的句柄是否是有效句柄(查询500)。即,该句柄是指向功能表中的有效项还是在有效项范围之外(例如,句柄的功能号部分是否指定已安装的功能)。如果该句柄未知,则提供指示该句柄未被识别的对应响应代码。然而,如果该句柄已知,则进一步查询是否启用了该句柄(查询504)。通过检查PCI功能句柄中的启用指示器进行此判定。如果设置指示启用了该句柄的指示,则返回指示已启用的响应代码(步骤506)。
然而,如果该句柄已知并且未被启用(即,针对启用有效),则进一步判定所请求的要分配给PCI功能的地址空间数是否大于最大值(查询580)。为了进行此判定,将请求块中指定的DMA地址空间数与最大值(在一个实例中,根据策略提供)相比较。如果地址空间数大于最大值,则提供指示无效DMA地址空间值的响应代码(步骤510)。否则,判定所请求的地址空间数是否可用(查询512)。通过检查是否具有可用于所请求的地址空间数的设备表项进行此判定。如果所请求的地址空间数不可用,则返回指示资源不足的响应代码(步骤514)。否则,处理继续以启用PCI功能。
使用所提供的句柄查找功能表项(步骤516)。例如,使用句柄的一个或多个指定位作为功能表的索引以查找特定功能表项。响应于查找到适当的功能表项,判定所述功能是否已启用(查询518)。通过检查功能表项中的启用指示器进行此判定。如果已启用所述功能(即,指示器被设置为1),则返回指示PCI功能已处于所请求的状态的响应代码(步骤520)。
如果尚未启用所述功能,则处理继续判定所述功能是否处于持久错误状态(查询522)。如果功能表项中的持久错误状态指示器指示它处于持久错误状态,则返回指示此情况的响应代码(步骤524)。然而,如果所述功能未处于持久错误状态,则进一步判定是否已针对所述功能启动错误恢复(查询526)。如果设置了功能表项中的恢复启动指示器,则提供指示已启动恢复的响应代码(步骤528)。否则,进一步查询所述PCI功能是否繁忙(查询530)。此外,如果对功能表项中的繁忙指示器的检查指示所述PCI功能繁忙,则提供此类指示(步骤532)。然而,如果所述PCI功能未处于持久错误状态,未启动恢复并且所述功能不繁忙,则进一步查询是否允许操作系统启用此PCI功能(步骤534)。如果根据功能表项的许可指示器而不允许启用,则提供指示未授权操作的响应代码(步骤536)。然而,如果成功通过所有测试,则进一步判定是否存在任何可用于此PCI功能的DTE(查询538)。作为实例,可以根据当前未在I/O集线器中启用的DTE判定DTE可用。此外,可以应用策略以进一步限制可用于给定操作系统或逻辑分区的DTE数。可以分配任何可由适配器访问的可用DTE。如果没有可用的DTE,则返回指示一个或多个所请求的DTE不可用的响应代码(步骤540)。
如果DTE可用,则分配并启用与所请求的地址空间数对应的DTE数(步骤542)。在一个实例中,所述启用包括将每个DTE中的启用指示器设置为已启用。此外,在此实例中,所述启用包括建立CAM以提供到每个DTE的索引。例如,对于每个DTE,使用索引加载CAM中的项。
此外,所述DTE与功能表项关联(步骤544)。这包括例如将每个DTE索引包含在功能表项中。然后通过设置功能表项中的启用指示器将功能标记为已启用(步骤546)。此外,设置句柄中的启用位并更新实例号(步骤548)。然后返回此已启用的句柄(步骤550),从而允许使用PCI适配器。例如,响应启用所述功能,可以执行地址转换和中断的注册,所述PCI功能可以执行DMA操作;所述功能可以请求中断;和/或可以向所述功能发出加载、存储、存储块和/或修改功能控件指令(例如,PCILoad、PCIStore、PCIStoreBlock、ModifyPCIFunctionControls)。
参考图6描述了用于禁用PCI功能的逻辑的一个实施例。在此实例中,通过其中将操作码设置为禁用的CallLogicalProcessor指令请求setPCIfunction命令;然而,在其他实施例中,不使用此类指令。在一个实例中,操作系统或操作系统的设备驱动程序执行此逻辑。
参考图6,首先判定CallLogicalProcessor指令的请求块中提供的句柄是否是已知句柄(查询600)。例如,检查该句柄是否指向功能表中的有效项。如果该句柄指向有效项,则该句柄是已知句柄。如果未指向有效项,则提供指示未知句柄的响应代码(步骤602)。然而,如果该句柄已知,则进一步判定是否已禁用该句柄(查询604)。如果该句柄中的启用指示器指示已禁用该句柄,则提供指示此情况的响应代码。否则,如果该句柄已知并被启用,则该句柄针对禁用操作有效并用于查找功能表项(步骤608)。
响应于获得功能表项,判定是否已禁用所述功能,如功能表项中的启用指示器指示的那样(步骤610)。如果未设置指示器(即,启用指示器=0),则提供指示已禁用所述功能的响应代码(步骤612)。
如果设置了指示器(即,启用=1),则判定所述功能是否处于持久错误状态(查询614)。如果处于持久错误状态,则提供指示错误的响应代码(步骤616)。否则,判定是否启动错误恢复(查询618)。如果启动错误恢复,则提供指示此情况的响应代码(步骤620)。如果未启动错误恢复,则判定所述PCI功能是否繁忙(查询622)。如果繁忙,则提供指示此情况的响应代码(步骤624)。否则,判定是否授权操作系统发出此禁用命令(步骤626)。此判定例如通过以下操作进行:检查功能表项中的许可指示器,以及将该句柄中的实例号与功能表项中的实例号相比较。如果它们不相等,则发出请求以禁用已启用的所述功能的不同实例。如果许可指示器指示不允许或实例号不相等,则操作系统未被授权,并提供指示未授权的响应代码(步骤628)。然而,如果许可指示器指定允许并且实例号相等,则操作系统被授权。
如果所有检查都成功,则禁用所述功能(步骤630)。在一个实例中,这包括将功能表项中的启用指示器设置为0(或以其他方式设置为关闭状态)。之后,清除与此PCI功能关联的DTE中的注册参数(步骤632),并释放这些DTE以供其他PCI功能使用(步骤634)。例如,清除DTE中的启用位并删除与该DTE关联的CAM项。此外,将所述句柄中的启用指示器重置为0(或指示已禁用或关闭的某一其他值)(步骤636),并返回已禁用的句柄(步骤638)。
在另一实施例中,如果查询614、618和622处的一个或多个测试失败,则禁用仍继续并可提供指示此情况的响应代码。
上面详细描述了用于启用/禁用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)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
现在参考图7,在一个实例中,计算机程序产品700包括,例如,一个或多个计算机可读存储介质702,在其上存储有计算机可读的程序代码装置或逻辑704,以提供并促进本发明的一个或多个方面。
体现在计算机可读介质上的程序代码可以用任何适当的介质传输,所述介质包括但不限于:无线、有线、光缆、RF等,或上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本文中将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以将这些计算机程序指令存储在能使得计算机、其它可编程数据处理装置或其他设备以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制品。
也可以将计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
除了上述,本发明的一个或多个方面可由服务提供商提供、许诺(offer)、部署、管理、服务等,该服务提供商提供用户环境的管理。例如,服务提供商可创建、维持、支持等计算机代码和/或计算机基础设施,其为一个或多个用户执行本发明的一个或多个方面。反过来,服务提供商可例如根据预订和/或费用协议从用户接受付费。额外地或可替换地,服务提供商可从向一个或多个第三方销售广告内容接受付费。
在本发明的一个方面,可部署用于执行本发明的一个或多个方面的应用。作为一个实例,部署应用包括提供计算机基础设施,其可操作以执行本发明的一个或多个方面。
作为本发明的又一个方面,可部署计算基础设施,其包括将计算机可读代码集成到计算机系统,其中与计算系统结合的代码能够执行本发明的一个或多个方面。
作为本发明的再一个方面,可提供用于集成计算基础设施包括将计算机可读码集成到计算机系统的过程。计算机系统包括计算机可读介质,其中计算机介质包括本发明的一个或多个方面。与计算机系统结合的代码能够执行本发明的一个或多个方面。
尽管上面描述了各种实施例,但这些实施例只是实例。例如,其他架构的计算环境可以结合并使用本发明的一个或多个方面。作为实例,除System服务器之外的服务器(例如国际商业机器公司提供的PowerSystems服务器或其他服务器,或者其他公司的服务器)可以包括、使用和/或受益于本发明的一个或多个方面。此外,尽管在此处实例中,所述适配器和PCI集线器被视为服务器的一部分,但在其他实施例中,它们不必一定被视为服务器的一部分,而是可以仅被视为耦合到计算环境的系统存储器和/或其他组件。所述计算环境无需是服务器。此外,尽管描述了表,但可以使用任何数据结构,并且术语表将包括所有此类数据结构。此外,尽管所述适配器基于PCI,但本发明的一个或多个方面可与其他适配器或其他I/O组件一起使用。适配器和PCI适配器只是实例。此外,可以在安全存储器之外,例如包括在硬件(例如,PCI功能硬件)中查找和维护FTE或FTE的参数。所述DTE、FTE和/或句柄可以包括更多、更少或不同的信息,以及所述请求和/或响应块。此外,CallLogicalProcessor指令可以包括更多、更少或不同的字段。可能具有许多其他变型。
此外,其他类型的计算环境可受益于本发明的一个或多个方面。作为一个实例,可使用适于存储和/或执行程序代码的数据处理系统,其包括至少两个通过系统总线直接或间接耦合到存储元件的处理器。存储器元件包括,例如,在程序代码的实际执行期间使用的本地存储器、大容量存储器以及高速缓冲存储器,其提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储器取回代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备、DASD、磁带、CD、DVD、拇指驱动器(thumbdrive)以及其他的存储介质等)可直接或通过介于其间的I/O控制器被耦合到系统。网络适配器也可被耦合到系统以使得数据处理系统能够通过介于其间的私有或公共网络而耦合到其他的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些可获得的网络适配器类型。
参考图8,其描述了实施本发明的一个或多个方面的主机计算机系统5000的代表性组件。代表性主机计算机5000包括与计算机存储器(即,中央存储器)5002通信的一个或多个CPU,以及到存储介质设备5011和网络5010的I/O接口,以用于与其他计算机或SAN等通信。CPU5001符合具有架构指令集和架构功能的架构。CPU5001可具有动态地址转换(DAT)5003,其用于将程序地址(虚拟地址)转变为存储器的真实地址。DAT典型地包括用于高速缓存转换的转换后备缓冲器(TLB)5007,这样稍后对计算机存储器5002块的访问不需要地址转换的延迟。典型地,高速缓存5009被使用在计算机存储器5002和处理器5001之间。高速缓存5009可以是分层的,具有可被多于一个的CPU获得的大高速缓存,以及大高速缓存与每个CPU之间的较小、较快(较低级)的高速缓存。在一些实施方式中,较低级的高速缓存被拆分以为指令获取和数据访问提供单独的低级高速缓存。在一个实施例中,由指令获取单元5004经由高速缓存5009从存储器5002获取指令。指令在指令解码单元5006中被解码,且(在一些实施例中与其他指令一起)被发送到一个或多个指令执行单元5008。典型地,使用若干执行单元5008,例如算术执行单元、浮点执行单元和分支指令执行单元。指定被执行单元执行,如需要,从指令指定的寄存器或存储器访问操作数。如果将从存储器5002访问(加载或存储)操作数,加载/存储单元5005典型地在被执行的指令的控制下处理该访问。指令可在硬件电路或内部微代码(固件)中或其组合中被执行。
需注意的是,计算机系统包括本地(或主)存储器中的信息,以及寻址、保护以及引用和改变记录。寻址的一些方面包括地址格式、地址空间的概念、地址的各种类型和其中一种类型的地址被转换为另一种类型的地址的方式。一些主存储器包括持久分配地存储位置。主存储器向系统提供直接可被寻址的快速访问的数据存储。数据和程序在可被处理之前都将(从输入设备)被加载到主存储器。
主存储器可包括一个或多个更小、更快速访问的缓冲存储器,有时候被称为高速缓存。高速缓存典型地与CPU或I/O处理器物理地关联。物理结构以及不同存储介质的使用的效果,除了在性能上,通常不会被程序观察到。
可维护用于指令和数据操作数的单独的高速缓存。高速缓存中的信息可被维护为相邻的字节,所述字节位于被称为高速缓存块或高速缓存线(或简称为线)的整数界限上。模型可提供EXTRACTCACHEATTRIBUTE(提取高速缓存属性)指令,其返回高速缓存线的字节大小。模型也可提供PREFETCHDATA(预取数据)和PREFETCHDATARELATIVELONG(预取较长数据)指令,其实现存储到数据或指令高速缓存中的预取,或数据从高速缓存的释放。
存储器被视为位的长水平串。对于大部分操作来说,以从左到右的顺序进行对存储器的访问。位串被细分为八个位的单位。八位单位被称为字节,其是所有信息格式的基本构件。存储器中的每个字节位置由唯一的非负整数标识,该非负整数是该字节位置的地址,或简称为字节地址。相邻的字节位置具有连续的地址,在左边从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)等,其任何一个都将符合本发明)实施。参考图11,体现本发明的软件程序代码可典型地由主系统5000的处理器从长期存储介质设备5011(诸如CD-ROM驱动器、磁带驱动或硬盘驱动器)访问。软件程序代码可体现在与数据处理系统一起使用的各种已知介质(诸如软磁盘、硬盘驱动或CD-ROM)中的任何一个上。代码可在这样的介质上被分发,或可从一个计算机系统的计算机存储器5002或存储设备通过网络5010被分发给其他计算机系统的用户,以由这样的其他系统的用户使用。
软件程序代码包括操作系统,其控制各种计算机组件和一个或多个应用程序的功能和交互。程序代码通常可从存储介质设备5011调页到相对更高速的计算机存储器5002,在此它对于处理器5001是可用的。用于在存储器中、物理介质上和/或体现软件程序代码或经由网络分发软件代码的技术和方法是熟知的,且不会在此被进一步讨论。当程序代码被创建并存储在有形介质(包括但不限于电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带等)上时,其经常被称为“计算机程序产品”。计算机程序产品介质典型地可由优选地位于计算机系统中的处理电路读取以由处理电路执行。
图9示出了可在其中实施本发明的代表性工作站或服务器硬件系统。图9的系统5020包括代表性基本计算机系统(basecomputersystem)5021,诸如个人计算机、工作站或服务器,包括可选的外围设备。根据已知技术,基本计算机系统5021包括一个或多个处理器5026以及被用于连接并使能处理器5026和系统5021的其他组件之间的通信的总线。总线将处理器5026连接到存储器5025以及可包括例如硬盘驱动器(例如,包括磁介质、CD、DVD和闪存中的任何一个)或磁带驱动器的长期存储器5027。系统5021也可包括用户接口适配器,其经由总线将微处理器5026连接到一个或多个接口设备,诸如键盘5024、鼠标5023、打印机/扫描仪5030和/或其他接口设备,其可以是任何用户接口设备,诸如触摸敏感屏、数字化输入垫(digitizedentrypad)等。总线也可经由显示适配器将诸如LCD屏幕或监视器的显示设备5022连接到微处理器5026。
系统5021可通过能与网络5029通信5028的网络适配器与其他计算机或计算机网络通信。示例性网络适配器是通信通道、令牌环网、以太网或调制解调器。或者,系统5021可使用诸如CDPD(蜂窝数字分组数据)卡的无线接口来通信。系统5021可与局域网(LAN)或广域网(WAN)中的这样的其他计算机关联,或系统5021可以是与另一个计算机的客户端/服务器安排中的客户端等。所有这些配置以及合适的通信硬件和软件在本领域中是已知的。
图10示出了其中可实施本发明的数据处理网络5040。数据处理网络5040可包括多个单独的网络,诸如无线网和有线网,其每个可包括多个单独的工作站5041、5042、5043、5044。此外,本领域技术人员将理解,可包括一个或多个LAN,其中LAN可包括多个耦合到主处理机的智能工作站。
仍然参考图13,网络也可包括大型计算机或服务器,诸如网关计算机(客户端服务器5046)或应用服务器(远程服务器5048,其可访问数据储存库,且也可直接从工作站5045被访问)。网关计算机5046用作到每个单独网络的进入点。当将一个连网协议连接到另一个时,需要网关。网关5046可通过通信链路优选地耦合到另一个网络(例如因特网5047)。也可使用通信链路将网关5046直接耦合到一个或多个工作站5041、5042、5043、5044。可以利用可从国际商业机器公司获得的IBMeServerTMSystem服务器来实现网关计算机。
同时参考图9和10,可体现本发明的软件编程代码可被系统5020的处理器5026从诸如CD-ROM驱动器或硬盘驱动器的长期存储介质5027访问。软件编程代码可被体现在与数据处理系统一起使用的各种已知介质(诸如软盘、硬盘驱动器或CD-ROM)中的任一个上。代码可在这样的介质上被分发,或从一个计算机系统的存储器或存储设备通过网络被分发到其他计算机系统的用户5050、5051,以供这样的其他系统的用户使用。
备选地,编程代码可体现在存储器5025中,且由处理器5026使用处理器总线访问。这样的编程代码包括操作系统,其控制各种计算机组件和一个或多个应用程序5032的功能和交互。程序代码通常从存储介质5027调页到高速存储器5025,在此它可用于由处理器5026进行处理。用于在存储器中、在物理介质上体现软件编程代码和/或经由网络分发软件代码的技术和方法是公知的,且不会在此进一步讨论。程序代码,当其被创建且在有形介质(包括但不限于电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带等)上存储时,通常被称为“计算机程序产品”。计算机程序产品介质典型地可以被优选地位于计算机系统中的处理电路读取以由处理电路执行。
最容易被处理器使用的高速缓存(通常比处理器的其他高速缓存更快更小)是最低级(L1或级别1)高速缓存,且主存储(主存储器)是最高级高速缓存(如果有三个级别的话是L3)。最低级高速缓存经常被分为保持将被执行的机器指令的指令缓存(I-高速缓存),和保持数据操作数的数据高速缓存(D-高速缓存)。
参考图11,为处理器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或从正被执行的指令的立即字段(immediatefield)向执行单元5057提供操作数。执行的结果,当被存储时,被存储在存储器5025、寄存器5059或其他机器硬件(诸如控制寄存器、PSW寄存器等)中。
处理器5026典型地具有一个或多个用于执行指令的功能的单元5057、5058、5060。参考图12A,执行单元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被设计为用于标量运算,且有些用于浮点。根据架构,数据可以是大端(bigendien)(其中最低有效字节位于最高字节地址)或小端(littleendien)(其中最低有效字节位于最低字节地址)。IBMz/是大端。根据架构,带符号字段可以是符号和幅度、1的补码或2的补码。2的补码数是有利的,其在于ALU不需要设计减法能力,因为不管是2的补码中的负值还是正值,都仅要求ALU中的加法。数字通常以速记描述,其中12位的字段定义了4096字节块的地址,且通常被描述为例如4Kbyte(千字节)块。
参考图12B,用于执行分支指令的分支指令信息典型地被发送到分支单元5058,该分支单元经常使用诸如分支历史表5082的分支预测算法,在其他条件运算完成前预测分支结果。在条件运算完成前,当前分支指令的目标将被获取并推测性地执行。当条件运算完成时,基于条件运算的条件和推测的结果,推测性执行的分支指令或被完成或被丢弃。典型的分支指令可测试条件码,以及如果条件码满足分支指令的分支要求,分支到目标地址,分支地址可基于若干数被计算,所述数包括例如在寄存器字段或是指令的立即字段中找到的数。分支单元5058可利用具有多个输入寄存器电路5075、5076、5077和一个输出寄存器电路5080的ALU5074。分支单元5058可与例如通用寄存器5059、解码分派单元5056或其他电路5073通信。
一组指令的执行可由于多个原因中断,所述原因包括例如由操作系统发起的上下文转换、引起上下文转换的程序异常或错误、引起上下文转换的I/O中断信号或多个程序(在多线程环境中)的多线程活动。优选地,上下文转换动作保存关于当前执行的程序的状态信息,且随后加载关于正被调用的另一个程序的状态信息。状态信息可被存储在例如硬件寄存器或存储器中。状态信息优选地包括指向将被执行的下一个指令的程序计数器值、条件码、存储器转换信息和架构寄存器内容。上下文转换活动可被硬件电路、应用程序、操作系统程序或固件代码(微代码、微微代码或许可内部码(LIC))单独地或其组合实现。
处理器根据指令定义的方法而访问操作数。指令可使用指令的一部分的值提供立即操作数,可提供一个或多个寄存器字段,其显式地指向通用寄存器或专用寄存器(例如浮点寄存器)。指令可利用由操作码字段确定的暗示的寄存器作为操作数。指令可利用用于操作数的存储器位置。可由寄存器、立即字段或寄存器和立即字段的组合提供操作数的存储器位置,如由z/长位移工具(facility)所例示的,其中该指令定义了基寄存器、索引寄存器和立即字段(位移字段),它们加到一起,以提供例如存储器中的操作数的地址。此处的位置典型地意味着主存储器(主存储装置)中的位置,除非另外指明。
参考图12C,处理器使用加载/存储单元5060访问存储器。加载/存储单元5060可以通过获取存储器5053中的目标操作数的地址并将操作数加载到寄存器5059或其他存储器5053位置中,来执行加载操作,或可以通过获取存储器5053中的目标操作数的地址并将从寄存器5059或另一个存储器5053位置获得的数据存储在存储器5053中的目标操作数位置,来执行存储操作。加载/存储单元5060可以是推测性的,且可以相对于指令顺序来说无序的顺序访问存储器,但是加载/存储单元5060将向程序维持指令按顺序执行的外观。加载/存储单元5060可与通用寄存器5059、解密/分派单元5056、高速缓存/存储器接口5053或其他元件5083通信,且包括各种寄存器电路、ALU5085和控制逻辑5090以计算存储器地址并提供流水线顺序以使操作保持次序。一些操作可不按顺序,但加载/存储单元提供功能以使不按顺序执行的操作对程序看起来如已按顺序执行一样,如本领域所熟知的。
优选地,应用程序“看到的”地址通常被称为虚拟地址。虚拟地址有时候被称为“逻辑地址”和“有效地址”。这些虚拟地址之所以虚拟,在于它们由多种动态地址转换(DAT)技术中的一种重定向到物理存储器位置,所述动态地址转换技术包括但不限于简单地给用偏移值给虚拟地址加前缀、经由一个或多个转换表转换虚拟地址,所述转换表优选地包括至少一个段表和页表(单独地或组合地),优选地,段表具有指向页表的项。在z/中,提供转换分级结构,包括区域第一表、区域第二表、区域第三表、段表和可选的页表。转换表的性能通常通过利用转换后备缓冲器(TLB)被改善,该转换后备缓冲器包括将虚拟地址映射到相关的物理存储位置的项。当DAT使用转换表转换虚拟地址时,创建项。于是,虚拟地址的随后使用可利用快的TLB的项,而不是慢的顺序转换表访问。TLB内容可由包括LRU(最少最近使用的)多个替换算法来管理。
在处理器是多处理器系统的处理器的情况下,每个处理器具有保持共享资源的责任,所述共享资源诸如I/O、高速缓存、TLB和存储器,它们互锁以实现一致性。典型地,“窥探”技术将被用于维持高速缓存一致性。在窥探环境中,每个高速缓存线可被标记为正处于共享状态、独占状态、改变状态、无效状态等中的一个,以便有助于共享。
I/O单元5054(图11)向处理器提供用于附加到例如包括磁带、盘、打印机、显示器和网络的外围设备的装置。I/O单元通常由软件驱动器向计算机程序呈现。在诸如来自的System的大型计算机中,通道适配器和开放系统适配器是提供操作系统和外围设备之间的通信的大型计算机的I/O单元。
此外,其他类型的计算环境可受益于本发明的一个或多个方面。作为例子,环境可包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括例如指令执行、诸如地址转换的架构功能、以及架构寄存器)或其子集被仿真(例如,在具有处理器和存储器的本机计算机系统中)。在这样的环境中,仿真器的一个或多个仿真功能可实施本发明的一个或多个方面,即使执行仿真器的计算机可具有与正被仿真的能力不同的架构。作为一个例子,在仿真模式中,解码正被仿真的特定指令或操作,且建立合适的仿真功能以实施单个指令或操作。
在仿真环境中,主计算机包括例如存储器以存储指令和数据;指令获取单元以从存储器获取指令,且可选地,提供用于获取的指令的本地缓冲;指令解码单元以接收获取的指令并确定已被获取的指令的类型;以及指令执行单元以执行该指令。执行可包括将数据从存储器加载到寄存器;从寄存器将数据存储回存储器;或执行如由解码单元确定的某些类型的算术或逻辑运算。在一个例子中,每个单元在软件中实现。例如,被所述单元执行的操作被实现为仿真器软件中的一个或多个子例程。
更具体地,在大型计算机中,程序员(通常是如今的“C”程序员)一般通过编译器应用使用架构机器指令。存储在存储介质中的这些指令可以在z/ 服务器中本机地执行,或在执行其他架构的机器中执行。它们可在现有的和未来的大型计算机服务器以及的其他机器(例如,PowerSystems服务器和System服务器)中被仿真。它们可在使用由 AMDTM等制造的硬件的各种机器上运行Linux的机器中被执行。除了在使用z/的此硬件上执行之外,可以使用Linux以及利用由Hercules或FSI(FundamentalSoftware,Inc)提供的仿真的机器,其中执行通常处于仿真模式。在仿真模式下,本机处理器执行仿真软件以仿真被仿真处理器的架构。有关上面引用的仿真器产品的信息,可在万维网上获得,网址分别为www.hercules-390.org和www.funsoft.com。
本机处理器典型地执行仿真软件,其包括固件或本机操作系统,以执行被仿真处理器的仿真程序。仿真软件负责获取并执行被仿真处理器架构的指令。仿真软件维护仿真的程序计数器以保持跟踪指令界限。仿真软件可一次获取一个或多个仿真的机器指令,并将所述一个或多个仿真的机器指令转换为对应的本机机器指令组,以由本机处理器执行。这些转换的指令可被高速缓存,这样可完成更快的转换。尽管,仿真软件将维持被仿真的处理器架构的架构规则以保证为被仿真处理器编写的操作系统和应用正确操作。而且,仿真软件将提供由被仿真的处理器架构确定的资源,包括但不限于控制寄存器、通用寄存器、浮点寄存器、例如包括段表和页表的动态地址转换功能、中断机制、上下文转换机制、日中时间(TOD)时钟和到I/O子系统的架构接口,这样被设计为在被仿真处理器上运行的操作系统或应用程序可在具有仿真软件的本机处理器上运行。
解码正被仿真的特定指令,且调用子例程以执行该单个指令的功能。仿真被仿真处理器的功能的仿真软件功能例如在“C”子例程或驱动器中实现,或由提供用于特定硬件的驱动器的其他方法实现,如本领域技术人员在理解优选实施例的描述后将理解的。包括但不限于Beausoleil等人的标题为“MultiprocessorforHardwareEmulation”的美国专利证书号5,551,013;以及Scalzi等人的标题为“PreprocessingofStoredTargetRoutinesforEmulatingIncompatibleInstructionsonaTargetProcessor”的美国专利证书号6,009,261;以及Davidian等人的标题为“DecodingGuestInstructiontoDirectlyAccessEmulationRoutinesthatEmulatetheGuestInstructions”的美国专利证书号,5,574,873;以及Gorishek等人的标题为“SymmetricalMultiprocessingBusandChipsetUsedforCoprocessorSupportAllowingNon-NativeCodetoRuninaSystem”的美国专利证书号6,308,255;以及Lethin等人的标题为“DynamicOptimizingObjectCodeTranslatorforArchitectureEmulationandDynamicOptimizingObjectCodeTranslationMethod”的美国专利证书号6,463,582,;以及EricTraut的标题为“MethodforEmulatingGuestInstructionsonaHostComputerThroughDynamicRecompilationofHostInstructions”的美国专利证书号5,790,825;以及许多其他专利的各种软件和硬件仿真专利示出各种已知的方式来实现针对可为本领域技术人员获得的目标机器对为不同机器进行架构设计的指令格式的仿真。
在图13中,提供了仿真主计算机系统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 (22)

1.一种用于在计算环境中启用适配器的方法,所述方法包括以下步骤:
响应于执行用于启用适配器的CallLogicalProcessor(CLP)指令,所述CLP指令包括标识所述适配器并具有适配器未启用指示器的功能句柄,所述CLP指令请求要被分配给所述适配器的多个直接存储器访问(DMA)地址空间,启用一个或多个DMA地址空间的所述执行包括以下a)和b):
a)启用所述适配器,其中所述启用包括针对所述适配器启用注册以便进行地址转换以及启用中断以便支持直接存储器访问和消息信号中断,其中所述启用包括通过检查具有可用于所请求的DMA地址空间数的设备表项,确定所请求的DMA地址空间数可用,以及,将对应于所请求的DMA地址空间数的多个设备表项分配给所述适配器;以及
b)返回具有适配器已启用指示器的功能句柄。
2.根据权利要求1的方法,其中所述启用包括启用要发出到所述适配器的一个或多个指令。
3.根据权利要求1的方法,其中在所述CLP指令的请求块中指示要分配的地址空间数。
4.根据权利要求1的方法,其中所述启用进一步包括:
使用所述适配器的所述功能句柄查找与所述适配器关联的功能项;以及
采用所述功能表项中的信息来判定是否要启用所述适配器,并且其中响应于判定要启用所述适配器,所述启用将一个或多个设备表项分配给所述适配器。
5.根据权利要求4的方法,其中所述功能句柄与所述功能表项关联并包括功能号和实例号,并且其中所述方法还包括确定所述句柄的有效性,所述确定包括:
检查所述未启用指示器指示未启用;以及
检查所述功能号指定已安装的功能,其中响应于确定有效句柄而执行所述使用。
6.根据权利要求4的方法,其中所述采用包括检查所述功能表项中的所述未启用指示器、持久错误状态指示器、错误恢复启动指示器、繁忙指示器或许可指示器中的至少一个以判定是否要启用所述适配器。
7.根据权利要求1的方法,其中所述启用进一步包括将一个或多个设备表项与所述适配器所关联的功能表项关联,所述功能表项提供有关所述适配器的信息。
8.根据权利要求7的方法,其中所述功能表项与所述功能句柄关联,并且其中所述启用进一步包括执行以下步骤中的至少一个:
在所述功能表项中设置功能启用指示器以指示已启用;
在所述一个或多个设备表项中设置一个或多个设备启用指示器以指示已启用;
在内容可寻址存储器中包括对一个或多个设备表项的一个或多个索引,响应于来自所述适配器的请求,可使用所述内容可寻址存储器来查找设备表项;
在所述功能句柄中设置所述适配器已启用指示器以指示已启用;以及
更新所述功能句柄的实例号。
9.根据权利要求1的方法,其中所述方法还包括禁用所述适配器。
10.根据权利要求9的方法,其中所述禁用包括:
使用所述功能句柄查找与所述适配器关联的功能表项;以及
采用所述功能表项中的信息来判定是否要禁用所述适配器,并且响应于判定要禁用所述适配器,继之以执行禁用。
11.根据权利要求10的方法,其中继之以执行禁用包括以下步骤中的至少一个:
将所述功能表项中的功能启用指示器设置为已禁用;
清除并释放与所述适配器关联的一个或多个设备表项;以及
设置所述功能句柄的所述未启用指示器以指示已禁用。
12.根据权利要求10的方法,其中所述禁用进一步包括确定所述功能句柄的有效性,所述确定包括:
检查所述适配器已启用指示器被设置为已启用;以及
检查所述句柄指向所述功能表中的有效项,其中响应确定所述功能句柄有效而执行所述使用。
13.根据权利要求12的方法,其中所述采用包括将所述功能句柄中的实例号与所述功能表项中的实例号相比较,其中响应于所述比较指示相等而发生所述继之以执行禁用。
14.根据权利要求1的方法,其中所述适配器包括外围组件互连(PCI)功能。
15.一种用于在计算环境中启用适配器的计算机系统,所述计算机系统包括:
存储器;以及
处理器,其与所述存储器通信;
请求者元件,响应于执行用于启用适配器的CallLogicalProcessor(CLP)指令,所述CLP指令包括标识所述适配器并具有适配器未启用指示器的功能句柄,所述CLP指令请求要被分配给所述适配器的多个直接存储器访问(DMA)地址空间,启用一个或多个DMA地址空间的所述执行包括以下a)和b):
a)启用所述适配器,其中所述启用包括针对所述适配器启用注册以便进行地址转换以及启用中断以便支持直接存储器访问和消息信号中断,其中所述启用包括通过检查具有可用于所请求的DMA地址空间数的设备表项,确定所请求的DMA地址空间数可用,以及,将对应于所请求的DMA地址空间数的多个设备表项分配给所述适配器;以及
b)返回具有适配器已启用指示器的功能句柄。
16.一种用于在计算环境中启用适配器的计算机系统,所述计算机系统包括:
存储器;以及
与所述存储器通信的处理器,其中所述计算机系统被配置为执行一种方法,所述方法包括:
响应于执行用于启用适配器的CallLogicalProcessor(CLP)指令,所述CLP指令包括标识所述适配器并具有适配器未启用指示器的功能句柄,所述CLP指令请求要被分配给所述适配器的多个直接存储器访问(DMA)地址空间,启用一个或多个DMA地址空间的所述执行包括以下a)和b):
a)启用所述适配器,其中所述启用包括针对所述适配器启用注册以便进行地址转换以及启用中断以便支持直接存储器访问和消息信号中断,其中所述启用包括通过检查具有可用于所请求的DMA地址空间数的设备表项,确定所请求的DMA地址空间数可用,以及,将对应于所请求的DMA地址空间数的多个设备表项分配给所述适配器;以及
b)返回具有适配器已启用指示器的功能句柄。
17.根据权利要求16的计算机系统,其中所述启用包括启用要发出到所述适配器的一个或多个指令。
18.根据权利要求16的计算机系统,其中所述启用进一步包括:
使用所述适配器的所述功能句柄查找与所述适配器关联的功能表项;以及
采用所述功能表项中的信息来判定是否要启用所述适配器,并且其中响应于判定要启用所述适配器,所述启用将一个或多个设备表项分配给所述适配器。
19.根据权利要求16的计算机系统,其中所述启用进一步包括将一个或多个设备表项与所述适配器所关联的功能表项关联,所述功能表项提供有关所述适配器的信息。
20.根据权利要求19的计算机系统,其中所述功能表项与所述功能句柄关联,并且其中所述启用进一步包括执行以下步骤中的至少一个:
在所述功能表项中设置功能启用指示器以指示已启用;
在所述一个或多个设备表项中设置一个或多个设备启用指示器以指示已启用;
在内容可寻址存储器中包括对一个或多个设备表项的一个或多个索引,响应于来自所述适配器的请求,可使用所述内容可寻址存储器来查找设备表项;
在所述功能句柄中设置所述适配器已启用指示器以指示已启用;以及
更新所述功能句柄的实例号。
21.根据权利要求16的计算机系统,其中所述方法还包括禁用所述适配器,并且其中所述禁用包括:
使用所述功能句柄查找与所述适配器关联的功能表项;以及
采用所述功能表项中的信息来判定是否要禁用所述适配器,并且响应于判定要禁用所述适配器,继之以执行禁用。
22.根据权利要求21的计算机系统,其中继之以执行禁用包括以下步骤中的至少一个:
将所述功能表项中的功能启用指示器设置为已禁用;
清除并释放与所述适配器关联的一个或多个设备表项;以及
设置所述功能句柄的所述未启用指示器以指示已禁用。
CN201080066955.7A 2010-06-23 2010-11-08 启用/禁用计算环境的适配器 Active CN102906720B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/821,187 2010-06-23
US12/821,187 US9213661B2 (en) 2010-06-23 2010-06-23 Enable/disable adapters of a computing environment
PCT/EP2010/067032 WO2011160714A1 (en) 2010-06-23 2010-11-08 Enable/disable adapters of a computing environment

Publications (2)

Publication Number Publication Date
CN102906720A CN102906720A (zh) 2013-01-30
CN102906720B true CN102906720B (zh) 2015-11-25

Family

ID=43920914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080066955.7A Active CN102906720B (zh) 2010-06-23 2010-11-08 启用/禁用计算环境的适配器

Country Status (12)

Country Link
US (1) US9213661B2 (zh)
EP (1) EP2430556B1 (zh)
JP (1) JP5669938B2 (zh)
KR (1) KR101514872B1 (zh)
CN (1) CN102906720B (zh)
AU (1) AU2010355805B2 (zh)
CA (1) CA2800632C (zh)
DK (1) DK2430556T3 (zh)
ES (1) ES2452871T3 (zh)
RU (1) RU2562372C2 (zh)
SG (1) SG186105A1 (zh)
WO (1) WO2011160714A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8510599B2 (en) * 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
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
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
EP2630208B1 (en) * 2010-10-22 2019-03-20 Cabot Corporation Ink compositions
US9846657B2 (en) * 2015-02-06 2017-12-19 Mediatek Inc. Electronic device for packing multiple commands in one compound command frame and electronic device for decoding and executing multiple commands packed in one compound command frame
US9904543B2 (en) * 2015-10-26 2018-02-27 Hewlett-Packard Development Company, L.P. Setting a build indicator to enable or disable a feature
RU2638779C1 (ru) * 2016-08-05 2017-12-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и сервер для вьполнения авторизации приложения на электронном устройстве
JP7103231B2 (ja) * 2017-01-13 2022-07-20 日本電気株式会社 コネクション管理ユニット、およびコネクション管理方法
CN107247677B (zh) * 2017-05-24 2020-12-18 联想(北京)有限公司 一种转换装置和电子设备
CN109669886B (zh) * 2018-12-27 2020-11-20 广州致远电子有限公司 基于嵌入式系统的外设控制系统
US11593158B2 (en) * 2020-06-09 2023-02-28 Kingston Digital Inc. Universal peripheral extender for communicatively connecting peripheral I/O devices and smart host devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239999C (zh) * 2002-09-05 2006-02-01 国际商业机器公司 处理iSCSI命令的方法和系统
CN101114265A (zh) * 2006-07-26 2008-01-30 国际商业机器公司 启用数据处理系统的输入/输出适配器的方法和装置
CN101165664A (zh) * 2006-10-17 2008-04-23 国际商业机器公司 用于在数据处理系统中管理地址转换的方法和装置

Family Cites Families (225)

* 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
EP0090804A1 (en) 1981-10-13 1983-10-12 International Business Machines Corporation 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
US5802590A (en) 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
US5901312A (en) 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
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
US6507898B1 (en) 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
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
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
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
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
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
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
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
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
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
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
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
US7065598B2 (en) 2002-12-20 2006-06-20 Intel Corporation Method, system, and article of manufacture for adjusting interrupt levels
KR100449807B1 (ko) 2002-12-20 2004-09-22 한국전자통신연구원 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
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 注射器およびそれに用いるパッキン
JP2004258985A (ja) * 2003-02-26 2004-09-16 Nec Corp マルチプロセッサシステム及びその入出力制御方法
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
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
US7139940B2 (en) 2003-04-10 2006-11-21 International Business Machines Corporation Method and apparatus for reporting global errors on heterogeneous partitioned systems
US7281075B2 (en) 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
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
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
US7290070B2 (en) 2003-05-12 2007-10-30 International Business Machines Corporation Multiple logical input/output subsystem facility
US7174550B2 (en) 2003-05-12 2007-02-06 International Business Machines Corporation Sharing communications adapters across a plurality of input/output subsystem images
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
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
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
US7412488B2 (en) 2003-06-05 2008-08-12 Nvidia Corporation Setting up a delegated TCP connection for hardware-optimized processing
US7420931B2 (en) 2003-06-05 2008-09-02 Nvidia Corporation Using TCP/IP offload to accelerate packet filtering
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スロット共有方法。
US7552436B2 (en) * 2003-11-25 2009-06-23 International Business Machines Memory mapped input/output virtualization
US7146482B2 (en) 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation
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
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
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
US7444493B2 (en) 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
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
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
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
US7464191B2 (en) * 2005-02-25 2008-12-09 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
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
EP1768285A1 (en) * 2005-09-23 2007-03-28 Udcast Method and device for processing a DVB-H (Digital Video Broadcasting - Handheld) compliant transport stream
US20070073955A1 (en) 2005-09-29 2007-03-29 Joseph Murray Multi-function PCI device
US7882489B2 (en) 2005-11-22 2011-02-01 International Business Machines Corporation Integrated code generation for adapter-specific property template
US7475183B2 (en) 2005-12-12 2009-01-06 Microsoft Corporation Large page optimizations in a virtual machine environment
US20070136554A1 (en) 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
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
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
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)
US7548999B2 (en) 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
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
TW200801952A (en) 2006-06-02 2008-01-01 Via Tech Inc Method for setting up a peripheral component interconnect express (PCIE)
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
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
JP2008123298A (ja) 2006-11-13 2008-05-29 Canon Inc 情報処理方法及びシステム
US7849287B2 (en) * 2006-11-13 2010-12-07 Advanced Micro Devices, Inc. Efficiently controlling special memory mapped system accesses
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
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
US7617340B2 (en) 2007-01-09 2009-11-10 International Business Machines Corporation I/O adapter LPAR isolation with assigned memory space
JP5119686B2 (ja) 2007-03-06 2013-01-16 日本電気株式会社 情報処理装置および設定方法
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
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 株式会社日立製作所 計算機システムの管理方法、計算機システム及びプログラム
US8321615B2 (en) 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239999C (zh) * 2002-09-05 2006-02-01 国际商业机器公司 处理iSCSI命令的方法和系统
CN101114265A (zh) * 2006-07-26 2008-01-30 国际商业机器公司 启用数据处理系统的输入/输出适配器的方法和装置
CN101165664A (zh) * 2006-10-17 2008-04-23 国际商业机器公司 用于在数据处理系统中管理地址转换的方法和装置

Also Published As

Publication number Publication date
RU2012150402A (ru) 2014-06-10
JP5669938B2 (ja) 2015-02-18
AU2010355805A1 (en) 2012-12-20
US20110320638A1 (en) 2011-12-29
WO2011160714A1 (en) 2011-12-29
AU2010355805B2 (en) 2014-05-22
KR101514872B1 (ko) 2015-04-23
CN102906720A (zh) 2013-01-30
CA2800632C (en) 2019-03-05
CA2800632A1 (en) 2011-12-29
EP2430556A1 (en) 2012-03-21
DK2430556T3 (en) 2014-03-10
ES2452871T3 (es) 2014-04-03
EP2430556B1 (en) 2014-02-12
KR20130054966A (ko) 2013-05-27
US9213661B2 (en) 2015-12-15
JP2013535061A (ja) 2013-09-09
RU2562372C2 (ru) 2015-09-10
SG186105A1 (en) 2013-01-30

Similar Documents

Publication Publication Date Title
CN102906720B (zh) 启用/禁用计算环境的适配器
CN102906692B (zh) 修改适配器功能参数的指令的方法和系统
CN102906701B (zh) 在计算环境中控制对适配器的访问的方法和系统
CN102906702B (zh) 对适配器的地址空间的访客端访问
CN102906719B (zh) 输入/输出地址到存储器地址的转换
CN102906722B (zh) 将消息信号中断转换为i/o适配器事件通知
CN102906704B (zh) 控制处理适配器中断请求的速率
CN102947808B (zh) 一种有利于存储器访问的系统及方法
CN102906707B (zh) 管理与硬件事件关联的处理
CN102906721B (zh) 与访问地址空间并行地对地址空间调整大小
CN102906705B (zh) 将消息信号中断转换为对客户操作系统的i/o适配器事件通知
CN102906708B (zh) 响应于适配器事件采取的动作的操作系统通知
CN102906694B (zh) 用于与适配器进行通信的加载指令的方法和系统
US9489229B2 (en) Transparent dynamic code optimization
CN102906711B (zh) 用于适配器功能的测量工具
CN102918516B (zh) 适配器中断源的类型的标识
CN103562892B (zh) 配置存储级内存命令的系统和方法
CN102906716B (zh) 促进计算环境的系统存储器的管理的方法
CN103597459B (zh) 执行开始子通道指令的方法和系统
CN102906693B (zh) 用于执行用于将数据存储在适配器中的存储指令的方法及系统
US20150278106A1 (en) Transparent code patching including updating of address translation structures
CN103562874B (zh) 解除配置存储级内存命令
CN103562857B (zh) 在计算环境中执行启动子通道指令的方法和系统
CN103582879B (zh) 管理耦合设施中的操作员消息缓冲器
CN103597453A (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
C14 Grant of patent or utility model
GR01 Patent grant