JP2587195B2 - Computer system and method for load balancing or asynchronous data movement - Google Patents
Computer system and method for load balancing or asynchronous data movementInfo
- Publication number
- JP2587195B2 JP2587195B2 JP6002345A JP234594A JP2587195B2 JP 2587195 B2 JP2587195 B2 JP 2587195B2 JP 6002345 A JP6002345 A JP 6002345A JP 234594 A JP234594 A JP 234594A JP 2587195 B2 JP2587195 B2 JP 2587195B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- processor
- adm
- subsystem
- qop
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2017—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1471—Error detection or correction of the data by redundancy in operations involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2043—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Multi Processors (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、プロセッサを含むサブ
システムがオペレーティング・システムからの介入なし
に電子記憶媒体内または電子記憶媒体間でのデータ移動
を引き続き制御している間に、複数の待ち行列プロセッ
サ間の自動負荷平衡、障害を発生した待ち行列プロセッ
サからの自動回復、およびサブシステムの自動再構成を
提供する。BACKGROUND OF THE INVENTION The present invention relates to a method for controlling a plurality of queues while a subsystem including a processor continues to control the movement of data within and between electronic storage media without intervention from an operating system. It provides automatic load balancing between queue processors, automatic recovery from a failed queue processor, and automatic subsystem reconfiguration.
【0002】[0002]
【従来の技術】従来のコンピュータ・システムでは、専
用の作業待ち行列(WQ)を有する複数の入出力プロセ
ッサ(IOP)を使用して、入出力装置とコンピュータ
・メモリの間のデータ移動を求めるCPU要求を管理し
ていた。各IOP WQは、入出力装置のサブセットを
用い、対応するサブチャネルID番号を使用して動作す
る。各サブチャネルID番号は、内部的には、保護され
たシステム記憶機構内の待ち行列要素(QE)によって
表され、そのサブチャネルが表す装置に関連する経路に
応じて、1つまたは複数のIOP WQを使用するため
に割り当てられる。入出力装置は、様々な物理経路を介
してアクセスされ、一部の入出力装置は複数の経路を介
してアクセスできる。ある入出力装置への各経路はそれ
ぞれ、1つの入出力チャネルと1つの制御装置(CU)
を通り、入出力経路スイッチを含むことができる。各I
OPとそれに関連するWQは、経路のサブセットへのア
クセス権を有し、その結果、特定の経路を有するQEだ
けにサービスできる。2. Description of the Related Art In a conventional computer system, a plurality of input / output processors (IOPs) having dedicated work queues (WQs) are used to request data movement between input / output devices and computer memory. Was managing the request. Each IOP WQ uses a subset of the I / O devices and operates using the corresponding subchannel ID number. Each subchannel ID number is internally represented by a queuing element (QE) in protected system storage, and depending on the path associated with the device represented by that subchannel, one or more IOPs Assigned to use WQ. I / O devices are accessed via various physical paths, and some I / O devices can be accessed via multiple paths. Each path to an I / O device has one I / O channel and one control unit (CU)
And an input / output path switch can be included. Each I
OPs and their associated WQs have access to a subset of the routes, so that they can only service QEs with a particular route.
【0003】IOPは、システム内のCPUが要求する
入出力の作業負荷を管理する。どのCPUでも、サブチ
ャネル開始(SSCH)命令を実行して、あるIOP
WQに作業要求を置くことができる。WQ上の各CPU
要求はそれぞれ、1つの待ち行列要素(QE)を含む。
QEとは、開始すべき入出力装置を表し、データ移動情
報を指定する、制御ブロックである。異なる物理経路を
制御するための異なるチャネル・プロセッサを含む、要
求された入出力装置への物理経路が使用可能にならない
限り、入出力要求は実行できない。したがって、その物
理経路に含まれる構成要素のいずれかが使用中である場
合、要求は待機状態になる。ある入出力装置への物理経
路の制御ユニット(CU)が使用できない場合、要求
(QE)は、そのWQから制御装置待ち行列(CUQ)
へ移動され、CUが使用可能になるまでこのCUQ上で
停止する。CUが使用可能になると、要求は、その経路
用のチャネル・プロセッサによって割り当てられた元の
WQに戻され、このチャネル・プロセッサが入出力動作
を制御する。[0003] The IOP manages the input / output workload required by the CPU in the system. Each CPU executes a start subchannel (SSCH) instruction to execute a certain IOP.
Work requests can be placed in the WQ. Each CPU on WQ
Each request contains one queue element (QE).
QE is a control block that indicates an input / output device to be started and specifies data movement information. An I / O request cannot be fulfilled unless a physical path to the requested I / O device becomes available, including a different channel processor to control a different physical path. Thus, if any of the components included in the physical path are busy, the request will be on standby. If the control unit (CU) of the physical path to an I / O device is not available, a request (QE) is sent from the WQ to the control unit queue (CUQ).
And stop on this CUQ until the CU is available. When a CU becomes available, the request is returned to the original WQ assigned by the channel processor for that path, which controls I / O operations.
【0004】ある入出力動作が完了した時、割り当てら
れたIOPは、そのQEをそのサブチャネルに割り当て
られた割込み待ち行列(IQ)に移動し、システム内の
全CPUに割込み信号を送ることによって、入出力保留
割込みを生成する。割込みに使用できる最初のCPU
が、IQを監視し、1つまたは複数の保留割込みを処理
することができる。各QEは、ある割込みサブクラスに
関連する8つのIQのうち、そのサブチャネル中で示さ
れたIQを使用するために割り当てられる。IOPサブ
システムは、ある装置にアクセスするための経路がサブ
チャネル内で複数個定義されており、あるWQ上の経路
が使用中または使用不能になり、別のWQ上で経路が使
用可能な時だけ、そのWQのうちのいくつかの間で作業
を再分配する。従来のIOPサブシステムは、遊休状態
のIOPを利用するために異なるWQ間でQEを移動す
ることはしない。従来のサブシステムでは、QEがWQ
に対する要求である時、このQEを処理するために、サ
ブチャネルに割り当てられたWQとIOPが必要があっ
た。割り当てられたWQ専用のIOPが、使用中または
障害を発生している場合、入出力動作がチャネル内で開
始されておらず、かつ別のIOP上に代替経路も存在す
るのでない限り、QEの中断なしの実行を継続するため
にQEを別のWQに移動することはできなかった。IO
Pは、コンピュータ・システムからグループ全体を除去
することによって、(コンピュータ・システムの関連部
分を再構成する時に)グループとして再構成することし
かできなかった。代替経路が使用できない場合は、動作
が打ち切られる。したがって、従来技術のIOP WQ
とそのIOPは、作業負荷平衡、回復または再構成には
使用されなかった。When an I / O operation is completed, the assigned IOP moves its QE to an interrupt queue (IQ) assigned to its subchannel and sends an interrupt signal to all CPUs in the system. , Generate an input / output pending interrupt. First CPU available for interrupts
Can monitor the IQ and handle one or more pending interrupts. Each QE is assigned to use the indicated IQ in its subchannel out of the eight IQs associated with an interrupt subclass. In the IOP subsystem, when a plurality of routes for accessing a certain device are defined in a subchannel, and a route on one WQ is used or unavailable, and a route on another WQ is available. Only redistribute work among some of its WQs. Conventional IOP subsystems do not move QEs between different WQs to utilize idle IOPs. In the conventional subsystem, QE is WQ
In order to process this QE, it was necessary to have the WQ and IOP assigned to the subchannel. If the assigned WQ-only IOP is busy or has failed, the I / O operation has not been started in the channel and unless there is an alternate path on another IOP, the QE's The QE could not be moved to another WQ to continue uninterrupted execution. IO
P could only be reconfigured as a group (when reconfiguring relevant parts of the computer system) by removing the entire group from the computer system. If no alternative route is available, the operation is aborted. Therefore, the prior art IOP WQ
And its IOP were not used for workload balancing, recovery or reconfiguration.
【0005】従来のコンピュータ・システムでは、ある
サブチャネルのために1つの経路だけが提供される場
合、そのサブチャネルIDに関連するQEは、それに割
り当てられた経路が使用中である間、それに割り当てら
れたWQで待機し、またその入出力制御装置が使用中で
ある間、制御装置待ち行列(CUQ)中で待機しなけれ
ばならない。異なるサブチャネルは異なるCUQを使用
するので、CUQは、IOP待ち行列作業を平衡させる
ための中心点として働くことができない。したがって、
従来技術では、QE作業要求は、サブチャネルに永久的
に割り当てられたWQしか使用できなかった。1つまた
は複数のCPUからの多数のサブチャネル開始命令(作
業要求)が、特定のWQに割り当てられたサブチャネル
に向けられる場合、他の1つまたは複数のWQが空であ
り、それに関連するプロセッサが遊休状態であっても、
これらの作業要求はすべてそのWQを使用しなければな
らない。したがって、従来のIOPサブシステムでは、
作業負荷がWQ間で非常に不平衡になる可能性がある。
また、従来技術では、いずれかのIOPに障害が発生し
た場合、崩壊的な状態が存在し、そのIOPのWQに対
する入出力要求は打切り待ち行列に置かれ、代替経路を
使用できない場合またはそのチャネルで入出力動作が開
始されている場合に打ち切られる。打ち切られた入出力
要求を新たに割り当てられた動作可能なWQ上で繰り返
すには、新しい経路を使用して、CPUが、障害を発生
したWQとそれに関連するIOPを迂回し、そのサブチ
ャネルを他の動作可能なWQに再割り当てし、割り込ま
れたアプリケーション・プログラム内の適当な前の点か
らCPUソフトウェアを再実行して、CPU要求を繰り
返すことができるようにするために、人間の介入が必要
になる場合がある。[0005] In conventional computer systems, if only one path is provided for a subchannel, the QE associated with that subchannel ID is assigned to it while the path assigned to it is in use. The I / O controller must be in the control unit queue (CUQ) while the I / O controller is busy. Since different sub-channels use different CUQs, CUQs cannot serve as a central point for balancing IOP queuing work. Therefore,
In the prior art, a QE work request could only use a WQ permanently assigned to a subchannel. If multiple start sub-channel instructions (work requests) from one or more CPUs are directed to a sub-channel assigned to a particular WQ, the other one or more WQs are empty and associated with it. Even if the processor is idle,
All of these work requests must use that WQ. Therefore, in a conventional IOP subsystem,
The workload can be very unbalanced between WQs.
Also, in the prior art, if any IOP fails, a catastrophic condition exists, the I / O requests for the IOP's WQ are placed in an abort queue, and an alternate route is unavailable or its channel Is aborted if the input / output operation has been started. To repeat the aborted I / O request on the newly assigned operational WQ, the CPU uses the new path to bypass the failed WQ and its associated IOP and re-route its subchannel. Human intervention is required to reassign to another operational WQ and re-execute the CPU software from the appropriate previous point in the interrupted application program so that CPU requests can be repeated. May be required.
【0006】[0006]
【発明が解決しようとする課題】本発明の主目的は、コ
ンピュータ・システムの主プロセッサからのプロセス・
オフロードを実行するサブシステムの内部で、作業負荷
平衡、回復および再構成を提供することである。この1
例が、ADM(非同期データ移動)である。本発明で
は、コンピュータ・システムのオフロード・サブシステ
ム内に複数のプロセッサが必要である。SUMMARY OF THE INVENTION It is a primary object of the present invention to provide a method for processing from a main processor of a computer system.
The provision of workload balancing, recovery and reconfiguration within a subsystem performing offload. This one
An example is ADM (asynchronous data movement). The present invention requires multiple processors in the offload subsystem of the computer system.
【0007】[0007]
【課題を解決するための手段】本発明は、ADMの処理
および手段を利用して、電子メモリ内の原始位置と、同
一または別の電子メモリ内の宛先位置の間での作業サブ
ユニット(たとえばデータ・ページの転送)を効率的か
つ連続的に実行するために、複数のプロセッサによって
使用される処理を管理する。ADMへのCPUインター
フェースには、S/390のサブチャネル開始(SSC
H)命令を使用する。特殊なADMサブチャネルを使用
してADM動作を要求する。ADMサブシステムがCP
U要求を実行して、CPUが要求した任意の数のページ
を電子メモリ内の原始位置から同一または別の電子メモ
リ内の宛先位置へ移動する間に、CPUは他の作業を実
行することができる。このサブシステムは、複数のAD
Mプロセッサ、関連待ち行列、共通待ち行列、および制
御論理機構を有する。複数のADMプロセッサが、複数
のADMサブチャネルを介して要求された複数のCPU
要求を同時に実行することができる。どのADMサブチ
ャネルとそれに関連するQEも、ADM要求をサブシス
テムに配布することができる。どのADMプロセッサ
も、コンピュータ・システム(CEC)の任意のCPU
から受け取ったADMサブチャネル要求を実行すること
ができる。GR1(汎用レジスタ1)に、SSCH命令
の暗黙のオペランドが格納されるが、これは、サブチャ
ネルとそれに関連する待ち行列要素(QE)とを識別す
るSCH ID(サブチャネル識別子)番号である。待
ち行列要素は、内部マイクロコード・インターフェース
でサブチャネルIDを表すマイクロコード化された制御
ブロックである。このQEをCPUが「メール・パッケ
ージ」として使用して、CPU要求を実行するサブシス
テムにCPU要求を送る。SUMMARY OF THE INVENTION The present invention utilizes the processing and means of an ADM to provide a working sub-unit (e.g., a working sub-unit) between a source location in an electronic memory and a destination location in the same or another electronic memory. Manage the processes used by multiple processors to perform data page transfers efficiently and continuously. The CPU interface to the ADM has an S / 390 subchannel start (SSC
H) Use instructions. Request ADM operation using a special ADM subchannel. ADM subsystem is CP
While executing the U request to move any number of pages requested by the CPU from a source location in electronic memory to a destination location in the same or another electronic memory, the CPU may perform other tasks. it can. This subsystem includes multiple ADs
It has M processors, associated queues, common queues, and control logic. Multiple ADM processors, multiple CPUs requested via multiple ADM subchannels
Requests can be executed simultaneously. Any ADM subchannel and its associated QE can distribute ADM requests to the subsystem. Any ADM processor can be any CPU in a computer system (CEC)
Can perform the ADM subchannel request received from. GR1 (General Purpose Register 1) stores the implicit operand of the SSCH instruction, which is the SCH ID (subchannel identifier) number that identifies the subchannel and its associated queue element (QE). The Queue element is a microcoded control block that represents the subchannel ID at the internal microcode interface. The QE is used by the CPU as a "mail package" to send the CPU request to the subsystem that performs the CPU request.
【0008】SSCH命令のもう1つのオペランドが、
1つまたは複数のADM CCW(チャネル・コマンド
・ワード)からなるADMプログラムの最初のADM
CCWの位置を指定する。各ADM CCWは、コンピ
ュータのメモリ内のMSB(移動指定ブロック)のリス
トを指定する。各MSBは、送信側指定と受信側指定を
指定する。送信側指定は、メモリ内のデータの任意の数
(ページ・カウント・フィールドで指定)の連続ページ
(たとえば4KB/ページ)の原始位置の先頭アドレス
を指定する。受信側指定には、原始位置からコピーされ
る連続ページを受け取るためのメモリ内の宛先位置の先
頭アドレスが含まれる。ADMサブシステムがCPU要
求情報を処理し、電子メモリ内または電子メモリ間での
潜在的に膨大な数のデータ・ページの転送を制御してい
る間、CPUは他の作業を実行することができる。AD
Mサブシステムは、CPU要求の全ページを転送し終え
た後に、すべてのCPUに入出力タイプの割込みを送っ
て、このCPU命令の完了を知らせる。すべてのCPU
がこの割込み信号を受け取り、そのうちの1つが既存の
ES/390アーキテクチャ規則の下でこれを受諾す
る。[0008] Another operand of the SSCH instruction is
The first ADM of an ADM program consisting of one or more ADM CCWs (Channel Command Words)
Specify the location of the CCW. Each ADM CCW specifies a list of MSBs (move designation blocks) in the computer's memory. Each MSB specifies a sending side designation and a receiving side designation. The transmission side specification specifies the head address of the original position of an arbitrary number (specified by the page count field) of continuous pages (for example, 4 KB / page) of data in the memory. The receiving side designation includes the start address of the destination position in the memory for receiving the continuous page copied from the original position. While the ADM subsystem processes the CPU request information and controls the transfer of a potentially vast number of data pages within and between electronic memories, the CPU can perform other tasks. . AD
After the M subsystem has transferred all pages of the CPU request, it sends an I / O type interrupt to all CPUs to signal the completion of this CPU instruction. All CPUs
Receive this interrupt signal, one of which accepts it under existing ES / 390 architecture rules.
【0009】本発明により、ADMサブシステムが、自
動ADM負荷平衡、ADM処理に対する割込みなしの障
害を発生したプロセッサからの自動回復、およびADM
サブシステム内の1つまたは複数のプロセッサの自動再
構成を利用して、非常に多数のCPU要求を連続的に処
理できるようになる。ADM負荷平衡機能、回復機能お
よび再構成機能は、いずれもCPU処理およびオペレー
ティング・システム・ソフトウェアに対して透過的であ
る。In accordance with the present invention, an ADM subsystem provides automatic ADM load balancing, automatic recovery from a failed processor without interrupt to ADM processing, and ADM subsystem.
The automatic reconfiguration of one or more processors in a subsystem can be used to handle a very large number of CPU requests continuously. The ADM load balancing, recovery, and reconfiguration functions are all transparent to CPU processing and operating system software.
【0010】さらに、本発明により、コンピュータ・シ
ステムが、IOPとWQを有する入出力サブシステムと
インターフェースするために現在CPUが使用している
のと同じCPUインターフェースを使用して、作業負荷
を平衡するADMサブシステムとインターフェースでき
るようになる。本発明では、このインターフェース互換
という特性を使用して、ADMサブシステムの動作と入
出力サブシステムの動作を組み合わせて、両方のタイプ
の動作を実行し同じ1組の作業待ち行列を共用できる、
単一のサブシステムにする。したがって、この組み合わ
されたサブシステムでは、待ち行列が、ADM要求と入
出力要求の両方を保持でき、各待ち行列オフロード・プ
ロセッサ(QOP)がそれぞれ、ADM機能と入出力機
能の両方を実行する。しかし、組み合わされたサブシス
テム内の共通待ち行列(CQ)は、ADM動作のためだ
けに使用される。Further, in accordance with the present invention, a computer system balances a workload using the same CPU interface currently used by a CPU to interface with an I / O subsystem having an IOP and a WQ. Interface with the ADM subsystem. The present invention uses this property of interface compatibility to combine the operation of the ADM subsystem and the I / O subsystem to perform both types of operations and share the same set of work queues.
Make it a single subsystem. Thus, in this combined subsystem, the queue can hold both ADM and I / O requests, and each queue offload processor (QOP) performs both ADM and I / O functions, respectively. . However, the common queue (CQ) in the combined subsystem is used only for ADM operation.
【0011】組み合わされたサブシステム内では、待ち
行列プロセッサは、入出力要求を処理している時は普通
のIOPとして動作し、ADM要求を処理している時は
ADMプロセッサとして動作している。Within the combined subsystem, the queuing processor operates as a normal IOP when processing I / O requests and as an ADM processor when processing ADM requests.
【0012】しかし、ADM機能と入出力機能を、同一
のコンピュータ・システム内の別々のサブシステム(A
DMサブシステムと入出力サブシステム)中で提供する
ことができる。しかし、一般に、現在のシステムでは、
ADM要求と入出力要求がプロセッサと待ち行列を共用
する、組み合わされたサブシステムを設けると費用効率
がよいことが判っている。However, the ADM function and the input / output function are performed by separate subsystems (A) in the same computer system.
DM subsystem and input / output subsystem). However, in general, in current systems,
Providing a combined subsystem in which ADM and I / O requests share a queue with the processor has been found to be cost effective.
【0013】また、組み合わされたシステムでは、各待
ち行列上で、入出力要求にADM要求より高い処理優先
順位が与えられる。というのは、入出力要求は、待ち行
列に関連するプロセッサによって処理されない(入出力
要求は、異なるプロセッサすなわち入出力データ移動動
作を制御するチャネル・プロセッサによって処理され
る)ので、非常に短い処理時間しか必要としないからで
ある。一方、ADM要求は、待ち行列に関連するプロセ
ッサによって完全に制御され、他のプロセッサは使用さ
れない。ADM要求はこのようにプロセッサを余分に使
用するので、平均的なADM要求はどの入出力要求より
もはるかに多い処理時間を必要とし、したがって入出力
トラフィックが高い時でも、ADM作業の方が多くのプ
ロセッサ時間を消費する可能性がある。しかし、入出力
要求は、ADM作業サブユニットの合間に処理できる。Also, in the combined system, on each queue, I / O requests are given a higher processing priority than ADM requests. Because the I / O requests are not serviced by the processor associated with the queue (the I / O requests are serviced by a different processor, the channel processor controlling the I / O data movement operation), so the processing time is very short Because it only needs them. On the other hand, ADM requests are completely controlled by the processor associated with the queue and no other processor is used. Because ADM requests use this extra processor, the average ADM request requires much more processing time than any I / O request, and therefore has more ADM work, even when I / O traffic is high. Of processor time. However, I / O requests can be processed between ADM work subunits.
【0014】したがって、本明細書の好ましい実施例で
は、ADM動作をQOP(待ち行列オフロード・プロセ
ッサ)によって処理されるものとして説明するが、QO
Pは、ADM動作専用である必要はなく、QOPが同一
の待ち行列上の通常の入出力動作を実行してもよいこと
を理解されたい。Thus, in the preferred embodiment herein, the ADM operation will be described as being processed by a QOP (queue offload processor).
It should be understood that P need not be dedicated to ADM operations, and that the QOP may perform normal I / O operations on the same queue.
【0015】本発明は、同一のハードウェア・プロセッ
サによって処理される入出力要求とは異なる形で管理さ
れる、ADMサービスを求めるCPU要求を管理するた
めの新しい方法を提供する。同一のハードウェア・プロ
セッサが、ADM要求と入出力要求に関して異なる処理
を実行する。The present invention provides a new method for managing CPU requests for ADM services that is managed differently than I / O requests handled by the same hardware processor. The same hardware processor performs different processing for ADM and I / O requests.
【0016】したがって、本発明は、ADM要求と入出
力要求に関してそれぞれ別々の待ち行列と待ち行列プロ
セッサの組を使用するデータ制御サブシステムと、AD
M要求と入出力要求の両方に関して同じ待ち行列と待ち
行列プロセッサの組を使用するデータ制御サブシステム
とをサポートする。Accordingly, the present invention provides a data control subsystem that uses separate queues and queue processor sets for ADM and I / O requests, respectively.
Supports a data control subsystem that uses the same set of queues and queue processors for both M and I / O requests.
【0017】ADMサブチャネルは、入出力サブチャネ
ルと異なって、経路制限をまったく有しない。どのAD
Mプロセッサも、電子記憶機構内または電子記憶機構間
のすべての経路にアクセスして、すべてのADM待ち行
列とADMプロセッサの間に、任意のCPUからのAD
M要求を処理するための完全な柔軟性が与えられ、すべ
ての電子記憶機構に、任意のADMサブチャネルを介し
て任意の要求からアクセス可能にすることができる。一
方、入出力サブチャネル経路制御は、入出力プロセッサ
が、使用可能な指定された経路のうちの1つを有する入
出力プロセッサに入出力要求を渡すことを必要とする。
その後、この要求が経路プロセッサ(チャネル・プロセ
ッサ)に与えられて入出力動作が完了する。ADM動作
に関する経路制御が除去されると、ADMプロセッサ
は、経路プロセッサを必要とせずにADM動作を完了す
ることができる。The ADM subchannel, unlike the input / output subchannel, has no path restrictions. Which AD
The M processor also has access to all paths within or between electronic storages, and between all ADM queues and the ADM processors, the AD from any CPU.
Full flexibility is provided for processing M requests, and all electronic storage can be made accessible to any request via any ADM subchannel. I / O subchannel routing, on the other hand, requires that the I / O processor pass I / O requests to I / O processors that have one of the available designated paths.
Thereafter, this request is given to the path processor (channel processor) to complete the input / output operation. When the path control for the ADM operation is removed, the ADM processor can complete the ADM operation without requiring a path processor.
【0018】本発明は、2段階の作業負荷平衡を提供す
る。最初の作業負荷平衡によって、ADMサブシステム
が、CPU要求をADMプロセッサ間で均等に分配する
ようになる。ADMサブシステムは、特定のADM要求
の特定のADMプロセッサへの割当てを制御する。最終
段階の作業負荷平衡は、サブシステム内で提供される。
CPU要求は、単一データの転送から極端に大量の転送
まで変化し得るので、そのサブシステム実行時間が大幅
に変化する可能性がある。作業負荷実行がサブシステム
内で進行するにつれて、使用中のADMプロセッサから
遊休状態のADMプロセッサに作業を連続的に移動し
て、サブシステム内に要求が存在する限り、すべてのA
DMプロセッサが連続的に使用中であるように保つこと
により、実際の作業負荷変動が完全に平衡化される。別
々の待ち行列およびプロセッサならびに共用される待ち
行列およびプロセッサを用いると、待ち行列がADM要
求を受け取った時にその待ち行列に関連するプロセッサ
が使用中でない場合、そのプロセッサは、即座にそのA
DM要求を実行する。待ち行列がADM要求を受け取っ
た時にその待ち行列に関連するプロセッサが使用中であ
る場合、本発明では、使用中のプロセッサに、使用中で
ない他のプロセッサの待ち行列に待機中のADM要求を
転送させることによって、ADM作業負荷平衡を提供
し、このプロセッサが、即座にADM要求を実行する。
待ち行列に関連するすべてのプロセッサが使用中であ
り、いずれかの待ち行列がADM要求を受け取った時、
関連プロセッサは、作業のサブユニットの間で休止し
て、そのADM要求を共通待ち行列(CQ)に移動す
る。CQは、待ち行列に関連する各プロセッサが、要求
を完了し、実行すべき新しい作業要求を探す時に、待ち
行列に関連するプロセッサのいずれかによって処理され
る。プロセッサは、CQヘッダを見て、CQが空である
かどうかを調べる。CQが空でない場合、そのプロセッ
サは、即座に待機中のADM要求をCQからそのプロセ
ッサの待ち行列に移動し、この待ち行列からこのADM
要求を実行する。The present invention provides a two-stage workload balancing. Initial workload balancing causes the ADM subsystem to evenly distribute CPU requests among ADM processors. The ADM subsystem controls the assignment of particular ADM requests to particular ADM processors. Final stage workload balancing is provided within the subsystem.
Because CPU requirements can vary from single data transfers to extremely large transfers, the subsystem execution time can vary significantly. As the workload execution progresses in the subsystem, the work is continuously moved from the ADM processor in use to the ADM processor in the idle state so that all A
By keeping the DM processor continuously in use, the actual workload variation is perfectly balanced. With a separate queue and processor and a shared queue and processor, if the processor associated with the queue is not busy when the queue receives an ADM request, that processor will immediately
Execute the DM request. If the processor associated with the queue is busy when the queue receives an ADM request, the present invention transfers the waiting ADM request to the busy processor to the queue of another processor that is not busy. By providing ADM workload balancing, the processor executes the ADM request immediately.
When all processors associated with a queue are in use and any queue receives an ADM request,
The associated processor pauses between the sub-units of work and moves its ADM request to a common queue (CQ). The CQ is processed by any of the processors associated with the queue as each processor associated with the queue completes the request and looks for a new work request to execute. The processor looks at the CQ header to see if the CQ is empty. If the CQ is not empty, the processor immediately moves the waiting ADM request from the CQ to the processor's queue and from this queue the ADM request.
Perform the request.
【0019】したがって、本発明は、待機中のADM要
求をその待ち行列とプロセッサの間で継続的に再分配し
て、すべてのADM要求が待ち行列に関連するプロセッ
サによってすばやく実行されるようにする。したがっ
て、ADM要求は、その待ち行列に関連するプロセッサ
がその処理のために使用可能になるよりずっと前にその
実行を完了させることができる。というのは、AMD要
求は、任意の使用可能プロセッサによって即座に実行さ
れ、あるいは全プロセッサが使用中の間、最初に使用可
能になるプロセッサによって実行されるまで、共通待ち
行列で最小限の間待機すればよいからである。この作業
要求の再分配によって、すべてのADM要求に関して完
全な作業負荷平衡がもたらされる。同じ待ち行列とプロ
セッサによって処理される入出力要求への干渉はほとん
どない。というのは、待ち行列に置かれた入出力要求
が、作業の現サブユニットが完了すると同時に待ち行列
に関連するプロセッサによって処理されるからである。Thus, the present invention continually redistributes waiting ADM requests between its queue and the processors so that all ADM requests are quickly executed by the processor associated with the queue. . Thus, an ADM request can complete its execution long before the processor associated with the queue is available for its processing. That is, if the AMD request is executed immediately by any available processor, or while waiting for a minimum of time in the common queue, while all processors are busy, by the first available processor. Because it is good. This redistribution of work requests results in complete workload balancing for all ADM requests. There is little interference with I / O requests handled by the same queue and processor. This is because a queued I / O request is processed by the processor associated with the queue as soon as the current subunit of work is completed.
【0020】さらに、本発明は、QEが待ち行列上でA
DM要求として使用される時に、各QEに関するADM
回復機能を提供する。ADM回復機能は、QE内のチェ
ックポイント処理フィールドと、それを使用するための
回復処理によって実現される。チェックポイント処理フ
ィールドは、ADM要求の実行中に障害を発生したプロ
セッサによって成功裡に移動された最後のページを突き
止めるために、QE内の情報を保存する。ページ移動動
作の実行中にいずれかのプロセッサに障害が発生した場
合、このプロセッサは、待ち行列に関連する他のすべて
のプロセッサにその障害状態と識別子を知らせる信号を
送る。この障害信号を最初に検出した待ち行列に関連す
るプロセッサが、障害信号を受諾することによって回復
プロセッサになる。回復プロセッサは、障害を発生した
プロセッサをリセットし、それに関連する待ち行列ヘッ
ダの再試行カウントに1を加算し、そのカウントを最大
許容可能再試行カウントと比べ、それより小さい場合に
は、障害を発生したプロセッサに、成功裡に完了した最
後の作業サブユニットから動作を再試行させる条件を確
立する。そうでない場合は、障害を発生したプロセッサ
が停止され、動作可能なサブシステムから除去され、そ
の作業が、サブシステム作業負荷平衡処理を介して他の
プロセッサに再分配される。Further, the present invention provides that the QE
ADM for each QE when used as DM request
Provides a recovery function. The ADM recovery function is realized by a checkpoint processing field in the QE and a recovery process for using the checkpoint processing field. The checkpoint processing field stores the information in the QE to locate the last page successfully moved by the failed processor during execution of the ADM request. If any processor fails during the execution of a page move operation, this processor signals all other processors associated with the queue of their fault status and identifier. The processor associated with the queue that first detects this fault signal becomes the recovery processor by accepting the fault signal. The recovering processor resets the failed processor, adds one to the retry count in the associated queue header, compares the count to the maximum allowable retry count, and if less, returns the fault. Establish conditions that cause the generated processor to retry the operation from the last successfully completed work subunit. If not, the failed processor is halted and removed from the operational subsystem, and its work is redistributed to other processors via subsystem workload balancing.
【0021】回復を試みる際に、回復プロセッサは、障
害を発生したプロセッサが処理中のQEのチェックポイ
ント処理フィールドにアクセスし、チェックポイント処
理フィールド内のデータを使用して、不完全なADM要
求が成功裡に完了するまで、その成功裡に完了した最後
の作業サブユニットからその要求の実行を再確立する。
障害を発生したプロセッサが回復できない場合、そのQ
E要素が、回復プロセッサの関連待ち行列に置かれる。
この回復プロセッサは、その後この作業要求を完了する
か、あるいはこのQEをCQに置いて、進行中の要求を
最初に完了したプロセッサにそれを完了させることがで
きる。どの場合でも、動作は、チェックポイント処理さ
れた状態から始まる。これは、関連待ち行列上のまたは
実行中のどのADM QEでも、サブシステム内の任意
のプロセッサによって成功裡に完了するまで実行できる
ので、入出力処理と異なる。あるプロセッサが回復処理
によって除去される時、回復の後残っている待ち行列に
対する(CPUによる)新しい要求に対する待ち行列割
当てを決定し、必要な場合にはこれを変更するために、
QEが探索される。In attempting to recover, the recovery processor accesses the checkpointing field of the QE being processed by the failed processor and uses the data in the checkpointing field to generate an incomplete ADM request. Reestablish execution of the request from the last successfully completed subunit of work until successful completion.
If the failed processor cannot recover,
The E element is placed in the associated queue of the recovery processor.
The recovery processor can then complete the work request or place the QE in the CQ and let the processor that completed the request in progress complete it first. In each case, the operation starts with a checkpointed state. This differs from I / O processing because any ADM QE on the associated queue or running can be executed to successful completion by any processor in the subsystem. When a processor is removed by the recovery process, to determine the queue assignment for new requests (by the CPU) for the queue remaining after recovery, and to change this if necessary,
The QE is searched.
【0022】この回復機能を用いると、このサブシステ
ムの外部のコンピュータ・システムの残り部分に透過的
な形で、かつこのサブシステムによって実行中の作業に
割り込まずに、ADM動作が完全に回復できる。要求負
荷が高い間は、このサブシステムはより少ないプロセッ
サを用いて動作しているので、サブシステム動作の速度
がわずかに低下する可能性がある。With this recovery function, ADM operation can be fully recovered in a manner transparent to the rest of the computer system outside of this subsystem and without interrupting work being performed by this subsystem. . During periods of high demand, the subsystem may operate with fewer processors, and thus may slightly slow down subsystem operation.
【0023】本発明は、少なくとも1つの動作可能プロ
セッサがサブシステム内に残っている限り、任意のプロ
セッサを除去するか、あるいは新プロセッサをサブシス
テムに追加するためにいつでも使用することのできる、
ADM動的再構成機能も提供する。再構成には、再構成
の後に残っている待ち行列とそのプロセッサへのQEの
再割当てが含まれる。本発明では、動作可能フィールド
を動作不能状態にセットすることによって、再構成動作
で除去される待ち行列(除去されるプロセッサ用)のそ
れぞれのヘッダをマークする。動作不能にされた待ち行
列上の保留中の要求(QE)は、動作可能なままの他の
待ち行列(共通待ち行列を含む)にすべて移動される。
このQE移動動作は、再構成コマンド中でそのコマンド
を処理する再構成プロセッサとして割り当てられたプロ
セッサによって行うことができる。また本発明では、動
作可能フィールドを動作不能状態にセットすることによ
って、再構成動作で追加される各待ち行列(追加される
プロセッサ用)のヘッダをマークする。The present invention can be used to remove any processor or add a new processor to a subsystem at any time as long as at least one ready processor remains in the subsystem.
It also provides an ADM dynamic reconfiguration function. Reconfiguration includes re-assignment of QEs to queues and their processors remaining after the reconfiguration. In the present invention, the respective headers of the queues (for processors to be removed) that are removed by the reconfiguration operation are marked by setting the ready field to a disabled state. All pending requests (QEs) on the disabled queue are moved to other queues that remain operational (including the common queue).
This QE move operation can be performed by a processor assigned as a reconfiguration processor that processes the command in the reconfiguration command. Also, in the present invention, the header of each queue (for the added processor) added by the reconfiguration operation is marked by setting the ready field to the disabled state.
【0024】再構成処理は、待ち行列に関連するプロセ
ッサが、すべてのQEを探索して、再構成の後に残って
いる待ち行列への待ち行列割当てを決定し、必要な場合
にはこれを変更することを必要とする。プロセッサをサ
ブシステムから論理的に除去する(プロセッサが削除さ
れる)場合、その待ち行列も除去され、再構成プロセッ
サは、削除されたプロセッサのQEを残っているプロセ
ッサ待ち行列に再割り当てする。プロセッサ待ち行列の
追加の場合、サブシステムは、QEの一部を、前の既存
の待ち行列から新しい各プロセッサ待ち行列に再割り当
てすることができる。関連するQ(待ち行列)IDを増
分する作業負荷平衡機能と、遊休プロセッサに作業を割
り当てる機能とによって、追加されたプロセッサに保留
中のQEが割り当てられる。In the reconfiguration process, the processor associated with the queue searches all QEs to determine a queue assignment to the queue remaining after the reconfiguration, and changes this if necessary. Need to do. When a processor is logically removed from a subsystem (a processor is removed), its queue is also removed and the reconfigured processor reassigns the deleted processor's QE to the remaining processor queue. In the case of adding processor queues, the subsystem may reassign a portion of the QE from the previous existing queue to each new processor queue. A workload balancing function that increments the associated Q (queue) ID and a function that allocates work to idle processors assigns the added processor a pending QE.
【0025】このようにして、本発明の作業負荷平衡動
作、回復動作および再構成動作を実行する際に、コンピ
ュータ・システムの他の部分またはコンピュータ・シス
テム内のソフトウェアの関与を必要とせずに(ソフトウ
ェア・オペレーティング・システムによる関与も必要で
ないことを含めて)、ADM要求が、動作可能待ち行列
と共通待ち行列に再分配される。Thus, performing the workload balancing, recovery, and reconfiguration operations of the present invention does not require the involvement of other parts of the computer system or software within the computer system ( The ADM requests are redistributed into the ready queue and the common queue (including that no involvement by the software operating system is required).
【0026】[0026]
CPU動作(図1) 図1は、複数のCPU1ないしNからCPUオフロード
・サブシステム20に非同期データ移動管理動作をオフ
ロードし、電子メモリ21または電子メモリ23の中も
しくはこれらの間でデータのページを移動する、CPU
オフロード・サブシステム20と、入出力チャネル経
路、入出力スイッチ・ユニット、入出力制御ユニットお
よび装置を含む入出力サブシステム22とを含む、コン
ピュータ・システムを示す図である。電子メモリ21は
システム主記憶装置21(MSと称することもある)で
あり、電子メモリ23は拡張記憶機構(ESと称するこ
ともある)である。CPU Operation (FIG. 1) FIG. 1 illustrates the offload of asynchronous data movement management operations from a plurality of CPUs 1 to N to a CPU offload subsystem 20 to transfer data to and from electronic memory 21 or electronic memory 23. CPU to move pages
FIG. 1 shows a computer system including an offload subsystem 20 and an input / output subsystem 22 including input / output channel paths, input / output switch units, input / output control units and devices. The electronic memory 21 is a system main storage device 21 (sometimes called MS), and the electronic memory 23 is an extended storage mechanism (sometimes called ES).
【0027】各CPUは、S/390のサブチャネル開
始(SSCH)命令を使用して、サブチャネルに割り当
てられた待ち行列要素(QE)をサブシステムの待ち行
列に置く。SSCH命令は、入出力要求及びADM要求
に対しては、従来技術の方法で動作する。Each CPU uses the S / 390 Start Subchannel (SSCH) instruction to place the queue element (QE) assigned to the subchannel in the subsystem's queue. The SSCH instruction operates in a conventional manner for I / O and ADM requests.
【0028】入出力要求とADM要求のどちらの場合で
も、SSCH命令のCPU実行では、第2オペランドに
よって指定されるORB(動作要求ブロック)がアクセ
スされる。汎用レジスタ1(GR1)で、サブチャネル
ID番号を指定する。SSCH命令は、そのCPU内の
マイクロコードを呼び出して、識別される各サブチャネ
ルに割り当てられたCPUオフロード・サブシステム2
0内の待ち行列にアクセスし、それぞれの待ち行列にあ
る、本明細書で開示する優先順位を使用して、QEに割
り当てられた待ち行列に、サブチャネルに関連するQE
を連鎖する。待ち行列のヘッダ内の諸フィールドは、そ
の待ち行列の現下端(最終)QEのアドレスと、その待
ち行列の現上端(第1)QEのアドレスにセットされ
る。In both cases of an I / O request and an ADM request, the CPU execution of the SSCH instruction accesses the ORB (operation request block) specified by the second operand. The sub-channel ID number is designated by the general-purpose register 1 (GR1). The SSCH instruction calls the microcode in that CPU to cause the CPU offload subsystem 2 assigned to each identified subchannel to
The queues assigned to the QEs are accessed using the priorities disclosed herein in each queue by accessing the queues in each of the queues in the respective queues.
Chain. The fields in the header of the queue are set to the address of the current bottom (last) QE of the queue and the address of the current top (first) QE of the queue.
【0029】任意の待ち行列の各QEは、CPUオフロ
ード・サブシステム20に対する「作業のユニット」を
表すが、これは、そのQEを含む待ち行列に関連する待
ち行列オフロード・プロセッサ(QOP)に対して、示
された数のページをそのQE内で識別される原始アドレ
スと宛先アドレスの間で転送するように求める要求であ
る。Each QE in any queue represents a "unit of work" to CPU offload subsystem 20, which is the queue offload processor (QOP) associated with the queue containing that QE. Is a request to transfer the indicated number of pages between the source and destination addresses identified in the QE.
【0030】SSCH命令の実行は、アクセスされたQ
Eが、識別された待ち行列で最後のQEとして連鎖さ
れ、CPUが、関連するQOPに、新しい待ち行列要素
(QE)がその待ち行列に連鎖されたことを知らせる信
号を送った後に完了する。その時にQOPが使用中でな
い場合、そのQOPは、それに関連する待ち行列(好ま
しい実施例の場合)の最初のQEに即座にアクセスし、
その実行を開始する。新要素がその待ち行列の唯一の要
素である場合、信号を受けたQOPは、新QEにアクセ
スして、その次の作業ユニットを取得する。QOPが使
用中である場合、そのQOPは、各作業サブユニットを
完了した後にテストを行うことによって、新要求を発見
する。The execution of the SSCH instruction depends on the Q
E is chained as the last QE in the identified queue, and is complete after the CPU signals the associated QOP that a new queue element (QE) has been chained to that queue. If the QOP is not busy at the time, it immediately accesses the first QE in its associated queue (in the preferred embodiment),
Start its execution. If the new element is the only element in the queue, the signaled QOP accesses the new QE to get its next unit of work. If the QOP is busy, it discovers the new request by performing a test after completing each work subunit.
【0031】サブシステムの動作(図1および図2) 図1のCPUオフロード・サブシステム20は、1組の
待ち行列オフロード・プロセッサ(QOP)と、QOP
に関連する待ち行列(本明細書では「QOP待ち行列」
と称する)と、共通待ち行列(CQ)を含む。CPU
は、QOP待ち行列に要求を置き、QOPは、これらの
要求をそれぞれのQOP待ち行列から取り出し、これら
を実行するかまたは他の待ち行列に移動する。各CPU
要求は、待ち行列に連鎖された(待ち行列内でアドレス
される)待ち行列要素(QEと称する)の形で待ち行列
に置かれる。CPUからのADM要求または入出力要求
は、サブチャネルを待ち行列要素(QE)として待ち行
列に連鎖することができる。したがって、QOPは、待
ち行列に置かれるCPU要求に応答して非同期データ移
動処理を実行するオフロード・サブシステム・プロセッ
サである。CPU要求は、入出力要求、または電子メモ
リ21もしくは電子メモリ23の中もしくはこれらの間
でN個のページを移動することを求めるADM要求であ
る。すなわち、各QOPは、入出力処理であれADM処
理であれ、受け取った各CPU要求がそれぞれ必要とす
る1つまたは複数の処理を実行する。QOPが実行する
ADM処理には、ADM実行制御、負荷平衡、回復およ
び再構成が含まれる。Subsystem Operation (FIGS. 1 and 2) The CPU offload subsystem 20 of FIG. 1 includes a set of queuing offload processors (QOPs) and a QOP.
(A "QOP queue" herein)
) And a common queue (CQ). CPU
Puts the requests in the QOP queue, and the QOP removes these requests from their respective QOP queues and executes them or moves them to other queues. Each CPU
Requests are enqueued in the form of queue elements (referred to as QEs) that are chained to (addressed in the queue). ADM or I / O requests from the CPU can be chained to the queue with the subchannel as a queue element (QE). Thus, the QOP is an offload subsystem processor that performs asynchronous data movement processing in response to queued CPU requests. The CPU request is an input / output request or an ADM request for moving N pages in or between the electronic memory 21 or the electronic memory 23. That is, each QOP performs one or more processes required by each received CPU request, whether for input / output processing or ADM processing. The ADM processing performed by the QOP includes ADM execution control, load balancing, recovery, and reconfiguration.
【0032】図2に、CPUオフロード・サブシステム
20を詳細に示す。各待ち行列要素は、要求されたサブ
チャネル動作が入出力要求とADM要求のどちらを表す
のかを示すように初期設定によってセットされるフィー
ルドを有する。CPUは、各QOP待ち行列の下端に入
出力要求またはADM要求を置く。各QOPは、それに
関連する待ち行列のヘッダの"Top Q PTR(待ち行列先頭
ポインタ)"フィールド内のアドレスによって位置指定
されるQEにアクセスすることによって、次の作業ユニ
ットを見つける。作業ユニットは、待ち行列内で連鎖さ
れる入出力QEまたはADM QEのいずれかによって
表される。"Top Q PTR"フィールドにそのヘッダのアド
レスが含まれるならば、その待ち行列は空である。空で
ない場合、プロセッサは、その待ち行列の先頭にあるQ
Eにアクセスし、"Top Q PTR"フィールドの内容を、そ
の待ち行列内の次QEのアドレスに変更する。次の要素
がない場合、プロセッサは、ヘッダ・アドレスを書き込
む。現作業ユニットは、それを実行しようとする時、ど
の待ち行列からも連鎖を解除される。FIG. 2 shows the CPU offload subsystem 20 in more detail. Each queue element has a field set by initialization to indicate whether the requested subchannel operation represents an I / O request or an ADM request. The CPU places I / O or ADM requests at the bottom of each QOP queue. Each QOP finds the next unit of work by accessing the QE located by the address in the "Top Q PTR (Queue Top Pointer)" field of its associated queue header. A unit of work is represented by either an I / O QE or an ADM QE chained in the queue. If the "Top Q PTR" field contains the address of the header, the queue is empty. If not empty, the processor returns the Q at the head of the queue.
Access E and change the contents of the "Top Q PTR" field to the address of the next QE in the queue. If there is no next element, the processor writes the header address. The current unit of work is unchained from any queue when it tries to execute it.
【0033】QOPは、入出力要求またはADM作業ユ
ニットを完了した時(言い換えれば、1つのADM要求
全体を完了した時)、共通待ち行列(CQ)ヘッダを見
てCQが空であるかどうかを調べる。CQが空でない場
合、QOPは、CQ内の先頭QEをそのQOPの待ち行
列の先頭に移動し、待ち行列処理に戻る。QEを移動す
る場合、またはCQにQEがない場合、QOPは、その
待ち行列ヘッダを見てそれが空であるかどうかを調べ
る。待ち行列が空でない場合、QOPは、その待ち行列
の先頭にあるQEを実行する。新しいCPU要求は、す
べて待ち行列の下端に置かれる。このようにして、各待
ち行列にQEを置き、そこから取り出すことによって、
すべての待ち行列でのQEの実行の優先順位を維持し、
できるだけ到着順序に近い順でQEを処理しようと試み
る。When a QOP completes an I / O request or ADM work unit (in other words, completes an entire ADM request), it looks at the common queue (CQ) header to determine whether the CQ is empty. Find out. If the CQ is not empty, the QOP moves the first QE in the CQ to the top of the queue for that QOP and returns to queuing. When moving a QE, or when there is no QE in the CQ, the QOP looks at its queue header to see if it is empty. If the queue is not empty, the QOP executes the QE at the head of the queue. All new CPU requests are placed at the bottom of the queue. Thus, by putting a QE in each queue and removing it from it,
Maintain the priority of QE execution on all queues,
Attempt to process the QEs as close as possible to the arrival order.
【0034】QOPによって実行される入出力処理は、
IBM社のES/9000 M900システムや以前の
S/3090システムなど、IBM社のメインフレーム
に見られる普通のIOP(入出力プロセッサ)によって
実行される普通のIOP処理である。The input / output processing executed by the QOP includes:
It is a normal IOP process performed by a normal IOP (input / output processor) found on IBM mainframes, such as the IBM ES / 9000 M900 system and the earlier S / 3090 system.
【0035】QOPによって実行されるADM処理は、
本発明の主題である。CPUオフロード・サブシステム
20内の共通待ち行列(CQ)は,ADM処理のためだ
けに使用され、すべてのQOPによって使用可能であ
る。The ADM processing performed by the QOP is as follows:
It is the subject of the present invention. The common queue (CQ) in the CPU offload subsystem 20 is used only for ADM processing and is available for all QOPs.
【0036】QOPは、作業ユニットを完了した後、お
よび作業ユニット実行中に各作業サブユニットを完了し
た後に、保留中のADM要求または保留中の入出力要求
があるかどうか検査を行う。QOPは、その待ち行列の
ヘッダを見て新しい要求がその待ち行列に置かれたかど
うかを調べることによって、待ち行列を検査する。待ち
行列に新しい要求がある場合、QOPは、それが入出力
タイプのものかそれともADMタイプのものかを検査す
る。入出力タイプのものである場合、QOPは、そのC
PU要求をチャネル・プロセッサに転送することによっ
てこれを処理し、サブシステム待ち行列上のADM作業
に戻る。The QOP checks for pending ADM requests or pending I / O requests after completing a unit of work and after completing each unit of work during execution of the unit of work. The QOP checks the queue by looking at the header of the queue to see if a new request has been placed on the queue. If there is a new request in the queue, the QOP checks whether it is of the I / O type or of the ADM type. If it is of the input / output type, the QOP is
Process this by forwarding the PU request to the channel processor and return to ADM work on the subsystem queue.
【0037】新しい要求がADMタイプのものである場
合、QOPは、遊休プロセッサが見つかったなら、その
新しい要求を遊休プロセッサに渡そうと試みる。これ
は、CQヘッダ内のQOP使用中ポインタを検査して、
遊休QOPがあるかどうかを判定することによって行わ
れる。その後、この検査を行ったQOPが、その待ち行
列の先頭から遊休QOPの待ち行列の下端へ新ADM要
求(QE)を転送し、遊休QOPに信号を送る。検査を
行うQOPが遊休待ち行列を見つけられない場合、この
QOPは、その新ADM要求をCQに入れ、自分の処理
に戻る。その後、検査を行ったQOPは、休止した時に
処理していたものが何であれ、その処理を続行する。Q
OPは、遊休状態になった時、空状態かどうかCQヘッ
ダを検査する。CQが空でない場合、QOPは、先頭の
CQ要求を取り出し、その待ち行列の先頭に移動する。
このCQ要求は、このQOPの次の作業ユニットとして
その待ち行列の先頭から取り出される。CQが空の場
合、QOPは次に、行うべき作業があるかどうかそれ自
体の待ち行列を検査する。何もない場合、QOPは待機
状態に移行する。If the new request is of the ADM type, the QOP attempts to pass the new request to an idle processor if one is found. This checks the QOP busy pointer in the CQ header,
This is performed by determining whether there is an idle QOP. The checked QOP then transfers a new ADM request (QE) from the head of the queue to the bottom of the idle QOP queue and signals the idle QOP. If the checking QOP cannot find an idle queue, it places its new ADM request in the CQ and returns to its processing. Thereafter, the inspected QOP continues its processing whatever it was processing at the time of pausing. Q
When the OP enters an idle state, it checks the CQ header for an empty state. If the CQ is not empty, the QOP fetches the head CQ request and moves to the head of the queue.
The CQ request is taken from the head of the queue as the next unit of work for this QOP. If the CQ is empty, the QOP then checks its own queue for work to do. If there is nothing, the QOP goes to a standby state.
【0038】QOPの動作 通常、QOPは、それに関連する待ち行列から先頭のサ
ブチャネルQEを外し、そのQEを実行して1ユニット
の作業を行う。QEの実行により、待ち行列要素内で指
定された2つの位置の間で、指定された数のデータのサ
ブユニットが転送される。この2つの位置は、同一の電
子記憶媒体内のアドレス、またはシステム内の2つの異
なる電子記憶媒体内のアドレスである。これらの動作
は、たとえば、「作業ユニット」は、MSとESの間で
の10000ページのデータの転送や、MS内の2つの
位置の間での38ページのデータの転送である。すなわ
ち、各ページの転送が、「作業サブユニット」の例であ
る。作業ユニットは、その作業ユニットが単一のサブユ
ニット転送を指定する時だけ、作業サブユニットに等し
くなる。QOP Operation Normally, a QOP removes the first subchannel QE from its associated queue and executes that QE to perform one unit of work. Execution of the QE transfers a specified number of data subunits between the two specified positions in the queue element. The two locations are addresses in the same electronic storage medium, or addresses in two different electronic storage media in the system. These operations are, for example, a "work unit" is the transfer of 10,000 pages of data between the MS and the ES, or the transfer of 38 pages of data between two locations in the MS. That is, the transfer of each page is an example of the “work subunit”. A work unit is equal to a work subunit only when the work unit specifies a single subunit transfer.
【0039】QOPは、作業サブユニットを完了するご
とに休止する。この休止の間に、QOPはその待ち行列
ヘッダの待ち行列先頭ポインタを見て、その待ち行列で
待機しているQEがあるかどうかを調べる。待機中のA
DM QEがある場合、休止したQOPは、一時的にサ
ブユニット転送動作から切り替わって、サブシステム内
で非使用中のQOPを探す。非使用中のQOPが見つか
った場合、休止したQOPは、待機中のQEを非使用中
のQOP待ち行列に移動し、その非使用中のQOPに、
それに関連する待ち行列にQEがあることを知らせる信
号を送る。すべてのQOPが使用中であると判明した場
合、停止したQOPは、待機中のQEを共通待ち行列
(CQ)の下端に移動する。The QOP pauses each time it completes a work subunit. During this pause, the QOP looks at the queue head pointer in its queue header to see if there are any QEs waiting in that queue. A waiting
If there is a DM QE, the dormant QOP temporarily switches from the sub-unit transfer operation to look for an unused QOP in the subsystem. If an unused QOP is found, the dormant QOP moves the waiting QE to the unused QOP queue and places it in the unused QOP.
Signals that there is a QE in its associated queue. If all QOPs are found to be in use, the stopped QOP moves waiting QEs to the lower end of the common queue (CQ).
【0040】通常の処理で、CQまたは関連待ち行列に
作業が存在しない場合、QOPは、入出力QEまたはA
DM QEがその待ち行列に置かれたとの通知を受ける
まで、遊休状態に留まる。In normal operation, if there is no work in the CQ or associated queue, the QOP is
Stay idle until notified that the DM QE has been placed in the queue.
【0041】QOP待ち行列と共通待ち行列の間でAD
M QEの負荷平衡再分配を行うことにより、CPUが
サブシステム内のいずれかの待ち行列にQEを置いてい
る限り、すべてのQOPが継続的に使用中に保たれる。
この動作方法によれば、負荷平衡式でない待ち行列を有
するサブシステムのADM要求処理に比べて、サブシス
テムに供給されるすべての作業に関して最大の処理速度
が得られる。AD between the QOP queue and the common queue
By performing load balancing redistribution of the MQEs, all QOPs are kept continually in use as long as the CPU places the QE in any queue in the subsystem.
This method of operation provides the highest processing speed for all work supplied to the subsystem as compared to ADM request processing for subsystems with non-load balanced queues.
【0042】待ち行列要素(QE)(図3) 図3は、サブチャネルに関連する保護された電子メモリ
機構に記憶された制御ブロックであるQEを表す図であ
る。Queue Element (QE) (FIG. 3) FIG. 3 is a diagram representing a control block, QE, stored in a protected electronic memory mechanism associated with a subchannel.
【0043】本発明によって使用されるQEは、特定の
サブチャネルに関連する(サブチャネルを指す)制御ブ
ロックでも、様々なタイプの待ち行列に連鎖するための
ポインタ・フィールドを有する制御ブロックであるサブ
チャネル自体でもよい。The QE used by the present invention may be a control block associated with a particular subchannel (pointing to a subchannel) or a control block having a pointer field for chaining to various types of queues. The channel itself may be used.
【0044】この実施例では、各QEは、"lock(ロッ
ク)"、"subchannel ID(サブチャネル識別子)"、"typ
e(タイプ)"、"busy ID(使用中識別子)"、"Current
Q ID(現待ち行列識別子)"、"Current Q PTR(現待ち
行列ポインタ)"、"Current Qchain PTR(現待ち行列連
鎖ポインタ)"、"assigned Q ID(割り当て済み待ち行
列識別子)"、"Checkpt Subunit Data(チェックポイン
ト・サブユニット・データ)"、"Channel Program Addr
ess(チャネル・プログラム・アドレス)"および"statu
s(状況)"の各フィールドを含む。In this embodiment, each QE is "lock (lock)", "subchannel ID (subchannel identifier)", "typ"
e (type) "," busy ID (busy identifier) "," Current
“Q ID (current queue identifier)”, “Current Q PTR (current queue pointer)”, “Current Qchain PTR (current queue chain pointer)”, “assigned Q ID (assigned queue identifier)”, “Checkpt Subunit Data (Checkpoint Subunit Data) "," Channel Program Addr
ess (channel program address) "and" statu
s (situation) "field.
【0045】"lock"フィールドは、1つまたは複数のフ
ィールドを変更するためにそのQEにアクセス中である
時、他のQOPおよびCPUに警告するため、オンにセ
ットされる。The "lock" field is set on to alert other QOPs and the CPU when accessing the QE to change one or more fields.
【0046】"subchannel ID"フィールドには、関連す
るサブチャネルのID番号が格納される。The "subchannel ID" field stores the ID number of the associated subchannel.
【0047】"type"フィールドは、そのQEが入出力Q
EとADM QEのどちらであるかを示す。どちらでも
ない場合、それは、QOPサブシステムによって処理さ
れる要求ではない。The "type" field indicates that the QE is
Indicates whether it is E or ADM QE. If neither, it is not a request processed by the QOP subsystem.
【0048】"busy ID"フィールドは、現在このQEに
アクセス中のQOPを識別する。"current Q ID"フィー
ルドは、このQEを含む現待ち行列を識別する。The "busy ID" field identifies the QOP currently accessing this QE. The "current Q ID" field identifies the current queue containing this QE.
【0049】"current Q PTR"フィールドは、このQE
を含む待ち行列の待ち行列ヘッダをアドレスする。この
QEがどの待ち行列にも存在しない間は、このフィール
ドはクリアされる。The “current Q PTR” field contains this QE
Address the queue header of the queue containing the. This field is cleared while this QE is not in any queue.
【0050】"Current Q chain PTR"フィールドは、こ
の待ち行列内で次に実行されるQEをアドレスする。こ
のQEが待ち行列内の最終QEである場合、このフィー
ルドは特別な値を有する。このサブチャネルがどの待ち
行列にも存在しない間は、このフィールドはクリアされ
る。The "Current Q chain PTR" field addresses the next executed QE in this queue. This field has a special value if this QE is the last QE in the queue. This field is cleared while this subchannel is not in any queue.
【0051】"assigned Q ID"フィールドは、CPUが
このQEを割り当てる先のQOP待ち行列を識別する。The "assigned Q ID" field identifies the QOP queue to which the CPU will assign this QE.
【0052】"Checkpt Subunit Data"フィールドには、
1)"Checkpt Subunit Data"内のすべてのサブフィール
ドが有効である時にオンにセットされる有効ビット
(V)サブフィールド、2)現ADMプログラム内の現
ADM CCW(チャネル・コマンド・ワード)へのア
ドレスを含むCCWサブフィールド、3)現ADM C
CWのサブユニット移動パラメータを指定する現移動指
定ブロック(MSB)へのアドレスを含むMSBサブフ
ィールド、および4)現MSBに関して成功裡に移動さ
れたサブユニットの現在数を示す移動済みサブユニット
・サブフィールドを含む、複数のサブフィールドが含ま
れる。QEの"Channel Program Address"フィールドに
は、SSCH命令呼出しのORBから得られたADMチ
ャネル・プログラムのアドレスが格納される。入出力要
求の場合、必要な入出力チャネル・プログラムのアドレ
スがこのフィールドに格納される。ADM要求の場合
は、必要なADMプログラムのアドレスがこのフィール
ドに格納される。「ADMプログラム」とは、メモリ内
のADM CCWのリストである。In the "Checkpt Subunit Data" field,
1) Valid bit (V) subfield set to ON when all subfields in "Checkpt Subunit Data" are valid. 2) Access to current ADM CCW (channel command word) in current ADM program. CCW subfield containing address; 3) current ADM C
A MSB sub-field containing the address to the current move designation block (MSB) that specifies the sub-unit move parameters of the CW; Contains multiple subfields, including fields. The “Channel Program Address” field of the QE stores the address of the ADM channel program obtained from the ORB of the SSCH instruction call. For an I / O request, the address of the required I / O channel program is stored in this field. In the case of an ADM request, the address of the required ADM program is stored in this field. An “ADM program” is a list of ADM CCWs in the memory.
【0053】"status"フィールドには、作業ユニットが
完了し、割込み待ち行列に置かれた時に要求元CPUに
報告される、ADM作業ユニットに関する状況情報が格
納される。The "status" field stores status information about the ADM work unit that is reported to the requesting CPU when the work unit is completed and placed in the interrupt queue.
【0054】QOP待ち行列のヘッダ(図4) 図4は、QOPに関連する各待ち行列のヘッダで使用さ
れる重要なフィールドを示す図である。各待ち行列は、
すべてのCPUおよびQOPにとって既知のアドレスに
待ち行列をアンカーするためのヘッダを有し、したがっ
て、それらのCPUおよびQOPが待ち行列にアクセス
することが必要になった時、いつでもそれに関連するヘ
ッダにアクセスできるようになっている。QOP待ち行
列の各ヘッダには、この実施態様で使用される諸フィー
ルド、すなわち、lockフィールド、enable(動作可能)
フィールド、retry count(再試行カウント)フィール
ド、top Q PTR(待ち行列上端ポインタ)フィールドお
よびbottom Q PTR(待ち行列下端ポインタ)フィールド
が含まれる。lockフィールドは、このヘッダ内のフィー
ルドを変更する時に必ずセットされる。enableフィール
ドは、関連する待ち行列が動作可能にされる時にオンに
セットされ、関連する待ち行列が動作不能にされる時に
オフにセットされる単一ビットのフィールドとすること
ができる。retry countフィールドには、関連するQO
Pが、事前に定義された時間窓の中で遭遇したエラーの
現在の数が格納される。top Q PTRフィールドには、関
連するQOP待ち行列の先頭にあるQE(現在その待ち
行列で最高の優先順位を有するQE)のアドレスが格納
される。これは、この待ち行列で次に実行されるQEで
ある。待ち行列が空の(QEを含まない)時には、top
Q PTRフィールドにそのヘッダのアドレスが格納され
る。QOP Queue Header (FIG. 4) FIG. 4 shows the important fields used in the header of each queue associated with the QOP. Each queue has
Having a header to anchor the queue to an address known to all CPUs and QOPs, so whenever those CPUs and QOPs need to access the queue, access the header associated with it I can do it. Each header of the QOP queue has the fields used in this embodiment: a lock field, enable
Fields include a retry count field, a top Q PTR (top queue pointer) field, and a bottom Q PTR (bottom queue pointer) field. The lock field is set whenever you change a field in this header. The enable field may be a single bit field that is set on when the associated queue is enabled and off when the associated queue is disabled. In the retry count field, the relevant QO
Stores the current number of errors that P has encountered within a predefined time window. The top Q PTR field stores the address of the QE at the head of the associated QOP queue (the QE currently having the highest priority in that queue). This is the next QE to be performed on this queue. When the queue is empty (no QE), top
The address of the header is stored in the Q PTR field.
【0055】bottom Q PTRフィールドには、待ち行列の
下端にあり、その待ち行列で最低の優先順位を有するQ
Eのアドレスが格納される。これは、現在その待ち行列
にあるQEのうちで最後に実行されるQEである。bott
om Q PTRフィールドは、次のQEを待ち行列に置くため
にアクセスされる。The bottom Q PTR field contains the Q which is at the bottom of the queue and has the lowest priority in that queue.
The address of E is stored. This is the last QE that is currently running in the queue. bott
The om Q PTR field is accessed to queue the next QE.
【0056】共通待ち行列のヘッダ(図5) 図5は、サブシステム内のすべてのQOPが使用する共
通待ち行列(CQ)のヘッダ内のフィールドを示す図で
ある。ADM QEだけがCQに置かれる。CQヘッダ
(CQH)には、この実施態様で使用されるフィール
ド、すなわちlockフィールド、QOP0 busy PTR(QOP
0使用中ポインタ)ないしQOPy busy PTR(QOPy使
用中ポインタ)フィールド、top Q PTRフィールド、お
よびbottom QPTRフィールドが含まれる。Common Queue Header (FIG. 5) FIG. 5 shows the fields in the common queue (CQ) header used by all QOPs in the subsystem. Only the ADM QE is placed in the CQ. The CQ header (CQH) contains the fields used in this embodiment, namely the lock field, the QOP0 busy PTR (QOP
0 in-use pointer) to QOPy busy PTR (QOPy in-use pointer) field, top Q PTR field, and bottom QPTR field.
【0057】lockフィールドは、CQHが変更される時
に必ずセットされる。QOP0 busy PTRないしQOPy busy P
TRフィールドにはそれぞれ、それぞれのQOPによって
現在実行されている(最後に除去された)ADM QE
のアドレスが格納される。このフィールドのQEアドレ
スは、それぞれのQOPの使用中状態を示す。QOP0 bus
y PTRないしQOPy busy PTRフィールドのそれぞれの内容
は、それぞれのQOPによってQEが処理されていない
場合にクリア(空に)される。The lock field is set whenever the CQH is changed. QOP0 busy PTR or QOPy busy P
Each TR field contains the ADM QE currently being executed (last removed) by the respective QOP.
Is stored. The QE address in this field indicates the busy state of each QOP. QOP0 bus
The contents of each of the yPTR or QOPy busy PTR fields are cleared (empty) if no QE has been processed by the respective QOP.
【0058】top Q PTRフィールドは、CQの先頭にあ
るQE(その待ち行列で次に実行されるQE)をアドレ
スし、CQが空の時はCQHをアドレスする。The top Q PTR field addresses the QE at the head of the CQ (the next QE to be executed in that queue), and addresses the CQH when the CQ is empty.
【0059】bottom Q PTRフィールドは、待ち行列の下
端にあるQEをアドレスする。これは、現在CQにある
QEのうちで最後に実行されるQEである。これは、C
Qに次のQEを置くためにアクセスされるフィールドで
ある。The bottom Q PTR field addresses the QE at the bottom of the queue. This is the last QE to be executed among the QEs currently in the CQ. This is C
This is a field that is accessed to put the next QE in Q.
【0060】サブシステム・サービスを求めるCPU要
求(図6) 図6は、いずれかのQOP待ち行列に作業ユニットを置
くためにCPUが使用する処理を示す図である。この処
理では、CPUが、QEの"current Q ID"フィールドの
待ち行列割当てによって決定されるQOP待ち行列の下
端にQEを連鎖する。CPU要求は、入出力作業ユニッ
トもADM作業ユニットも要求できる。CPU Request for Subsystem Services (FIG. 6) FIG. 6 illustrates the process used by the CPU to place a work unit in any of the QOP queues. In this process, the CPU chains the QE to the bottom of the QOP queue determined by the queue assignment in the "current Q ID" field of the QE. A CPU request can request both an input / output work unit and an ADM work unit.
【0061】図6の最初のステップ50で、いずれかの
CPUがS/390の「サブチャネル開始(SSC
H)」命令にアクセスして、QOPサブシステムに作業
ユニットに関する要求を行う。このSSCH命令の第1
オペランドは、汎用レジスタ1(GR1)で指定される
サブチャネルID番号である。図6に示す処理は、IB
M社のメインフレームで入出力装置の始動に使用される
普通の処理に類似している。後者の場合、CPUが、Q
Eで指定されたIOP待ち行列に指定されたサブチャネ
ルを待ち行列要素(QE)として連鎖し、その待ち行列
に関連するIOP(入出力プロセッサ)に、新待ち行列
要素を処理するよう指示する信号を送る。In the first step 50 of FIG. 6, any one of the CPUs
H) "instruction to make a request for a unit of work to the QOP subsystem. The first of this SSCH instruction
The operand is a sub-channel ID number specified by the general-purpose register 1 (GR1). The processing shown in FIG.
It is similar to the usual process used to start an I / O device on the M company mainframe. In the latter case, the CPU
A signal that chains the subchannels specified in the IOP queue specified by E as a queue element (QE) and instructs the IOP (input / output processor) associated with the queue to process the new queue element. Send.
【0062】次に、ステップ51で、従来技術で行われ
る形で実行中の例外テストを含めて、通常のSSCH命
令を実行する。QEは、実行処理の初期にマイクロコー
ドによって、有効かどうかおよび動作可能かどうかに関
してテストされる。これらのテストでそのQEが有効で
ないまたは動作可能でないことが示される場合、「例
外」経路を通ってステップ52に進み、処理を終了す
る。これらのテストでそのQEが有効であり、動作可能
であることが示される場合、ステップ53に進み、そこ
でCPUが、QEの"assigned Q ID"フィールドで指定
された待ち行列の下端にQEを連鎖する。Next, at step 51, a normal SSCH instruction is executed, including the running exception test as performed in the prior art. The QE is tested by the microcode early in the execution process for validity and operability. If these tests indicate that the QE is not valid or not operational, then go through the "exception" path to step 52 and end the process. If these tests indicate that the QE is valid and operational, then proceed to step 53, where the CPU chains the QE to the bottom of the queue specified in the QE's "assigned Q ID" field. I do.
【0063】次にステップ54で、CPUマイクロコー
ドが、割り当てられた待ち行列に関連するQOPに、新
QEがその待ち行列に置かれたことを示す信号を供給す
る。この信号によって、QOPは、他の作業の実行で使
用中でなければ、即座にこのQEを処理できるようにな
る。このSSCH命令のサブチャネル・オペランドは、
この時、割り当てられたQOP待ち行列上のQEによっ
て表される。Next, at step 54, the CPU microcode provides a signal to the QOP associated with the assigned queue indicating that a new QE has been placed on that queue. This signal allows the QOP to immediately process this QE if it is not busy performing other work. The subchannel operand of this SSCH instruction is
At this time, it is represented by the QE on the assigned QOP queue.
【0064】SSCH命令のCPU実行は、ステップ5
5で0の条件コードをセットして(CC=0)、この命
令が成功裡に完了したことをCPUプログラムに示すこ
とによって終了する。CPUプログラムは、この時、次
の命令を自由に実行することができ、次の命令は、この
SSCH命令と関係を有する必要はない。The CPU execution of the SSCH instruction is performed in step 5
A condition code of 0 is set at 5 (CC = 0), and the process is terminated by indicating to the CPU program that this instruction has been successfully completed. The CPU program is now free to execute the next instruction, and the next instruction need not have a relationship with this SSCH instruction.
【0065】待ち行列要素の処理(図7) 図7の処理は、作業ユニットが待ち行列に置かれたこと
を示すCPUからのQE信号をQOPが始めて受け取っ
た時、QOPごとに開始される。QE信号によって、Q
OPの双安定ラッチがオンにセットされ、QE信号を受
け取ったことを示す(このラッチは、QOPがその待ち
行列が空であることを見つけ、ラッチをオフにセットす
るまでオン状態に留まる)。まず、ステップ61Aに進
んで、待ち行列ヘッダにアクセスし、"top Q PTR"フィ
ールドにヘッダのアドレスが格納されているかどうかを
テストすることにより、待ち行列空状態に関するテスト
を行う。空の場合、ステップ61Bで、QE信号受取ラ
ッチをリセットして、QE信号非受取状態を示す。各待
ち行列のヘッダの"top Q PTR"フィールドには、現在関
連する待ち行列の先頭にあるQEのアドレスが格納され
る。"top Q PTR"フィールドの内容が待ち行列ヘッダの
アドレスと等しい場合、その待ち行列は空である(QE
がない)。Processing of Queue Elements (FIG. 7) The processing of FIG. 7 is started for each QOP when the QOP first receives a QE signal from the CPU indicating that the work unit has been queued. By the QE signal, Q
The OP's bistable latch is set on, indicating that the QE signal has been received (this latch remains on until the QOP finds its queue empty and sets the latch off). First, the process proceeds to step 61A to access the queue header and test whether or not the address of the header is stored in the "top Q PTR" field, thereby performing a test on the queue empty state. If empty, in step 61B, the QE signal receiving latch is reset to indicate the QE signal non-receiving state. The "top Q PTR" field in the header of each queue stores the address of the QE currently at the head of the associated queue. If the content of the "top Q PTR" field is equal to the address of the queue header, the queue is empty (QE
No).
【0066】ステップ61Aで待ち行列が空でないこと
が判った場合、NO経路からステップ61に進み、そこ
で、"top Q PTR"フィールドによってアドレスされるQ
Eサブチャネルを除去する。QEサブチャネルを待ち行
列から除去する時、その"Current Q Chain PTR"フィー
ルド(その待ち行列の次のサブチャネルを指す)を、待
ち行列ヘッダの"Top Q PTR"フィールドに書き込んで、
前の内容に重ね書きする。新しい"Top Q PTR"フィール
ドは、現在その待ち行列の先頭にあるその待ち行列内の
次のサブチャネルを指す。次のサブチャネルが待ち行列
にない場合、このフィールドは、待ち行列ヘッダを指
す。次に、ステップ62で、除去されたQEサブチャネ
ルがADM QEと入出力QEのどちらであるかを判定
する。ADM QEでない場合、ステップ63に進ん
で、入出力QEを処理し、通常の入出力処理を実行す
る。ステップ62で、除去されたQEがADM QEで
あると判定される場合、YES経路からステップ65に進
んで、CQH内のそのQOPのBusy PTRフィールドをセ
ットし、このQEサブチャネルのBusy IDフィールドを
このQOPの識別子にセットする。このQOPは、現在
ADMサブチャネルを処理していて使用中である。If it is determined in step 61A that the queue is not empty, then the NO path proceeds to step 61, where Q is addressed by the "top Q PTR" field.
Remove the E subchannel. When removing a QE subchannel from a queue, write its "Current Q Chain PTR" field (which points to the next subchannel in the queue) to the "Top Q PTR" field of the queue header,
Overwrite the previous content. The new "Top Q PTR" field points to the next subchannel in the queue currently at the top of the queue. If the next subchannel is not in the queue, this field points to the queue header. Next, in step 62, it is determined whether the removed QE subchannel is an ADM QE or an input / output QE. If it is not an ADM QE, the process proceeds to step 63, where the input / output QE is processed, and normal input / output processing is executed. If it is determined in step 62 that the removed QE is an ADM QE, the YES path proceeds to step 65, in which the Busy PTR field of the QOP in the CQH is set, and the Busy ID field of this QE subchannel is set. Set to the identifier of this QOP. This QOP is currently processing the ADM subchannel and is in use.
【0067】次に、ステップ66で、図8の"EXECUTE
(実行)"プロセスに分岐して、一時に1サブユニット
ずつ作業ユニットを実行する。この作業ユニットの実行
を完了した後、ブロック67に進む。Next, at step 66, "EXECUTE" in FIG.
(Execution) The process branches to the process, and the work unit is executed one subunit at a time. After the execution of the work unit is completed, the process proceeds to block 67.
【0068】ブロック67は、作業ユニットの完了時に
行われる1組のハウスキーピング・ステップを含む。こ
れらのハウスキーピング・ステップには、CQHの"QOP
Busy PTR"をクリア(オフにセット)するステップが含
まれる。また、作業ユニットが完了した後にはサブユニ
ットのチェックポイント処理が不要なので、このサブチ
ャネルの"Checkpt Subunit Data"フィールドをクリアす
るか、そのVビットをオフにセットするか、あるいはそ
の両方を行う。ステップ67で、このサブチャネルのQO
P Busy IDもクリアする。また、assigned Q IDを、次の
使用可能なQOPまで増分する。これによって、次のS
SCHで、QEが異なるQOP待ち行列に置かれること
になる。Block 67 includes a set of housekeeping steps performed upon completion of a unit of work. These housekeeping steps include CQH's "QOP
Busy PTR "is cleared (set off). Also, since the subunit does not need to be checkpointed after the unit of work is completed, either clear the" Checkpt Subunit Data "field for this subchannel, or Either set its V bit off, or both, and in step 67 the QO for this subchannel
Also clear P Busy ID. It also increments the assigned Q ID to the next available QOP. As a result, the next S
On the SCH, the QEs will be placed in different QOP queues.
【0069】ステップ67で、サブシステムに、(AD
Mサブチャネルを示す入出力タイプの割込みとしてCP
Uに提示される)ADM割込信号を生成させ送出させ
て、要求されたADMデータ移動動作が完了したことを
CPUに示す。In step 67, the subsystem (AD
CP as input / output type interrupt indicating M subchannel
An ADM interrupt signal (presented to U) is generated and sent to indicate to the CPU that the requested ADM data transfer operation has been completed.
【0070】その後、ブロック67で、図10に示す"G
ETWORK(作業取得)"プロセスを実行する。このプロセ
スでは、CQが待機中のQEサブチャネルを有する場合
に、現QOPに、次の作業ユニットがあるかどうか共通
待ち行列を調べさせる。その後、図7の処理が終了す
る。Thereafter, at block 67, "G" shown in FIG.
ETWORK "process, which causes the current QOP to check the common queue for the next unit of work if the CQ has a waiting QE subchannel. The processing of 7 is ended.
【0071】プロセスEXECUTE(図8) 図7で、ステップ66の「EXECUTE実行」に達した時、
図8のEXECUTEプロセスに分岐する。このEXECUTEプロセ
スは、現在除去されているQEによって表される現AD
M作業ユニット(たとえば、データのページの移動)の
実行を制御する。またEXECUTEプロセスでは、そのサブ
チャネルの"Checkpt Subunit Data"フィールドにチェッ
クポイント処理データを記憶し、成功裡に完了した作業
のサブユニットごとにこれを有効にセットする。Process EXECUTE (FIG. 8) In FIG. 7, when the “execution of EXECUTE” of step 66 is reached,
The process branches to the EXECUTE process in FIG. This EXECUTE process will execute the current AD represented by the QE currently being removed.
Controls the execution of M work units (eg, moving pages of data). In the EXECUTE process, checkpoint processing data is stored in the "Checkpt Subunit Data" field of the subchannel, and this is set effectively for each subunit of work that has been successfully completed.
【0072】EXECUTEプロセスは、ステップ70に進む
ことから始まり、まず"Checkpt Subunit Data"の有効ビ
ット(V)の状態を検査する。有効ビットがオフにセッ
トされている場合、現QEが、そのCheckpt Subunit Da
taに前のチェックポイント処理データを有しない新しい
要求であることが示され、NO経路からステップ72に
進んで、Checkpt Subunit Dataが作業の最初のサブユニ
ットを表すようにセットすることにより、このフィール
ドの内容を初期設定する。The EXECUTE process starts by proceeding to step 70, and first checks the state of the valid bit (V) of "Checkpt Subunit Data". If the valid bit is set off, the current QE
ta is indicated to be a new request without previous checkpointing data, the NO path proceeds to step 72, where Checkpt Subunit Data is set to represent the first subunit of the work, Initialize the contents of
【0073】ステップ71で、有効ビットがオンである
と判った場合、次に行うべきサブユニットは、最初のサ
ブユニットではなく、YES経路からステップ73に進
む。ステップ73で、作業の次のサブユニット(たとえ
ば、Checkpt Subunit Dataで定義される現QE要求によ
って要求される次のページの移動など)を完了する。If it is determined in step 71 that the valid bit is on, the subunit to be performed next is not the first subunit but proceeds to step 73 from the YES path. At step 73, the next sub-unit of work (eg, moving the next page requested by the current QE request defined in Checkpt Subunit Data) is completed.
【0074】その後、ステップ74で、サブユニットの
実行を完了した後の、そのサブユニットに関するチェッ
クポイント処理を実行する。これは、1)ステップ73
で完了したサブユニットを含めて、現MSBに関してこ
れまでに実行された作業のサブユニットの総数、2)現
在完了しているサブユニットを指定するMSBのアドレ
ス、および3)このMSBを指定するADM CCWの
アドレスを"Checkpt Subunit Data"に記憶し、4)有効
ビットをオン状態にセットすることによって行われる。Thereafter, in step 74, after the execution of the subunit is completed, a checkpoint process for the subunit is executed. This is 1) Step 73
Total number of sub-units of work performed so far on the current MSB, including the sub-unit completed in 2), 2) the address of the MSB specifying the currently completed sub-unit, and 3) the ADM specifying this MSB. This is performed by storing the address of the CCW in "Checkpt Subunit Data" and 4) setting the valid bit to the ON state.
【0075】次に、ステップ75で、現作業ユニットに
行うべき作業サブユニットがまだあるかどうかをテスト
する。ステップ75で、最後に完了したサブユニット
が、現QE要求に関して行うべき最終サブユニットでな
いことが検出された場合、行うべきサブユニットがまだ
残っている。したがって、YES経路からステップ75
Aに進んで、CHECKQUEUE(待ち行列検査)プロセス(図
9)を実行することによって、他のQEに関する検査を
行う。QOP待ち行列を検査し、すべてのQEを処理し
終えると、図8のステップ73に戻って、現QEに関す
る次の作業サブユニットを実行し、その後ステップ74
で、それが成功裡に完了した時にチェックポイント処理
データを記憶する。ステップ73に戻る繰返しには、こ
のQEサブチャネルに関するADMプログラムのMSB
(ADMに対する1つのCPU要求を表す)がすべて実
行されるまで、ADMプログラムに、現QEに関連する
ADMプログラムの次のMSBと次のADM CCWを
取り出させることが含まれる。ステップ75で、この作
業ユニットに関する最後のサブユニットが完了したこと
が検出される時、NO経路からステップ76に進む。ス
テップ76で、現在実行されているADM QEのstat
usフィールドをセットする。現ADM QEのこのstat
usフィールドは、成功裡の完了を示すようにセットされ
る。ステップ77で、図8の"EXECUTE"プロセスを呼び
出した図7の処理に戻る。図7の処理は、ブロック67
に進む。Next, at step 75, a test is made to see if there are more work subunits to be performed on the current work unit. If step 75 detects that the last completed subunit is not the last subunit to perform for the current QE request, there are still subunits to perform. Therefore, from the YES route, step 75
Proceed to A to check for other QEs by executing the CHECKQUEUE process (FIG. 9). When the QOP queue has been examined and all QEs have been processed, the process returns to step 73 of FIG. 8 to execute the next work subunit for the current QE, and then step 74
Stores the checkpoint processing data when it has been successfully completed. The repetition of returning to the step 73 includes the MSB of the ADM program for this QE subchannel.
Until all of the ADM programs (representing one CPU request for the ADM) have been executed, this involves having the ADM program retrieve the next MSB and the next ADM CCW of the ADM program associated with the current QE. When it is detected in step 75 that the last sub-unit for this work unit has been completed, the NO path proceeds to step 76. In step 76, the stat of the currently running ADM QE
Set the us field. This stat of the current ADM QE
The us field is set to indicate successful completion. In step 77, the process returns to the process in FIG. 7 in which the "EXECUTE" process in FIG. 8 is called. The processing in FIG.
Proceed to.
【0076】CHECKQUEUEプロセス(図9) 図9の"CHECKQUEUE"プロセスには、保留中の他の作業を
検査するために、図8のステップ75からの"YES"経
路から点78Aに入る。ステップ78Kで、回復信号の
保留に関するテストを行い、このプロセッサが回復プロ
セッサになる場合には、ステップ78Mに分岐して回復
処置を処理する。どの回復信号も保留中でない場合、"
NO"経路からステップ78Lに進み、そこで、保留中
の再構成信号に関するテストを行う。ステップ78L
で、保留中の再構成信号が活動状態であり、このプロセ
ッサが再構成プロセッサになる場合、"YES"経路から
ステップ78Nに進んで、再構成要求を処理する。どの
再構成信号も活動状態でない場合、"NO"経路からステ
ップ78Bに進む。CHECKQUEUE Process (FIG. 9) The "CHECKQUEUE" process of FIG. 9 enters point 78A from the "YES" path from step 75 of FIG. 8 to check for other pending work. At step 78K, a test is made for holding the recovery signal, and if this processor becomes the recovery processor, branch to step 78M to process the recovery action. If no recovery signal is pending,
The NO "path proceeds to step 78L, where a test is performed on the pending reconfiguration signal.
If the pending reconfiguration signal is active and this processor becomes the reconfiguration processor, the "YES" path proceeds to step 78N to process the reconfiguration request. If no reconfiguration signals are active, then the "NO" path proceeds to step 78B.
【0077】どちらかの信号をプロセッサがとりあげる
場合、その信号を1動作でテストしかつオフにセットし
て、他のプロセッサがこの信号に反応しないようにす
る。ステップ78Mで、回復処理(図12)を呼び出
し、その後この処理が完了した時に、図9のステップ7
8Bに戻る。ステップ78Nで、再構成処理(図11)
を呼び出し、その後この処理が完了した時に、図9のス
テップ78Bに戻る。If either signal is picked up by the processor, that signal is tested in one operation and set off so that the other processor does not respond to this signal. At step 78M, the recovery process (FIG. 12) is called, and when this process is completed, the process proceeds to step 7 of FIG.
Return to 8B. At step 78N, the reconstruction processing (FIG. 11)
And thereafter, when this process is completed, the process returns to step 78B of FIG.
【0078】次に、ステップ78Bで、このQOPの待
ち行列が空であるかどうかをテストする。空の場合、"
YES"経路からステップ78Hに進んで、CHECKQUEUE
プロセスを終了する。空でない場合、"NO"経路からス
テップ78Cに進んで、その待ち行列から先頭QEを外
す(除去する)。次に、ステップ78Dで、除去された
QEがADM QEであるかどうかをテストする。そう
でない場合、これは入出力QEであり、NO経路からス
テップ78Pに進んで、通常の入出力処理を実行する。Next, step 78B tests whether the queue for this QOP is empty. If empty, "
YES "Proceed to step 78H from the route, and
Terminate the process. If it is not empty, the process proceeds from the "NO" route to step 78C, and removes (removes) the head QE from the queue. Next, step 78D tests whether the removed QE is an ADM QE. Otherwise, this is an input / output QE, and the process proceeds from the NO path to step 78P to execute a normal input / output process.
【0079】これがADM QEである場合、"YES"
経路からステップ78Eに進んで、待機解除されたQE
要求を実行できる別のQOPを探す。現QOPは、作業
ユニットの実行中に"CHECKQUEUE"プロセスを実行するた
めに最後のサブユニットの終了時に休止した時に、完了
していない作業ユニットを実行していて現在使用中であ
ることに留意されたい。したがって、現QOPは、この
待機解除されたQEをこの時点で実行することはできな
い。If this is an ADM QE, "YES"
Proceeding to the step 78E from the route, and the QE
Find another QOP that can fulfill the request. Note that the current QOP is executing an incomplete unit of work and is currently in use when it paused at the end of the last subunit to perform the "CHECKQUEUE" process while the unit of work was executing. I want to. Therefore, the current QOP cannot execute this dequeued QE at this time.
【0080】ステップ78Eで、別のQOPが(ADM
作業をまったく行っていないので)遊休状態であり、待
ち行列が動作可能にされていることが判った場合、"Y
ES"経路からステップ78Fに進んで、この除去され
たQEをその遊休QOPのQOP待ち行列に入れる。そ
の後、ステップ78Gで、現QOPに、遊休QOPへQ
E信号を送らせて、QEが待ち行列に置かれたことをそ
の遊休QOPに示す。その後、図8のEXECUTEプロセス
に戻って、ステップ73に進む。At step 78E, another QOP is (ADM
If you find that you are idle and have the queue enabled (because you are not doing any work), then "Y
From the "ES" path, go to step 78F to place the removed QE in the QOP queue of the idle QOP.
An E signal is sent to indicate to the idle QOP that the QE has been queued. Thereafter, the process returns to the EXECUTE process in FIG.
【0081】ステップ78Eで遊休状態で動作可能にさ
れたQOPが全く見つからない場合、ステップ78Jに
進み、そのQEが有効なCheckpt Subunit Dataを有する
場合にはそのQEをCQの先頭に入れ、有効なCheckpt
Subunit Dataを有しない場合はCQの下端に入れ、その
後、図8のプロセスEXECUTEに戻って、ステップ73に
進む。If no QOP enabled in the idle state is found in step 78E, the flow advances to step 78J. If the QE has valid Checkpt Subunit Data, the QE is put at the head of the CQ, and Checkpt
If it does not have Subunit Data, it is placed at the lower end of the CQ. Thereafter, the process returns to the process EXECUTE in FIG.
【0082】共通待ち行列からのGETWORKプロセス(図
10) 図7で「GETWORK実行」ステップに達した時、分岐を行
って、図10のステップ80の"GETWORK"プロセスに入
る。"GETWORK"プロセスでは、共通待ち行列ヘッダ(C
QH)にアクセスし、その"Top Q PTR"フィールドを試
験して、CQが空であるか否かを判定する。CQが空の
(QEを含まない)場合、"Top Q PTR"フィールドの内
容にCQヘッダのアドレスが含まれる。有効なアドレス
がそこに含まれない場合、ステップ83で、図7のステ
ップ67に戻る。しかし、有効なアドレスがそこに含ま
れる場合は、ステップ82で、そのアドレスを使用し
て、CQから先頭QEを外し、CQの次QEを取得し、
そのQEをQOP待ち行列の先頭に入れる。GETWORK Process from Common Queue (FIG. 10) When the “GETWORK execution” step in FIG. 7 is reached, a branch is made and the “GETWORK” process of step 80 in FIG. 10 is entered. In the "GETWORK" process, the common queue header (C
QH) and test its "Top Q PTR" field to determine if the CQ is empty. If the CQ is empty (not including the QE), the contents of the "Top Q PTR" field include the address of the CQ header. If a valid address is not included therein, step 83 returns to step 67 of FIG. However, if a valid address is included therein, at step 82, the address is used to remove the leading QE from the CQ and obtain the next QE following the CQ,
Put the QE at the head of the QOP queue.
【0083】その後、ステップ83で、図7のステップ
67に進む。Thereafter, in step 83, the process proceeds to step 67 in FIG.
【0084】再構成処理(図11) ADMサブシステムは、人間のシステム操作員が、コン
ピュータ・システムにコマンドを入力して、それぞれ関
連する待ち行列を有する1つまたは複数のQOPを除去
または追加することにより、再構成することができる。
これは、たとえば、マルチプロセッシング・システムを
複数の独立イメージまたはシステムに細分割する時に発
生し得る。各QOPは、そのQOPが物理的に存在する
再構成後のシステム部分の一部分のままでなければなら
ない。進行中の要求と既に待機された要求は、システム
のうち、それを開始したオペレーティング・システムが
再構成の後に常駐する部分によって処理されなければな
らない。現在実行中のオペレーティング・システムがそ
こで実行を継続するシステム部分から離れるQOP上で
進行中の要求は、その部分に残るQOPに再割り当てさ
れなければならない。CQも、残りの部分の一部として
残される。再構成が、前に再構成によって除去された要
素の追加を含む場合、追加のQOPは、動作可能なQO
Pサブシステムの一部になる。再構成QOPは、QEが
存在するならばCQからQEを外し、追加されたQOP
に信号を送る。CQ上にQEがない場合、追加されたQ
OPは信号を待つ。Reconfiguration Process (FIG. 11) The ADM subsystem allows a human system operator to enter commands into a computer system to remove or add one or more QOPs, each having an associated queue. Thus, it can be reconfigured.
This can occur, for example, when subdividing a multi-processing system into multiple independent images or systems. Each QOP must remain part of the reconfigured system part where the QOP physically resides. Requests in progress and requests already waiting must be handled by the portion of the system where the operating system that started it resides after reconfiguration. Requests that are in progress on a QOP that leaves the system part where the currently executing operating system continues to execute must be reassigned to the remaining QOP in that part. The CQ is also left as part of the rest. If the reconstruction involves the addition of elements previously removed by the reconstruction, the additional QOP is
Become part of the P subsystem. The reconstructed QOP removes the QE from the CQ if a QE exists, and the added QOP
Send a signal to If there is no QE on the CQ, the added Q
The OP waits for a signal.
【0085】各再構成コマンドは、CPUまたはサービ
ス・プロセッサのどちらかから、コンピュータ・システ
ム内のADMサブシステムに供給される。再構成コマン
ドは、本明細書ではQOPオフライン変化コマンドおよ
びQOPオンライン変化コマンドと称し、サブシステム
の1つまたは複数のQOPを除去または追加するために
操作員がそれらを入力することができる。この実施例で
は、QOPオンライン変化コマンドによって1つのQO
PがQOPサブシステムに追加され、QOPオフライン
変化コマンドによって1つのQOPがQOPサブシステ
ムから除去される。Each reconfiguration command is supplied to the ADM subsystem in the computer system from either the CPU or the service processor. The reconfiguration commands are referred to herein as the change QOP offline command and the change QOP online command, and may be entered by an operator to remove or add one or more QOPs of the subsystem. In this embodiment, one QO is changed by the QOP online change command.
P is added to the QOP subsystem, and a QOP offline change command removes one QOP from the QOP subsystem.
【0086】図13は、サブシステム内の全QOPに接
続されるQE信号/回復/再構成バス110を示す図で
ある。QE信号/回復/再構成バス110は、再構成信
号手段111にも接続され、これを介して、操作員がす
べてのQOPに再構成コマンド信号を供給することがで
きる。FIG. 13 is a diagram showing the QE signal / recovery / reconstruction bus 110 connected to all QOPs in the subsystem. The QE signal / recovery / reconfiguration bus 110 is also connected to the reconfiguration signal means 111, through which the operator can supply reconfiguration command signals to all QOPs.
【0087】QOPオフライン変化コマンドとQOPオ
ンライン変化コマンドは、サブシステムの使用中に発行
し実行することのできる動的コマンドであり、サブシス
テムは、QOPがコマンドを受け取った時、どんな動作
状態であってもよい。すなわち、あるQOPを除去する
オフライン変化コマンドは、そのQOPがQEを実行し
ている間に、QOPサブシステムの破壊をコンピュータ
・システムの残りに明らかにすることなく、実行するこ
とができる。また、そのコマンドは、どのADM QO
P作業ユニットの実行の結果にも悪影響を及ぼさない。The change QOP offline command and the change QOP online command are dynamic commands that can be issued and executed while the subsystem is in use, and the subsystem is in any operational state when the QOP receives the command. You may. That is, an off-line change command that removes a QOP can be performed while the QOP is performing QE, without revealing the destruction of the QOP subsystem to the rest of the computer system. Also, the command is which ADM QO
The result of the execution of the P work unit is not adversely affected.
【0088】そのQOPが作業ユニットを実行している
間にそのQOPをサブシステムから削除するために、あ
るQOPに対してオフライン変化コマンドが発行される
場合、QEの"Checkpt Subunit Data"フィールドが、削
除されるQOPから、再構成コマンドの実行後も同一の
オペレーティング・システム用の動作可能なQOPのま
まになるQOPへのそのQEの実行の切り替えを正しく
制御するために使用される。If an off-line change command is issued for a QOP to delete it from a subsystem while the QOP is executing a unit of work, the "Checkpt Subunit Data" field of the QE will contain Used to properly control the switching of the execution of the QE from a deleted QOP to a QOP that remains an operational QOP for the same operating system after execution of the reconfigure command.
【0089】再構成コマンドによってあるQOPが追加
または削除される(この実施例で行われるように)時、
操作員は、一連のコマンドを使用して所望の数のQOP
を追加または削除することができる。しかし、多重QO
Pコマンドを処理するため、1つのQOPに対する再構
成処理を指定された回数だけ繰り返すことにより、単一
の再構成コマンドによって指定された数のQOPを除去
または追加できることが明らかである。When a QOP is added or deleted by a reconfiguration command (as is done in this embodiment),
The operator uses a series of commands to create the desired number of QOPs.
Can be added or deleted. However, multiple QO
Obviously, by repeating the reconstruction process for one QOP a specified number of times to process a P command, the number of QOPs specified by a single reconfiguration command can be removed or added.
【0090】図13のQE信号/回復/再構成バス11
0上で送られるコマンド情報は、追加動作と削除動作の
どちらを実行するのか、および追加または削除されるQ
OPの識別子を指定する。再構成信号を最初に発見した
QOPが再構成処理を実行する。これは、再構成処理の
完了後に動作可能のままになるどのQOPでもよい。The QE signal / recovery / reconstruction bus 11 of FIG.
The command information sent on 0 indicates whether to perform an add operation or a delete operation, and the Q to be added or deleted.
Specify the OP identifier. The QOP that first finds the reconstructed signal performs the reconstruction process. This can be any QOP that remains operational after the completion of the reconstruction process.
【0091】このコマンド情報は、QE信号/回復/再
構成バス110から検出され、追加または削除しようと
する識別されたQOP(追加QOPまたは削除QOPと
称する)と、識別された再構成QOPに記憶される。This command information is detected from the QE signal / recovery / reconstruction bus 110 and stored in the identified QOP to be added or deleted (referred to as an added QOP or a deleted QOP) and the identified reconstructed QOP. Is done.
【0092】したがって、QOPオフライン変化コマン
ドは、除去しようとするQOPを「削除QOP」として
識別し、指定し、またサブシステムに残るQOPの1つ
を「再構成QOP」として用いる。Thus, the change QOP offline command identifies and designates the QOP to be removed as a "delete QOP" and uses one of the remaining QOPs in the subsystem as a "reconstructed QOP".
【0093】削除QOPに関連する待ち行列内のどのQ
Eも、削除QOPに関連する待ち行列から再構成QOP
に関連する待ち行列に移動される。削除QOP待ち行列
が空の場合、QEは移動されない。しかし、削除QOP
待ち行列が空でない場合は、削除QOPのQEが、再構
成QOP待ち行列に移動される。QE移動処理は、好ま
しい実施例では再構成QOPによって実行される。Which Q in the queue associated with the delete QOP
E also rebuilds the QOP from the queue associated with the deleted QOP.
Is moved to the queue associated with. If the delete QOP queue is empty, the QE is not moved. But delete QOP
If the queue is not empty, the QE of the deleted QOP is moved to the reconfigured QOP queue. The QE move process is performed by a reconstructed QOP in the preferred embodiment.
【0094】QOPオンライン変化処理では、QOPが
サブシステムに追加される。追加されるQOPがサブシ
ステムに物理的に追加されるのは、図11の処理を実行
する前である。この追加コマンドは、追加しようとする
QOPを識別し、指定し、再構成QOPが追加処理を実
行する。この処理では、追加されるQOPに関連する新
しい待ち行列のヘッダをセットアップする。この追加さ
れるQOPは、再構成QOPによって、そのIDがヘッ
ダに書き込まれる。オンライン変化コマンドは、QEが
CQで保留されている場合、CQから追加されたQOP
の待ち行列にQEを移動する。追加されたQOPの待ち
行列が動作可能にされると、図7のステップ67の「as
signed Q ID増分」で、追加されたQOPの待ち行列に
作業を自動的に割り振り始める。In the QOP online change process, a QOP is added to a subsystem. The QOP to be added is physically added to the subsystem before executing the processing in FIG. The add command identifies and specifies the QOP to be added, and the reconfigured QOP performs the add process. This process sets up a new queue header associated with the QOP to be added. The ID of this added QOP is written in the header by the reconstructed QOP. The online change command is a QOP added from the CQ if the QE is pending in the CQ.
Move QE to queue. When the queue of the added QOP is enabled, "as" in step 67 of FIG.
The "signed Q ID increment" automatically starts allocating work to the queue of added QOPs.
【0095】図11は、再構成信号を受諾するQOPに
よって行われる処理を示す図である。1つのQOPを追
加または削除するためのQOP変化コマンドを受け取っ
た後に、ステップ90に入る。その後、ステップ91
で、このコマンド動作信号から、オンライン変化コマン
ドとオフライン変化コマンドのどちらであるかを判定す
る。FIG. 11 is a diagram showing processing performed by a QOP that accepts a reconstructed signal. Step 90 is entered after receiving a QOP change command to add or delete one QOP. Then, step 91
Then, it is determined from the command operation signal whether the command is an online change command or an offline change command.
【0096】オフライン変化コマンドの場合、「削除」
経路でステップ92に進む。ステップ92で、削除QO
Pの待ち行列ヘッダのenableフィールドを、動作不能状
態にセットする。ステップ92で、次に、削除QOPの
待ち行列にあるすべてのサブチャネルを再構成QOPの
待ち行列に移動し、再構成QOPが遊休状態に戻る場合
には、再構成QOPに信号を送る。ステップ92では、
最後に、削除QOPを停止させる。次に、ステップ93
で、CQ内の削除QOPの"QOP Busy PTR"フィールドに
アクセスし、そのフィールドに、削除QOPがステップ
92で停止された時に実行していた「チェックポイント
処理されたサブチャネル」のアドレスがあれば、これを
読み取る。"Delete" in the case of an offline change command
Proceed to step 92 by route. In step 92, delete QO
Set the enable field of P's queue header to the disabled state. At step 92, all subchannels in the queue for the deleted QOP are then moved to the queue for the reconstructed QOP, and if the reconstructed QOP returns to the idle state, a signal is sent to the reconstructed QOP. In step 92,
Finally, the deletion QOP is stopped. Next, step 93
Then, if the "QOP Busy PTR" field of the deleted QOP in the CQ is accessed, and the field contains the address of the "checkpointed sub-channel" that was being executed when the deleted QOP was stopped in step 92, Read this.
【0097】チェックポイント処理されたQEは、その
実行を開始するために削除QOPの待ち行列から外され
ており、したがって、削除QOP待ち行列の一部ではな
い。したがって、ステップ93では、再構成QOPが、
チェックポイント処理されたQEを再構成QOPの待ち
行列に入れ、再構成QOPに信号を送り、その結果、そ
のQEが、再構成QOPによって、または後でそのQE
が移動される別の待ち行列上で別のQOPによって、後
でその実行を継続されるようになる。その後、再構成Q
OPは、CQ内の削除QOPの"QOP Busy PTR"フィール
ドをクリアし、そのQE内のQE Busy IDをリセットし
て、削除QOPとの関連をすべて除去し、ステップ97
に進む。ステップ97では、遊休状態からステップ90
に入った場合には、遊休状態に戻る。そうでない場合
は、図9のステップ78Nからステップ91に入ったの
で、ステップ97から図9のステップ78Bに戻る。The checkpointed QE has been dequeued from the delete QOP queue to begin its execution and is therefore not part of the delete QOP queue. Therefore, in step 93, the reconstructed QOP is
The checkpointed QE is queued for the reconstructed QOP and signaled to the reconstructed QOP so that the QE can be re-established by the reconstructed QOP or later.
Will be continued at a later time by another QOP on another queue to which it will be moved. Then, reconstruction Q
The OP clears the "QOP Busy PTR" field of the deleted QOP in the CQ, resets the QE Busy ID in the QE, removes any association with the deleted QOP, and step 97.
Proceed to. In step 97, the process proceeds from the idle state to step 90.
When entering, it returns to the idle state. Otherwise, since step 91 was entered from step 78N of FIG. 9, the process returns from step 97 to step 78B of FIG.
【0098】チェックポイント処理されたQE内で
は、"Checkpt Subunit Data"の状態に含まれる有効ビッ
トによって、再構成がQEの実行中に発生したかどうか
が判定される。そのQE内に有効なチェックポイント処
理情報が存在することをVビットが示す場合は、それが
発生した。その場合、どの動作可能QOPも、後でこの
チェックポイント処理情報を使用して、チェックポイン
ト処理データに示される成功した最後のサブユニットか
らそのQE実行が成功裡に完了するまで続行することに
より、そのQEの実行を完了することができる。削除Q
OPは、その電源を切ることができる。というのは、も
はやその動作がサブシステム内で必要ないからである。
その後、これをQOPサブシステム内で交換し、あるい
はそれがサブシステム内にある間にまたはそこから取り
出して保守を実行し、あるいは元のシステムから構成さ
れるシステムの他の部分に関連する異なるQOPサブシ
ステムの一部とすることができる。削除QOPの関連待
ち行列に割り当てられたQEは、将来の作業をそのサブ
システムに残るQOPに経路指定するため、これらのQ
OPに関連する待ち行列に再割り当てされる。In the QE that has undergone the checkpoint processing, it is determined whether or not the reconfiguration has occurred during the execution of the QE based on the valid bit included in the state of “Checkpt Subunit Data”. If the V bit indicates that valid checkpoint processing information is present in the QE, it has occurred. In that case, any operational QOP will later use this checkpointing information to continue from the last successful subunit indicated in the checkpointing data until its QE execution is successfully completed, The execution of the QE can be completed. Delete Q
The OP can turn off its power. Since the operation is no longer needed in the subsystem.
It is then exchanged within the QOP subsystem, or performs maintenance while it is in or out of the subsystem, or has a different QOP associated with other parts of the system consisting of the original system. Can be part of a subsystem. The QEs assigned to the associated queue of the deleted QOP will be able to route future work to the remaining QOPs in that subsystem,
Reassigned to the queue associated with the OP.
【0099】最後に、ステップ93からステップ97に
進み、再構成プロセッサは、前の状態に戻ることによっ
て、その正常動作を続行することができる。この時点
で、削除QOPに関する再構成処理が終了する。Finally, proceeding from step 93 to step 97, the reconfiguration processor can continue its normal operation by returning to the previous state. At this point, the reconfiguration processing for the deleted QOP ends.
【0100】システム内に1つの動作可能なQOPが残
る限り、連続するオフライン変化コマンドによって、Q
OPをいくつでもオフラインで再構成することができ
る。As long as one operational QOP remains in the system, successive off-line change commands
Any number of OPs can be reconfigured offline.
【0101】サブシステムにQOPを追加するQOPオ
ンライン変化コマンドでは、ステップ94から「追加」
経路に進む。追加されるQOPは、図11の処理を実行
する前に物理的にサブシステムに追加される。In the QOP online change command for adding a QOP to the subsystem, the "add"
Proceed to the route. The added QOP is physically added to the subsystem before executing the processing in FIG.
【0102】ステップ94で、追加される新QOPに関
連する新しい待ち行列の新QOPヘッダをセットアップ
する。ステップ94では、その後、必要があれば電源を
入れ、そのQOP待ち行列を動作可能にすることによっ
て、追加されるQOPを始動する。新QOPは、遊休状
態に置かれる。この状態のQOPは、それに関連する待
ち行列にQEが置かれたことを示すCPUからの信号、
またはそれに関連する待ち行列にQEを移動した別のQ
OPからの信号を待つ。Step 94 sets up a new QOP header for the new queue associated with the new QOP to be added. In step 94, the additional QOP is then started by turning on power, if necessary, and enabling its QOP queue. The new QOP is put in an idle state. A QOP in this state will have a signal from the CPU indicating that the QE has been placed in its associated queue,
Or another Q that moved the QE to its associated queue
Wait for signal from OP.
【0103】ステップ95で、CQにQEが含まれる場
合、ステップ96に進む。CQが空の場合は、ステップ
97に進む。ステップ96では、CQから先頭のQEを
外し、追加されたQOPの待ち行列にこのQEを入れ、
追加されたQOPに信号を送る。ステップ97では、ス
テップ78Nから進んできた場合、ステップ78Bの処
理に戻る。遊休状態の時に再構成信号を受け取ったため
にステップ97に進んだ場合は、遊休状態に戻って別の
信号を待つ。このサブシステムは、サブチャネルを自動
的に割り当て、今後、今追加された新しい待ち行列に新
しいQEを入れさせる。If it is determined in step 95 that QE is included in the CQ, the flow advances to step 96. If the CQ is empty, go to step 97. In step 96, the first QE is removed from the CQ, and this QE is put in the queue of the added QOP.
Signal the added QOP. In step 97, when the process proceeds from step 78N, the process returns to step 78B. If the process proceeds to step 97 due to receiving a reconfiguration signal in the idle state, the process returns to the idle state and waits for another signal. This subsystem automatically allocates sub-channels and causes new queues to be added to new QEs in the future.
【0104】連続するオンライン変化コマンドにより、
QOPをいくつでもオンラインで再構成することができ
る。By successive online change commands,
Any number of QOPs can be reconstructed online.
【0105】QOPをオフラインで変化させるもう1つ
の方法は、QOPの永続的な障害状態をシミュレート
し、その後、本明細書の次節で説明する回復処理を使用
して、障害をシミュレートされたQOPを除去すること
である。Another way to vary the QOP off-line is to simulate the permanent fault condition of the QOP and then simulate the fault using the recovery process described in the next section of this specification. To remove the QOP.
【0106】回復処理(図12) 図12の回復処理は、各QPOがそれぞれ、現在商業的
に使用されている最新のプロセッサと同等のエラー検出
能力を内部的に有することに依存する。QOP内のエラ
ー状態を検出すると、エラー状態を有するQOPが、図
13のQE信号/回復/再構成バス110を介して他の
QOPに回復信号を送る。この回復信号が送られると、
図12のステップ100から回復処理が開始する。たと
えば一時的エラーが所定のしきい値回数を超えた場合
や、永続的エラーがQOP内で検出された場合に、エラ
ー状態が検出される。Recovery Process (FIG. 12) The recovery process of FIG. 12 relies on each QPO internally having error detection capabilities equivalent to the latest processors currently in commercial use. Upon detecting an error condition in a QOP, the QOP having the error condition sends a recovery signal to another QOP via the QE signal / recovery / reconfiguration bus 110 of FIG. When this recovery signal is sent,
The recovery process starts from step 100 in FIG. An error condition is detected, for example, if a temporary error exceeds a predetermined threshold number of times or if a permanent error is detected in the QOP.
【0107】QE信号/回復/再構成バス110上の回
復要求信号を受け取る状態にある最初のQOPがこの信
号を検出し、QE信号/回復/再構成バス110上で、
受諾QOPが「回復QOP」として働くことを示す受諾
信号で応答する。回復QOPによって送られるこの受諾
信号を、他のQOPは、それらが回復動作に無関係の通
常処理動作を続行できることを示すものとして認識す
る。The first QOP that is ready to receive a recovery request signal on the QE signal / recovery / reconstruction bus 110 detects this signal and
Respond with an acknowledgment signal indicating that the acknowledgment QOP acts as a “recovery QOP”. This acknowledgment signal sent by the recovery QOP is recognized by other QOPs as an indication that they can continue normal processing operations independent of the recovery operation.
【0108】ステップ101で、回復QOPが、障害を
発生したQOP(エラーQOPと称する)をリセット
し、エラーQOPのQOP待ち行列ヘッダ内のretry co
untフィールドを増分して、エラーQOPに発生したエ
ラーの回数を示すことができる。At step 101, the recovery QOP resets the failed QOP (referred to as the error QOP) and retry cop in the QOP queue header of the error QOP.
The unt field can be incremented to indicate the number of errors that have occurred in the error QOP.
【0109】その後、回復QOPは、ステップ102に
進んで、エラーQOPのリセットが失敗だったかどう
か、またはretry count(QOP待ち行列ヘッダ内の)
が所定の最大値(N)を超えたかどうかを検出する(サ
ブシステムは、当技術分野で周知の方法を含む任意の方
法を使用して、エラーQOPが一時的エラー状態または
永続的エラー状態を有するかどうか、すなわち、N回の
再試行に関してエラー状態が発生した処理を繰り返す必
要があるかどうかを判定することができる。一時的エラ
ーは、その処理のN回目の再試行の後にもエラー状態が
残っている場合、またはリセットに失敗した場合に、永
続的エラー状態とみなされる。Nは、プロセッサ動作の
経験によって設定される経験値であり(たとえば2
0)、周期的にリセットされる)。この再試行動作は、
ステップ103ないしステップ104に示すように、エ
ラーQOPのQE処理を再始動する、回復QOP内のマ
イクロコードによって開始される。Thereafter, the recovery QOP proceeds to step 102 to determine whether the reset of the error QOP was unsuccessful or a retry count (in the QOP queue header).
Detects whether the error QOP has exceeded the predetermined maximum value (N). (The subsystem uses any method, including methods well known in the art, to determine if the error QOP Has been determined, i.e., whether the process in which the error condition occurred for the N retries needs to be repeated, and a temporary error will remain even after the Nth retry of the process Is considered a permanent error condition if N remains or a reset fails, where N is an experience value set by experience with processor operation (eg, 2
0), reset periodically). This retry behavior is
Initiated by microcode in the recovery QOP, which restarts the QE process for the error QOP, as shown in steps 103-104.
【0110】ステップ102の後に、ステップ103
で、回復QOPが、共通待ち行列のヘッダにアクセスし
て、エラーQOPの"QOP Busy PTR"フィールドを読み取
る。このフィールドには、エラー状態が発生した時にエ
ラーQOPが処理していたQEのアドレスが格納されて
いる。ステップ103では、その後、QEの"busy ID"
フィールドをエラーQOPの識別子にセットして、その
QEが現在エラーQOPで使用中であることを示す。そ
の後、回復QOPは、エラーQOP待ち行列ヘッダの"T
op Q PTR"フィールドをこのQEのアドレスにセットす
ることにより、このQEをエラーQOP待ち行列に入れ
る。これによって、そのQEは、エラーQOP待ち行列
の先頭に連鎖される。After step 102, step 103
Then, the recovery QOP accesses the header of the common queue and reads the "QOP Busy PTR" field of the error QOP. This field stores the address of the QE being processed by the error QOP when the error condition occurred. In step 103, then, the "busy ID" of the QE
Set the field to the identifier of the error QOP to indicate that the QE is currently in use in the error QOP. Thereafter, the recovery QOP is set to "T" in the error QOP queue header.
Put this QE in the error QOP queue by setting the op Q PTR "field to the address of this QE, which is chained to the head of the error QOP queue.
【0111】その後、エラーQOPは信号を受け、した
がって図7のステップ61Aに進んで、通常処理を続行
することになる。ステップ104で、回復QOPは通常
動作に戻って、図9のステップ78Bに戻り、あるいは
遊休状態に戻って別の信号を待つ。Thereafter, the error QOP is signaled, so that the routine proceeds to step 61A in FIG. 7 to continue the normal processing. In step 104, the recovery QOP returns to normal operation and returns to step 78B of FIG. 9 or returns to the idle state to wait for another signal.
【0112】ステップ102で永続的エラー状態と判定
された場合、ステップ105に進んで、回復QOPが、
回復処理の残りのステップ105、106および104
を実行する。If it is determined in step 102 that the state is a permanent error, the process proceeds to step 105, where the recovery QOP is
Remaining steps 105, 106 and 104 of the recovery process
Execute
【0113】この場合、ステップ102からステップ1
05に進み、回復QOPが、エラーQOP待ち行列のヘ
ッダにアクセスし、そのenableフィールドをセットし
て、動作不能状態を示す。その後、回復QOPは、エラ
ーQOPの待ち行列にあるすべてのQEを回復QOPの
待ち行列に移動し、エラーQOPの動作を停止させて、
それに対する保守が実行できるようにする。エラーQO
Pの関連待ち行列に割り当てられたQEは、サブシステ
ム内の動作可能QOPに関連する待ち行列に再割り当て
される。その後、ステップ106で、回復QOPが、共
通待ち行列ヘッダ内のエラーQOPの"QOP Busy PTR"フ
ィールドにアクセスして、障害を発生した時点でエラー
QOPが実行していたQEのアドレスを得る。このQE
は、回復QOP待ち行列の先頭に入れられ、回復QOP
は、このQEの"busy ID"フィールドがリセットされた
後に信号を受ける。というのは、このQEが現在実行さ
れていないからである。In this case, steps 102 to 1
Proceeding to 05, the recovery QOP accesses the header of the error QOP queue and sets its enable field to indicate an inoperable state. Thereafter, the recovery QOP moves all QEs in the queue of error QOPs to the queue of recovery QOPs, stops the operation of the error QOP,
Allow maintenance to be performed on it. Error QO
The QE assigned to P's associated queue is reassigned to the queue associated with the operational QOP in the subsystem. Thereafter, in step 106, the recovery QOP accesses the "QOP Busy PTR" field of the error QOP in the common queue header to obtain the address of the QE that the error QOP was executing when the failure occurred. This QE
Is put at the head of the recovery QOP queue and the recovery QOP
Receive a signal after the "busy ID" field of this QE has been reset. Because this QE is not currently running.
【0114】最後に、ステップ104に進み、回復QO
Pは、回復信号を受け取った時に遊休状態であった場合
は、遊休状態に戻る。そうでない場合、この回復は図9
のステップ78Mから呼び出されたものであり、したが
って図9のステップ78Bに戻って活動QEの処理を続
行する。Finally, the process proceeds to step 104, where the recovery QO
If P is idle when it receives the recovery signal, it returns to the idle state. If not, this recovery is
Therefore, the process returns to step 78B of FIG. 9 to continue the processing of the activity QE.
【0115】ステップ106で待機されたQE内のチェ
ックポイント情報は、回復処理によって使用される。こ
のQEは、回復QOPによって、またこのQEが別のQ
OP待ち行列に移動された場合は別のQOPによって、
順を追って実行される。このQEの"Checkpt Subunit D
ata"フィールドの内容を用いると、最後に成功裡に完了
したサブユニット動作の後に次のサブユニットからその
実行を再始動することができ、そのQEの作業ユニット
の実行が完了するまで継続することができる。本発明の
範囲および趣旨から逸脱しない多数の変形および修正を
示したが、これで当業者には明白であろう。したがっ
て、上述の実施態様は、制限ではなく例として提供され
たものであることを理解されたい。The checkpoint information in the QE waiting at step 106 is used by the recovery processing. This QE is determined by the recovery QOP and
By another QOP when moved to the OP queue,
It is executed step by step. This QE's "Checkpt Subunit D
Using the contents of the ata "field, the execution can be restarted from the next subunit after the last successfully completed subunit operation, continuing until the execution of that QE's work unit is completed. While numerous variations and modifications have been shown without departing from the scope and spirit of the invention, it will be apparent to those skilled in the art that the embodiments described above are provided by way of example and not limitation. Please understand that.
【0116】尚、本発明は、各作業要求項目が、ADM
(非同期データ移動)作業要求または入出力装置作業要
求を示すための作業タイプ指示を有し、各作業要求項目
が、実行を要求された作業ユニット用のパラメータを指
定し、ADM作業ユニットが、各作業ユニットが1つま
たは複数のデータ・ページを電子メモリ内の位置間また
は電子メモリ間で移動する、待ち行列プロセッサによっ
て制御される1つまたは複数のADM作業サブユニット
を含み、入出力作業ユニットが、要求された入出力作業
を制御するため待ち行列プロセッサによって入出力プロ
セッサに転送されることを特徴とする、データ処理シス
テムのサブシステム内の複数の待ち行列プロセッサにそ
れぞれ関連する複数のプロセッサ待ち行列内で待ち行列
要素(QE)として作業要求項目を受け取るステップ
と、作業ユニットの実行中に待ち行列プロセッサによっ
てテストを行って、受取待ち行列としての関連プロセッ
サ待ち行列上で新しい作業要求項目を受け取ったかどう
かを判定するステップと、指定された入出力プロセッサ
が新しい入出力作業要求項目の実行に使用可能である場
合には指定された入出力プロセッサに、また指定された
入出力プロセッサが使用不能である場合には待機入出力
待ち行列に、テスト・ステップで見つかった新しい入出
力作業要求項目を受取待ち行列から転送するステップ
と、テストを行う待ち行列プロセッサがADM作業ユニ
ットで使用中であり、サブシステム内の他の待ち行列プ
ロセッサが使用中でない時、受取待ち行列から他のプロ
セッサ待ち行列にテスト・ステップで見つかった新しい
ADM作業要求項目を移動するステップと、待ち行列プ
ロセッサが使用中でなく、かつ関連待ち行列上にサービ
スされないADM作業要求項目が存在する時に、関連プ
ロセッサ待ち行列上に存在する別のADM作業要求項目
のために、各待ち行列プロセッサに別のADM作業ユニ
ットの実行を開始させるステップとを含む、データ処理
システムのサブシステム内の複数の待ち行列プロセッサ
間でデータ移動動作の非同期作業負荷を制御する負荷平
衡方法。In the present invention, each work request item is an ADM.
(Asynchronous data movement) Each work request item has a work type instruction for indicating a work request or an input / output device work request, and each work request item specifies a parameter for the work unit requested to be executed, and A work unit includes one or more ADM work subunits controlled by a queue processor for moving one or more data pages between locations in or between electronic memories, and the input / output work unit A plurality of processor queues respectively associated with a plurality of queue processors in a subsystem of the data processing system, wherein the plurality of queues are transferred to the input / output processor by the queue processor to control requested I / O work. Receiving a work request item as a queue element (QE) within the work unit; Testing during the line by the queue processor to determine if a new work request item has been received on the associated processor queue as a receive queue; and New I / O work found in the test step on the specified I / O processor if available to perform the operation, or on the standby I / O queue if the specified I / O processor is unavailable Transferring the request item from the receive queue; and when the queuing processor under test is in use by the ADM work unit and no other queue processor in the subsystem is in use, the other processor from the receive queue. Moving the new ADM work request item found in the test step to the queue , When there is an ADM work request item that is not in use by the queue processor and is not serviced on the associated queue, each queue processor will receive an ADM work request item on the associated processor queue. Initiating the execution of another ADM work unit. Controlling the asynchronous workload of data movement operations among a plurality of queue processors in a subsystem of the data processing system.
【0117】テスト・ステップがさらに、ADM作業ユ
ニットの実行から一時的にそれて、待ち行列上で受け取
った新ADM項目または新入出力項目の指示に関して関
連プロセッサ待ち行列のヘッダを検査し、サブシステム
内の全待ち行列プロセッサの使用中状態項目を含む共通
制御ブロックを検査して、他の待ち行列プロセッサが現
在使用中でなく、新ADM項目を処理できるかどうかを
判定することを含むことを特徴とする、0116に記載
の負荷平衡方法。A test step further examines the header of the associated processor queue for an indication of a new ADM entry or new I / O entry received on the queue, temporarily diverting from the execution of the ADM work unit, and Examining a common control block containing busy state items of all queue processors of the other queue processors to determine if other queue processors are not currently in use and can process the new ADM entry. The load balancing method according to 0116, wherein
【0118】転送ステップがさらに、サブシステム内の
待ち行列プロセッサがすべて現在使用中状態であると示
されている時、サブシステム内のすべてのプロセッサか
らアクセス可能な共通待ち行列に新作業項目を移動する
ステップを含むことを特徴とする、0117に記載の負
荷平衡方法。The transfer step further moves the new work item to a common queue accessible from all processors in the subsystem when all queue processors in the subsystem are indicated as currently busy. The method of 0117, comprising the step of:
【0119】転送ステップがさらに、ADM作業ユニッ
トの実行の間に、共通待ち行列上に存在するADM作業
要求項目の、いずれかの待ち行列プロセッサによる実行
を開始するステップを含むことを特徴とする、0118
に記載の負荷平衡方法。[0119] The transferring step further comprises the step of initiating, by execution of any of the queue processors, ADM work request items residing on the common queue during execution of the ADM work unit. 0118
3. The load balancing method according to item 1.
【0120】さらに、それぞれサブシステム内のそれぞ
れの待ち行列プロセッサによって現在実行されているA
DM作業要求項目へのアドレスを格納するための複数の
待ち行列プロセッサ使用中ポインタ・フィールドを有す
るように共通待ち行列ヘッダを構成し、共通待ち行列ヘ
ッダを共通待ち行列と関連付けるステップと、関連待ち
行列プロセッサ用のプロセッサ使用中ポインタ・フィー
ルドを、プロセッサによって実行中のADM作業要求項
目のアドレスにセットするステップと、ADM作業要求
が関連待ち行列プロセッサによって実行されている間
に、共通待ち行列ヘッダ内のそれぞれのプロセッサ使用
中状態フィールドをセットするステップとを含み、両セ
ット・ステップが、各ADM作業サブユニットの開始時
に実行されることを特徴とする、0118に記載の負荷
平衡方法。In addition, the A currently being executed by each queue processor in each subsystem.
Configuring a common queue header to have a plurality of queue processor busy pointer fields for storing addresses to DM work request items, associating the common queue header with the common queue, and an associated queue. Setting the processor busy pointer field for the processor to the address of the ADM work request item being executed by the processor; and while the ADM work request is being executed by the associated queue processor, the Setting the respective processor busy state field, wherein both setting steps are performed at the start of each ADM work subunit.
【0121】サブシステムが、サブシステム内のプロセ
ッサによる処理への予期されない割込みから回復する準
備がなされ、さらに、別の待ち行列プロセッサがチェッ
クポイント・データ・フィールドの内容を使用して部分
的に実行されたADM作業要求項目の実行を続行できる
ようにするため、待ち行列プロセッサによって最後に成
功裡に完了されたADM作業サブユニットに関するチェ
ックポイント情報を格納するためのチェックポイント・
データ・フィールドを有するように各ADM作業要求項
目を構成するステップを含む、0120に記載の負荷平
衡方法。The subsystem is prepared to recover from an unexpected interruption to processing by a processor in the subsystem, and another queue processor partially executes using the contents of the checkpoint data field. Checkpoint information for storing checkpoint information about the last successfully completed ADM work subunit by the queue processor so that execution of the completed ADM work request item can continue.
130. The load balancing method as described in 0120, comprising configuring each ADM work request item to have a data field.
【0122】サブシステムが、サブシステム内のプロセ
ッサによる処理への予期されない割込みから回復する準
備がなされ、構成ステップがさらに、部分的に実行され
たADM作業要求項目の実行を最後にチェックポイント
処理されたADM作業サブユニットから続行するため
に、チェックポイント・データ・フィールドの内容が別
の待ち行列プロセッサに使用可能であるか否かを示す、
有効ビットをチェックポイント・データ・フィールドに
設けるステップを含む、0121に記載の負荷平衡方
法。The subsystem is prepared to recover from an unexpected interruption to processing by a processor in the subsystem, and configuration steps are further performed to checkpoint the last execution of the partially executed ADM work request item. Indicates whether the contents of the checkpoint data field are available to another queue processor to continue from the ADM work subunit that
0123. Load balancing method according to 0121, comprising providing a valid bit in the checkpoint data field.
【0123】サブシステムが、サブシステム内のプロセ
ッサによる障害から回復する準備がなされ、構成ステッ
プがさらに、有効ビット・サブフィールドと、ADM作
業要求項目によって指定されたADMプログラムの先頭
へのアドレスを格納する制御ワード・サブフィールド
と、関連ADMプログラムによって使用されるサブユニ
ット制御パラメータを指定する指定ブロックのアドレス
を格納する指定ブロック・アドレス・サブフィールド
と、現在実行中のADM作業要求項目の前に成功裡に移
動されたサブユニットの数を格納するサブユニット数サ
ブフィールドとを含む、各ADM作業要求内のチェック
ポイント処理済みサブユニット・データを格納するため
の複数のサブフィールドを、各チェックポイント・デー
タ・フィールド内に設けるステップを含むことを特徴と
する、0121に記載の負荷平衡方法。The subsystem is prepared to recover from a failure by a processor in the subsystem, and the configuration step further stores a valid bits subfield and an address to the beginning of the ADM program specified by the ADM work request item. A control word subfield, a specified block address subfield that stores the address of a specified block that specifies subunit control parameters used by the associated ADM program, and a success before the currently executing ADM work request item. A plurality of subfields for storing checkpointed subunit data in each ADM work request, including a subunit number subfield for storing the number of subunits moved to Set in the data field That it is characterized in that it comprises a step, load balancing method as claimed in 0121.
【0124】サブシステムが、サブシステム内のプロセ
ッサによる障害から回復する準備がなされ、さらに、い
ずれかの待ち行列プロセッサ上で現ADM作業要求項目
を実行する処理中にエラー状態が発生した時に、エラー
指示信号を送るステップと、エラー状態の発生した処理
の少なくとも一部を再試行するステップと、再試行ステ
ップの完了後もエラー状態が存在し続ける場合、他の待
ち行列プロセッサ上で現ADM作業要求項目の回復処理
を実行し、他の待ち行列プロセッサ上で、現ADM作業
要求項目のチェックポイント・データ・フィールドで示
される最後に成功裡に完了したサブユニットから現AD
M作業要求項目を処理するステップと、再試行ステップ
中にエラー状態が存在し続けなくなった場合、エラー状
態を有する待ち行列プロセッサ上で現作業要求項目の処
理を続行するステップとを含む、0123に記載の負荷
平衡方法。The subsystem is prepared to recover from a failure by a processor in the subsystem, and furthermore, an error condition occurs when an error condition occurs during the process of executing the current ADM work request item on any of the queue processors. Sending an indication signal; retrying at least a portion of the processing that caused the error condition; and, if the error condition continues to exist after completion of the retry step, the current ADM work request on another queue processor. Performs recovery of the entry and, on the other queue processor, from the last successfully completed subunit indicated by the checkpoint data field of the current ADM work request entry to the current AD
0123, including processing the M work request item and continuing processing of the current work request item on the queue processor having the error condition if the error condition no longer exists during the retry step. The described load balancing method.
【0125】さらに、待ち行列プロセッサによる作業の
ADMユニットの処理の完了時に、待ち行列プロセッサ
によって共通待ち行列ヘッダにアクセスして、ADM作
業要求項目が共通待ち行列上に存在するかどうかを判定
し、共通待ち行列上で項目が見つかった場合に、その項
目を実行するステップと、ADM作業要求が共通待ち行
列上に存在しない場合に、待ち行列プロセッサによる作
業のADMユニットの処理の完了時に、待ち行列プロセ
ッサによって関連待ち行列から次のADM作業要求項目
にアクセスし、これを実行するステップと、作業項目が
共通待ち行列上でも待ち行列プロセッサに関連する待ち
行列上でも見つからない場合に、待ち行列プロセッサを
遊休状態にするステップとを含む、0123に記載の負
荷平衡方法。Further, upon completion of the work ADM unit processing by the queue processor, the queue processor accesses the common queue header to determine whether the ADM work request item exists on the common queue, Executing the item if the item is found on the common queue; and, if the ADM work request is not on the common queue, completing the processing of the ADM unit of work by the queue processor Accessing and executing the next ADM work request item from the associated queue by the processor, and, if the work item is not found on the common queue or on the queue associated with the queue processor, 0123. The load balancing method according to 0123, comprising:
【0126】さらに、関連待ち行列から除去された現A
DM作業要求項目の各作業ユニットを待ち行列プロセッ
サによって実行するステップと、各作業ユニットの完了
時に、共通待ち行列ヘッダ内の関連プロセッサの使用中
状態フィールドとADM作業要求項目内の使用中状態フ
ィールドとをクリアするステップと、ADM作業ユニッ
トの成功裡の完了を示す信号を中央演算処理装置に送る
ステップとを実行するステップを含む、0125に記載
の負荷平衡方法。In addition, the current A removed from the associated queue
Executing each work unit of the DM work request item by the queue processor; upon completion of each work unit, the busy state field of the associated processor in the common queue header and the busy state field in the ADM work request item. 0125. The load balancing method of 0125, comprising the steps of: clearing the ADM work unit and sending a signal to the central processing unit indicating successful completion of the ADM work unit.
【0127】さらに、各ADM作業サブユニットの完了
後に再構成信号を検査するステップと、再構成信号がサ
ブシステムによって受け取られた場合にサブシステムを
再構成するステップとを含む、0124に記載の負荷平
衡方法。The load of 0124, further comprising: checking the reconfiguration signal after completion of each ADM work subunit; and reconfiguring the subsystem if the reconfiguration signal is received by the subsystem. Balance method.
【0128】さらに、サブシステム内の他の待ち行列プ
ロセッサに受諾信号を送ることによって、再構成プロセ
ッサによって指定される非使用中状態の待ち行列プロセ
ッサによって再構成信号を受諾するステップと、再構成
信号から、どの待ち行列プロセッサがサブシステムに追
加または削除されるのかを示す指定を再構成プロセッサ
によって検出するステップとを含む、0123に記載の
負荷平衡方法。Further accepting the reconfiguration signal by an idle queue processor designated by the reconfiguration processor by sending an acknowledgment signal to another queue processor in the subsystem; Detecting from the reconfiguration processor an indication of which queue processor is to be added or removed from the subsystem from the reconfiguration processor.
【0129】受諾ステップがさらに、再構成プロセッサ
による作業のサブユニットの実行の間に受諾ステップを
実行するステップを含むことを特徴とする、0128に
記載の負荷平衡方法。The load balancing method of 0128, wherein the accepting step further comprises performing the accepting step during execution of the sub-unit of work by the reconfiguration processor.
【0130】さらに、サブシステムから除去すべく指定
された待ち行列プロセッサに関連する待ち行列を、再構
成プロセッサによって動作不能にするステップと、除去
される待ち行列プロセッサの関連待ち行列から、すべて
の作業要求項目をサブシステム内の動作可能な待ち行列
プロセッサに関連する待ち行列に、再構成プロセッサに
よって移動するステップとを含む、0128に記載の負
荷平衡方法。In addition, disabling the queue associated with the queue processor designated to be removed from the subsystem by the reconfiguration processor; and removing all work from the associated queue of the removed queue processor. Moving the request item to a queue associated with an operable queue processor in the subsystem by the reconfiguration processor.
【0131】さらに、除去すべく指定された待ち行列プ
ロセッサによる、除去すべく指定された待ち行列プロセ
ッサに関連するADM作業要求項目の作業ユニットの実
行が、その処理が他のプロセッサによって停止された点
で完了していなかった時に、除去すべく指定された待ち
行列プロセッサに関連するADM作業要求項目を他の待
ち行列プロセッサによって突き止めるステップを含む、
0130に記載の負荷平衡方法。Further, the execution of the unit of work of the ADM work request item associated with the queue processor designated for removal by the queue processor designated for removal has been suspended by another processor. Locating ADM work request items associated with the designated queue processor to be removed by other queue processors when not completed at
The load balancing method according to 0130.
【0132】さらに、突き止められたADM作業要求項
目に関連するチェックポイント・データ・フィールドを
使用して、最後に成功裡に実行されたサブユニットか
ら、その項目の実行を別の待ち行列プロセッサによって
続行するステップを含む、0131に記載の負荷平衡方
法。Further, using the checkpoint data field associated with the located ADM work request item, execution of that item is continued by another queue processor from the last successfully executed subunit. 0131. The load balancing method according to 0131, comprising the step of:
【0133】さらに、サブシステムに追加される待ち行
列プロセッサに関連する待ち行列の待ち行列ヘッダを構
成するステップと、待ち行列プロセッサを待ち行列ヘッ
ダによって表される待ち行列と関連付けるため、サブシ
ステムに追加される待ち行列プロセッサの識別子を待ち
行列ヘッダに書き込むステップとを含む、0127に記
載の負荷平衡方法。Additionally, configuring a queue header for the queue associated with the queue processor to be added to the subsystem, and adding the queue processor to the subsystem to associate the queue processor with the queue represented by the queue header. Writing the identifier of the queue processor to be performed to the queue header.
【0134】サブシステム内の待ち行列プロセッサによ
って実行を要求された作業ユニットに関するパラメータ
を指定する作業要求項目を、それぞれ複数の待ち行列プ
ロセッサに関連する複数の待ち行列内で受け取るステッ
プと、1つまたは複数の作業サブユニットを実行するこ
とによって作業ユニットを実行するように、プロセッサ
に関連する待ち行列上の作業要求項目を各待ち行列プロ
セッサによって実行するステップと、プロセッサによる
現作業要求項目の実行の休止中に、現作業要求項目の実
行中にプロセッサに関連する待ち行列上で受け取った新
作業要求項目に関するテストを行うステップと、他の待
ち行列プロセッサが実行状態でないことが示された時、
テスト・ステップによって待ち行列プロセッサに関連す
る待ち行列上にあることが判明した新作業項目を他の待
ち行列に移動し、サブシステム内の他のすべての待ち行
列プロセッサが実行状態にある時、その各項目がサブシ
ステム内の全待ち行列プロセッサからアクセス可能であ
る共通待ち行列に、新作業項目を移動するステップとを
含む、データ処理システムのサブシステム内の複数の待
ち行列プロセッサ間でデータ移動動作の非同期作業負荷
を制御する負荷平衡方法。Receiving in a plurality of queues, each associated with a plurality of queue processors, a work request item specifying parameters for a unit of work requested to be executed by a queue processor in the subsystem; Executing, by each queue processor, a work request item on a queue associated with the processor so as to execute the unit of work by executing a plurality of work sub-units; pausing execution of the current work request item by the processor; Performing a test for a new work request item received on a queue associated with the processor during execution of the current work request item; and
Move the new work item that was found on the queue associated with the queue processor by the test step to another queue, and when all other queue processors in the subsystem are running, Moving the new work item to a common queue, where each item is accessible from all queue processors in the subsystem, the data movement operation between the plurality of queue processors in the subsystem of the data processing system. Load-balancing method for controlling asynchronous workloads on the server.
【0135】さらに、サブシステムによって実行される
作業ユニットを指定する情報を格納する待ち行列要素と
して、作業要求項目をサブシステムの待ち行列に置くた
めの命令を、データ処理システム内の中央演算処理装置
(CPU)によって実行するステップと、待ち行列要素
が待ち行列に置かれたことを示す信号を、待ち行列に関
連する待ち行列プロセッサに、CPUによって送るステ
ップとを含む、0134に記載の負荷平衡方法。Further, as a queue element for storing information designating a work unit to be executed by the subsystem, an instruction for placing a work request item in a queue of the subsystem is provided in the central processing unit in the data processing system. 0134. The load balancing method of 0134, comprising: performing by the (CPU); and sending, by the CPU, a signal indicating that the queue element has been enqueued to a queue processor associated with the queue. .
【0136】さらに、サブシステムを再構成するため
に、サブシステム内の待ち行列に作業要求項目を待ち行
列要素として連鎖し、作業ユニットを指定する情報をサ
ブシステム内の待ち行列プロセッサによって待ち行列要
素に書き込むための命令を、データ処理システム内の1
つまたは複数の中央演算処理装置(CPU)のいずれか
によって実行するステップと、待ち行列要素が待ち行列
プロセッサに関連する待ち行列に置かれたことを示す信
号を、CPUによって待ち行列プロセッサに送るステッ
プと、サブシステムが作業のユニットを実行する間に、
同時に実行される命令のCPUによる実行を継続するス
テップとを含む、0134に記載の負荷平衡方法。Further, in order to reconfigure the subsystem, work request items are chained to a queue in the subsystem as a queue element, and information specifying a work unit is transmitted to the queue element by the queue processor in the subsystem. The instruction to write to the
Performing by one of the one or more central processing units (CPU) and sending by the CPU to the queue processor a signal indicating that the queue element has been placed in a queue associated with the queue processor. And while the subsystem performs the unit of work,
The method of claim 1134, further comprising: continuing to execute the simultaneously executed instructions by the CPU.
【0137】さらに、待ち行列に関連する待ち行列ヘッ
ダ内で示されるサブシステム内のメモリ位置で待ち行列
から待ち行列項目(QE)を待ち行列プロセッサによっ
て除去するステップと、待ち行列内に別のQEが存在す
る場合に待ち行列内の実行すべく選択可能な次のQEを
示す、除去されたQEから得られる位置を待ち行列ヘッ
ダに記録するステップと、QEが除去される時に待ち行
列に関連する待ち行列プロセッサが使用中でない場合に
は、プロセッサによって作業ユニットを実行し、待ち行
列プロセッサが使用中の場合には、他の待ち行列プロセ
ッサが使用中でなければ他の待ち行列プロセッサに関連
する待ち行列にQEを置き、サブシステム内の全待ち行
列プロセッサが使用中であれば共通待ち行列にQEを置
くステップとを含む、0136に記載の負荷平衡方法。In addition, removing a queue entry (QE) from the queue at the memory location in the subsystem indicated in the queue header associated with the queue by the queue processor, and placing another QE in the queue. Recording the location resulting from the removed QE in the queue header, indicating the next QE that can be selected for execution in the queue if the QE is present, and relating to the queue when the QE is removed. If the queue processor is not busy, the processor executes the unit of work; if the queue processor is busy, the queue associated with the other queue processor is busy if no other queue processor is busy. Placing the QE in a queue and placing the QE in a common queue if all queue processors in the subsystem are busy. , Load balancing method as claimed in 0136.
【0138】各作業要求項目が、ADM(非同期データ
移動)作業要求または入出力装置作業要求を示すための
作業タイプ指示を有し、各作業要求項目が、実行を要求
された作業ユニット用のパラメータを指定し、ADM作
業ユニットが、各作業ユニットが1つまたは複数のデー
タ・ページを電子メモリ内の位置間または電子メモリ間
で移動する、待ち行列プロセッサによって制御される1
つまたは複数のADM作業サブユニットを含み、入出力
作業ユニットが、要求された入出力作業を制御するため
待ち行列プロセッサによって入出力プロセッサに転送さ
れることを特徴とする、データ処理システムのサブシス
テム内の複数のそれぞれの待ち行列に1組の非同期デー
タ移動(ADM)サブチャネルを割り当てるステップ
と、待ち行列要素(QE)に関連するサブチャネル制御
ブロックによって指定されるADM要求を用いてサブシ
ステムによってADM作業ユニットを要求する際に、A
DMサブチャネル識別子を指定するために、サブチャネ
ル開始命令をCPUによって実行するステップと、QE
に割り当てられた待ち行列にQEを連鎖し、その待ち行
列にQEが存在することを示す信号を、待ち行列に関連
するデータ制御プロセッサ(DCP)に送るステップ
と、信号を受けたDCP用の、QEによって指定される
次の作業ユニットを得るために、信号を受けたDCPに
よって関連待ち行列上のQEにアクセスし、同一の記憶
媒体内の位置間またはシステム内の異なる記憶媒体の位
置間でデータ・ページを転送することによって、QEの
作業サブユニットをDCPによって実行するステップ
と、DCPが各作業サブユニットを完了した後に、DC
Pに割り当てられた待ち行列にQEが待機しているかど
うかを、DCPによってテストするステップと、テスト
・ステップで見つかったQEをすべて、現在使用中でな
い他のDCPに関連する他の待ち行列へDCPによって
移動し、他の待ち行列上のQEの処理を開始するよう指
示する信号をDCPに送り、非使用中DCPが見つから
なかった場合は、DCP間の作業負荷を平衡化するため
に、テスト・ステップで見つかったすべてのQEを、全
DCPから使用可能な共通待ち行列(CQ)へDCPに
よって移動するステップとを含む、任意の数のDCPと
インターフェースする任意の数のCPUを有し、各DC
Pが関連する待ち行列を有する、データ処理システムの
サブシステム内の複数の待ち行列プロセッサ間でデータ
移動動作の非同期作業負荷を制御する負荷平衡方法。Each work request item has a work type instruction for indicating an ADM (asynchronous data movement) work request or an I / O device work request, and each work request item has a parameter for the work unit requested to be executed. And the ADM work unit is controlled by a queue processor, where each work unit moves one or more pages of data between locations in or between electronic memories.
A subsystem of a data processing system, comprising one or more ADM work subunits, wherein the I / O work units are transferred to the I / O processor by a queue processor to control requested I / O work Allocating a set of asynchronous data movement (ADM) sub-channels to a plurality of respective queues within the PDU, and the subsystem using an ADM request specified by a sub-channel control block associated with the queue element (QE). When requesting an ADM working unit,
Executing a start subchannel instruction by the CPU to specify a DM subchannel identifier;
Chaining the QE to a queue assigned to the queue and sending a signal indicating the presence of the QE to the queue to a data control processor (DCP) associated with the queue; The QE on the associated queue is accessed by the signaled DCP to obtain the next unit of work specified by the QE, and data is transferred between locations in the same storage medium or between different storage media locations in the system. Executing the working subunits of the QE by the DCP by transferring the pages, and after the DCP has completed each working subunit, the DC
Testing by the DCP whether the QE is waiting in the queue assigned to P, and DCP all QEs found in the test step to other queues associated with other DCPs not currently in use And sends a signal to the DCP instructing it to begin processing QEs on other queues, and if no idle DCP is found, a test is performed to balance the workload between the DCPs. Moving all QEs found in the step from all DCPs to an available common queue (CQ) by the DCP, including any number of CPUs interfacing with any number of DCPs;
A load balancing method for controlling an asynchronous workload of a data movement operation between a plurality of queue processors in a subsystem of a data processing system, wherein P has an associated queue.
【0139】さらに、待ち行列プロセッサによって実行
された最後の作業サブユニットの成功裡の完了の状況に
関する情報で状況ブロックをセットするステップを含
む、0138に記載の負荷平衡方法。The load balancing method of 0138, further comprising the step of setting a status block with information regarding the status of the successful completion of the last work subunit executed by the queue processor.
【0140】さらに、サブシステム内のいずれかの待ち
行列プロセッサによる作業項目の実行の成功裡の完了時
に、共通待ち行列内の作業項目の指示を求めて、共通待
ち行列ヘッダ(CQH)に待ち行列プロセッサによって
アクセスするステップと、共通待ち行列ヘッダ内で見つ
かった指示によって表される作業項目を突き止めるステ
ップと、待ち行列プロセッサが別の作業項目を実行中で
ない時に、待ち行列プロセッサに関連する待ち行列ヘッ
ダに作業項目を連鎖するステップと、関連待ち行列ヘッ
ダ内の、関連待ち行列上の作業項目の指示を格納するた
めの位置に、待ち行列プロセッサによってアクセスする
ステップと、関連待ち行列内の作業項目を、待ち行列プ
ロセッサによって実行するステップとを含む、0138
に記載の負荷平衡方法。Further, upon successful completion of the execution of a work item by any of the queue processors in the subsystem, a queue in the common queue header (CQH) is searched for an indication of a work item in the common queue. Accessing by the processor; locating the work item represented by the indication found in the common queue header; and a queue header associated with the queue processor when the queue processor is not executing another work item. Chaining the work items to a location in the associated queue header for storing an indication of the work item on the associated queue; and accessing the work items in the associated queue. Performing by a queue processor.
3. The load balancing method according to item 1.
【0141】さらに、サブシステムを再構成するため
に、サブシステムから除去されるプロセッサを指定する
ことによってサブシステムに再構成信号を送り、再構成
プロセッサになるサブシステム内の別のプロセッサによ
ってその信号を受諾し、他のプロセッサがその信号を受
諾してはならないことを示すため、サブシステム内の他
のプロセッサに再構成プロセッサによって受諾信号を送
るステップと、除去されるプロセッサによって不完全に
実行された作業項目に関する、成功裡に実行された最後
の作業サブユニットを指示するステップと、除去される
プロセッサに関連する待ち行列に関して動作不能状態を
セットするステップと、除去されるプロセッサに関連す
る待ち行列上の全作業項目を、再構成プロセッサによる
サービスのため、再構成プロセッサに関連する待ち行列
に移動するステップと、再構成プロセッサおよび除去さ
れるプロセッサによる再構成動作とは独立に、サブシス
テム内の他の各プロセッサの待ち行列上のすべての作業
項目の他の各プロセッサによる実行を継続するステップ
とを含む、0139に記載の負荷平衡方法。In addition, to reconfigure the subsystem, a reconfiguration signal is sent to the subsystem by specifying the processor to be removed from the subsystem, and the signal is reconfigured by another processor in the subsystem that becomes the reconfiguration processor. Sending an acknowledgment signal by the reconfiguration processor to other processors in the subsystem to indicate that no other processor must accept the signal; and Indicating the last successfully executed work subunit for the work item that has been removed, setting the inoperative state with respect to the queue associated with the removed processor, and the queue associated with the removed processor. Rework all work items above for service by the reconfiguration processor. Moving to the queue associated with the configured processor and independent of the reconfiguration operation by the reconfigured processor and the removed processor, the other processes of all work items on the queue of each other processor in the subsystem. The method of 0139, further comprising: continuing execution by each processor.
【0142】さらに、再構成プロセッサおよび除去され
るプロセッサによる動作とは独立に、共通待ち行列上の
すべての作業要求のサブシステム内の他の各プロセッサ
による実行を継続するステップを含む、0141に記載
の負荷平衡方法。[0142] The method of clause 0141, further comprising the step of continuing execution of all work requests on the common queue by each of the other processors in the subsystem independently of operations by the reconfigurable processor and the removed processor. Load balancing method.
【0143】さらに、サブシステムに追加されるプロセ
ッサを指定し、かつサブシステム内の別のプロセッサを
再構成プロセッサとして指定することによって、サブシ
ステムに再構成信号を送るステップと、再構成プロセッ
サによって実行される処理によって、サブシステムに追
加されるプロセッサに関連する待ち行列を提供し、これ
を動作可能にするステップと、再構成プロセッサによっ
て実行される処理によって、サブシステムに追加される
プロセッサによる動作を開始するステップとを含む、0
139に記載の負荷平衡方法。Sending a reconfiguration signal to the subsystem by designating a processor to be added to the subsystem and designating another processor in the subsystem as a reconfiguration processor; Providing and enabling a queue associated with the processor being added to the subsystem by the process performed, and causing the processor to be added to the subsystem to operate by the process performed by the reconfigured processor. Starting with 0
139. The load balancing method according to 139.
【0144】さらに、それぞれ待ち行列プロセッサによ
って実行されている作業項目のそれぞれの位置を示し、
かつ待ち行列プロセッサが非使用中の時を示すため、そ
れぞれサブシステム内の待ち行列プロセッサに関連する
複数の使用中状態フィールドを設けるステップを含む、
0138に記載の負荷平衡方法。Further, each indicates the position of each of the work items being executed by the queue processor,
And providing a plurality of busy status fields, each associated with a queue processor in the subsystem, to indicate when the queue processor is idle.
The load balancing method according to item [0138].
【0145】さらに、サブシステム内のプロセッサに発
生した一時的エラー状態から回復するために、他の待ち
行列プロセッサに、一時的エラー状態を有する待ち行列
プロセッサによるエラー状態を示し後者をエラー・プロ
セッサとして指定する信号を送るステップと、エラー・
プロセッサによって処理中の作業項目の位置を得るため
に、エラー・プロセッサの使用中状態フィールドを、他
の待ち行列プロセッサによって読み取るステップと、他
の待ち行列プロセッサによって作業要求項目にアクセス
し、その項目を、エラー・プロセッサに関連する待ち行
列に置くステップと、作業要求項目に関して示される最
後に成功裡に実行されたサブユニットに続く、作業項目
によって表される作業ユニットに関する残っているすべ
てのサブユニットの実行を継続することによって、他の
待ち行列プロセッサによってエラー・プロセッサをその
初期動作状態にリセットして、エラー状態がもはや存在
しなくなった後にエラー・プロセッサがその項目を再実
行できるようにするステップとを含む、0138に記載
の負荷平衡方法。Further, in order to recover from a temporary error condition occurring in a processor in the subsystem, another queue processor is notified of an error condition by a queue processor having a temporary error condition, and the latter is regarded as an error processor. Sending a signal to specify
Reading the busy status field of the error processor by another queue processor to obtain the location of the work item being processed by the processor; and accessing the work request item by the other queue processor and retrieving the item. Queuing step associated with the error processor, and all remaining subunits for the unit of work represented by the work item, following the last successfully executed subunit indicated for the work request item. Resetting the error processor to its initial operating state by another queue processor by continuing execution so that the error processor can re-execute the item after the error condition no longer exists. The load balancing method of 0138, comprising:
【0146】さらに、エラー・プロセッサによって次の
処理を得るために、一時的エラー状態を有するプロセッ
サに関連する待ち行列内のある位置に作業要求項目を待
機させるステップを含む、0145に記載の負荷平衡方
法。The load balancing of 0145, further comprising the step of waiting for a work request item at a location in a queue associated with the processor having the temporary error condition for further processing by the error processor. Method.
【0147】さらに、一時的エラー状態を有する待ち行
列プロセッサの次の作業要求項目の待ち行列ヘッダを検
査するために、負荷平衡方法に戻るステップを含む、0
145に記載の負荷平衡方法。The method further includes the step of returning to the load balancing method to check the queue header of the next work request item of the queue processor having the temporary error condition.
145. The load balancing method according to 145.
【0148】さらに、サブシステム内の待ち行列プロセ
ッサに発生したエラー状態から回復するために、信号で
通知されたエラー状態を有する待ち行列プロセッサに関
連する待ち行列を動作不能にするステップと、動作不能
にされた待ち行列からサブシステム内の動作可能プロセ
ッサに関連する別の待ち行列へ、すべての待ち行列要素
を移動するステップと、作業要求項目に関してエラー状
態が発生した時に実行されていた作業要求項目を突き止
めるために、サブシステム内のすべてのプロセッサに使
用可能な、使用中状態フィールドの内容を読み取るステ
ップと、エラー状態を有するプロセッサによって作業要
求項目に関して実行されていたことが示される最後に成
功裡に実行されたサブユニットに続くすべての作業サブ
ユニットを動作可能プロセッサが処理するために、エラ
ー・プロセッサの待ち行列から得られた不完全な作業要
求項目を回復プロセッサが処理できるように、エラー・
プロセッサの待ち行列の作業要求項目を回復プロセッサ
の関連待ち行列に置くステップとを含む、0145に記
載の負荷平衡方法。Additionally, disabling a queue associated with the queue processor having the signaled error condition to recover from an error condition occurring in the queue processor in the subsystem; Moving all queue elements from the queued queue to another queue associated with a ready processor in the subsystem, and the work request item being executed when an error condition occurred with respect to the work request item Reading the contents of the busy status field, available to all processors in the subsystem, to determine the status of the work request item. Operate all work subunits following the subunit executed at For the processor to process, so the incomplete work request item obtained from the queue of the error processor can process recovery processor, error
Placing the work requests of the processor's queue in an associated queue of the recovery processor.
【0149】さらに、永続的エラー状態を有する待ち行
列プロセッサを除去するために、回復方法の動作中およ
びその後に、残りのすべての動作可能待ち行列プロセッ
サと関連待ち行列および共通待ち行列によって動作を継
続するステップを含む、0148に記載の負荷平衡方
法。In addition, to eliminate queue processors having a permanent error condition, operation continues during and after operation of the recovery method with all remaining operational queue processors and associated and common queues. 147. The load balancing method of 0148, comprising the step of:
【0150】さらに、サブシステム内のいずれかの動作
可能待ち行列プロセッサで処理を実行することによっ
て、エラー状態を有する待ち行列プロセッサのために存
在する次のいずれかの処理動作に戻るステップを含む、
0148に記載の負荷平衡方法。And performing the processing on any of the ready queue processors in the subsystem to return to any of the following processing operations present for the queue processor having the error condition.
The load balancing method according to 0148.
【0151】サブシステム内に複数のデータ制御プロセ
ッサ(DCP)を設け、それぞれのDCPに待ち行列ヘ
ッダを関連付け、全DCPからアクセス可能な共通待ち
行列ヘッダ(CQH)を設けるステップと、電子メモリ
内のチャネルプログラムとサブチャネル識別子とを指定
することにより、作業ユニットを指定するデータ移動要
求命令を実行するCPUによって、電子メモリ内のデー
タ移動動作を要求するステップと、待ち行列プロセッサ
用のサブチャネル識別子に関連するサブシステム待ち行
列ヘッダを選択し、サブチャネル識別子に関連する待ち
行列要素(QE)を待ち行列ヘッダに連鎖し、QEが待
ち行列ヘッダに連鎖されることを知らせる信号を待ち行
列プロセッサに送るステップと、関連待ち行列ヘッダに
連鎖されたQEにアクセスすることによって次の作業ユ
ニットを実行し、QEによってアドレスされるチャネル
・プログラムを開始して、指定された位置の間で1つま
たは複数のデータ・ページを転送するステップと、DC
Pが待ち行列プロセッサによって実行される作業ユニッ
トの各作業を完了した後に、待ち行列ヘッダに連鎖され
た別のQEの指示に関して待ち行列ヘッダをテストする
ステップと、待ち行列プロセッサが使用中である間に、
現在使用中でない待ち行列プロセッサに関連する他の待
ち行列ヘッダにQEを連鎖し、他の待ち行列プロセッサ
に関連する待ち行列ヘッダが連鎖されたQEを有するこ
とを知らせる信号を他の待ち行列プロセッサに送るステ
ップと、全待ち行列プロセッサが使用中の場合には、サ
ブシステム内の作業負荷の平衡を維持するために、サブ
システム内の共通待ち行列に関連する共通待ち行列ヘッ
ダにQEを連鎖するステップとを含む、1つまたは複数
のCPUを有するデータ処理システム内で、同一の電子
メモリ内または異なる電子メモリ内の2つの位置間での
データ・ユニットの移動を制御する非同期データ移動方
法。Providing a plurality of data control processors (DCPs) in the subsystem, associating a queue header with each DCP, and providing a common queue header (CQH) accessible from all DCPs; Requesting a data movement operation in the electronic memory by the CPU executing the data movement request instruction specifying the work unit by specifying the channel program and the sub-channel identifier; Select the associated subsystem queue header, chain the queue element (QE) associated with the subchannel identifier to the queue header, and send a signal to the queue processor indicating that the QE is chained to the queue header. Step and QE chained to the associated queue header A step of performing the following tasks unit by access, and starts the channel program is addressed by QE, transferring one or more data pages between the specified positions, DC
Testing the queue header for another QE indication chained to the queue header after P has completed each work unit of work performed by the queue processor; and To
Chain a QE to another queue header associated with a queue processor not currently in use, and signal to the other queue processor that the queue header associated with the other queue processor has a chained QE. Sending and chaining the QE to a common queue header associated with the common queue in the subsystem to balance the workload in the subsystem if all queue processors are busy. An asynchronous data movement method for controlling movement of a data unit between two locations in the same electronic memory or different electronic memories in a data processing system having one or more CPUs.
【0152】さらに、サブシステム内のいずれかの待ち
行列プロセッサが障害を発生しているかどうかを検出す
るステップと、障害を発生した待ち行列プロセッサの待
ち行列ヘッダに連鎖された各QEを処理するために、障
害を発生した待ち行列プロセッサから障害を発生してい
ない待ち行列プロセッサに障害状況を示す信号を送るス
テップと、障害を発生したプロセッサの待ち行列ヘッダ
から各QEを連鎖解除し、このQEを、障害を発生して
いない待ち行列プロセッサの待ち行列ヘッダに連鎖する
ステップと、障害を発生したプロセッサによって実行中
の作業項目を表すQEを、他の待ち行列プロセッサによ
ってその作業項目の実行を継続するために、動作可能待
ち行列プロセッサに関連する待ち行列に連鎖するステッ
プとを含む、0151に記載の非同期データ移動方法。Further, detecting whether any of the queue processors in the subsystem has failed and processing each QE chained to the queue header of the failed queue processor. Sending a signal indicating a fault condition from the failed queue processor to the non-failed queue processor; de-chaining each QE from the queue header of the failed processor; Chaining to the queue header of the surviving queue processor, and continuing the execution of the work item by another queue processor, the QE representing the work item being executed by the failing processor. Chaining to a queue associated with the operable queue processor. Asynchronous data migration method according to 1.
【0153】さらに、サブシステムから除去される指定
された待ち行列プロセッサに関連する待ち行列ヘッダに
連鎖された各QEを処理するよう指示する信号を、サブ
システム内の動作可能待ち行列プロセッサに送るステッ
プと、サブシステムから除去される待ち行列プロセッサ
に関連する待ち行列ヘッダに、動作不能指示を書き込む
ステップと、除去される待ち行列プロセッサの待ち行列
ヘッダに連鎖された各QEを、動作可能待ち行列プロセ
ッサによって、動作可能待ち行列プロセッサに関連する
待ち行列ヘッダに再連鎖するステップと、障害を発生し
たプロセッサによって実行中の作業項目を表すQEを、
動作可能待ち行列プロセッサによってその作業項目の実
行を継続するために、動作可能待ち行列プロセッサに関
連する待ち行列に連鎖するステップとを含む、0151
に記載の非同期データ移動方法。Sending a signal to the operational queue processor in the subsystem to process each QE chained to a queue header associated with the designated queue processor to be removed from the subsystem. Writing an inoperability indication to a queue header associated with the queue processor to be removed from the subsystem; and disposing each QE chained to the queue header of the removed queue processor as an enabled queue processor. Re-chaining to a queue header associated with the ready queue processor, and providing a QE representing the work item being executed by the failed processor.
Chaining to a queue associated with the ready queue processor to continue execution of the work item by the ready queue processor.
Asynchronous data movement method described in 1.
【0154】さらに、負荷平衡方法を、データ処理シス
テム内で実行中のシステム・ソフトウェアに対して透過
性にするために、ハードウェアまたはマイクロコードま
たはその両方で実施するステップを含む、0151に記
載の非同期データ移動方法。The method of 0151, further comprising implementing the load balancing method in hardware and / or microcode to make it transparent to system software running in the data processing system. Asynchronous data movement method.
【0155】それぞれ関連待ち行列プロセッサに対して
要求された作業を受け取るために設けられた、それぞれ
サブシステム内の複数の待ち行列プロセッサに関連する
複数の待ち行列と、作業をサブシステムによって実行す
るために、待ち行列要素(QE)を生成し、これをCP
U要求として待ち行列に連鎖するための、中央演算処理
装置(CPU)手段と、待ち行列プロセッサによって現
在実行中のQEの作業ユニットの、待ち行列プロセッサ
による実行の休止中に、受け取ったQEの存在に関して
関連待ち行列をテストする、各待ち行列プロセッサごと
のテスト手段と、サブシステム内の他の待ち行列プロセ
ッサの現実行状態を検出する、各待ち行列プロセッサご
との検出手段と、待ち行列上にあることがテストされた
受け取ったQEを、実行状態にないことが検出された待
ち行列プロセッサに関連する待ち行列に移動する手段
と、他の待ち行列プロセッサが実行状態にあることが検
出された時に、受け取ったQEを共通待ち行列に移動す
る手段とを具備し、共通待ち行列上の各QEが、サブシ
ステム内のいずれの使用可能待ち行列プロセッサによっ
ても実行可能であることを特徴とする、複数の待ち行列
プロセッサ間の非同期作業負荷を制御するためのコンピ
ュータ・システム。A plurality of queues, each associated with a plurality of queue processors in the subsystem, each provided to receive work requested for the associated queue processor, and for performing work by the subsystem. , A queue element (QE) is generated and
A central processing unit (CPU) means for chaining to the queue as a U request, and the presence of the QE received during the pause of execution by the queue processor of the work unit of the QE currently being executed by the queue processor. Testing means associated with each queue processor for testing associated queues, and detecting means for each queue processor to detect the current execution state of other queue processors in the subsystem; and Means for moving the received QE that has been tested to a queue associated with the queue processor that is detected not to be in the running state; and, when the other queue processor is detected to be in the running state, Means for moving the received QEs to a common queue, wherein each QE on the common queue Computer system for, characterized in that by use queuing processor is feasible to control the asynchronous workload among multiple queues processor.
【0156】それぞれ複数の待ち行列ヘッダに関連する
複数のデータ制御プロセッサ(DCP)と、サブシステ
ムによって実行されるチャネル・プログラムを含み、各
要求の制御ブロックが、割り当てられた待ち行列ヘッダ
にCPUによって連鎖される待ち行列要素として使用さ
れる、データ移動要求を電子メモリ内の制御ブロック内
で生成して、作業ユニットを実行するようサブシステム
に要求する、任意の複数の中央演算処理装置(CPU)
と、中央演算処理装置(CPU)が関連待ち行列に要求
を連鎖した時にDCPに信号を送るためのCPU手段
と、関連待ち行列上のQEにアクセスし、QEによって
指定されるチャネル・プログラムを開始して、電子記憶
媒体内またはシステム内の電子記憶媒体間で1つまたは
複数の指定されたデータ・ページを転送することによっ
て、作業ユニットを実行するためのDCP用の手段と、
関連待ち行列内の連鎖されたQEの存在に関して関連待
ち行列ヘッダをテストするための、各DCPに伴うテス
ト手段と、関連待ち行列内の連鎖されたQEを、他のD
CPに関連する別の待ち行列に移動するためのDCP用
の手段と、QEが他のDCPに関連する待ち行列に移動
されたことを示す信号を他のDCPに送るためのDCP
用の手段と、QEの実行に使用可能なDCPがない時
に、DCPに関連する待ち行列ヘッダに連鎖されたQE
を、すべてのDCPからアクセス可能な共通待ち行列に
転送するための手段とを含む、1電子メモリ内または異
なる電子メモリ内の2つの位置の間でデータを移動する
ための、コンピュータ・システム。A control block for each request, including a plurality of data control processors (DCPs), each associated with a plurality of queue headers, and a channel program executed by the subsystem, is assigned to the assigned queue header by the CPU. Any number of central processing units (CPUs) that generate data movement requests in control blocks in electronic memory and request subsystems to execute work units, used as chained queue elements
And CPU means for sending a signal to the DCP when the central processing unit (CPU) has chained the request to the associated queue, accessing the QE on the associated queue and starting the channel program designated by the QE. Means for executing a unit of work by transferring one or more designated data pages within an electronic storage medium or between electronic storage media in a system;
Testing means associated with each DCP to test the associated queue header for the presence of the chained QE in the associated queue;
Means for the DCP to move to another queue associated with the CP, and a DCP for sending a signal to the other DCP indicating that the QE has been moved to the queue associated with the other DCP
Means and a QE chained to a queue header associated with the DCP when no DCP is available to perform the QE.
Means for transferring data between two locations in one electronic memory or in different electronic memories, including means for transferring data to a common queue accessible from all DCPs.
【0157】複数の待ち行列プロセッサと、各待ち行列
プロセッサの待ち行列を表す待ち行列ヘッダと、すべて
の待ち行列プロセッサに関連する共通待ち行列を表す共
通待ち行列ヘッダとを有し、どのプロセッサ待ち行列
も、入出力待ち行列要素(QE)またはADM(非同期
データ移動)待ち行列要素を受け取り、共通待ち行列
が、ADM QEだけを受け取り、各待ち行列ヘッダ
が、それが表す待ち行列内の次にアクセスされるQEに
連鎖するための待ち行列先頭ポインタ・フィールドと、
それが表す待ち行列内の最後のQEに連鎖するための待
ち行列下端ポインタ・フィールドとを含む、サブシステ
ムと、ADMサブチャネル用の各QEが、そのサブチャ
ネルが待ち行列プロセッサによって現在処理されている
かどうかを示す使用中フィールドと、そのサブチャネル
が待ち行列要素として待機されている待ち行列を示す現
待ち行列識別子フィールドと、同一の待ち行列内の次Q
Eとして連鎖されるサブチャネルを突き止めるための現
待ち行列連鎖ポインタ・フィールドと、ADMプログラ
ムを突き止めるためのプログラム・アドレス・フィール
ドとを含むという、それぞれサブシステム動作を求める
CPU要求を運ぶためにマイクロコードによって制御ブ
ロックとして構成されるQEを有する、複数のADMサ
ブチャネルおよび入出力チャネルと、ADM動作がサブ
システム内のADMプロセッサによって実行されるよう
に指示し、入出力動作がチャネル・プロセッサによって
実行されるように指示する、現CPUデータ転送要求を
サブシステムへ運ぶために、いずれのCPUも入出力サ
ブチャネルまたはADMサブチャネルを選択できるよう
にする命令手段と、入出力作業要求項目またはADM作
業要求項目に関する作業の完了をサブシステムが中央演
算処理装置に通知できるようにするための割込み手段と
を含む、同一の電子メモリ内または異なる電子メモリ内
の2つの位置の間でのデータ・ユニットの複写を制御す
るために、データ処理システム内のいずれかのCPUか
らサブシステムにCPU要求を転送するための、コンピ
ュータ・システム。[0157] Which processor queue has a plurality of queue processors, a queue header representing the queue of each queue processor, and a common queue header representing the common queue associated with all queue processors. Also receive an input / output queue element (QE) or ADM (asynchronous data movement) queue element, the common queue receives only ADM QE, and each queue header is the next access in the queue it represents. A queue head pointer field to chain to the QE to be
The subsystem and each QE for the ADM subchannel, including a queue bottom pointer field for chaining to the last QE in the queue it represents, is used when the subchannel is currently processed by the queue processor. A current queue identifier field indicating the queue whose subchannel is being queued as a queue element, and a next Q in the same queue.
Microcode to carry CPU requests for subsystem operation, respectively, including a current queue chain pointer field to locate the subchannel chained as E and a program address field to locate the ADM program A plurality of ADM sub-channels and input / output channels having QEs configured as control blocks, and directing ADM operations to be performed by an ADM processor in the subsystem, wherein the input / output operations are performed by a channel processor. Means for allowing any CPU to select an I / O subchannel or an ADM subchannel to carry the current CPU data transfer request to the subsystem; and an I / O work request item or ADM work request. About the item Controlling the copying of data units between two locations in the same electronic memory or in different electronic memories, including interrupt means for allowing the subsystem to notify the central processing unit of the completion of work. Computer system for transferring a CPU request from any CPU in a data processing system to a subsystem to perform the same.
【0158】さらに、CPUからサブシステムへのAD
M動作を求めるCPU要求を処理するために、ADMサ
ブチャネル用のQEが、実行中のADMプログラムに関
して関連プロセッサによって成功裡に転送された最後の
各サブユニットに関するデータを格納するためのチェッ
クポイント・フィールドと、チェックポイント・フィー
ルドに格納された制御データを使用することによって最
後に成功裡に転送されたサブユニットからADMプログ
ラムの実行を続行する別の待ち行列プロセッサの待ち行
列にQEを再連鎖することにより、関連待ち行列プロセ
ッサの障害または除去の際に、実行中のADMプログラ
ムの回復を可能にする手段とを含む、0157に記載の
コンピュータ・システム。Further, the AD from the CPU to the subsystem
To process the CPU request for M operation, a QE for the ADM subchannel is used to store a checkpoint for storing data for each last subunit successfully transferred by the associated processor for the running ADM program. Re-chain the QE to the queue of another queue processor which continues execution of the ADM program from the last successfully transferred subunit by using the control data stored in the checkpoint field. Means to allow the running ADM program to recover in the event of a failure or removal of the associated queue processor.
【0159】さらに、CPUからサブシステムへのAD
M動作を求めるCPU要求を処理するために、DCPを
サブシステムから除去するためまたはサブシステムに追
加するように、DCPのうちの1つが受け取り、これに
よって再構成プロセッサとして指定される、再構成コマ
ンドを、サブシステム内の動作可能DCPに送るための
サブシステム・バスと、除去されるプロセッサに関連す
る待ち行列ヘッダを動作不能にし、追加されるプロセッ
サに関連する待ち行列ヘッダを動作可能にする、再構成
プロセッサ用の手段と、除去されるプロセッサの待ち行
列ヘッダに連鎖されたQEを、再構成プロセッサに関連
する待ち行列に移動する、再構成プロセッサ用の手段と
を含む、0156に記載のコンピュータ・システムから
なる発明である。Further, AD from the CPU to the subsystem
A reconfiguration command received by one of the DCPs and thereby designated as a reconfiguration processor to remove or add the DCP to the subsystem to process a CPU request for M operation. A subsystem bus to send to an operational DCP in the subsystem, a queue header associated with the processor to be removed, and a queue header associated with the added processor. 0156. The computer of 0156 comprising means for the reconfigurable processor and means for relocating the QE chained to the queue header of the removed processor to a queue associated with the reconfigured processor.・ It is an invention consisting of a system.
【図1】本発明の一実施例を含むコンピュータ・システ
ム構造を示す図である。FIG. 1 is a diagram showing a computer system structure including one embodiment of the present invention.
【図2】コンピュータ・システム内の本発明の好ましい
実施例を表す、多重待ち行列サブシステムを示す図であ
る。FIG. 2 illustrates a multiple queuing subsystem that represents a preferred embodiment of the present invention in a computer system.
【図3】サブチャネルに関連するマイクロコード化され
た制御ブロックである待ち行列要素の、重要なフィール
ドを示す図である。FIG. 3 shows important fields of a queue element which is a micro-coded control block associated with a sub-channel.
【図4】各プロセッサ待ち行列のヘッダに含まれる、本
実施例で使用されるフィールドを示す図である。FIG. 4 is a diagram showing fields used in the present embodiment, which are included in the header of each processor queue.
【図5】共通待ち行列(CQ)のヘッダに含まれる、本
実施例で使用されるフィールドを示す図である。FIG. 5 is a diagram showing fields used in the present embodiment, which are included in a header of a common queue (CQ).
【図6】割り当てられたプロセッサ待ち行列上のサブチ
ャネルを、要求元待ち行列要素として連鎖するCPU要
求処理の流れ図である。FIG. 6 is a flowchart of a CPU request process in which a subchannel on an assigned processor queue is chained as a request source queue element.
【図7】任意のプロセッサ待ち行列または共通待ち行列
上の各ADM待ち行列要素(サブチャネル)ごとに使用
される作業負荷平衡処理の流れ図である。FIG. 7 is a flowchart of the workload balancing process used for each ADM queue element (subchannel) on any processor queue or common queue.
【図8】図7の作業負荷平衡処理の"EXECUTE"サブプロ
セスの流れ図である。FIG. 8 is a flowchart of an “EXECUTE” sub-process of the workload balancing process of FIG. 7;
【図9】図8のサブプロセス"EXECUTE"の"CHECKQUEUE"
サブプロセスの流れ図である。9 is “CHECKQUEUE” of the subprocess “EXECUTE” in FIG. 8
It is a flowchart of a subprocess.
【図10】図7の作業負荷平衡処理の"GETWORK"サブプ
ロセスの流れ図である。FIG. 10 is a flowchart of a “GETWORK” sub-process of the workload balancing process of FIG. 7;
【図11】ADMサブシステムによって使用される再構
成処理の流れ図である。FIG. 11 is a flowchart of a reconstruction process used by the ADM subsystem.
【図12】ADMサブシステムによって使用される回復
処理の流れ図である。FIG. 12 is a flowchart of a recovery process used by the ADM subsystem.
【図13】サブシステム内の待ち行列プロセッサの間を
接続するバスを示す図である。このバスは、好ましい実
施例の作業負荷処理、回復処理および再構成処理で信号
を送るのに使用される。FIG. 13 is a diagram showing a bus connecting between queue processors in a subsystem. This bus is used to signal the workload, recovery, and reconfiguration processes of the preferred embodiment.
1N CPU 20 CPUオフロード・サブシステム 21 電子メモリ 22 入出力サブシステム 23 電子メモリ 110 QE信号/回復/再構成バス 111 再構成信号手段 1N CPU 20 CPU offload subsystem 21 electronic memory 22 input / output subsystem 23 electronic memory 110 QE signal / recovery / reconfiguration bus 111 reconfiguration signal means
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トマス・ジェイ・デューケット アメリカ合衆国12580、ニューヨーク州 スターツバーグ、アール・アール1、ボ ックス364ビー (72)発明者 クリスチーヌ・レイノルズ・パナー アメリカ合衆国78720−0042、テキサス 州オースチン、ピー・オー・ボックス 200042、 (72)発明者 キャスパー・アンソニー・スカルツィ アメリカ合衆国12601、ニューヨーク州 ポーキープシー、アカデミー・ストリー ト 160 (56)参考文献 特開 平2−287858(JP,A) ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Thomas Jay Duket United States 12580, St.sburg, NY, Earl R1, Box 364 Be (72) Inventor Christine Reynolds Panner United States 78720-0042, United States Pau Box 200042, Austin, Texas, (42) Inventor Caspar Anthony Scalzi, 12601 United States of America, Pokies, New York, Academy Street 160 (56) References JP-A-2-287858 (JP, A)
Claims (5)
要求された作業を受け取るために設けられた、それぞれ
サブシステム内の複数の待ち行列プロセッサに関連する
複数の待ち行列と、 作業をサブシステムによって実行するために、待ち行列
要素(QE)を生成し、これをCPU要求として待ち行
列に連鎖するための、中央演算処理装置(CPU)手段
と、 待ち行列プロセッサによって現在実行中のQEの作業ユ
ニットの、待ち行列プロセッサによる実行の休止中に、
受け取ったQEの存在に関して関連待ち行列をテストす
る、各待ち行列プロセッサごとのテスト手段と、 サブシステム内の他の待ち行列プロセッサの現実行状態
を検出する、各待ち行列プロセッサごとの検出手段と、
待ち行列上にあることがテストされた受け取ったQE
を、実行状態にないことが検出された待ち行列プロセッ
サに関連する待ち行列に移動する手段と、 他の待ち行列プロセッサが実行状態にあることが検出さ
れた時に、受け取ったQEを共通待ち行列に移動する手
段とを具備し、 共通待ち行列上の各QEが、サブシステム内のいずれの
使用可能待ち行列プロセッサによっても実行可能である
ことを特徴とする、 複数の待ち行列プロセッサ間の非同期作業負荷を制御す
るためのコンピュータ・システム。1. A plurality of queues, each associated with a plurality of queue processors in a subsystem, each being provided to receive work requested for the associated queue processor, and the work being performed by the subsystem. Central processing unit (CPU) means for generating a queue element (QE) and chaining it as a CPU request to the queue, and a work unit of the QE currently being executed by the queue processor. , While paused by the queue processor,
Testing means for each queue processor for testing the associated queue for the presence of the received QE; detecting means for each queue processor for detecting the current execution state of other queue processors in the subsystem;
Received QEs tested to be on queue
Means for moving the received QE to a common queue when another queue processor is detected to be in the running state. Means for moving, wherein each QE on the common queue is executable by any available queue processor in the subsystem, the asynchronous workload between the plurality of queue processors. Computer system for controlling the computer.
複数のデータ制御プロセッサ(DCP)と、 サブシステムによって実行されるチャネル・プログラム
を含み、各要求の制御ブロックが、割り当てられた待ち
行列ヘッダにCPUによって連鎖される待ち行列要素と
して使用される、データ移動要求を電子メモリ内の制御
ブロック内で生成して、作業ユニットを実行するようサ
ブシステムに要求する、任意の複数の中央演算処理装置
(CPU)と、 中央演算処理装置(CPU)が関連待ち行列に要求を連
鎖した時にDCPに信号を送るためのCPU手段と、 関連待ち行列上のQEにアクセスし、QEによって指定
されるチャネル・プログラムを開始して、電子記憶媒体
内またはシステム内の電子記憶媒体間で1つまたは複数
の指定されたデータ・ページを転送することによって、
作業ユニットを実行するためのDCP用の手段と、 関連待ち行列内の連鎖されたQEの存在に関して関連待
ち行列ヘッダをテストするための、各DCPに伴うテス
ト手段と、 関連待ち行列内の連鎖されたQEを、他のDCPに関連
する別の待ち行列に移動するためのDCP用の手段と、 QEが他のDCPに関連する待ち行列に移動されたこと
を示す信号を他のDCPに送るためのDCP用の手段
と、 QEの実行に使用可能なDCPがない時に、DCPに関
連する待ち行列ヘッダに連鎖されたQEを、すべてのD
CPからアクセス可能な共通待ち行列に転送するための
手段とを含む、1電子メモリ内または異なる電子メモリ
内の2つの位置の間でデータを移動するための、コンピ
ュータ・システム。2. The method of claim 1, further comprising a plurality of data control processors (DCPs), each associated with a plurality of queue headers, and a channel program executed by the subsystem, wherein a control block for each request includes Any number of central processing units that generate data movement requests in control blocks in electronic memory and request subsystems to execute work units, used as queue elements chained by the CPU ( CPU); CPU means for sending a signal to the DCP when the central processing unit (CPU) has chained requests to the associated queue; and a channel program designated to be accessed by the QE on the associated queue. To one or more designated electronic storage media within an electronic storage medium or between electronic storage media in a system. By transferring over data-page,
Means for performing the unit of work, a test means associated with each DCP for testing an associated queue header for the presence of a chained QE in the associated queue; Means for moving the QE to another queue associated with the other DCP, and means for sending a signal to the other DCP indicating that the QE has been moved to the queue associated with the other DCP. Means for the DCP, and when no DCP is available to perform the QE, the QE chained to the queue header associated with the DCP is
Means for transferring data between two locations in one electronic memory or in different electronic memories, including means for transferring to a common queue accessible from the CP.
プロセッサの待ち行列を表す待ち行列ヘッダと、すべて
の待ち行列プロセッサに関連する共通待ち行列を表す共
通待ち行列ヘッダとを有し、どのプロセッサ待ち行列
も、入出力待ち行列要素(QE)またはADM(非同期
データ移動)待ち行列要素を受け取り、共通待ち行列
が、ADM QEだけを受け取り、各待ち行列ヘッダ
が、それが表す待ち行列内の次にアクセスされるQEに
連鎖するための待ち行列先頭ポインタ・フィールドと、
それが表す待ち行列内の最後のQEに連鎖するための待
ち行列下端ポインタ・フィールドとを含む、サブシステ
ムと、 ADMサブチャネル用の各QEが、そのサブチャネルが
待ち行列プロセッサによって現在処理されているかどう
かを示す使用中フィールドと、そのサブチャネルが待ち
行列要素として待機されている待ち行列を示す現待ち行
列識別子フィールドと、同一の待ち行列内の次QEとし
て連鎖されるサブチャネルを突き止めるための現待ち行
列連鎖ポインタ・フィールドと、ADMプログラムを突
き止めるためのプログラム・アドレス・フィールドとを
含むという、それぞれサブシステム動作を求めるCPU
要求を運ぶためにマイクロコードによって制御ブロック
として構成されるQEを有する、複数のADMサブチャ
ネルおよび入出力チャネルと、 ADM動作がサブシステム内のADMプロセッサによっ
て実行されるように指示し、入出力動作がチャネル・プ
ロセッサによって実行されるように指示する、現CPU
データ転送要求をサブシステムへ運ぶために、いずれの
CPUも入出力サブチャネルまたはADMサブチャネル
を選択できるようにする命令手段と、 入出力作業要求項目またはADM作業要求項目に関する
作業の完了をサブシステムが中央演算処理装置に通知で
きるようにするための割込み手段とを含む、同一の電子
メモリ内または異なる電子メモリ内の2つの位置の間で
のデータ・ユニットの複写を制御するために、データ処
理システム内のいずれかのCPUからサブシステムにC
PU要求を転送するための、コンピュータ・システム。3. A processor comprising: a plurality of queue processors; a queue header representing a queue of each queue processor; and a common queue header representing a common queue associated with all queue processors. The queue also receives an input / output queue element (QE) or an ADM (asynchronous data movement) queue element, the common queue receives only the ADM QE, and each queue header indicates the next queue in the queue it represents. A queue head pointer field to chain to the QE accessed to
A subsystem, including a queue bottom pointer field for chaining to the last QE in the queue it represents, and each QE for the ADM subchannel whose subchannel is currently being processed by the queue processor. The current queue identifier field, which indicates the queue whose subchannel is being queued as a queue element, and a field for locating the subchannel chained as the next QE in the same queue. CPUs for subsystem operations, each including a current queue chain pointer field and a program address field for locating ADM programs
A plurality of ADM sub-channels and input / output channels having QEs configured as control blocks by microcode to carry requests; and input / output operations indicating that ADM operations are to be performed by an ADM processor in the subsystem. CPU to indicate that it is to be executed by the channel processor
Instruction means for allowing any CPU to select an I / O sub-channel or an ADM sub-channel to convey a data transfer request to the subsystem; Data processing to control the copying of data units between two locations in the same electronic memory or in different electronic memories, including interrupt means for allowing the CPU to notify the central processing unit. C from any CPU in the system to the subsystem
A computer system for forwarding PU requests.
M動作を求めるCPU要求を処理するために、 ADMサブチャネル用のQEが、 実行中のADMプログラムに関して関連プロセッサによ
って成功裡に転送された最後の各サブユニットに関する
データを格納するためのチェックポイント・フィールド
と、 チェックポイント・フィールドに格納された制御データ
を使用することによって最後に成功裡に転送されたサブ
ユニットからADMプログラムの実行を続行する別の待
ち行列プロセッサの待ち行列にQEを再連鎖することに
より、関連待ち行列プロセッサの障害または除去の際
に、実行中のADMプログラムの回復を可能にする手段
とを含む、請求項3に記載のコンピュータ・システム。4. The method according to claim 1, further comprising the step of:
To process a CPU request for M operation, a QE for the ADM sub-channel is used to store a checkpoint for storing data for each last sub-unit successfully transferred by the associated processor for the running ADM program. Re-chain the QE to the queue of another queue processor which continues execution of the ADM program from the last successfully transferred subunit by using the control data stored in the checkpoint field. Means for enabling recovery of the running ADM program upon failure or removal of the associated queue processor.
M動作を求めるCPU要求を処理するために、 DCPをサブシステムから除去するためまたはサブシス
テムに追加するように、DCPのうちの1つが受け取
り、これによって再構成プロセッサとして指定される、
再構成コマンドを、サブシステム内の動作可能DCPに
送るためのサブシステム・バスと、 除去されるプロセッサに関連する待ち行列ヘッダを動作
不能に、追加されるプロセッサに関連する待ち行列ヘッ
ダを動作可能にする、再構成プロセッサ用の手段と、 除去されるプロセッサの待ち行列ヘッダに連鎖されたQ
Eを、再構成プロセッサに関連する待ち行列に移動す
る、再構成プロセッサ用の手段とを含む、請求項2に記
載のコンピュータ・システム。5. The method according to claim 1, further comprising the step of:
One of the DCPs is received and thereby designated as a reconfigurable processor to remove or add the DCP to the subsystem to process a CPU request for M operation;
A subsystem bus for sending reconfiguration commands to an operational DCP in the subsystem, and a queue header associated with the processor being removed is disabled, and a queue header associated with the processor being added is enabled. Means for the reconfigurable processor, and a Q chained to the queue header of the processor to be removed.
Means for relocating E to a queue associated with the reconfigurable processor.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/012,187 US5459864A (en) | 1993-02-02 | 1993-02-02 | Load balancing, error recovery, and reconfiguration control in a data movement subsystem with cooperating plural queue processors |
| US012187 | 1993-02-02 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06250983A JPH06250983A (en) | 1994-09-09 |
| JP2587195B2 true JP2587195B2 (en) | 1997-03-05 |
Family
ID=21753775
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6002345A Expired - Fee Related JP2587195B2 (en) | 1993-02-02 | 1994-01-14 | Computer system and method for load balancing or asynchronous data movement |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5459864A (en) |
| JP (1) | JP2587195B2 (en) |
Families Citing this family (59)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5701482A (en) * | 1993-09-03 | 1997-12-23 | Hughes Aircraft Company | Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes |
| US5794242A (en) * | 1995-02-07 | 1998-08-11 | Digital Equipment Corporation | Temporally and spatially organized database |
| US6108704A (en) | 1995-09-25 | 2000-08-22 | Netspeak Corporation | Point-to-point internet protocol |
| US6134601A (en) | 1996-06-17 | 2000-10-17 | Networks Associates, Inc. | Computer resource management system |
| US5918017A (en) * | 1996-08-23 | 1999-06-29 | Internatioinal Business Machines Corp. | System and method for providing dynamically alterable computer clusters for message routing |
| US5778244A (en) * | 1996-10-07 | 1998-07-07 | Timeplex, Inc. | Digital signal processing unit using digital signal processor array with recirculation |
| US6073218A (en) * | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
| US6108684A (en) * | 1996-12-23 | 2000-08-22 | Lsi Logic Corporation | Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers |
| US5933824A (en) * | 1996-12-23 | 1999-08-03 | Lsi Logic Corporation | Methods and apparatus for locking files within a clustered storage environment |
| US6393455B1 (en) | 1997-03-28 | 2002-05-21 | International Business Machines Corp. | Workload management method to enhance shared resource access in a multisystem environment |
| US5974462A (en) * | 1997-03-28 | 1999-10-26 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a client/server system |
| US5944838A (en) * | 1997-03-31 | 1999-08-31 | Lsi Logic Corporation | Method for fast queue restart after redundant I/O path failover |
| US5937428A (en) * | 1997-08-06 | 1999-08-10 | Lsi Logic Corporation | Method for host-based I/O workload balancing on redundant array controllers |
| US6192408B1 (en) * | 1997-09-26 | 2001-02-20 | Emc Corporation | Network file server sharing local caches of file access information in data processors assigned to respective file systems |
| US6035307A (en) * | 1998-03-30 | 2000-03-07 | Bmc Software | Enterprise data movement system and method including opportunistic performance of utilities and data move operations for improved efficiency |
| US6125370A (en) * | 1998-04-01 | 2000-09-26 | International Business Machines Corporation | Repartitioning data |
| WO1999063438A1 (en) * | 1998-06-05 | 1999-12-09 | Mylex Corporation | Apparatus, system and method for n-way raid controller |
| US7216348B1 (en) * | 1999-01-05 | 2007-05-08 | Net2Phone, Inc. | Method and apparatus for dynamically balancing call flow workloads in a telecommunications system |
| US6292856B1 (en) * | 1999-01-29 | 2001-09-18 | International Business Machines Corporation | System and method for application influence of I/O service order post I/O request |
| FR2792087B1 (en) * | 1999-04-07 | 2001-06-15 | Bull Sa | METHOD FOR IMPROVING THE PERFORMANCE OF A MULTIPROCESSOR SYSTEM INCLUDING A WORK WAITING LINE AND SYSTEM ARCHITECTURE FOR IMPLEMENTING THE METHOD |
| US6687847B1 (en) * | 1999-04-21 | 2004-02-03 | Cornell Research Foundation, Inc. | Failure detector with consensus protocol |
| US6510531B1 (en) * | 1999-09-23 | 2003-01-21 | Lucent Technologies Inc. | Methods and systems for testing parallel queues |
| US6986137B1 (en) * | 1999-09-28 | 2006-01-10 | International Business Machines Corporation | Method, system and program products for managing logical processors of a computing environment |
| US6651125B2 (en) * | 1999-09-28 | 2003-11-18 | International Business Machines Corporation | Processing channel subsystem pending I/O work queues based on priorities |
| US7319700B1 (en) * | 2000-12-29 | 2008-01-15 | Juniper Networks, Inc. | Communicating constraint information for determining a path subject to such constraints |
| JP2002287997A (en) * | 2001-03-23 | 2002-10-04 | Kinji Mori | Multiple processing method |
| US7734676B2 (en) * | 2001-06-27 | 2010-06-08 | International Business Machines Corporation | Method for controlling the number of servers in a hierarchical resource environment |
| US6922791B2 (en) * | 2001-08-09 | 2005-07-26 | Dell Products L.P. | Failover system and method for cluster environment |
| US6901533B2 (en) * | 2001-08-23 | 2005-05-31 | International Business Machines Corporation | Reconstructing memory residents queues of an inactive processor |
| US7187383B2 (en) * | 2002-03-01 | 2007-03-06 | 3D Labs Inc., Ltd | Yield enhancement of complex chips |
| US7269752B2 (en) * | 2002-06-04 | 2007-09-11 | Lucent Technologies Inc. | Dynamically controlling power consumption within a network node |
| US20040225707A1 (en) * | 2003-05-09 | 2004-11-11 | Chong Huai-Ter Victor | Systems and methods for combining a slow data stream and a fast data stream into a single fast data stream |
| US7370089B2 (en) * | 2003-07-11 | 2008-05-06 | International Business Machines Corporation | Autonomic learning method to load balance output transfers of two peer nodes |
| US7657889B2 (en) * | 2004-04-06 | 2010-02-02 | International Business Machines Corporation | Method, system, and storage medium for searching multiple queues for prioritized work elements |
| US7392524B2 (en) * | 2004-04-06 | 2008-06-24 | International Business Machines Corporation | Method, system, and storage medium for managing computer processing functions |
| US7529724B1 (en) | 2004-09-21 | 2009-05-05 | Emc Corporation | Servicing work requests between units of a storage device |
| US8122201B1 (en) * | 2004-09-21 | 2012-02-21 | Emc Corporation | Backup work request processing by accessing a work request of a data record stored in global memory |
| US7844973B1 (en) * | 2004-12-09 | 2010-11-30 | Oracle America, Inc. | Methods and apparatus providing non-blocking access to a resource |
| US7343467B2 (en) * | 2004-12-20 | 2008-03-11 | Emc Corporation | Method to perform parallel data migration in a clustered storage environment |
| US7793291B2 (en) * | 2004-12-22 | 2010-09-07 | International Business Machines Corporation | Thermal management of a multi-processor computer system |
| US7693166B2 (en) | 2005-02-17 | 2010-04-06 | Nec Corporation | Method and apparatus for transmitting data to network and method and apparatus for receiving data from network |
| CN101300542A (en) * | 2005-11-04 | 2008-11-05 | 汤姆逊许可证公司 | Method and apparatus for managing media storage devices |
| JPWO2007094256A1 (en) * | 2006-02-14 | 2009-07-02 | 国立大学法人 電気通信大学 | Queue processor and data processing method by queue processor |
| JP4933284B2 (en) * | 2007-01-25 | 2012-05-16 | 株式会社日立製作所 | Storage apparatus and load balancing method |
| KR20090005921A (en) * | 2007-07-10 | 2009-01-14 | 삼성전자주식회사 | Load balancing method and apparatus in symmetric multiprocessor system |
| US8200771B2 (en) * | 2008-10-10 | 2012-06-12 | International Business Machines Corporation | Workload migration using on demand remote paging |
| US20110010716A1 (en) * | 2009-06-12 | 2011-01-13 | Arvind Raghuraman | Domain Bounding for Symmetric Multiprocessing Systems |
| US9021180B2 (en) | 2011-06-10 | 2015-04-28 | International Business Machines Corporation | Clearing blocks of storage class memory |
| US9021226B2 (en) * | 2011-06-10 | 2015-04-28 | International Business Machines Corporation | Moving blocks of data between main memory and storage class memory |
| US9116788B2 (en) | 2011-06-10 | 2015-08-25 | International Business Machines Corporation | Using extended asynchronous data mover indirect data address words |
| US9323668B2 (en) | 2011-06-10 | 2016-04-26 | International Business Machines Corporation | Deconfigure storage class memory command |
| US9116634B2 (en) | 2011-06-10 | 2015-08-25 | International Business Machines Corporation | Configure storage class memory command |
| US9021179B2 (en) | 2011-06-10 | 2015-04-28 | International Business Machines Corporation | Store storage class memory information command |
| US9058275B2 (en) * | 2011-06-10 | 2015-06-16 | International Business Machines Corporation | Data returned responsive to executing a start subchannel instruction |
| US9116789B2 (en) | 2011-06-10 | 2015-08-25 | International Business Machines Corporation | Chaining move specification blocks |
| US9058243B2 (en) | 2011-06-10 | 2015-06-16 | International Business Machines Corporation | Releasing blocks of storage class memory |
| CN111432899B (en) | 2017-09-19 | 2022-04-15 | Bae系统控制有限公司 | System and method for managing multi-core access to shared ports |
| CN111559327B (en) * | 2019-02-14 | 2022-05-24 | 华为技术有限公司 | Data processing method and corresponding device |
| KR20220060909A (en) * | 2020-11-05 | 2022-05-12 | 삼성전자주식회사 | Storage system and operating method thereof |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4320455A (en) * | 1978-01-09 | 1982-03-16 | Honeywell Information Systems Inc. | Queue structure for a data processing system |
| US4590554A (en) * | 1982-11-23 | 1986-05-20 | Parallel Computers Systems, Inc. | Backup fault tolerant computer system |
| US4633387A (en) * | 1983-02-25 | 1986-12-30 | International Business Machines Corporation | Load balancing in a multiunit system |
| US4912707A (en) * | 1988-08-23 | 1990-03-27 | International Business Machines Corporation | Checkpoint retry mechanism |
| JPH02287858A (en) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | Restarting system for distributed processing system |
| US5168555A (en) * | 1989-09-06 | 1992-12-01 | Unisys Corporation | Initial program load control |
| US5239649A (en) * | 1989-10-30 | 1993-08-24 | International Business Machines Corporation | Channel path load balancing, through selection of storage volumes to be processed, for long running applications |
-
1993
- 1993-02-02 US US08/012,187 patent/US5459864A/en not_active Expired - Fee Related
-
1994
- 1994-01-14 JP JP6002345A patent/JP2587195B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH06250983A (en) | 1994-09-09 |
| US5459864A (en) | 1995-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2587195B2 (en) | Computer system and method for load balancing or asynchronous data movement | |
| JP3140939B2 (en) | Input / output control system having multiple channel paths to input / output devices | |
| US6802062B1 (en) | System with virtual machine movable between virtual machine systems and control method | |
| US4633387A (en) | Load balancing in a multiunit system | |
| US6321346B1 (en) | External storage | |
| US5940612A (en) | System and method for queuing of tasks in a multiprocessing system | |
| EP0788055B1 (en) | Multipath i/o storage systems with multipath i/o request mechanisms | |
| US5944838A (en) | Method for fast queue restart after redundant I/O path failover | |
| EP0563623B1 (en) | Communicating messages between processors and a coupling facility | |
| US5717942A (en) | Reset for independent partitions within a computer system | |
| JP2566727B2 (en) | Search Method for Reservation Reservation System in Multiprocessing Environment Consisting of Multiple Systems | |
| US5802345A (en) | Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the number of command end interrupts | |
| US7774785B2 (en) | Cluster code management | |
| US8612973B2 (en) | Method and system for handling interrupts within computer system during hardware resource migration | |
| EP3311272B1 (en) | A method of live migration | |
| US4523275A (en) | Cache/disk subsystem with floating entry | |
| US6874040B2 (en) | Employing a data mover to communicate between dynamically selected zones of a central processing complex | |
| JP2001022599A (en) | Fault tolerant system, fault tolerant processing method, and fault tolerant control program recording medium | |
| US5613133A (en) | Microcode loading with continued program execution | |
| US9015717B2 (en) | Method for processing tasks in parallel and selecting a network for communication | |
| US8151028B2 (en) | Information processing apparatus and control method thereof | |
| CN117692305A (en) | Node failover method, device, database system, equipment and media | |
| JP4456084B2 (en) | Control device and firmware active exchange control method thereof | |
| EP0851352B1 (en) | Input/output control device and method applied to fault-resilient computer system | |
| JPH0519179B2 (en) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |