CN101946244B - 降低保留设备的访问竞争的方法和设备 - Google Patents
降低保留设备的访问竞争的方法和设备 Download PDFInfo
- Publication number
- CN101946244B CN101946244B CN200980104761.9A CN200980104761A CN101946244B CN 101946244 B CN101946244 B CN 101946244B CN 200980104761 A CN200980104761 A CN 200980104761A CN 101946244 B CN101946244 B CN 101946244B
- Authority
- CN
- China
- Prior art keywords
- equipment
- control module
- busy
- formation
- command
- 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
Links
- 230000009467 reduction Effects 0.000 title description 4
- 230000004044 response Effects 0.000 claims abstract description 74
- 238000004891 communication Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000015572 biosynthetic process Effects 0.000 claims description 71
- 230000005540 biological transmission Effects 0.000 claims description 36
- 230000008859 change Effects 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 14
- 238000004590 computer program Methods 0.000 abstract description 13
- 238000005755 formation reaction Methods 0.000 description 47
- 230000000717 retained effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 239000013307 optical fiber Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Selective Calling Equipment (AREA)
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
- Details Of Television Systems (AREA)
Abstract
本发明提供了一种用于在通过一个或多个通道与多个操作系统通信的控制单元处降低保留设备的访问竞争的计算机程序产品、装置和方法。该计算机程序产品包括有形的存储介质,其可被处理电路读取,并存储由处理电路执行以执行一方法的指令,该方法包括在控制单元处接收来自第一操作系统的命令消息,该命令消息包括用于设备的I/O操作的命令。接收到设备忙指示符,指示第二操作系统保留了该设备。响应于设备忙指示符,将命令消息在设备忙队列上排队。控制单元监视设备结束指示符。响应于设备结束指示符,设备忙队列被服务以执行I/O操作命令。
Description
技术领域
本公开一般地涉及输入/输出处理,更具体而言,涉及降低与访问保留设备的多个请求关联的设备竞争事件。
背景技术
输入/输出(I/O)操作被用来在存储器和I/O处理系统的I/O设备间传输数据。具体地,通过执行I/O操作从存储器将数据写入到一个或多个I/O设备,且将数据从一个或多个I/O设备读取到存储器。
为了便于I/O操作的处理,使用I/O处理系统的I/O子系统。该I/O子系统耦合到主存储器和I/O处理系统的I/O设备,并指引存储器和I/O设备间的信息流。I/O子系统的一个例子是通道子系统。通道子系统使用通道路径作为通信介质。每个通道路径包括耦合到控制单元的通道,该控制单元进一步耦合到一个或多个I/O设备。
通道子系统可使用通道命令字(CCW)来在I/O设备和存储器之间传输数据。CCW指定将被执行的命令。对于启动特定I/O操作的命令,CCW指定与该操作关联的存储器区域、当到该区域的传输或来自该区域的传输完成时将执行的动作以及其他选项。
在I/O处理期间,由通道从存储器获取CCW的一个列表。通道解析来自CCW的列表的每个命令,并将若干命令传送到与通道耦合的控制单元,其中每个命令在其自身实体中。控制单元然后处理这些命令。通道跟踪每个命令的状态,并控制何时下一组命令被发送到控制单元以便处理。通道确保每个命令在自己的实体中被发送到控制单元。而且,通道推断与处理来自控制单元的用于每个命令的响应相关的特定信息。
当通道解析CCW,跟踪状态信息,并对来自控制单元的响应做出反 应时,基于每个CCW来执行I/O处理可涉及大量的用于通道子系统的处理开销。因此,将与解释和管理CCW和状态信息相关的许多处理负担从通道子系统转移到控制单元,是有益的。简化通道在控制单元和I/O处理系统中的操作系统之间通信中的角色可增加通信吞吐量,因为执行了更少的握手。
在管理来自由多个操作系统控制的通道的请求以通过控制单元来命令公共的I/O设备时,可能产生额外的问题。该多个操作系统可在公共主机系统上或跨越多个主机系统而存在,每个主机系统包括通道子系统和处理单元。当多个操作系统试图访问已被保留的公共I/O设备时,控制单元典型地接受来自I/O设备的设备忙指示符,并向由请求访问的操作系统控制的通道报告设备忙指示符。访问请求可以是执行保留或未保留的I/O操作的命令。一旦I/O设备变得不忙,控制单元通过各个操作系统的通道来将设备结束指示符发送到操作系统,以向它们通知I/O设备可用。然后通道子系统可再次进行先前尝试的请求,其中相对于竞争访问I/O设备的其他通道,时间上第一的(first in time通道赢得了竞态条件。较快的响应主机系统可有效地阻止较慢的响应主机系统,因为保留请求被授予了时间上第一的请求者。例如,在与I/O设备距离较远的主机系统上运行的操作系统可能在长时间段内被阻止访问I/O设备,因为在与I/O设备距离更近的主机系统上运行的操作系统经历了较短的通信传输延迟。因此,随着对保留I/O设备和随后访问请求的竞争增加,操作系统在访问I/O设备之间的差距也增加。因此,在本领域需要在通过一个或多个通道与多个操作系统通信的控制单元处降低保留I/O设备竞争。
发明内容
本发明的实施例包括一种计算机程序产品,用于在通过一个或多个通道与多个操作系统通信的控制单元处降低保留设备的访问竞争。该计算机程序产品包括有形存储介质,其可被处理电路读取并存储由处理电路执行以执行一方法的指令。该方法包括通过一个或多个通道在控制单元处接受 来自多个操作系统的第一操作系统的命令消息,其中该命令消息包括用于与控制单元通信的设备的I/O操作命令。该方法还包括从设备接收设备忙指示符,其中设备忙指示符通知控制单元该设备被多个操作系统中的第二操作系统保留。该方法还包括,响应于设备忙指示符,在设备忙队列中将命令消息排队。该方法还包括针对设备结束指示符来监视设备,其中该设备结束指示符通知控制单元该设备已准备接收新的I/O操作命令。该方法还包括响应于设备忙指示符,服务所述设备忙队列以执行I/O操作命令。
额外的实施例还包括用于降低保留设备的访问竞争的装置。该装置包括通过一个或多个通道与多个操作系统通信的控制单元。控制单元执行一方法,该方法包括在控制单元处通过一个或多个通道从多个操作系统中的第一操作系统接收命令消息。该命令消息包括用于与控制单元通信的设备的I/O操作命令。控制单元接收来自该设备的设备忙指示符。该设备忙指示符通知控制单元该设备由多个操作系统中的第二操作系统保留。控制单元还响应于设备忙指示符在设备忙队列上将命令消息排队,并针对设备结束指示符来监视设备。设备结束指示符通知控制单元该设备已准备好接受新的I/O操作命令。控制单元还响应于设备结束指示符,服务所述设备忙队列以执行I/O操作命令。
进一步的实施例包括用于降低在通过一个或多个通道与多个操作系统通信的控制单元处的保留设备的访问竞争的方法。该方法包括通过一个或多个通道在控制单元处接收来自多个操作系统中的第一操作系统的命令消息,其中该命令消息包括用于与控制单元通信的设备的I/O操作命令。该方法还包括接收来自设备的设备忙指示符,其中该设备忙指示符通知控制单元该设备由多个操作系统中的第二操作系统保留。该方法还包括响应于设备忙指示符,在设备忙队列上将命令消息排队,并针对设备结束指示符来监视该设备。设备结束指示符通知控制单元该设备已准备接收新的I/O操作命令。方法还包括响应于设备结束指示符,服务所述设备忙队列以执行I/O操作命令。
通过查看以下附图和具体说明,根据实施例的其他计算机程序产品、 装置和/或方法对本领域技术人员来说将会是或变得明显。所有这些额外的计算机程序产品、装置和/或方法旨在被包括在该说明中,处于本发明的范围内,且由所附权利要求书保护。
附图说明
被认为是本发明的主题在说明书所附的权利要求书中被特别指出,并被突出地申请权利保护。本发明的前述和其他目的、特征和优势将结合附图在以下具体说明中变得明显,在附图中:
图1示出了结合和使用本发明的一个或多个方面的I/O处理系统的一个实施例;
图2A示出了现有技术的通道命令字的一个例子;
图2B示出了现有技术的通道命令字通道程序的一个例子;
图3示出了用于在通道和控制单元间通信、以执行图2B的通道命令字通道程序的现有技术的链路协议的一个实施例;
图4示出了根据本发明的一方面的传输控制字通道程序的一个实施例;
图5示出了根据本发明的一方面的用于在通道和控制单元间通信、以执行图4的传输控制字通道程序的链路协议的一个实施例;
图6示出了用于在通道和控制单元间通信、以执行通道命令字通道程序的4个读取命令的现有技术的链路协议的一个实施例;
图7示出了根据本发明的一个方面的用于在通道和控制单元间通信、以处理传输控制字通道程序的4个读取命令的链路协议的实施例;
图8示出了根据本发明的一个方面的控制单元和通道的一个实施例;
图9示出了根据本发明的一个方面的从控制单元通信到通道的响应消息的一个实施例;
图10示出了根据本发明的一个方面的与多个主机系统通信的控制单元的一个实施例;
图11示出了用于降低保留设备的访问竞争的过程的一个实施例;以及
图12示出了结合本发明的一个或多个方面的计算机程序产品的一个实施例。
具体的说明通过参考附图和举例的方式解释了本发明的优选实施例以及优点和特征。
具体实施方式
根据本发明的一个方面,降低对访问保留I/O设备的竞争有利于输入/输出(I/O)的处理。例如,通过容易地使能对例如状态和测量数据的与I/O处理有关的信息的访问会有利于I/O处理。而且,在一个例子中,通过降低用来执行I/O处理的I/O处理系统的组件之间的通信,会有利于I/O处理。例如,主机系统的例如通道的I/O通信适配器和控制单元的之间的交换和序列数量被减少。这是通过将来自I/O通信适配器的多个命令作为单个实体发送到控制单元以由控制单元执行,且由控制单元将由命令产生的数据(如果有的话)作为单个实体发送而完成的。
多个命令被包括在块中,该块在此处被称为传输命令控制块(TCCB),其地址是由传输控制字(TCW)指定的。TCW是从操作系统或其他应用发送到I/O通信适配器,I/O通信适配器转而将在命令消息中的TCCB转发到控制单元以便处理。控制单元处理每个命令,而没有由I/O通信适配器跟踪与那些单个命令有关的状态。所述多个命令也被称为通道程序,其在控制单元上而不是在I/O通信适配器上被解析和执行。
在一个示例性实施例中,控制单元响应于执行通道程序,产生包括状态和扩展状态信息的响应消息。控制单元也可以在有限数量的通信场景中产生响应消息而不执行通道程序,例如,通知I/O通信适配器通道程序将不会被执行。控制单元可包括多个元件以支持I/O通信适配器和I/O设备间的通信,以及支持通道程序执行。例如,除了一个或多个队列、计时器和寄存器来帮助通信和状态监视外,控制单元可以包括控制逻辑来解析和处理消息。I/O通信适配器解析响应消息,提取状态和扩展状态信息,并使用提取的信息来执行进一步的计算。
当在一个或多个主机系统上执行的多个操作系统试图通过与一个或多个主机系统中的一个或多个I/O适配器进行通信的控制单元来访问保留的I/O设备时,可能产生访问竞争。为了执行特定的I/O操作,I/O设备可以被保留给在请求操作系统的控制下的一组通道(路径组)以用于独占访问。路径组可以被建立,以允许从多个通道回到同一主机而存在的设备保留。一旦I/O设备被保留,其他操作系统保留或使用该I/O设备的随后尝试被阻拦,而该I/O设备返回设备忙指示符。在一个示例性实施例中,当存在设备忙指示符时,包括在控制单元处接收的保留请求的用于I/O设备的多个命令被排队。响应于I/O设备移除设备忙指示符,例如,设备结束指示符,控制单元服务队列并确定下一将被执行的命令。该队列可以使用若干队列管理技术,诸如先入先出(FIFO)服务、基于优先级的服务和轮转(round robin)服务。FIFO服务以接收到命令顺序来处理它们。基于优先级的服务允许较高优先级的命令先于较低优先级的命令被服务。轮转服务轮流处理来自不同操作系统的每个通信连接。使用队列来管理访问保留的I/O设备的请求简化了控制单元和由操作系统控制的I/O适配器之间的通信,并降低竞争以阻止较慢响应主机系统被较快响应主机系统不相称地阻拦。
参考图1描述了结合并使用本发明的一个或多个方面的I/O处理系统的一个例子。I/O处理系统100包括主机系统101,其还包括,例如,主存储器102、一个或多个中央处理单元(CPU)104、存储控制元件106和通道子系统108。主机系统101可以是大型计算系统,诸如大型机或者服务器。I/O处理系统100还包括一个或多个控制单元110和一个或多个I/O设备112,其中每个都在以下被描述。
主存储器102存储数据和程序,其可以从I/O设备112输入。例如,主存储器102可以包括一个或多个由一个或多个CPU 104执行的操作系统(OS)103。例如,一个CPU 104可以执行 操作系统103和 操作系统103,作为不同的虚拟机实例。主存储器102是直接被寻址的,并通过CPU 104和通道子系统108提供数据的高速处理。
CPU 104是I/O处理系统100的控制中心。它包含排序和处理设施,用于指令执行、中断动作、计时功能、初始程序加载和其他机器相关的功能。CPU 104通过诸如双向或单向总线的连接114耦合到存储控制元件106。
存储控制元件106通过例如总线的连接116耦合到主存储器102;通过连接114耦合到CPU 104;并通过连接108耦合到通道子系统108。存储控制元件106控制,例如,由CPU 104和通道子系统108发起的请求的排队和执行。
在一个示例性实施例中,通道子系统108提供主机系统101和控制单元110之间的通信接口。如上所述,通道子系统108耦合到存储控制元件106,并通过例如串行链路的连接120耦合到每个控制单元110。连接120可被实现为使用光纤通道结构中的单模或多模波导的光链路。通道子系统108引导I/O设备112和主存储器102之间的信息流。它减轻了CPU 104与I/O设备112直接通信的任务,并允许数据处理与I/O处理同时进行。通道子系统108使用一个或多个通道路径122作为通信链路来管理到I/O设备112或来自I/O设备112的信息流。作为I/O处理的一部分,通道子系统108也执行用于测试路径可用性、选择可用的通道路径122和启动对I/O设备112操作的执行的路径管理功能。
每个通道路径122包括通道124(在一个例子中,例如图1所示,通道124位于通道子系统108内)、一个或多个控制单元110和一个或多个连接120。在另一个例子中,也有可能具有一个或多个作为通道路径122的一部分的动态交换器(未示出)。动态交换器耦合到通道124和控制单元110,并提供物理互连附接在交换器上的任意两个链路的能力。在另一个例子中,也有可能具有多个系统,且因此多个通道子系统(未示出)附接着到控制单元110上。
同时也位于通道子系统108内的是子通道(未示出)。为通过通道子系统108可被程序访问的每个I/O设备112提供一个子通道给,并由其专用。子通道(例如,诸如表的数据结构)向程序提供设备的逻辑外观。每 个子通道提供关于关联的I/O设备112及其附接到通道子系统108的信息。子通道也提供关于I/O操作和其他涉及关联的I/O设备112的功能的信息。子通道是通道子系统108向CPU 104提供关于关联的I/O设备112的信息的工具,CPU 104通过执行I/O指令来获取该信息。
通道子系统108耦合到一个或多个控制单元110。每个控制单元110提供逻辑以操作和控制一个或多个I/O设备112,并通过使用公共设施来将每个I/O设备112的特征适配到由通道124提供的链路接口。公共设施提供I/O操作的执行、关于I/O设备112和控制单元110的状态的指示、通道路径122上的数据传输的时序、以及I/O设备112控制的特定级别。
每个控制单元110通过连接126(例如,总线)附接到一个或多个I/O设备112。I/O设备112接收信息或将信息存储在主存储器102和/或其他存储器中。I/O设备112的例子包括读卡器和打孔器、磁带单元、直接存取存储设备、显示器、键盘、打印机、指点设备、远程处理设备、通信控制器和基于传感器的设备,等等。
I/O处理系统100的一个或多个以上组件在以下文档中被进一步描述:2007年4月出版的第六版“ z/架构操作原则”( z/ArchitecturePrinciples of Operation),出版号为SA22-7832-05;Comier等人的1995年12月24日发布的标题为“用于在独立间接地址字(IDAW)的动态控制下在I/O设备和主要或扩展存储之间发送数据的系统”(System ForTransferring Data Between I/O Devices And Main Or Expanded StorageUnder Dynamic Control Of Independent Indirect Address Words(IDAWs))的美国专利5461721;以及Casper等人的1996年6月11日发布的标题为“用于流水线化通道命令字的处理的方法和系统”(Method andSystem For Pipelining The Processing Of Channels Command Words)的美国专利5526484;其每个文档的全部内容通过引用结合于此。IBM是位于美国纽约州阿蒙克的国际商业机器公司的注册商标。这里使用的其他名称可以是国际商业机器公司或其他公司的注册商标、商标或产品名称。
在一个实施例中,为了在I/O设备112和存储器102之间传送数据, 使用通道命令字(CCW)。CCW指定了要被执行的命令,并包括其他字段来控制处理。参考图2A来描述CCW的一个例子。CCW 200包括,例如,指定要执行的命令(例如,读取、回读(read backward)、控制、检测(sense)和写入)的命令码202;用来控制I/O操作的多个标志204;对于指定数据传送的命令,指定在CCW所指定的存储区域中要传送的的字节数的计数字段206;以及数据地址208,其在使用直接寻址时指向包括数据的主存储器中的位置,并且在使用修改的间接数据寻址时指向修改的数据地址字(MIDAW)的列表(例如,邻接表(contiguous list))。修改的间接寻址还在2006年8月15日提交的Brice等人的标题为“灵活控制输入/输出设备和存储器之间的数据传送”(Flexibly Controlling theTransfer of Data Between Input/Output Device And Memory)的美国专利申请11/464613中被描述,该专利申请的全部内容通过引用结合于此。
针对顺序执行而排列的一个或多个CCW形成通道程序,在这里也被称为CCW通道程序。CCW通道程序由例如操作系统或其他软件设置。软件设置CCW并获得分配给通道程序的存储器地址。参考图2B来描述CCW通道程序的一个例子。CCW通道程序210包括,例如,定义范围CCW 212,其具有指向将和定义范围命令一起使用的定义范围数据216在存储器中的位置的指针214。在该例子中,通道中传送(TIC)218在定义范围命令之后,其将通道程序引到存储器中的另一区域(例如,应用区域),该区域包括一个或更多个其他CCW,例如具有指向定位记录数据220的指针219的定位记录217,以及一个或更多个读取CCW 221。每个读取CCW 221具有指向数据区域224的指针222。数据区域包括直接访问数据的地址或间接访问数据的数据地址字(例如MIDAW或IDAW)的列表。而且,CCW通道程序210包括由CCW通道程序的执行引起的、由设备地址定义的、被称为状态226的子通道的、通道子系统中的预定区域。
参考图3并参考图2B来描述CCW通道程序的处理。特别地,图3示出了当CCW通道程序被执行时在通道和控制单元之间发生的各种交换和序列的例子。在本例子中,用于通信的链路协议是FICON(光纤连接性)。 关于FICON的信息在“光纤通道单字节命令码集-3映射协议(FC-SB-3)”(Fibre Channel Single Byte Command Code Sets-3 Mapping Protocol),T11/项目1357-D/Rev.1.6,INCITS(2003年3月)中描述,该文档的全部内容通过引用结合于此。
参考图3,通道300打开与控制单元302的交换并将定义范围命令及与其关联的数据304发送到控制单元302。命令从定义范围CCW 212(图2B)中获取,而数据从定义范围数据区域216中获得。通道300使用TIC218来定位定位记录CCW以及读取CCW。它从定位记录CCW 217(图2B)中获取定位记录命令305(图3),并从定位记录数据220中得到数据。读取命令306(图3)从读取CCW 221(图2B)中获取。每一个都被发送到控制单元302。
响应于通道300的打开交换,控制单元302打开与通道300的交换308。这可以在定位命令305和/或读取命令306之前或之后发生。和打开交换一起,响应(命令)被发送到通道300。命令向通道300提供控制单元302活动和正在操作的指示。
控制单元302将请求的数据310发送到通道300。此外,控制单元302将状态提供给通道300并关闭交换312。响应于此,通道300存储数据、检查状态并关闭交换314,这向控制单元302指示状态已经被接收到。
处理上述CCW通道程序以读取4k数据需要两个交换被打开和关闭以及7个序列。通过将通道程序的多个命令压缩到TCCB中,通道和控制单元之间的交换和序列的总数被减少。通道,例如图1的通道124,使用TCW来识别TCCB的位置,以及用于访问和存储与执行通道程序相关的状态和数据的位置。TCW被通道解释,并且不会被控制单元发送或看到。
参考图4,描述了通道程序如在图2B中一样读取4K数据的一个例子,但包括TCCB,而不是单独的个别CCW。如所示,通道程序400,这里被称为TCW通道程序,包括TCW 402,其指示TCCB 404在存储器中的位置,以及数据区域406或指向数据区域406的TIDAL 410(即,传送模式间接数据地址字的列表(TIDAW),类似于MIDAW)和状态区域408 在存储器中的位置。
参考图5来描述TCW通道程序的处理。用于这些通信的链路协议是,例如,光纤通道协议(FCP)。特别地,FCP协议的三个阶段被使用,允许主机总线适配器被使用,其支持FCP执行CCW控制的数据传送。FCP及其阶段还在2005年9月13日发表的“信息技术-用于SCSI的光纤通道协议(FCP-3)”(Information Techonology-Fibre Channel Protocol forSCSI),T10项目1560-D,第四修订版中被描述,其全部内容通过引用结合于此。
参考图5,通道500打开与控制单元502的交换,并将TCCB 504发送到控制单元502。在一个例子中,TCCB 504和序列倡仪(initiative)以FCP命令被发送到控制单元502,其被称为FCP_CMND信息单元(IU)或传输命令IU。控制单元502执行TCCB 504的多个命令(例如,定义范围命令、定位记录命令、作为设备控制字(DCW)的读取命令),并通过例如FCP_Data IU将数据506发送到通道500。它还提供状态并关闭交换508。作为一个例子,最终状态在FCP状态帧中发送,该状态帧具有在例如也被称为传输响应IU的FCP_RSP IU中载荷的第10或11字节中有效的一个位。FCP_RSP IU载荷可被用来一起传输FICON结束状态和附加状态信息,该附加状态信息包括支持对扩展测量字的计算的参数,以及通知通道500该控制单元502所支持的打开的交换的最大数量的参数。
在另一个例子中,为了写入4k的客户数据,通道500使用FCP链路协议阶段,如下所示:
1.在FCP_CMND IU中传送TCCB。
2.将数据的IU以及序列倡议发送到控制单元502。
3.在FCP状态帧中发送最终状态,该状态帧具有在例如FCP_RSP IU载荷的第10或11字节中有效的一个位。FCP_RSP_INFO字段或检测字段被用来将FICON结束状态和附加状态信息一起传送,该附加状态信息包括支持对扩展测量字的计算的参数,以及通知通道500该控制单元502所支持的打开的交换的最大数量的参数。
通过执行图4中的TCW通道程序,只存在一个打开和关闭的交换(也见图5),而不是图2中的CCW通道程序的两个交换(也见图3)。此外,与CCW通道程序(见图2B-3)中的7个序列相比,对于TCW通道程序来说,只有三个通信序列(见图4-5)。
对于TCW通道程序,即使附加命令被加到该程序中,交换与序列的数量保持相同。例如,将图6中的CCW通道程序的通信与图7中的TCW通道程序的通信进行比较。在图6的CCW通道程序中,每个命令(例如,定义范围命令600、定位记录命令601、读取命令602、读取命令604、读取命令606、定位记录命令607和读取命令608)以单独的序列从通道610发送到控制单元612。此外,每个4k的数据块(例如,数据614-620)以单独的序列从控制单元612发送到通道610。该CCW通道程序需要两个交换被打开和关闭(例如,打开交换622、624和关闭交换626、628),以及十四个通信序列。这与完成了与图6中的CCW通道程序相同的任务的、用于图7中的TCW通道程序中的三个序列和一个交换相对比。
如图7所示,通道700打开与控制单元702的交换,并将TCCB 704发送到控制单元702。如上所述,TCCB 704包括定义范围命令、两个定位记录命令以及DCW中的四个读取命令。响应于接收到TCCB 704,控制单元702执行这些命令,并在单个序列中将16k的数据706发送到通道700。此外,控制单元702将状态提供给通道700并关闭交换708。因此,TCW通道程序需要少得多的通信来传送与图6中的CCW通道程序相同数量的数据。
现在转到图8,将更详细地来描述图1中支持TCW通道程序执行的控制单元110和通道124。控制单元110包括CU控制逻辑802来解析和处理包含TCCB例如图7中的TCCB 704的命令消息,该消息通过连接120从通道124接收。CU控制逻辑802可以从在控制单元110处接收的TCCB中提取DCW和控制数据,以通过连接126来控制设备例如I/O设备112来执行一个或更多个I/O操作命令。CU控制逻辑802将设备命令和数据发送到I/O设备112,以及从I/O设备112接收状态信息和其它反馈。例 如,由于前一个保留请求的目标为I/O设备112,I/O设备112可能是忙的。为了管理当控制单元110接收访问同一I/O设备112的多个请求时可能出现的潜在的设备保留竞争问题,CU控制逻辑802跟踪并在设备忙队列804中存储设备忙消息和相关联的数据。在示例性实施例中,图1中的OS 103保留I/O设备112,以在保留有效时使其他OS 103不能访问I/O设备112。尽管设备保留并非对所有I/O操作都是需要的,设备保留可以被用来支持使在固定的期间中例如磁盘格式化时独占访问成为必要的操作。
CU控制逻辑802可以访问和控制控制单元110内的其他元件,例如CU计时器806和CU寄存器808。CU计时器806可以包括多个计时器功能来跟踪完成一个序列的I/O操作花了多少时间。CU计时器806可以进一步包括一个或更多个倒计时计时器,以监视并中断在预定的期间中不能完成的I/O操作和命令。CU寄存器808可以包括提供配置和状态信息的固定值,以及在CU控制逻辑802执行命令时被更新的动态状态信息。控制单元110还可以包括其它缓冲器或存储器元件(未示出)来存储与通道124和I/O设备112之间的通信相关的多个消息或状态信息。CU寄存器808可以包括最大控制单元交换参数,其定义了控制单元110支持的打开控制单元交换的最大数量。
通道子系统108中的通道124包括多个元件来支持与控制单元110的通信。例如,通道124可以包括与CHN子系统计时器812和CHN子系统寄存器814接口的CHN控制逻辑810。在示例性实施例中,CHN控制逻辑810控制通道子系统108和控制单元110之间的通信。CHN控制逻辑810可以通过连接120与CU控制逻辑802直接接口,以发送命令并接收响应,例如传输命令和响应IU。或者,消息传送接口和/或缓冲器(未示出)可以被置于CHN控制逻辑810和CU控制逻辑802之间。CHN子系统计时器812可以包括多个计时器功能,以跟踪在控制单元110所跟踪的时间以外完成一个序列的I/O操作要花多少时间。CHN子系统计时器812还可以包括一个或更多个倒计时的计时器,以监视和放弃在预定的期间中没有完成的命令序列。CHN子系统寄存器814可以包括提供配置和状态信 息的固定值,以及在传输命令和接收响应时被更新的动态状态信息。
在图9中示出了在TCW通道程序完成时从控制单元110到通道124通信的响应消息900例如传输响应IU的一个例子。响应消息900将状态信息提供给通道124,并可以指示通道124和控制单元110之间的打开交换应该被关闭。在TCW通道程序(例如,如图5和7所示的)被执行时提供的状态信息包括在CCW通道程序(例如,如图3和6所示的)完成时发送的状态信息以外的附加信息。响应信息900包括状态部分902和扩展状态部分904。当通道124接收响应消息900时,它在TCW所操作的设备的子通道中存储状态部分902的部分,并在与触发响应消息900的TCW信通程序关联的TCW所定义的存储器位置中存储扩展状态部分904。例如,TCW可以指示图1中的主存储器102的一部分,用于存储扩展状态部分904。
响应消息900的状态部分902可以包括多个字段,例如地址头部906、状态标志一908、最大控制单元交换参数910、响应标志912、响应码914、残留计数916、响应长度918、保留位置920、SPC-4检测类型922、状态标志二924、状态标志三926、设备状态928、以及纵向冗余检查(LRC)字930。状态部分902的每个字段被分配给特定的字节地址,以支持对响应消息900的解析。尽管在图9中示出了状态部分902中的字段的一个排列,可以理解,在本公开的范围内,字段的顺序可以被重新排列为其他顺序。此外,在本发明的范围内,响应消息900中的字段可以被忽略或组合,例如,将状态标志二924和标志三926组合到单个字段中。SPC-4还被描述在“SCSI主命令-4(SPC-4)”(SCSI Primary Commands-4),项目T10/1731-D,Rev 11,INCITS(2007年5月)中,其全部内容通过引用结合于此。
在一个示例性实施例中,地址头部906被设置为与控制单元110所接收的、启动TCW通道程序的TCCB中的值一样的值。尽管不需要地址头部906,包括地址头部906可以支持在多个I/O设备112被访问时进行测试以跟踪一I/O设备112上的命令和响应消息。
状态标志一908可指示信息,例如I/O操作的成功状态。状态标志一908中的多个位可以提供附加状态信息。
最大控制单元交换参数910识别控制单元110允许通道124打开的最大交换数量。为0的值可以通知通道124该控制单元110没有改变通道124正在使用的当前值。在一个示例性实施例中,通道124建立打开交换最大数量的默认值,例如64,控制单元110可以通过最大控制单元交换参数910来修改它。在响应消息900中发送的最大控制单元交换参数910的值可以是所需的实际值或用于一等式的种子值。例如,最大控制单元交换参数910中的值可以被通道124增加和/或倍增,以确定打开交换的实际最大数量,例如,值“1”可以被通道124解释为“32”。
使用打开交换最大数量的默认值给每个控制单元110和通道124一个公共起始点,该起始点可以由控制单元110确定来修改。在一个实施例中,通道124检查在来自控制单元110的响应消息900中接收到的最大控制单元交换参数910,以确定最大控制单元交换参数910是否低于默认值或先前接收到的值。如果新的数量小于打开交换的当前数量,则通道124不会将新的I/O命令驱动到控制单元110,直到使用的交换的当前数量少于新的限制。
在一个示例性实施例中,响应标志字段912使用(前面引用的)如FCP中定义的标准定义,并可以被设置为默认值例如2。响应码914可以等于小型计算机系统接口(SCSI)状态字段,并可以被设置为默认值例如0。用于读取或写入命令的残留计数916指示命令要读取或写入的字节数与实际读取或写入的字节数之间的差。响应长度918是响应消息900中在保留位置920之后的信息的字节的附加计数。响应长度918支持可变大小的响应消息900。SPC-4检测类型922可以基于消息类型被赋为特定值,例如传输响应IU=十六进制7F。在一个实施例中,状态标志二924被设置为十六进制80的值,以指示I/O操作被完成,并具有残留计数916的有效值。状态标志三926当I/O操作被完成时被设置为1,以指示扩展状态904作为响应消息900的一部分被包括在其中。设备状态928中继转发I/O设备 112产生的状态信息。LRC字930是覆盖响应消息900中的状态部分902的其他字段的检查字,以验证状态部分902的完整性。可以通过将异或操作应用到初始种子值并将每个字段顺次地包括到LRC计算中来生成LRC字930。
扩展状态部分904向通道子系统108和OS 103提供与以能够运行TCW通道程序的传输模式操作控制单元110相关联的信息。扩展状态部分904可支持可配置的定义,每个类型具有不同的类型状态定义。在示例性实施例中,扩展状态部分904包括传输状态头部(TSH)932、传输状态区域(TSA)934、TSH 932和TSA 934的LRC字936。TSH 932可以包括扩展状态长度940、扩展状态标志942、DCW偏移量944、DCW残留计数946和保留位置948。TSH 932对于不同格式是公用的,每个格式由扩展状态标志中的类型码来定义。TSA 934可以包括总设备时间参数950、延迟时间参数952、队列时间参数954、设备忙时间参数956、仅设备活动时间参数958和附加设备检测数据960。这些字段中的每个将被依次详细描述。
扩展状态长度940是扩展状态部分904的大小。在一个示例性实施例中,扩展状态标志942具有如下的定义:
位0-DCW偏移量944有效。
位1-DCW残留计数946有效。
位2-设置为1的该位在控制单元110不得不访问慢介质上的数据例如高速缓存未命中时以确定的方式通知图1中的OS 103。
位3-时间参数950-958有效。设置为1的类型码和设置为1的该位指示所有时间参数或时间参数950-958有效。
位4-保留
位5到7-这三个位是定义扩展状态部分904的TSA 934的格式的类型码。编码的名称为:
0.保留
1.I/O状态。扩展状态部分904包含传输模式I/O操作的有效结束状 态。
2.I/O异常。扩展状态部分904包含关于传送模式I/O操作由于异常条件而终止的信息。
3.询问状态。扩展状态部分904包含用于询问操作的状态。
4到7.保留。
DCW偏移量944指示失败DCW的TCCB中的偏移量。类似地,DCW残留计数946指示失败DCW(即,在DCW执行被中断时)的残留字节计数。
在一个示例性实施例中,在ES标志942的类型码指示I/O状态的类型时,TSA 934定义包括时间参数950-958,以及可选地附加设备检测数据960。时间参数950-958表示时间值并可以被缩放到任何时间单位例如微秒。图8中的CU计时器806被用来计算时间参数950-958,且CU寄存器808还可以被用来在触发事件时捕获CU计时器806的值。
总设备时间参数950是从控制单元接收到传输命令IU直到它发送用于I/O操作的传输响应IU(即响应消息900)所经过的时间。延迟时间参数952指示控制单元延迟的时间。这是在没有执行与通道124的通信时,与I/O设备112一起工作的控制单元110所累加的时间。在CCW通道程序中,例如如图3所示出的,控制单元302在该时间中从通道300断开。
队列时间参数954是I/O操作在控制单元110中排队的时间,但不包括当I/O设备112被相同的或另一主机系统101上的不同OS 103所保留时用于设备忙时间的排队时间。设备忙时间参数956是传输命令IU在控制单元110上等待设备忙而排队的时间,该设备忙是由I/O设备112被相同的或另一主机系统101上的不同OS 103所保留而引起的。
仅设备活动时间参数958是在控制单元110保持CE直到DE可用时,在控制单元110上的通道结束(CE)和设备结束(DE)之间经过的时间。CE可以指示涉及通道124和控制单元110之间的数据或控制信息的传送的I/O操作部分已经完成。DE可以指示I/O操作的设备部分已经完成。附加设备检测数据960是控制单元110响应于设备状态928中的活动单元检 查(UC)位而有条件地提供的补充状态。
LRC字936是TSH 932和TSA 934的纵向冗余校验字,它是以和响应消息900的状态902部分的LRC字930类似的方式计算的。LRC字936可以根据附加设备检测数据960中包含的字数、针对可变数量的字来计算。
现在转到图10,示出了通过连接120与控制单元110通信的多个主机系统101。每个主机系统101包括具有一个或多个通道124通道子系统108。尽管在图10的每个主机系统101中只示出了一个通道,可以理解每个主机系统101可以包括由多个OS 103控制的多个通道124。主机系统101还包括其他处理系统元件,如以上参考图1所示出和描述的,即,耦合到存储元件106和主存储器102的一个或更多个CPU 104。每个主机系统101可以执行一个或多个OS 103,每个OS 103能够发起用于对I/O设备112的独占访问的保留请求。每个主机系统101中的OS 103可以单独控制一个或更多个通道124以启动I/O操作。OS 103可以使用一个或更多个通道124上的不同子通道(未示出)来与控制单元110进行通信。
通道124和控制单元110之间的每个连接120可以是直接连接。或者,连接120可以通过作为光纤通道结构的部分的一个或更多个动态交换器1002来减少控制单元110上的物理连接数量。
如上参考图8所述,CU控制逻辑802解析并处理通过连接120从通道124接收的包括TCCB例如图7中的TCCB 704的命令消息。在CU控制逻辑802处接收的一些命令可以包括设备保留请求。尽管设备保留并非对于所有I/O操作都是需要的,设备保留可以基于每个OS 103来请求,用于需要对I/O设备112进行独占访问的I/O操作。例如,不同的OS 103可以都请求从I/O设备112读取数据块。控制单元110可以服务每个读取请求而不保留I/O设备112。但是,当OS 103在一个通道124上保留I/O设备112时,I/O设备112被保留从而其他尝试访问I/O设备112的OS 103被阻拦。
在一个示例性实施例中,当I/O设备112为OS 103被保留时,CU控制逻辑802从I/O设备112接收设备忙指示符。当CU控制逻辑802在存 在设备忙指示符时接收到命令消息时,CU控制逻辑802可以将命令消息放到DB队列804中。命令消息可以包含标识信息,该标识信息建立与每个命令消息关联的特定OS 103和/或通道124。在另一个示例性实施例中,CU控制逻辑802跟踪与CU寄存器808中的每个命令消息关联的特定OS103和/或通道124。。当I/O设备112不再被保留时,它通过设备结束指示符来通知CU控制逻辑802。响应于设备结束指示符,CU控制逻辑802服务DB队列804来提取命令消息以便由I/O设备112来执行。提取的命令消息可以再次导致对I/O设备112的保留,引起进一步延迟对待决命令消息进行服务。或者,被提取的命令消息可以不需要保留I/O设备112(例如,不需要对I/O设备112的独占访问),从而允许DB队列804的附件服务,以顺序执行附加命令消息。
对DB队列804的服务可以使用多种技术来执行,以管理DB队列804。例如,DB队列804可以作为FIFO来管理,以按照在DB队列804中放置的顺序来提取每个命令消息。或者,DB队列804可以作为优先级队列来服务。写入到DB队列804的命令消息的优先级可以被包括在传输到控制单元110的每个命令消息内的字段中。任意数量的优先级可以针对调度选项的范围来建立。当DB队列804作为优先级队列来服务时,在服务时DB队列804中的最高优先级命令消息在较低优先级的命令消息之前被提取。命令消息在DB队列804中保留的时间量可以被监视,以在一段时间中提高命令消息的优先级来确保它们被服务。用于DB队列804的另一个队列服务方案是轮转服务。使用轮转服务时,与DB队列804中的每个命令消息关联的OS 103(或通道124)被分析,以基于每个OS 103来服务DB队列804。轮转服务提供了对每个通信链路的访问,以防止一个OS 103向控制单元110发送多个猝发访问请求时会发生的潜在不均衡。
当命令消息在DB队列804中排队时,启动CU寄存器808中的设备忙计时器。在服务DB队列804以执行I/O操作命令时,CU寄存器中的设备忙计时器的值被读取以确定命令消息在DB队列804中待决多长时间。设备忙计时器的值在图9的响应消息900的设备忙时间参数956中被报告。 CU寄存器808中可以有多个设备忙计时器,以支持多个OS 103。或者,CU寄存器808中的设备忙计时器可以是连续运行的计时器,其中为多个OS 103在CU寄存器808中捕获设备忙时间值,并通过通道124将其输出到各个OS 103。
当多个命令消息在DB队列804中排队时,DB队列804的深度被监视。如果DB队列804满了从而没有更多的命令消息可以被排队,则CU控制逻辑802可以在DB队列804满时将设备忙消息发送到发送新命令消息的所有OS 103。CU控制逻辑802然后可以发送设备结束消息,以指示I/O设备112准备好,这可以触发OS 103通过一个或多个通道124来重发命令消息。或者,DB队列804中的一些命令消息可以以设备忙被退回到OS 103并从DB队列804中被清除。再次地,CU控制逻辑802可以发送设备结束消息,以指示I/O设备112准备好,这可以触发OS 103通过一个或多个通道124重新发送命令消息。
在管理DB队列804时,CU控制逻辑802可以在队列满条件以外的多种情形下通知OS 103忙条件。例如,CU控制逻辑802可以使用CU计时器806来监视命令消息在DB队列804中保留的时间。当命令消息排队大于命令超时期间的时段而I/O设备112被保留(例如没有收到设备结束指示符)时,然后命令消息从DB队列804中移除,且设备忙消息以FCP_RSPIU发送到命令消息的发起者。命令超时期间可以被设置为固定值,例如30秒,或者是可配置的。在一个示例性实施例中,当新的命令消息被接收而I/O设备112被保留了大于设备忙超时期间时,CU控制逻辑802不将新的命令消息放到DB队列804中。CU控制逻辑802将设备忙消息以FCP_RSP IU发送到新命令消息的发起者。
OS 103也可以监视请求的命令消息完成所经过的时间。响应于确定已经经过了操作系统的超时周期,OS 103可以将重置忠诚消息发送到控制单元110,以试图释放I/O设备112。响应于此,控制单元110进入操作系统超时恢复周期。如果在操作系统超时恢复周期中接收到了新的命令消息,则CU控制逻辑802不会将新的命令消息放到DB队列804中。CU控制 逻辑802以FCP_RSP IU(形式)的设备忙消息来响应新命令消息的发起者。
现在转到图11,将根据示例性实施例并参考图1中的I/O处理系统100和图10中的控制单元110的详细视图,来描述用于降低在通过一个或更多个通道与多个OS通信的控制单元上降低保留设备的访问竞争的过程1100。在块1102中,控制单元110通过一个或多个通道124从多个OS 103中的第一OS接收命令消息,其中该命令消息包括用于与控制单元110通信的I/O设备112的I/O操作命令。该命令消息可以是传输命令UI,包括具有作为TCW通道程序的一部分的多个DCW的TCCB。在块104中,控制单元110从I/O设备112接收设备忙指示符。设备忙指示符通知控制单元110多个OS 103中的第二OS已经保留了I/O设备112。
在块1106中,控制单元110响应于设备忙指示符而将命令消息在DB队列804中排队。当附加的命令消息在控制单元110上被接收时,将命令消息在DB队列804中排队。
在块1108中,控制单元110针对设备结束指示符来监视I/O设备112,其中该设备结束指示符通知控制单元110该I/O设备112已经准备接收新的I/O操作命令。在块1110中,响应于设备结束符,控制单元110服务DB队列804以提取命令消息并执行I/O操作命令。可以使用如前所述的FIFO服务、基于优先级的服务或轮转服务来服务DB队列804。
示例性实施例的技术效果包括降低I/O处理系统中的保留设备的访问竞争。在设备被保留时使用设备忙队列来临时存储接收到的命令消息,允许控制单元管理来自不同OS的命令消息的服务顺序,而不会给发起命令消息的主机系统的通道子系统带来负担。优点包括处理多个命令消息,而不中断控制单元上的TCW通道程序的执行。于是,设备忙排队处理了对保留设备的访问竞争,还获得了部分由于每个通道程序交换较少的消息而引起的较高的通信吞吐量。基于系统设计者或客户的偏好,可以使用多种设备忙队列服务技术。在示例性实施例中,从较慢响应主机系统发起的命令消息可以和较快响应主机系统一样被公平地服务。
如上所述,实施例可以体现为计算机实现的过程和用于实现这些过程的装置。在示例性实施例中,本发明体现为由一个或多个网络元件执行的计算机程序代码。实施例包括计算机可用介质1202上的具有计算机程序代码逻辑1204的如图12所示的计算机程序产品1200,该代码逻辑1204包含在作为制造物品的有形介质中嵌入的代码。示例性的用于计算机可用介质1202的制造物品可以包括软盘、CD-ROM、硬盘驱动器、通用串行总线(USB)闪存驱动器或其他计算机可读存储介质,其中,当计算机程序代码逻辑1204被载入并被计算机执行时,计算机变成用于实现本发明的装置。实施例包括计算机程序代码逻辑1204,例如,不管是在存储介质中存储、载入和/或被计算机执行,或者通过一些传输介质,例如通过电线或电缆、通过光纤或通过电磁辐射来传输,其中,当计算机程序代码逻辑1204被计算机载入并被执行时,计算机变为用于实现本发明的装置。当在通用的微处理器上实现时,计算机程序代码逻辑1204段配置微处理器以创建特定的逻辑电路。
尽管参考示例性实施例描述了本发明,本领域技术人员可以理解,可以进行各种修改并对其元件进行等价替换,而不偏离本发明的范围。此外,可以做出许多修改来使特定情形或资料适应本发明的教导,而不偏离其实质范围。因此,本发明旨在不是限于作为预期实现本发明的最佳模式描述的特定实施例,而是,本发明将包括在所附权利要求书的范围内的所有实施例。此外,使用术语第一、第二等不是要表示任何顺序或重要性,相反,使用术语第一、第二等是为了将一个元件与另一个元件相区别。此外,使用术语一、一个等不是要表示数量的限制,而是要表示至少一个所引用项的存在。
Claims (14)
1.一种用于在通过一个或多个通道与多个操作系统通信的控制单元处降低保留设备的访问竞争的方法,该方法包括:
通过一个或多个通道在控制单元处接收来自多个操作系统中的第一操作系统的命令消息,其中,该命令消息包括用于与控制单元通信的设备的I/O操作命令;
从所述设备接收设备忙指示符,其中该设备忙指示符通知控制单元该设备被多个操作系统中的第二操作系统保留;
响应于设备忙指示符,在设备忙队列上将命令消息排队;
针对设备结束指示符来监视该设备,其中该设备结束指示符通知控制单元该设备已准备接收新的I/O操作命令;
响应于设备结束指示符,服务所述设备忙队列来执行I/O操作命令;
响应于在设备忙队列上将命令消息排队,启动设备忙计时器;
响应于服务所述设备忙队列来执行I/O操作命令,读取设备忙计时器的值;以及
通过一个或多个通道,在传输响应信息单元消息中将设备忙计时器的值输出到第一操作系统。
2.如权利要求1所述的方法,其中,所述方法还包括:
通过一个或多个通道,在控制单元处接收来自多个操作系统的包括附加I/O操作命令的附加命令消息;
响应于设备忙指示符,在设备忙队列中将附加命令消息排队;以及
服务所述设备忙队列以执行附加I/O操作命令。
3.如权利要求2所述的方法,其中,设备忙队列的服务作为先入先出FIFO服务来执行,该FIFO服务以设备忙队列中排队的顺序来输出附加命令消息。
4.如权利要求2所述的方法,其中,设备忙队列的服务作为基于优先级的服务来执行,该基于优先级的服务以较高优先级命令消息在较低优先级命令消息之前的顺序来输出来自设备忙队列的附加命令消息。
5.如权利要求2所述的方法,其中,设备忙队列的服务作为轮转服务来执行,该轮转服务基于每个操作系统来输出来自设备忙队列的附加命令消息。
6.如权利要求1所述的方法,其中该方法还包括:
响应于以下一项或多项来输出设备忙消息:
当设备忙队列满时,在控制单元处接收到附加命令消息;
当设备忙超时期间内没有接收到设备结束指示符时,在控制单元处接收到附加命令消息;
在操作系统超时恢复期间内,在控制单元处接收到附加命令消息;以及
确定在命令超时期间内没有接收到设备结束指示符。
7.如权利要求1所述的方法,其中该命令消息是传输命令信息单元消息,其包括传输命令控制块TCCB,该传输命令控制块TCCB保持作为传输控制字TCW通道程序的一部分的I/O操作命令。
8.一种用于在通过一个或多个通道与多个操作系统通信的控制单元处降低保留设备的访问竞争的设备,该设备包括:
配置为通过一个或多个通道在控制单元处接收来自多个操作系统中的第一操作系统的命令消息的装置,其中该命令消息包括用于与控制单元通信的设备的I/O操作命令;
配置为接收来自所述设备的设备忙指示符的装置,其中该设备忙指示符通知控制单元该设备被多个操作系统中的第二操作系统保留;
配置为响应于设备忙指示符,在设备忙队列中将命令消息排队的装置;
配置为针对设备结束指示符来监视设备的装置,其中该设备结束指示符通知控制单元该设备已准备好接收新的I/O操作命令;以及
配置为响应于设备结束指示符,服务所述设备忙队列以执行I/O操作命令的装置;
配置为响应于在设备忙队列中将命令消息排队,启动设备忙计时器的装置;
配置为响应于服务所述设备忙队列以执行I/O操作命令,读取设备忙计时器的值的装置;以及
配置为通过一个或多个通道,在传输响应信息单元消息中将设备忙计时器的值输出到第一操作系统的装置。
9.如权利要求8的设备,进一步包括:
配置为通过一个或多个通道,在控制单元处接收来自多个操作系统的包括附加I/O操作命令的附加命令消息的装置;
配置为响应于设备忙指示符,在设备忙队列中将附加命令消息排队的装置;以及
配置为服务所述设备忙队列以执行附加I/O操作命令的装置。
10.如权利要求9所述的设备,其中,设备忙队列的服务作为先入先出FIFO服务来执行,该FIFO服务以在设备忙队列中排队的顺序来输出附加命令消息。
11.如权利要求9所述的设备,其中,设备忙队列的服务作为基于优先级的服务来执行,该基于优先级的服务以较高优先级I/O命令消息在较低优先级I/O命令消息之前的顺序来输出来自设备忙队列的附加命令消息。
12.如权利要求9所述的设备,其中,设备忙队列的服务作为轮转服务来执行,该轮转服务基于每个操作系统来输出来自设备忙队列的附加命令消息。
13.如权利要求8所述的设备,进一步包括:
配置为响应于以下一项或多项来输出设备忙消息的装置:
当设备忙队列满时,在控制单元处接收到附加命令消息;
当设备忙超时期间内没有接收到设备结束指示符时,在控制单元处接收到附加命令消息;
在操作系统超时恢复期间内,在控制单元处接收到附加命令消息;以及
确定在命令超时期间内没有接收到设备结束指示符。
14.如权利要求8所述的设备,其中该命令消息是传输命令信息单元消息,其包括传输命令控制块TCCB,该传输命令控制块TCCB保持作为传输控制字TCW通道程序的一部分的I/O操作命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/030,961 | 2008-02-14 | ||
US12/030,961 US7908403B2 (en) | 2008-02-14 | 2008-02-14 | Reserved device access contention reduction |
PCT/EP2009/051445 WO2009101050A1 (en) | 2008-02-14 | 2009-02-09 | Reserved device access contention reduction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101946244A CN101946244A (zh) | 2011-01-12 |
CN101946244B true CN101946244B (zh) | 2012-12-12 |
Family
ID=40671405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980104761.9A Active CN101946244B (zh) | 2008-02-14 | 2009-02-09 | 降低保留设备的访问竞争的方法和设备 |
Country Status (14)
Country | Link |
---|---|
US (1) | US7908403B2 (zh) |
EP (1) | EP2174227B1 (zh) |
JP (1) | JP5159900B2 (zh) |
KR (1) | KR101231555B1 (zh) |
CN (1) | CN101946244B (zh) |
AT (1) | ATE482430T1 (zh) |
CY (1) | CY1111221T1 (zh) |
DE (1) | DE602009000227D1 (zh) |
DK (1) | DK2174227T3 (zh) |
ES (1) | ES2349376T3 (zh) |
PL (1) | PL2174227T3 (zh) |
PT (1) | PT2174227E (zh) |
SI (1) | SI2174227T1 (zh) |
WO (1) | WO2009101050A1 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI237771B (en) * | 2004-03-22 | 2005-08-11 | Via Tech Inc | Media player control system and control method used therein |
US7500023B2 (en) | 2006-10-10 | 2009-03-03 | International Business Machines Corporation | Facilitating input/output processing by using transport control words to reduce input/output communications |
US7502873B2 (en) | 2006-10-10 | 2009-03-10 | International Business Machines Corporation | Facilitating access to status and measurement data associated with input/output processing |
US7840717B2 (en) | 2008-02-14 | 2010-11-23 | International Business Machines Corporation | Processing a variable length device command word at a control unit in an I/O processing system |
US9052837B2 (en) | 2008-02-14 | 2015-06-09 | International Business Machines Corporation | Processing communication data in a ships passing condition |
US8082481B2 (en) | 2008-02-14 | 2011-12-20 | International Business Machines Corporation | Multiple CRC insertion in an output data stream |
US8478915B2 (en) | 2008-02-14 | 2013-07-02 | International Business Machines Corporation | Determining extended capability of a channel path |
US7941570B2 (en) | 2008-02-14 | 2011-05-10 | International Business Machines Corporation | Bi-directional data transfer within a single I/O operation |
US7899944B2 (en) | 2008-02-14 | 2011-03-01 | International Business Machines Corporation | Open exchange limiting in an I/O processing system |
US7904605B2 (en) | 2008-02-14 | 2011-03-08 | International Business Machines Corporation | Computer command and response for determining the state of an I/O operation |
US8176222B2 (en) * | 2008-02-14 | 2012-05-08 | International Business Machines Corporation | Early termination of an I/O operation in an I/O processing system |
US8166206B2 (en) | 2008-02-14 | 2012-04-24 | International Business Machines Corporation | Cancel instruction and command for determining the state of an I/O operation |
US7890668B2 (en) | 2008-02-14 | 2011-02-15 | International Business Machines Corporation | Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous |
US7917813B2 (en) | 2008-02-14 | 2011-03-29 | International Business Machines Corporation | Exception condition determination at a control unit in an I/O processing system |
US8196149B2 (en) | 2008-02-14 | 2012-06-05 | International Business Machines Corporation | Processing of data to determine compatability in an input/output processing system |
US8312189B2 (en) | 2008-02-14 | 2012-11-13 | International Business Machines Corporation | Processing of data to monitor input/output operations |
US8117347B2 (en) | 2008-02-14 | 2012-02-14 | International Business Machines Corporation | Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system |
US8108570B2 (en) | 2008-02-14 | 2012-01-31 | International Business Machines Corporation | Determining the state of an I/O operation |
US7937507B2 (en) | 2008-02-14 | 2011-05-03 | International Business Machines Corporation | Extended measurement word determination at a channel subsystem of an I/O processing system |
US8001298B2 (en) | 2008-02-14 | 2011-08-16 | International Business Machines Corporation | Providing extended measurement data in an I/O processing system |
US8214562B2 (en) | 2008-02-14 | 2012-07-03 | International Business Machines Corporation | Processing of data to perform system changes in an input/output processing system |
US8095847B2 (en) | 2008-02-14 | 2012-01-10 | International Business Machines Corporation | Exception condition handling at a channel subsystem in an I/O processing system |
US7840718B2 (en) | 2008-02-14 | 2010-11-23 | International Business Machines Corporation | Processing of data to suspend operations in an input/output processing log-out system |
US7904606B2 (en) | 2008-07-31 | 2011-03-08 | International Business Machines Corporation | Transport control channel program chain linked branching |
US8055807B2 (en) * | 2008-07-31 | 2011-11-08 | International Business Machines Corporation | Transport control channel program chain linking including determining sequence order |
US7937504B2 (en) | 2008-07-31 | 2011-05-03 | International Business Machines Corporation | Transport control channel program message pairing |
US8332542B2 (en) | 2009-11-12 | 2012-12-11 | International Business Machines Corporation | Communication with input/output system devices |
US8725923B1 (en) * | 2011-03-31 | 2014-05-13 | Emc Corporation | BMC-based communication system |
US8364853B2 (en) | 2011-06-01 | 2013-01-29 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US9021155B2 (en) | 2011-06-01 | 2015-04-28 | International Business Machines Corporation | Fibre channel input/output data routing including discarding of data transfer requests in response to error detection |
US8583988B2 (en) | 2011-06-01 | 2013-11-12 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US8677027B2 (en) | 2011-06-01 | 2014-03-18 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US8738811B2 (en) | 2011-06-01 | 2014-05-27 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US8364854B2 (en) | 2011-06-01 | 2013-01-29 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US8473641B2 (en) | 2011-06-30 | 2013-06-25 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
US8346978B1 (en) | 2011-06-30 | 2013-01-01 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
US8312176B1 (en) | 2011-06-30 | 2012-11-13 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
US8549185B2 (en) | 2011-06-30 | 2013-10-01 | International Business Machines Corporation | Facilitating transport mode input/output operations between a channel subsystem and input/output devices |
KR101412706B1 (ko) * | 2012-05-15 | 2014-06-30 | 엠디에스테크놀로지 주식회사 | 엠투엠 단말기의 응용프로그램 통신 제어 시스템 및 그 방법 |
US8918542B2 (en) | 2013-03-15 | 2014-12-23 | International Business Machines Corporation | Facilitating transport mode data transfer between a channel subsystem and input/output devices |
US8990439B2 (en) | 2013-05-29 | 2015-03-24 | International Business Machines Corporation | Transport mode data transfer between a channel subsystem and input/output devices |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
TWI575384B (zh) * | 2015-09-04 | 2017-03-21 | 慧榮科技股份有限公司 | 通道控制裝置 |
US10025727B2 (en) * | 2016-02-05 | 2018-07-17 | Honeywell International Inc. | Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
US10901654B2 (en) * | 2018-10-30 | 2021-01-26 | International Business Machines Corporation | Buffer credit management in a data storage system |
KR102491362B1 (ko) * | 2021-02-01 | 2023-01-26 | 주식회사 드림에이스 | 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497469A (zh) * | 2002-10-24 | 2004-05-19 | 国际商业机器公司 | 在虚拟机或其他计算机实体之间传送数据的系统和方法 |
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN1916877A (zh) * | 2005-08-19 | 2007-02-21 | 国际商业机器公司 | 在处理器与存储器流控制器间传送命令参数的系统和方法 |
CN101004767A (zh) * | 2006-01-19 | 2007-07-25 | 联想(北京)有限公司 | 计算机系统及其i/o端口访问控制方法 |
Family Cites Families (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1264096A (zh) | 1970-06-27 | 1972-02-16 | ||
US4004277A (en) * | 1974-05-29 | 1977-01-18 | Gavril Bruce D | Switching system for non-symmetrical sharing of computer peripheral equipment |
US3943283A (en) * | 1974-06-17 | 1976-03-09 | International Business Machines Corporation | Bidirectional single wire data transmission and wrap control |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4779188A (en) * | 1983-12-14 | 1988-10-18 | International Business Machines Corporation | Selective guest system purge control |
US4870566A (en) * | 1984-08-27 | 1989-09-26 | International Business Machines Corp. | Scannerless message concentrator and communications multiplexer |
US4837677A (en) * | 1985-06-14 | 1989-06-06 | International Business Machines Corporation | Multiple port service expansion adapter for a communications controller |
US4760518A (en) * | 1986-02-28 | 1988-07-26 | Scientific Computer Systems Corporation | Bi-directional databus system for supporting superposition of vector and scalar operations in a computer |
JPS6336461A (ja) * | 1986-07-31 | 1988-02-17 | Pfu Ltd | 汎用チャネル制御方式 |
JPS63236152A (ja) * | 1987-03-24 | 1988-10-03 | Fujitsu Ltd | I/oキユ−イング制御方法 |
US4926320A (en) * | 1987-04-07 | 1990-05-15 | Nec Corporation | Information processing system having microprogram-controlled type arithmetic processing unit |
US4866609A (en) * | 1988-06-22 | 1989-09-12 | International Business Machines Corporation | Byte count handling in serial channel extender with buffering for data pre-fetch |
JPH0283757A (ja) | 1988-09-21 | 1990-03-23 | Hitachi Ltd | 通信制御システム |
US5016160A (en) * | 1988-12-15 | 1991-05-14 | International Business Machines Corporation | Computer system having efficient data transfer operations |
EP0424618A3 (en) * | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
JPH04649A (ja) * | 1990-04-18 | 1992-01-06 | Nec Corp | リモートチャネル装置の障害情報転送方式 |
CA2037708C (en) * | 1990-05-04 | 1998-01-20 | Richard J. Eickemeyer | General purpose compound apparatus for instruction-level parallel processors |
US5386512A (en) * | 1991-07-19 | 1995-01-31 | International Business Machines Corporation | System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information |
US5388219A (en) * | 1992-03-02 | 1995-02-07 | International Business Machines Corporation | Efficient channel and control unit for host computer |
US5526484A (en) * | 1992-12-10 | 1996-06-11 | International Business Machines Corporation | Method and system for pipelining the processing of channel command words |
US5517670A (en) * | 1992-12-30 | 1996-05-14 | International Business Machines Corporation | Adaptive data transfer channel employing extended data block capability |
US5461721A (en) * | 1993-04-14 | 1995-10-24 | International Business Machines Corporation | System for transferring data between I/O devices and main or expanded storage under dynamic control of independent indirect address words (IDAWs) |
US5465359A (en) * | 1993-11-01 | 1995-11-07 | International Business Machines Corporation | Method and system for managing data and users of data in a data processing system |
US5584039A (en) * | 1993-11-08 | 1996-12-10 | International Business Machines Corporation | System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices |
US5613163A (en) * | 1994-11-18 | 1997-03-18 | International Business Machines Corporation | Method and system for predefined suspension and resumption control over I/O programs |
US5600793A (en) * | 1994-12-20 | 1997-02-04 | International Business Machines Corporation | Method and system of bi-directional parallel port data transfer between data processing systems |
GB2291990A (en) | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Flash-memory management system |
US5831985A (en) * | 1995-11-09 | 1998-11-03 | Emc Corporation | Method and apparatus for controlling concurrent data transmission from multiple sources in a channel communication system |
US5768620A (en) * | 1996-04-09 | 1998-06-16 | International Business Machines Corporation | Variable timeout method in a missing-interrupt-handler for I/O requests issued by the same operating system |
US5894583A (en) * | 1996-04-09 | 1999-04-13 | International Business Machines Corporation | Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems |
US5758190A (en) * | 1996-04-09 | 1998-05-26 | International Business Machines Corporation | Control unit threshold timeout controls for software missing interrupt handlers in operating systems |
US5889935A (en) * | 1996-05-28 | 1999-03-30 | Emc Corporation | Disaster control features for remote data mirroring |
SG101460A1 (en) * | 1997-02-14 | 2004-01-30 | Canon Kk | Data communication apparatus and method |
US6353612B1 (en) * | 1998-06-19 | 2002-03-05 | Brocade Communications Systems, Inc. | Probing device |
US6693880B2 (en) * | 1998-09-10 | 2004-02-17 | International Business Machines Corporation | System of controlling the flow of information between senders and receivers across links being used as channels |
US6230218B1 (en) * | 1998-10-14 | 2001-05-08 | International Business Machines Corporation | Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6343335B1 (en) * | 1998-10-29 | 2002-01-29 | International Business Machines Corporation | System for repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry |
JP3990833B2 (ja) * | 1998-12-11 | 2007-10-17 | キヤノン株式会社 | 通信制御方法及び装置 |
US6772207B1 (en) * | 1999-01-28 | 2004-08-03 | Brocade Communications Systems, Inc. | System and method for managing fibre channel switching devices |
US6484217B1 (en) * | 1999-04-20 | 2002-11-19 | International Business Machines Corporation | Managing shared devices in a data processing system |
US6718139B1 (en) * | 1999-09-13 | 2004-04-06 | Ciena Corporation | Optical fiber ring communication system |
US6651125B2 (en) * | 1999-09-28 | 2003-11-18 | International Business Machines Corporation | Processing channel subsystem pending I/O work queues based on priorities |
US6658603B1 (en) * | 2000-04-17 | 2003-12-02 | International Business Machines Corporation | Method and apparatus for efficiently generating and implementing engine error codes and verifying the correctness of the implementation of the engine error codes |
US6862322B1 (en) * | 2000-05-19 | 2005-03-01 | International Business Machines Corporation | Switchable-bandwidth optical receiver |
US6609161B1 (en) * | 2000-06-01 | 2003-08-19 | Adaptec, Inc. | Two-dimensional execution queue for host adapters |
JP2002016655A (ja) * | 2000-06-28 | 2002-01-18 | Sony Corp | 伝送方法、伝送システム、伝送装置及び伝送制御装置 |
US6662319B1 (en) * | 2000-08-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Special encoding of known bad data |
US6694390B1 (en) * | 2000-09-11 | 2004-02-17 | Intel Corporation | Managing bus transaction dependencies |
US6697983B1 (en) * | 2000-10-24 | 2004-02-24 | At&T Wireless Services, Inc. | Data link layer tunneling technique for high-speed data in a noisy wireless environment |
US6622268B2 (en) * | 2000-11-29 | 2003-09-16 | Intel Corp | Method and apparatus for propagating error status over an ECC protected channel |
US7127514B2 (en) * | 2000-12-28 | 2006-10-24 | Microsoft Corporation | Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client |
US6834363B2 (en) * | 2001-03-22 | 2004-12-21 | International Business Machines Corporation | Method for prioritizing bus errors |
US6754738B2 (en) * | 2001-09-28 | 2004-06-22 | International Business Machines Corporation | Low overhead I/O interrupt |
US6859866B2 (en) * | 2001-10-01 | 2005-02-22 | International Business Machines Corporation | Synchronizing processing of commands invoked against duplexed coupling facility structures |
US6745299B2 (en) * | 2001-11-19 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method for evaluation of scalable symmetric multiple processor cache coherency protocols and algorithms |
US7599360B2 (en) | 2001-12-26 | 2009-10-06 | Cisco Technology, Inc. | Methods and apparatus for encapsulating a frame for transmission in a storage area network |
US7007142B2 (en) * | 2002-02-19 | 2006-02-28 | Intel Corporation | Network data storage-related operations |
US6898723B2 (en) * | 2002-04-01 | 2005-05-24 | Mitac International Corp. | Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range |
US6826661B2 (en) * | 2002-08-30 | 2004-11-30 | Veritas Operating Corporation | Methods and systems for storage architectures |
US20040054776A1 (en) * | 2002-09-16 | 2004-03-18 | Finisar Corporation | Network expert analysis process |
US7539777B1 (en) * | 2002-10-25 | 2009-05-26 | Cisco Technology, Inc. | Method and system for network time protocol forwarding |
US7080094B2 (en) * | 2002-10-29 | 2006-07-18 | Lockheed Martin Corporation | Hardware accelerated validating parser |
US20040136241A1 (en) * | 2002-10-31 | 2004-07-15 | Lockheed Martin Corporation | Pipeline accelerator for improved computing architecture and related system and method |
US7202801B2 (en) * | 2002-12-11 | 2007-04-10 | Geospatial Technologies, Inc. | Method and apparatus for an automated location-based, dynamic notification system (ALDNS) |
US7277387B2 (en) * | 2003-01-30 | 2007-10-02 | Wind River Systems, Inc. | Package manager |
US7324455B2 (en) * | 2003-03-14 | 2008-01-29 | International Business Machines Corporation | Transfer of error-analysis and statistical data in a fibre channel input/output system |
US6915378B2 (en) * | 2003-04-23 | 2005-07-05 | Hypernova Technologies, Inc. | Method and system for improving the performance of a processing system |
US7085898B2 (en) * | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Coherency management for a “switchless” distributed shared memory computer system |
US7000036B2 (en) * | 2003-05-12 | 2006-02-14 | International Business Machines Corporation | Extended input/output measurement facilities |
TWI271626B (en) * | 2003-06-17 | 2007-01-21 | Delta Electronics Inc | Data transmission method for microprocessors of programmable logic controller |
US7684401B2 (en) * | 2003-07-21 | 2010-03-23 | Qlogic, Corporation | Method and system for using extended fabric features with fibre channel switch elements |
US7124207B1 (en) * | 2003-08-14 | 2006-10-17 | Adaptec, Inc. | I2O command and status batching |
KR20050043426A (ko) * | 2003-11-06 | 2005-05-11 | 삼성전자주식회사 | 파이프라인 버스 시스템에서 커맨드 전송 방법 및 장치 |
US20050105456A1 (en) * | 2003-11-18 | 2005-05-19 | Cookson Christopher J. | Double-sided optical disc |
US7634582B2 (en) * | 2003-12-19 | 2009-12-15 | Intel Corporation | Method and architecture for optical networking between server and storage area networks |
US7564791B2 (en) * | 2003-12-29 | 2009-07-21 | Intel Corporation | Monitoring packet flows |
US20050223291A1 (en) * | 2004-03-24 | 2005-10-06 | Zimmer Vincent J | Methods and apparatus to provide an execution mode transition |
US8171170B2 (en) * | 2004-04-30 | 2012-05-01 | Emc Corporation | Storage switch task processing synchronization |
US7240273B2 (en) * | 2004-05-13 | 2007-07-03 | Industrial Technology Research Institute | Cyclic redundancy check modification for message length detection and error detection |
US7555554B2 (en) * | 2004-08-06 | 2009-06-30 | Microsoft Corporation | System and method for generating selectable extension to media transport protocol |
US7443798B2 (en) * | 2004-09-03 | 2008-10-28 | Agere Systems Inc. | Transmit adaptive equalization for communication system with one or more serial data channels |
GB2419198A (en) * | 2004-10-14 | 2006-04-19 | Hewlett Packard Development Co | Identifying performance affecting causes in a data storage system |
US7672323B2 (en) * | 2005-01-14 | 2010-03-02 | Cisco Technology, Inc. | Dynamic and intelligent buffer management for SAN extension |
US7526633B2 (en) | 2005-03-23 | 2009-04-28 | Qualcomm Incorporated | Method and system for encoding variable length packets with variable instruction sizes |
JP2006277583A (ja) * | 2005-03-30 | 2006-10-12 | Hitachi Ltd | データ処理システム、データ処理方法、及びプログラム |
US7718917B2 (en) | 2005-07-08 | 2010-05-18 | Gm Global Technology Operations, Inc. | Hybrid laser and resistance welding system and method |
JP2007058646A (ja) * | 2005-08-25 | 2007-03-08 | Hitachi Ltd | データ処理システム |
US20070072543A1 (en) * | 2005-09-06 | 2007-03-29 | Nokia Corporation | Enhanced signaling of pre-configured interaction message in service guide |
JP4527640B2 (ja) * | 2005-09-15 | 2010-08-18 | 株式会社ソニー・コンピュータエンタテインメント | データ読出装置 |
US7484021B2 (en) * | 2005-10-27 | 2009-01-27 | Cisco Technology, Inc. | Technique for implementing virtual fabric membership assignments for devices in a storage area network |
US9032164B2 (en) * | 2006-02-17 | 2015-05-12 | Emulex Corporation | Apparatus for performing storage virtualization |
US20080040519A1 (en) * | 2006-05-02 | 2008-02-14 | Alacritech, Inc. | Network interface device with 10 Gb/s full-duplex transfer rate |
US8381214B2 (en) * | 2006-05-05 | 2013-02-19 | Microsoft Corporation | Extensible job submission |
US20080043563A1 (en) | 2006-08-15 | 2008-02-21 | International Business Machines Corporation | Flexibly controlling the transfer of data between input/output devices and memory |
US7500030B2 (en) * | 2006-08-30 | 2009-03-03 | International Business Machines Corporation | Control of information units in fibre channel communications |
US7502873B2 (en) * | 2006-10-10 | 2009-03-10 | International Business Machines Corporation | Facilitating access to status and measurement data associated with input/output processing |
US7500023B2 (en) * | 2006-10-10 | 2009-03-03 | International Business Machines Corporation | Facilitating input/output processing by using transport control words to reduce input/output communications |
US7797414B2 (en) * | 2007-01-31 | 2010-09-14 | International Business Machines Corporation | Establishing a logical path between servers in a coordinated timing network |
US8660108B2 (en) * | 2007-04-13 | 2014-02-25 | Hart Communication Foundation | Synchronizing timeslots in a wireless communication protocol |
US8020074B2 (en) * | 2007-08-24 | 2011-09-13 | Datadirect Networks, Inc. | Method for auto-correction of errors in a RAID memory system |
US7890668B2 (en) | 2008-02-14 | 2011-02-15 | International Business Machines Corporation | Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous |
US7840717B2 (en) * | 2008-02-14 | 2010-11-23 | International Business Machines Corporation | Processing a variable length device command word at a control unit in an I/O processing system |
US8176222B2 (en) | 2008-02-14 | 2012-05-08 | International Business Machines Corporation | Early termination of an I/O operation in an I/O processing system |
US8117347B2 (en) | 2008-02-14 | 2012-02-14 | International Business Machines Corporation | Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system |
US8082481B2 (en) | 2008-02-14 | 2011-12-20 | International Business Machines Corporation | Multiple CRC insertion in an output data stream |
US8214562B2 (en) | 2008-02-14 | 2012-07-03 | International Business Machines Corporation | Processing of data to perform system changes in an input/output processing system |
US7840718B2 (en) | 2008-02-14 | 2010-11-23 | International Business Machines Corporation | Processing of data to suspend operations in an input/output processing log-out system |
US9052837B2 (en) | 2008-02-14 | 2015-06-09 | International Business Machines Corporation | Processing communication data in a ships passing condition |
US7941570B2 (en) | 2008-02-14 | 2011-05-10 | International Business Machines Corporation | Bi-directional data transfer within a single I/O operation |
US8095847B2 (en) | 2008-02-14 | 2012-01-10 | International Business Machines Corporation | Exception condition handling at a channel subsystem in an I/O processing system |
US7904605B2 (en) | 2008-02-14 | 2011-03-08 | International Business Machines Corporation | Computer command and response for determining the state of an I/O operation |
US8108570B2 (en) | 2008-02-14 | 2012-01-31 | International Business Machines Corporation | Determining the state of an I/O operation |
US7917813B2 (en) | 2008-02-14 | 2011-03-29 | International Business Machines Corporation | Exception condition determination at a control unit in an I/O processing system |
US7899944B2 (en) | 2008-02-14 | 2011-03-01 | International Business Machines Corporation | Open exchange limiting in an I/O processing system |
US8478915B2 (en) * | 2008-02-14 | 2013-07-02 | International Business Machines Corporation | Determining extended capability of a channel path |
US8001298B2 (en) | 2008-02-14 | 2011-08-16 | International Business Machines Corporation | Providing extended measurement data in an I/O processing system |
US7937507B2 (en) | 2008-02-14 | 2011-05-03 | International Business Machines Corporation | Extended measurement word determination at a channel subsystem of an I/O processing system |
US8312189B2 (en) | 2008-02-14 | 2012-11-13 | International Business Machines Corporation | Processing of data to monitor input/output operations |
US8196149B2 (en) | 2008-02-14 | 2012-06-05 | International Business Machines Corporation | Processing of data to determine compatability in an input/output processing system |
US8166206B2 (en) | 2008-02-14 | 2012-04-24 | International Business Machines Corporation | Cancel instruction and command for determining the state of an I/O operation |
-
2008
- 2008-02-14 US US12/030,961 patent/US7908403B2/en active Active
-
2009
- 2009-02-09 SI SI200930011T patent/SI2174227T1/sl unknown
- 2009-02-09 PL PL09711029T patent/PL2174227T3/pl unknown
- 2009-02-09 DK DK09711029.0T patent/DK2174227T3/da active
- 2009-02-09 JP JP2010546300A patent/JP5159900B2/ja active Active
- 2009-02-09 CN CN200980104761.9A patent/CN101946244B/zh active Active
- 2009-02-09 PT PT09711029T patent/PT2174227E/pt unknown
- 2009-02-09 EP EP09711029A patent/EP2174227B1/en active Active
- 2009-02-09 DE DE602009000227T patent/DE602009000227D1/de active Active
- 2009-02-09 ES ES09711029T patent/ES2349376T3/es active Active
- 2009-02-09 WO PCT/EP2009/051445 patent/WO2009101050A1/en active Application Filing
- 2009-02-09 AT AT09711029T patent/ATE482430T1/de active
- 2009-02-09 KR KR1020107016959A patent/KR101231555B1/ko active IP Right Grant
-
2010
- 2010-11-12 CY CY20101101026T patent/CY1111221T1/el unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497469A (zh) * | 2002-10-24 | 2004-05-19 | 国际商业机器公司 | 在虚拟机或其他计算机实体之间传送数据的系统和方法 |
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN1916877A (zh) * | 2005-08-19 | 2007-02-21 | 国际商业机器公司 | 在处理器与存储器流控制器间传送命令参数的系统和方法 |
CN101004767A (zh) * | 2006-01-19 | 2007-07-25 | 联想(北京)有限公司 | 计算机系统及其i/o端口访问控制方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5159900B2 (ja) | 2013-03-13 |
CY1111221T1 (el) | 2015-06-11 |
EP2174227B1 (en) | 2010-09-22 |
US7908403B2 (en) | 2011-03-15 |
PT2174227E (pt) | 2010-10-22 |
JP2011512585A (ja) | 2011-04-21 |
KR20100107484A (ko) | 2010-10-05 |
EP2174227A1 (en) | 2010-04-14 |
CN101946244A (zh) | 2011-01-12 |
US20090210583A1 (en) | 2009-08-20 |
PL2174227T3 (pl) | 2011-02-28 |
DE602009000227D1 (de) | 2010-11-04 |
SI2174227T1 (sl) | 2010-12-31 |
ATE482430T1 (de) | 2010-10-15 |
DK2174227T3 (da) | 2010-11-08 |
WO2009101050A1 (en) | 2009-08-20 |
ES2349376T3 (es) | 2010-12-30 |
KR101231555B1 (ko) | 2013-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101946244B (zh) | 降低保留设备的访问竞争的方法和设备 | |
US7937507B2 (en) | Extended measurement word determination at a channel subsystem of an I/O processing system | |
US8001298B2 (en) | Providing extended measurement data in an I/O processing system | |
CN100573485C (zh) | 促进处理环境的输入/输出处理的方法和系统 | |
CN101946242B (zh) | 一种提供间接数据寻址的方法和系统 | |
US7899944B2 (en) | Open exchange limiting in an I/O processing system | |
CN101946241B (zh) | 处理控制单元和通道子系统之间的通信的方法和装置 | |
CN100568203C (zh) | 利于处理环境的输入/输出处理的方法和系统 | |
CN101971154B (zh) | 用于确定输入/输出操作的状态的方法和系统 | |
US8082481B2 (en) | Multiple CRC insertion in an output data stream | |
US8495253B2 (en) | Bi-directional data transfer within a single I/O operation | |
CN102112974B (zh) | 传输控制通道程序处理 | |
US7840717B2 (en) | Processing a variable length device command word at a control unit in an I/O processing system | |
CN108182628A (zh) | 旅游下单的方法、系统、设备及存储介质 | |
CN108958903A (zh) | 嵌入式多核中央处理器任务调度方法与装置 | |
CN103645865B (zh) | 一种命令超时的处理方法 | |
CN104679447B (zh) | 磁盘控制方法及装置 | |
CN108958904A (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 |