A memory subsystem includes a test engine coupled to a memory controller that can provide memory access transactions to the memory controller, bypassing a memory address decoder. The test engine hardware is configurable for different tests. The test engine identifies a range of addresses through which to iterate a test sequence in response to receiving a software instruction indicating a test to perform. For each iteration of the test, the test engine, via the selected hardware, generates a memory access transaction, selects an address from the range, and sends the transaction to the memory controller. The memory controller schedules memory device commands in response to the transaction, which causes the memory device to execute operations to carry out the transaction.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: receiving, by a test engine, a memory test software instruction indicating a test to perform on a memory device; selecting hardware of the test engine to execute the test; identifying a range of addresses through which to iterate a test sequence to execute the test; and for each iteration of the test sequence to cover the range of addresses, generating a memory access transaction; determining a specific physical address in the address range; and sending the memory access transaction with the specific physical address, bypassing a memory address decoder associated with a memory controller of the memory device, to cause the memory controller to generate and schedule memory device commands for the memory device to execute to carry out the transaction.
2. The method of claim 1 , wherein receiving the memory test software instruction comprises receiving an instruction from a basic input/output system (BIOS).
3. The method of claim 1 , wherein receiving the memory test software instruction comprises receiving an instruction that complies with van de Goor's notation.
4. The method of claim 1 , wherein selecting the hardware of the test engine comprises dynamically reprogramming hardware resources of the test engine.
5. The method of claim 4 , wherein the memory test includes multiple test sequences, each iterated through the selected address range, and wherein reprogramming the hardware resources of the test engine comprises configuring the hardware resources prior to each test sequence.
6. The method of claim 1 , wherein identifying the range of addresses comprises identifying all addresses in the memory device.
7. The method of claim 1 , wherein identifying the range of addresses further comprises specifying an order of address incrementing for each iteration.
8. The method of claim 1 , wherein identifying the range of addresses further comprises specifying a rate of address incrementing for each iteration.
9. The method of claim 1 , wherein identifying the range of addresses further comprises specifying a specific start address and a specific stop address.
10. The method of claim 1 , wherein generating the memory access transaction comprises generating a command plus specific memory location address information.
11. The method of claim 10 , wherein generating the command comprises generating a read command identifier or a write command identifier.
12. The method of claim 1 , further comprising saving an intermediate copy of an address during an iteration of the test sequence, and wherein determining the specific physical address comprises restoring a saved intermediate copy of an address.
13. The method of claim 1 , wherein determining the specific physical address comprises computing an address as a base address plus an offset.
14. The method of claim 13 , wherein computing the address as a base address plus an offset comprises computing an address for performing a test of a programmable size hypercube.
15. The method of claim 1 , wherein determining the specific physical address comprises performing address inversion.
16. The method of claim 1 , wherein determining the specific physical address comprises performing random address incrementing.
17. A memory subsystem comprising: a memory device to store data and execute memory device commands to access and manage the data; a memory controller coupled to the memory device to issue the memory device commands, the memory controller including a scheduler that determines an order in which to send the memory device commands to the memory device; and test engine hardware coupled to the memory controller, the coupling to bypass a memory address decoder of the memory controller, wherein the test engine hardware is to identify a range of addresses through which to iterate a test sequence to execute a test in response to a test software instruction indicating a test to perform on the memory device, and for each iteration of the test sequence to cover the range of addresses, generate a memory access transaction, determine a specific physical address in the address range, and send the memory access transaction with the specific physical address to cause the memory controller to generate and schedule memory device commands for the memory device to execute to carry out the transaction.
18. The memory subsystem of claim 17 , further comprising a debug port through which to connect to a remote test administrator processor, wherein the remote test administrator processor is to generate the test software command.
19. The memory subsystem of claim 17 , wherein the test engine is to receive an instruction that complies with van de Goor's notation.
20. The memory subsystem of claim 17 , wherein the hardware resources of the test engine are reprogrammed to select the hardware.
21. The memory subsystem of claim 17 , wherein the test engine is to identify all addresses in the memory device.
22. The memory subsystem of claim 17 , wherein the test engine is to generate a command identifier plus specific memory location address information.
23. The memory subsystem of claim 22 , wherein the command identifier comprises a read command identifier or a write command identifier.
24. An electronic device comprising: a memory subsystem having a memory device to store data and execute memory device commands to access and manage the data; a memory controller coupled to the memory device to issue the memory device commands, the memory controller including a scheduler that determines an order in which to send the memory device commands to the memory device; and test engine hardware coupled to the memory controller, the coupling to bypass a memory address decoder of the memory controller, wherein the test engine hardware is to identify a range of addresses through which to iterate a test sequence to execute a test in response to a test software instruction indicating a test to perform on the memory device, and for each iteration of the test sequence to cover the range of addresses, generate a memory access transaction, determine a specific physical address in the address range, and send the memory access transaction with the specific physical address to cause the memory controller to generate and schedule memory device commands for the memory device to execute to carry out the transaction; and a touchscreen display coupled to display memory stored in the memory subsystem.
25. The electronic device of claim 24 , further comprising a debug port through which to connect to a remote test administrator processor, wherein the remote test administrator processor is to generate the test software command.
26. The electronic device of claim 24 , wherein the test engine is to receive an instruction that complies with van de Goor's notation.
27. The electronic device of claim 24 , wherein the hardware resources of the test engine are reprogrammed to select the hardware.
28. The electronic device of claim 24 , wherein the test engine is to identify all addresses in the memory device.
29. The electronic device of claim 24 , wherein the test engine is to generate a command identifier plus specific memory location address information.
30. The electronic device of claim 29 , wherein the command identifier comprises a read command identifier or a write command identifier.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 29, 2012
April 7, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.