Allocation for back-to-back misses in a directory based cache
First Claim
Patent Images
1. A memory system including a cache memory comprising:
- a plurality of memory blocks, each memory block being associated with a tag stored in a directory; and
a controller for determining if the contents at a selected memory address are stored in the cache by comparing the selected memory address to the addresses stored in the directory, if the selected memory address is not in the cache, allocating a place in the directory for selected address, wherein, if a place in the directory for an address having the same cache line as the selected memory address is in the process of allocation or has been previously allocated, the selected memory address is allocated to that location of the pending allocation or previously allocated place in the directory.
8 Assignments
0 Petitions
Accused Products
Abstract
A preferred embodiment of the present invention includes a memory caching system that uses a method for allocating blocks of memory by: determining if the contents at a selected memory address are stored in the cache by comparing the selected memory address to the addresses stored in the directory, if the selected memory address is not in the cache, allocating a place in the directory for selected address, wherein, if a place in the directory for an address having the same cache line as the selected memory address is in the process of allocating or has been previously allocated, the selected memory address is allocated to that location of the pending or previous allocation.
50 Citations
28 Claims
-
1. A memory system including a cache memory comprising:
-
a plurality of memory blocks, each memory block being associated with a tag stored in a directory; and
a controller for determining if the contents at a selected memory address are stored in the cache by comparing the selected memory address to the addresses stored in the directory, if the selected memory address is not in the cache, allocating a place in the directory for selected address, wherein, if a place in the directory for an address having the same cache line as the selected memory address is in the process of allocation or has been previously allocated, the selected memory address is allocated to that location of the pending allocation or previously allocated place in the directory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processing system comprising:
-
at least one processor;
a system memory; and
a cache memory that caches data stored in the system memory for delivery to the processor in response to access commands from the processor, comprising;
a plurality of memory blocks, each memory block being associated with a tag; and
a controller for determining if the contents at a selected memory address are stored in the cache by comparing the selected memory address to the addresses stored in the directory, if the selected memory address is not in the cache, allocating a place in the directory for selected address, wherein, if a place in the directory for an address having the same cache line as the selected memory address is in the process of allocation or has been previously allocated, the selected memory address is allocated to that location of the pending allocation or previously allocated place in the directory. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method for allocating blocks of memory in a cache memory, comprising the steps of:
-
determining if the contents at a selected memory address are stored in the cache by comparing the selected memory address to the addresses stored in the directory;
if the selected memory address is not in the cache, allocating a place in the directory for selected memory address, wherein, if a place in the directory for an address having the same cache line as the selected memory address is in the process of allocation or has been previously allocated, the selected memory address is allocated to that location of the pending allocation or previously allocated place in the directory. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method for data processing comprising the steps of:
-
providing at least one processor;
providing a system memory; and
providing a cache memory that caches data stored in the system memory for delivery to the processor in response to access commands from the processor, the cache memory including a plurality of memory blocks, each memory block being associated with a tag;
determining if the contents at a selected memory address are stored in the cache by comparing the selected memory address to the addresses stored in the directory;
if the selected memory address is not in the cache, allocating a place in the directory for selected memory selected address, wherein, if a place in the directory for an address having the same cache line as the selected memory address is in the process of allocation or has been previously allocated, the selected memory address is allocated to that location of the pending allocation or previously allocated place in the directory. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification