定时具有不同持续时间的操作的方法和系统的制作方法

文档序号:6612065阅读:215来源:国知局
专利名称:定时具有不同持续时间的操作的方法和系统的制作方法
技术领域
本发明一般地涉及操作定时,具体地说,涉及定时具有不同持续时间 的操作。
背景技术
大型计算机系统(例如,IBM的zSeries计算系统)已M成极其有 用的系统,主要是因为它们对企业不断变化的需求的适应性。zSeries系 统通常包括大型机,其中包括子通道控制块(SCB)、通道子系统(CSS)、 1/0配置、中央处理器以及主存储装置。CSS执行各种功能/操作,包括用 于启动向/从主存储装置移动数据的启动子通道(SSCH )操作。CSS还执行 暂停子通道(HSCH)操作和清除子通道(CSCH)操作,所述操作主要用于 当需要终止由SSCH指令启动的1/0活动或设备需要重置时重置设备以及子 通道控制块(SCB)。定时CSS中的特定1/0操作(包括那些与SCB 1/0操作相关的操作) 已变得非常重要。两个此类由CSS定时的I/O操作是HSCH操作和CSCH操 作。在z/Architecture Principle of Operation (POP) (IBMz〉司,2005 年9月,第5版,SA22-7832-04,在此引入作为参考)中从功能的角度说 明了这些操作。当前的定时方法对于定时操作4W用。但是,随着引入具有更复杂功 能的系统,例如,z990大型机上的多通道子系统(MCSS)功能,整体系统 以及每通il^础上的子通道数显著增加。这种子通道和SCB数的增加使当 前定时机制不那么有用。为了更好地理解与现有的定时方法关联的问题,从zSeries系统内部
角度考虑如何启动并当前定时CSCH操作。定时这些指令的常规过程包括使 用固件可访问存储器中的现有SCB,也称为石更件系统区域(HSA) 1002和 CSS 1000中的系统辅助处理器(SAP)。如果在CP 1001上运行的软件程 序启动了 CSCH指令,则执行CSCH指令的CP固件首先将CSCH指今i殳置到 SCB 1003中,然后继续将该SCB在工作队列(WQ) 1004的底部排队。在图 l示出的实例中,将SCB在WQ z的底部排队。然后,CP固件使用"暂停/ 清除信号"通过控制电路1010来发信号通知SAP z,后者是WQ z的"所 有者,,。该信号指示具有这些要处理的功能的一个或多个SCB已在由SAPz 拥有的WQz上排队。然后,SAPz从队列的顶部开始搜索WQz,查找HSCH 或CSCH指令来处理。跳过了具有其他类型的要处理的1/0操作(例如,启 动子通道(SSCH))的其他SCB。 一旦找到了具有HSCH或CSCH指令的SCB, 则SAP z将该SCB从WQ z中移除。在该实例中,将具有CSCH的SCB 1003 出队。如果这是第一次在该CSCH的上下文中将SCB 1003从WQ出队,则 SAP z 1005将时间戳(T/S) 1006存储到SCB中。如图2详细示出的,可 以从当前戳得出所述时间戳。图3中示出了包括在如上所述的常规定时过 程中和本背景技术部分的其余部分中的步骤的详细信息。返回参考图1, SAP z然后开始处理CSCH指令。如果需要将清除信号 发送到I/O配置1007中与正在为CSCH处理的SCB关联的设备,则SAP z 执行I/O路径选择,以确定将通过通道连接1009将清除信号传送到所需设 备的由CSS 1000中的通道路径标识符(CHPID)号标识的通道路径。例如, 如果选择了 CHPID 02或CHPID y,则SAP z可以发信号通知选定的CHPID 以执行CSCH。这是因为如混列线1008所示,这些CHPID与SAP z具有密 切关系。要了解"通道到SAP (或IOP)"密切关系的进一步说明,读者可 参考美国专利6, 973, 529。如果需要选择CHPID 01,则需要将具有CSCH 功能的SCB在WQ O的底部排队,因为在该实例中,CHPID 01和SAP O具 有密切关系。然后,SAP z将必须使用"暂停/清除信号"来通知SAP 0。 一旦该SCB升到WQ 0的顶部,SAP 0就执行与SAP z之前执行的步骤相同 的步骤,除了在子通道中插入T/S以外,因为已启动了定时。因此,WQ上 的此重新排队进一步延长了完成CSCH操作所花费的经过时间(ET)。如果SCB在WQ 0上,且SAP O将其出队,则SAP 0计算该CSCH的ET 并将其与CSCH的经过时间限制(ETL)比较,而非在SCB中存储新功能T/S。 一旦选择了路径,SAP O就通过CSS中的电路发信号通知CHPID以执行CSCH 操作。如果CHPID忙而不能接受该信号以执行CSCH操作,则SAPO将SCB 放回WQO,并重复在本险中说明的过程。如果在重复尝试后该忙碌情况没 有消除,则ET最终超过ETL并调用恢复,如图3详细示出的。如果CHPID 01能够处理CSCH操作,则SAP O在发信号通知CHPID 01 执行CSCH操作之后仍将SCB放回WQ 0,但是在SCB内设置了清除已发出 状态。此刻,SCB在WQ上只是对CSCH的完成定时。当CHPID 01完成CSCH 时(这可能涉及将清除信号发送到所需设备中),CHPID 01发信号通知SAP O它已完成了CSCH。然后SAP O将SCB从WQ 0出队并将CSCH操作的结果 报告回CP,该CP又发信号通知发出它的软件程序。如果发生了某种阻止 CHPID发信号通知SAP 0 CSCH操作完成的问题,则ET最终超过ETL,并为 该CHPID调用恢复,如图3所示。恢复导致该CHPID的重置,这不仅导致 CSCH完成,而且还导致该通道上的其他操作4皮重置,其可能导致一个或多 个通道控制检查(CCC)操作。CCC处理是一种形式的SCB恢复,该SCB恢复的执行由CSS中的在CSS 与特定子通道一起工作时遇到的错误所导致。CCC处理的高级说明也在上 面参考的POP文档中说明。如在CSCH操作的情况下,具有要执行的CCC 操作的SCB在WQ上排队。同样,作为CCC处理的一部分,通道通常被给予 将清除信号发出到与SCB关联的设备的主动权。CSCH和CCC处理之间的一 个区别是CSS发起CCC处理,而不是在CP上运行的OS发起CCC指令(如 发起CSCH指令那样)。尽管如此,WQ仍用于保持执行CCC操作以及对操 作完成定时的主动权。同样,对于HSCH和CSCH操作,在WQ上将SCB重新 排队可以出于相同的原因(例如,密切关系、忙碌路径以及定时)而发生。CCC处理与CSCH处理之间的另一个区别是选择的ETL。从各种错误恢 复导致CCC通常涉及在实际处理CCC之前重置在餘溪时与SCB —起工作的 整个通道。由于在重置通道上处理ccc的时间通常少于在已加载的通道上处理CSCH所花费的时间,所以通常将选择的完成CCC处理的ETL设置为低 于用于CSCH处理的ETL。所以,例如,通常将CSCH处理的ETL设置为14 秒(如HSCH处理的ETL),而将CCC处理的ETL通常设置为7秒。因此, 实现定时的代码需要具有根据功能区分各种ETL的逻辑。图4示出了常规定时过程中工作队列的状态以及对子通道控制块的定 时。在图4中,链接了具有双链接表(DLL)的WQ,所i^具有WQ标头4010 中的顶部/底部指针和SCB中由4020处的箭头指示的下一个/前一个指针。 每个SCB都示为具有要执行的SSCH、 HSCH、 CSCH或CCC操作。注意,显示 的每个SCB ET示出了将使用图3中的算法计算的ET,所述算法又使用每 个SCB中示出的当前T/S 4000以及任意的FUNC T/S。在该实例中,SCB 1 4001处于HSCH未发出状态,W示SAP尚未发 信号通知CHPID执行HSCH。为该HSCH首次将SCB 1放置在WQ G上,并且 示出了在4001处未设置任何FUNC T/S值。当SAP为该HSCH首次将SCB 从WQ出队时,将FUNC T/S设置到SCB中。SCB 2 4002处于HSCH已发出状态,这表示HSCH #议送到通道。仅作 为一种给予SAP定时HSCH操作的主动权的方式,SAP在将HSCH发送到通 道之后重新将SCB排队回WQ。完成发生在通道向SAP做出HSCH操作完成 的响应时,此时SAP将SCB从WQ中移除。同时,每次该SCB "上升"到队 列顶部时,SAP将其出队并计算ET以判定是否存在如图3中示出的超时。 如果没有超时,则将SCB在该WQ的底部重新排队。该SCB将很可能已多次 出队以检查超时并被重新排队,导致约4-7秒的ET。SCB 3 4003处于CSCH未发出状态。在设置了 FUNC T/S时,很可能已 尝试将CSCH操作发送到通道。在这种情况下,WQ 0用于向SAP提供继续 尝试将CSCH操作发送到通道的主动权。最可能的是,选定的通道忙并且 SCB必须在WQ上重新排队以稍后尝试。4003处的0. 5秒的ET反映了 SCB 3 尚未达到SCB 2重新排队的次数。SCB 4 4004处于CSCH已发出状态,这表示CSCH ,议送到通道。如同 SCB 2的HSCH已发出状态,SCB将在WQ上作为对CSCH操作完成定时的方 法。但是,在这种情况下,4005处的14. 2秒的ET已超过了 ETL超时值。 很可能该SCB在WQ上重新排队的次数多于SCB 2和SCB 3重新排队的次数。 由于ET高于该操作的14秒的ETL,所以当将该SCB出队时,SAP会采取适 当操作来恢复SCB 4以及通道,这又将导致CSCH操作完成。SCB 5处于CCC已发出状态。如同HSCH已发出和CSCH已发出状态, SCB 5将在WQ上作为一种定时CCC的方法。但是,对于CCC功能,ETL超 时不同于HSCH或CSCH功能,即,7秒对14秒。SCB6处于SSCH未发出状态。SSCH指令未由CSS定时。因此,不同于 HSCH、 CSCH和CCC功能, 一旦将SSCH发出到通道,就不会将SCB放回WQ 以便定时。因此, 一旦发出了SSCH,则在有关SSCH的WQ利用率方面,每 操作的开销更少。SSCH完成的速度是zSeries大型机的重要基准度量。因此,将减緩SSCH 处理的任何潜在性能瓶颈最小化很重要。多数时候,WQ上的大部分SCB通 常都具有SSCH功能要处理。但是,有时,HSCH和CSCH指令由0S用于恢 复情况中,并且CCC处理由CSS在CSS恢复操作期间启动。0S由此发出非常大量的HSCH指令(并可能有CSCH指令)的情况实例 是当FICON通道检测到结构外的链路故障并报告给OS时。当出现链路故障 时,OS为每个与该链路关联的设备执^i殳备恢复。这可能涉及大量设备以 及大量子通道控制块,每个都需要被发送HSCH指令并可能被发送CSCH指 令。即使有大量HSCH指令要处理,在过去对早期大型机的SSCH性能也没 有任何显著影响。但是,随着引入更复杂的子通道和SCB数量显著增加的大型机,WQ性 能可能受到影响,如果其用作〗呆持定时和处理功能(例如,HSCH、 CSCH和 CCC操作)的主动性的方法的话。增加WQ拥塞的是为定时而在WQ上多次 对同一 SCB重新排队和/或保持上述功能的主动权的需要。同样,通过使 SAP搜索WQ上具有未决HSCH或CSCH功能的SCB来给予HSCH和CSCH高优 先级的方法进一步推迟了处理SSCH。
因此,需要一种减少WQ瓶颈的新的操作定时技术。 发明内容根据示例性实施例,提供了使用定时队列和指令队列在多处理器多控 制块环境中定时操作的方法、计算机程序产品和系统。接收到针对子通道 控制块(SCB)的执行需被定时的操作的请求时,根据操作的经过超时限 制(ETL)在多个定时队列之一上排队SCB。每个操作都存在ETL,并且 多个定时队列中的每一个都与完成操作的ETL关联。可以将SCB放置在 定时队列底部,定时队列按从最早到最晚排序,此排序允许快速检查大量 被定时的SCB。可以进行超时检查而不必将SCB从定时队列出队,并且 如果定时队列顶部(最早)的SCB操作没有超时,则该定时队列上的任何 其他元素都无需被检查是否超时。接收到执行高优先级操作的请求时,CP 可将SCB排队在高优先级指令队列中。当为该SCB执行操作时,SAP将 来自此队列的元素从顶部出队。如果SAP需要重试操作,则SCB可以仍 位于定时队列以保留定时队列顺序并将被置于高优先级指令队列以重试操 作。完成操作或出现超时时,将SCB出队。如果在出现超时时SCB被出 队,则可以将其重新排队。可以由一个或多个SAP以循环方式检查一个或 多个定时队列以查找SCB操作超时。在查看以下附图及详细说明后,对于本领域的技术人员,根据实施例 的其他系统、方法和/或计算机程序产品将是显而易见的或将变得显而易 见。所有此类其他系统、方法和/或计算机程序产品都旨在#>包括在本说明 中、在本发明的范围内并由所附权利要求来保护。


在说明书结尾处的权利要求书中特别指出并明确要求保护了被视为本 发明的主题。从以下结合附图的详细说明中,本发明的上述和其他目标、 特性和优点是显而易见的,这些附图是图1示出了常规zSeries系统;
图2示出了如何从一天的时间中得出时间戳;图3示出了用于定时HSCH、 CSCH或CCC操作的常规过程;图4示出了常规zSeries系统中工作队列的状态以及子通道的定时;图5示出了才艮据示例性实施例的zSeries系统;图6示出了根据示例性实施例的用于使用定时队列处理HSCH、 CSCH或CCC操作的方法;图7示出了根据示例性实施例的用于定时队列检查的过程;图8a示出了根据示例性实施例的分配定时队列检查的过程;图8b示出了才艮据示例性实施例的由多个SAP以循环方式进4亍定时队列检查的过程;图9示出了根据示例性实施例的定时队列、指令队列的状态以及子通 道定时;图10示出了根据示例性实施例的如何将定时队列用于定时操作; 图11示出了才艮据示例性实施例的在无需定时子通道操作时的工作队 列的状态。详细的说明通过参考附图以实例方式说明了本发明的示例性实施例以 及优点和特性。
具体实施方式
根据示例性实施例,提供了方法、系统和计算机程序产品,以便显著 降低与定时具有各种持续时间的1/0操作相关的子通道关联的开销,以及 减少扫描具有要处理的HSCH、 CSCH和CCC操作的子通道的必要性。这通过 具有针对每个持续时间的单独定时队列(TQ)或任何SAP可用于定时I/O 操作的被定时的经过超时限制(ETL)来实现。特定TQ上的SCB或元素从 队列顶部开始按照从"最早,,到"最晚"排序。例如,对于需要定时14 秒的1/0操作(例如,HSCH和CSCH操作),可以存在仅包含被定时14秒 的元素的TQ。对于需要被定时7秒的1/0操作(例如,CCC操作),可以 建立不同的TQ。通过在TQ的底部排队元素且在需要定时的时间点获得功
能时间戳来实现保持每个定时队列中从"最早"到"最晚"的顺序排列。 这确保了在该元素之前的元素"较早"(或"年龄相同",取决于定时器解决方案),并因此比刚刚在同一TQ上排队的元素更早超时。此顺序结合 将该特定TQ上的所有元素定时相同持续时间(例如,14秒或7秒)的事 实,确保了如果队列顶部"较早"的元素没有超时,则"较晚"的元素不 会超时。为了在已经在TQ上的元素需要从头重新定时的情况下保持从"最早" 到"最晚"的顺序,可以将该元素从TQ出队,即使它在队列的中间,然后 可以将它在相应TQ底部重新排队且在排队时获得新的功能时间戳。例如, 如果为已针对HSCH指令处理的SCB启动CSCH指令,则会出现这种情况。这种年龄排序的固定持续时间定时队列结构的重要优点是在进行超时 检查时,如果SAP TQ检查过程(TQCHK)发现顶部队列元素("最早"元 素)没有超时,则SAP无需检查该TQ上的任何其他元素,不论该TQ上定 时的元素的数量是多少。这潜在地节省了巨大的开销。另一个优点是当进行超时检查时,无需将任何元素出队,除非检测到 超时或定时的操作完成或不再需要定时。在"最早"的元素中检测到超时 的情况下,TQCHK过程将该元素从队列顶部出队,并为该元素和关联的I/O 操作启动任何必要的恢复。新的最顶部的元素然后是"最早,,的,并且重 复TQCHK过程直至新的"最早"的元素未处于超时状态。根据示例性实施例,可以为每个SAP提供单独的HSCH/CSCH/CCC指令 队列(HCCQ )来进一步流线地处理这些指令,而无需如常规定时方法中那 样扫描队列。此处的优点在于仅这些高优先级操作在队列上,不需要由SAP 进行扫描,因为不需要跳过具有较低优先级SSCH操作的子通道。现在,当 SAP接收到"停止/清除信号"时,SAP只需将第一个元素从指令队列出队 以处理某一高优先级操作。新HCCQ的另一个优点在于WQ被释放以仅包含 具有性能敏感启动子通道(SSCH) 1/0操作的SCB。根据示例性实施例,可以在需要保持驱动HSCH、 CSCH或CCC功能的主 动权但也需要定时操作的情况下将SCB在TQ和HCCQ上排队。何时可能发 生这种情况的实例是如果SAP尝试向通iiiC出HSCH指令,而通道正忙。在 这种情况下,SAP将具有HSCH指令的SCB放回HCCQ的底部。但是,SAP 必须在它首次得到SCB的HSCH指令时开始对HSCH操作定时,因为假如通 道处于某种错误状态,由此始终表现为忙,则SAP同样需要通过将SCB放 到TQ上来对HSCH指令定时。根据一个实施例,可以在"循环"基础上执行所有SAP间的TQ检查, 以确保不是所有SAP都不必要地竟争以检查定时队列。这避免了浪费SAP 利用率。这还允许在功能SAP间进行TQ检查的动态重新平衡,因为在机器 运行时将SAP添加到配置或将其从配置移除。此处另 一个优点在于任何SAP 都可用于运行TQCHK过程,与哪个SAP将SCB放置在TQ上无关。图5示出了根据示例性实施例的zSeries大型机。在该实施例中,将 TQ添加到HSA以定时具有不同持续时间的操作。添加HCCQ不仅为了改进 处理HSCH、 CSCH和CCC过程的性能,而且作为一种给予SAP在必要时重试 部分操作的主动权的方法,同时继续定时同一ETL的操作,而不将SCB从 该定时队列出队。当SAP需要重试部分操作时(如它在遇到通道忙碌状况 时那样),它将SCB放置在HCCQ的底部以允许通道有机会变得不忙碌。SAP 将在SCB升到HCCQ顶部并被出队之后重试该操作。在图5示出的系统中, 已将HSCH/CSCH/CCC队列(HCCQ)和定时队列(TQ)添加到HSA 5002。在 图5示出的系统中,每个SAP有一个HCCQ,每个操作ETL有一个TQ用相 同的持续时间定时。在图5示出的实例中,需要14秒ETL的TQ 5011和7 秒ETL的TQ 5012来将CSCH或HSCH定时为14秒并将CCC操作定时为7 秒。如果需要将HSCH或CSCH定时为其他持续时间而非7秒或14秒ETL, 则可以扩展该实施例以在HSA中包括附加的TQ,每个附加的ETL —个TQ。 例如,如果CSCH需要定时为16秒,而HSCH需要定时为14秒,则可以添 加具有16秒ETL的附加TQ。如果在CP 5001上运行的软件程序将CSCH指令发送到HSA 5002中的 SCB,则作为正常处理该指令的一部分执行CSCH的CP固件首先将CSCH功 能5006设置到SCB 5003中,然后继续将该SCB在指令队列HCCQ z 5004
的底部排队。然后,CP固件使用"停止/清除信号"通过控制电路5010发 信号通知HCCQ z的所有者SAP z 5005。该信号指示具有此要处理的功能 的一个或多个SCB已在HCCQz上排队。然后,SAPz将第一个元素从HCCQ z的顶部出队,而不是如常规操作那样搜索该队列。假如在程序发出CSCH 指令之前,SCB 5003在具有SSCH的WQ z上,则CP固件首先将SCB从WQ z 出队,然后再将它在HCCQ z底部排队。这种首先将SCB从WQ出队的少量 附加开销与如常规操作那样必须扫描WQ相比是微不足道的。图6示出了功能处理流程及如何将TQ用于定时操作。出于示例目的, 在下文说明了 CHSC操作的处理和定时。但是,应当理解,类似的过程可以 用于处理和定时其他1/0操作,例如HSCH和CCC操作。参考图6, 一旦SAP z将SCB 5003从HCCQ z出队,用于该功能的处 理流程就在步骤6001开始。作为出队过程的一部分,在步骤6001关闭SCB 中的HCCQ位以指示SCB不再在HCCQ上。如果这是第一次将该特定SCB从 该特定CHSC的HCCQ出队,则该SCB将已不在TQ上。因此在步骤6002判 定该SCB已不在TQ上之后,通过执行步骤6003和6004来将功能时间戳 (FUNC T/S )设置到SCB中。然后,在步骤6005,将该SCB在具有该操作 可以花费的最大时间量的ETL的TQ底部排队。例如,SCB可以在TQ14上 排队,因为CSCH功能需要以约14秒来定时。在步骤6006处理功能的实际过程。仅大致说明了实际CSCH功能处理, 因为它与定时该功能有关。用于定时CSCH的机制可应用到其他需要定时的 功能,例如,HSCH和CCC功能。作为功能处理的一部分,功能可能需要发 信号通知其他元素以执行整体功能的一部分。例如,CSCH功能可能需要发 信号通知通道以对SCB指示的设^L行有选择的重置。在该实施例中,SAP 尝试发信号通知通道它必须执行其CSCH处理部分。在步骤6007判定是否 成功发信号通知通道以处理功能。如果成功发信号通知了通道,则在块 6009, SCB停留在TQ中等待通道完成。当该SCB在定时队列时,SAP可以 执行其他工作。实质上,CSCH过程转为"休眠"直到通道向SAPz做出它 已完成CSCH操作的响应或在定时队列检查(TQCHK)过程中检测到超时为
止,如下文将说明的。如果通道完成了操作,则通itic信号通知已经发信号通知通道的SAP, SAP在步骤6010恢复处理,在步骤6011执行一些其他 功能特定的处理,并在步骤6012将SCB从TQ出队。此时完成CSCH操作。如果在步骤6007判定未成功发信号通知通道,例如,因为遇到了要求 CSCH操作暂停一段时间并在稍后的时间重试的某种形式的忙碌情况,则在 步骤6008通过将SCB在该SAP的HCCQ底部排队来保持重新尝试发信号通 知通道的主动权。因此,此时将该SCB同时在6008在SAP z的HCCQ上和 TQ 14 (之前在步骤6005排队)上排队以对整个CSCH操作定时。在稍后的 时刻,该SCB将在SAP处理了其他已在该队列上的SCB之后最终升到该HCCQ 的顶部,并且对该CSCH的处理将返回到步骤6001。但是,这时SCB已在 TQ 14上,所以处理在步骤6013发生。在步骤6013,判定CSCH功能是否 需要从头定时,例如,通过判定这是否是HSCH顶部的新CSCH。因为在该 实例中,未将CSCH发送到HSCH的顶部,所以不需要从头定时功能,所以 处理在6006发生。如果在步骤6006处理尝试重新发信号通知通道以处理 CSCH操作,并且重新发信号通知的尝试也已失败,则可以再次采取步骤 6008的处理。在两种情况下,无论在步骤6007是否发信号通知通道,SCB 仍将在TQ上以确保操作在14秒内完成。这将参考图7说明。对于在处理同一 SCB的HSCH指令时发出的CSCH指令,可以重置特定 SCB的定时,同时仍保持有序的定时队列。如果在步骤6013判定由在CP 上运行的程序在HSCH指令之上发出CSCH指令,则CSCH操作的定时需要再 次重新启动。如果该SCB的HSCH操作已在进行中,它将已在TQ上。在这 种情况下,处理前进到6014。因为在这种情况下,需要将CSCH操作定时 例如14秒,所以在步骤6014需要将HSCH操作正在进行的SCB从TQ出队。 然后,处理在步骤6003和6004发生,并且将新的当前T/S设置到SCB的 功能T/S字段中,然后在步骤6005将SCB在TQ 14的底部排队。在步骤 6005继续处理该CSCH功能,并且先前描述的过程发生。将SCB在TQ底部 排队且将FUNC T/S设置为当前T/S在有序定时队列上保留了顶部最早底部 最晚的所需排队顺序。
图7示出了根据示例性实施例的当分配TQCHK指令以在SAP上运行时 发生的定时队列检查(TQCHK)过程。当将TQCHK分配到SAP处时,在步骤 7001选择要检查的TQ。如以上说明的,可以由多个SAP在"循环"基础上 检查TQ。如果在步骤7002判定至少一个元素在TQ上,则处理在步骤7003 和7004发生。此处,通过从当前T/S(例如,从时间时钟获得)减去如图 6所示的设置到SCB中的功能时间戳(FUNC T/S )来计算TQ顶部的SCB的 经过时间(ET)。在步骤7005,通过将ET与经过超时限制(ETL)相比较 并判定ET是否大于或等于TQ顶部元素的ETL,来判定该TQ顶部的SCB是 否发生超时。可以在无需将SCB从TQ出队的情况下进行此ET和ETL的比 较。如果该SCB没有超时,即,ET不大于或等于TQ顶部元素的ETL,则无 需在该TQ中进一步向下探寻,因为最早的元素在TQ的顶部。如果存在超 时,并且ET由此大于TQ顶部元素的ETL,则处理在7006发生,由此将SCB 从正在处理的TQ (例如TQ 14或TQ 7,如从SCB中的"队列中,,控制所确 定的)出队。在步骤7007,安排了功能特定的恢复操作,这可能涉及通过 恢复将其他元素i文入系统中,例如超时功能所涉及的通道或SAP。恢复将 SCB从任何它所在的队列出队,在SCB中将它的功能控制改为通道控制已 检查(CCC)并将SCB在HCCQ的底部排队。因为同样定时了 CCC,用于定 时CCC的方法将在图6的步骤6001中继续进行。除了在这种情况下,CCC 功能仅需定时为例如7秒。因此,将SCB在TQ7上排队。后续的CCC处理 导致CSCH操作完成。本领域的技术人员将理解此恢复过程的详细信息,在 此为了简洁而省略了其说明。虽然上面说明了恢复过程,但是还应指出的 是,在其他实施例中,在检测到超时情况时可以分配除恢复以外的应用特 定的过程。根据示例性实施例的定时机制可用于判定操作(例如,HSCH、 CSCH、 CCC或其他实施例中的任何其他功能)是否出现超时。如果检测到 超时,无论超时是由于持久的通道忙碌状况或某种其他原因,可以分配任 何适当的过程(例如,恢复操作)来清除和完成操作。在恢复过程在步骤7007安排了针对该SCB的恢复之后,可以在同一 TQ中检查其他元素以查看其他SCB是否超时。如果在步骤7002判定TQ上 存在其他元素,则采取步骤7003和7004,并在步骤7005检查TQ顶部的 新SCB是否超时。如果TQ顶部的该新SCB没有超时,则在步骤7008检查 以查看系统中是否有任何其他要检查的TQ。在该实例中,处理了 TQ 14。 所以接下来将是TQ 7,并且TQCHK过程在步骤7010继续。 一旦完成TQ 7 的TQCHK过程且没有其他要检查的TQ,则在步骤7009调用过程返回。根 据示例性实施例,在图8a和8b中示出了调用TQCHK的过程。图8a示出了才艮据示例性实施例的如何在一个或多个SAP间分配TQCHK 过程。在步骤8001,可以在系统中的所有SAP上以定期的间隔调用"预 TQCHK"过程。分配率可以取决于超时率。如果选择了过小的间隔,则会为 所有SAP带来不必要的开销。相反,如果选择了过大的间隔,则TQCHK过 程可能无法准确地检测超时。 一旦调用,预TQCHK就在步骤8002将"下一 个要分配TQCHK的SAP" ( NXTSCAP )字段与特定SAP自己的SAP标识符进 行比较以查看是否轮到该SAP来分配TQCHK。在一个实施例中,可以将TQCHK 存储在可由所有SAP访问的公共控制块(CCB)中。图8b示出了可以访问 将CCB中的字段用作互锁的多个TQ的多个SAP。如果在步骤8002判定轮到该特定SAP,则在步骤8003分配TQCHK过 程。在完成TQCHK过程之后,过程在步骤8004发生以设置NXTSAP (下一 个运行的SAP)。可以根据"运行的SAP掩码"以循环顺序将NXTSAP设置 为CCB中从当前NXTSAP字段开始的下一个运行的SAP的值。然后,预TQCHK 过程在步骤8006结束。如果在步骤8002判定没有轮到该特定SAP来分配TQCHK过程,则在步 骤8005根据例如运行的SAP掩码做出判定,以测试在NXTSAP字段中指示 的SAP是否可运行。如果是,处理在步骤8006发生。如果否,处理在步骤 8004发生以将NXTSAP设置为运行的SAP。持续地确保NXTSAP可运行的需 要在系统中很重要,由此可以在系统运行时添加和移除分配TQCHK过程的 处理器。这确保了在动态添加和移除SAP环境中可靠地分配TQCHK过程。 应当理解,对于移除的情况,要移除的处理器很可能需要处于空闲状态。 本领域的技术人员将理解被从操作删除之前确保处理器处于空闲状态的方16
法,在此为了简洁而省略了其细节。图9、 10和11示出了根据示例性实施例的如何处理以上参考图4说明 的实例。图9示出了如何使用SCB (具有相同的HSCH、 CSCH和CCC功能以 便如图4所示的那样执行)来填充指令队列HCCQ 9010和14秒TQ 9011, 两者都具有双链接表(DLL)。根据示例性实施例,显示的每个SCB ET都 示出了可以在计算ET时使用图7中的算法(步骤7004 )(其又使用在9000 处示出的当前T/S和设置到每个SCB中的图4的任意FUNC T/S )。在该实 例中,SCB 1处于HSCH未发出状态,如9001处所示,&示SAP尚未发 信号通知CHPID执行HSCH。在9010首次为了该HSCH将SCB 1放置在HCCQ 0上,并在9001示为没有设置任何FUNC T/S值。将在SAP首次为了该HSCH 功能将SCB从HCCQ出队时将FUNC T/S设置到SCB中,如先前图6所示。也可能的是,在其他实施例中,CP固件可以当CP将SCB在HCCQ上排 队时将FUNC T/S设置到SCB中,而不是当SAP将SCB从HCCQ出队时使SAP 将FUNC T/S设置到SCB中。可以采取此操作来提高超时准确性。SCB 2在9002处于HSCH已发出状态,这表示已将HSCH发送到通道。 要指出的是,根据示例性实施例,该SCB在9011处于TQ14上而非要定时 的WQ上。这降低了 WQ的竟争和长度。当发生HSCH操作完成并且通道将完 成HSCH的响应送回SAP时,SAP将SCB从该TQ中移除。同时,在对其定 时时,无需根据图7中示出的算法将其从TQ出队。SCB 3在9003处于CSCH未发出状态。在设置了 FUNC T/S的情况下, 尝试将CSCH发送到通道。在这种情况下,使用9010处的HCCQ O来为SAP 提供保持尝试将CSCH发送到通道的主动权。最可能的是,选定的通道忙, SCB必须在HCCQ上重新排队以尝试发信号通知通道来处理CSCH指令。当 重新尝试时,该SCB在9011仍在TQ 14上以对整体CSCH操作定时。要指出的是,SCB中有两组DLL链指针,以便能够在需要时使SCB同 时位于2个队列在9012处的用于HCCQ或WQ的FQ-下一个和前一个,以 及在9013处的仅在必要时用于TQ的TQ-下一个和前一个。此外要指出的是,在9014,将多个"队列中"控制设置到SCB: HCCQ 0 和TQ 14以指示该SCB在哪个队列。才艮据示例性实施例,可以存在"HCCQ 队列中,,位、"WQ队列中"位和"TQ队列中"位以及其他指示"WQ-HCCQ 号"和"TQ号"的字段。WQ-HCCQ号是组合字段,因为SCB仅需要在WQ 上或在HCCQ上,而非同时在两者上。在该实例中,SCB在HCCQ O和TQ 14 上。因此,在实际的SCB中,"HCCQ队列中,,位将是开启状态且WQ-HCCQ 号设置为0, "TQ队列中"位将是开启状态且TQ号设置为14。在其他实 施例中,可能需要多个具有相同持续时间的定时队列。在此情况下,将元 素从定时队列入队和出队的应用将需要一种方法来区分将使用哪个具有相 同持续时间的队列。 一种方法是使用可以反映该情况的"TQ号,,的不同编 码方案。例如,如果有两个14秒队列,则"TQ号"141可以标识第1个 14秒TQ,而"TQ号"142可以标识第2个14秒TQ。在任何情况下,应用 都需要了解该编码方案,无论是否支持具有相同持续时间的多个定时方案。SCB 4在9004处于CSCH已发出状态,这表示已将CSCH发送到通道。 如为SCB 2发出的HSCH,在9011处,该SCB在TQ 14上以便为完成CSCH 定时。但是,在此情况下,9004处的14. 2秒的ET已超过了 ETL超时值。 才艮据示例性实施例,因为ET高于该^Mt的14秒ETL,所以当如图7和8a 所示分配TQCHK过程时,执行TQCHK过程的SAP则采取适当操作以恢复CSCH 操作,强制操作完成。图10示出了如何将TQ用于定时CCC操作。在图IO示出的实例中,SCB 5处于CCC已发出状态。如HSCH已发出和CSCH已发出状态一样,SCB在 TQ上作为定时CCC的方法。但是,对于CCC功能,ETL超时不同于HSCH 或CSCH功能的ETL超时。例如,对于CCC功能,ETL可以是7秒。因此, 在10001处,该SCB位于7秒定时队列TQ 7上。图11示出了根据示例性实施例的工作队列状态和子通道定时。在图 11中,SCB6处于SSCH未发出状态。图11中的SCB6和图4中示出的SCB 6处于相同状态,并且如先前那样,无需定时SSCH指令。但是,该实例的 不同之处在于仅具有要执行的启动子通道的SCB在图11中的WQ上。因此, 已经实现了 WQ O上的SCB数量的减少。在该实例中,已将WQ上的SCB数
从图4中的6个SCB减少到图11中的1个SCB。 i^艮示了由才艮据示例性实 施例的定时技术实现的WQ瓶颈的显著降低。虽然以上说明集中在具有7秒和14秒持续时间的操作上,但是应当理 解,可以使用专用于每个操作的ETL的定时队列来定时具有任何持续时间 的操作。此外,如上所述,对于具有相同持续时间的操作,可以存在多个 定时队列。在其他实施例中,可能有必要根据应用将同一类型的操作定时 为不同的持续时间。这也是可能的并可以通过上述参考图6的方法实现。 在步骤6005,应用可以在决定它需要哪个TQ来排队SCB及SCB "队列中"控制的设置时考虑其他应用相关的状态,而不是仅根据操作类型做出决定。 如上所述,实施例可以体现为实现那些过程的计算机实现的过程和装 置的形式。在示例性实施例中,本发明体现在由一个或多个网络元素执行 的计算机程序代码中。实施例包括包含指令的计算机程序代码,所述指令 体现在有形介质(例如,软盘、CD-ROM、硬盘,或任何其他计算机可读存 储介质)中,其中,当计算机加载并执行计算机程序代码时,计算机变成 实现本发明的装置。实施例包括计算机程序代码,例如,无论存储在存储 介质中,由计算机加载和/或执行,还是在某种传输介质上传输(例如,在 电线和电缆上,通过光纤,或通过电磁辐射),其中,当计算机加载和执 行计算机程序代码时,计算机变成实现本发明的装置。当在通用微处理器 上实现时,计算机程序代码段配置微处理器以创建专用逻辑电路。虽然参考示例性实施例描述了本发明,但是本领域的技术人员将理解, 可以做出各种更改并可以用等价物替代其元素而不偏离本发明的范围。此 外,可以在不偏离本发明基本范围的情况下做出许多修改以使特定情况或 材料适合本发明的教导。因此,并非旨在将本发明限于作为实现本发明构 想的最佳模式而公开的特定实施例,而是本发明将包括所有落入所附权利 要求的范围内的实施例。此外,术语第一、第二等的使用并不表示任何顺 序或重要性,而是用于将一个元素与另一个元素进行区分。此外,术语一, 一个等的使用并不表示量的限制,而是表示存在至少一个引用的项。
权利要求
1. 一种用于在多处理器多控制块环境中定时操作的方法,所述方法包括以下步骤接收针对子通道控制块的执行操作的请求;根据所述操作的经过超时限制,将所述子通道控制块在多个定时队列 之一中排队,其中对于每个操作都存在经过超时限制,并且所述多个定时 队列中的每个队列都与用于完成操作的经过超时限制相关联;以及在完成所述操作或出现超时时,使所述子通道控制块出队。
2. 如权利要求l中所述的方法,其中所述排队的步骤包括将所述子通 道控制块放置在按照最早到最晚排序的定时队列的底部。
3. 如权利要求l中所述的方法,还包括在接收到执行高优先级操作的 请求时,将所述子通道控制块在高优先级指令队列中排队。
4. 如权利要求l中所述的方法,还包括如果在出现超时时所述定时暂 停,则将所述子通道控制块重新排队。
5. 如权利要求l中所述的方法,其中通过计算经过时间并确定所述经 过时间大于或等于所述经过超时限制来确定所M时。
6. 如权利要求l中所述的方法,其中检查所述定时队列以查找要执行 的子通道控制块^^作。
7. 如权利要求6中所述的方法,其中以循环方式检查所述定时队列。
8. —种用于定时具有不同持续时间的操作的系统,所述系统包括 子通道控制块,用于接收执行特定操作的指令;定时队列,用于将不同的子通道控制块排队,其中每个定时队列都与 具有固定的经过时间限制的子通道控制块操作关联,并且在接收到执行操 作的请求时,将每个子通道控制块在与所述操作的预定经过时间限制对应 的定时队列中排队。
9. 如权利要求8中所述的系统,其中所述排队的步骤包括将所述子通 道控制块在按照最早到最晚排序的定时队列的底部处排队。
10. 如权利要求8中所述的系统,还包括在接收到执行高优先级操作 的指令时将子通道控制块排队的高优先级指令队列。
11. 如权利要求8中所述的系统,其中如果出现超时,则将所述子通 道控制块重新排队。
12. 如权利要求ll中所述的系统,其中通过计算经过时间并确定所述 经过时间大于或等于所述经过超时限制来确定所述超时。
13. 如权利要求8中所述的系统,其中检查所述定时队列以查找要执 行的操作。
14. 如权利要求13中所述的系统,其中以循环方式检查所述定时队列。
全文摘要
一种定时具有不同持续时间的操作的方法和系统。接收到针对子通道控制块(SCB)的执行需被定时的操作的请求时,根据操作的经过超时限制(ETL)在多个定时队列之一上排队SCB。每个操作都存在ETL并且多个定时队列中的每个都与完成操作的ETL关联。将SCB放置在定时队列底部,定时队列按从最早到最晚排序。接收到执行高优先级操作的请求时,将SCB排队在高优先级指令队列中。SCB可以仍位于定时队列以保留其顺序并被置于高优先级指令队列以重试操作。完成操作或出现超时时将SCB出队。如果在出现超时时SCB出队,则可将其重新排队。可以由一个或多个SAP以循环方式检查一个或多个定时队列以查找SCB操作超时。
文档编号G06F11/00GK101145116SQ20071014923
公开日2008年3月19日 申请日期2007年9月7日 优先权日2006年9月14日
发明者J·S·特罗特, K·J·奥克斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1