Providing indirect data addressing for a control block at a channel subsystem of an i/o processing system
Abstract
An computer program product, apparatus, and method for facilitating input/output (I/O) processing for an I/O operation at a host computer system configured for communication with a control unit. The computer program product is provided for performing a method including: sending a transport command word (TCW) to an I/O subsystem, the TCW specifying a location address and indicating whether the TCW directly or indirectly addresses a message; extracting the location address from the TCW; obtaining the message from the specified location address based on the TCW indicating direct addressing, the message including the one or more I/O commands; gathering the one or more I/O commands from command locations specified by a list of addresses identified by the specified location address to form the message based on the TCW indicating indirect addressing; and generating a message including the one or more I/O commands.

Term
2.4 yearsto projected expiry
Projected expiry 9 February 2029, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
6 claims: 3 independent, 3 dependent
- 1Claims Zastrzeżenia patentowe 1. Sposób ułatwiania przetwarzania wejścia/wyjścia (I/O) operacji I/O w systemie komputerowym hosta skonfigurowanym do komunikacji z jednostką sterującą, który to sposób obejmuje etapy:A method for facilitating I / O processing of an I / O operation in a host computer system configured to communicate with the control unit, which method comprises the steps of: otrzymywania (1202) przez system komputerowy hosta transportowego słowa rozkazu (TCW) dla operacji I/O, przy czym TCW zawiera adres w polu adresowym (22) określający miejsce bloku sterującego (1000) zawierającego jeden lub większą liczbę rozkazów I/O oraz znacznik w polu znaczników (906) TCW, przy czym znacznik jest ustawiony na pierwszej wartości w celu wskazania bezpośredniego adresu, pod którym znajduje się miejsce bloku sterującego oraz znacznik ten jest ustawiony na drugiej wartości w celu wskazania pośredniego adresu, pod którym znajduje się miejsce listy adresów, które wskazują na liczne miejsca przestrzeni do przechowywania danych, które kolektywnie tworzą blok sterujący;receiving (1202) a command word transport computer (TCW) for an I / O operation, wherein the TCW includes an address in the address field (22) defining the location of the control block (1000) containing one or more I / O instructions and the tag in the tag field (906) of the TCW, the tag being set to the first value to indicate the direct address at which the control block is located, and the tag is set to the second value to indicate the indirect address at which the address list is located, which point to numerous space of data storage space, which collectively form a control block;ekstrakcji (1204) przez system komputerowy hosta adresu oraz znacznika z TCW;pobierania (1208) przez system komputerowy hosta całego bloku sterującego z miejsca określonego w TCW, jeśli znacznik jest ustawiony na pierwszej wartości, zaś jeśli znacznik jest ustawiony na drugiej wartości, pobierania (1210) przez system komputerowy hosta bloku sterującego z licznych miejsc przestrzeni do przechowywania danych, które kolektywnie tworzą blok sterujący;extraction (1204) by the host computer's address system and tag from the TCW;retrieve (1208) by the host computer system of the entire control block from the location specified in the TCW, if the tag is set to the first value, and if the tag is set to the second download value (1210) by the host control computer host system from multiple storage space data that collectively form a control block;opening the host exchange system with a control unit and a redirection (1212) of a control block including one or more I / O instructions to the control unit for execution;otwierania przez system hosta wymiany z jednostką sterującą i przekierowywania (1212) bloku sterującego zawierającego jeden lub większą liczbę rozkazów I/O do jednostki sterującej w celu wykonania;przy czym system hosta odbiera (506) dane z jednostki sterującej, gdy jeden ze wspomnianych rozkazów I/O jest rozkazem odczytu i wysyła dane do jednostki sterującej, gdy jeden ze wspomnianych rozkazów I/O jest rozkazem zapisu;odbierania przez system hosta z jednostki sterującej sygnału zamykającego wymianę;a także w którym tylko jedna wymiana jest otwarta (504) i zamknięta (508) pomiędzy jednostką sterującą a systemem komputerowym hosta dla transferu (504) jednego lub większej liczby rozkazów I/O bloku sterującego oraz dla transferu (506) danych stowarzyszonych z takimi rozkazami z systemu komputerowego hosta do jednostki sterującej. wherein the host system receives (506) data from the control unit when one of said I / O instructions is a read command and sends data to the control unit when one of said I / O instructions is a write command;receiving by the host system from the control unit the signal closing the exchange;and wherein only one exchange is open (504) and closed (508) between the control unit and the host computer system for transfer (504) one or more control I / O instructions and for the transfer (506) of the data associated with such instructions. from the host computer system to the control unit.
- 5A system comprising means adapted to perform all the steps of the method according to any of the preceding method claims. 5. System zawierający środki przystosowane do wykonywania wszystkich etapów sposobu według dowolnego z poprzednich zastrzeżeń sposobu.
- 6A computer program comprising instructions for performing all the steps of the method according to any preceding method claim, when said computer program is executed on a computer system. 6. Program komputerowy zawierający instrukcje służące do wykonania wszystkich etapów sposobu według dowolnego z poprzednich zastrzeżeń sposobu, gdy wspomniany program komputerowy jest wykonywany na systemie komputerowym. Authorized by:International Business Machines Corporation Uprawniony: International Business Machines Corporation Pełnomocnik: Proxy: Irena Rachubik, MSc Eng mgr inż Irena Rachubik Patent Attorney Rzecznik patentowy FIG. 4 FIG. 4 FIG. 6 FIG. 6 STAN TECHNIKI STATE OF TECHNOLOGY FIG. 7 FIG. 7 FIG. 9 Λ Λ FIG. 9Λ Λ FIG. 11 1_7 FIG. 111_7 DOCUMENTS CONTAINED IN THE DESCRIPTION DOKUMENTY PRZEDSTAWIONE W OPISIE Ta lista dokumentów przedstawionych przez Zgłaszającego została przyjęta jedynie dla informacji czytającego i nie jest częścią składową europejskiego opisu patentowego. This list of documents submitted by the Applicant has been accepted only for the reader's information and is not part of the European patent specification. It was created with great care;However, the European Patent Office can not be held liable for any errors or omissions. Została ona utworzona z dużą starannością;Europejski Urząd Patentowy nie ponosi jednak żadnej odpowiedzialności za ewentualne błędy i braki. Dokumenty patentowe przedstawione w opisie • US 7124207 B1 [0008] • US 5526484 A [0024] • GB 2291990 A [0009] • US 20080043563 A [0025] • US 5461721 A [0024] Patent documents described in the description • US 7124207 B1 [0008] • US 5526484 A [0024] • GB 2291990 A [0009] • US 20080043563 A [0025] • US 5461721 A [0024] Dokumenty niepatentowe przedstawione w opisie • IBM® z/Architecture Principles of Operation. April Non-patent documents presented in the description • IBM® z / Architecture Principles of Operation. april 2007 [0024] • Fiber Channel Single Byte Command Code Sets-3 2007 [0024] • Fibre Channel Single Byte Command Code Sets-3 Mapping Protocol. FC-SB-3), T11 / Project Mapping Protocol. FC-SB-3), T11/Project 1357-D / Rev. 1.6, INCITS, March 2003 [0027] • Information Technology - Fiber Channel Protocol for 1357-D/Rev. 1.6, INCITS, March 2003 [0027] • Information Technology - Fibre Channel Protocol for SCSI, Third Version (FCP-3. T10 Project SCSI, Third Version (FCP-3. T10 Project 1560-D, 13 1560-D, 13 September 2005 [0033] September 2005 [0033]
Independent claims3
80 paragraphs, as filed
The present disclosure generally relates to input / output (I / O) processing, and more particularly to providing indirect addressing of data for a control block in a channel subsystem of an I / O processing system.
BACKGROUND OF THE INVENTION [0002] Input / output (I / O) operations are used to communicate data between memory and I / O devices of an I / O processing system. In particular, the data is transcribed from memory to one or more I / O devices and the data is read from one or more I / O devices into memory by performing I / O operations.
[0003] In order to facilitate the processing of the I / O operation, the I / O processing system subsystem is used. The I / O subsystem is connected to the main memory and I / O devices of the I / O processing system and directs the flow of information between the memory and the I / O devices. One example of an I / O subsystem is a channel subsystem.
The channel subsystem uses channel paths as a means of communication.
Each channel path includes a channel connected to the control unit, wherein the control unit is further connected to one or more I / O devices. [0004] The channel subsystem may use channel command words (CCW) to communicate data between I / O devices and the memory. The word CCW specifies the I / O order to execute. For commands initiating some I / O operations, the word CCW means the memory area associated with this operation, the action to be taken as soon as the transfer to or from this area is completed, and other options.
[0005] During the I / O processing, a list of words CCW is taken from memory by the channel. The channel analyzes each order from the CCW word list and directs a number of commands, with each command in its own unit, to the control unit connected to the channel. The control unit then processes commands.
The channel tracks the status of each command and controls when the next set of commands is to be sent to the control unit for processing. The channel ensures that each command is sent to the control unit in its own unit. In addition, the channel requests some federated information to process the response from the control unit for each command.
[0006] Performing an I / O processing based on the CCW word may involve a large amount of overhead processing for the channel subsystem, as the channels parse CCW words, track status information, and respond to responses from the control units. Therefore, it may be advantageous to shift a large part of the processing load associated with the interpretation and management of the CCW and status information from the channel subsystem to the control units.
The simplification of the role of channels in communication between control units and the operating system in the I / O processing system may increase communication capacity, as fewer arrangements are made. Simplifying the role of channels in communication can include grouping of multiple commands in a single I / O operation. Changing the order sequence by grouping two or more instructions together in a single I / O operation results in a larger data area required for storing instructions and a data area whose length varies depending on the size and number of instructions that are grouped in a single I operation /ABOUT.
[0007] Currently, a single I / O operation can support a single command data area of a fixed size, which is determined by a single direct address. This limits the number of instructions that can be grouped together in a single I / O operation, and thus limits the increase in bandwidth that can be obtained by grouping instructions. In addition, this limits the way orders are stored in an adjacent storage area. Performance can be improved by placing orders in a variety of locations. According to what has been said,
[0008] US B1 7124207 discloses an apparatus suitable for indirectly addressing data for a control block in a host computer system.
[0009] GB A 2291990 discloses that the direct and indirect addressing modes are well-known alternatives.
SUMMARY OF THE INVENTION [0010] The invention is a method as claimed in claim 1 and a corresponding system and computer program.
BRIEF DESCRIPTION OF THE DRAWINGS [0011] An object that is considered to be an invention is particularly defined and explicitly claimed in the claims at the end of the description. The foregoing and other objects, features and advantages of the invention are evident from the following detailed description read together with the attached drawings, in which:
FIG. 1 shows one embodiment of an I / O processing system comprising and using one or more aspects of the present invention;
FIG. 2A illustrates one example of a channel instruction word from prior art; FIG. 2B depicts one example of a prior art command channel channel program;
FIG. 3 depicts one embodiment of a prior art link protocol used in communication between a channel and a control unit to perform the channel instruction word channel program of FIG. 2B;
figure 4 illustrates one embodiment of a control word channel (TCW) program according to an embodiment of the present invention; Figure 5 illustrates one embodiment of a link protocol used to communicate between a channel and a control unit for executing the TCW channel program of Figure 4, in accordance with an embodiment of the present invention; FIG. 6 depicts one embodiment of a prior art link protocol used to communicate between a channel and a control unit to perform four instructions to read a channel command channel language program; FIG. 7 illustrates one embodiment of a link protocol used to communicate between a channel and a control unit to perform processing of four read TCW channel program instructions, in accordance with an embodiment of the present invention;
figure 8 shows one embodiment of a control unit and a channel subsystem according to an embodiment of the present invention;
figure 9 shows one embodiment of a TCW according to an embodiment of the present invention;
Figure 10 illustrates one embodiment of a TCCB according to an embodiment of the present invention;
Figure 11 illustrates one embodiment of a TCW channel program according to an aspect of the present invention;
Figure 12 depicts one embodiment of a process for providing indirect data addressing for a control block; and Figure 13 illustrates one embodiment of a manufactured article comprising one or more features of the present invention.
[0012] The detailed description explains preferred embodiments of the invention, along with the advantages and properties, as an example with reference to the drawings.
DETAILED DESCRIPTION OF THE INVENTION [0013] According to an aspect of the present invention, the input / output (I / O) is facilitated by allowing a plurality of instructions forming a single I / O operation to be stored in a discontinuous storage space. Depending on factors such as the number of instructions and the amount of associated control data, the length of the required data storage space can vary from one I / O to the other I / O. An embodiment of the present invention uses a list of intermediate addresses to collect command data to be sent to the control unit as part of a single I / O operation. This facilitates I / O processing by reducing communication between components of the I / O processing system used to perform I / O processing.
For example, the number of exchanges and sequences between an I / O communications adapter, such as for example a channel, and a control unit, is reduced. This is achieved by sending numerous commands from the I / O communication adapter to the control unit in the form of a single unit for execution by the control unit.
[0014] Numerous instructions (e.g., device command words or "DCW words") are included in a block, referred to herein as a transport command control block (TCCB) whose address (direct or indirect) is specified in the transport control word (TCW). In an embodiment, the TCW is sent from an operating system (OS) or other application to an I / O communications adapter, which in turn directs
TCCB in the command message to the control unit for processing.
The control unit processes each command without tracking the status with respect to these individual commands by the I / O communication adapter. A series of instructions is also referred to as a channel program that is parsed and executed on the control unit rather than on the I / O communication adapter.
One example of an I / O processing system comprising and using one or more embodiments of the present invention is described with reference to Figure 1. The I / O processing system 100 includes a host system 101 that further includes e.g. a main memory 102, one or more of them. the number of processing central processing units (CPUs) 104, the storage control element 106 of the data storage space, and the channel subsystem 108. The host system 101 may be a large-scale computing system, such as a host computer or a server. The I / O processing system 100 also includes one or more control units 110 and one or more I / O devices 112, each of which is described below.
[0016] The main memory 102 stores data and programs that can be input from I / O devices 112. For example, the main memory 102 may include one or more operating systems (OS) 103 that are executed by one or more CPUs 104. For example, one CPU 104 can implement a Linux® operating system
103 and the z / OS ® 103 operating system as various virtual machine cases. The main memory 102 can be addressed directly and is used for fast data processing by the CPU 104 and the channel subsystem 108.
[0017] The CPU 104 is the control center of the I / O processing system 100. It comprises sequencing and processing facilities for executing instructions, interrupts, timing functions, pre-loading of the program, and other machine functions. The CPU 104 is connected to the data storage control element 106 via a connection 104, such as a bi-directional or unidirectional bus.
[0018] The data storage control element 106 is connected to the main memory 102 via a connection 116, for example a bus; from the CPU
104 via connection 114; and also with the channel subsystem 108 via the connection 118. The storage control element 106 controls e.g. queuing and executing requests created by one or more CPUs 104 and channel subsystem 108.
[0019] In an exemplary embodiment, the channel subsystem 108 creates a communication interface between the host system 101 and the control units 110. The channel subsystem 108 is connected to the data storage control element 106 as described above, and to each of the central units. 110 via a connection 120, such as a serial interface, for example. Connection 120 may be implemented in any manner known in the art, including optical connector, use of singlemode or multimode waveguides in a Fiber Channel fabric configuration (e.g., fiber channel). The channel subsystem 108 directs the flow of information between the I / O devices 112 and the main memory 102. It frees the CPU 104 from the task of direct communication with I / O devices 112 and allows to perform data processing simultaneously with I / O processing. Channel subsystem 108 uses one or more channel paths 122 as communication links in managing information flow to or from I / O devices 112. As part of the I / O processing, channel subsystem 108 also performs path management functions that test channel channel availability, selecting the available channel path 122 and starting to operate with the I / O devices 112.
[0020] Each channel path 122 includes a channel 124 (channels 124 are located within the channel subsystem 108, in one example, as shown in Figure 1), one or more control units 110 and one or more connections 120 In another example, the presence of one or more dynamic switches (not shown) as part of the channel path 122 is also possible. A dynamic switch may be connected to the channel 124 and the control unit 110 that allows the physical interconnection of any two connectors that are connected to the switch. In another example, it is also possible to have numerous systems and therefore numerous channel subsystems (not shown) connected to one or more of the control units 110. Within the channel subsystem 108, subchannels (not shown) are also located. One sub-channel is intended and dedicated to each I / O device 112 available to the program via the channel subsystem 108. A subchannel (e.g., a data structure, such as a table) provides a logical appearance of the device to the program. Each sub-channel provides information about the associated I / O device 112 and its connection to the channel subsystem 108. The subchannel also provides information regarding the I / O operation and other functions associated with the associated I / O device 112. The sub-channel is a means by which the subsystem channel 108 provides information about the associated I / O devices 112 to the CPUs 104 that receive this information by executing the I / O instructions.
The channel subsystem 108 is connected to one or more control units 110. Each control unit 110 provides logic to control and control one or more I / O devices 112 and adjusts, through common facilities, the characteristics of each device I /. At 112 to a link interface provided by channel 124. Common devices are used to perform I / O operations, status indications of I / O device 112 and control unit 110, timing data transfer control along channel path 122 and certain I / O device control levels 112 .
Each control unit 110 is connected via a connection 126 (e.g. a bus) to one or more I / O devices 112. The I / O devices 112 receive information or store information in main memory 1102 and / or other memory. Examples of I / O devices 112 include card readers and perforators, magnetic tape units, storage devices for direct access data, displays, keyboards, printers, telemetry devices, communication controllers, and sensor-based equipment, mentioning only a few.
[0024] One or more of the above components of the I / O processing system 100 is further described in "IBM® z / Architecture Principles of Operation", publication number SA22-7832-05, 6th edition, April 2007; U.S. Pat. No. 5,461,721 under the title "System For Transferring Data Between I / O Devices And Main Or Expanded Storage Under The Dynamic Control Of Independent Indirect Address Words (IDAWS)", Cormier et al., issued October 24, 1995; and U.S. Patent 5,526,484, entitled "Method and System For Pipelining The Processing Of Channel Command Words", Casper et al., issued June 11, 1996. IBM is a registered trademark of International Business Machines Corporation, Armonk, New York, USA. Other names used here may be registered trademarks,
[0025] In one embodiment, to transfer data between I / O devices 112 and memory 102, channel command words (CCW) are used. The word CCW specifies the order to be executed and contains other fields for processing control. One example of the word CCW is described with reference to Figure 2A. The word CCW 200 includes, for example, a command code 202, specifying an order to execute (e.g. read, reverse read, check, measure and record); a number of 204 tags used to control I / O operations; for commands that specify data transfer, a counter field 206 that specifies a number of bytes in the data storage space designated by the word CCW 200 for transfer; and a data address 208 that indicates a location in the main memory that contains data, when using direct addressing or to a list (e.g. a compact list) of modified intermediate address data words (MIDAWs) to be processed when modified indirect addressing of data is used. The modified indirect addressing is further described in published US Patent Application No. 2008/0043563, entitled "Flexibly Controlling The Transfer Of Data Between Devices Input / Output Devices", Brice and others, filed August 15, 2006.
[0026] One or more CCW words arranged in a sequential execution form a channel program, also referred to herein as a CCW channel program. The CCW channel program is set, for example, by the operating system or other software. The software sets up the words CCW and receives the memory addresses assigned to the channel program. An example of a CCW channel program is described with reference to Figure 2B. The CCW 210 channel program includes, for example, a command to define a word range CCW 212 that includes a pointer 214 to a location in the data memory 216 of the command to define the range to be used together with the command to define the range. In this example, the channel transfer (TIC) 218 follows the define scope command, which command directs the channel program to another area in memory (e.g. the application area), which contains one or more CCW words, e.g. locate a record 217 that has a pointer of 219 to a command location location to locate a record 220, and one or more instructions read CCW 221. Each read CCW 221 has a pointer 222 to the data area 224 The data area includes an address for direct data access or a list of data address words (e.g. MIDAW or IDAW) for indirect data access. In addition, the channel program CCW 210 includes a predetermined area in the channel subsystem defined by the device address, referred to as sub-channel for status 226 resulting from the execution of the channel program CCW. [0027] The processing of the CCW channel program has been described with reference to Figure 3, as well as with reference to Figure 2B. In particular, figure 3 shows an example of various exchanges and sequences, which occur between the channel and the control unit when the CCW channel program is executed. The link protocol used for communication is in this example FICON (Fiber Connectivity). Information on FICON is described in "Fiber Channel Single Byte Command Code Sets- 3 Mapping Protocol" (FC-SB-3), T11 / Project 1357-D / Rev. 1.6, INCITS (March 2003).
Referring to figure 3, the channel 300 opens the exchange with the control unit 302 and sends the command to define the range and associated data 304 to the control unit 302. This command is extracted from the word CCW to define the range 212 (figure 2B), and data is obtained from the data area 216 of the command to define the range. Channel 300 uses TIC 218 to locate the command locate the record and read the CCW. He takes the order locate the record 305 (figure 3) from the word CCW locate the record 217 (figure 2B) and receives data from the command data to locate the record 220. The read command 306 (figure 3) is taken from the word CCW read 221 (figure 2B). Each of them is sent to control unit 302.
The control unit 302 opens the exchange 308 with the channel 300 in response to the open exchange of the channel 300. This may occur before or after the order locate 305 and / or the read instruction 306. With the open exchange, a response is addressed to the channel 300 (CMR) . The CMR response gives an indication for channel 300 that the control unit 302 is active and operating.
[0030] The control unit 302 sends the requested data 310 to the channel 300. In addition, the control unit 302 provides status to the channel 300 and closes the exchange 312. In response, the channel 300 stores data, examines the status and closes the exchange 314, which indicates the control unit 302 that the status has been received.
[0031] Processing of the above CCW channel program to read 4k data requires opening and closing of two exchanges and seven sequences. The total number of exchanges and sequences between the channel and the control unit is reduced by submitting multiple channel program commands to the TCCB. A channel, e.g., channel 124 of FIG. 1, uses TCW to identify the TCCB site as well as locations for access and storage of status and data associated with the execution of the channel program. The TCW is interpreted by channel 124 and is not sent or seen by the control unit 110.
[0032] One example of a 4k data channel program is found in figure 2B, but one that contains TCCB instead of separate individual CCW words is described with reference to figure 4. As shown, channel program 400, referred to herein as a program the TCW channel, includes a TCW 402 defining the memory location of the TCCB 404, as well as storage space in the data area 406 or TIDAL 410 (i.e., a list of intermediate transport data (TIDAW) words similar to MIDAW) that points to the data area 406 and status area 408.
[0033] The processing of the TCW channel program is described with reference to Figure 5. The link protocol used for these communications is, for example, Fiber Channel Protocol (FCP). Specifically, three FCP link protocol phases are used that allow the use of host bus adapters that support FCP to perform data transfers controlled by CCW words. The FCP protocol and its phases are also described in the "Information Technology - Fiber Channel Protocol for SCSI",
Third Version (FCP-3), "T10 Project 1560-D, Revision 4, September 13, 2005.
Referring to figure 5, channel 500 opens exchange with control unit 502 and sends TCCB 504 to control unit 502. In one example, TCCB 504 and sequence initiative are transferred to control unit 502 in an FCP instruction, referred to as an information unit (IU) ) FCP_CMND or IU of the transport order. The control unit 502 performs a plurality of TCCB 504 commands (e.g., define a range command, locate a record, read command in the form of device control words (DCW), and route data 506 to channel 500, e.g. via IU FCP_Data.) It also provides status and closes the exchange 508. As one example, the final status is sent in the FCP status frame which has an active bit, e.g. in byte 10 or 11 of the FCU_RSP IU data block, also referred to as the transport response IU.
In another example, to store 4k user data 4, the channel 500 uses the FCP link protocol phases as follows:
1. Transfer of TCCB to FCP_CMND IU.
2. Transfer of data IU and sequence initiatives to control unit 502. (FCP Transfer Ready Disabled).
3. The final status is sent in the FCP status frame, which has an active bit, for example in byte 10 or 11 of the FCP_ RSP IU data block. The FCP_RES_INFO field or the measurement field is used to transport the final FICON status together with additional status information.
[0036] By executing the TCW channel program of figure 4, only one exchange is opened and closed (see also figure 5), instead of two exchanges for the CCW channel program of figure 2B (see also figure 3). In addition, three communication sequences are present for the TCW channel program (see Figures 4-5) compared to the seven sequences for the CCW channel program (see Figures 2B-3).
[0037] The number of exchanges and sequences remains the same for the TCW channel program even if additional commands are added to the program. Compare, for example, the communications of the CCW channel program of FIG. 6 with the TCW channel program messages of FIG. 7. In the CCW channel program of FIG. 6, each command (e.g., command, define command 600, order locate record 601, read command 602, read command 604, read command 606, command locate record 607 and read command 608) is sent in separate sequences from channel 610 to control unit 612. Furthermore, each data block 4k (e.g. data 614- 620) is sent in separate sequences from control unit 612 to the channel 610. This CCW channel program requires opening and closing two exchanges (e.g., opening 622, 624 and 626 interchange exchanges, 628) and fourteen communication sequences. This is compared with the three sequences and one replacement for the TCW channel program of figure 7, which performs the same task as the CCW channel program of figure 6.
[0038] As shown in Figure 7, the channel 700 opens the exchange with the control unit 702 and sends the TCCB 704 to the control unit 702. The TCCB 704 includes a command to define the range and two instructions to locate the record, and four instructions to read in the words DCW as described above. In response to receiving the TCCB 704, the control unit 702 executes the commands and sends, in a single sequence, 16k data 706 to channel 700. In addition, the control unit 702 provides status to channel 700 and closes the exchange 708. Thus, the TCW channel program requires significantly less communication in order to transfer the same amount of data as the CCW channel program in figure 6.
[0039] Turning now to Figure 8, one embodiment of the channel 124 in the channel subsystem 108 and the control unit 110 of figure 1 that support the execution of the TCW channel program are shown in more detail. The control unit 110 includes a control logic of the control unit 802 for parsing and processing instruction messages comprising the TCCB, such as TCCB 704 of Figure 7, received from the channel 124 via the connection 120. The control logic of the control unit 802 may extract the words DCW. and control data from the TCCB received by the control unit 110 to control the device, e.g. I / O device 112 via connection 126.
For example, the register located in the control unit 110 may include a maximum exchange parameter of the control unit that defines the maximum number of open exchanges of the control unit that the control unit 110 supports.
Channel 124 in channel subsystem 108 includes means to promote communication with control unit 110. In an embodiment, control channel logic 806 controls communication between channel subsystem 108 and control unit 110. Control channel logic 806 may directly connect with the control logic of the control unit 802 via the connection 120 to send orders and receive responses, such as, for example, the IUs of the transport and response commands. Optionally, message and / or buffer interfaces (not shown) may be located between the control logic of the channel 806 and the control logic of the control unit 802.
[0042] An embodiment of the transport control word (TCW) 900 is shown in Figure 9. The TCW 900 is used by the channel 124 for setting the I / O operation and is not sent to the control unit 110. The TCW shown in Figure 9 is for indirect addressing. TCCB by using the TCCB TIDAL tag and the TCCB address.
[0043] In the example TCW 900 shown in figure 9, a format field 902 equal to "00b" indicates that the following is TCW 900. The TCW 900 also includes reserved bits 904 for possible future use.
[0044] The TCW 900 also includes a tag field 906. The first five bits of tag field 906 are reserved for future use and have a set value of zero. The sixth bit of the 906 tag field is the TIDAL read tag. In the exemplary embodiment, the TIDAL read tag is set (i.e., it is one) when the address input field 918 contains a TIDAL address. If the TIDAL read tag is reset (for example to zero), then the input data address field 918 contains the data address. The seventh bit of the 906 tag field is the TCCB TIDAL tag. In an embodiment, the TCCB TIDAL flag is set to one when the TCCB address field 922 contains the TIDAL address. If the TCCB TIDAL flag is set to zero, then the TCCB address field 922 directly addresses the TCCB. The TCCB TIDAL tag allows the operating system software or hypervisor to layer the function and prefix of user channel programs. The eighth bit of the 906 tag field is the TIDAL save tag. In the exemplary embodiment, the TIDAL flag is set to one when the address field 916 of the output contains the TIDAL address. If the save TIDAL flag is set to zero, then the address field 916 of the output data contains the data address.
[0045] The bits from the ninth to the twenty-fourth marker field 906 are reserved for future use.
[0046] The TCW 900 also includes a length field 910 TCCB, which indirectly represents the length of the TCCB and can be used to determine the actual length of the TCCB. [0047] The read / write bits 912 in the TCW 900 are used to indicate whether data is read and / or written as a result of the TCW. In an embodiment, the bit reading in read / write bits 912 is set to one to indicate that the input data is transferred from the I / O device 112 to the system data storage space (e.g. main memory 102) in the host system 101 as a result. performance of TCW 900. The bit of the write among bits read / write 912 is set to one to indicate
[0048] The output address field 916 contains an address for the output data (if any). As previously described, the content of the output address field 916 may be the TIDAL address for the output data or the actual address of the output data. The input data field 918 contains the address for the input data (if any). As previously described, the content of the input address field 918 may be the TIDAL address for the input data or the actual address of the input data. In an embodiment, the address field 916 of the output data and the address input field 918 are implemented in the form of sixty-bit addresses.
[0049] The TCW 900 also includes an address field 920 of the transport status block. The part (e.g. extended status portion) of the full status in the transport response information unit for I / O work is stored at this address. TCCB address field 922 in TCW 900 contains the address where the TCCB is located in the data storage system. As previously described, the TCCB is a control block in which the DCW words to be provided for TCW 900 are provided. Similarly, as previously described, the content of TCCB address field 922 may be the TCID address TIDAL or the actual TCCB address . In an embodiment, the address field 920 of the transport status block and the TCCB address field 922 are implemented in the form of sixty-bit addresses. [0050] The output field of the counter 924 in the TCW 900 indicates the amount of output data to be transferred by the TCW / TCCB for the output operation. In an embodiment, the output counter field 924 specifies the number of bytes in the output storage space determined by the TCW (output address data 916) for the transfer. The input field of the 926 meter in the TCW 900 indicates the amount of input data to be transferred by the TCW / TCCB for the input operation. In an embodiment, the input counter field 926 specifies the number of bytes in the input storage space defined by the TCW (input address 918) to be transferred. Several additional fields in the TCW 900 are reserved: reserved field 928, reserved field 930 and reserved field 932.
[0051] The TCW depicted in Figure 9 is one example of a configuration of a command word. Other configurations are possible in which additional fields are included and / or the fields shown in Figure 9 are not included.
[0052] Figure 10 depicts one embodiment of the TCCB 1000 according to embodiments of the present invention. The TCCB 100 of Figure 10 is located at the address indicated by the TCCB address field 922 in TCW 900. The address may be a direct address or an indirect address allowing the TCCB 1000 content to be positioned in one location in the data storage space or arranged in a plurality of locations. neighboring places in the storage space. As previously described, the TCCB 1000 is a control block built up by the software, and then the channel 124 sends it to the control unit 110 (e.g. in the Transport Command_IU) for execution. The TCCB 1000 includes instructions to be executed by the control unit 110 and any control data required by the orders.
[0053] The TCCB 1000 includes a transport control area header (TCAH) 1002, which in the embodiment includes information about the transport control area (TCA) 1004 and the operation within the TCA 1004 area (e.g. length, service code). In an embodiment, the TCAH header 1002 includes a format check field for specifying information such as a TCCB format (e.g. a variable length CDB format), a mode associated with the TCCB (e.g., transport mode), service operation codes set outside the application as unique seller code points. , as well as a field to provide the priority control unit according to which this TCCB 1000 should be performed.
[0054] The TCCB 1000 shown in Figure 10 also includes a variable length TCA 1004 area that includes one or more DCW 1006 words and corresponding control data 1008, if any, for each word DCW 1006. DCW control data 1008 may have different length. In an embodiment, each word DCW 1006 includes a command code, tags (string), length of control data, and length of read / write data. DCW control data 1008 are optional (depending on the word DCW 1006) and contain control parameters for its respective word DCW 1006. For example, DCW control data 1008 can include instruction parameters to define range and / or prefix parameters.
[0055] In addition, the TCCB 1000 includes a TCA termination (TCAT) 1010 that includes data such as the number of bytes to be transferred in the TCCB 1000 and a control word field for checking the consistency of the TCCB 1000.
[0056] Figure 11 depicts one embodiment of the channel program TCW 1100, according to an aspect of the present invention. As shown in Figure 11, the channel program TCW 1100 includes a TCW 1102 defining a location in the memory of TCCB 1104 or TIDAL 1112 (i.e., a list of intermediate data address words (TIDAW)) which indicates the location for TCCB 1104. Furthermore, the exemplary channel program 1100 shown in Figure 11 includes storage space in the input data area 1106 or TIDAL 1110 that indicates the input data area 1106 and the status area 1108.
[0057] Figure 12 depicts one example of a method for providing indirect data addressing for a control block (e.g. TCCB) according to an embodiment of the present invention. In an embodiment, the processing depicted in FIG. 12 is performed in a host computer system that is networked with the control unit. The host computer system may include an I / O processing system that executes the process. In addition, the I / O processing system may include a channel subsystem that executes the process. In block 1202, the host computer receives TCW. In an embodiment, the TCW is received (or received) from an operating system running on a host computer. The TCW contains the TCCB 922 address and the TCCB tag
The TIDAL located in the tag field 906. In block 1204, the address TCCB 922 and the TIDAL TCCB tags are extracted from the TCW.
[0058] Block 1206 determines if the TCCB TIDAL flag is set. If the TCCB TIDAL flag is set, then the address of the TCCB 922 block is the intermediate data address and the process continues in block 1210. In block 1210, TCCB is collected from the location specified by TCW. Because the address is an indirect address, the TCCB 922 address contains the TIDAL address. TIDAL contains a list of addresses that point to the many spaces in the data storage space that collectively form TCCB. The process is continued then in block 1212.
If TCCB TIDAL is not set as found in block 1206, then the TCCB address 922 is a direct data address and the process continues in block 1208. In block 1208, the TCCB is retrieved from the location determined by the word channel program TCW. Because this address is a direct address, the TCCB is located at the address specified by the address TCCB 922. The process is then continued in block 1212.
[0060] In block 1212, an I / O operation including TCCB is directed to the control unit for execution.
[0061] Technical effects of the embodiments include the ability to disperse TCCB between non-adjacent data storage spaces. This can lead to improved performance due to the ability to easily add content to the TCCB and due to reduced content for individual storage space areas. The technical effects also include the ability to use a variable length TCCB, allowing flexibility in grouping orders to be transmitted to the control unit.
[0062] According to what has been described above, the embodiments may be implemented in the form of computer-implemented processes and devices for carrying out these processes. In embodiments, the invention is implemented in the form of a computer program code executed by one or more network elements. Exemplary embodiments include a computer program product 1300, shown in Figure 13, on a usable computer disk 1302 with the logical content 1304 of a computer program code including instructions implemented in a particular medium, such as the product being manufactured. Examples of manufactured products intended as a usable computer medium 1302 may include floppy disks, CD ROMs, hard disks, flash drives operating on a universal serial bus (USB) or any other computer-readable data storage medium, where the logical content of computer program code 1304 is loaded into and executed by a computer, then the computer becomes a device for implementing the invention . Embodiments include the logical content 1304 of a computer program code, e.g. whether it is stored on a data storage medium, loaded into the interior and / or executed by a computer, whether transmitted via some transmission medium, such as after launching a dump or electrical wiring, through optical fibers or electromagnetic radiation, wherein when the logical content 1304 of the computer program code is loaded into a computer and executed by the computer, the computer becomes a device for carrying out the invention. Once implemented on a general-purpose microprocessor, logical body code segments 1304 of the computer program code configure the microprocessor to create specific logic circuits.
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
8 priority claims, no other members on record
Priority claims8
| Document | Office | Kind | Date |
|---|---|---|---|
| 3120108 | United States of America | A | |
| 3120108 | United States of America | A | |
| 09710800 | European Patent Office (EPO) | A | |
| 2009051462 | European Patent Office (EPO) | W | |
| 2009051462 | European Patent Office (EPO) | W | |
| EP20090710800 | – | – | – |
| US20080031201 | – | – | – |
| WO2009EP51462 | – | – | – |
Numbers
- Publication, DOCDB
- 2245545
- Publication, EPODOC
- PL2245545T
- Application
- 710800
- Application, DOCDB
- 09710800
- Application, EPODOC
- PL20090710800T
Titles2
- English
- PROVIDING INDIRECT DATA ADDRESSING FOR A CONTROL BLOCK AT A CHANNEL SUBSYSTEM OF AN I/O PROCESSING SYSTEM
- Polish
- Dostarczenie adresowania pośredniego danych dla bloku sterującego w podsystemie kanałowym systemu przetwarzania wejścia/wyjścia
Classification
- CPC, 4
- G06F3/0659
- G06F13/385
- G06F3/061
- G06F13/126
- IPC, 2
- G06F13 38
- G06F3 06