Method for generating prefetch instruction with a field specifying type of information and location for it such as an instruction cache or data cache
First Claim
1. A method for use by a computer which has a main memory for maintaining stored information which is either data or instructions and a cache memory including a data cache and an instruction cache, said method for enhancing an already existing prefetch instruction for use by a prefetch unit, comprising the steps of:
- receiving said already existing prefetch instruction;
adding a dynamically adjustable unfilled instruction/data field to form an annexed prefetch instruction;
receiving said annexed prefetch instruction including said dynamically adjustable unfilled instruction/data field; and
filling said dynamically adjustable unfilled instruction/data field with a prefetch type value which indicates whether said stored information is instructions or data, such indicating whether to store said information in said instruction cache or in said data cache to generate an enhanced prefetch instruction.
0 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method and system for providing for the prefetching of data or instructions. A prefetch instruction which is in an instruction stream is processed by memory management unit (MMU) where prefetch cache control information is placed as part of the already existing prefetch instruction. Once processed by the MMU, the prefetch instruction thus contains binary fields allowing the operating system or runtime software to control cache prefetching by assigning values to the binary fields which provide the optimal cache set location and the optimal amount of data to be prefetched and thus reduces thrashing.
-
Citations
32 Claims
-
1. A method for use by a computer which has a main memory for maintaining stored information which is either data or instructions and a cache memory including a data cache and an instruction cache, said method for enhancing an already existing prefetch instruction for use by a prefetch unit, comprising the steps of:
-
receiving said already existing prefetch instruction; adding a dynamically adjustable unfilled instruction/data field to form an annexed prefetch instruction; receiving said annexed prefetch instruction including said dynamically adjustable unfilled instruction/data field; and filling said dynamically adjustable unfilled instruction/data field with a prefetch type value which indicates whether said stored information is instructions or data, such indicating whether to store said information in said instruction cache or in said data cache to generate an enhanced prefetch instruction. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for use by a computer which has a main memory for maintaining stored information and a cache memory, said method for enhancing an already existing prefetch instruction for use by a prefetch unit, comprising the steps of:
-
receiving said already existing prefetch instruction; adding a dynamically adjustable unfilled size field to form an annexed prefetch instruction; receiving said annexed prefetch instruction; filling said dynamically adjustable unfilled size filed with a prefetch type value which indicates how much information to retrieve from said main memory and store in said cache to generate an enhanced prefetch instruction. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method for use by a computer which has a main memory for maintaining stored information and a cache memory including at least two cache sets, said method for enhancing an already existing prefetch instruction for use by a prefetch unit, comprising the steps of:
-
receiving said already existing prefetch instruction; adding a dynamically adjustable unfilled cache set field to form an annexed prefetch instruction; receiving an annexed prefetch instruction including an unfilled cache set field; and filling said unfilled cache set field with a prefetch type value to indicate which of said at least two cache sets to store information retrieved from said main memory to generate an enhanced prefetch instruction. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method for use by a computer which has a memory management unit, a main memory for maintaining stored information which is either data or instructions and a cache memory including a data cache and an instruction cache, said method for generating an enhanced prefetch instruction, comprising the steps of:
-
receiving an initial prefetch instruction; and said memory management unit enhancing said initial prefetch instruction to generate an enhanced prefetch instruction as output which includes a dynamically adjustable unfilled instruction/data field which is subsequently filled with a prefetch type value which indicates whether said stored information is instructions or data such indicating whether to store said information in said instruction cache or said data cache. - View Dependent Claims (17, 18)
-
-
19. A method for use by a computer which has a memory management unit, a main memory for maintaining stored information and a cache memory, said method for providing an enhanced prefetch instruction, comprising the steps of:
-
receiving an initial prefetch instruction; and said memory management unit enhancing said initial prefetch instruction to generate an enhanced prefetch instruction as output which includes a dynamically adjustable unfilled size field which is subsequently filled with a prefetch type value which indicates how much information to retrieve from said main memory and store in said cache memory. - View Dependent Claims (20, 21)
-
-
22. A method for use by a computer which has a memory management unit, a main memory for maintaining stored information and a cache memory including at least two cache sets, said method for providing an enhanced prefetch instruction, comprising the steps of:
-
receiving an initial prefetch instruction; and said memory management unit enhancing said initial prefetch instruction to generate an enhanced prefetch instruction as output which includes a dynamically adjustable unfilled cache set field which is subsequently filled with a prefetch type value which indicates which of said at least two dynamically adjustable cache sets to store information retrieved from said main memory. - View Dependent Claims (23, 24)
-
-
25. A computer system including a CPU, a main memory for maintaining stored information which is either data or instructions, a cache memory including a data cache and an instruction cache, wherein said CPU is configured to execute an instruction stream which includes a prefetch instruction configured to effect the prefetch of information stored in said main memory which will be required by said CPU, said system for providing an enhanced prefetch instruction, comprising:
-
a memory management unit configured to receive said initial prefetch instruction and to generate as output an enhanced prefetch instruction which includes a dynamically adjustable unfilled instruction/data field which is subsequently filled with a prefetch type value which indicates whether the information required by said CPU which is stored in said main memory is instructions or data, and thus indicates whether to store said information in said instruction cache or said data cache; and a prefetch unit configured to execute said enhanced prefetch instruction so that said information is retrieved from said main memory and is stored in either said instruction cache or said data cache in accordance with said prefetch type value included in said dynamically adjustable instruction/data field. - View Dependent Claims (26, 27, 28)
-
-
29. A prefetch enhancement device operable in conjunction with a computer having a CPU, a main memory for maintaining stored information which is either data or instructions, wherein said CPU is configured to execute an instruction stream which includes a prefetch instruction configured to effect the prefetch of information stored in said main memory which will be required by said CPU, said device comprising:
-
a memory management unit configured to receive a prefetch instruction and to generate as output an enhanced prefetch instruction having a dynamically adjustable unfilled instruction/data field which is subsequently filled with a prefetch type value which indicates whether the information required by said CPU which is stored in said main memory is instructions or data, and thus indicates whether to store said information in said instruction cache or said data cache; and a prefetch unit configured to execute said enhanced prefetch instruction so that said information is retrieved from said main memory and is stored in either said instruction cache or said data cache in accordance with said prefetch type value included in said dynamically adjustable instruction/data field. - View Dependent Claims (30, 31, 32)
-
Specification