Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
233 words
A method for use in controlling memory access by a plurality of threads which execute in a single address space of a computer system that does not include an MMU, the method comprising the steps of: grouping the threads into protection domains, each of the threads in a particular protection domain having the same rights to access the memory of the single address space as the other threads in that particular protection domain so that each thread in a particular protection domain is permitted to access all memory addresses that can be accessed by the other threads in the same particular protection domain; dividing memory into pages, each page being (i) within the single address space which is common to the threads and (ii) having at least one access permission set therefore so that only threads in a protection domain having access permission can validly access the page, said pages not being assigned to groups so that the threads of any protection domain may be given access to or denied access to any page; receiving, from a thread in a currently executing protection domain, a request for a particular type of access to a memory location in a particular page; and generating a protection fault if the currently executing protection domain does not have access permission for the particular type of access requested for the particular type of access to the particular page.
Claim 2
Independent Claim
233 words
A method for use in controlling memory access by a plurality of threads which execute in a single address space of a computer system that does not include an MMU, the method comprising the steps of: grouping the threads into protection domains, each of the threads in a particular protection domain having the same rights to access the memory of the single address space as the other threads in that particular protection domain so that each thread in a particular protection domain is permitted to access all memory addresses that can be accessed by the other threads in the same particular protection domain; dividing memory into pages, each page being (i) within the single address space which is common to the threads and (ii) having at least one access permission set therefore so that only threads in a protection domain having access permission can validly access the page, said pages not being assigned to groups so that the threads of any protection domain may be given access to or denied access to any page; receiving, from a thread in a currently executing protection domain, a request for a particular type of access to a memory location in a particular page; and generating a protection fault if the currently executing protection domain does not have access permission for the particular type of access requested for the particular type of access to the particular page.
Claim 3
Dependent Claim
17 words
The invention as defined in claim 1 wherein the particular type of access is a read access.
Claim 4
Dependent Claim
17 words
The invention as defined in claim 1 wherein the particular type of access is a write access.
Claim 5
Dependent Claim
18 words
The invention as defined in claim 1 further including the step of determining a currently executing protection domain.
Claim 6
Dependent Claim
20 words
The invention as defined in claim 4 wherein the determining step is performed substantially concurrently with receipt of said request.
Claim 7
Dependent Claim
23 words
The invention as defined in claim 4 wherein the determining step is performed substantially concurrently with the start of the currently executing thread.
Claim 8
Dependent Claim
170 words
A computer processor for executing threads in a single address space, the computer processor being free of an MMU for converting virtual memory addresses to physical memory addresses, comprising: a memory page address register for storing a page identifier for a memory address to which access is requested by a currently executing one of said threads, said address space being divided into memory pages and said threads being divided into domains; and a memory page permission store for storing access permissions, said pages not being assigned to groups so that the threads of any domain may be assigned access permissions to any of said pages; wherein a protection fault is generated substantially concurrently with a request by the currently executing one of the threads for access to a memory location identified by a particular page identifier placed in the page address register for which the memory page permission store does not indicate that a valid permission is stored for the protection domain of the currently executing one of the threads.
Claim 9
Dependent Claim
170 words
A computer processor for executing threads in a single address space, the computer processor being free of an MMU for converting virtual memory addresses to physical memory addresses, comprising: a memory page address register for storing a page identifier for a memory address to which access is requested by a currently executing one of said threads, said address space being divided into memory pages and said threads being divided into domains; and a memory page permission store for storing access permissions, said pages not being assigned to groups so that the threads of any domain may be assigned access permissions to any of said pages; wherein a protection fault is generated substantially concurrently with a request by the currently executing one of the threads for access to a memory location identified by a particular page identifier placed in the page address register for which the memory page permission store does not indicate that a valid permission is stored for the protection domain of the currently executing one of the threads.
Claim 10
Dependent Claim
32 words
The invention as defined in claim 7 wherein the microprocessor further comprises a protection domain register for storing an indication of the protection domain of the currently executing one of the threads.
Claim 11
Dependent Claim
64 words
The invention as defined in claim 7 wherein the memory page permission store stores independent access permissions for at least one of said pages for reading and writing operations and the microprocessor further comprises a read/write register for storing the type of access requested by the currently executing one of the threads and for supplying an indication thereof to the memory page permission store.
Claim 12
Dependent Claim
21 words
The invention as defined in claim 7 wherein the memory page permission store stores the access permissions on a protection-domain-by-protection-domain basis.
Claim 13
Dependent Claim
34 words
The invention as defined in claim 10 wherein the memory page permission store is arranged to store a read access permission and a write access permission for at least one of the protection domains.
Claim 14
Dependent Claim
32 words
The invention as defined in claim 11 wherein the values of the read access permission and the write access permission for the at least one of the protection domains are independently setable.
Claim 15
Dependent Claim
29 words
The invention as defined in claim 7 wherein each thread has an implied read permission for each memory page and the memory page permission store only stores write permissions.
Claim 16
Dependent Claim
158 words
A computer processor for executing threads in a single address space, said address space being divided into memory pages, the computer processor comprising: means for storing page-by-page memory page access permissions as a function of protection domains into which threads which may execute on said processor are grouped, said pages not being assigned to groups so that the threads of any protection domain may be given access to or denied access to any page; means for indexing into said access permissions to determine if a particular protection domain of a particular executing thread which is requesting access to a particular memory address has access permission for the page in which the particular memory access is located; and means for generating a protection fault substantially concurrently with said access request by the particular executing one of the threads for which the stored access permissions do not indicate a valid permission for the protection domain of the particular requesting thread.
Claim 17
Dependent Claim
158 words
A computer processor for executing threads in a single address space, said address space being divided into memory pages, the computer processor comprising: means for storing page-by-page memory page access permissions as a function of protection domains into which threads which may execute on said processor are grouped, said pages not being assigned to groups so that the threads of any protection domain may be given access to or denied access to any page; means for indexing into said access permissions to determine if a particular protection domain of a particular executing thread which is requesting access to a particular memory address has access permission for the page in which the particular memory access is located; and means for generating a protection fault substantially concurrently with said access request by the particular executing one of the threads for which the stored access permissions do not indicate a valid permission for the protection domain of the particular requesting thread.
Claim 18
Dependent Claim
37 words
The invention as defined in claim 14 wherein the processor further comprises means for accessing the particular memory address when the stored access permissions indicate a valid permission for the protection domain of the particular requesting thread.
Claim 19
Dependent Claim
22 words
The invention as defined in claim 14 wherein the means for indexing comprises a page number portion of a memory access register.
Claim 20
Dependent Claim
17 words
The invention as defined in claim 14 wherein the means for indexing comprises a protection domain register.
Claim 21
Dependent Claim
16 words
The invention as defined in claim 14 wherein the means for indexing includes a read/write flag.
Claim 22
Dependent Claim
24 words
The invention as defined in claim 14 wherein the processor further includes means for storing its operating context when processing an operating system call.
Claim 23
Dependent Claim
20 words
The invention as defined in claim 14 wherein the memory access requested may be one of at least two types.
Claim 24
Dependent Claim
34 words
The invention as defined in claim 20 wherein the means for storing page-by-page memory page access permissions stores access permissions for the at least two types of access for at least one memory page.
Claim 25
Dependent Claim
35 words
The invention as defined in claim 20 wherein the means for storing page-by-page memory page access permissions stores independent access permissions for the at least two types of access for at least one memory page.