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

Virtual memory management method and apparatus utilizing separate and independent segmentation and paging mechanism

Assignee: Intel Corp
•
Filing: 1990-04-09
•
Granted: 1994-06-14
•
Expires: 2010-04-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Microprocessor architecture for an address translation unit which provides two levels of memory management is described. Segmentation registers and an associated segmentation table in main memory provide a first level of memory management which includes attribute bits used for protection, priority, etc. A page cache memory and an associated page directory and page table in main memory provide a second level of management with independent protection on a page level.

Inventors

  • 👤 John H. Crawford
  • 👤 Paul S. Ries

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 03:38
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F12/14; G06F12/1416; G06F12/145

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 154 words
A method for providing for management of a virtual memory space, said method providing for utilizing of both segmentation and paging techniques, said method comprising the steps of: (a) generating virtual address information for addressing said virtual memory space, said virtual address information corresponding to a location in said virtual memory space and containing only information unrelated to paging; (b) generating, based on said virtual address information and segment descriptors, said segment descriptors including only information unrelated to paging, intermediate address space information characterized by generation of a linear address identifying a first location in said virtual address space, said first location relocatable within a main memory of said computer system by said paging techniques; (c) said paging techniques generating, based on and after generation of said linear address, a physical address having a page information field and an offset field; (d) applying said physical address to said main memory over a system bus.
Claim 2
Independent Claim 154 words
A method for providing for management of a virtual memory space, said method providing for utilizing of both segmentation and paging techniques, said method comprising the steps of: (a) generating virtual address information for addressing said virtual memory space, said virtual address information corresponding to a location in said virtual memory space and containing only information unrelated to paging; (b) generating, based on said virtual address information and segment descriptors, said segment descriptors including only information unrelated to paging, intermediate address space information characterized by generation of a linear address identifying a first location in said virtual address space, said first location relocatable within a main memory of said computer system by said paging techniques; (c) said paging techniques generating, based on and after generation of said linear address, a physical address having a page information field and an offset field; (d) applying said physical address to said main memory over a system bus.
Claim 3
Independent Claim 200 words
A method of providing for memory management in a computer system implementing both segmentation and paging techniques, said method comprising the steps of: (a) providing, as inputs to a segmentation process, (i) a virtual address comprising segment descriptor table addressing information and an offset, said virtual address corresponding to a location in a virtual address space, said virtual address containing only information unrelated to paging, and (ii) a segment descriptor table addressable by said segment descriptor table addressing information, said segment descriptor table describing segments without reference to whether a segment is paged or unpaged; (b) said segmentation process providing as an output a linear address; (c) subsequent to generation of said linear address, alternatively using said linear address as either: (i) a first physical address for addressing a main memory; or (ii) an input to a paging process for generating said physical address, said paging process generating a second physical address based on a set of inputs including said linear address, said set of inputs consisting essentially of other than said inputs to said segmentation process; and (d) applying either said first or second physical address to a main memory over a system bus for accessing said main memory.
Claim 4
Independent Claim 200 words
A method of providing for memory management in a computer system implementing both segmentation and paging techniques, said method comprising the steps of: (a) providing, as inputs to a segmentation process, (i) a virtual address comprising segment descriptor table addressing information and an offset, said virtual address corresponding to a location in a virtual address space, said virtual address containing only information unrelated to paging, and (ii) a segment descriptor table addressable by said segment descriptor table addressing information, said segment descriptor table describing segments without reference to whether a segment is paged or unpaged; (b) said segmentation process providing as an output a linear address; (c) subsequent to generation of said linear address, alternatively using said linear address as either: (i) a first physical address for addressing a main memory; or (ii) an input to a paging process for generating said physical address, said paging process generating a second physical address based on a set of inputs including said linear address, said set of inputs consisting essentially of other than said inputs to said segmentation process; and (d) applying either said first or second physical address to a main memory over a system bus for accessing said main memory.
Claim 5
Independent Claim 275 words
A method of performing memory management using independent segmentation and paging processes in a virtual memory system having a virtual address space, said virtual address space divisible into segments of any length, each of said segments being defined without reference to whether said segment is paged or unpaged, each of said segments having a base address in said virtual address space, said method comprising the steps of: (a) receiving as part of said segmentation process, a virtual address corresponding to a location in said virtual address space, said virtual address corresponding to a location in said virtual address space and containing only information unrelated to said paging process, and combining said segment base address with at least a portion of said virtual address to produce a linear address having at least a page displacement field; (b) enabling said paging process separately from said segmentation process so that all segments are treated as paged segments when said paging process is enabled and all segments are treated as unpaged segments when said paging process is not enabled; (c) receiving as part of said independently operating paging process, said linear address from said segmentation process; (d) generating as part of said paging process, a partial address when said paging process is enabled; (e) receiving said linear address and producing a physical address identical to said linear address if said paging process is not enabled or receiving said page displacement field and said partial address and producing a physical address by combining said page displacement field with said partial address if said paging process is enabled; and (f) addressing a memory with said physical address produced in step (e).
Claim 6
Independent Claim 275 words
A method of performing memory management using independent segmentation and paging processes in a virtual memory system having a virtual address space, said virtual address space divisible into segments of any length, each of said segments being defined without reference to whether said segment is paged or unpaged, each of said segments having a base address in said virtual address space, said method comprising the steps of: (a) receiving as part of said segmentation process, a virtual address corresponding to a location in said virtual address space, said virtual address corresponding to a location in said virtual address space and containing only information unrelated to said paging process, and combining said segment base address with at least a portion of said virtual address to produce a linear address having at least a page displacement field; (b) enabling said paging process separately from said segmentation process so that all segments are treated as paged segments when said paging process is enabled and all segments are treated as unpaged segments when said paging process is not enabled; (c) receiving as part of said independently operating paging process, said linear address from said segmentation process; (d) generating as part of said paging process, a partial address when said paging process is enabled; (e) receiving said linear address and producing a physical address identical to said linear address if said paging process is not enabled or receiving said page displacement field and said partial address and producing a physical address by combining said page displacement field with said partial address if said paging process is enabled; and (f) addressing a memory with said physical address produced in step (e).
Claim 7
Independent Claim 267 words
A method of performing memory management in a computer system having a processor and a main memory, said method using independent segmentation and paging processes in translating a virtual address in a virtual address space to a physical address, said method comprising the steps of: (a) receiving said virtual address, as part of said segmentation process, said virtual address corresponding to a location in said virtual address space and containing only information unrelated to said paging process; (b) retrieving a segment descriptor, as part of said segmentation process, said segment descriptor providing information describing said segment without reference to whether a segment is paged or unpaged, said segment descriptor comprising at least a segment base address and a segment length; (c) comparing, as part of said segmentation process, at least a portion of said virtual address to said segment length and generating a fault if said portion of said virtual address exceeds said segment length; (d) combining, as a part of said segmentation process, said segment base address with said portion of said virtual address to produce a linear address having a page information field and a page displacement field; (e) receiving, as a part of said independently operating paging process, said linear address from said segmentation process; (f) retrieving, as part of said paging process, a page entry corresponding to a fixed length page, said page entry identifying a page base address; (g) producing said physical address corresponding to either (i) said linear address or (ii) said page base address combined with said page displacement field; and (h) accessing said main memory utilizing said physical address.
Claim 8
Independent Claim 267 words
A method of performing memory management in a computer system having a processor and a main memory, said method using independent segmentation and paging processes in translating a virtual address in a virtual address space to a physical address, said method comprising the steps of: (a) receiving said virtual address, as part of said segmentation process, said virtual address corresponding to a location in said virtual address space and containing only information unrelated to said paging process; (b) retrieving a segment descriptor, as part of said segmentation process, said segment descriptor providing information describing said segment without reference to whether a segment is paged or unpaged, said segment descriptor comprising at least a segment base address and a segment length; (c) comparing, as part of said segmentation process, at least a portion of said virtual address to said segment length and generating a fault if said portion of said virtual address exceeds said segment length; (d) combining, as a part of said segmentation process, said segment base address with said portion of said virtual address to produce a linear address having a page information field and a page displacement field; (e) receiving, as a part of said independently operating paging process, said linear address from said segmentation process; (f) retrieving, as part of said paging process, a page entry corresponding to a fixed length page, said page entry identifying a page base address; (g) producing said physical address corresponding to either (i) said linear address or (ii) said page base address combined with said page displacement field; and (h) accessing said main memory utilizing said physical address.
Claim 9
Dependent Claim 286 words
A virtual memory system having a virtual address space, said virtual address space being divisible into segments of any length, said virtual memory system comprising: (1) a microprocessor device for use in performing memory management using independent segmentation and paging and having an address translation unit, each of said segments being defined without reference to whether said segment is paged or unpaged, each of said segments having a base address in said virtual address space, said address translation unit having; (a) a segmentation unit for receiving a virtual address corresponding to a location in said virtual address space, said virtual address comprising only information unrelated to paging, said segmentation unit combining said segment base address with at least a portion of said virtual address to produce a linear address having at least a page displacement field; (b) a paging unit operating independently from said segmentation unit, said paging unit receiving said linear address from said segmentation unit and being enabled separately from said segmentation unit so that all segments are treated as paged segments when said paging unit is enabled and all segments are treated as unpaged segments when said paging unit is not enabled; said paging unit generating a partial address when enabled; and (c) address generating means for either (i) receiving said linear address and producing a physical address identical to said linear address when said paging unit is not enabled or (ii) receiving said page displacement field and said partial address and producing a physical address by combining said page displacement field with said partial address when said paging unit is enabled; and (2) a memory coupled with said address translation unit over a bus for receiving output of said address generating means.
Claim 10
Dependent Claim 286 words
A virtual memory system having a virtual address space, said virtual address space being divisible into segments of any length, said virtual memory system comprising: (1) a microprocessor device for use in performing memory management using independent segmentation and paging and having an address translation unit, each of said segments being defined without reference to whether said segment is paged or unpaged, each of said segments having a base address in said virtual address space, said address translation unit having; (a) a segmentation unit for receiving a virtual address corresponding to a location in said virtual address space, said virtual address comprising only information unrelated to paging, said segmentation unit combining said segment base address with at least a portion of said virtual address to produce a linear address having at least a page displacement field; (b) a paging unit operating independently from said segmentation unit, said paging unit receiving said linear address from said segmentation unit and being enabled separately from said segmentation unit so that all segments are treated as paged segments when said paging unit is enabled and all segments are treated as unpaged segments when said paging unit is not enabled; said paging unit generating a partial address when enabled; and (c) address generating means for either (i) receiving said linear address and producing a physical address identical to said linear address when said paging unit is not enabled or (ii) receiving said page displacement field and said partial address and producing a physical address by combining said page displacement field with said partial address when said paging unit is enabled; and (2) a memory coupled with said address translation unit over a bus for receiving output of said address generating means.
Claim 11
Dependent Claim 574 words
A memory management system, comprising: (a) a microprocessor device for performing memory management using independent segmentation and paging in a virtual memory system, said virtual memory system having a virtual address space that is divisible into segments of any length, said microprocessor device having a plurality of functional areas including an internal memory, and a plurality of address and data terminals, said microprocessor device comprising: (i) an internal bus for transferring information between said plurality of functional areas; (ii) a bus interface unit for transferring information between said internal bus and said plurality of address and data terminals; (iii) an address register for providing virtual memory addresses, each of said virtual memory addresses corresponding to a location in said virtual address space and containing only information that is unrelated to any paging function of said memory management system; and (iv) an address translation unit for receiving said virtual memory addresses from said address register, said address translation unit comprising: (A) a segmentation unit having at least one segment descriptor register for storing a segment descriptor, said segment descriptor providing information describing said segment without reference to whether a segment is paged or unpaged, said segment descriptor including at least a segment base address and a segment length, said segmentation unit including first circuitry for comparing at least a portion of said virtual address to said segment length and generating a fault if said portion of said virtual address exceeds said segment length, and for combining said segment base address with said portion of said virtual address to produce a linear address having a page information field and a page displacement field; and (B) a paging unit that operates independently from said segmentation unit, said paging unit receiving said linear address, said paging unit comprising: (1) a page cache for storing a plurality of page entries and tags for said page entries, said page entries representing memory addresses for fixed length pages; (2) second circuitry for comparing said page information field of said linear address to said tags and, if said page information field matches one of said pages, producing a page entry output corresponding to one of said page entries; (3) page table addressing circuitry, responsive to said second circuitry, for generating a page table address from a base address on one of said pages of fixed-length and at least a portion of said page information field of said linear address if said page information field does not match any of said pages, said page table addressing circuitry transferring said page table address to said internal bus and receiving a page table entry from said internal bus responsive to said transferring of said page table address to said internal bus; and (C) address generating circuitry for either (i) receiving said linear address and producing a physical address identical to said linear address or (ii) receiving said page displacement field and either said page entry output from said page cache or said page table entry from said page table addressing circuitry and producing a physical address by combining said page displacement field with either said received page entry output of said received page table entry, said address generating circuitry transferring said physical address to said plurality of address and data terminals via said internal bus structure; and (b) an external memory addressable by said plurality of address and data terminals, said external memory containing a plurality of descriptors for transferring to said segment descriptor register.
Claim 12
Dependent Claim 574 words
A memory management system, comprising: (a) a microprocessor device for performing memory management using independent segmentation and paging in a virtual memory system, said virtual memory system having a virtual address space that is divisible into segments of any length, said microprocessor device having a plurality of functional areas including an internal memory, and a plurality of address and data terminals, said microprocessor device comprising: (i) an internal bus for transferring information between said plurality of functional areas; (ii) a bus interface unit for transferring information between said internal bus and said plurality of address and data terminals; (iii) an address register for providing virtual memory addresses, each of said virtual memory addresses corresponding to a location in said virtual address space and containing only information that is unrelated to any paging function of said memory management system; and (iv) an address translation unit for receiving said virtual memory addresses from said address register, said address translation unit comprising: (A) a segmentation unit having at least one segment descriptor register for storing a segment descriptor, said segment descriptor providing information describing said segment without reference to whether a segment is paged or unpaged, said segment descriptor including at least a segment base address and a segment length, said segmentation unit including first circuitry for comparing at least a portion of said virtual address to said segment length and generating a fault if said portion of said virtual address exceeds said segment length, and for combining said segment base address with said portion of said virtual address to produce a linear address having a page information field and a page displacement field; and (B) a paging unit that operates independently from said segmentation unit, said paging unit receiving said linear address, said paging unit comprising: (1) a page cache for storing a plurality of page entries and tags for said page entries, said page entries representing memory addresses for fixed length pages; (2) second circuitry for comparing said page information field of said linear address to said tags and, if said page information field matches one of said pages, producing a page entry output corresponding to one of said page entries; (3) page table addressing circuitry, responsive to said second circuitry, for generating a page table address from a base address on one of said pages of fixed-length and at least a portion of said page information field of said linear address if said page information field does not match any of said pages, said page table addressing circuitry transferring said page table address to said internal bus and receiving a page table entry from said internal bus responsive to said transferring of said page table address to said internal bus; and (C) address generating circuitry for either (i) receiving said linear address and producing a physical address identical to said linear address or (ii) receiving said page displacement field and either said page entry output from said page cache or said page table entry from said page table addressing circuitry and producing a physical address by combining said page displacement field with either said received page entry output of said received page table entry, said address generating circuitry transferring said physical address to said plurality of address and data terminals via said internal bus structure; and (b) an external memory addressable by said plurality of address and data terminals, said external memory containing a plurality of descriptors for transferring to said segment descriptor register.

References Cited (Backward Citations)

US3047228A Cited
US3292152A Cited
GB1055630A Cited
US3303477A Cited
US3298001A Cited
US3351913A Cited
US3370274A Cited
US3437998A Cited
US3412382A Cited
US3454931A Cited
US3425039A Cited
US3473159A Cited
US3479649A Cited
US3510847A Cited
US3546677A Cited
US3461434A Cited
US3548384A Cited
US3525080A Cited
US3521240A Cited
US3601809A Cited
US3649767A Cited
GB1281387A Cited
US3787813A Cited
US3748653A Cited
US3786427A Cited
US3764996A Cited
US3761902A Cited
GB1360585A Cited
US3950730A Cited
US3818460A Cited
GB1457423A Cited
US4385352A Cited
US3839706A Cited
US3953717A Cited
US4077058A Cited
US4395757A Cited
US4394725A Cited
US4374409A Cited
US4177510A Cited
US3916385A Cited
US4068300A Cited
US3938096A Cited
US3891974A Cited
GB1498116A Cited
US4300192A Cited
US4369494A Cited
US4145734A Cited
US4173783A Cited
US4060849A Cited
FR2337373A1 Cited
GB1543736A Cited
US4079453A Cited
US4092715A Cited
US4128875A Cited
US4279014A Cited
US4449184A Cited
US4376297A Cited
GB1595740A Cited
US4447878A Cited
US4472771A Cited
US4356549A Cited
US4434459A Cited
US4615006A Cited
US4442484A Cited
US4377855A Cited
US4410941A Cited
US4432053A Cited
US4458310A Cited
US4441155A Cited
US4654777A Cited
US4523301A Cited
US4926316A Cited
GB2127994A Cited
CA1209709A Cited
EP0113240A2 Cited
US4613935A Cited
US4612612A Cited
US4691282A Cited
US4714993A Cited
US4646271A Cited
US4646271B1 Cited
US4587610A Cited
US4669043A Cited
US4656626A Cited
US4669034A Cited
US4933835A Cited
US4763250A Cited
US4758951A Cited
US4972338A Cited
US5173872A Cited
US4785398A Cited
US4847748A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-06-13 1997-12-13 1998-06-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-06-13 2001-12-13 2002-06-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-06-13 2005-12-13 2006-06-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag