← Back to Patent Explorer
US3916385A Expired / Lapsed US ⏱️ 0.0 years remaining

Ring checking hardware

Assignee: Bull HN Information Systems Italia SpA
•
Filing: 1973-12-12
•
Granted: 1975-10-28
•
Expires: 1993-12-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Computer data and procedure protection by preventing processes from interferring with each other or sharing each other''s address space in an unauthorized manner is accomplished in hardware/firmware by restricting addressability to a segmented memory and by a ring protection mechanism. To protect information in segments shared by several processes from misuse by one of these processes a ring protection hardware system is utilized. There are four ring classes numbered 0 through 3. Each ring represents a level of system privilege with level 0 (the innermost ring) having the most privilege and level 3 (the outermost ring) the least. Every procedure in the system has a minimum and a maximum execute ring number assigned to it which specifies who may legally call the procedure. Also maximum write and read ring numbers specify the maximum ring numbers for which a write and/or read operation is permitted. Processes use a segmented address during execution wherein segment tables isolate the address space of the various processes in the system. Hardware checks that the address used by a process is part of the address space assigned to the process, and if the address is outside the prescribed address space, an exception occurs. A process cannot refer to data within the address space of another process because the hardware uses the segment table of the referencing process.

Inventors

  • 👤 Pravinsinh L Parmar
  • 👤 Richard P Wilder
  • 👤 Ming H Louie
  • 👤 Benjamin S Franklin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 14:08
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/14; G06F12/1458; G06F12/1491

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 352 words
In an internally programmed data processing apparatus having a memory comprised of a plurality of segments of addressable space delineated by upper and lower variable bounds each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group type of information in one of said segments of addressable space, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined minimum level of privilege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, (i.e. perform a memory operation) said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that has a privilege level not less than the privilege level of said information to be processed, an apparatus for developing an effective address ring number EAR for each operation of said memory procedures on said selected groups of information in a selected one of said segments of addressable space, said EAR being the minimum level of privilege associated with said selected each memory operation of one of said procedures, said apparatus comprising: a. first means for storing a base register ring number BRN said BRN being a predetermined level of privilege associated with a portion of a selected one of said segment address spaces; b. second means for storing a process ring number PRN said PRN being a predetermined level of privilege associated with the address space of a currently executing procedure on said internally programmed data processing apparatus; c. third means coupled to said first and second means, for comparing the contents of said first and second means; and, d. fourth means, coupled to said third means, for storing the contents of one of said first or second means having the smaller level of privilege (i.e. maximum EAR), whereby said contents of said fourth means is the generated EAR for said selected one of said memory operations.
Claim 2
Dependent Claim 352 words
In an internally programmed data processing apparatus having a memory comprised of a plurality of segments of addressable space delineated by upper and lower variable bounds each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group type of information in one of said segments of addressable space, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined minimum level of privilege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, (i.e. perform a memory operation) said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that has a privilege level not less than the privilege level of said information to be processed, an apparatus for developing an effective address ring number EAR for each operation of said memory procedures on said selected groups of information in a selected one of said segments of addressable space, said EAR being the minimum level of privilege associated with said selected each memory operation of one of said procedures, said apparatus comprising: a. first means for storing a base register ring number BRN said BRN being a predetermined level of privilege associated with a portion of a selected one of said segment address spaces; b. second means for storing a process ring number PRN said PRN being a predetermined level of privilege associated with the address space of a currently executing procedure on said internally programmed data processing apparatus; c. third means coupled to said first and second means, for comparing the contents of said first and second means; and, d. fourth means, coupled to said third means, for storing the contents of one of said first or second means having the smaller level of privilege (i.e. maximum EAR), whereby said contents of said fourth means is the generated EAR for said selected one of said memory operations.
Claim 3
Dependent Claim 45 words
The data processing apparatus as recited in claim 1 including fifth means for storing a write ring number WR said write ring number being a predetermined maximum ring number (i.e. minimum level of priviLege) required to write into said selected one of said address spaces.
Claim 4
Dependent Claim 32 words
The data processing apparatus as recited in claim 2 including sixth means, coupled to said fourth and fifth means for determining which of said fourth or fifth means contains the greater value.
Claim 5
Dependent Claim 332 words
In an internally programmed data processing apparatus having a memory, and being responsive to internally stored instruction words for processing information and having stored in said memory a plurality of different types of groups of information each information group-type associated with an address space bounded by a segment having adjustable bounds an apparatus for developing an effective address ring number EAR for a selected one of said address spaces said EAR being the minimum level of privilege associated with said selected one of said address spaces, said apparatus comprising: a. first means for storing a base register ring number BRN said BRN being a predetermined level of privilege associated with said address space; b. second means for storing a process ring number PRN said PRN being a predetermined level of privilege associated with the address space of a currently executing process on said internally programmed data processing apparatus; c. third means coupled to said first and second means, for comparing the contents of said first and second means; d. fourth means, coupled to said third means, for storing the contents of one of said first or second means having the greater value (i.e. smaller level of privilege) whereby said contents of said fourth means is the generated EAR for said selected one of said address spaces; e. fifth means for storing a write ring number WR said write ring number being a predetermined maximum ring number (i.e. minimum level of privilege) required to write into said selected one of said address spaces; f. sixth means, coupled to said fourth and fifth means, for determining which of said fourth or fifth means contains the greater value; and, g. seventh means, coupled to said sixth means, for permitting a write operation to be performed in said selected one of said address spaces when the magnitude of the contents of said fifth means is not less than the magnitude of the contents of said fourth means i.e. said WR is not less than said EAR.
Claim 6
Dependent Claim 332 words
In an internally programmed data processing apparatus having a memory, and being responsive to internally stored instruction words for processing information and having stored in said memory a plurality of different types of groups of information each information group-type associated with an address space bounded by a segment having adjustable bounds an apparatus for developing an effective address ring number EAR for a selected one of said address spaces said EAR being the minimum level of privilege associated with said selected one of said address spaces, said apparatus comprising: a. first means for storing a base register ring number BRN said BRN being a predetermined level of privilege associated with said address space; b. second means for storing a process ring number PRN said PRN being a predetermined level of privilege associated with the address space of a currently executing process on said internally programmed data processing apparatus; c. third means coupled to said first and second means, for comparing the contents of said first and second means; d. fourth means, coupled to said third means, for storing the contents of one of said first or second means having the greater value (i.e. smaller level of privilege) whereby said contents of said fourth means is the generated EAR for said selected one of said address spaces; e. fifth means for storing a write ring number WR said write ring number being a predetermined maximum ring number (i.e. minimum level of privilege) required to write into said selected one of said address spaces; f. sixth means, coupled to said fourth and fifth means, for determining which of said fourth or fifth means contains the greater value; and, g. seventh means, coupled to said sixth means, for permitting a write operation to be performed in said selected one of said address spaces when the magnitude of the contents of said fifth means is not less than the magnitude of the contents of said fourth means i.e. said WR is not less than said EAR.
Claim 7
Dependent Claim 52 words
The data processing apparatus as recited in claim 4 including eighth means, coupled to said sixth means, for generating a write-violation-exception signal when the magnitude of the contents of said fifth means is less than the magnitude of the contents of said fourth means i.e. said WR is less than said EAR.
Claim 8
Dependent Claim 48 words
The data processing apparatus as recited in claim 5 including ninth means, coupled to said seventh means, for storing a write permission (WP) logic signal said WP logic signal for indicating, when high, that a write operation may be performed in said selected one of said address spaces.
Claim 9
Dependent Claim 43 words
The data processing apparatus as recited in claim 6 including tenth means, coupled to said ninth means, for permitting a write operation to be performed in said selected one of said address spaces when the signal stored in said ninth means is high.
Claim 10
Dependent Claim 32 words
The data processing apparatus as recited in claim 7 including eleventh means, coupled to said tenth means, for generating a write-violation-exception signal when the signal stored in said ninth means is low.
Claim 11
Dependent Claim 367 words
In a data processing apparatus having a memory comprised of a plurality of segments of addressable space delineated by upper and lower variable bounds each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group type of information in one of said segments of addressable space, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined minimum level of priviLege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that has a privilege level not less than the privilege level of said information to be processed, said data processing apparatus also having means for developing an effective address ring number EAR for each operation of said memory procedures on said selected group of information in a selected one of said segments of addressable space, said EAR being the minimum level of privilege (i.e. maximum ring number) associated with each of said selected ones of said memory operations of said procedures, an apparatus for permitting the execution of a selected process in said selected one of said segments of address spaces said apparatus comprising: a. first means for storing a maximum ring number MAXR said MAXR being a minimum predetermined level of privilege at which said selected process in said selected one of said segments of address space may execute; b. second means for storing a write ring number WR said WR being a maximum level of privilege (i.e. minimum ring number) at which said selected process in said selected one of said segments of address space may execute; c. third means for storing said EAR; and, d. fourth means coupled to said first, second and third means for determining when the maximum ring number MAXR is greater or equal to the effective address ring number (EAR) is greater or equal to the write ring number (WR) i.e. WR EAR MAXR.
Claim 12
Dependent Claim 367 words
In a data processing apparatus having a memory comprised of a plurality of segments of addressable space delineated by upper and lower variable bounds each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group type of information in one of said segments of addressable space, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined minimum level of priviLege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that has a privilege level not less than the privilege level of said information to be processed, said data processing apparatus also having means for developing an effective address ring number EAR for each operation of said memory procedures on said selected group of information in a selected one of said segments of addressable space, said EAR being the minimum level of privilege (i.e. maximum ring number) associated with each of said selected ones of said memory operations of said procedures, an apparatus for permitting the execution of a selected process in said selected one of said segments of address spaces said apparatus comprising: a. first means for storing a maximum ring number MAXR said MAXR being a minimum predetermined level of privilege at which said selected process in said selected one of said segments of address space may execute; b. second means for storing a write ring number WR said WR being a maximum level of privilege (i.e. minimum ring number) at which said selected process in said selected one of said segments of address space may execute; c. third means for storing said EAR; and, d. fourth means coupled to said first, second and third means for determining when the maximum ring number MAXR is greater or equal to the effective address ring number (EAR) is greater or equal to the write ring number (WR) i.e. WR EAR MAXR.
Claim 13
Dependent Claim 39 words
The data processing apparatus as recited in claim 9 including fifth means, coupled to said fourth means, for permitting a selected process in said selected one of said segments of address spaces to execute when said WR EAR MAXR.
Claim 14
Dependent Claim 55 words
The data processing apparatus as recited in claim 10 including sixth means, coupled to said first, second and third means, for determining when the maximum ring number MAXR is greater or equal to the effective address ring number EAR is greater or equal to the write ring number is not true i.e. WR EAR MAXR.
Claim 15
Dependent Claim 27 words
The data processing apparatus as recited in claim 11 including seventh means, coupled to said sixth means, for generating an execute exception signal when WR EAR MAXR.
Claim 16
Dependent Claim 38 words
The data processing apparatus as recited in claim 12 including eighth means, coupled to said fourth means, for preventing a selected process in said selected one of said segments of address spaces from executing when WR EAR MAXR.
Claim 17
Dependent Claim 43 words
The data processing apparatus as recited in claim 13 including ninth means for storing an execute permission (EP) signal, said EP signal for indicating, when high, that a selected process in said selected one of said segments of address spaces may be executed.
Claim 18
Dependent Claim 41 words
The data processing apparatus as recited in claim 14 including tenth means, coupled to said ninth means, for permitting the execution of a selected process in said selected one of said segments of address spaces when said EP signal is high.
Claim 19
Dependent Claim 41 words
The data processing apparatus as recited in claim 15 including eleventh means, coupled to said ninth means, for preventing the execution of a selected process in said selected one of said segments of address spaces when said EP signal is low.
Claim 20
Dependent Claim 28 words
The data processing apparatus as recited in claim 16 including twelfth means, coupled to said eleventh means, for generating an execute-violation signal when said EP signal is low.
Claim 21
Dependent Claim 293 words
In a data processing apparatus having a memory store comprised of a plurality of segments of addressable space delineated by upper and lower variable bounds each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group type of informaTion in one of said segments of addressable space, i.e. perform a memory operation, said data processing apparatus also having means for developing an effective address ring number EAR for a selected one of said address spaces said EAR being the minimum level of privilege associated with said each selected memory operation of one of said procedures, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined level of privilege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that have a privilege level not less than the privilege level of said information to be processed, an apparatus for permitting a read operation in said selected one of said segments of address spaces said apparatus comprising: a. first means for storing a read ring number RD said RD being a predetermined minimum level of privilege (i.e. maximum ring number) required in order to perform a read operation in said selected one of said segments of addressable space; b. second means for storing said EAR; and, c. third means, coupled to said first and second means, for determining which of said first or second means contains the greater magnitude.
Claim 22
Dependent Claim 293 words
In a data processing apparatus having a memory store comprised of a plurality of segments of addressable space delineated by upper and lower variable bounds each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group type of informaTion in one of said segments of addressable space, i.e. perform a memory operation, said data processing apparatus also having means for developing an effective address ring number EAR for a selected one of said address spaces said EAR being the minimum level of privilege associated with said each selected memory operation of one of said procedures, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined level of privilege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that have a privilege level not less than the privilege level of said information to be processed, an apparatus for permitting a read operation in said selected one of said segments of address spaces said apparatus comprising: a. first means for storing a read ring number RD said RD being a predetermined minimum level of privilege (i.e. maximum ring number) required in order to perform a read operation in said selected one of said segments of addressable space; b. second means for storing said EAR; and, c. third means, coupled to said first and second means, for determining which of said first or second means contains the greater magnitude.
Claim 23
Dependent Claim 63 words
The data processing apparatus as recited in claim 18 including fourth means, coupled to said third means, for permitting a read operation to be performed in said selected one of said address spaces when the magnitude of the contents of said first means is greater than the magnitude of the contents of said second means i.e. said RD is greater than said EAR.
Claim 24
Dependent Claim 53 words
The data processing apparatus as recited in claim 19 including fifth means, coupled to said third means, for generating a read-violation exception signal when the magnitude of the contents of said first means is less than the magnitude of the contents of said second means i.e. said RD is less than said EAR.
Claim 25
Dependent Claim 41 words
The data processing apparatus as recited in claim 20 including sixth means for storing a process ring number (PRN) which is a predetermined level of privilege associated with the address space of a currently executing process on said data processing apparatus.
Claim 26
Dependent Claim 339 words
In a data processing apparatus having a memory store said apparatus being responsive to instruction words and having stored in said memory a plurality of different types of groups of information each information group-type associated with an address space bounded by a segment having adjustable bounds, said data processing apparatus also having means for developing an effective address ring number EAR for a selected one of said address spaces said EAR being the minimum level of privilege associated with said selected one of said address spaces, an apparatus for permitting a read operation in said selected one of said address spaces said apparatus comprising: a. first means for storing a read ring number RD said RD being a predetermined minimum level of privilege (i.e. maximum ring number) required in order to perform a read operation in said selected one of said address spaces; b. second means for storing said EAR; c. third means, coupled to said first and second means, for determining which of said first or second means contains the greater magnitude; d. fourth means, coupled to said third means, for permitting a read operation to be performed in said selected one of said address spaces when the magnitude of the contents of said first means is greater than the magnitude of the contents of said second means i.e. said RD is greater than said EAR; e. fifth means, coupled to said third means, for generating a read violation exception signal when the magnitude of the contents of said first means is less than the magnitude of the contents of said second means i.e. said RD is less than said EAR; f. sixth means for storing a process ring number (PRN) which is a predetermined level of privilege associated with the address space of a currently executing process on said data processing apparatus; and, g. seventh means, coupled to said second and sixth means, for determining when the magnitude of the contents of said second means is equal to the magnitude of the value of said sixth means.
Claim 27
Dependent Claim 339 words
In a data processing apparatus having a memory store said apparatus being responsive to instruction words and having stored in said memory a plurality of different types of groups of information each information group-type associated with an address space bounded by a segment having adjustable bounds, said data processing apparatus also having means for developing an effective address ring number EAR for a selected one of said address spaces said EAR being the minimum level of privilege associated with said selected one of said address spaces, an apparatus for permitting a read operation in said selected one of said address spaces said apparatus comprising: a. first means for storing a read ring number RD said RD being a predetermined minimum level of privilege (i.e. maximum ring number) required in order to perform a read operation in said selected one of said address spaces; b. second means for storing said EAR; c. third means, coupled to said first and second means, for determining which of said first or second means contains the greater magnitude; d. fourth means, coupled to said third means, for permitting a read operation to be performed in said selected one of said address spaces when the magnitude of the contents of said first means is greater than the magnitude of the contents of said second means i.e. said RD is greater than said EAR; e. fifth means, coupled to said third means, for generating a read violation exception signal when the magnitude of the contents of said first means is less than the magnitude of the contents of said second means i.e. said RD is less than said EAR; f. sixth means for storing a process ring number (PRN) which is a predetermined level of privilege associated with the address space of a currently executing process on said data processing apparatus; and, g. seventh means, coupled to said second and sixth means, for determining when the magnitude of the contents of said second means is equal to the magnitude of the value of said sixth means.
Claim 28
Dependent Claim 28 words
The data processing apparatus as recited in claim 22 including eighth means, coupled to said seventh means, for overriding said read-violation-exception when RD is equal to said PRN.
Claim 29
Dependent Claim 404 words
In an internally programmed data processing apparatus having a memory comprised of a plurality of segments of addressable space each segment addressable indirectly via an indirect segment descriptor, each of said segments delineated by upper and lower variable bounds, each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group-type of information in one of said segments of addressable space, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined minimum level of privilege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that have a privilege level not less than the privileged level of said information to be processed, an apparatus for developing an effective address ring number EAR for each operation on said selected group of information in a selected one of said segments of addressable space of said memory said EAR being the minimum level of privilege associated with said selected each memory operation of said procedures, said apparatus comprising: a. first means for storing a base register ring number BRN said BRN being a predetermined level of privilege associated with a portion of a selected one of said segment address spaces; b. second means for storing a process ring number PRN said PRN being a predetermined level of privilege associated with the address space of a currently executing procedure on said internally programmed data processing apparatus; c. third means coupled to said first and second means, for comparing the contents of said first and second means; d. fourth means coupled to said third means for storing the contents of one of said first or second means having the smaller level of privilege; e. fifth means for storing a ring number RN said ring number being the minimum level of privilege associated with said indirect data descriptor; f. sixth means, coupled to said fourth and fifth means, for comparing the contents of said fourth and fifth means; and, g. seventh means, coupled to said sixth means for storing the contents of one of said fourth or fifth means having the smaller level of privilege.
Claim 30
Dependent Claim 404 words
In an internally programmed data processing apparatus having a memory comprised of a plurality of segments of addressable space each segment addressable indirectly via an indirect segment descriptor, each of said segments delineated by upper and lower variable bounds, each segment of addressable space for storing a plurality of different types of groups of information each information group-type associated with a predetermined level of privilege for accessing or executing a selected group-type of information in one of said segments of addressable space, said processing apparatus further having a plurality of processes each process having a plurality of procedures each procedure having a predetermined minimum level of privilege for permitting a selected procedure to access or execute information stored in a selected one of said segments of addressable space, said data processing apparatus being responsive to internally stored instruction words for selectively processing information by a selected one of said procedures that have a privilege level not less than the privileged level of said information to be processed, an apparatus for developing an effective address ring number EAR for each operation on said selected group of information in a selected one of said segments of addressable space of said memory said EAR being the minimum level of privilege associated with said selected each memory operation of said procedures, said apparatus comprising: a. first means for storing a base register ring number BRN said BRN being a predetermined level of privilege associated with a portion of a selected one of said segment address spaces; b. second means for storing a process ring number PRN said PRN being a predetermined level of privilege associated with the address space of a currently executing procedure on said internally programmed data processing apparatus; c. third means coupled to said first and second means, for comparing the contents of said first and second means; d. fourth means coupled to said third means for storing the contents of one of said first or second means having the smaller level of privilege; e. fifth means for storing a ring number RN said ring number being the minimum level of privilege associated with said indirect data descriptor; f. sixth means, coupled to said fourth and fifth means, for comparing the contents of said fourth and fifth means; and, g. seventh means, coupled to said sixth means for storing the contents of one of said fourth or fifth means having the smaller level of privilege.

References Cited (Backward Citations)

US3264615A Cited
US3377624A Cited
US3573855A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1978-10-27 1979-04-28 1979-10-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1982-10-27 1983-04-28 1983-10-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1986-10-27 1987-04-28 1987-10-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag