Claims
- 1. A method for managing a memory system having a plurality of subsystems, comprising the steps of:
upon accessing the subsystems for a piece of data used by a first process,
determining the access time to acquire the piece of data in the memory system; comparing the determined access time to a threshold; and taking an action based on the results of the comparing step; wherein accessing the subsystems is in a non-sequential order.
- 2. The method of claim 1 wherein data blocks containing the piece of data is placed in the memory system based on information selected in one or a combination of:
a movement pattern of data in a data block, a structure of the memory system, and a cache-level architecture in the memory system.
- 3. The method of claim 1 further comprising the steps of:
using a memory table having entries pointing to data blocks storing data for at least one subsystem; and using the entries to locate the access data.
- 4. The method of claim 3 wherein the memory table working with a memory manager managing the data blocks independent of an operating system working with the memory system and independent of a processor working with the memory system.
- 5. The method of claim 1 further comprising the steps of:
using a memory table having entries pointing to data blocks storing data for the memory system; and the memory table using a physical address of a memory page corresponding to the piece of access data to convert to a location address corresponding to an entry pointing to the location of the piece of access data.
- 6. A method for managing a memory system, comprising the steps of:
upon accessing the memory system for a piece of data used by a first process,
a processor working with the memory system continuing its functions until it is stalled; comparing the time taken to complete the memory access to a threshold; and if the time taken to complete the memory access is close to, equal to, or greater than the threshold, then taking an action.
- 7. The method of claim 6 wherein the action is selected in one or a combination of
postponing executing the first process and allowing executing a second process; causing the first process to be switched to a second process; and causing a performance monitor on the memory system or on a system using the memory subsystem.
- 8. The method of claim 6 further comprising the step of polling a latency manager for the time taken to complete the memory access; the latency manger being part of managing the memory system.
- 9. The method of claim 6 further comprising the steps of:
using a memory table having entries pointing to data blocks storing data for at least one subsystem; and using the entries to locate the access data.
- 10. The method of claim 9 wherein the memory table working with a memory manager managing the data blocks independent of a processor working with the memory system and independent of an operating system working with the memory system.
- 11. A method for managing a memory system, comprising the steps of:
upon accessing the memory system for a piece of data used by a first process
counting a time elapsed from the time the data access starts; the counted time being increased as the data is being accessed; comparing the counted time to a threshold; and if the counted time is close to, equal to, or greater than the threshold, then taking an action selected in one or a combination of
postponing executing the first process and allowing executing a second process; causing the first process to be switched to a second process; and causing a performance monitor on the memory system or on a system using the memory system.
- 12. The method of claim 11 further comprising the steps of:
using a memory table having entries pointing to data blocks storing data for at least one memory subsystem; and using the entries to locate the access data.
- 13. A computer-readable medium embodying instructions for a computer to perform a method for managing a memory system having a plurality of subsystems, the method comprising the steps of:
upon accessing the subsystems for a piece of data used by a first process,
determining the access time to acquire the piece of data in the memory system; comparing the determined access time to a threshold; and taking an action based on the results of the comparing step; wherein accessing the subsystems is in a non-sequential order.
- 14. The computer-readable medium of claim 13 wherein data blocks containing the piece of data is placed in the memory system based on information selected in one or a combination of:
a movement pattern of data in a data block, a structure of the memory system, and a cache-level architecture in the memory system.
- 15. The computer-readable medium of claim 13 wherein the method further comprising the steps of:
using a memory table having entries pointing to data blocks storing data for at least one subsystem; and using the entries to locate the access data.
- 16. The computer-readable medium of claim 15 wherein the memory table working with a memory manager managing the data blocks independent of an operating system working with the memory system and independent of a processor working with the memory system.
- 17. The computer-readable medium of claim 13 wherein the method further comprises the steps of:
using a memory table having entries pointing to data blocks storing data for the memory system; and the memory table using a physical address of a memory page corresponding to the piece of access data to convert to a location address corresponding to an entry pointing to the location of the piece of access data.
- 18. A computer-readable medium embodying instructions for a computer to perform a method for managing a memory system, the method comprising the steps of:
upon accessing the memory system for a piece of data used by a first process,
a processor working with the memory system continuing its functions until it is stalled; comparing the time taken to complete the memory access to a threshold; and if the time taken to complete the memory access is close to, equal to, or greater than the threshold, then taking an action.
- 19. The computer-readable medium of claim 18 wherein the method further comprises the step of polling a latency manager for the time taken to complete the memory access; the latency manger being part of managing the memory system.
- 20. The computer-readable medium of claim 18 wherein the method further comprises the steps of:
using a memory table having entries pointing to data blocks storing data for at least one subsystem; and using the entries to locate the access data.
- 21. A computer-readable medium embodying instructions for a computer to perform a method for managing a memory system, the method comprising the steps of:
upon accessing the memory system for a piece of data used by a first process,
counting a time elapsed from the time the data access starts; the counted time being increased as the data is being accessed; comparing the counted time to a threshold, and if the counted time is close to, equal to, or greater than the threshold, then taking an action selected in one or a combination of
postponing executing the first process and allowing executing a second process; causing the first process to be switched to a second process; and causing a performance monitor on the memory system or on a system using the memory subsystem.
- 22. The computer-readable medium of claim 21 wherein the method further comprises the steps of:
using a memory table having entries pointing to data blocks storing data for at least one memory subsystem; and using the entries to locate the access data.
- 23. An apparatus for managing a memory system having a plurality of subsystems, comprising:
means for, upon accessing the subsystems for a piece of data used by a first process,
determining the access time to acquire the piece of data in the memory system; comparing the determined access time to a threshold; and taking an action based on the results of the comparing step; wherein accessing the subsystems is in a non-sequential order.
- 24. The apparatus of claim 23 wherein data blocks containing the piece of data is placed in the memory system based on information selected in one or a combination of:
a movement pattern of data in a data block, a structure of the memory system, and a cache-level architecture in the memory system.
- 25. The apparatus of claim 23 further comprising a memory table having entries pointing to data blocks storing data for at least one subsystem; the entries being used to locate the access data.
- 26. The apparatus of claim 25 wherein the memory table working with a memory manager managing the data blocks independent of an operating system working with the memory system and independent of a processor working with the memory system.
- 27. The apparatus of claim 23 further comprising a memory table having entries pointing to data blocks storing data for the memory system; the memory table using a physical address of a memory page corresponding to the piece of access data to convert to a location address corresponding to an entry pointing to the location of the piece of access data.
- 28. An apparatus for managing a memory system, comprising:
upon accessing the memory system for a piece of data used by a first process,
a processor for working with the memory system and for continuing its functions until it is stalled; means for comparing the time taken to complete the memory access to a threshold; and means for taking an action if the time taken to complete the memory access is close to, equal to, or greater than the threshold.
- 29. The apparatus of claim 28 further comprising means for polling a latency manager for the time taken to complete the memory access; the latency manger being part of managing the memory system.
- 30. The apparatus of claim 28 further comprising a memory table having entries pointing to data blocks storing data for at least one subsystem; the entries being used to locate the access data.
- 31. An apparatus for managing a memory system, comprising:
upon accessing the memory system for a piece of data used by a first process,
means for counting a time elapsed from the time the data access starts; the counted time being increased as the data is being accessed; means for comparing the counted time to a threshold, and if the counted time is close to, equal to, or greater than the threshold, means for taking an action selected in one or a combination of
postponing executing the first process and allowing executing a second process; causing the first process to be switched to a second process; and causing a performance monitor on the memory system or on a system using the memory subsystem.
- 32. The apparatus of claim 31 further comprising a memory table having entries pointing to data blocks storing data for at least one memory subsystem; the entries being used to locate the access data.
RELATED CASE
[0001] This application is a continuation-in-part of copending application Ser. No. 09/896,043 by Wilson et al., entitled “Memory Table and Memory Manager for Use in Memory Management,” filed Jun. 28, 2001.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09896043 |
Jun 2001 |
US |
Child |
10044394 |
Jan 2002 |
US |