IP Library Granted Patent US 11,868,692
Granted Patent B2
US 11,868,692 · App. 17/221,535 · Granted Jan 9, 2024

Address generators for verifying integrated circuit hardware designs for cache memory

Inventors: Anthony Wood (Bristol, GB); Philip Chambers (Bristol, GB)
Assignee: Imagination Technologies Limited
G06F30/33G06F12/082G06F30/3308G11C29/54G06F12/0864G06F30/367G06F30/398G06F2117/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,868,692
App. No.
17/221,535
Granted
Jan 9, 2024
Kind
B2
Abstract

Address generators for use in verifying an integrated circuit hardware design for an n-way set associative cache. The address generator is configured to generate, from a reverse hashing algorithm matching the hashing algorithm used by the n-way set associative cache, a list of cache set addresses that comprises one or more addresses of the main memory corresponding to each of one or more target sets of the n-way set associative cache. The address generator receives requests for addresses of main memory from a driver to be used to generate stimuli for testing an instantiation of the integrated circuit hardware design for the n-way set associative cache. In response to receiving a request the address generator provides an address from the list of cache set addresses.

Claims (56)

1. A system to verify an integrated circuit hardware design for an n-way set associative cache, the n-way set associative cache configured to store a subset of data stored in a main memory, the system comprising:

one or more processors; and

memory comprising computer executable instructions that when executed by the one or more processors cause the one or more processors to implement:

an address generator configured to:

receive an address request;

in response to receiving the address request, select an address from a list of cache set addresses, the list of cache set addresses comprising one or more addresses of the main memory corresponding to each of one or more target sets; and

provide the selected address to a driver to apply stimulus to an instantiation of the integrated circuit hardware design for the n-way set associative cache based on the received address.

2. The system of claim 1 , wherein the system further comprises an interface, and wherein the address generator is configured to:

receive the address request from the interface; and

provide the selected address to the interface which provides the received selected address to the driver.

3. The system of claim 1 , wherein the address generator comprises a cache set address generator module and at least one other address generator module, wherein each address generator module is configured to:

receive an address request;

in response to receiving the address request, select an address of the main memory in a different manner than the cache set address generator module; and

provide the selected address.

4. The system of claim 3 , and the system is further configured to, in response to receiving the address request at the address generator, select one of the address generator modules to fulfill the received address request by:

determining whether the received address request is a generic request; and

in response to determining the address request is a generic request, selecting one of the address generator modules to fulfill the received request based on one or more selection parameters, the one or more selection parameters specifying at least a weighting of one or more of the address generator modules that influences the likelihood that a particular address generator module will be selected to fulfill the received address request.

5. The system of claim 3 , being further configured to, in response to receiving the address select one of the address generator modules to fulfill the received address request by:

determining whether the received address request is a method-specific request, a method-specific request specifying a particular address generator module to fulfill the address request; and

in response to determining that the address request is a method-specific request, selecting the particular address generator module specified in the address request to fulfill the received address request.

6. The system of claim 1 , wherein the address generator comprises a random address generator module configured to, in response to receiving an address request, pseudo-randomly select an address of the main memory.

7. The system of claim 1 , wherein the address generator comprises a previous address generator module configured to, in response to receiving an address request, select an address from the list of previous addresses, wherein the address generator records the address provided to the driver in a list of previous addresses.

8. The system of claim 1 , wherein the address generator comprises a previous atomic address generator module configured to, in response to receiving an address request, select an address from the list of previous atomic addresses, wherein the address generator records the address provided to the driver in a list of previous atomic addresses if the address provided to the driver is marked as an atomic address.

9. The system of claim 1 , wherein the address generator configured to:

generate a list of cache set addresses that comprises one or more addresses of the main memory corresponding to each of one or more target sets of sets of the n-way set associative cache.

10. The system of claim 9 , wherein the address generator is configured to generate the list of cache set addresses by:

selecting a subset of sets of the n-way set associative cache as the one or more target sets;

mapping each target set to one or more addresses of the main memory using a reverse hashing algorithm which matches a hashing function performed by the n-way set associative cache; and

storing the one or more addresses for each target set in the list of cache set addresses.

11. The system of claim 1 , wherein the integrated circuit hardware design for the n-way set associative cache, when processed in an integrated circuit manufacturing system, configures the integrated circuit manufacturing system to manufacture an n-way set associative cache.

12. The system of claim 1 , further comprising:

the driver configured to:

send the address request to the address generator;

receive the address provided by the address generator;

generate stimulus for the n-way set associative cache based on the received address; and

apply the generated stimulus to an instantiation of the integrated circuit hardware design for the n-way set associative cache.

13. A method of verifying an integrated circuit hardware design for an n-way set associative cache, the n-way set associative cache configured to store a subset of data stored in a main memory, the method comprising:

in response to receiving an address request at an address generator, selecting an address from a list of cache set addresses, the list of cache set addresses comprising one or more addresses of the main memory corresponding to each of one or more target sets; and

providing the selected address from the address generator to a driver to apply stimulus to an instantiation of the integrated circuit hardware design for the n-way set associative cache based on the received address.

14. The method of claim 13 , further comprising:

in response to receiving the address request at the address generator from an interface, one or more address generator modules of the address generator, selects an address of the main memory in a different manner than a cache set address generator module; and

provides the selected address to the interface which provides the received selected address to the driver.

15. The method of claim 14 , further comprising, in response to receiving the address request at the address generator, selecting one of address generator modules to fulfill the received address request by:

determining whether the received address request is a generic request; and

in response to determining the address request is a generic request, selecting one of the address generator modules to fulfill the received request based on one or more selection parameters, the one or more selection parameters specifying at least a weighting of one or more of the address generator modules that influences the likelihood that a particular address generator module will be selected to fulfill the received address request.

16. The method of claim 14 further comprising, in response to receiving the address request at the address generator, selecting one of the address generator modules to fulfill the received address request by:

determining whether the received address request is a method-specific request, a method-specific request specifying a particular address generator module to fulfill the address request; and

in response to determining that the address request is a method-specific request, selecting the particular address generator module specified in the address request to fulfill the received address request.

17. The method of claim 13 , further comprising, in response to receiving an address request at a random address generator module of the address generator, pseudo-randomly selecting an address of the main memory and providing the selected address to the interface.

18. The method of claim 13 , further comprising:

recording the address provided to the driver in a list of previous addresses; and

in response to receiving an address request at a previous address generator module of the address generator, selecting an address from the list of previous addresses and providing the selected address.

19. The method of claim 13 , further comprising:

recording the address provided to the driver in a list of previous atomic addresses if the address provided to the driver is marked as an atomic address; and

in response to receiving an address request at a previous atomic address generator module of the address generator, selecting an address from the list of previous atomic addresses and providing the selected address to the interface.

20. A non-transitory computer readable storage medium having stored thereon computer executable instructions, which when executed cause at least one processor to perform the method as set forth in claim 13 .

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →