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

System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation

Assignee: Hewlett Packard Development Co LP
•
Filing: 1991-08-09
•
Granted: 1994-09-20
•
Expires: 2011-08-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In the field of high speed computers it is common for a central processing unit to reference memory locations via a virtual addressing scheme, rather than by the actual physical memory addresses. In a multi-tasking environment, this virtual addressing scheme reduces the possibility of different programs accessing the same physical memory location. Thus, to maintain computer processing speed, a high speed translation buffer cache is employed to perform the necessary virtual-to-physical conversions for memory reference instructions. The translation buffer cache stores a number of previously translated virtual addresses and their corresponding physical addresses. A memory management processor is employed to update the translation buffer cache with the most recently accessed physical memory locations. The memory management processor consists of a state machine controlling hardware specifically designed for the purpose of updating the translation buffer cache. The memory management processor calculates an address of a location in the memory where the physical address is stored concurrently with the translation buffer cache comparing the virtual address with already stored virtual addresses. With this arrangement the memory management unit can immediately access memory to retrieve the physical address upon a "miss" by the translation buffer cache.

Inventors

  • 👤 Ricky C. Hetherington
  • 👤 David A. Webb, Jr.
  • 👤 David B. Fite
  • 👤 John E. Murray
  • 👤 Tryggve Fossum
  • 👤 Dwight P. Manley

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 14:10
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0844; G06F12/0855; G06F12/10; G06F12/1027; G06F12/1045

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 337 words
A memory access unit for controlling access to a memory by a data processing unit of a digital computer system, said data processing unit providing a plurality of virtual addresses to said memory access unit and said memory access unit providing a corresponding plurality of physical addresses to said memory, said memory having a plurality of memory locations, each of said memory locations storing one of the plurality of physical addresses, said memory access unit comprising: a translation buffer including: a) a translation buffer cache of previously converted virtual addresses and corresponding physical addresses, b) means for comparing a current virtual address to the translation buffer cache of previously converted virtual addresses and delivering one of a miss and hit signal in response to respectively detecting an absence and presence of a match between the current virtual address and one of said previously converted virtual addresses, and c) means responsive to receiving said hit signal for delivering to said memory the physical address from said translation buffer cache corresponding to the current virtual address; and a memory management processor for updating said translation buffer cache in response to receiving said miss signal, said memory management processor including: a) means for calculating a memory address of one of said memory locations containing the physical address corresponding to said current virtual address, b) means for retrieving the physical address corresponding to said current virtual address from the memory using the calculated memory address from the means for calculating, and c) means for storing in said translation buffer cache the retrieved physical address in correspondence with said current virtual address; wherein said translation buffer and said means for calculating are interconnected for receiving and operating concurrently upon a same virtual address from the data processing unit so that said means for calculating performs the calculation of the memory address of the memory location containing the physical address concurrently with the translation buffer performing the comparing of the current virtual address to the translation buffer cache of previously converted virtual addresses.
Claim 2
Dependent Claim 337 words
A memory access unit for controlling access to a memory by a data processing unit of a digital computer system, said data processing unit providing a plurality of virtual addresses to said memory access unit and said memory access unit providing a corresponding plurality of physical addresses to said memory, said memory having a plurality of memory locations, each of said memory locations storing one of the plurality of physical addresses, said memory access unit comprising: a translation buffer including: a) a translation buffer cache of previously converted virtual addresses and corresponding physical addresses, b) means for comparing a current virtual address to the translation buffer cache of previously converted virtual addresses and delivering one of a miss and hit signal in response to respectively detecting an absence and presence of a match between the current virtual address and one of said previously converted virtual addresses, and c) means responsive to receiving said hit signal for delivering to said memory the physical address from said translation buffer cache corresponding to the current virtual address; and a memory management processor for updating said translation buffer cache in response to receiving said miss signal, said memory management processor including: a) means for calculating a memory address of one of said memory locations containing the physical address corresponding to said current virtual address, b) means for retrieving the physical address corresponding to said current virtual address from the memory using the calculated memory address from the means for calculating, and c) means for storing in said translation buffer cache the retrieved physical address in correspondence with said current virtual address; wherein said translation buffer and said means for calculating are interconnected for receiving and operating concurrently upon a same virtual address from the data processing unit so that said means for calculating performs the calculation of the memory address of the memory location containing the physical address concurrently with the translation buffer performing the comparing of the current virtual address to the translation buffer cache of previously converted virtual addresses.
Claim 3
Dependent Claim 72 words
The memory access unit as claimed in claim 1, wherein said memory includes system and process memory sections, said means for calculating includes means for differentiating between a system virtual address and a process virtual address, and said means for retrieving includes means for delivering the calculated memory address of a system virtual address to said memory and delivering the calculated memory address of a process virtual address to said translation buffer.
Claim 4
Dependent Claim 84 words
The memory access unit as claimed in claim 2, wherein said means for calculating includes means for comparing the system virtual address to a predefined first limit and delivering a fault signal to said data processing unit in response to the system virtual address exceeding said predefined first limit, and means for comparing the process virtual address to a predefined second limit and delivering a fault signal to said data processing unit in response to the process virtual address exceeding said predefined second limit.
Claim 5
Dependent Claim 48 words
(Amended) The memory access unit as claimed in claim 1, wherein said means for calculating includes means for comparing the current virtual address to a predetermined limit and delivering a fault signal to said data processing unit in response to the current virtual address exceeding said predetermined limit.
Claim 6
Dependent Claim 70 words
The memory access unit as claimed in claim 1, wherein said data processing unit includes means for performing multi-precision operations upon data retrieved sequentially from memory in a predefined sequence, said means for calculating includes an arithmetic unit, and said memory access unit includes means for operating said arithmetic unit for sequentially producing the memory addresses in said sequence one at a time in response to receiving said hit signal.
Claim 7
Dependent Claim 32 words
The memory access unit as claimed in claim 1, wherein said memory access unit includes a state machine controlling said means for calculating, said means for retrieving, and said means for storing.
Claim 8
Dependent Claim 341 words
A memory management processor for controlling conversion of a plurality of virtual addresses to a corresponding plurality of physical addresses in a digital computer; said digital computer having a data processing unit providing said virtual addresses, a memory receiving said physical addresses, said memory having a plurality of memory locations, each of said memory locations storing one of the plurality of physical addresses, and a translation buffer including a translation buffer cache of previously converted virtual addresses and corresponding physical addresses; said translation buffer cache having means for comparing a current virtual address from said data processing unit to the translation buffer cache of previously converted virtual addresses, and delivering one of a miss and hit signal in response to respectively detecting an absence and presence of a match between the current virtual address and one of said previously converted virtual addresses, and means responsive to receiving said hit signal for delivering to said memory the physical address from said translation buffer cache corresponding to the current virtual address; said memory management processor comprising, in combination: means for calculating a memory address of one of said memory locations containing said physical address corresponding to said current virtual address, wherein said means for calculating is operative concurrently with said means for comparing said current virtual address to the translation buffer cache of previously converted virtual addresses; means for retrieving said physical address corresponding to said current virtual address from the memory using the calculated memory address from the means for calculating in response to said miss signal; means for storing in said translation buffer cache said retrieved physical address in correspondence with said current virtual address; and control means for operating said means for calculating concurrently with each of said virtual addresses being received by said translation buffer from said data processing unit and compared to the translation buffer cache of previously converted virtual addresses, and for controlling said means for retrieving and said means for storing in response to said miss signal, wherein said control means is a sequential state machine.
Claim 9
Dependent Claim 341 words
A memory management processor for controlling conversion of a plurality of virtual addresses to a corresponding plurality of physical addresses in a digital computer; said digital computer having a data processing unit providing said virtual addresses, a memory receiving said physical addresses, said memory having a plurality of memory locations, each of said memory locations storing one of the plurality of physical addresses, and a translation buffer including a translation buffer cache of previously converted virtual addresses and corresponding physical addresses; said translation buffer cache having means for comparing a current virtual address from said data processing unit to the translation buffer cache of previously converted virtual addresses, and delivering one of a miss and hit signal in response to respectively detecting an absence and presence of a match between the current virtual address and one of said previously converted virtual addresses, and means responsive to receiving said hit signal for delivering to said memory the physical address from said translation buffer cache corresponding to the current virtual address; said memory management processor comprising, in combination: means for calculating a memory address of one of said memory locations containing said physical address corresponding to said current virtual address, wherein said means for calculating is operative concurrently with said means for comparing said current virtual address to the translation buffer cache of previously converted virtual addresses; means for retrieving said physical address corresponding to said current virtual address from the memory using the calculated memory address from the means for calculating in response to said miss signal; means for storing in said translation buffer cache said retrieved physical address in correspondence with said current virtual address; and control means for operating said means for calculating concurrently with each of said virtual addresses being received by said translation buffer from said data processing unit and compared to the translation buffer cache of previously converted virtual addresses, and for controlling said means for retrieving and said means for storing in response to said miss signal, wherein said control means is a sequential state machine.
Claim 10
Dependent Claim 71 words
The memory management processor as claimed in claim 7, wherein said memory includes system and process memory sections, said means for calculating includes means for differentiating between a system virtual address and a process virtual address, and said retrieving means includes means for delivering the calculated memory address of a system virtual address to said memory and delivering the calculated memory address of a process virtual address to said translation buffer.
Claim 11
Dependent Claim 84 words
The memory management processor as claimed in claim 8, wherein said means for calculating includes means for comparing the system virtual address to a predefined first limit and delivering a fault signal to said data processing unit in response to the system virtual address exceeding said predefined first limit, and means for comparing the process virtual address to a predefined second limit and delivering a fault signal to said data processing unit in response to the process virtual address exceeding said predefined second limit.
Claim 12
Dependent Claim 47 words
The memory management processor as claimed in claim 7, wherein said means for calculating includes means for comparing the current virtual address to a predetermined limit and delivering a fault signal to said data processing unit in response to the current virtual address exceeding said predetermined limit.
Claim 13
Dependent Claim 70 words
The memory management processor as claimed in claim 7, wherein said data processing unit includes means for performing multi-precision operations upon data retrieved sequentially from memory in a predefined sequence, said means for calculating includes an arithmetic unit, and said memory access unit includes means for operating said arithmetic unit for sequentially producing the memory addresses in said sequence one at a time in response to receiving said hit signal.
Claim 14
Independent Claim 288 words
A method of controlling conversion of a plurality of virtual addresses to a corresponding plurality of physical addresses in a digital computer; said digital computer having a data processing unit providing said virtual addresses, a memory receiving said physical addresses, said memory having a plurality of memory locations, each of said memory locations storing one of the plurality of physical addresses, and a translation buffer including a translation buffer cache of previously converted virtual addresses and corresponding physical addresses; said translation buffer cache having means for comparing a current virtual address from said data processing unit to the translation buffer cache of previously converted virtual addresses, and delivering one of a miss and hit signal in response to respectively detecting an absence and presence of a match between the current virtual address and one of said translation buffer cache of previously converted virtual addresses, and means responsive to receiving said hit signal for delivering to said memory the physical address from said translation buffer cache corresponding to the current virtual address; said method comprising the steps of: concurrently with said translation buffer comparing the current virtual address from said data processing unit to the translation buffer cache of previously converted virtual addresses, operating an arithmetic unit to calculate a memory address of one of said memory locations containing said physical address corresponding to said current virtual address; retrieving said physical address corresponding to said current virtual address from the memory using the calculated memory address from the arithmetic unit when said miss signal is delivered, and storing the retrieved physical address in said translation buffer cache; and retrieving the physical address corresponding to said current virtual address from the translation buffer cache when said hit signal is delivered.
Claim 15
Independent Claim 288 words
A method of controlling conversion of a plurality of virtual addresses to a corresponding plurality of physical addresses in a digital computer; said digital computer having a data processing unit providing said virtual addresses, a memory receiving said physical addresses, said memory having a plurality of memory locations, each of said memory locations storing one of the plurality of physical addresses, and a translation buffer including a translation buffer cache of previously converted virtual addresses and corresponding physical addresses; said translation buffer cache having means for comparing a current virtual address from said data processing unit to the translation buffer cache of previously converted virtual addresses, and delivering one of a miss and hit signal in response to respectively detecting an absence and presence of a match between the current virtual address and one of said translation buffer cache of previously converted virtual addresses, and means responsive to receiving said hit signal for delivering to said memory the physical address from said translation buffer cache corresponding to the current virtual address; said method comprising the steps of: concurrently with said translation buffer comparing the current virtual address from said data processing unit to the translation buffer cache of previously converted virtual addresses, operating an arithmetic unit to calculate a memory address of one of said memory locations containing said physical address corresponding to said current virtual address; retrieving said physical address corresponding to said current virtual address from the memory using the calculated memory address from the arithmetic unit when said miss signal is delivered, and storing the retrieved physical address in said translation buffer cache; and retrieving the physical address corresponding to said current virtual address from the translation buffer cache when said hit signal is delivered.
Claim 16
Dependent Claim 80 words
The method of controlling the conversion of virtual memory addresses to corresponding physical memory addresses as claimed in claim 12, wherein said memory includes system and process memory sections, said step of operating said arithmetic unit includes differentiating between a system virtual address and a process virtual address, and said step of retrieving includes delivering the calculated address of a system virtual address to said memory and delivering the calculated address of a process virtual address to said translation buffer.
Claim 17
Dependent Claim 94 words
The method of controlling the conversion of virtual memory addresses to corresponding physical memory addresses as claimed in claim 13, wherein said step of operating said arithmetic unit includes comparing the system virtual address to a predefined first limit and delivering a fault signal to said data processing unit in response to the system virtual address exceeding said predefined first limit, and comparing the process virtual address to a predefined second limit and delivering a fault signal to said data processing unit in response to the process virtual address exceeding said predefined second limit.
Claim 18
Dependent Claim 59 words
The method of controlling the conversion of virtual memory addresses to corresponding physical memory addresses as claimed in claim 12, wherein said step of operating said arithmetic unit includes comparing the current virtual address to a predetermined limit and delivering a fault signal to said data processing unit in response to the current virtual address exceeding said predetermined limit.
Claim 19
Dependent Claim 70 words
The method of controlling the conversion of virtual memory addresses to corresponding physical memory addresses as claimed in claim 12, wherein said data processing unit includes means for performing multi-precision operations upon data retrieved sequentially from memory in a predefined sequence, and wherein said method includes operating said arithmetic unit to sequentially produce the memory addresses in said sequence one at a time in response to receiving said hit signal.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag