← Back to Patent Explorer
EP0514697A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Split instruction paging method

Assignee: International Business Machines Corp
•
Filing: 1992-04-29
•
Granted: —
•
Expires: 2012-04-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Asynchronously transfers blocks of data (called pages) between two different electronic media of a data processing system. The different media may be a system main storage and a system expanded storage or a non-volatile external type of storage, either of which use different addressing than the main storage. All of these storages may be made of DRAM or SRAM technology with battery backup when necessary. The invention splits the involvement of a program requesting a page transfer into a pair of instructions per page transfer executing on one or more central processors. The first instruction of a pair starts another processor that controls the asynchronous page transfer, and the second instruction of the pair enables the communication of the end of the page transfer to the program. Neither instruction in the pair interrupts the program for the page transfer. A processor executing the starting instruction is immediately free to execute any other available instructions. Although both instructions in a pair may be executed by one processor, the pair may be executed by separate processors. And the execution of other instructions may overlap the page transfer between the execution of the pair.

Inventors

  • 👤 Donald William Mccauley
  • 👤 Richard John Schmalz
  • 👤 Ronald Morton Smith, Sr.
  • 👤 Susan Barbara Stillman

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-03 23:56
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/163; G06F15/17; G06F13/00; G06F13/14; G06F13/16; G06F13/1605; G06F13/1642

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 116 words
Method for enabling a program to control a transfer of one or more blocks of data between two different physical media used by a computer system, comprising: issuing a start instruction (SPIN/SPOUT) by a program executing on a first processor; storing information of the start instruction for enabling a second processor to asynchronously start a block transfer from a location in one electronic medium to a location in a different electronic medium; later issuing a test instruction (TAPS) for an associated start instruction by the program executing on an available processor to obtain a current status for the block transfer having the stored information; and communicating the current status to the processor executing the test instruction.
Claim 2
Dependent Claim 57 words
Method of transferring a page of data in a computer system as defined in claim 1, the storing step further comprising: storing the information in a queuing means from an associated start instruction, accessing the queuing means by the second processor for obtaining the information to start the block transfer between the locations in the two media.
Claim 3
Dependent Claim 40 words
Method of transferring a page of data in a computer system as defined in claim 2, further comprising: structuring the queuing means with at least one queue element containing fields for receiving addressing information on the locations in the media.
Claim 4
Dependent Claim 41 words
Method of transferring a page of data in a computer system as defined in claim 3, the communicating step further comprising: putting state information in the queue element by the second processor for indicating the current state of the block transfer.
Claim 5
Dependent Claim 47 words
Method of transferring a page of data in a computer system as defined in claim 4, the receiving step further comprising: providing a plurality of queue elements in a queuing means for maintaining information on a plurality of block transfers for a plurality of associated start instructions.
Claim 6
Dependent Claim 51 words
Method of transferring a block of data in a computer system as defined in claim 5, the providing step further comprising: generating a token for each queue element receiving the information of an associated start instruction, and sending the token to the first processor in response to the associated start instruction.
Claim 7
Dependent Claim 69 words
Method of transferring a block (page) of data in a computer system as defined in claim 6, the method further comprising: executing the test instruction on the available processor by using the token to search for a related queue element, testing for a current status of the requested block transfer as indicated in the related queue element, and signalling the current status to the processor executing the test instruction.
Claim 8
Dependent Claim 72 words
Method of transferring a block (page) of data in a computer system as defined in claim 6, the method further comprising: executing the test instruction on the available processor by using the token and resource-restriction information to search for a related queue element, testing for a current status of the requested block transfer as indicated in the related queue element, and signalling the current status to the processor executing the test instruction.
Claim 9
Dependent Claim 42 words
Method of transferring a page of data in a computer system as defined in claim 8, the executing step further comprising: providing a partition number and a host/guest representation as part of the resource-restriction information for the program using the test instruction.
Claim 10
Dependent Claim 38 words
Method of transferring a page of data in a computer system as defined in claim 7, the signalling step further comprising: immediately signalling a status indication for the related queue element to the processor executing the test instruction.
Claim 11
Dependent Claim 40 words
Method of transferring a page of data in a computer system as defined in claim 7, the signalling step further comprising: signalling to the processor executing the test instruction after a completion status is provided for the related queue element.
Claim 12
Dependent Claim 42 words
Method of transferring a page of data in a computer system as defined in claim 10, the immediate signalling step further comprising: immediately signalling the current status for the related queue element if a test request indication exists in the test instruction.
Claim 13
Dependent Claim 47 words
Method of transferring a page of data in a computer system as defined in claim 11, the signalling step further comprising: signalling a completion status after a completion status indication is provided for the related queue element if a wait request indication exists in the test instruction.
Claim 14
Dependent Claim 56 words
Method of transferring a block (page) of data in a computer system as defined in claim 6, the method further comprising: providing an available state for each queue element available for receiving information of a start instruction; and changing the available state to an active-not-in-process state for a queue element receiving information from a start instruction.
Claim 15
Dependent Claim 48 words
Method of transferring a page of data in a computer system as defined in claim 14, the method further comprising: modifying the active-not-in-process state to an active-in-process state for the queue element when a second processor accepts the information in the queue element to start a block transfer.
Claim 16
Dependent Claim 40 words
Method of transferring a page of data in a computer system as defined in claim 15, the method further comprising: changing the active-in-process state to a completion state for the queue element when the second processor completes the block transfer.
Claim 17
Dependent Claim 52 words
Method of transferring a page of data in a computer system as defined in claim 16, the method further comprising: changing the completion state for a queue element to the available state when the completion state of the queue element is tested and communicated to the processor later issuing the test instruction.
Claim 18
Dependent Claim 60 words
Method of transferring a page of data in a computer system as defined in claim 15, the method further comprising: changing the active-in-process state to the available state for a queue element when the second processor fails to complete a block transfer to invalidate the information in the queue element and make the queue element available for another start instruction.
Claim 19
Dependent Claim 83 words
Method of transferring a page of data in a computer system as defined in claim 18, the method further comprising: executing by the program of a fully-supported synchronous page transfer instruction using information provided for the failed page transfer when the program senses the available state for the related queue element that controlled the failed page transfer; and using exception handling features supported by the computer system for the synchronous page transfer instruction to handle an encountered exception condition of the page transfer.
Claim 20
Dependent Claim 42 words
Method of transferring a page of data in a computer system as defined in claim 19, the executing step further comprising: using a fully-supported pagein/pageout instruction in the computer system as the synchronous page transfer instruction for performing the failed page transfer.
Claim 21
Dependent Claim 35 words
Method of transferring a block (page) of data in a computer system as defined in claim 1, the method further comprising: providing a volatile medium and a non-volatile medium as the two different physical media.
Claim 22
Dependent Claim 61 words
Method of transferring a block (page) of data in a computer system as defined in claim 21, the method further comprising: executing a file-transfer program between the executions of the issuing and later issuing steps for overlapping the execution of the program while the block transfer between the volatile medium and the non-volatile medium is being controlled by the second processor.
Claim 23
Dependent Claim 77 words
Method of transferring a page of data in a computer system as defined in claim 1, the method further comprising: issuing the start instruction with information for each block (page) transfer requested by the program; overlapping execution of instructions in the program with each requested block transfer; and testing for the completion of each requested block transfer by using the test instruction after execution of a plurality of overlapped instructions following issuance of an associated start instruction.
Claim 24
Dependent Claim 86 words
Method of transferring a block (page) of data in a computer system as defined in claim 2, the method further comprising: providing a plurality of queue elements in the queuing means for concurrently handling a plurality of block-transfer requests, and associating each issued start instruction with a related queue element; and inserting information into fields in the related queue element including an operation code, a memory address specifying the location in the first medium, and a block number field specifying the location in the second medium.
Claim 25
Dependent Claim 38 words
Method of transferring a page of data in a computer system as defined in claim 24, the method further comprising: controlling a plurality of states for the related queue element by operations of the first and second processors.
Claim 26
Dependent Claim 149 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data between two different electronic media used by a computer system, comprising: executing a start instruction (SPIN/SPOUT) by the program on any central processor (of a plurality of central processors) for requesting a page transfer; storing information from the start instruction into an available queue element, and changing the state of the queue element to an active-not-in-process state; accessing of a queue element in the active-not-in-process state by a page-transfer (PT) processor for transferring a block of data between a first medium and a second medium in either direction; later executing a test instruction (TAPS) by the program on an available central processor to access an associated queue element; and communicating the status of the block transfer indicated in the associated queue element to the central processor executing the test instruction.
Claim 27
Dependent Claim 55 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 26, the later executing step further comprising: searching for a token field in a plurality of queue elements to find any queue element associated with a prior-executed test instruction obtaining the token.
Claim 28
Dependent Claim 88 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 27, the method further comprising: having a plurality of PT processors; accessing by each PT processor of a queue element in the active-not-in-process state for each PT processor to transfer a block between the first medium and the second medium in either direction; and indicating a completion state in a related queue element upon completion of the block transfer by one of the PT processors.
Claim 29
Dependent Claim 156 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 26, the method further comprising: providing a central processor (CP) interface location accessible to all CPs for obtaining an address of a queue element available to store the information for a page transfer request, and a page-transfer (PT) processor interface location accessible to the PT processor to provide an address of a queue element containing information for a page transfer for providing a work request to the PT processor; executing a first queue manager to find any available queue element and writing its address into the CP interface location after the location has been accessed by a CP, and executing a second queue manager to find a queue element having an active-not-in-process state; and writing its address into the PT processor interface location after the location has been accessed by the PT processor.
Claim 30
Dependent Claim 103 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: locking the CP interface location before accessing the location by any CP; unlocking the CP location after accessing it for the address of a queue element in the available state or finding a queue full indication; locking the PT processor interface location before accessing the location by any PT processor; and unlocking the CP location after accessing it for the address of a queue element in the active-not-in-process state or finding a queue empty indication.
Claim 31
Dependent Claim 77 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: providing a queue for receiving start requests in queue elements from a plurality of central processors executing asynchronous page start instructions, and providing page-transfer work items from the queue to a plurality of PT processors by allocating a queue element in an active-not-processed state to each requesting PT processor.
Claim 32
Dependent Claim 39 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 31, the method further comprising: resetting the queue by setting all queue elements to available state.
Claim 33
Dependent Claim 54 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: using a serializing instruction to write or change any field in a queue element to prevent contention among the plural processors which can access queue elements.
Claim 34
Dependent Claim 53 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: calling the first queue manager upon providing information of a start instruction to an available queue element; and ending the processing for the start instruction.
Claim 35
Dependent Claim 61 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: calling the first queue manager upon providing information of a start instruction to an available queue element; and posting a queue full indication upon finding no queue element currently has an available state.
Claim 36
Dependent Claim 77 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: calling the second queue manager upon providing a queue element having an active-not-in-process state to a PT processor not currently busy; and again entering the second queue manager to determine if any queue element is in the active-not-in-process state for indicating a next work item for a PT processor.
Claim 37
Dependent Claim 47 words
Method of splitting the involvement of a program in obtaining an asynchronous transfer of each block (page) of data as defined in claim 29, the method further comprising: posting a queue empty indication upon the second queue manager not finding any queue element having an active-not-in-process state.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag