Claims
- 1. A co-processor adapted for using virtual memory with host processing equipment, a memory being coupled to said host processing equipment to implement said virtual memory, said co-processor including:a virtual-physical memory mapper adapted to interrogate a virtual memory table and map one or more virtual memory addresses requested by said co-processor into corresponding physical addresses in said memory coupled to said host processing equipment, wherein said virtual memory table is a page table stored in a plurality of physical pages of said memory and comprises a plurality of entries each containing one said virtual memory address and one said corresponding physical address, said virtual-physical memory mapper comprising: a storing unit, adapted to store a physical address of each one of said plurality of physical pages constituting said page table; a hasher, adapted to hash said requested virtual memory address using a hash function to produce a page table index, wherein said page table index comprises a first predefined number of bits indicating one of said stored physical addresses of said plurality of physical pages constituting said page table, and a second predefined number of remaining bits indicating an entry within a physical page; a selector unit, adapted to select one of said stored physical addresses of said plurality of physical pages constituting said page table in response to said first predefined number of bits of said produced page table index; an address generator, adapted to generate a physical address of an entry within a physical page using said selected physical address and said second predefined number of remaining bits of said produced page table index; and an address retriever, adapted to retrieve said physical address contained in said entry table corresponding to said requested virtual memory address using said generated physical address.
- 2. The co-processor according to claim 1, wherein said virtual memory table is stored in two or more non-contiguously addressable regions of said memory.
- 3. The co-processor according to claim 1, wherein said virtual-physical memory mapper further includes:a multiple-entry translation lookaside buffer for caching virtual-to-physical address mappings.
- 4. The co-processor according to claim 3, wherein said virtual-physical memory mapper further includes:a buffer entry check unit, adapted to compare, replace, singly invalidate and multiply invalidate one or more entries of said translation lookaside buffer.
- 5. The co-processor according to claim 3, wherein said translation lookaside buffer is adapted to replace entries therein on a least-recently-used replacement basis.
- 6. The co-processor according to claim 3, wherein said hasher hashes said virtual memory address upon occurrence of a miss in said translation lookaside buffer.
- 7. A method of operating a co-processor to use virtual memory with host processing equipment, wherein said virtual memory is implemented in a memory coupled to said host processing equipment, said method including the steps of:interrogating a virtual memory table; and mapping one or more virtual memory addresses requested by said co-processor into corresponding physical addresses in said memory coupled to said host processing equipment, wherein said virtual memory table is a page table stored in a plurality of physical pages of said memory and comprises a plurality of entries each containing a virtual memory address and a corresponding physical address, a physical address of each one of said plurality of physical pages constituting said page table are stored in a storing unit, and said mapping step comprises the sub-steps of: hashing said requested virtual memory address using a hash function to produce a page table index, wherein said page table index comprises a first predefined number of bits indicating one of said stored physical addresses of said plurality of physical pages constituting said page table, and a second predefined number of remaining bits indicating an entry within a physical page; selecting one of said physical addresses of said plurality of physical pages constituting said page table in response to said first predefined number of bits of said produced page table index; generating a physical address of an entry within a physical page using said selected physical address and said second predefined number of remaining bits of said produced page table index; and retrieving said physical address contained in said entry corresponding to said requested virtual memory address using said generated physical address.
- 8. The method according to claim 7, wherein said virtual memory table is stored in two or more non-contiguously addressable regions of said memory.
- 9. The method according to claim 7, further including the step of:caching virtual-to-physical address mappings in a multiple-entry translation lookaside buffer.
- 10. The method according to claim 9, further including the steps of:comparing, replacing, singly invalidating and multiply invalidating one or more entries of said translation lookaside buffer.
- 11. The method according to claim 9, wherein entries of said translation lookaside buffer are replaced on a least-recently-used replacement basis.
- 12. The method according to claim 9, wherein said hashing step is initiated upon occurrence of a miss in said translation lookaside buffer.
- 13. A system for managing virtual memory, said system including:host processing equipment; a host memory coupled to said host processing equipment to implement said virtual memory; a co-processor adapted for using virtual memory; a virtual-physical memory mapping unit, coupled to said co-processor, for interrogating a virtual memory table and for mapping one or more virtual memory addresses requested by said co-processor into corresponding physical addresses in said host memory coupled to said host processing equipment, wherein said virtual memory table is a page table stored in a plurality of physical pages of said host memory and comprises a plurality of entries each containing one said virtual memory address and one said corresponding physical address, and said virtual-physical memory mapping unit comprises: a storing unit, adapted to store a physical address of each one of said plurality of physical pages constituting said page table; a hasher, adapted to hash said requested virtual memory address using a hash function to produce a page table index, wherein said page table index comprises a first predefined number of bits indicating one of said stored physical addresses of said plurality of physical pages constituting said page table, and a second predefined number of remaining bits indicating an entry within a physical page; a selector unit, adapted to select one of said stored physical addresses of said plurality of physical pages constituting said page table in response to said first predefined number of bits of said produced page table index; an address generator, adapted to generate a physical address of a entry within a physical page using said selected physical address and said second predefined number of remaining bits of said produced page table index; and an address retriever, adapted to retrieve said physical address contained in said entry corresponding to said requested virtual memory address using said generated physical address.
- 14. The system according to claim 13, wherein said virtual memory table is stored in two or more non-contiguously addressable regions of said host memory.
- 15. The system according to claim 13, wherein said virtual-physical memory mapping unit further includes:a multiple-entry translation lookaside buffer for caching virtual-to-physical memory address translations, each memory address translation including a virtual-memory page address and a corresponding physical page address.
- 16. The system according to claim 15, wherein said virtual-physical memory mapping unit further includes:a buffer entry checker, adapted to compare, replace, singly invalidate and multiply invalidate one or more entries of said translation lookaside buffer.
- 17. The system according to claim 15, wherein said translation lookaside buffer is adapted to replace entries therein on a least-recently-used replacement basis.
- 18. The system according to claim 15, wherein said hasher hashes said virtual memory address upon an occurrence of a miss in said translation lookaside buffer.
- 19. The system according to claim 15, wherein said virtual memory comprises a plurality of virtual-memory pages contained in said host memory.
Priority Claims (5)
| Number |
Date |
Country |
Kind |
| PO6487 |
Apr 1919 |
AU |
|
| PO6481 |
Apr 1997 |
AU |
|
| PO6488 |
Apr 1997 |
AU |
|
| PO6489 |
Apr 1997 |
AU |
|
| PO6491 |
Apr 1997 |
AU |
|
Parent Case Info
This application is a continuation of application Ser. No. 09/025,755 filed Feb. 18, 1998, now U.S. Pat. No. 6,336,180.
US Referenced Citations (143)
Foreign Referenced Citations (45)
| Number |
Date |
Country |
| 0086380 |
Aug 1983 |
EP |
| 0115179 |
Aug 1984 |
EP |
| 0150060 |
Jul 1985 |
EP |
| 0154340 |
Sep 1985 |
EP |
| 0154341 |
Sep 1985 |
EP |
| 0184547 |
Jun 1986 |
EP |
| 0272705 |
Jun 1986 |
EP |
| 0205712 |
Dec 1986 |
EP |
| 0206892 |
Dec 1986 |
EP |
| 0218287 |
Apr 1987 |
EP |
| 0254824 |
Feb 1988 |
EP |
| 0274376 |
Jul 1988 |
EP |
| 0275979 |
Jul 1988 |
EP |
| 0286183 |
Oct 1988 |
EP |
| 0311034 |
Apr 1989 |
EP |
| 0335306 |
Oct 1989 |
EP |
| 0335990 |
Oct 1989 |
EP |
| 0343992 |
Nov 1989 |
EP |
| 0348703 |
Jan 1990 |
EP |
| 0360155 |
Mar 1990 |
EP |
| 0380720 |
Aug 1990 |
EP |
| 0383678 |
Aug 1990 |
EP |
| 0472961 |
Mar 1992 |
EP |
| 0482864 |
Apr 1992 |
EP |
| 0486154 |
May 1992 |
EP |
| 0506111 |
Sep 1992 |
EP |
| 0523764 |
Jan 1993 |
EP |
| 0525749 |
Feb 1993 |
EP |
| 0535893 |
Apr 1993 |
EP |
| 0588726 |
Mar 1994 |
EP |
| 0589682 |
Mar 1994 |
EP |
| 0593046 |
Apr 1994 |
EP |
| 0600112 |
Jun 1994 |
EP |
| 0612007 |
Aug 1994 |
EP |
| 0623799 |
Nov 1994 |
EP |
| 0626661 |
Nov 1994 |
EP |
| 0655712 |
May 1995 |
EP |
| 0655854 |
May 1995 |
EP |
| 0660247 |
Jun 1995 |
EP |
| 0674266 |
Sep 1995 |
EP |
| 0675632 |
Oct 1995 |
EP |
| 0692913 |
Jan 1996 |
EP |
| 0708563 |
Apr 1996 |
EP |
| 0714166 |
May 1996 |
EP |
| 0720104 |
Jul 1996 |
EP |
Non-Patent Literature Citations (1)
| Entry |
| Arai et al., “A Fast DCT-SQ Scheme for Images,” Trans. IEICE, vol. E 71, No. 11, 11/88 pp. 1095-1097. |
Continuations (1)
|
Number |
Date |
Country |
| Parent |
09/025755 |
Feb 1998 |
US |
| Child |
09/873429 |
|
US |