Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
562 words
A method of controlling a hardware data move facility (ADMF) by user programs in a data processing system containing a main memory and an extended memory, both memories being made of electronic technology media, said system including one or more central processors (CPUs), and said ADMF containing one or more ADMF processors, said method handling multiple concurrent requests from independent user programs to an operating system (OS) for services of said ADMF comprising the steps of providing ADMF requests in user programs to said OS, each ADMF request, including: a page move table containing one or more data move specifications for moving data between two virtual address spaces, each data move specification containing a source virtual address and a destination virtual address for specifying locations of data to be moved for said ADMF request, and a parameter control list containing a backing indicator for signalling whether said virtual address spaces are backed by data on said same or different media, and a direction indicator for signalling a direction of data transfer relative to one of said address spaces, processing each user request by: building an ADMF operation control block (AOB) by encapsulating said parameter control list and said page move table into a predetermined format of fields to provide an application-software-to-ADMF interface for each user program ADMF request, assigning an ADM request element (ARE) to said ADMF request and writing in said ARE an AOB pointer for locating said AOB in main memory to associate said ARE with said AOB, and chaining said ARE in an ARE queue containing currently uncompleted ADMF/OS requests, providing an ADMF unit control block (UCB) containing a subchannel identifier for identifying a subchannel associated with said ADMF and writing an ARE pointer in said ADMF UCB for with said UCB to locate said ARE and for associating said UCB with said ARE and with said AOB located by said AOB pointer written in said ARE, said UCB representing said ADMF request to said ADMF subchannel identified therein without associating said subchannel with a particular ADMF processor, chaining said UCB and ARE into an ADMF/OS queue containing an ADMF/OS queue header in said main memory by addressing said UCB and ARE through said ADMF/OS queue header, executing said method on a CPU to provide said application-to-ADMF interface utilizing said ADMF/OS queue for receiving and holding user program requests for ADM work and for transmitting said ADMF work requests from said ADMF/OS queue to an ADMF work queue in said ADMF, in which said OS is: issuing each ADMF work request from said ADMF/OS queue by taking a UCB and an ARE addressed by said UCB from said ADMF/OS queue, and performing the step of: forming an operation request block (ORB) as an operand of a start subchannel (SSCH) instruction and writing in said ORB said address of said AOB, executing said SSCH instruction by said OS to put said subchannel identified in said operand of said SSCH instruction on said ADMF work queue in said ADMF for providing an OS-to-ADMF interface for said ADMF request, and moving data for said ADMF request by said ADMF using any available ADMF co-processor to access said AOB for obtaining said data move specifications for identifying source and destination virtual address spaces and locating source and destination virtual addresses in said virtual address spaces to control movement of data between said locations.
Claim 2
Independent Claim
562 words
A method of controlling a hardware data move facility (ADMF) by user programs in a data processing system containing a main memory and an extended memory, both memories being made of electronic technology media, said system including one or more central processors (CPUs), and said ADMF containing one or more ADMF processors, said method handling multiple concurrent requests from independent user programs to an operating system (OS) for services of said ADMF comprising the steps of providing ADMF requests in user programs to said OS, each ADMF request, including: a page move table containing one or more data move specifications for moving data between two virtual address spaces, each data move specification containing a source virtual address and a destination virtual address for specifying locations of data to be moved for said ADMF request, and a parameter control list containing a backing indicator for signalling whether said virtual address spaces are backed by data on said same or different media, and a direction indicator for signalling a direction of data transfer relative to one of said address spaces, processing each user request by: building an ADMF operation control block (AOB) by encapsulating said parameter control list and said page move table into a predetermined format of fields to provide an application-software-to-ADMF interface for each user program ADMF request, assigning an ADM request element (ARE) to said ADMF request and writing in said ARE an AOB pointer for locating said AOB in main memory to associate said ARE with said AOB, and chaining said ARE in an ARE queue containing currently uncompleted ADMF/OS requests, providing an ADMF unit control block (UCB) containing a subchannel identifier for identifying a subchannel associated with said ADMF and writing an ARE pointer in said ADMF UCB for with said UCB to locate said ARE and for associating said UCB with said ARE and with said AOB located by said AOB pointer written in said ARE, said UCB representing said ADMF request to said ADMF subchannel identified therein without associating said subchannel with a particular ADMF processor, chaining said UCB and ARE into an ADMF/OS queue containing an ADMF/OS queue header in said main memory by addressing said UCB and ARE through said ADMF/OS queue header, executing said method on a CPU to provide said application-to-ADMF interface utilizing said ADMF/OS queue for receiving and holding user program requests for ADM work and for transmitting said ADMF work requests from said ADMF/OS queue to an ADMF work queue in said ADMF, in which said OS is: issuing each ADMF work request from said ADMF/OS queue by taking a UCB and an ARE addressed by said UCB from said ADMF/OS queue, and performing the step of: forming an operation request block (ORB) as an operand of a start subchannel (SSCH) instruction and writing in said ORB said address of said AOB, executing said SSCH instruction by said OS to put said subchannel identified in said operand of said SSCH instruction on said ADMF work queue in said ADMF for providing an OS-to-ADMF interface for said ADMF request, and moving data for said ADMF request by said ADMF using any available ADMF co-processor to access said AOB for obtaining said data move specifications for identifying source and destination virtual address spaces and locating source and destination virtual addresses in said virtual address spaces to control movement of data between said locations.
Claim 3
Dependent Claim
62 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the steps of backing data in one of said virtual address spaces in said main memory of said data processing system and backing said other virtual address space in a random-access storage other than said main memory of said data processing system.
Claim 4
Dependent Claim
59 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the step of setting an active flag in said ARE to active state when said ARE is assigned an ADM UCB, and said active flag being in inactive state while said ARE is not assigned to any ADM UCB.
Claim 5
Dependent Claim
112 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the steps of generating an interruption signal by the ADMF upon completion or failure of an ADMF work request associated with said UCB, and storing an identification of said UCB and/or AOB associated with the UCB in a predetermined interruption location in said main memory; accessing said UCB and obtaining said ARE pointer in said UCB to locate said ARE associated with said completed work by said ADMF signalled by said interruption signal; and removing said ARE from the ADMF request queue and freeing said UCB for use by another ADMF request.
Claim 6
Dependent Claim
49 words
A method of controlling a hardware data move facility (ADMF) by program users as defined in claim 4, further comprising the steps of returning to said user programs an indicator of success or failure of performance of ADMF work represented by said ADMF request of any said user program.
Claim 7
Dependent Claim
76 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the steps of generating a plurality of ADM UCBs for representing different ADMF subchannels, each ADM UCB being in a free state when said ADM UCB is not associated with any ADMF request by said user software program; and selecting a free ADM UCB for association with an ADMF work request by any said user program.
Claim 8
Dependent Claim
90 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 6, further comprising the steps of providing an anchor pointer in said ADMF/OS queue for locating each of said ADM request elements (ARE), and a first pointer in said ADMF/OS queue for locating a next ADM UCB, and a second pointer for locating said ADM UCB defined by said anchor pointer; and providing an address to send anchor pointer in a predetermined location in one of said memories of said data processing system.
Claim 9
Dependent Claim
50 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 7, further comprising the steps of queuing each said ADMF subchannel associated with each said ADMF in response to said ADM UCB being selected for said ADMF request of any said user program.
Claim 10
Dependent Claim
47 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 7, further comprising the step of binding each said ADMF suchannel to an ADM UCB by writing in said ADM UCB an ADMF subchannel identifier for identifying said ADMF subchannel.
Claim 11
Dependent Claim
58 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the steps of generating an AOB from a plurality of data move specifications provided in said data move table, and each said data move specification specifying a number of data blocks contiguously located in a virtual address space.
Claim 12
Dependent Claim
48 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the step of providing only user virtual addresses in said parameter control list and said data move table for representing each ADMF request of any said user program.
Claim 13
Dependent Claim
55 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the step of translating a virtual address of said AOB and putting a resulting translated AOB address in said ORB for said start subchannel instruction to enable queuing of said subchannel on said ADMF/OS queue.
Claim 14
Dependent Claim
43 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the step of translating by said ADMF of virtual addresses in said AOB for performing an ADMF work request represented by said AOB.
Claim 15
Dependent Claim
98 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the steps of appending an ADM response block (ARB) with each AOB when said AOB is being generated; posting in said ARB by said ADMF of interruption data for indicating whether an associated ADMF work request is completed successfully or not, and whether any error condition was detected during performance of the ADMF work request; and copying said ARB into a predetermined interruption area of storage when processing is ended by said ADMF for said ADMF work request.
Claim 16
Dependent Claim
43 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 14, further comprising the steps of also posting in said ARB by said ADMF of a count of data blocks moved for said ADMF work request.
Claim 17
Dependent Claim
53 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 14, further comprising the steps of also posting in said ARB of a storage location of any source and/or destination data block detected to having an error condition during said performance of an ADMF work request.
Claim 18
Dependent Claim
69 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, further comprising the steps of delineating in an header area of an AOB of a subset of contiguous data move specifications for execution by said ADMF when said AOB is being generated, in which the subset is equal to or less than all of said data move specifications in said AOB.
Claim 19
Dependent Claim
102 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 2, further comprising the step of providing a hiperspace as said other virtual address space backed by data blocks in said expanded memory (ES), transferring data blocks within or between the hiperspace and a user address space backed by data blocks in said main memory of said data processing system, each data transfer physically occurring within or between backing said memories although each data transfer is seen by each of said user programs as being within or between said hiperspace and said user address space.
Claim 20
Dependent Claim
48 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 18, further comprising the step of dividing all virtual address spaces, including all hiperspaces, and all backing data for said virtual addresses spaces into equal size pages for containing data blocks.
Claim 21
Dependent Claim
218 words
A method of controlling a hardware data move facility (ADMF) by user programs as defined in claim 1, comprising the steps of: using virtual addressing in said data processing system for moving a page (data block) backed by a random-access storage (other than an execution storage) to prevent said page from being invalidated while being moved; providing a synchronization field in a storage of said data processing system, said synchronization field containing a plurality of bit positions for each processor in said system, said plurality of bit positions for each processor indicating if said associated processor is in process of moving page or invalidating a page or of being in an error retry state; inspecting said state of said synchronization field by any processor about to invalidate or move said page for an indication that another processor is in process of invalidating or moving said same or another page; setting a bit position in said synchronization field (in atomic coordination with the other processors) prior to the processor invalidating or moving said page if no processor is indicated by said synchronization field is invalidating or moving said same or another page; and invalidating or moving said page if no other processor is indicated in the synchronization field to be in a process of invalidating or moving said page.