主权项 |
1. A method of executing a Start Subchannel instruction in a computing environment comprising main storage and storage class memory, said method comprising:
based on determining that a subchannel identified by the Start Subchannel instruction is an Asynchronous Data Mover (ADM) subchannel, performing:
obtaining an operation request block from main storage, the operation request block comprising an address of an operation block;based on the address of the operation block, obtaining the operation block from main storage, the operation block consisting of a request block, a response block, and one or more move specification blocks (MSBs), wherein the request block comprises an MSB count field having a value indicating a number of MSBs associated with a request associated with the operation request block, wherein the response block is configured to hold exception conditions, wherein each move specification block is configured to include an operation code field, a block count field, a main storage address field, a storage class memory address field, a block size field and a flags field;for each MSB block of the operation block, obtaining a move specification block of the one or more move specification blocks, and:
determining based on the flags field that the obtained move specification block is configured to obtain a list of one or more indirect data address words, and wherein an address of a first indirect data address word of the list of one or more indirect data address words is located at a first main storage address of the main storage address field of the obtained MSB;for each block of data specified by the obtained MSB, obtaining from the list of one or more indirect data address words a second main storage address, wherein a number of blocks and a block size are determined based on the block count field and the block size field of the obtained MSB;determining based on an operation code of the operation code field in the obtained move specification block that the obtained move specification block is configured to move blocks of data; andbased on the obtained move specification block, moving each block of data between the main storage and the storage class memory, wherein an address of a main storage location used for the move of a block of data is obtained using a respective second main storage address and an address of the storage class memory used for the move is obtained using the storage class memory address field. |