CN102810081A - 光纤信道输入/输出数据路由系统和方法 - Google Patents
光纤信道输入/输出数据路由系统和方法 Download PDFInfo
- Publication number
- CN102810081A CN102810081A CN201210165857XA CN201210165857A CN102810081A CN 102810081 A CN102810081 A CN 102810081A CN 201210165857X A CN201210165857X A CN 201210165857XA CN 201210165857 A CN201210165857 A CN 201210165857A CN 102810081 A CN102810081 A CN 102810081A
- Authority
- CN
- China
- Prior art keywords
- data
- acw
- request
- channel
- hba
- 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.)
- Granted
Links
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
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
- G06F13/426—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
Abstract
本发明提供一种用于执行输入/输出(I/O)处理的计算机程序产品。所述计算机程序产品被配置为执行:在本地信道存储器中产生和存储至少一个地址控制字(ACW),其指定用于数据传输的一个或多个主机存储器位置,并包括数据丢弃字段;产生指定对应ACW的本地信道存储器位置的地址控制结构;从网络接口接收一个或多个数据传输请求,其各自对应于地址控制结构信息;访问ACW并将数据传输请求路由到ACW中指定的主机存储器位置;以及响应于在访问和路由中的至少一个期间遇到错误,丢弃所述一个或多个数据传输请求,并将数据丢弃字段设置为指示信道丢弃与该ACW关联的任何后续数据传输请求的值。
Description
技术领域
本公开一般涉及输入/输出处理,具体涉及在输入/输出处理期间促进信道子系统与网络接口之间的数据传输。
背景技术
输出/输出(I/O)操作被用于在主机计算机系统存储器与I/O处理系统的I/O设备之间传输数据。具体地,通过执行I/O操作,将数据从存储器写入到一个或多个I/O设备,并且将数据从一个或多个I/O设备读取到存储器。
为了促进I/O操作的处理,采用I/O处理系统的I/O子系统。I/O子系统被耦接(couple)到主存储器和I/O处理系统的I/O设备,并在存储器和I/O设备之间指引信息流。I/O子系统的一个示例是信道子系统。信道子系统使用信道路径(path)作为通信介质。每个信道路径包括耦接到控制单元的信道,所述控制单元还耦接到一个或多个I/O设备。
信道子系统可以采用信道命令字(CCW),以在I/O设备和存储器之间传输数据。CCW指定要被执行的命令。对于启动某些I/O操作的命令,CCW指定与操作关联的存储器区域、每当完成向该区域的传输或从该区域的传输完成时要进行的动作、以及其它选项。
信道子系统和I/O设备可以在传输模式中操作,该传输模式支持一个或多个命令控制块的传输,以在I/O设备和存储器之间传输数据。传输控制字(TCW)指定要被执行的一个或多个I/O命令。对于启动某些I/O操作的命令,TCW指定与操作关联的存储器区域、每当向该区域的传输或从该区域的传输完成时要进行的动作、以及其它选项。
一般地,主机计算机系统和信道子系统在经由主机总线适配器(HBA)的链路上连接到I/O设备。HBA连接到信道,所述信道包括包含信道微处理器和本地信道存储器的硬件,该本地信道存储器向HBA表现为主机系统。信道硬件将HBA与主机系统及其存储空间隔离。
发明内容
一个实施例包括一种用于在配置用于与控制单元通信的主机计算机系统中执行输入/输出(I/O)处理操作的计算机程序产品。所述计算机程序产品包括可由处理电路执行的有形存储介质,并且该有形存储介质存储用于所述处理电路执行的指令,用于执行一方法,该方法包括:在所述主机计算机系统中的信道子系统处获取有关I/O操作的信息,所述信道子系统包括具有信道处理器和本地信道存储器的至少一个信道;产生至少一个地址控制字(ACW),所述至少一个ACW指定一个或多个主机存储器位置,用于在所述主机计算机系统和所述控制单元之间传输数据,并且将所述至少一个ACW存储在所述本地信道存储器中,所述至少一个ACW包括数据丢弃字段;为由所述I/O操作指定的每个数据传输产生地址控制结构,并将每个地址控制结构从所述至少一个信道转发到所述信道子系统与至少一个I/O设备之间的网络接口,每个地址控制结构指定对应ACW在所述本地信道存储器中的位置;经由所述网络接口将I/O命令消息转发到所述至少一个I/O设备;响应于所述I/O命令消息,从所述网络接口接收一个或多个数据传输请求,每个数据传输请求包括对应地址控制结构指定的位置信息;访问数据传输请求中的地址字段指定的本地信道存储器位置处的ACW,并将所述数据传输请求路由到所述ACW中指定的主机存储器位置;以及响应于在所述访问和所述路由中的至少一个期间遇到错误,丢弃所述一个或多个数据传输请求,并将所述数据丢弃字段设置为指示所述信道丢弃与所述ACW关联的任何后续数据传输请求的值。
另一实施例包括一种在配置用于与控制单元通信的主机计算机系统中执行输入/输出(I/O)处理操作的方法。所述方法包括:在所述主机计算机系统中的信道子系统处获取有关I/O操作的信息,所述信道子系统包括具有信道处理器和本地信道存储器的至少一个信道;产生至少一个地址控制字(ACW),所述至少一个ACW指定一个或多个主机存储器位置,用于在所述主机计算机系统和所述控制单元之间传输数据,并且将所述至少一个ACW存储在所述本地信道存储器中,所述至少一个ACW包括数据丢弃字段;为由所述I/O操作指定的每个数据传输产生地址控制结构,并将每个地址控制结构从所述至少一个信道转发到所述信道子系统与至少一个I/O设备之间的网络接口,每个地址控制结构指定对应ACW在所述本地信道存储器中的位置;经由所述网络接口将I/O命令消息转发到所述至少一个I/O设备;响应于所述I/O命令消息,从所述网络接口接收一个或多个数据传输请求,每个数据传输请求包括对应地址控制结构指定的位置信息;访问数据传输请求中的地址字段指定的本地信道存储器位置处的ACW,并将所述数据传输请求路由到所述ACW中指定的主机存储器位置;以及响应于在所述访问和所述路由中的至少一个期间遇到错误,丢弃所述一个或多个数据传输请,求并将所述数据丢弃字段设置为指示所述信道丢弃与所述ACW关联的任何后续数据传输请求的值。
另一实施例包括一种在配置用于与控制单元通信的主机计算机系统中执行输入/输出(I/O)处理操作的装置,所述主机计算机系统包括信道子系统,所述信道子系统配置为经由网络接口与所述控制单元通信。所述信道子系统配置为执行:在所述主机计算机系统中的信道子系统处获取有关I/O操作的信息,所述信道子系统包括具有信道处理器和本地信道存储器的至少一个信道;产生至少一个地址控制字(ACW),所述至少一个ACW指定一个或多个主机存储器位置,用于在所述主机计算机系统和所述控制单元之间传输数据,并且将所述至少一个ACW存储在所述本地信道存储器中,所述至少一个ACW包括数据丢弃字段;为由所述I/O操作指定的每个数据传输产生地址控制结构,并将每个地址控制结构从所述至少一个信道转发到所述信道子系统与至少一个I/O设备之间的网络接口,每个地址控制结构指定对应ACW在所述本地信道存储器中的位置;经由所述网络接口将I/O命令消息转发到所述至少一个I/O设备;响应于所述I/O命令消息,从所述网络接口接收一个或多个数据传输请求,每个数据传输请求包括对应地址控制结构指定的位置信息;访问数据传输请求中的地址字段指定的本地信道存储器位置处的ACW,并将所述数据传输请求路由到所述ACW中指定的主机存储器位置;以及响应于在所述访问和所述路由中的至少一个期间遇到错误,丢弃所述一个或多个数据传输请求,并将所述数据丢弃字段设置为指示所述信道丢弃与所述ACW关联的任何后续数据传输请求的值。
本领域的技术人员在阅读了以下附图和详细说明之后,根据实施例的其它装置、方法和/或计算机程序产品将变得明显。所有这样的附加系统、方法和/或计算机程序产品意在被包含在该说明中、包含在本发明的范围中、以及由所附权利要求保护。
附图说明
在本说明书的结尾处,在权利要求中具体地指出且清楚地主张了被认作本发明的主题。根据以下结合附图的详细说明,本发明的上述以及其它目的、特征和优点是显然的。在所述附图中:
图1描绘了合并和使用本发明的一个或多个方面的I/O处理系统的一个实施例;
图2描绘了主机计算机系统产生的、用于传输模式I/O操作的示例控制块;
图3描绘了包括连接到信道子系统的主机总线适配器(HBA)的I/O处理系统的现有技术的构造;
图4描绘了包括连接到信道子系统的主机总线适配器(HBA)的I/O处理系统的一个实施例;
图5描绘了用于地址控制结构的地址字段的实施例;
图6描绘了在传输模式I/O操作期间在信道和控制单元之间传送的各种消息的示例;
图7是描绘在I/O操作期间经由信道数据路由器和HBA处理数据传输的示例方法的流程图;
图8描绘了图7的数据路由器所使用的信道本地存储器区域的实施例;
图9A-9B(一起称为图9)是描绘通过图7的数据路由器的逻辑组件的数据流的框图;
图10描绘了地址控制字(ACW)的一个实施例;
图11描绘了图10的ACW的实施例;
图12描绘了图10的ACW的实施例;
图13描绘了图10的ACW的实施例;
图14描绘了图10的ACW的实施例;以及
图15描绘了用于地址控制结构的地址字段的实施例。
详细的描述通过参照附图的示例说明了本发明的优选实施例以及优点和特征。
具体实施方式
根据本发明的一个方面,促进了输入/输出(I/O)处理。例如,通过在信道子系统的信道中提供数据路由器而促进I/O处理,信道子系统在I/O处理期间允许连接到该信道的主机总线适配器(HBA)直接访问主机计算机中的主机存储器,而不需要将输入或输出数据存储在该信道中。相比于现有技术的信道存储和转发设计,此结构提供信道I/O开始速率的大大提高(例如,2倍)以及每个I/O操作的响应时间的降低,在现有技术中,主机计算机与HBA之间的所有事务由信道微处理器检查、转换和转发。
例如,信道配备有数据路由器硬件,其被配置为向HBA产生和提供一个或多个地址控制结构,信道通过地址控制结构告知HBA分配给该HBA的本地信道存储器区域。为了允许HBA寻址主机存储器中的多个地址空间,每个地址控制结构包括关于本地信道存储器中的包括主机存储器地址的位置的信息。在一个实施例中,一个或多个地址控制结构包括地址(例如64比特PCIe地址),该地址包括指定对应地址命令字(ACW)的本地信道存储器地址的字段。例如,地址控制结构包括ACW索引字段,其包括对本地信道存储器中的ACW的连续块的索引。
在一个实施例中,提供了当HBA在I/O操作期间直接寻址主机存储器时检查HBA的系统和方法。例如,ACW提供数据路由器提供检查对主机存储器具有直接访问的设备所需的数据层的能力,以及将失败的HBA与主机计算机隔离的能力。例如,地址控制结构和关联的ACW包括确认(validation)和偏移字段,当接收到HBA数据传输请求时,数据路由器检查这些字段。
在一个实施例中,提供了向HBA和主机存储器之间的存储器请求插入首标或从该存储器请求移除首标的系统和方法。在现有技术系统中,信道可以从HBA读请求接收首标信息并将其存储到本地信道存储器中,或者响应于HBA写请求产生首标并将首标附接到输出数据。这里所描述的实施例允许信道(经由数据路由器硬件)将读请求首标存储在本地信道存储器中,而输入数据被直接存储在主机存储器中,并且还产生和附接首标到已经由HBA写请求直接从主机存储器取得的输出数据。例如,为HBA读请求提供读ACW,并为HBA写请求提供写ACW。读ACW被用于存储与输入数据一起接收的首标信息,写ACW被用于存储用于产生首标并将该首标附接到输出数据的首标信息。
在一个实施例中,提供了在I/O操作期间在HBA与主机存储器之间直接数据传输期间向输出数据中插入校验字段并检查输入数据的系统和方法,以提供用于检测传输的数据是否已被破坏的手段。在现有技术系统中,对于写(输出)操作,信道利用存储在本地信道存储器中的用户输出数据设置数据校验字。对于读(输入)操作,信道将输入数据和数据校验字存储在本地信道存储器中,并执行数据的检查。数据校验字的示例包括循环冗余校验(CRC)字、纵向冗余校验(LRC)字,以及校验和数据。在这里所述的实施例中,信道数据路由器硬件使用ACW插入和/或检查数据校验字(在此情况中,数据校验字被存储在本地信道存储器中,或者从本地信道存储器产生数据校验字,而用户数据(即输入或输出数据)在主机存储器与HBA之间直接传输)。
例如,数据路由器使用发送到HBA的地址(例如,划分PCIe地址)来引用ACW,该ACW包括从其存储或产生数据校验字的一个或多个位置。地址中诸如ACW索引字段的字段被用于引用ACW,该ACW包括数据校验字的初始值或“开始种子”以及保存中间数据校验字和状态的位置。在一个实施例中,如果间接数据寻址被用在I/O操作中,则ACW还包括关联的传输间接数据地址字(TIDAW),其提供主机存储器地址、计数以及在输出数据上哪里插入中间数据校验字和最终数据校验字的控制信息。对于进入数据(如果指定了),TIDAW提供主机存储器地址、计数和标记比特,该标记比特告知硬件存储还是丢弃数据。
在一个实施例中,该系统和方法提供了在乱序地接收到HBA读请求时数据路由器确定如何将用户数据存储到主机存储器中的能力。此外,数据路由器具有检测错过或丢失的中间数据的能力。输入和输出数据应以被传送的顺序存储在主机存储器中,以便合适地计算数据校验字。在一个实施例中,用于I/O操作的地址控制结构(诸如读或写地址控制结构)包括偏移字段,对于发送到信道用于I/O操作的每个HBA传输请求,该偏移字段递增。对应的ACW包括下一预期的偏移字段,将该下一预期的偏移字段与关联于地址控制结构的每个HBA传输请求中的偏移字段进行比较。如果这些字段的值不匹配,则例如将接收的HBA请求入队在HBA接收请求的底部。
在一个实施例中,提供了用于结束正经由HBA执行的多个I/O操作(在此期间HBA直接访问主机存储器)之一而不初始化HBA的系统和方法。在某些实例中,I/O操作将遇到主机存储器异常,并且如果多个I/O操作正在主机计算机上执行,则期望仅结束发生异常的I/O操作。此实施例仅允许导致异常被结束的操作,从而HBA不被初始化(这将导致正经由HBA执行的所有I/O操作被结束)。
在此实施例中,用于数据传输的ACW可以包括读丢弃比特(Read DiscardBit)、写丢弃比特(Write Drop bit)或固件读丢弃比特,其指示是否发生主机存储器异常。如果所有这些比特都是0,则数据路由器将HBA请求处理为主机存储器请求用于数据传输。如果从主机存储器请求返回异常,则将异常原因存储到关联的ACW中,并将写丢弃比特或读丢弃比特设置为1。例如,如果I/O操作是写,则用信号通知HBA异常中断接收到获取存储异常的I/O操作。在ACW中将写丢弃比特设置为1,这将导致如果HBA作出针对该I/O操作的新请求,则用信号通知HBA再次异常中断I/O操作。如果I/O操作是读,则接收到关于主机存储器存储请求的存储异常使得ACW中的读丢弃比特被设置为1。从HBA接收的针对该I/O操作的所有后续数据将被丢弃。
图1示出了包括主机计算机系统102的I/O处理系统100的示例实施例,该主机计算机系统102包括数据储存和/或处理系统,诸如国际商业机器公司的(z系列)大型机。IBM(位于美国纽约的Armonk)是国际商业机器公司的注册商标。这里使用的其它名称也可能是国际商业机器公司或其它公司的注册商标、商标或产品名称。主机计算机系统102包括各种处理、存储和通信部件。在一个实施例中,主机计算机系统102包括一个或多个中央处理单元(CPU)104、诸如主储存器或存储器106的存储组件(例如,Zseries存储器)、和/或扩展储存器或存储器108(一起称为“主机存储器”)。系统102还包括一个或多个操作系统(OS)110,其由一个或多个CPU 104执行。例如,一个CPU 104可以执行操作系统110和/或操作系统110,作为不同的虚拟机实例。CPU 104是I/O处理系统100的控制中心。其包含序列和处理工具(facility),用于指令执行、中断动作、定时功能、初始程序加载以及其它与机器相关的功能。CPU 104经由连接113(诸如双向或单向总线)耦接到主存储器106和/或扩展存储器108。
主机计算机系统102还包括信道子系统114,其在主机计算机系统102与各种I/O设备116之间提供通信接口,I/O设备116可以由一个或多个控制单元118控制。I/O设备包括诸如以下的设备:打印机、磁带单元、直接访问存储设备、显示器、键盘、通信控制器、远程处理设备、以及基于传感器的设备。信道子系统114在I/O设备116与主机计算机系统102之间指引信息流。其使CPU 104脱离直接与I/O设备116通信的任务,并允许数据处理与I/O处理并行地进行。信道子系统114经由连接120(诸如总线)耦接到CPU104、主存储器106和/或扩展存储器108。
在一个实施例中,信道子系统114经由相应的“信道路径”122连接到每个I/O设备116,所述“信道路径”122经由连接124(诸如串行或并行链路)将信道子系统114连接到每个控制单元118。控制单元118可以经由超过一个信道路径122附接(attach)到信道子系统114,并且I/O设备116可以附接到超过一个控制单元118。总体上,单独(individual)I/O设备116可以被多个信道路径访问。信道路径可以使用各种类型的连接,诸如并行接口、串行I/O接口和FICON I/O接口。例如,串行信道路径可以包括一个或多个光纤,其经由例如光纤信道结构中的动态开关126连接到控制单元118,并行接口可以包括多个电导体。ANSI标准文献“Fibre Channel-Single-ByteCommand Code Sets Mapping Protocol-4(FC-SB-4)”(2000年9月22日,T11项目2122-D,版本3.00)中描述了FICON I/O接口,通过引用将其全文合并到这里。
在一个实施例中,信道子系统114包括一个或多个单独信道128,其各自经由一个或多个信道路径122连接到一个或多个控制单元118和/或I/O设备116。每个信道128包括处理电子装置,诸如本地信道微处理器130和连接到本地信道微处理器130并可以由其访问的本地信道存储器132。本地信道存储器132可以包括诸如信道程序指定、信道路径识别符、设备号、设备计数、状态指示的信息、以及有关路径可用性和等待执行(pending)或正在执行的功能的信息。
也位于每个信道128内的是一个或多个子信道。每个子信道是位于信道存储器132内的数据结构,其提供有关关联的I/O设备116和其对信道子系统的附接的信息。子信道还提供有关I/O操作和涉及关联的I/O设备116的其它功能的信息。子信道是信道子系统114向CPU 104提供有关关联的I/O设备116的信息的手段。连接到多个控制单元122或多个I/O设备116的信道128可以具有多个子信道,每个子信道专用于单个I/O设备116。在一个实施例中,信道子系统提供的子信道数目与去往关联的I/O设备116的信道路径122的数目无关。例如,可通过替代信道路径122访问的设备116仍然由单个子信道表示。
每个控制单元118提供逻辑,以操作和控制一个或多个I/O设备116,并通过使用公共工具将每个I/O设备116的特性适配到信道128提供的链路接口。公共工具提供I/O操作的执行、关于I/O设备116和控制单元118的状态的指示、信道路径122上的数据传输的定时的控制、以及某些层的I/O设备控制。控制单元118可以被分别封装(house),或者可以物理和逻辑地与I/O设备、信道子系统或CPU集成。
I/O操作被描述为涉及主机计算机系统102与I/O设备116之间的数据传输的任何操作。如这里所描述的,I/O操作包括信道子系统114与设备116之间的通信(在一个实施例中,经由控制单元118),在该通信中,单个命令(例如信道命令字或CCW)、包括多个命令的单个命令消息(例如,传输传输命令控制块(TCCB)的传输命令信息)、或多个链化(chained)命令(例如,多个CCW)被从信道子系统114发送到设备。I/O操作也可以包括设备116和关联的控制单元118响应于接收和/或执行命令或链化命令而产生的一个或多个响应消息。
在一个实施例中,通过执行OS 110产生的、指定与设备116关联的子信道的I/O指令而以设备116启动I/O操作。在主机系统中由CPU 104通过向信道的子信道发送参数而执行这种指令,该信道的子信道请求信道子系统114通过某一信道128执行I/O操作中的各种功能。
例如,CPU 104通过将参数传递到目标子信道而执行“开始子信道(START SUBCHANNEL)”指令,该目标子信道请求信道子系统114利用与该子信道关联的I/O设备116执行开始功能。信道子系统114通过使用子信道中的信息(该信息包括在“开始子信道”指令的执行期间传递的信息)执行开始功能,以找到设备116可访问的信道路径,并且在信道路径已被选择时执行I/O操作。
当诸如“开始信道”指令的指令被CPU 104执行时,信道128开始执行I/O操作。在一个实施例中,信道子系统114在光纤信道协议(诸如高性能FICON(HPF))之下操作,用于信道子系统114与设备116和/或控制单元118之间的通信。“Fibre Channel:Single-Byte Command Code Sets MappingProtocol-4(FC-SB-4)”(2000年9月22日,T11项目2122-D,版本3.00)中进一步描述了FICON和HPF及其阶段,通过引用将其全文合并到这里。
在一个实施例中,“开始子信道”指令的执行将操作请求块(ORB)的内容传递给信道子系统114。ORB指定包括一个或多个命令字(例如,下面进一步描述的信道命令字或传输命令字)的地址的信道程序。存在两个模式的子信道操作。在一个实施例中,主机计算机系统102以命令模式操作,并指定信道命令字(CCW)形式的命令字。在另一实施例中,主机系统以传输模式操作,并指定传输命令字(TCW)形式的命令字。
当安装了FCX(光纤信道扩展)工具,并且由于“开始子信道”指令的执行而在子信道中设置了开始功能时,子信道可以进入传输模式,所述“开始子信道”指令指定TCW信道程序。子信道保持传输模式,直到在该子信道处重置(reset)开始功能为止。在所有其它时间,子信道在命令模式中。
在命令模式中,信道执行CCW信道程序,其包括单个信道命令字或顺序执行的控制信道操作的特定序列的信道命令字的序列。控制单元通过由I/O设备解码、接受和执行CCW命令而执行CCW I/O操作。布置用于序列执行的一个或多个CCW形成CCW信道程序,并被分别作为一个或多个I/O操作而执行。
光纤信道扩展(FCX)工具是规定传输模式信道程序的构成的可选工具,所述传输模式信道程序由传输控制字(TCW)构成,传输控制字指定传输命令控制块(TCCB)和传输状态块(TSB)。TCCB包括传输命令区域(TCA),其包含一个或多个(例如高达30)个I/O命令的列表,该I/O命令为设备命令字(DCW)的形式。TCW及其TCCB可以指定读或写操作之一。在一个实施例中,FCX双向数据传输工具可以被安装在支持传输模式操作的系统中,如果连接的设备116和控制设备118支持双向数据传输,则其允许主机计算机系统102在单个传输模式I/O操作中指定输入和输出数据两者的传输。当控制单元118识别出双向数据传输时,TCW及其TCCB可以取决于设备而指定读数据和写数据传输两者。
在传输模式中,单个传输命令字(TCW)指定TCCB的存储器中的位置(以及一个或多个数据区域的存储器106中的位置),该TCCB在命令模式中被在单个消息而不是分离的单独CCW中发送。控制单元118通过解码、接受和执行TCCB以及包含在其中的单独DCW而执行传输模式I/O操作。如果ORB指定TCW信道程序,则信道子系统114使用所指定的TCW中的信息,将TCCB传输到控制单元118。TCCB的内容在TCC被传输到控制单元118之后被信道子系统114忽略,并且仅对控制单元118和关联的I/O设备116有意义。
在示例实施例中,控制单元118响应于对信道程序的执行而产生响应消息。在有限的通信情形中,控制单元118也可以在不执行信道程序的情况下产生响应消息,例如,用以告知信道子系统114将不执行信道程序。控制单元118可以包括多个部件,以支持I/O通信适配器与I/O设备之间的通信,以及支持信道程序执行。例如,在促进通信和状态监视的一个或多个队列、定时器和计数器之外,控制单元118还可以包括用以解析和处理消息的控制逻辑。
图2示出了主机存储器中设置的示例控制块,所述示例控制块是在OS软件执行将“开始子信道”消息传递给信道子系统114中的I/O处理器(IOP)用于HPF I/O操作的指令(例如,“开始子信道”指令)之前通过软件设置的。这些控制块以及I/O处理系统100的上述组件中的一个或多个的架构被进一步描述在“z/Architecture Principles of Operation”(出版号SA22-7832-8,第9版,2010年8月)中,通过引用将其全部内容合并到这里。
如图2中所示,“开始子信道”消息140被传递到信道子系统114,信道子系统指定子信道142、TCW144以及传输状态块(TSB)146。TCW包含TCCB 148、指定用于I/O操作的读数据的位置150、和/或指定用于I/O操作的写数据的位置152在主机存储器中的地址。TCCB 148和位置150和152可以被直接寻址或者被例如通过传输间接数据地址列表(TIDAL)153间接寻址。
图3示出了主机系统102、信道子系统114和控制单元118之间的通信链路的现有技术构造的实施例。信道128经由信道微处理器130与主机CPU通信,并被配置为在主机存储器和本地信道存储器132之间传输数据,例如用于检索(retrieve)TCCB 148或TCCB 148的组件。网络或链路接口(诸如(主机总线适配器(HBA))154经由例如PCIe总线155连接到信道128。HBA 154例如经由控制单元HBA 156协调信道128与控制单元118之间的信息流。在此实施例中,HBA 154与信道128通信,并且仅对本地信道存储器132有访问权。因此,HBA 154与主机计算机和主机存储器隔离。发送到HBA 154或从HBA 154发送的数据被存储在本地信道存储器132中,或从本地信道存储器132中获取。该隔离被用于主机存储器与控制单元118之间传输的数据的错误检查。该隔离的性能代价为:所有用户数据流过该隔离硬件作为存储,并通过本地信道存储器132转发。
图4示出了允许隔离用于错误检查并同时允许HBA 154直接访问主机存储器而不需要在信道的本地存储器132中存储输入或输出数据的通信链路的实施例。与图3的构造不同,信道128包括微处理器以及数据路由器160。在一个实施例中,数据路由器160是高性能光纤信道数据路由器(HPF-DR),其支持FC-SB-4(也被称为HPF)协议。数据路由器60允许HBA 154直接访问主机存储器,而不需要将每个I/O操作所需要的输入或输出数据(即用户数据)存储在本地信道存储器132中。在一个实施例中,数据路由器160包括数据路由器硬件162和本地信道存储器区域164,在本地信道存储器区域164中设置了状态信息用于数据路由器处理HBA数据传输请求。如这里所描述的,“HBA数据传输请求”包括从HBA 154向信道128的、请求从主机存储器向控制单元118的输出数据(即,写或获取数据)的传输的任何通信(例如,“HBA写请求”或“HBA获取请求”),或者请求从控制单元118向主机存储器的输入数据(即读或存储数据)的传输的任何通信(例如,“HBA读请求”或“HBA存储请求”)。此外,在一个实施例中,本地信道存储器132包括区域166(例如在4个旋转线(gig line)之前),其被分配给HBA 154,并可由HBA 154访问,HBA被用于处理本地信道请求和操作。
在从主机接收I/O指令和ORB之后,且在执行I/O操作和将I/O操作发送到HBA 154之前,信道128设置一个或多个地址控制结构以及关联的地址控制字(ACW),其被用于向主机计算机102产生主机存储器请求,以及允许HBA 154直接访问主机存储器。ACW和数据控制结构还提供数据路由器160可以向或从HBA 154发送的HBA数据传输请求附加或存储首标的方法,并且还提供用于在不将输入或输出数据存储在本地信道存储器132中的情况下检查HBA请求的错误的方法。
例如,在开始子信道消息140被传递到信道128(例如,经由信道子系统114中的I/O处理器)之后,运行固件的信道微处理器130接收开始子信道消息140,以从和向设备116以及向和从主机存储器读取和/或写入数据。信道128使用开始子信道消息140中的信息来获取子信道142。在子信道142中是信道固件使用来获取TCW 144的主机存储器地址。信道128使用来自开始子信道消息140的信息、子信道142和TCW 144,以设置各个ACW。每个ACW是数据路由器160使用来将HBA数据传输请求路由到TCW 144中指定的主机存储器地址的控制块。可以设置多个ACW,包括用于读命令的一个ACW,其包括用于存储输入数据的至少一个主机存储器地址;用于写命令的一个ACW,其包括用于输出数据的至少一个主机存储器地址;用于组装I/O命令消息(诸如包括TCCB 148的传输命令信息单元(IU))的ACW;以及用于接收和存储状态信息的ACW。
与设置ACW一起,信道128根据TCW 144中的信息为每个ACW设置“地址控制结构”,并在HBA 154被告知I/O操作之前将地址控制结构通过本地信道存储器132传递到HBA 154(例如,经由本地信道存储器HBA的工作队列)。多个地址控制结构被传递到HBA 154,并被HBA 154用于向或从主机存储器获取或存储信息。地址控制结构允许HBA 154寻址多个地址空间,同时还允许数据路由器硬件检查所存储或获取的数据的错误。例如,一个地址控制结构被用于获取构成命令消息(例如,传输命令IU)的信息,一个被用于在I/O操作完成时存储来自控制单元响应(例如,传输状态IU)的结束状态,并且多个“数据地址控制结构”可以被HBA 154用于传输输入或输出数据。例如,一个“读地址控制结构”被用于从设备116向主机存储器传输的每个8兆字节的读数据,并且一个“写地址控制结构”被用于从主机存储器请求的每个8兆字节的数据。如果I/O操作仅在一个方向上传输数据,则仅需要读或写地址控制结构。
每个地址控制结构包括向HBA 154发送的地址,其被HBA用于创建对信道128的请求。该地址被HBA 154看作单个地址,但该地址可用于引用主机存储器中的多个地址空间。示例地址控制结构各自包括64比特的PCIe地址、数据字节计数、方向比特和控制信息。例如,每个地址控制结构包括要被地址控制结构传输的数据量的数据字节计数以及控制比特,控制比特告知HBA 154数据要传输的方向以及需要多少地址控制结构来传输该数据。
图5示例了示例地址控制结构170的地址字段172的实施例。在此示例中,地址字段172包括64比特的PCIe地址,但并不限于此。地址字段172包括控制(CTL)字段174(例如地址172的字节2),其指示是否将HBA请求路由到本地信道存储器以被信道128内部处理,或者是否经由数据路由器160处理和路由HBA请求到主机存储器。例如,如果地址字段172包括被设置为0的CTL字段174,则数据路由器160将该请求路由到本地信道存储器区域166。然而,如果CTL字段174被设置为选择的值(例如,0x02),则地址172被配置为允许HBA 154经由数据路由器硬件寻址主机存储器。在此结构中,地址172(在图5的行3中示出)被划分为四个字段:ACW索引字段176(例如,字节0和1)、CTL字段174(例如,字节2)、确认字段178(例如,字节3和4)、以及偏移(Offset)字段180(例如,字节5-7)。在一个实施例中,ACW索引字段176是对本地信道存储器区域164中的ACW的连续(contiguous)块的索引,并且被数据路由器硬件使用来定位用于关联的HBA请求的ACW以及寻址控制结构。对于本地信道存储器区域164中定义的每个ACW,确认字段178(例如,16比特字段)被设置为唯一值。
在信道128设置了用于I/O操作的ACW和地址控制结构170之后,信道128告知HBA 154等待处理的I/O操作,并发送执行该I/O操作所需要的对应地址控制结构170。
图6示出了在I/O操作期间在信道128与控制单元118之间传送的各种消息。在信道微处理器130已经利用需要的信息设置了数据路由器160之后,HBA 154获取并存储各种信息单元(IU)。传输命令IU 182包括TCCB 148和首标信息,并被在信道路径122上发送到控制单元118。在I/O操作的执行期间,包括读传输数据IU 184和/或写传输数据IU 186的数据IU被传送,以发送输入和/或输出数据。在一个实施例中,每个数据UI,取决于其尺寸,可以被作为一个或多个帧188而发送。帧188是在链路或信道路径上在链路封包(wrapper)内传送的数据的单元或分组,并且具有取决于链路架构的最大尺寸。在I/O操作结束时,从控制单元118发送指示操作的传输状态(例如,完成或异常中断)的传输状态IU 190。通常,分别在链路上利用一个帧传送传输命令IU 182和传输状态IU 190。在一个实施例中,IU的每个帧需要来自HBA 154的至少一个HBA请求(例如,PCIe请求)。
在一个实施例中,IU包括一个或多个数据校验字192(例如CRC),其位于IU的末端或靠近末端。例如,用于传输命令IU 182的数据校验字192是从IU的末端起的1或2个字。写传输数据IU 182可以具有多个中间数据校验字192,每个检查写传输数据IU 182的一部分。传输状态IU 190具有用于IU首标的数据校验字192和用于传输状态的数据校验字192。
图7、8和9示出了执行I/O操作的方法200的实施例。该方法包括一个或多个阶段(stage)201-206。在一个实施例中,该方法包括以所描述的顺序对所有阶段201-206的执行。然而,可以省略某些阶段,可以添加阶段,或者可以改变阶段的顺序。
在第一阶段201中,信道128从主机CPU 104接收指令消息140和ORB,获取子信道142,并接着获取TCW 144和其它需要的数据。
在第二阶段202中,信道128或数据路由器160产生地址控制结构170和对应的ACW 210(图8中所示)。示例控制结构170和ACW 210(将在下面参照图10-15对其进一步说明)包括:传输命令ACW和对应于传输命令IU 182的传输命令地址控制结构,传输读数据ACW和对应于一个或多个读传输数据IU 184或帧的一个或多个传输读数据地址控制结构,传输写数据ACW和对应于一个或多个写传输数据IU 186或帧的一个或多个传输写数据地址控制结构,以及传输状态ACW和对应于传输状态IU 190的传输结束状态地址控制结构。数据路由器160将地址控制结构170传送到HBA 154。ACW210的列表212被组装在本地信道存储器区域164中。
图8示出了包括存储在本地地址存储器区域164中的ACW 210的数据路由器160的构造。在一个实施例中,存储器区域164是位于本地信道存储器132中选择的边界(例如1太字节(terabyte)边界)上方的HBA地址空间,所述本地信道存储器132保存用于寻址主机存储器的ACW 210的列表212。在一个实施例中,列表212是连续ACW的列表。ACW源点寄存器214是ACW 210的列表212的起始地址。来自数据控制结构中的ACW索引字段176的ACW索引176被加到ACW源点214上,以产生本地地址,对应ACW位于本地信道存储器区域164中所述本地地址处。ACW限制寄存器216是ACW210的列表212的结束地址。当ACW索引176被加到ACW源点上以获取ACW时,该结果不能大于ACW限制减去ACW大小。
在第三阶段203中,在HBA 154处组装传输命令IU 182,用于向控制单元118传送。HBA 154使用传输命令地址控制结构,通过将HBA获取请求发送到数据路由器160而启动从主机存储器获取TCCB 148。在一个实施例中,向或从HBA发送的请求由高速PCI(PCIe)协议控制,不过也可以使用其它协议。
在第四阶段204中,HBA获取请求到达数据路由器160,其由接收逻辑220接收,接收逻辑220将从HBA 154发送的比特转换为数据分组,并且路由逻辑222基于每个分组中的HBA地址172而路由该HBA获取请求。
例如,具有指定本地存储器区域(例如,低于240)的地址的所有HBA请求被路由到信道微处理器224和逻辑信道存储器166,并被内部处理为本地信道存储器请求。在一个实施例中,每当PCIe总线是64比特寻址模式并且CTL字段174是0x00时,或者当PCIe操作是32比特模式时,BHA请求被路由到本地信道存储器。这允许HBA 154直接访问HBA 154具有访问权的本地信道存储器区域。HBA 154未被给予对其中保存了ACW 210的本地信道存储器区域164的直接访问权。
具有存储器区域164中的地址(例如,大于240)的所有请求被路由到获取阵列队列226或者存储阵列队列228,以被数据路由器160处理。从接收逻辑220接收的整个数据分组(首标和数据)被保存为这两个阵列任一中的条目。获取阵列队列226和存储阵列队列228分别位于数据路由器获取硬件230和数据路由器存储硬件232中,数据路由器获取硬件230和数据路由器存储硬件232将来自这些队列的HBA请求处理为主机存储器请求,主机存储器请求被传输到主机存储器。
在第五阶段205中,处理逻辑234对逻辑信道存储器164中的信道请求和队列226和228中的HBA请求队列化和优先排序,并将请求分组处理为主机存储器分组。
处理逻辑234采用HBA请求分组中的(来自传输命令地址数据控制结构的)HBA地址的ACW索引字段176,对以ACW源点寄存器214为起点的ACW的设置的ACW 210的列表进行索引,以获取对应于HBA地址170的ACW。在此示例中,期望的ACW是传输命令ACW。例如,处理逻辑234取得ACW索引值,并将其加到ACW源点寄存器214上,以产生处理逻辑234获取ACW的本地信道存储器地址。基于ACW中的存储器地址字段,处理逻辑234产生主机存储器请求,其被从传送逻辑236发送到主机存储器(经由例如主机存储器接口238),指示从其传输数据或向其存储数据的存储器地址。来自ACW的附加信息(包括区(Zone)ID、密钥(Key)值和数据长度)也可以被用于产生主机存储器请求。
在此实施例中,ACW的存储器地址字段中的地址是TCCB 148的位置或多个位置。如果在ACW中未使能间接数据寻址,则主机存储器地址是整个TCCB 148的地址。如果在ACW中使能了间接数据寻址,则数据路由器160从主机存储器地址获取传输间接数据地址字(TIDAW),并接着使用TIDAW中的地址作为主机存储器地址。
在一个实施例中,如果ACW中的值指示正在使用间接数据地址(例如图10中所示的HPF-DR控制258的比特17是0),则指定TIDAW。TIDAW包括地址和计数两者。TIDAW中的TIDAW数据地址字段被用于为TIDAW中指定的字节数的数据而寻址主机存储器位置。示例TIDAW包括四个字,包括具有标记字段的第一字、指定要利用该TIDAW传输的字节数的计数字段、TIDAW数据地址高字和TIDAW数据地址低字。以下标记可以被包括在标记字段中:
比特0—最后的TIDAW:此标记比特设置为1告知数据路由器硬件这是该TIDAL中可用于此操作的最后一个TIDAW。如果当前TIDAW的标记比特0‘最后TIDAW’不是活动的,则当当前TIDAW中的字节计数转变为0并且ACW的工作计数未转换为0时,数据路由器硬件将使用TIDAL中的下一TIDAW来寻址主机存储器而继续数据传输。
比特1—读取跳过:该标记比特设置为1告知数据路由器硬件根据(per)该TIDAW的字节计数字段丢弃正从设备接收的数据。然而,当丢弃数据时继续计算数据校验字。如果I/O操作是写,则忽略此标记比特。
比特2—数据传输中断:该比特使得数据路由器硬件在HPF-DR响应字254中设置TIDAW格式校验比特10,并且当HPF-DR硬件尝试使用此TIDAW时结束I/O操作。
比特3—T-TIC:该标记比特设置为1告知数据路由器硬件此TIDAW中的地址不被用于数据,而是用于新TIDAL的起始的主机存储器地址,该新TIDAL必须被从主机存储器中获取,以检索用于此I/O操作的下一TIDAW;以及
比特4—插入填充(PAD)&&数据校验字:该标记比特设置为1告知数据路由器硬件插入填充字节直到下一字边界(如果不在字边界上),并接着插入计算的数据校验字的当前值。在此TIDAW条目指定的数据字节计数已被传送并且标记比特0(最后的TIDAW)不被设置为1之后,插入填充字节(如果存在)和数据校验字。当前ACW数据校验字接着被再做种子(reseed),回到ACW中的数据校验字的种子。
在第六阶段206中,数据路由器160经由主机存储器接收逻辑240接收主机存储器响应,在此实施例中其包括TCCB 148。在其它实施例中,取决于主机存储器请求,主机存储器响应可以包括用于写命令的输出数据或用于读命令的状态消息。路由逻辑242将主机存储器响应路由到数据缓冲器和逻辑246。数据缓冲器和逻辑246将来自传输命令ACW(即来自IU首标字段)的IU首标信息与TCCB 148合并在响应分组中,可以经由与HBA 154接口的外送(outbound)逻辑244将该响应分组返回到HBA 154。对于包括多个输出数据请求的I/O操作,数据缓冲器246可以累积来自多个请求的数据,以产生返回到HBA 154的完整响应分组。
如上所述,在I/O操作的执行期间,可以在HBA 154和控制单元118之间传送传输数据IU。为了执行写命令,HBA 154请求用以组装写传输数据IU186的信息,包括来自主机存储器(其地址由写ACW的存储器地址字段指定)的输出数据以及从写ACW检索的IU首标信息。为了执行读命令,HBA将来自读传输数据IU 184的输入数据存储到读ACW的存储器地址字段中指定的主机存储器地址中,并将来自读传输数据IU 184的IU首标信息存储到读ACW。
例如,HBA 154接收读传输数据IU 184并产生被发送到信道128的一个或多个HBA读请求,以将输入数据存储到主机存储器中。每个读请求包括来自对应读数据地址控制结构的地址字段172。HBA读请求由接收逻辑220接收,并且路由逻辑222将HBA读请求路由到存储阵列队列228。地址字段172的ACW索引字段176被用于索引上述的ACW 201的列表,并获取读ACW。读传输数据IU首标信息被存储在读数据ACW中,并且主机存储器读请求被发送到主机存储器,以请求输入数据在读数据ACW指定的地址中存储。
在一个实施例中,可能花费多个主机存储器读请求来存储一个HBA读请求。例如,如果每个主机存储器读请求是256字节,并HBA读请求是2048字节,则花费8个主机存储器读请求来存储一个HBA读请求。在此实施例中,将主机存储器读响应从主机存储器接口238返回到数据路由器硬件,数据路由器硬件将每个响应与所进行的每个读请求相关。
在另一实施例中,HBA 154可以向控制单元118发送写传输数据IU 186。在一个实施例中,除非传输就绪(Transport Ready)失效(disabled),否则信道128需要在发送每个写传输数据IU 186之前从控制单元118发送传输就绪(ransfer-ready)IU。控制单元118可以通过发送附加的传输就绪IU而请求附加的数据,直到其已经请求了TCCB 148指定的所有数据为止。
如果传输就绪失效(其允许HBA 154在设备116不要求数据IU的情况下向设备116发送数据的IU),则HBA 154启动对数据路由器160的HBA写请求。HBA 154使用来自每个写数据地址控制结构的地址字段172来发送每个HBA写请求,以启动从主机存储器获取数据。由路由逻辑222接收每个HBA写请求,路由逻辑222将每个HBA写请求路由到获取阵列队列226中。来自地址字段172的ACW索引字段被用于从本地信道存储器区域164获取写数据ACW。一个或多个主机存储器写请求被用于请求输出数据,从主机存储器写响应中的主机存储器接收该输出数据,并且通过到HBA 154的路由逻辑242和数据缓冲器246将该输出数据发送到HBA 154。如果需要多个主机存储器写请求来处理一个HBA写请求,则参照上述读请求所描述地处理每个主机存储器写请求。
在一个实施例中,当设备116通过向HBA 154发送传输状态IU 190而结束I/O操作时,HBA 154使用传输结束状态地址控制结构来发送HBA存储请求,以启动将结束状态存储到主机存储器中。数据路由器160使用HBA存储请求获取传输状态ACW,并将结束状态首标存储在状态ACW的IU首标区域中,并将主机存储器存储请求发送到主机存储器,以将扩展的状态存储在状态ACW中指定的地址中。在HBA 154已经完成了I/O操作之后,HBA 154产生具有完成状态的HBA请求,其被路由和存储在本地信道存储器132中,并且I/O操作的控制被返回到信道128的固件。
当HBA将I/O操作返回到信道微处理器固件时,在获取阵列队列中没有获取请求在排队,因为当被请求的数据返回到HBA 154时,HBA 154知道它们何时已被完成。然而,在存储阵列队列228中可能还存在一个或多个存储器存储请求在排队,因为HBA 154未接收到HBA存储请求的完成响应。因此,在一个实施例中,当HBA 154将I/O操作返回到信道微处理器(例如在固件I/O完成队列上)时,微处理器固件可以执行对传输读ACW和传输状态ACW中的比特的以下测试:对于传输状态ACW,如果ACW还未在状态2上(下面将进一步描述ACW状态字段),则固件等待ACW状态字段移动到2。当固件看到此ACW在状态2上时,则固件检查IU首标字段,以确定ACW正与哪个设备一起工作。现在,在检查或改变分配到I/O操作的四个ACW中的任何一个中的任何字段之前,通过观察每个ACW中的“活动请求计数=0”的比特被设置为1,固件等待用于读ACW和状态ACW两者的活动请求计数递减到0。一旦对于两个ACW,活动请求计数都是0,则固件检查传输状态ACW中的传输状态IU首标,并将结束I/O状态存储在子信道142中。固件接着对信道子系统114的I/O处理器(IOP)产生中断,告知IOP已经完成了用于子信道的I/O操作。IOP接着产生回到OS 110的中断,告知OS 110已经完成了I/O操作。
图10示出了地址控制字(ACW)210的实施例,ACW 210由固件设置在本地信道存储器中,并被数据路由器160用于在HBA存储器请求与主机存储器请求之间转换。在每个主机存储器请求被处理之后,数据路由器硬件更新ACW 210中的信息,以便准备好用于使用此ACW 210的下一HBA请求。示例ACW 210包括以下字段。
ACW状态字段250(例如,字0字节0)提供ACW的状态。例如,当ACW被设置用于I/O操作时,比特0(ACW的有效比特)被固件设置为1,指示ACW是有效ACW。状态被定义在例如比特4-7中,并包括以下代码:
0—空闲/读设置。当ACW已被设置用于接收数据时,固件设置此状态;
1—写设置。当ACW已被设置用于传送数据时,固件设置此状态;
2—ACW IU首标区域安全。当已向或从HBA传输了整个IU首标用于获取或存储时,数据路由器硬件将ACW状态从状态0、1或3改变为状态2。当从链路接收到数据时,在ACW状态250被设置为状态2之前,整个IU首标必须已被接收并存储在ACW首标区域中。一旦ACW状态被设置为2,数据路由器硬件不访问ACW中的IU首标区域。一旦ACW被设置为状态2,则其保持在状态2中,直到固件改变它为止。如果不存在首标数据用于IU,则固件可以将ACW状态设置为状态2。
3—IU首标在进行中。当PCIe请求仅传输了IU首标的一部分时,硬件从状态0或1设置状态3。ACW状态保持在状态3中,直到后续PCIe请求完成了整个IU首标的传输为止,然后ACW状态被设置为2。
如果当将主机存储器请求转发给主机存储器时遇到异常(exception),则数据路由器可以设置读丢弃或抛弃比特(例如ACW状态250的比特2)。对于HBA存储请求,设置读丢弃比特,使得将数据存储到主机存储器中的所有HBA请求都将导致数据被丢弃,并且也不被累积在数据校验字保存区域280中。设置该比特的条件包括在用于该ACW的主机存储器的存储上接收到的任何异常、以及该ACW的HPF-DR响应字254的比特8(“丢失的PCIe请求”)被设置为1的任何时候。对于HBA获取请求,可以设置写丢弃比特(例如ACW状态250,比特3),使得对于此ACW的任何HBA获取请求将接收到PCIe的‘事务层协议’(TLP)完成,其中完成状态被设置为完成器异常中断(Completer Abort)。设置此比特的条件是:在用于此ACW的主机存储器获取请求上接收到任何异常;当用于此ACW的固件请求时,由全局获取静默硬件进行设置。
在一个实施例中,当处理进入的HBA请求并设置固件读丢弃比特252时,数据路由器硬件将读丢弃比特设置为1,并将丢失PCIe请求比特设置为1。数据路由器硬件接着采取的动作列在8比特之下的HPF-DR响应字(下面描述)中。固件使用此比特来恢复有HBA存储请求困在存储阵列队列228中的ACW,该HBA存储请求由于对于此ACW还未接收到在前的BHA请求而不能被处理。
HPF-DR响应字字段254(例如,字0字节1、2、3)包括HPF-DR响应字,其是数据路由器硬件在I/O操作完成时提供给固件的ACW结束状态信息。结束状态的示例及其对应的示例比特包括:
比特8—丢失HBA请求:当针对此ACW的“延迟的”HBA存储事务超过配置的“生存时间(Time To Live)”时,可以将该比特设置为1。如果由于顺序错乱的情况,数据路由器硬件之前已经对此HBA请求重新进行了排队,并且请求已经在存储阵列队列228中等待丢失的HBA请求被接收的时间超过配置的生存时间,则发生这种情况。当进入的HBA(读)请求被处理并且ACW固件读丢弃比特被设置为1时也可以将该比特设置为1。丢失HBA请求条件时执行的动作包括:在ACW中存储IU首标(如果存在),丢弃IU数据(如果存在)而不将其累积在数据校验字中,以及将ACW状态字段250的读丢弃比特2设置为1。在执行了这些动作之后,此ACW的有效请求计数递减1。
比特9—超过存储器请求阈值:满足一个HBA请求所需要的主机存储器请求的数量超过设置的存储器请求阈值。
比特10—TIDAL格式检查:TIDA列表地址或TIDAW不符合协议格式规则。失败的TIDAW的地址被写入到此ACW的失败zSeries存储器地址字段中。
比特11—工作计数上的溢出:当数据路由器正在从主机存储器获取数据或者将数据存储到主机存储器中,并且尝试向或从PCIe总线传输的数据、填充字节和数据校验字的总字节计数超过ACW工作计数所指定的数据的字节计数时。
比特12—从HBA接收复制的HBA获取请求或无效的HBA存储请求:复制的HBA获取请求将不被处理,而是将向HBA返回完成器(completer)异常中断的完成TLP。写丢弃比特(ACW状态字节比特3)被设置为1;或者对于无效的HBA存储请求,该比特和读丢弃(ACW状态字节比特2)被设置为1,并且针对此ACW的所有后续HBA存储请求都被丢弃。
比特13—活动请求计数=0:每当数据路由器硬件更新ACW中的ACW活动请求计数时,其将此比特设置为等于下面定义的活动请求计数字段290的所有比特的异或(NOR)。
比特14—ACW封包:当24比特的“下一预期(Next Expected)的16兆字节偏移”字段从0xFFFFFF封包到0x000000时,将该比特设置为1。此ACW封包比特设置为1阻止数据路由器硬件将用于此ACW的0x000000到0x00001F的16兆字节偏移值解析为IU首标信息。
比特15—TIDA获取主机存储器错误:当所有以下陈述都成立时设置该比特:响应于针对TIDA列表中的TIDAW条目的主机存储器获取请求,接收到异常或坏(bad)硬件响应;从该不可用的TIDAW所需要的HBA接收到对数据的HBA请求;以及对于此I/O操作之前未检测到错误。从接收逻辑240接收的错误指示被存储在ACW TIDA硬件响应字段ACW字9字节2和3中。
导致该错误的地址被写入到失败zSeries存储器地址字段ACW字16和17中。
比特17—数据校验字失配:对于向主机存储器的存储,所计算的数据校验字不与接收的数据校验字匹配。仅在ACW中通过HPF控制比特3使能了数据校验字的检查并且读丢弃比特2不被设置为1的情况下通知(post)。
比特18—方向错误:HPF-DR控制字中的ACW方向比特0不与针对此ACW的HBA请求的方向匹配。
比特21—主机存储器响应错误:从主机存储器请求接收到错误。在一个实施例中,来自主机存储器响应的详细描述错误的错误字节被写入到该ACW状态字段上方的比特19-20以及下方的比特24-31。导致错误的主机存储器地址被写入到此ACW的失败zSeries存储器地址字段。
比特22—IU首标数据校验字失配:如果未被ACW中的HPF-DR控制字比特16禁用,则硬件对所有进入的IU的28字节的IU首标信息检查IU首标数据校验字。如果IU首标数据校验字失败,则丢弃IU中存在的所有数据载荷。
如果在将数据从HBA存储到主机存储器时遇到HPF-DR响应字中的结束状态中指示的任何以上错误,则丢弃该HBA请求中的剩余字节以及针对该IU的所有后续HBA请求。当此字中的错误比特8-12、15、17、18、21和22中的任一个被设置为1时,通过将ACW状态中的读丢弃比特设置为1来实施这一点。如果在从主机存储器获取数据以跨PCIe总线传输时检测到错误,则HPF-DR硬件将用信号通知PCIe输出逻辑244返回具有设置为完成器异常中断的完成状态的完成TLP。这将导致HBA退出启动了导致异常的主机存储器获取请求的交换。利用具有设置为完成器异常中断的完成状态的同一完成TLP响应对此ACW的所有后续HBA请求。当此字中的错误比特8-12、15、17、18、21和22中的任一个被设置为1时,通过将ACW状态中的写丢弃比特设置为1来实施这一点。如果HPF-DR硬件遇到有效(比特0)设置为0或具有无效ACW状态(0和4-F用于获取,或者1和4-F用于存储)的ACW,则通知HPF-DR硬件信道控制检查。
再次参照图10,ACW还可以包括工作计数字段256。当此ACW的第一HBA请求被数据路由器处理时,从开始计数字段(下面描述)的字7初始化工作计数字段256。当从或向主机存储器获取或存储数据时,数据路由器硬件递减此计数。在此计数已经递减到0之后,数据永远不会被存储到主机存储器中。丢弃在此计数达到0之后从PCIe总线接收的任何数据,并且在HPF响应字字段中将‘工作计数上的溢出’比特设置为1。如果ACW状态字节中写丢弃或读丢弃比特被设置为1,则针对所丢弃或抛弃的数据字节,不递减此计数。如果在HPF响应字254中任何错误比特已被设置为1(指示在主机存储器响应中接收到错误),则此计数的剩余值无效。
HPF-DR控制字字段258被固件设置,并控制数据路由器执行的功能。示例功能(对应于此字段中的示例比特)被描述为如下:
比特0-ACW方向:对于从主机存储器获取,设置为‘1’b(二进制)。对于存储到主机存储器中,设置为‘0’b。该比特必须与引用此ACW的HBA请求匹配,否则HPF-DR响应字中的‘方向错误’比特18被设置为1。
比特1-2—“IU数据-数据校验字选择”:如果以下的比特3(数据校验字被使能)设置为1,则这些比特利用以下码点编码,以告知数据路由器硬件用于数据IU的数据校验字类型。以下码指示所使用的数据校验字的类型:
0—使用数据校验字类型1。(LRC)
1—使用数据校验字类型2。(校验和)
2—使用数据校验字类型3。(CRC)
3—使用数据校验字类型4。
比特3—“IU数据-数据校验字使能”:‘0’b的值指示OFF(关闭),即对于此条目没有数据校验字的检查/产生。‘1’b的值指示ON(开启),即对于此ACW使能了根据(per)以上比特1-2的编码的数据校验字的检查/产生。
比特4-5—IU首标数据校验字选择编码:如果以下的比特16被设置为0(IU首标数据校验字被使能),则比特4-5利用以下码点编码,以告知数据路由器硬件用于IU首标的数据校验字类型:
0—使用数据校验字类型1.(LRC)
1—使用数据校验字类型2。(校验和)
2—使用数据校验字类型3。(CRC)
3—使用数据校验字类型4。
比特16—禁止IU首标数据校验字:‘0’b(OFF)的值指示对于此ACW使能根据以上比特4-5的编码的IU首标数据校验字的检查/产生。‘1’b(ON)的值指示不检查进入的IU首标中的数据校验字字段。进入的首标中的数据校验字字段不被修改,而被与在ACW中设置时一样地发送。
比特17—绕过(BYPASS)TIDAL:‘0’b的值指示将使用TIDAL处理。ACW中的地址是TIDAW列表的开始地址。每个TIDAW具有主机存储器地址和计数,其被用于获取或存储数据。‘1’b的值指示绕过TIDAL处理,并且从ACW中的主机存储器地址开始连续地获取或存储数据。
比特22-23—载荷数据校验字位置:该两比特编码表示从载荷的末端起的字的数目,在该位置处放置用于写操作的数据校验字。对于读操作忽略此编码。对于除‘00’b之外的编码,开始工作计数必须是4字节的倍数(即没有填充)。IU中数据校验字之后的字不包括在数据校验字计算中。示例码包括:
‘00’b:当工作计数=0时,插入所产生的数据校验字。这将数据检验字放置在所传送的IU加上填充字节的末端,以将该数据校验字放置在字边界上。此码点被用于传送除传输命令IU之外的任何东西。
‘01’b:当工作计数=4时,利用产生的数据校验字覆盖现有字。这将数据校验字放置在离传送的IU的末端一个字(4个字节)的位置处。该码点仅用于传送传输命令IU。
‘10’b:当工作计数=8时,利用产生的数据校验字覆盖现有字。这将数据校验字放置在离产生的IU的末端两个字(8个字节)的位置处。该码点仅用于传送传输命令IU。
‘11’b:无效。
再次参照图10,ACW还可以包括由固件设置的密钥259。该密钥从ACW中获得,并被数据路由器硬件插入在用于访问主机存储器的主机存储器请求中。区域ID字段260由固件设置,以及从ACW获得,并由数据路由器硬件插入在用于访问主机存储器的主机存储器请求中。
主机存储器地址字段262指示主机存储器中要从其获取或向其存储针对此ACW的数据的开始地址(例如,如果控制字字段的比特17是1)、或者传输(Tidal)间接数据地址列表(TIDAL)的开始地址(例如如果比特17是0)。ACW中的主机存储器地址是数据的主机存储器地址或者称为TIDAL的传输间接地址列表的开始地址。TIDAL中的每个条目是TIDAW,其是TIDAW中的计数字段中的数据字节数的开始主机存储器地址。如果TIDAL由HPF-DR控制字中的比特17指示,则HPF-DR硬件从主机存储器获取TIDAL,接着使用每个TIDAW中的地址在主机存储器中获取或存储数据。
IU首标计数字段263被数据路由器硬件用于追踪剩下来从ACW传输到PCIe总线或从PCIe总线传输到ACW的IU首标字节的数目。IU首标计数被固件初始化为在IU的传输或接收开始时,要从ACW底部传输到PCIe总线或从PCIe总线传输到ACW底部的IU首标字节的数目。
当设置ACW时,固件初始化24比特的“下一预期的16兆字节偏移”字段264。该偏移字段虽然被描述为16兆字节偏移,但也可以被配置为其它期望的偏移配置。当处理每个HBA获取或存储请求时,数据路由器硬件将针对ACW中的下一预期的16兆字节偏移字段检查HBA地址中的16兆字节偏移180。如果它们匹配,则数据路由器硬件移动数据(如果数据是来自或去往ACW底部的IU首标,以及去往或来自主机存储器的任何用户数据)。数据路由器硬件接着将ACW中的下一预期的16兆字节偏移字段递增HBA事务的尺寸。在一个实施例中,为了利用4字节的工作计数字段,使用3字节的下一预期的16兆字节偏移字段,下一预期的偏移可以在工作计数变为0之前从0xFFFFFF到0x000000封包255次。下一预期的偏移第一次封包时,在此ACW中,ACW封包比特(HPF响应字字段254中的比特14)被设置为1。
开始计数字段266被固件用于加载要被传输用于此ACW控制下的I/O操作的数据的字节数。此计数包括传送的数据上插入的所有填充和数据校验字字节,但不包括传送或接收的数据上的IU首标字节或最终(finial)填充和数据校验字字节。当为此ACW处理第一HBA请求时,数据路由器硬件将此计数传输给工作计数字段256。数据路由器硬件不修改ACW中的开始计数。
数据路由器硬件将CTL字段268和确认字段270与从HBA接收的地址字段172中的对应CTL字段174和确认字段178进行比较。如果它们不相等,则通知错误,并且不执行主机存储器操作。此错误导致信道控制检查。
对于HBA存储,数据校验字状态字段272被数据路由器硬件用于追踪ACW中的最后4个数据字节保存区域(下面描述)中的数据字节中哪个将被用于针对此ACW的下一事务中的数据校验字计算。这被需要用于HBA存储请求不在相对于数据传输的开始的字边界上结束、并且仅可以对字边界上的四字节字的数据完成数据校验字的计算的情况。因此,高至3个字节的之前接收的数据以及边界状态信息必须被保存在ACW中,直到接收到后续字节的数据,以继续数据校验字的计算。
TIDAL硬件响应字段274被用于存储主机存储器异常或者针对获取的TIDA列表而接收的坏数据路由器硬件响应。此字段的比特2-15具有与HPF-DR响应字字段254的比特18-31相同的定义。因为TIDA列表可以在需要使用其之前由HPF-DR硬件预获取,所以该坏响应将不被固件报告为错误,除非从HBA接收到HBA请求以传输本将已经使用了该不可得的TIDAW的数据。通过HPF-DR响应字字段254的比特15向固件指示后一情况。
在前数据校验字保存区域被数据路由器硬件用于在每个HBA存储事务结束时保存倒数第二个中间数据校验字的值。不通过使用接收到的最后4个数据字节的计算修改该中间值。因此,如果当前HBA事务完成了操作,则此字段包含用于该操作的最终计算的数据校验字值,并且接收到的最后4个数据字节是保存在此ACW中的下一字段中的接收的数据校验字。
最后4个数据字节保存区域278被硬件用于存储在每个HBA请求上接收的最后4个数据字节。对于除最后一个之外的HBA请求,如果当前HBA请求不在字边界上结束,则可能需要高至这些字节中的3个用于后续的数据校验字累积。在数据校验字状态272中记录了关于需要哪些字节的信息。对于最后一个HBA请求,此字段包含接收的数据校验字。在一个实施例中,对于HBA PCIe获取,此字段保持到基于前一最后4字节PCIe边界的最后四个数据字节。所以,如果PCIe地址以1结束,则此字段保持传送的最后一个字节。如果PCIe地址以2结束,则此字段保持传送的最后两个字节,并由此下去,直到最后四个字节。
数据校验字保存区域280被数据路由器硬件在每个HBA事务(获取或存储)结束时用于保存中间计算的数据校验字值,其被用于作为针对ACW的下一事务的种子。
TIDAL工作区域地址282是位于本地信道存储器中的256字节的工作区域的地址,并被数据路由器硬件用于缓存由数据路由器硬件从主机存储器预先获取的TIDA列表元素。固件将此字段设置为指向为此ACW所分配的区域。TIDAL工作区域索引284是对指向当前活动的TIDAW条目并由数据路由器硬件保持的本地信道存储器TIDAL工作区域的索引。
数据校验字种子字段286被固件用于将初始数据校验字种子值写入此字中。此字被用作在针对读和写的此ACW的数据传输开始时,数据校验字计算的开始种子,并且还被用于当TIDAW计数对于写变为0时,在TIDAW中的‘插入数据检验字’TIDAW标记的处理之后‘重做种子’。对于传输命令ACW,固件获得用于传输命令IU的原始种子,并通过利用IU首标和在传输IU末端处的写和/或读长度字段,更新用于传输命令IU的开始数据校验字种子,而计算用于传输命令IUACW种子的新值。因此,传输命令IU数据校验字覆盖整个传输命令IU,即使数据路由器硬件从ACW中获得种子也是如此,并且仅计算IU的传输命令IU数据部分上的数据校验字。数据路由器硬件接着将数据校验字插入到IU中,并接着传送写或读长度字段,或者如果I/O操作在两个方向上传输数据,则写和读长度字段都被传送。
失败zSeires存储器地址288被用于存储存储器区域的导致异常的地址,并且在HPF-DR相应字254中设置适当的错误比特。
活动请求计数计数器290被ACW用于追踪当前有多少HBA请求驻于用于此ACW的存储阵列队列228中。此计数器对于存储到用于此ACW的存储阵列队列中的每个HBA请求递增,并且当HBA请求已被处理时递减。当对于请求发生以下之一时,认为针对此ACW的HBA请求被处理:用于HBA请求的所有主机存储器请求已经以主机存储器响应完成;在读丢弃比特(bit2)被设置为1的情况下,用于HBA请求的所有数据已被丢弃;或者所有IU首标信息被存储在用于仅包含IU首标信息的HBA请求的ACW中。每当数据路由器硬件更新ACW中的ACW活动请求计数时,其将活动请求计数=0(HPD-DR响应字254,比特13)设置为活动请求计数的比特的异或(NOR)。因此,当HPF-DR硬件将活动请求计数递减为0时,“活动请求计数=0”比特将被设置为1。
IU首标信息字段292被用于存储在I/O操作中使用的命令、状态和/或数据IU首标。在一个实施例中,此字段是用于8个字的‘IU首标’信息的区域。如IU包含IU首标,则IU首标信息是IU中在链路上传输到设备或从设备传输的第一数据。IU首标信息被信道使用或产生,但不是存储到主机存储器或从主机存储器获取的数据的一部分。因此,此信息被信道微处理器固件检查或产生。ACW控制块的底部8个字被用于缓存IU首标,并被用作数据路由器硬件与用于该IU首标的固件之间的接口。
当ACW是读数据ACW或写数据ACW时,IU首标信息是在PICe总线上传输的第一数据。当数据路由器硬件完成了IU首标的传输时,其将ACW状态字段250的值改变为2。对于IU传送,固件在用信号通知HBA传送IU之前在ACW中建立IU首标。对于接收的IU,当HBA已经通知I/O操作已经完成并且已经确认ACW在ACW状态2中时,固件检查ACW中的IU首标。
固件还控制IU首标的最后一个字(在本实施例中始终是16兆字节偏移28,0x00001C)是表示数据还是用于IU首标的IU首标数据校验字。HPF-DR控制比特16(禁止IU首标数据检查)告知数据路由器硬件是否将产生或检查用于IU首标的数据校验字。如果被使能,则数据路由器硬件产生IU首标数据校验字,并接着在将IU首标发送到HBA时,将来自ACW的IU首标的最后一个字替换为所产生的数据校验字。如果被使能,则数据路由器硬件检查接收的HBA IU首标上的数据校验字,并在HPF-DR响应字254的比特22中报告结果。
固件可以设置ACW,使得数据路由器硬件传输少于8个字的IU首标信息。通过调节PCIe HBA使用的状态、首标计数、下一期望的16兆字节偏移和初始16兆字节偏移来进行这一点,从而要传送或接收的最后一个IU首标字在28(0x00001C)的16兆字节偏移处,并且载荷的第一字节(如果存在)在32(0x000020)的16兆字节偏移处。IU首标始终是整数个字。
在一个实施例中,如果对于IU不需要IU首标,则固件如下设置ACW:
1.将ACW IU首标计数设置为0(ACW字6字节0);
2.将ACW状态设置为2;
3.将ACW封包比特设置为1(HPF-DR响应字比特14),将开始16兆字节偏移设置为对HBA给出的地址控制结构中的0x000000,并将相同的值设置到ACW中的下一预期的16兆字节偏移字段中;
4.将ACW工作计数256设置为等于ACW开始计数266;
5.将ACW数据校验字状态设置为0x00的值;以及
6.将在前数据校验字保持区域276和数据校验字保持区域280设置为等于数据校验字种子286。现在,在数据路由器硬件看来,对于分配了此ACW的IU,似乎已经接收或传送了IU首标。
信道微处理器基于从I/O指令的接收而导出的信息,设置上述ACW中的某些字段。
示例字段包括ACW状态字段、响应字字段、HPF-DR控制字段、主机存储器或TIDA存储器地址字段、首标计数、“下一预期的16兆字节偏移”字段、D字段、CTL字段、确认字段、TIDAL工作区域地址字段、数据校验字种子字段、以及IU首标字段。ACW中的其它字段是HPF-dR硬件在执行I/O操作中使用以及在I/O操作完成之后用于向固件回呈结束状态信息的控制字段。
图11-14示出了存储在本地信道存储器中并由数据路由器硬件使用的ACW中由固件设置的示例值。参照图11,为了产生传输命令ACW 300(其由HPF-DR用于组装传输命令IU),应用以下设置:
1)对于ACW状态字段,ACW有效比特设置为1并且设置状态编码1;
2)ACW封包字段设置为0(当HPF-DR响应字被设置为0x000000时设置);
3)对于HPF-DR控制字段,设置以下值:
比特0(ACW方向)设置为1,正从信道传送数据;
比特1-2(IU数据-数据校验字选择)设置为‘00’b,指示LRC字正被使用;
比特3(IU数据-数据校验字使能)设置为1;
比特4-5(IU首标数据校验字选择)不被使用;
比特16(禁止IU首标数据校验字)设置为1;
比特17(绕过TIDAL)设置为TCW中的TCCB TIDAL标志比特的反比特;
比特22-23(载荷数据校验字位置)设置为‘10’b的码值;
4)从子信道获得密钥值;
5)从TCW获得主机存储器地址;
6)对于传输命令ACW,IU首标计数设置在0x0C处;
7)对于传输命令ACW,下一预期的16兆字节偏移字段设置在0x000014处;
8)从TCW中翻译开始计数字段值;
9)当设置ACW时,固件写丢弃比特(D)设置为0;
10)对于所有传输ACW,CTL字段设置为0x02;
11)在信道初始化时,确认字段设置为针对此ACW的唯一值;
12)在信道初始化时,TIDAL工作区域地址设置为针对此ACW的唯一值;
13)数据校验字种子:对于传输命令ACW,固件获得原始传输命令种子,根据设置在此ACW中的IU首标101的数据以及从TCW获得的写和读长度字段,为数据路由器硬件计算新种子值;以及
14)IU首标101:根据子信道和TCW设置12字节的IU首标101。
参照图12,传输读数据ACW 302被数据路由器用于接收读传输数据IU和产生主机存储器命令,以将读数据传输到主机存储器。通过应用以下设置产生传输读ACW:
1)对于ACW状态字段,ACW有效比特设置为1,并且设置状态编码2;
2)当HPF-DR响应字段被设置为0x020000时,将ACW封包字段设置为1;
3)对于HPF-DR控制字段,设置以下值:
比特0(ACW方向)设置为0,正在信道处传送数据;
比特1-2(IU数据-数据校验字选择)设置为‘10’b,指示CRC字正被使用;
比特3(IU数据-数据校验字使能)设置为1;
比特4-5(IU首标数据校验字选择)不被使用,上述ACW封包比特被设置;
比特16(禁止IU首标数据校验字)不被使用,上述ACW封包比特被设置;
比特17(绕过TIDAL)设置为TCW中的TIDAL读标志比特的反比特;
比特22-23(载荷数据校验字位置)设置为‘00’b的码值,正如其未被用于此ACW;
4)从子信道获得密钥值;
5)从TCW获得主机存储器地址;
6)对于传输读数据ACW,IU首标计数设置在0x00处;
7)对于传输读数据ACW,下一预期的16兆字节偏移字段设置在0x000000处;
8)从TCW中的读数据计数获得开始计数字段值;
9)当设置ACW时,固件写丢弃比特(D)设置为0;
10)对于所有传输ACW,CTL字段设置为0x02;
11)在信道初始化时,确认字段设置为针对此ACW的唯一值;
12)在信道初始化时,TIDAL工作区域地址设置为针对此ACW的唯一值;以及
13)对于传输读数据ACW,数据校验字种子设置为0xFF FF FF FF。
参照图13,传输写数据ACW 304被数据路由器用于产生写传输数据IU,以将写数据传输到控制单元。通过应用以下设置产生传输写ACW:
1)对于ACW状态字段,ACW有效比特设置为1,并且设置状态编码2;
2)当HPF-DR响应字段被设置为0x020000时,将ACW封包字段设置为1;
3)对于HPF-DR控制字段,设置以下值:
比特0(ACW方向)设置为1,正向控制单元传送数据;
比特1-2(IU数据-数据校验字选择)设置为‘10’b,指示CRC字正被使用;
比特3(IU数据-数据校验字使能)设置为1;
比特4-5(IU首标数据校验字选择)不被使用,上述ACW封包比特被设置;
比特16(禁止IU首标数据校验字)不被使用,上述ACW封包比特被设置;
比特17(绕过TIDAL)设置为TCW中的TIDAL读标志比特的反比特;
比特22-23(载荷数据校验字位置)设置为‘00’b的码值;
4)从子信道获得密钥值;
5)从TCW获得主机存储器地址;
6)对于传输写数据ACW,IU首标计数设置在0x00处;
7)对于传输写数据ACW,下一预期的16兆字节偏移字段设置在0x000000处;
8)从TCW中的写数据计数获得开始计数字段值;
9)当设置ACW时,固件写丢弃比特(D)设置为0;
10)对于所有传输ACW,CTL字段设置为0x02;
11)在信道初始化时,确认字段设置为针对此ACW的唯一值;
12)TIDAL工作区域地址与传输命令ACW的工作区域相同;以及
13)对于传输写数据ACW,数据校验字种子设置为0xFF FF FF FF。
参照图14,传输状态ACW 306被数据路由器用于存储来自接收的传输状态IU的扩展状态数据以及将状态转发给主机存储器。通过应用以下设置产生传输状态块ACW:
1)对于ACW状态字段,ACW有效比特设置为1,并且设置状态编码0;
2)当HPF-DR响应字段被设置为0x000000时,将ACW封包字段设置为0;
3)对于HPF-DR控制字段,设置以下值:
比特0(ACW方向)设置为0,正从控制单元接收数据;
比特1-2(IU数据-数据校验字选择)设置为‘00’b,指示LRC字正被使用;
比特3(IU数据-数据校验字使能)设置为1;
比特4-5(IU首标数据校验字选择)设置为‘00’b,指示LRC字正被使用;
比特16(禁止IU首标数据校验字)设置为0,IU首标数据校验字不被禁止;
比特17(绕过TIDAL)设置为1,正如未使用间接寻址;
比特22-23(载荷数据校验字位置)设置为‘00’b的码值,并不用于此ACW;
4)对于此ACW,密钥值设置为0x0;
5)从TCW获得主机存储器地址;
6)对于传输状态ACW,IU首标计数设置在0x20处;
7)对于传输状态ACW,下一预期的16兆字节偏移字段设置在0x000000处;
8)根据光纤信道架构,开始计数字段值被设置为0x40;
9)当设置ACW时,固件写丢弃比特(D)设置为0;
10)对于所有传输ACW,CTL字段设置为0x02;
11)在信道初始化时,确认字段设置为针对此ACW的唯一值;以及
12)对于传输状态ACW,数据校验字种子设置为0XA55AA55A。
参照图15,描述了各种类型的地址控制结构的HBA地址部分的示例。在这些示例中,当CTL字段174等于0x02时,16兆字节偏移180是HBA地址172中随着来自HBA的用于I/O操作的连续HBA请求而递增的唯一部分。HBA请求的用于要传送或接收的信息单元(IU)的开始32个字节的数据可以是从ACW控制块的底部检索的或存储到ACW控制块的底部的IU首标信息。数据路由器硬件从ACW的底部获取此信息或将此信息存储到ACW的底部中,用于PCIe的16兆字节偏移地址(从0x000000至0x00001F)。这允许向或者从传输数据IU附接或者剥离高至32字节的IU首标,该传输数据IU被传送到设备或者从设备接收。当16兆字节偏移封包时,其封包回到0x000000,但对于此情况,因为其是封包条件并且在ACW中ACW封包比特被设置为1,所以接收的或传送的数据继续被存储到主机存储器中或从主机存储器中获取,但不存储到ACW中或从ACW中获取。固件具有设置ACW的能力,从而如果在IU的开始处不存在IU首标信息,则不从ACW中获取IU首标信息,也不将IU首标信息存储到ACW中。ACW封包比特是ACW的HPF-DR响应字字段中的比特14。
对于传输命令地址控制结构,从TCW获得的字节计数永远不导致16兆字节偏移字段180封包,因此对于数据路由器硬件和HBA,仅需要一个地址控制结构来传送传输命令IU。命令IU的方向总是从信道侧HBA向控制单元。
对于传递到HBA的传输状态地址控制结构,字节计数永不导致16兆字节偏移字段封包,因此对于数据路由器硬件和HBA,仅需要一个地址控制结构来接收传输状态IU。状态IU的方向总是从控制单元向信道侧HBA。
对于传输读数据地址控制结构,TCW中的读数据计数提供从设备传输到HBA的读数据的总量。如果读数据计数大于16兆字节,则传递到HBA的用以传输读数据的数据地址控制结构的数量是总读数据计数除以223,并且如果存在余数,则对1进位取整(round up)。传递到HBA的每个读数据地址控制结构具有相同的64比特PCIe地址。每个数据地址控制结构中的计数字段是223,除了完成I/O数据传输的最后一个数据地址控制结构。这使得在数据路由器硬件看来,223兆字节偏移字段似乎保持从0x7FFFFF封包到0x000000。主机存储器地址是来自ACW的不断增加的主机存储器地址262或者来自由存储器地址262寻址的TIDAL中的每个TIDAW的主机存储器地址。
对于传输写数据地址控制结构,由来自TCW的写数据计数提供要从HBA传输到设备的写数据的总量。以与读数据地址控制结构相同的方式计算用于传输写IU的地址控制结构的数量。
这里描述的系统和方法提供了用于检查数据路由器160处理的数据的错误的机制。例如,每当HBA 154应用主机存储器时,数据路由器160检查多个引用点。在一个示例中,数据路由器160检查HBA地址字段172的ACW索引字段176中的ACW地址位置是否在由ACW源点寄存器214和ACW限制寄存器216划界的存储器区域内。
在另一示例中,数据路由器160通过检查HBA地址字段172中的CTL字段和确认字段是否与HBA请求引用的ACW中的CTL字段和确认字段匹配,来检查HBA 154是否正使用用于HBA请求的正确ACW。如果这些字段不相配(compare),则信道128将利用信道控制检查结束I/O操作。数据路由器160还检查地址字段172中的偏移字段(例如HBA地址的低阶24比特)是否等于所获取的ACW中的下一预期的16兆字节偏移。
数据路由器160还包括产生或检查数据校验字(例如LRC、CRC)的能力,数据校验字允许数据路由器160检测正传输的数据是否已被破坏。
例如,当数据路由器收集要从主机存储器发送到HBA 154的数据(诸如TCCB 148或输出数据)时,数据路由器使用传输命令ACW中的数据校验字种子和使用TCCB数据产生数据校验字192,并将数据校验字插入在传输命令IU中(例如,在从IU的末端起的两个字处)。固件利用传输命令IU首标和长度字段预计算传输命令ACW中的数据校验字种子。这允许数据校验字覆盖包括在传送的IU中跟随数据校验字的长度字段的整个传输命令IU。
在一个实施例中,总是在字边界上计算数据校验字。如果数据校验字覆盖的数据的字节数的字节计数不是4的倍数,则在传送数据校验字之前需要填充字节来填充到字边界。对于向控制单元118的传送,填充字节总是0。对于对主机存储器的接收,必须接受任何值的填充字节。填充字节被包括在数据校验字计算中。
数据路由器160还产生在跨信道路径的传送期间检查整个传输写数据IU的数据校验字。以传输写ACW中的数据校验字种子为起点产生此数据校验字,并且当正从主机存储器获取数据时,利用获取的数据计算新数据校验字。当所有数据都被获取和传送时,接着附接结果数据校验字,并利用填充字节将结果数据校验字对齐到字边界,诸如发送到HBA的数据的最后四个字节。TIDAW字可以具有插入填充以及设置为1的数据校验字标记比特,这将导致数据路由器硬件在传输写数据IU中插入中间数据校验字。控制单元将将接收的数据校验字与其自身计算的数据校验字进行比较,以验证所接收的数据IU是有效的。对于从主机存储器的获取,当TIDAW计数递减为0并且TIDAW插入数据校验字标记比特被设置为1时,总是在字边界上的填充字节之后插入和传送计算的数据校验字。
数据路由器160还可以产生检查跨信道路径传送的传输读数据IU的数据检验字。以传输读ACW中的数据校验字种子为起点计算该数据校验字,并且接着,当输入数据被存储在主机存储器中时,利用读取的数据计算更新的数据校验字。当所有数据都已被接收并存储到主机存储器中时,将计算的结果数据校验字与从设备接收的数据校验字进行比较。计算的数据校验字与接收的数据校验字相配验证所接收的数据IU是有效的。如果两个字段不相配,则利用接口控制检查结束I/O操作。例如,在接收数据IU结束时,如果‘数据校验字使能’比特3被设置为1,并且如果预期的数据校验字不与接收的数据校验字匹配,则数据路由器硬件将‘数据校验字失配’比特17设置为1。
在一个实施例中,当数据路由器160正从设备接收数据时,在确定接收到数据校验字的时间中存在数据路由器160必须应付的情形。例如,执行计数匹配来验证数据校验字是在ACW工作计数转变为0之后接收的4个字节加上将该数据校验字放置在字边界上的填充字节。在已经接收了数据校验字之后不能再接收额外数据,否则HPF-DR响应字的比特11(工作计数上的溢出)将被设置为1。
在另一示例中,如果在控制单元118发送传输状态IU时、ACW工作计数还未变为0,则遇到“早结束(early end)”条件。对于此情况,当信道128被HBA 154用I/O完成中断时,信道128首先验证对于对应的ACW、“活动请求计数=0”比特被设置为1,并接着通过将ACW中作为接收的数据校验字的‘最后4个字节保存区域’与ACW中包含所接收的数据上的计算的数据校验字的‘在前数据校验字保存区域’进行比较,来验证数据校验字是正确的。
数据路由器硬件还计算检查从链路接收的传输状态IU数据的数据校验字。以传输状态ACW中的数据校验字种子为起点计算该数据校验字,并且当传输状态IU数据被存储在主机存储器中时,计算新数据校验字。当所有用于IU的数据都被接收且存储器到主机存储器中时,将计算的结果数据校验字与从设备接收的数据校验字进行比较。计算的数据校验字与接收的数据校验字相配验证接收的数据IU有效。如果这两个字段不相配,则利用接口控制检查结束I/O操作。
TIDAW及其T-TIC标记比特的架构允许满足一个4k字节的高速PCI总线(PCIe)请求所需要的zSeries存储器请求的数目超过12000个zSeries存储器请求。这在如下情况中发生:每个TIDAW中的字节计数字段和T-TIC标记比特各自设置为1,其使得每个TIDAW被传输--信道字中的传输--跟随,所述信道字是下一TIDAW的新zSeries存储器地址。用于数据路由器硬件进行所有这些zSeries存储器请求的时间量可能超过HBA用于一个HBA请求的超时时间(timeout)值。导致的错误就像是zSeries存储器超时(timeout),其指示zSeries存储器子系统丢失了zSeries存储器请求。
为了对满足HBA请求所需要的主机存储器请求的数量施加限制,数据路由器硬件中的可编程请求阈值计数器可以限制用于满足一个HBA请求的主机存储器请求的数量。如果到达该限制,则将“存储器请求阈值超过”(HPF-DR响应字比特9)设置为1。当信道硬件被初始化时,设置此阈值计数器。
如上所述,HBA 154被给予向或从主机存储器直接存储或获取用户数据的能力,以提高信道性能。然而,通过本地信道存储器132执行运行在微处理器130上的固件和HBA 154之间的所有通信。微处理器130通过将HBA 154处理HBA工作队列中的I/O操作所需要的所有信息存储在本地信道存储器区域164中而将工作传递给HBA 154。同样地,当HBA完成了I/O操作或I/O操作失败时,HBA将具有状态的I/O操作返回到本地信道存储器132中的固件I/O完成队列中的信道。
为了使用ACW 210处理HBA主机存储器请求的固件、HBA 154和数据路由器硬件的正确相互作用,提供有关ACW占有时间(tenure)和ACW原子态(atomicity)的以下规则。
在I/O操作期间,信道固件拥有指定用于I/O操作的四个ACW(即,传输命令ACW、传输读ACW、写数据ACW和传输状态ACW),直到固件将I/O操作入队在HBA工作队列上时。从信道固件将I/O操作入队在HBA工作队列上时到HBA 154将具有状态的I/O操作(以及四个关联的ACW)返回到固件I/O完成队列上的固件为止,数据路由器160以及间接地HBA 154拥有用于I/O操作的四个ACW。对于成功完成的I/O操作,在HBA 154接收和处理了结束I/O操作的传输状态IU之后,HBA 154将I/O操作返回到固件I/O完成队列上的固件。除了极少的情况(例如,ACW中的固件读丢弃比特被设置为1),在数据路由器硬件和HBA 154拥有四个ACW的时段期间,固件不更新四个ACW中的任一个的任何字段.
为了使在数据路由器160的控制下向设备传输数据的ACW静默(quiesce),固件使用获取静默硬件和逻辑310(图9中所示)。为了使在数据路由器160的控制下从设备接收数据的ACW静默,固件使用固件读丢弃比特252和存储静默硬件和逻辑312(图9中所示)。
在一个实施例中,提供原子态规则,使得到固件在固件I/O完成队列上接收到来自HBA 154的结束完成状态(这将用于该I/O操作的ACW的所有权返回到固件)时,已经更新了ACW中的IU首标和所有状态字段。第一规则陈述为:在接收到结束完成状态id或用于ACW的ACW状态改变为状态2之前,数据路由器硬件必须已经将整个IU首标信息存储到该ACW中(即ACW IU首标区域安全)。设计ACW中的固件读丢弃比特,使得其可以被固件设置为1,而不影响数据路由器硬件与同一ACW中的任何字段一起工作以及更新同一ACW中的任何字段。
第二规则陈述为:当数据路由器硬件将PCIe‘具有设置为完成器异常中断的完成状态的事务层协议(TLP)完成’发送到HBA 154时,数据路由器硬件必须确保在处理用于向本地信道存储器中存储的任何在后HBA请求之前,完成对对应ACW的所有等待处理的更新。第三规则陈述为:当两个背对背HBA请求到达路由逻辑222,并且第一请求被路由到存储阵列队列228,而第二请求被路由到本地信道存储器时,ACW中的活动请求计数和“活动请求计数=0”比特必须在将第二或后续HBA请求路由和存储到本地信道存储器中之前,由数据路由器硬件更新。
存在如下情况(例如当发生错误时):固件不能等待I/O操作完成而是必须阻止从主机存储器获取新HBA数据获取请求或者阻止来自HBA数据存储请求的数据被存储到主机存储器中。全局获取静默硬件310提供用于固件使数据路由器硬件拥有的且活动地从主机存储器获取数据的ACW静默的装置。
为了使被设置为从主机存储器获取数据的活动ACW静默,固件利用固件需要被停止的ACW的索引,设置全局获取静默逻辑310中的ACW索引寄存器。在固件写入了ACW索引寄存器之后,全局获取静默逻辑310执行以下操作:
1.将全局获取静默逻辑中的静默忙碌比特设置为1,其使获取硬件230停止处理任何新的HBA获取或来自获取阵列队列226的写请求,并使获取硬件230中排队的主机存储器获取或写请求停止被传输到处理逻辑234用于向主机存储器传送。然而,已在排队且当前正在处理逻辑234和传送逻辑234中或者在接收逻辑240和路由逻辑242中处理的主机存储器获取请求不受影响;
2.取消(scrub)已在获取硬件230中排队的主机存储器获取请求,并且标记获取硬件230中具有目标ACW索引的任何主机存储器获取请求,以便在主机存储器请求被以后处理时,强制(force)具有完成状态的TLP完成被设置为完成器异常中断;
3.在目标ACW中,将写丢弃比特(ACW状态250比特3)设置为1;
4.接着解冻数据路由器硬件,并且现在处理在获取硬件230中排队的主机存储器获取请求以及获取阵列队列226中排队的HBA获取请求;以及
5.重置全局获取静默逻辑中的静默忙碌比特。
在固件设置了全局获取静默逻辑310中的ACW索引寄存器之后,固件监视静默忙碌比特,以确定全局获取静默逻辑310完成静默操作的时间。一旦静默操作已经完成,则固件可以依赖以下:
1.获取硬件230中排队的具有目标ACW的索引的任何主机存储器获取请求将接收“具有设置为完成器异常中断的完成状态的TLP完成”。
2.由于在此ACW中写丢弃比特(ACW状态250比特3)被设置为1,所以将利用“具有设置为完成器异常中断的完成状态的TLP完成”响应获取阵列队列226中排队的任何HBA请求或来自HBA的针对目标ACW的任何新HBA请求。
当HBA 154接收到“具有设置为完成器异常中断的完成状态的TLP完成”时,HBA 154向控制单元118和设备116发送针对I/O操作的异常中断。当HBA 154已经接收到来自设备116的完成该异常中断序列的响应时,HBA 154将通过本地信道存储器中的固件I/O完成队列将该I/O操作返回到固件。
还可能存在以下情况:固件需要阻止(静默)任何新HBA数据存储请求存储到主机存储器中用于I/O操作。通过固件读丢弃比特提供此能力。固件将ACW中的固件读丢弃比特252设置为1,则在存储阵列队列228中排队的所有新的和现有的HBA请求都将被存储硬件232丢弃。
随着使数据路由器160丢弃针对ACW的HBA存储请求,固件还可以具有确定存储硬件232向主机存储器作出的针对ACW的所有在前主机存储器存储请求何时以主机存储器完成响应完成的能力。在路由逻辑242处接收主机存储器完成响应,主机存储器完成响应被路由到作出请求的请求器,并接着以与作出请求相同的顺序处理,包括递减全局存储静默逻辑312中的计数器。全局存储静默逻辑和硬件312提供用于固件获知存储硬件232向主机存储器作出的所有在前主机存储器存储请求已经完成的时间的方法。
一旦ACW中读丢弃比特被设置为1,则获知对于该ACW所有在前主机存储器存储请求已经完成的方法将要等待,直到主机存储器管线(pipeline)(由处理逻辑234、传送逻辑236、接收逻辑240和路由逻辑242表示)中排队的所有当前HBA存储请求都已被处理。为了在不使新存储请求停止在存储阵列队列中排队并且不停止对存储阵列队列中的现有条目的处理的情况下进行这一点,利用主机存储器管线中排队的条目的当前总数加载快照(snapshot)计数器。接着对接收的每个主机存储器响应递减此快照计数器。接着,当快照计数器达到0时,固件知道已经处理了用于感兴趣的ACW的存储器管线位置中的队列中排队的所有在前主机存储器存储请求。可以通过由以下计数器构成的全局存储静默硬件312执行此功能:
1.全局活动请求计数器追踪主机存储器管线中排队的针对所有ACW的HBA存储请求的总数。此计数器在每次数据路由器硬件232向主机存储器产生HBA存储请求时递增,并且在每次确认(如通过返回的主机存储器响应而完成,该主机存储器响应从路由逻辑242路由到数据路由器控制逻辑)完成了HBA存储请求的最终主机存储器存储请求时递减。在某些实施例中,一个HBA存储请求可以需要高至16个主机存储器存储请求,以存储HBA存储请求中的所有数据。
2.全局活动快照计数器仅递减而永不递增。在固件的控制下利用全局活动请求计数器的当前值加载此计数器。利用递减“全局活动请求计数器”的相同信号递减此计数器。一旦此计数器递减为0,其保持为0,直到固件以全局活动请求计数器的新复本再次加载为止。固件可以读取全局活动快照计数器,以确定其何时已变为0。
以下过程可以由固件用于使之前设置的ACW停止,将数据存储到主机存储器中,并接着确定针对该ACW的所有在前主机存储器请求完成的时间:
1.固件将每个受影响的ACW中的‘固件读丢弃’比特设置为1,其被设置来将数据存储到主机存储器中;
2.固件将全局活动请求计数器传输到全局活动快照计数器。接着,当每个主机存储器存储请求完成时,递减全局活动快照计数器。
3.固件轮询(poll)全局活动快照计数器,直到其读到0。现在,对于使固件读丢弃比特设置为1的所有感兴趣的ACW,已经完成了在固件将全局活动请求计数器传输到全局活动快照计数器时作出的所有主机存储器存储请求。将没有其它主机存储器存储请求由数据路由器硬件代表这些ACW作出。
在某些实例中,数据路由器硬件可以以与从设备传送数据的顺序不同的顺序接收来自HBA的数据。这导致一问题:必须以与在传输数据时原始产生数据校验字的顺序相同的数据顺序计算对接收的数据的某些类型的数据校验字计算。数据路由器硬件利用下一预期的16兆字节偏移字段检测此条件。当处理每个HBA获取或存储请求时,数据路由器硬件相对于ACW中的下一预期的16兆字节偏移字段检查HBA请求中的PCIe 16兆字节偏移。如果它们匹配,则数据路由器将将下一预期的16兆字节偏移字段递增HBA事务的大小,向或从数据存储器移动数据,并处理数据校验字。如果所述字段不匹配并且HBA地址大于预期的HBA地址,则当前HBA事务被数据路由器硬件以乱序接收,并且数据路由器硬件将此HBA请求重新入队在存储或获取阵列队列的底部。
HBA请求被第一次入队在队列的底部时,在用于该HBA请求的控制数据中写入时间戳。此控制数据被用于追踪队列中的HBA请求。每次帧“冒(bubble)”到队列的顶部用于再次处理、并且由于未接收到具有匹配的16兆字节偏移字段的HBA请求而必须被重入队时,检查时间戳。如果时间戳超过可配置的“生存时间”(即超时时段),则该HBA请求在其上等待的在前帧被认为丢失了。当检测到丢失帧的情形时,将ACW丢失HBA请求(HPF-DR响应字比特8)设置为1。
用于主机存储器存储的乱序HBA请求可以被如下处理。一旦ACW丢失HBA请求比特被设置为1,则用于此HBA请求的载荷被丢弃,并且读丢弃比特252也被设置为1。这确保丢弃针对此ACW的具有要存储在主机存储器中的数据的所有后续HBA请求。然而,如果存在,任何首标信息总是被存储在ACW中且永不被丢弃。
当每个HBA请求被丢弃时,在ACW中递减活动请求计数290,完全与当常规处理HBA请求时一样进行。对于被丢弃的HBA请求,不检查16兆字节偏移。在固件从HBA接收到针对此I/O操作的完成中断之后,固件检查来看用于此ACW的活动请求计数290是否已经变为0。当活动请求计数已变为0时,针对此ACW的存储阵列队列中的所有HBA请求都已被处理。
对于接收的将数据存储到主机存储器中的HBA请求中的16兆字节偏移180小于下一预期的16兆字节偏移264的情况,丢弃此请求,因为用于此请求的数据之前已被存储在主机存储器中。因为之前存储的数据被用于计算ACW中的数据校验字的当前值,所以如果存储在主机存储器中的在前数据不正确,则数据校验字将标记错误。
用于主机存储器获取的乱序HBA请求可以被如下处理。一旦在ACW中丢失HBA请求比特被设置为1,并且在等待丢失的HBA获取请求时“生存时间”过期,则数据路由器硬件将利用具有设置为完成器异常中断的完成状态的TLP完成响应HBA获取请求,并在此ACW中将写丢弃比特252设置为1,以确保将利用具有设置为完成器异常中断的完成状态的TLP完成响应针对此ACW接收的所有后续HBA获取请求。
对于接收的用于从主机存储器获取数据的HBA请求中的地址小于下一预期偏移的实例,数据路由器硬件将利用具有设置为完成器异常中断的完成状态的TLP完成响应该请求。
示例实施例的技术效果和益处包括经由信道直接访问主机存储器的网络接口的能力,同时在不需要在信道中存储输入或输出数据的情况下,提供信道存储首标信息和提供错误检查的能力。通过允许直接寻址主机存储器,这里所描述的系统和方法允许安装高性能的HBA(例如,支持8Gbit或以上的链路速度),而不需要重新设计存储和转换信道模型来提供微处理器速度和本地信道存储器宽度,以支持这样的高性能HBA。它们还提供用于当前提供的失败HBA的错误检查的必要隔离。此外,这里所描述的系统和方法允许使用仅配置有一个地址空间的HBA寻址主机存储器中的多个地址空间。
利用使HBA直接寻址主机存储器的方法,不必重新设计本地信道存储器的微处理器性能和带宽要求来满足新HBA提高的性能要求。
其它技术效果包括:提供向附接的HBA给出访问主机存储器中的任何区中的任何地址、以及本地信道存储器中的区域的能力的装置;提供获得HBA与用于当前信道实施方式而存在的zSeries主机的等效隔离的装置;提供当数据路由器从或向主机存储器获取或存储用于该IU的数据时,信道在输出IU上插入信息单元(IU)首标信息,以及移除来自进入的IU的IU首标信息且将来自进入的IU的IU首标信息本地地存储在信道中的装置;提供在进入的数据上验证数据校验字,以及在TIDAL的控制下和在数据路由器向或从主机存储器存储或获取数据时输出数据的末尾处,产生和插入中间数据检验字到输出数据上的装置;提供在未以正确的逻辑帧顺序从HBA接收到HBA请求的情况下,重新排序从HBA接收的请求,以及检查HBA请求或帧是否丢失的装置;提供在不干扰任何其它活动I/O操作的情况下,结束许多I/O操作中该数据路由器可能正与其一起工作的一个I/O操作的好装置;并且提供检测是否正在使用不实际但架构上有效的传输间接数据地址列表的装置,该传输间接数据地址列表需要处理额外的主机存储器请求,因此防止主机存储器请求被即时地处理。
这里所使用的词汇仅是为了描述特定实施例的目的,而不意在作为本发明的限制。如这里所适用的,单数形式也意在包括复数形式,除非上下文清楚地指出不是如此。还将理解,术语“包括”和/或“包含”当被用于本说明书中时,表明存在所述特征、整数、步骤、操作、元素和/或组件,但不排除一个或多个其它特征、整数、步骤、操作、元素、组件和/或其组合的存在或添加。
权利要求中的所有装置或步骤以及功能单元的对应结构、材料、动作和等同体意在包括任何结构、材料或动作,用于与这里特别要求权利的其它要求权利组合地执行功能。已经为了示例性和说明性的目的呈现了本发明的说明,但该说明不意在是穷举的或将本发明限制到所公开的形式。对于本领域的普通技术人员而言将很明显,在不偏移本发明的范围和精神的情况下可以进行许多修改和改变。为了更好地说明本发明的原理和实际应用,以及为了使得本领域的其它普通技术人员能够针对具有适于所构思的特定适用的各种修改的各种实施例理解本发明,而选择和说明了实施例。
如本领域的技术人员将理解的,本发明的各个方面可以被实施为系统、方法和计算机程序产品。因此,本发明的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者包含软件和硬件方面的实施例的形式,这里它们可以全部一般地称为“电路”、“模块”或“系统”。此外,本发明的各个方面可以采用在一个或多个计算机可读介质中实施的计算机程序产品的形式,所述介质中包含计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光、电磁、红外、或半导体系统、装置、器件、或前者的任何合适的组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下:具有一个或多个线的电连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只读存储器、可擦除可编程只读存储器(EPROM或闪存存储器)、光纤、便携式光盘只读存储器(CDROM)、光存储器、磁存储器、或者前者的任何合适的组合。在此文件的上下文中,计算机可读存储介质可以是任何有形介质,其包含或存储用于与指令执行系统、装置或器件一起使用的程序。
计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括但不限于电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。
可以使用任何合适的介质传送实施在计算机可读介质上的程序,包括但不限于无线、有线、光纤缆线、RF等,或者前者的任意合适的组合。
可以用一个或多个编程语言的任意组合编写用于执行本发明的各个方面的操作的计算机程序代码,包括面向对象的编程语言(诸如Java、Smalltalk、C++等)以及传统的过程编程语言(诸如“C”编程语言等)。程序代码可以全部在用户的计算机上执行,部分在用户的计算机上执行,作为独立地软件包执行,部分在用户的计算机上部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。
下面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图说明本发明的各个方面。本领域的普通技术人员将理解,可以通过计算机程序指令实施流程图和/或框图的每个块以及流程图和/或框图中的块的组合。这些计算机程序指令可以被提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器,以产生机器,从而经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于实施流程图和/或框图中指定的功能/动作的装置(means)。
这些计算机程序指令也可以存储在计算机可读介质中,其指引计算机、其他可编程数据处理设备或其他装置以特定的方式工作,从而存储在计算机可读介质中的指令产生产品,该产品包括实施流程图和/或框图中指定的功能/动作的指令。
计算机程序指令也可以被加载到计算机、其他可编程数据处理设备或其他装置中,以使得在计算机、其他可编程数据处理设备或其他装置中执行一系列操作步骤,以便产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实施流程图和/或框图中指定的功能/动作的进程。
这里所描绘的流程图仅是一个示例。对于这里所描述的此图或步骤(或操作)可以存在各种变型,而不偏离本发明的精神。例如,可以以不同的顺序执行这些步骤,或者可以添加、删除或修改步骤。所有这些变型被认为是所要求权利的发明的一部分。
虽然已经描述了本发明的优选实施例,但将理解,本领域的技术人员现在以及将来可以进行各种改进和增强,其也落入所附权利要求的范围内。这些权利要求被构造为保持对首次描述的发明的合适保护。
Claims (15)
1.一种在配置用于与控制单元通信的主机计算机系统中执行输入/输出(I/O)处理操作的方法,所述方法包括:
在所述主机计算机系统中的信道子系统处获取有关I/O操作的信息,所述信道子系统包括具有信道处理器和本地信道存储器的至少一个信道;
产生至少一个地址控制字(ACW),所述至少一个ACW指定一个或多个主机存储器位置,用于在所述主机计算机系统和所述控制单元之间传输数据,并且将所述至少一个ACW存储在所述本地信道存储器中,所述至少一个ACW包括数据丢弃字段;
为由所述I/O操作指定的每个数据传输产生地址控制结构,并将每个地址控制结构从所述至少一个信道转发到所述信道子系统与至少一个I/O设备之间的网络接口,每个地址控制结构指定对应ACW在所述本地信道存储器中的位置;
经由所述网络接口将I/O命令消息转发到所述至少一个I/O设备;
响应于所述I/O命令消息,从所述网络接口接收一个或多个数据传输请求,每个数据传输请求包括对应地址控制结构指定的位置信息;
访问数据传输请求中的地址字段指定的本地信道存储器位置处的ACW,并将所述数据传输请求路由到所述ACW中指定的主机存储器位置;以及
响应于在所述访问和所述路由中的至少一个期间遇到错误,丢弃所述一个或多个数据传输请求,并将所述数据丢弃字段设置为指示所述信道丢弃与所述ACW关联的任何后续数据传输请求的值。
2.如权利要求1所述的方法,其中所述数据丢弃字段是所述ACW中的丢弃比特,并且设置所述丢弃比特包括:将所述值从0设为1。
3.如权利要求1所述的方法,响应于所述信道接收后续数据传输请求,访问所述ACW,并且响应于所述丢弃比特具有1的值,丢弃所述后续数据传输请求。
4.如权利要求1所述的方法,其中接收所述数据传输请求包括:
将所述一个或多个数据传输请求中的每个路由到从获取阵列队列和存储阵列队列中选择的请求队列,所述获取阵列队列配置为保存针对所述主机存储器中的输出数据的一个或多个连续的输出数据请求,所述存储阵列队列配置为保存用于将输入数据存储到所述主机存储器中的一个或多个连续的输入数据请求;以及
当数据传输请求到达所述请求队列的顶部时,将所述一个或多个数据传输请求从所述请求队列路由到处理逻辑,所述处理逻辑配置为产生主机存储器请求。
5.如权利要求4所述的方法,其中所述一个或多个数据传输请求包括一个或多个输出数据请求,所述一个或多个输出数据请求请求传输来自所述主机存储器的输出数据,并包括传输写数据ACW的本地信道存储器地址,
并且所述丢弃包括:
使所述获取阵列队列中的一个或多个输出数据请求以及任何后续输出数据请求停止被传输到所述处理逻辑;以及
将所述传输写数据ACW中的丢弃比特设置为1。
6.如权利要求5所述的方法,还包括丢弃具有对应于所述传输写数据ACW的地址控制结构的任何输入数据传输请求和任何主机存储器请求,以及以异常中断状态响应所述一个或多个输出数据传输请求。
7.如权利要求4所述的方法,其中所述一个或多个数据传输请求包括一个或多个输入数据请求,所述一个或多个输入数据请求请求向所述主机存储器中传输输入数据、并且包括传输读数据ACW的本地信道存储器地址,
并且所述丢弃包括:
使所述存储阵列队列中的一个或多个输入数据请求以及任何后续输入数据请求停止被传输到所述处理逻辑;以及
将所述传输读数据ACW中的丢弃比特设置为1。
8.如权利要求7所述的方法,丢弃还包括:
利用对应于已根据从所述存储阵列队列路由来的输入数据请求产生并在所述处理逻辑中等待处理的主机存储器请求的数目的值设置计数器;
针对从所述主机存储器接收的每个主机存储器响应而递减所述值,直到所述值为指示所有主机存储器响应都已被接收的0值;以及
防止作出对应于所述传输读数据ACW的任何其它主机存储器请求。
9.一种在配置用于与控制单元通信的主机计算机系统中执行输入/输出(I/O)处理操作的装置,所述主机计算机系统包括信道子系统,所述信道子系统配置为经由网络接口与所述控制单元通信,所述信道子系统配置为执行:
在所述主机计算机系统中的信道子系统处获取有关I/O操作的信息,所述信道子系统包括具有信道处理器和本地信道存储器的至少一个信道;
产生至少一个地址控制字(ACW),所述至少一个ACW指定一个或多个主机存储器位置,用于在所述主机计算机系统和所述控制单元之间传输数据,并且将所述至少一个ACW存储在所述本地信道存储器中,所述至少一个ACW包括数据丢弃字段;
为由所述I/O操作指定的每个数据传输产生地址控制结构,并将每个地址控制结构从所述至少一个信道转发到所述信道子系统与至少一个I/O设备之间的网络接口,每个地址控制结构指定对应ACW在所述本地信道存储器中的位置;
经由所述网络接口将I/O命令消息转发到所述至少一个I/O设备;
响应于所述I/O命令消息,从所述网络接口接收一个或多个数据传输请求,每个数据传输请求包括对应地址控制结构指定的位置信息;
访问数据传输请求中的地址字段指定的本地信道存储器位置处的ACW,并将所述数据传输请求路由到所述ACW中指定的主机存储器位置;以及
响应于在所述访问和所述路由中的至少一个期间遇到错误,丢弃所述一个或多个数据传输请求,并将所述数据丢弃字段设置为指示所述信道丢弃与所述ACW关联的任何后续数据传输请求的值。
10.如权利要求9所述的装置,其中所述数据丢弃字段是所述ACW中的丢弃比特,并且设置所述丢弃比特包括:将所述值从0设为1。
11.如权利要求9所述的装置,响应于所述信道接收后续数据传输请求,访问所述ACW,并且响应于所述丢弃比特具有1的值,丢弃所述后续数据传输请求。
12.如权利要求9所述的装置,其中接收所述数据传输请求包括:
将所述一个或多个数据传输请求中的每个路由到从获取阵列队列和存储阵列队列中选择的请求队列,所述获取阵列队列配置为保存针对所述主机存储器中的输出数据的一个或多个连续的输出数据请求,所述存储阵列队列配置为保存用于将输入数据存储到所述主机存储器中的一个或多个连续的输入数据请求;以及
当数据传输请求到达所述请求队列的顶部时,将所述一个或多个数据传输请求从所述请求队列路由到处理逻辑,所述处理逻辑配置为产生主机存储器请求。
13.如权利要12所述的装置,其中所述一个或多个数据传输请求包括一个或多个输出数据请求,所述一个或多个输出数据请求请求传输来自所述主机存储器的输出数据,并包括传输写数据ACW的本地信道存储器地址,
并且所述丢弃包括:
使所述获取阵列队列中的一个或多个输出数据请求以及任何后续输出数据请求停止被传输到所述处理逻辑;以及
将所述传输写数据ACW中的丢弃比特设置为1。
14.如权利要求12所述的装置,其中所述一个或多个数据传输请求包括一个或多个输入数据请求,所述一个或多个输入数据请求请求向所述主机存储器中传输输入数据,并且包括传输读数据ACW的本地信道存储器地址,
并且所述丢弃包括:
使所述存储阵列队列中的一个或多个输入数据请求以及任何后续输入数据请求停止被传输到所述处理逻辑;以及
将所述传输读数据ACW中的丢弃比特设置为1。
15.如权利要求14所述的装置,其中丢弃还包括:
利用对应于已根据从所述存储阵列队列路由来的输入数据请求产生并在所述处理逻辑中等待处理的主机存储器请求的数目的值设置计数器;
针对从所述主机存储器接收的每个主机存储器响应而递减所述值,直到所述值为指示所有主机存储器响应都已被接收的0值;以及
防止作出对应于所述传输读数据ACW的任何其它主机存储器请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/150,583 | 2011-06-01 | ||
US13/150,583 US9021155B2 (en) | 2011-06-01 | 2011-06-01 | Fibre channel input/output data routing including discarding of data transfer requests in response to error detection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810081A true CN102810081A (zh) | 2012-12-05 |
CN102810081B CN102810081B (zh) | 2015-07-29 |
Family
ID=46209145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210165857.XA Expired - Fee Related CN102810081B (zh) | 2011-06-01 | 2012-05-25 | 光纤信道输入/输出数据路由系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9021155B2 (zh) |
CN (1) | CN102810081B (zh) |
DE (1) | DE102012209016B4 (zh) |
GB (1) | GB2491440B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778041A (zh) * | 2021-11-11 | 2021-12-10 | 西安热工研究院有限公司 | Dcs控制器间通讯数据生成方法和系统、设备及存储介质 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364854B2 (en) * | 2011-06-01 | 2013-01-29 | International Business Machines Corporation | Fibre channel input/output data routing system and method |
US9473590B1 (en) | 2012-12-21 | 2016-10-18 | Emc Corporation | Client connection establishment over fibre channel using a block device access model |
US9647905B1 (en) | 2012-12-21 | 2017-05-09 | EMC IP Holding Company LLC | System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval |
US9270786B1 (en) | 2012-12-21 | 2016-02-23 | Emc Corporation | System and method for proxying TCP connections over a SCSI-based transport |
US9407601B1 (en) | 2012-12-21 | 2016-08-02 | Emc Corporation | Reliable client transport over fibre channel using a block device access model |
US9509797B1 (en) | 2012-12-21 | 2016-11-29 | Emc Corporation | Client communication over fibre channel using a block device access model |
US9237057B1 (en) | 2012-12-21 | 2016-01-12 | Emc Corporation | Reassignment of a virtual connection from a busiest virtual connection or locality domain to a least busy virtual connection or locality domain |
US9591099B1 (en) | 2012-12-21 | 2017-03-07 | EMC IP Holding Company LLC | Server connection establishment over fibre channel using a block device access model |
US9514151B1 (en) | 2012-12-21 | 2016-12-06 | Emc Corporation | System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service |
US9473591B1 (en) | 2012-12-21 | 2016-10-18 | Emc Corporation | Reliable server transport over fibre channel using a block device access model |
US9232000B1 (en) | 2012-12-21 | 2016-01-05 | Emc Corporation | Method and system for balancing load across target endpoints on a server and initiator endpoints accessing the server |
US9531765B1 (en) | 2012-12-21 | 2016-12-27 | Emc Corporation | System and method for maximizing system data cache efficiency in a connection-oriented data proxy service |
US9712427B1 (en) | 2012-12-21 | 2017-07-18 | EMC IP Holding Company LLC | Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model |
US9563423B1 (en) * | 2012-12-21 | 2017-02-07 | EMC IP Holding Company LLC | System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service |
US9473589B1 (en) | 2012-12-21 | 2016-10-18 | Emc Corporation | Server communication over fibre channel using a block device access model |
US9348596B2 (en) | 2013-06-28 | 2016-05-24 | International Business Machines Corporation | Forming instruction groups based on decode time instruction optimization |
US9361144B2 (en) | 2013-06-28 | 2016-06-07 | Globalfoundries Inc. | Predictive fetching and decoding for selected return instructions |
US9619230B2 (en) | 2013-06-28 | 2017-04-11 | International Business Machines Corporation | Predictive fetching and decoding for selected instructions |
US9513924B2 (en) | 2013-06-28 | 2016-12-06 | Globalfoundries Inc. | Predictor data structure for use in pipelined processing |
US9372695B2 (en) | 2013-06-28 | 2016-06-21 | Globalfoundries Inc. | Optimization of instruction groups across group boundaries |
US9104637B2 (en) | 2013-12-04 | 2015-08-11 | Oracle International Corporation | System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface |
US9311044B2 (en) * | 2013-12-04 | 2016-04-12 | Oracle International Corporation | System and method for supporting efficient buffer usage with a single external memory interface |
US11115340B2 (en) | 2018-06-26 | 2021-09-07 | International Business Machines Corporation | Guaranteed delivery in receiver side overcommitted communication adapters |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1025518C (zh) * | 1989-09-22 | 1994-07-20 | 国际商业机器公司 | 利用管道接口异步传送控制元素的设备与方法 |
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 |
CN101946246A (zh) * | 2008-02-14 | 2011-01-12 | 国际商业机器公司 | 在i/o处理系统的通道子系统处提供控制块的间接数据寻址 |
Family Cites Families (223)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1264096A (zh) | 1970-06-27 | 1972-02-16 | ||
US3693161A (en) | 1970-07-09 | 1972-09-19 | Burroughs Corp | Apparatus for interrogating the availability of a communication path to a peripheral device |
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 |
US4080649A (en) | 1976-12-16 | 1978-03-21 | Honeywell Information Systems Inc. | Balancing the utilization of I/O system processors |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
US4380046A (en) | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4374415A (en) | 1980-07-14 | 1983-02-15 | International Business Machines Corp. | Host control of suspension and resumption of channel program execution |
US4414644A (en) * | 1981-04-03 | 1983-11-08 | International Business Machines Corporation | Method and apparatus for discarding data from a buffer after reading such data |
US4455605A (en) | 1981-07-23 | 1984-06-19 | International Business Machines Corporation | Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices |
US4497022A (en) | 1982-10-19 | 1985-01-29 | International Business Machines Corporation | Method and apparatus for measurements of channel operation |
US4564903A (en) | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
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 |
US4843541A (en) | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
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 |
US5185736A (en) | 1989-05-12 | 1993-02-09 | Alcatel Na Network Systems Corp. | Synchronous optical transmission system |
DE69028462T2 (de) | 1989-08-11 | 1997-03-27 | Ibm | Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung |
EP0424618A3 (en) | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
DE3938520A1 (de) | 1989-11-21 | 1991-05-29 | Teves Gmbh Alfred | Verfahren und system zur messdatenerfassung und -auswertung |
AU650242B2 (en) | 1989-11-28 | 1994-06-16 | International Business Machines Corporation | Methods and apparatus for dynamically managing input/output (I/O) connectivity |
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 |
US5170472A (en) | 1991-03-28 | 1992-12-08 | International Business Machines Corp. | Dynamically changing a system i/o configuration definition |
US5644712A (en) | 1991-06-05 | 1997-07-01 | International Business Machines Corporation | Indirect addressing of channels via logical channel groups |
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 |
US5805808A (en) * | 1991-12-27 | 1998-09-08 | Digital Equipment Corporation | Real time parser for data packets in a communications network |
US5301321A (en) * | 1992-02-21 | 1994-04-05 | International Business Machines Corporation | Method and system for the minimization of conflicting activities with respect to an object stored within a data processing system |
US5388219A (en) | 1992-03-02 | 1995-02-07 | International Business Machines Corporation | Efficient channel and control unit for host computer |
CA2086691C (en) | 1992-03-30 | 1997-04-08 | David A. Elko | Communicating messages between processors and a coupling facility |
US5317739A (en) | 1992-03-30 | 1994-05-31 | International Business Machines Corp. | Method and apparatus for coupling data processing systems |
US5414851A (en) | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
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 |
US5452455A (en) | 1992-06-15 | 1995-09-19 | International Business Machines Corporation | Asynchronous command support for shared channels for a computer complex having multiple operating systems |
US5265240A (en) | 1992-07-24 | 1993-11-23 | International Business Machines Corporation | Channel measurement method and means |
US5301323A (en) | 1992-10-30 | 1994-04-05 | International Business Machines Corp. | Data processing system including dynamic channel path management |
JP2566728B2 (ja) | 1992-10-30 | 1996-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 論理径路スケジューリング装置及び実行方法 |
JP2840511B2 (ja) | 1992-12-10 | 1998-12-24 | 富士通株式会社 | 磁気テープ装置を用いたサブシステムのエラー回復処理装置及び方法 |
US5526484A (en) | 1992-12-10 | 1996-06-11 | International Business Machines Corporation | Method and system for pipelining the processing of channel command words |
US5528755A (en) | 1992-12-22 | 1996-06-18 | International Business Machines Corporation | Invalid data detection, recording and nullification |
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 |
JP3528094B2 (ja) | 1994-02-09 | 2004-05-17 | 株式会社日立製作所 | バス利用方法および記憶制御装置 |
US6769009B1 (en) | 1994-05-31 | 2004-07-27 | Richard R. Reisman | Method and system for selecting a personalized set of information channels |
US5907684A (en) | 1994-06-17 | 1999-05-25 | International Business Machines Corporation | Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image |
US5548791A (en) | 1994-07-25 | 1996-08-20 | International Business Machines Corporation | Input/output control system with plural channel paths to I/O devices |
US5860022A (en) | 1994-07-26 | 1999-01-12 | Hitachi, Ltd. | Computer system and method of issuing input/output commands therefrom |
EP0712220A1 (en) * | 1994-11-08 | 1996-05-15 | International Business Machines Corporation | Hop-by-hop flow control in an ATM network |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
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 |
US5671441A (en) | 1994-11-29 | 1997-09-23 | International Business Machines Corporation | Method and apparatus for automatic generation of I/O configuration descriptions |
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 |
US5680580A (en) | 1995-02-28 | 1997-10-21 | International Business Machines Corporation | Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request connect frame in response to the setting bit |
US5742845A (en) | 1995-06-22 | 1998-04-21 | Datascape, Inc. | System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network |
JP3225804B2 (ja) | 1995-09-05 | 2001-11-05 | 株式会社日立製作所 | 入出力チャネルの拡張方式 |
US5996026A (en) | 1995-09-05 | 1999-11-30 | Hitachi, Ltd. | Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information |
JP3503948B2 (ja) | 1995-09-13 | 2004-03-08 | 株式会社 日立製作所 | 電子計算機システム |
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 |
US5793983A (en) | 1996-01-22 | 1998-08-11 | International Business Machines Corp. | Input/output channel interface which automatically deallocates failed subchannel and re-segments data block for transmitting over a reassigned subchannel |
US5812877A (en) | 1996-03-15 | 1998-09-22 | Adaptec, Inc. | I/O command block chain structure in a memory |
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 |
US5901327A (en) | 1996-05-28 | 1999-05-04 | Emc Corporation | Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring |
US6108655A (en) | 1996-07-19 | 2000-08-22 | Cisco Technology, Inc. | Method and apparatus for transmitting images and other objects over a computer network system |
SG101460A1 (en) | 1997-02-14 | 2004-01-30 | Canon Kk | Data communication apparatus and method |
JP3697831B2 (ja) | 1997-04-18 | 2005-09-21 | 株式会社日立製作所 | コンピュータシステム |
TW375529B (en) | 1997-05-14 | 1999-12-01 | Sega Corp | Data transmission method and game system using the same |
US5918028A (en) | 1997-07-08 | 1999-06-29 | Motorola, Inc. | Apparatus and method for smart host bus adapter for personal computer cards |
US6263380B1 (en) | 1997-10-14 | 2001-07-17 | Mitutoyo Corporation | Measurement data processing unit |
US6460087B1 (en) | 1998-02-25 | 2002-10-01 | Kdd Corporation | Method of transferring file |
US6360282B1 (en) | 1998-03-25 | 2002-03-19 | Network Appliance, Inc. | Protected control of devices by user applications in multiprogramming environments |
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 |
US6185631B1 (en) | 1998-10-14 | 2001-02-06 | International Business Machines Corporation | Program 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 |
US6195330B1 (en) | 1998-11-05 | 2001-02-27 | David C. Sawey | Method and system for hit-less switching |
KR100273641B1 (ko) * | 1998-11-11 | 2000-12-15 | 윤종용 | 공통 메모리 스위치에서 셀 그룹 처리장치 및 그 처리방법 |
JP3990833B2 (ja) | 1998-12-11 | 2007-10-17 | キヤノン株式会社 | 通信制御方法及び装置 |
US6347334B1 (en) | 1999-01-06 | 2002-02-12 | Mcdata Corporation | Self-description extended link service for networks |
US6772207B1 (en) | 1999-01-28 | 2004-08-03 | Brocade Communications Systems, Inc. | System and method for managing fibre channel switching devices |
US6351779B1 (en) | 1999-03-12 | 2002-02-26 | Agilent Technologies, Inc. | Extension library to standard visa library for support of complex I/O functions |
US6484217B1 (en) | 1999-04-20 | 2002-11-19 | International Business Machines Corporation | Managing shared devices in a data processing system |
US6401223B1 (en) * | 1999-05-21 | 2002-06-04 | Unisys Corporation | Programmable system for invalidating pending requests within a data processing system |
TW549004B (en) | 1999-06-15 | 2003-08-21 | Matsushita Electric Works Ltd | Portable programming device for supervisory remote control system |
US6718139B1 (en) | 1999-09-13 | 2004-04-06 | Ciena Corporation | Optical fiber ring communication system |
US6609165B1 (en) | 1999-09-27 | 2003-08-19 | International Business Machines Corporation | Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration |
US6651125B2 (en) | 1999-09-28 | 2003-11-18 | International Business Machines Corporation | Processing channel subsystem pending I/O work queues based on priorities |
US6718419B1 (en) * | 1999-11-17 | 2004-04-06 | Globespanvirata, Inc. | System and method for extending the number of addressable physical devices on a data bus |
US6584511B1 (en) | 2000-03-24 | 2003-06-24 | Unisys Corporation | Loop initialization procedure exception handling for fibre channel transmissions |
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 |
US6594785B1 (en) * | 2000-04-28 | 2003-07-15 | Unisys Corporation | System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions |
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 | 伝送方法、伝送システム、伝送装置及び伝送制御装置 |
PT1362499E (pt) | 2000-08-31 | 2012-04-18 | Dolby Lab Licensing Corp | Processo para dispositivo para descodificação matricial áudio |
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 |
US6751683B1 (en) | 2000-09-29 | 2004-06-15 | International Business Machines Corporation | Method, system and program products for projecting the impact of configuration changes on controllers |
US6678748B2 (en) | 2000-09-29 | 2004-01-13 | Emc Corporation | Method for optimizing multiple input/output requests to a single logical device |
US6950888B1 (en) | 2000-09-29 | 2005-09-27 | International Business Machines Corporation | Method, system and program products for determining whether I/O constraints exist for controllers of a computing environment |
US6594712B1 (en) * | 2000-10-20 | 2003-07-15 | Banderacom, Inc. | Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link |
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 |
US7155569B2 (en) | 2001-02-28 | 2006-12-26 | Lsi Logic Corporation | Method for raid striped I/O request generation using a shared scatter gather list |
US6834363B2 (en) | 2001-03-22 | 2004-12-21 | International Business Machines Corporation | Method for prioritizing bus errors |
US6898202B2 (en) | 2001-06-27 | 2005-05-24 | International Business Machines Corporation | Method, apparatus and computer program for informing a requesting device of port configuration changes in a computer network switching device |
US20030056000A1 (en) | 2001-07-26 | 2003-03-20 | Nishan Systems, Inc. | Transfer ready frame reordering |
US6754738B2 (en) | 2001-09-28 | 2004-06-22 | International Business Machines Corporation | Low overhead I/O interrupt |
US7315911B2 (en) | 2005-01-20 | 2008-01-01 | Dot Hill Systems Corporation | Method for efficient inter-processor communication in an active-active RAID system using PCI-express links |
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 |
US7512133B2 (en) | 2001-12-03 | 2009-03-31 | International Business Machines Corporation | Method and apparatus for obtaining multiple port addresses by a fibre channel from a network fabric |
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 |
US7085860B2 (en) | 2002-01-11 | 2006-08-01 | International Business Machines Corporation | Method and apparatus for a non-disruptive recovery of a single partition in a multipartitioned data processing system |
US7007142B2 (en) | 2002-02-19 | 2006-02-28 | Intel Corporation | Network data storage-related operations |
US7099814B2 (en) | 2002-03-29 | 2006-08-29 | International Business Machines Corportion | I/O velocity projection for bridge attached channel |
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 |
US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
JP4704659B2 (ja) | 2002-04-26 | 2011-06-15 | 株式会社日立製作所 | 記憶装置システムの制御方法および記憶制御装置 |
US20030208581A1 (en) | 2002-05-02 | 2003-11-06 | Behren Paul D. Von | Discovery of fabric devices using information from devices and switches |
US7120728B2 (en) | 2002-07-31 | 2006-10-10 | Brocade Communications Systems, Inc. | Hardware-based translating virtualization switch |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
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 |
US7418574B2 (en) | 2002-10-31 | 2008-08-26 | Lockheed Martin Corporation | Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction |
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 |
US7000036B2 (en) | 2003-05-12 | 2006-02-14 | International Business Machines Corporation | Extended input/output measurement facilities |
US7085898B2 (en) | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Coherency management for a “switchless” distributed shared memory computer system |
US7058735B2 (en) | 2003-06-02 | 2006-06-06 | Emulex Design & Manufacturing Corporation | Method and apparatus for local and distributed data memory access (“DMA”) control |
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 |
US7149823B2 (en) | 2003-08-29 | 2006-12-12 | Emulex Corporation | System and method for direct memory access from host without processor intervention wherein automatic access to memory during host start up does not occur |
KR100829471B1 (ko) | 2003-10-17 | 2008-05-19 | 니폰덴신뎅와 가부시키가이샤 | 메일 배송 시스템, 메일 배송방법 및 메일 배송 프로그램 |
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 |
US7382733B2 (en) | 2004-02-12 | 2008-06-03 | International Business Machines Corporation | Method for handling reordered data packets |
US7133988B2 (en) | 2004-02-25 | 2006-11-07 | Hitachi, Ltd. | Method and apparatus for managing direct I/O to storage systems in virtualization |
US20050223291A1 (en) | 2004-03-24 | 2005-10-06 | Zimmer Vincent J | Methods and apparatus to provide an execution mode transition |
JP2005293363A (ja) | 2004-04-01 | 2005-10-20 | Toshiba Corp | ディスクアレイコントローラおよび情報処理装置 |
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 |
US7711871B1 (en) | 2004-08-30 | 2010-05-04 | Crossroads Systems, Inc. | Interface device and method for command processing |
US7443798B2 (en) | 2004-09-03 | 2008-10-28 | Agere Systems Inc. | Transmit adaptive equalization for communication system with one or more serial data channels |
US7577772B2 (en) | 2004-09-08 | 2009-08-18 | Qlogic, Corporation | Method and system for optimizing DMA channel selection |
GB2419198A (en) | 2004-10-14 | 2006-04-19 | Hewlett Packard Development Co | Identifying performance affecting causes in a data storage system |
US7398335B2 (en) | 2004-11-22 | 2008-07-08 | Qlogic, Corporation | Method and system for DMA optimization in host bus adapters |
JP4575119B2 (ja) | 2004-11-25 | 2010-11-04 | 株式会社日立製作所 | ストレージシステム |
US7164425B2 (en) | 2004-12-21 | 2007-01-16 | Qlogic Corporation | Method and system for high speed network application |
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 | データ処理システム、データ処理方法、及びプログラム |
US7970953B2 (en) | 2005-06-30 | 2011-06-28 | Intel Corporation | Serial ATA port addressing |
JP2007058646A (ja) | 2005-08-25 | 2007-03-08 | Hitachi Ltd | データ処理システム |
TW200733733A (en) | 2005-09-06 | 2007-09-01 | Nokia Corp | Enhanced signaling of pre-configured interaction message in service guide |
US7577773B1 (en) | 2005-09-09 | 2009-08-18 | Qlogic, Corporation | Method and system for DMA optimization |
JP4527640B2 (ja) | 2005-09-15 | 2010-08-18 | 株式会社ソニー・コンピュータエンタテインメント | データ読出装置 |
JP2007122108A (ja) | 2005-10-25 | 2007-05-17 | Hitachi Ltd | セルフチェック機能を有するディスクドライブ装置を用いたストレージシステムの制御 |
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 |
US20070162631A1 (en) | 2005-12-28 | 2007-07-12 | International Business Machines Corporation | Method for selectable software-hardware internet SCSI |
US7594057B1 (en) | 2006-01-09 | 2009-09-22 | Qlogic, Corporation | Method and system for processing DMA requests |
JP2007199975A (ja) | 2006-01-26 | 2007-08-09 | Hitachi Ltd | データ処理システム及びデータ処理方法 |
US9032164B2 (en) | 2006-02-17 | 2015-05-12 | Emulex Corporation | Apparatus for performing storage virtualization |
US7743197B2 (en) | 2006-05-11 | 2010-06-22 | Emulex Design & Manufacturing Corporation | System and method for virtualizing PCIe devices |
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 |
US7826349B2 (en) | 2006-05-30 | 2010-11-02 | Intel Corporation | Connection management mechanism |
US20080043563A1 (en) | 2006-08-15 | 2008-02-21 | International Business Machines Corporation | Flexibly controlling the transfer of data between input/output devices and memory |
US8032581B2 (en) | 2006-08-30 | 2011-10-04 | International Business Machines Corporation | Persistent information unit pacing |
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 |
US7668984B2 (en) | 2007-01-10 | 2010-02-23 | International Business Machines Corporation | Low latency send queues in I/O adapter hardware |
US7797414B2 (en) | 2007-01-31 | 2010-09-14 | International Business Machines Corporation | Establishing a logical path between servers in a coordinated timing network |
US8676219B2 (en) | 2007-04-13 | 2014-03-18 | Hart Communication Foundation | Combined wired and wireless communications with field devices in a process control environment |
US7765336B2 (en) | 2007-06-11 | 2010-07-27 | Emulex Design & Manufacturing Corporation | Autonomous mapping of protected data streams to fibre channel frames |
US8020074B2 (en) | 2007-08-24 | 2011-09-13 | Datadirect Networks, Inc. | Method for auto-correction of errors in a RAID memory system |
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 |
US8478915B2 (en) | 2008-02-14 | 2013-07-02 | International Business Machines Corporation | Determining extended capability of a channel path |
US7908403B2 (en) | 2008-02-14 | 2011-03-15 | International Business Machines Corporation | Reserved device access contention reduction |
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 |
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 |
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 |
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 |
US8082481B2 (en) | 2008-02-14 | 2011-12-20 | International Business Machines Corporation | Multiple CRC insertion in an output data stream |
US7941570B2 (en) | 2008-02-14 | 2011-05-10 | International Business Machines Corporation | Bi-directional data transfer within a single I/O operation |
US8001298B2 (en) | 2008-02-14 | 2011-08-16 | International Business Machines Corporation | Providing extended measurement data 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 |
US8108570B2 (en) | 2008-02-14 | 2012-01-31 | International Business Machines Corporation | Determining the state of an I/O operation |
US9052837B2 (en) | 2008-02-14 | 2015-06-09 | International Business Machines Corporation | Processing communication data in a ships passing condition |
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 |
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 |
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 |
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 |
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 |
GB2460841B (en) | 2008-06-10 | 2012-01-11 | Virtensys Ltd | Methods of providing access to I/O devices |
US7983257B2 (en) | 2008-07-18 | 2011-07-19 | Emulex Design & Manufacturing Corporation | Hardware switch for hypervisors and blade servers |
US7937504B2 (en) | 2008-07-31 | 2011-05-03 | International Business Machines Corporation | Transport control channel program message pairing |
US8055807B2 (en) | 2008-07-31 | 2011-11-08 | International Business Machines Corporation | Transport control channel program chain linking including determining sequence order |
US20100064072A1 (en) | 2008-09-09 | 2010-03-11 | Emulex Design & Manufacturing Corporation | Dynamically Adjustable Arbitration Scheme |
JP5107880B2 (ja) | 2008-12-10 | 2012-12-26 | 株式会社日立製作所 | データ転送処理装置及び方法 |
-
2011
- 2011-06-01 US US13/150,583 patent/US9021155B2/en not_active Expired - Fee Related
-
2012
- 2012-04-17 GB GB1206684.1A patent/GB2491440B/en active Active
- 2012-05-25 CN CN201210165857.XA patent/CN102810081B/zh not_active Expired - Fee Related
- 2012-05-29 DE DE102012209016.9A patent/DE102012209016B4/de active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1025518C (zh) * | 1989-09-22 | 1994-07-20 | 国际商业机器公司 | 利用管道接口异步传送控制元素的设备与方法 |
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 |
CN101946246A (zh) * | 2008-02-14 | 2011-01-12 | 国际商业机器公司 | 在i/o处理系统的通道子系统处提供控制块的间接数据寻址 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778041A (zh) * | 2021-11-11 | 2021-12-10 | 西安热工研究院有限公司 | Dcs控制器间通讯数据生成方法和系统、设备及存储介质 |
CN113778041B (zh) * | 2021-11-11 | 2022-02-15 | 西安热工研究院有限公司 | Dcs控制器间通讯数据生成方法和系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE102012209016A1 (de) | 2012-12-06 |
US9021155B2 (en) | 2015-04-28 |
CN102810081B (zh) | 2015-07-29 |
DE102012209016B4 (de) | 2014-01-02 |
GB201206684D0 (en) | 2012-05-30 |
GB2491440A (en) | 2012-12-05 |
US20120311199A1 (en) | 2012-12-06 |
GB2491440B (en) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102810081A (zh) | 光纤信道输入/输出数据路由系统和方法 | |
US9298379B2 (en) | Bi-directional data transfer within a single I/O operation | |
US8095847B2 (en) | Exception condition handling at a channel subsystem in an I/O processing system | |
US8140713B2 (en) | System and program products for facilitating input/output processing by using transport control words to reduce input/output communications | |
US8364853B2 (en) | Fibre channel input/output data routing system and method | |
JP5181141B2 (ja) | 入出力処理システムにおいて間接データ・アドレッシングを提供するための装置、並びにその方法およびコンピュータ・プログラム | |
US8082481B2 (en) | Multiple CRC insertion in an output data stream | |
US7502873B2 (en) | Facilitating access to status and measurement data associated with input/output processing | |
CN102811112B (zh) | 光纤信道输入/输出数据路由系统和方法 | |
CN102819503B (zh) | 光纤信道输入/输出数据路由系统和方法 | |
JP2011512591A5 (zh) | ||
CN103620571B (zh) | 光纤信道输入/输出数据路由系统和方法 | |
CN102819505B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150729 Termination date: 20200525 |