Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
311 words
A method in a computer system executing a sequence of programs of instructions for a dispatchable unit (DU) (a process or task); with a predetermined set of address spaces associated with the DU, the set comprising a base space and one or more subspaces; with a secure (protected from a problem-state program) subspace-active indicator bit (SA) associated with the DU and indicating whether the program being executed for the DU is in the base space (SA=0) or in a subspace (SA=1); with a Branch in Subspace Group instruction (BSG) for branching from a program in the base space to a program in a subspace, or vice versa, and setting SA accordingly; and with the DU having a secure current-authority state(s) that authorizes program operations and that is equal to a base-authority state(s) when a program is being executed for the DU in the base space, a method used by BSG for changing the current-authority state(s) to a reduced-authority state(s) when branching from the base space to a subspace and then for changing the current-authority state(s) back to the base-authority state(s) when BSG is executed in a subspace, the method comprising the steps of: saving a specified return address and the current-authority state(s) as values in a secure data area associated with the DU during a first branch by a first BSG when the program being executed for the DU is in the base space (as indicated by SA=0), reducing the current-authority state(s) to the reduced-authority state(s) during said first branch, branching to the base space and to the return address saved as a value in the secure data area during a second branch by a second BSG when the program being executed for the DU is in a subspace (as indicated by SA=1), and restoring the current-authority state(s) to the value(s) saved in the secure data area during said second branch.
Claim 2
Independent Claim
311 words
A method in a computer system executing a sequence of programs of instructions for a dispatchable unit (DU) (a process or task); with a predetermined set of address spaces associated with the DU, the set comprising a base space and one or more subspaces; with a secure (protected from a problem-state program) subspace-active indicator bit (SA) associated with the DU and indicating whether the program being executed for the DU is in the base space (SA=0) or in a subspace (SA=1); with a Branch in Subspace Group instruction (BSG) for branching from a program in the base space to a program in a subspace, or vice versa, and setting SA accordingly; and with the DU having a secure current-authority state(s) that authorizes program operations and that is equal to a base-authority state(s) when a program is being executed for the DU in the base space, a method used by BSG for changing the current-authority state(s) to a reduced-authority state(s) when branching from the base space to a subspace and then for changing the current-authority state(s) back to the base-authority state(s) when BSG is executed in a subspace, the method comprising the steps of: saving a specified return address and the current-authority state(s) as values in a secure data area associated with the DU during a first branch by a first BSG when the program being executed for the DU is in the base space (as indicated by SA=0), reducing the current-authority state(s) to the reduced-authority state(s) during said first branch, branching to the base space and to the return address saved as a value in the secure data area during a second branch by a second BSG when the program being executed for the DU is in a subspace (as indicated by SA=1), and restoring the current-authority state(s) to the value(s) saved in the secure data area during said second branch.
Claim 3
Dependent Claim
49 words
The method of claim 1, further comprising the steps of: performing the steps of claim 1 only if a secure control bit associated with the DU is in a predetermined state, and performing only the prior-art operations of BSG if said control bit is not in said predetermined state.
Claim 4
Dependent Claim
54 words
The method of claim 1, further comprising the steps of: performing the prior-art operations of BSG as modified by the steps of claim 1 as the operations of a new instruction called, for example, Branch in Subspace Group and Set Authority (BSGSA), and omitting the steps of claim 1 from the operations of BSG.
Claim 5
Dependent Claim
29 words
The method of claim 1, the saving step further comprising the step of: saving as the specified return address the address of the next sequential instruction after the BSG.
Claim 6
Dependent Claim
160 words
In a computer system as in claim 1, with the system further having a secure program status word (PSW) access key for controlling accesses to a computer system storage having secure storage keys for preventing storage accesses; and with the system having a secure PSW key mask (PKM) that is a bit string for authorizing a problem-state program to change the PSW access key to any value corresponding to a one bit in the string, the method of claim 1, further comprising a method for changing the PKM, comprising the steps of: saving the current value of the PKM in the secure data area during said first branch (when BSG is in the base space), reducing the PKM to a specified value having no greater authority than the saved value during said first branch, and restoring the PKM to the value saved in the secure data area, this restoring occurring during said second branch when BSG is in a subspace.
Claim 7
Dependent Claim
27 words
The method of claim 5, the reducing step further comprising the step of: setting the PKM to the result of ANDing the PKM with a specified value.
Claim 8
Dependent Claim
91 words
The method of claim 5, further comprising a method for changing the PSW access key, comprising the steps of: saving the current value of the PSW access key in the secure data area during said first branch (when BSG is in the base space), changing the PSW access key to any specified value authorized by the PKM as reduced during said first branch, and restoring the PSW access key to the value saved in the secure data area, this restoring occurring during said second branch when BSG is in a subspace.
Claim 9
Dependent Claim
259 words
In a computer system executing a sequence of programs of instructions for a dispatchable unit (DU) (a process or task); with a predetermined set of program address spaces associated with the DU, the set comprising a base space and one or more subspaces; with a secure (protected from a problem-state program) subspace-active indicator bit (SA) associated with the DU and indicating whether the program being executed for the DU is in the base space (SA=0) or in a Subspace (SA=1); with a Branch in Subspace Group instruction (BSG) for branching from a program in the base space to a program in a subspace, or vice versa, and setting SA accordingly; with the computer system further having an access-register mode allowing storage accesses to data address spaces defined by an access list associated with the DU and having a Set Address Space Control instruction (SAC) for setting the access-register mode; and with BSG using access list entries as designators of subspaces to which to branch, a method of preventing access list entries that designate subspaces from being used by a program in a subspace to perform storage accesses in the access-register mode, comprising the steps of: receiving and analyzing the contents of SA when SAC is executed to set the access-register mode; performing a logical operation, said logical operation utilizing the contents of SA as an operand therefor; and generating an exception if the contents of SA indicate that the program is in a subspace (as indicated by SA=1), said exception preventing the setting of the access-register mode by SAC.
Claim 10
Dependent Claim
259 words
In a computer system executing a sequence of programs of instructions for a dispatchable unit (DU) (a process or task); with a predetermined set of program address spaces associated with the DU, the set comprising a base space and one or more subspaces; with a secure (protected from a problem-state program) subspace-active indicator bit (SA) associated with the DU and indicating whether the program being executed for the DU is in the base space (SA=0) or in a Subspace (SA=1); with a Branch in Subspace Group instruction (BSG) for branching from a program in the base space to a program in a subspace, or vice versa, and setting SA accordingly; with the computer system further having an access-register mode allowing storage accesses to data address spaces defined by an access list associated with the DU and having a Set Address Space Control instruction (SAC) for setting the access-register mode; and with BSG using access list entries as designators of subspaces to which to branch, a method of preventing access list entries that designate subspaces from being used by a program in a subspace to perform storage accesses in the access-register mode, comprising the steps of: receiving and analyzing the contents of SA when SAC is executed to set the access-register mode; performing a logical operation, said logical operation utilizing the contents of SA as an operand therefor; and generating an exception if the contents of SA indicate that the program is in a subspace (as indicated by SA=1), said exception preventing the setting of the access-register mode by SAC.
Claim 11
Dependent Claim
338 words
In a computer system executing a sequence of programs instructions for a dispatchable unit (DU) (a process or task); with a predetermined set of program address spaces associated with the DU, the set comprising a base space and one or more subspaces; with a secure (protected from a problem-state program) subspace-active indicator bit (SA) associated with the DU and indicating whether the program being executed for the DU is in the base space (SA=0) or in a subspace (SA=1); with a Branch in Subspace Group instruction (BSG) for branching from a program in the base space to a program in a subspace, or vice versa, and setting SA accordingly; with the computer system further having an access-register mode allowing storage accesses to data address spaces defined by an access list associated with the DU and having access-register translation (ART) enabling a program to use access list entries to perform storage accesses in the access-register mode; with BSG using access list entries as designators of subspaces to which to branch; and with the access list for a DU possibly having a predetermined entry(s) that is not for use by BSG but does allow storage accesses to the base space in the access-register mode, a method of preventing a program in a subspace from using access list entries to perform storage accesses to other subspaces or the base space in the access-register mode, comprising the steps of: placing in any access list entry that designates a subspace a control field that inhibits ART from using the access list entry to perform storage accesses in the access-register mode, receiving and analyzing the contents of SA when ART attempts to use said predetermined access list entry(s) that allows access to the base space; performing a logical operation, said logical operation utilizing the contents of SA as an operand therefor; and generating an exception if the contents of SA indicate that the program is in a subspace (as indicated by SA=1), said exception preventing use of the predetermined access list entry(s) by ART.
Claim 12
Dependent Claim
338 words
In a computer system executing a sequence of programs instructions for a dispatchable unit (DU) (a process or task); with a predetermined set of program address spaces associated with the DU, the set comprising a base space and one or more subspaces; with a secure (protected from a problem-state program) subspace-active indicator bit (SA) associated with the DU and indicating whether the program being executed for the DU is in the base space (SA=0) or in a subspace (SA=1); with a Branch in Subspace Group instruction (BSG) for branching from a program in the base space to a program in a subspace, or vice versa, and setting SA accordingly; with the computer system further having an access-register mode allowing storage accesses to data address spaces defined by an access list associated with the DU and having access-register translation (ART) enabling a program to use access list entries to perform storage accesses in the access-register mode; with BSG using access list entries as designators of subspaces to which to branch; and with the access list for a DU possibly having a predetermined entry(s) that is not for use by BSG but does allow storage accesses to the base space in the access-register mode, a method of preventing a program in a subspace from using access list entries to perform storage accesses to other subspaces or the base space in the access-register mode, comprising the steps of: placing in any access list entry that designates a subspace a control field that inhibits ART from using the access list entry to perform storage accesses in the access-register mode, receiving and analyzing the contents of SA when ART attempts to use said predetermined access list entry(s) that allows access to the base space; performing a logical operation, said logical operation utilizing the contents of SA as an operand therefor; and generating an exception if the contents of SA indicate that the program is in a subspace (as indicated by SA=1), said exception preventing use of the predetermined access list entry(s) by ART.
Claim 13
Dependent Claim
349 words
In a computer system executing a sequence of programs of instructions for a dispatchable unit (DU) (a process or task), with one of these programs being a highly trusted program called a base program and the others being lesser trusted programs called non-base programs; with the DU having a secure current-authority state(s) that authorizes program operations; with a control program of the computer system causing program execution for the DU to begin in the base program with the DU having a current-authority state(s) equal to a base-authority state(s), a method for changing the current-authority state(s) to a reduced-authority state(s) when branching from the base program to a non-base program and then for changing the current-authority state(s) back to the base-authority state(s) when branching from a non-base program to the base program, comprising the steps of: setting, by the control program, of a secure reduced-authority indicator bit (RA) associated with the DU to 0 when the control program causes program execution to begin for the DU in the base program to indicate that the DU has its non-reduced base authority, executing a novel Branch and Set Authority instruction (BSA) to branch from the base program to a non-base program or vice versa, saving a specified return address and the current-authority state(s) as values in a secure data area associated with the DU during a first branch by a first BSA when the program being executed for the DU is the base program as indicated by RA=0, reducing the current-authority state(s) to the reduced-authority state(s) during said first branch (which requires no provision for system integrity since authority can only be reduced), setting RA to 1 during said first branch, branching to the return address saved as a value secure in the secure data area, this branching occurring during a second branch by a second BSA when the program being executed for the DU is a non-base program as indicated by RA=1, restoring the current-authority state(s) to the value(s) saved in the secure data area, this restoring occurring during said second branch, and setting RA to 0 during said second branch.
Claim 14
Dependent Claim
349 words
In a computer system executing a sequence of programs of instructions for a dispatchable unit (DU) (a process or task), with one of these programs being a highly trusted program called a base program and the others being lesser trusted programs called non-base programs; with the DU having a secure current-authority state(s) that authorizes program operations; with a control program of the computer system causing program execution for the DU to begin in the base program with the DU having a current-authority state(s) equal to a base-authority state(s), a method for changing the current-authority state(s) to a reduced-authority state(s) when branching from the base program to a non-base program and then for changing the current-authority state(s) back to the base-authority state(s) when branching from a non-base program to the base program, comprising the steps of: setting, by the control program, of a secure reduced-authority indicator bit (RA) associated with the DU to 0 when the control program causes program execution to begin for the DU in the base program to indicate that the DU has its non-reduced base authority, executing a novel Branch and Set Authority instruction (BSA) to branch from the base program to a non-base program or vice versa, saving a specified return address and the current-authority state(s) as values in a secure data area associated with the DU during a first branch by a first BSA when the program being executed for the DU is the base program as indicated by RA=0, reducing the current-authority state(s) to the reduced-authority state(s) during said first branch (which requires no provision for system integrity since authority can only be reduced), setting RA to 1 during said first branch, branching to the return address saved as a value secure in the secure data area, this branching occurring during a second branch by a second BSA when the program being executed for the DU is a non-base program as indicated by RA=1, restoring the current-authority state(s) to the value(s) saved in the secure data area, this restoring occurring during said second branch, and setting RA to 0 during said second branch.
Claim 15
Dependent Claim
29 words
The method of claim 10, the saving step further comprising the step of: saving as the specified return address the address of the next sequential instruction after the BSA.
Claim 16
Dependent Claim
158 words
In a computer system as in claim 10, with the system further having a secure program status word (PSW) access key for controlling accesses to a computer system storage having secure storage keys for preventing storage accesses; and with the system having a secure PSW key mask (PKM) that is a bit string for authorizing a problem-state program to change the PSW access key to any value corresponding to a one bit in the string, the method of claim 10, further comprising a method for changing the PKM, comprising the steps of: saving the current value of the PKM in the secure data area during said first branch (when BSA is in the base program), reducing the PKM to a specified value having no greater authority than the saved value during said first branch, and restoring the PKM to the value saved in the secure data area during said second branch (when BSA is in a non-base program).
Claim 17
Dependent Claim
27 words
The method of claim 12, the reducing step further comprising the step of: setting the PKM to the result of ANDing the PKM with a specified value.
Claim 18
Dependent Claim
90 words
The method of claim 12, further comprising a method for changing the PSW access key, comprising the steps of: saving the current value of the PSW access key in the secure data area during said first branch (when BSA is in the base program), changing the PSW access key to any specified value authorized by the PKM reduced during said first branch, restoring the PSW access key to the value saved in the secure data area, this restoring occurring during said second branch (when BSA is in a non-base program).
Claim 19
Dependent Claim
40 words
The method of claim 1 or claim 10 in which the current-authority state(s) that is saved and restored is or includes a state for which the base-authority state is a supervisor state and the reduced-authority state is a problem state.