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

Critical system protection

Assignee: International Business Machines Corp
•
Filing: 1984-01-04
•
Granted: —
•
Expires: 2004-01-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Data processing system integrity is improved by assigning content types to virtual pages and using the assigned content types to enforce special access rules. The page content types are: (a) any changeable data and/or any executable instructions (current S/370); (b) system control program (SCP) executable instructions and/or unchangeable data (SENC), (c) SCP restrictively changeable data only (system DO); and optionally (d) application data only (user DO). Page content type designation is done by providing in each page table entry two integrity control flag bits called herein SENC and DO. In the first embodiment, the SENC and DO bits are separately coded to respectively control access to SENC and system DO page types. In a second embodiment the SENC and DO bits are combinatorially encoded to obtain four types. A new system integrity state, the SCP state, as represented by a state trigger 17, is provided to protect SENC and system DO page usage. The SCP state is initiated by a hardware interrupt, i.e. a swap of PSWs, and existe only as long as the SPU is fetching instructions from SENC pages. The following new program interrupts are provided to identify when the CPU tries: (1) to execute an instruction fetched from a SENC page while the system is not in the SCP state; (2) to execute an instruction fetched from a system or application DO page; or (3) to store data into a system DO page using an instruction not fetched from a SENC page. Also while in the SCP state, key zero users are forced to change their access key, whenever necessary, to match the storage key of any page frame prior to changing it.

Inventors

  • 👤 Stephen F. Saroka
  • 👤 Glenn C. Smith

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-27 12:58
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F12/1036; G06F12/14; G06F12/1458; G06F12/1466; G06F12/1475

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 254 words
A method for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, the method characterized by the steps of: setting a DO (data only) page flag in each PT entry (PTE) (9) to a state which designates whether an associated virtual page contains only non-executable data; when translating a program requested virtual address and assigning an entry in a translation lookaside buffer (TLB) (10) in the CPU to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage, then setting a DO field position in the assigned TLB entry to the state of the DO page flag in the associated PTE; sensing (28) the state of the DO field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU; and preventing the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a DO field position sensed by the sensing step to have a state indicating a DO page type.
Claim 2
Independent Claim 254 words
A method for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, the method characterized by the steps of: setting a DO (data only) page flag in each PT entry (PTE) (9) to a state which designates whether an associated virtual page contains only non-executable data; when translating a program requested virtual address and assigning an entry in a translation lookaside buffer (TLB) (10) in the CPU to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage, then setting a DO field position in the assigned TLB entry to the state of the DO page flag in the associated PTE; sensing (28) the state of the DO field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU; and preventing the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a DO field position sensed by the sensing step to have a state indicating a DO page type.
Claim 3
Dependent Claim 50 words
A method as defined in claim 1, the preventing step further comprising: interrupting the CPU execution of a program containing the instruction found by the sensing step to be fetched from a PF having an assigned TLB entry with the DO field position set to a DO page type state.
Claim 4
Independent Claim 358 words
A method for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, the method characterized by the steps of: setting a SCP bistable device (17) when the CPU performs a hardware interrupt to designate that the CPU is in a SCP state; setting a SENC (SCP executable non-changeable) page flag in each PT entry (PTE) to a state which designates whether a SENC page type of content applies for an associated virtual page, in which the content can only be executed by a SCP program while the CPU is in SCP state and cannot be changed by a store request having a virtual address; when translating a program requested virtual address and assigning a translation lookaside buffer (TLB) entry to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage, then setting a SENC field position in the assigned TLB entry to the state of the SENC page flag in the associated PTE; resetting the SCP bistable device to a non-SCP state when the CPU attempts to execute an instruction which is fetched from a PF associated with a PTE having the SENC page flag set to non-SENC state; sensing (27) the state of the SENC field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU; and prohibiting the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a SENC field position set to a state indicating a SENC page type when the CPU is not in SCP state, whether or not the instruction is executing with the CPU in privileged state.
Claim 5
Independent Claim 358 words
A method for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, the method characterized by the steps of: setting a SCP bistable device (17) when the CPU performs a hardware interrupt to designate that the CPU is in a SCP state; setting a SENC (SCP executable non-changeable) page flag in each PT entry (PTE) to a state which designates whether a SENC page type of content applies for an associated virtual page, in which the content can only be executed by a SCP program while the CPU is in SCP state and cannot be changed by a store request having a virtual address; when translating a program requested virtual address and assigning a translation lookaside buffer (TLB) entry to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage, then setting a SENC field position in the assigned TLB entry to the state of the SENC page flag in the associated PTE; resetting the SCP bistable device to a non-SCP state when the CPU attempts to execute an instruction which is fetched from a PF associated with a PTE having the SENC page flag set to non-SENC state; sensing (27) the state of the SENC field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU; and prohibiting the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a SENC field position set to a state indicating a SENC page type when the CPU is not in SCP state, whether or not the instruction is executing with the CPU in privileged state.
Claim 6
Dependent Claim 56 words
A method as defined in claim 3, the prohibiting step further comprising: interrupting the CPU execution of a program containing the instruction found by the sensing step to be fetched from a PF associated with a TLB entry containing a SENC field position set to a SENC state while the CPU is in a non-SCP state.
Claim 7
Dependent Claim 153 words
A method as defined in claim 3 or 4, further comprising: setting a system DO (data only) page flag in a PTE to a state which designates whether an associated virtual page contains only non-executable SCP data; setting a system DO field position in the assigned TLB entry to the state of the system DO page flag in the associated PTE; sensing (23) the state of the system DO field position in the assigned TLB entry for a requested virtual address of a store operand requested by an instruction being executed by the CPU; and disabling a storage access for the requested store operand when the sensing step senses the state of the system DO field position as a system DO page state, while the non-SCP state exists in the CPU, whereby the content of a system DO page type can only be changed by an instruction fetched from a SENC page type.
Claim 8
Dependent Claim 47 words
A method as defined in claim 5, the disabling step further comprising: interrupting the CPU execution of a program containing the instruction requesting the store operand when the disabling step is activated to prevent a store operation in the associated system DO page frame in main storage.
Claim 9
Independent Claim 82 words
A method as defined in claims 1 and 5, further comprising: setting one of separate SENC and system DO flag bit positions in each PTE to indicate the associated page is either a SENC page type or system DO page type, providing a system DO field position in each TLB to enable an indication to the CPU of a system DO page type having a content of system data only, whereby a system DO page type does not contain any executable instructions.
Claim 10
Dependent Claim 72 words
A method as defined in claim 7, further comprising: setting a pair of flag bit positions in each PTE to a page type code that represents the content of the associated virtual page to be one of: any data and/or program (any type), application (DO) data only, SENC program and/or data (SENC type), or system (DO) data only, whereby the application DO and system DO page types cannot contain any executable instructions.
Claim 11
Dependent Claim 84 words
A method as defined in claim 7 or 8, further comprising: initially setting the page type code in selected PTEs to represent SENC page types during an initial program loading of the page tables (9) for the system, and allocation setting of the system DO and eventually application DO page type codes in the PTEs for associated pages determined to contain a system DO page type or eventually an application DO page type when assigning each PF in main storage during the translating step.
Claim 12
Dependent Claim 164 words
A method as defined in claim 3 provided in a pipelined CPU, further comprising: selecting a TLB with a virtual address requested for an instruction fetch by the CPU; sensing (85) the SENC field position in the TLB entry selected by the selecting step; generating an instruction SENC signal with a state indicating a SENC or non-SENC page type according to the state sensed by the sensing step; buffering (95) each instruction SENC signal as an IS flag with each associated fetched instruction in an instruction buffer; registering (96) for execution an instruction from the instruction buffer with the associated IS flag; the resetting step resetting the SCP bistable device (117) to non-SCP state after the registering step if the IS flag indicates a non-SENC page type; and the prohibiting step suppressing the CPU execution of the instruction after the registering step when the IS flag indicates the instruction was fetched from a SENC page type and the CPU is not in SCP state.
Claim 13
Dependent Claim 252 words
Means for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, characterized as: means setting a DO (data only) page flag in each PT entry (PTE) to a state which designates whether an associated virtual page contains only non-executable data, means setting a DO field position in the assigned TLB entry to the state of the DO page flag in the associated PTE, during each operation of translating a program requested virtual address and assigning an entry in a translation lookaside buffer (TLB) in the CPU to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage, means (28) sensing the state of the DO field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU, and means preventing the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a DO field position sensed by the sensing means to have a state indicating a D0 page type.
Claim 14
Dependent Claim 252 words
Means for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, characterized as: means setting a DO (data only) page flag in each PT entry (PTE) to a state which designates whether an associated virtual page contains only non-executable data, means setting a DO field position in the assigned TLB entry to the state of the DO page flag in the associated PTE, during each operation of translating a program requested virtual address and assigning an entry in a translation lookaside buffer (TLB) in the CPU to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage, means (28) sensing the state of the DO field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU, and means preventing the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a DO field position sensed by the sensing means to have a state indicating a D0 page type.
Claim 15
Dependent Claim 361 words
Means for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, characterized as: means (66) setting a SCP bistable device (17) when the CPU performs a hardware interrupt to designate that the CPU is in a SCP state; means setting a SENC (SCP executable non-changeable) page flag in each PT entry (PTE) (9) to a state which designates a SENC page type of content for an associated virtual page, in which the content can only be executed by a SCP program while the CPU is in SCP state and cannot be changed by a store request having a virtual address; means setting a SENC field position in the assigned TLB entry to the state of the SENC page flag in the associated PTE, assisting the means for translating a program requested virtual address and assigning a translation lookaside buffer (TLB) entry to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage; means (25) resetting the SCP bistable device to a non-SCP state when the CPU attempts to execute an instruction which is fetched from a PF associated with a PTE having the SENC page flag set to non-SENC state; means (27) sensing the state of the SENC field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU; and means prohibiting the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a SENC field position set to a state indicating a SENC page type when the CPU is not in SCP state, whether or not the instruction is executing with the CPU in privileged state.
Claim 16
Dependent Claim 361 words
Means for improving the integrity of virtual storage for a data processing system having a main storage, at least one CPU for accessing virtual pages in page frames (PFs) in main storage, the CPU capable of operating with dynamic address translation (DAT) for translating the virtual address of a page to a PF real address (PFRA) in main storage using a segment table and a page table (PT) in main storage, and a system control program (SCP) in the data processing system for controlling the resources of the system, characterized as: means (66) setting a SCP bistable device (17) when the CPU performs a hardware interrupt to designate that the CPU is in a SCP state; means setting a SENC (SCP executable non-changeable) page flag in each PT entry (PTE) (9) to a state which designates a SENC page type of content for an associated virtual page, in which the content can only be executed by a SCP program while the CPU is in SCP state and cannot be changed by a store request having a virtual address; means setting a SENC field position in the assigned TLB entry to the state of the SENC page flag in the associated PTE, assisting the means for translating a program requested virtual address and assigning a translation lookaside buffer (TLB) entry to receive the address translation, including representations of the virtual address and a PFRA to locate the virtual page in main storage; means (25) resetting the SCP bistable device to a non-SCP state when the CPU attempts to execute an instruction which is fetched from a PF associated with a PTE having the SENC page flag set to non-SENC state; means (27) sensing the state of the SENC field position in the assigned TLB entry for a requested virtual address of each instruction fetch request by the CPU; and means prohibiting the CPU from completing execution of an instruction from a PF having an assigned TLB entry containing a SENC field position set to a state indicating a SENC page type when the CPU is not in SCP state, whether or not the instruction is executing with the CPU in privileged state.
Claim 17
Dependent Claim 189 words
Means as defined in claim 12, further comprising: means setting a system DO (data only) page flag in a PTE to a state which designates that an associated virtual page contains only non-executable SCP data, means setting a system DO field position in the assigned TLB entry to the state of the system DO page flag in the associated PTE, means sensing the state of the system DO field position in the assigned TLB entry for a requested virtual address of a store operand requested by an instruction being executed by the CPU, means (23) disabling a storage access for the requested store operand when the sensing means senses the state of the system DO field position as a system DO page state while the non-SCP state exists in the CPU, means interrupting the CPU execution of a program containing the ,instruction requesting the storage operand when the disabling means is activated to prevent a store operation in the associated system DO page frame in main storage, whereby the content of a system DO page type can only be changed by an instruction fetched from a SENC page type.
Claim 18
Dependent Claim 82 words
Means as defined in claim 13, further comprising: means setting one of separate SENC and system DO flag bit positions in each PTE to indicate the associated page is either a SENC page type or system DO page type, and means providing a system DO field position in each TLB to enable an indication to the CPU of a system DO page type having a content of system data only, whereby a system DO page type does not contain any executable instructions.
Claim 19
Dependent Claim 72 words
Means as defined in claim 13, further comprising: means setting a pair of flag bit positions in each PTE to a page type code that represents the content of the associated virtual page to be one of: any data and/or program (any type), application (DO) data only, SENC program and/or data (SENC type), or system (DO) data only, whereby the application DO and system DO page types cannot contain any executable instructions.

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