Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
266 words
A load/store unit for a superscalar microprocessor comprising: a buffer including a plurality of storage locations configured to store information regarding pending memory operations wherein said buffer further includes an input port configured to receive said information, and wherein said buffer further includes a data cache port configured to communicate data access commands to a data cache, and wherein said plurality of storage locations are configured such that a load memory operation may be stored in one of said plurality of storage locations in a given clock cycle and a store memory operation may be stored in said one of said plurality of storage location in a different clock cycle; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said information from said input port to a particular storage location within said buffer, wherein said input control unit includes a load pointer configured to selectively direct the storage of load memory operations into various ones of said plurality of storage locations and a store pointer configured to selectively direct the storage of store memory operations into additional ones of said plurality of storage locations, wherein said load pointer and said store pointer are configured to point to different storage locations simultaneously; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a memory operation stored within said plurality of storage locations within said buffer, and wherein said output control unit is further configured to direct a data access command associated with said operation to said data cache.
Claim 2
Dependent Claim
266 words
A load/store unit for a superscalar microprocessor comprising: a buffer including a plurality of storage locations configured to store information regarding pending memory operations wherein said buffer further includes an input port configured to receive said information, and wherein said buffer further includes a data cache port configured to communicate data access commands to a data cache, and wherein said plurality of storage locations are configured such that a load memory operation may be stored in one of said plurality of storage locations in a given clock cycle and a store memory operation may be stored in said one of said plurality of storage location in a different clock cycle; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said information from said input port to a particular storage location within said buffer, wherein said input control unit includes a load pointer configured to selectively direct the storage of load memory operations into various ones of said plurality of storage locations and a store pointer configured to selectively direct the storage of store memory operations into additional ones of said plurality of storage locations, wherein said load pointer and said store pointer are configured to point to different storage locations simultaneously; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a memory operation stored within said plurality of storage locations within said buffer, and wherein said output control unit is further configured to direct a data access command associated with said operation to said data cache.
Claim 3
Dependent Claim
23 words
The load/store unit as recited in claim 1 wherein said buffer is configured as a linear array of storage locations for memory operations.
Claim 4
Dependent Claim
37 words
The load/store unit as recited in claim 1 wherein said, wherein said load pointer is changed in response to a storage of a new load memory operation into said buffer, while said store pointer is held constant.
Claim 5
Dependent Claim
31 words
The load/store unit as recited in claim 3 wherein said load pointer advances from one end of said buffer and said store pointer advances from the opposite end of said buffer.
Claim 6
Dependent Claim
29 words
The load/store unit as recited in claim 1 wherein said output control unit is configured to select said memory operation from said buffer according to a fixed priority scheme.
Claim 7
Dependent Claim
83 words
The load/store unit as recited in claim 1, wherein said output control unit is configured to select said memory operation from said buffer according to a scheme wherein: store memory operations that are not speculative are given a high priority; memory operations that are not speculative and are known to miss said data cache via previous access to said data cache are given an intermediate priority; and load memory operations that have not previously accessed said data cache are given a low priority.
Claim 8
Dependent Claim
36 words
The load/store unit as recited in claim 6, wherein said output control unit is configured to receive information regarding the speculative state of said memory operation via a reorder buffer pointer provided by a reorder buffer.
Claim 9
Independent Claim
134 words
A method for operating a load/store buffer of a load/store unit including a plurality of storage locations comprising: maintaining a load pointer value for selectively controlling locations of said buffer to which load memory operations are stored; maintaining a store pointer value for selectively controlling locations of said buffer to which store memory operations are stored; storing a store memory operation into one of said plurality of storage locations; modifying said store pointer in response to storing said store memory operation while holding said load pointer constant; removing said store memory operation from said one of said plurality of storage locations; storing a load memory operation into said one of said plurality of storage locations; and modifying said load pointer in response to storing said load memory operation while holding said store pointer constant.
Claim 10
Independent Claim
134 words
A method for operating a load/store buffer of a load/store unit including a plurality of storage locations comprising: maintaining a load pointer value for selectively controlling locations of said buffer to which load memory operations are stored; maintaining a store pointer value for selectively controlling locations of said buffer to which store memory operations are stored; storing a store memory operation into one of said plurality of storage locations; modifying said store pointer in response to storing said store memory operation while holding said load pointer constant; removing said store memory operation from said one of said plurality of storage locations; storing a load memory operation into said one of said plurality of storage locations; and modifying said load pointer in response to storing said load memory operation while holding said store pointer constant.
Claim 11
Dependent Claim
29 words
The method as recited in claim 8 wherein said storing a store step is performed, then said removing step is performed, then said storing a load step is performed.
Claim 12
Dependent Claim
30 words
The method as recited in claim 8 wherein said storing a load is step is performed, then said removing step is performed, then said storing a store step is performed.
Claim 13
Dependent Claim
36 words
The method as recited in claim 8 wherein said removing further comprises removing store memory operations from said buffer according to their speculative state as indicated by a reorder buffer pointer provided by a reorder buffer.
Claim 14
Dependent Claim
36 words
The method as recited in claim 8 wherein said removing further comprises removing load memory operations from said buffer based on their speculative state as indicated by a reorder buffer pointer provided by a reorder buffer.
Claim 15
Dependent Claim
31 words
The method as recited in claim 8 wherein said removing further comprises removing load memory operations from a buffer if said load memory operations are known to hit said data cache.
Claim 16
Dependent Claim
294 words
A load/store unit for a superscalar microprocessor comprising: a buffer including a plurality of storage locations configured to store information regarding pending memory operations wherein said buffer further includes an input port configured to receive said information, and wherein said buffer further includes a data cache port configured to communicate data access commands to a data cache, and wherein said plurality of storage locations are configured such that a load memory operation may be stored in one of said plurality of storage locations in a given clock cycle and a store memory operation may be stored in said one of said plurality of storage location in a different clock cycle; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said information from said input port to a particular storage location within said buffer, wherein said input control unit further comprises a load pointer and a store pointer, and wherein said load pointer is configured to direct a given load memory operation received in a particular clock cycle to a selected one of said plurality of storage locations, and wherein said store pointer is configured to direct a given store memory operation received in said particular clock cycle to another of said plurality of storage locations, and wherein said load pointer advances from one end of said buffer and said store pointer advances from the opposite end of said buffer; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a memory operation stored within said plurality of storage locations within said buffer, and wherein said output control unit is further configured to direct a data access command associated with said operation to said data cache.
Claim 17
Dependent Claim
294 words
A load/store unit for a superscalar microprocessor comprising: a buffer including a plurality of storage locations configured to store information regarding pending memory operations wherein said buffer further includes an input port configured to receive said information, and wherein said buffer further includes a data cache port configured to communicate data access commands to a data cache, and wherein said plurality of storage locations are configured such that a load memory operation may be stored in one of said plurality of storage locations in a given clock cycle and a store memory operation may be stored in said one of said plurality of storage location in a different clock cycle; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said information from said input port to a particular storage location within said buffer, wherein said input control unit further comprises a load pointer and a store pointer, and wherein said load pointer is configured to direct a given load memory operation received in a particular clock cycle to a selected one of said plurality of storage locations, and wherein said store pointer is configured to direct a given store memory operation received in said particular clock cycle to another of said plurality of storage locations, and wherein said load pointer advances from one end of said buffer and said store pointer advances from the opposite end of said buffer; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a memory operation stored within said plurality of storage locations within said buffer, and wherein said output control unit is further configured to direct a data access command associated with said operation to said data cache.
Claim 18
Dependent Claim
23 words
The load/store unit as recited in claim 14 wherein said buffer is configured as a linear array of storage locations for memory operations.
Claim 19
Dependent Claim
29 words
The load/store unit as recited in claim 14 wherein said output control unit is configured to select said memory operation from said buffer according to a fixed priority scheme.
Claim 20
Dependent Claim
83 words
The load/store unit as recited in claim 14, wherein said output control unit is configured to select said memory operation from said buffer according to a scheme wherein: store memory operations that are not speculative are given a high priority; memory operations that are not speculative and are known to miss said data cache via previous access to said data cache are given an intermediate priority; and load memory operations that have not previously accessed said data cache are given a low priority.
Claim 21
Dependent Claim
36 words
The load/store unit as recited in claim 17, wherein said output control unit is configured to receive information regarding the speculative state of said memory operation via a reorder buffer pointer provided by a reorder buffer.
Claim 22
Dependent Claim
274 words
A load/store unit for a superscalar microprocessor comprising: a buffer including a plurality of storage locations configured to store information regarding pending memory operations wherein said buffer further includes an input port configured to receive said information, and wherein said buffer further includes a data cache port configured to communicate data access commands to a data cache, and wherein said plurality of storage locations are configured such that a load memory operation may be stored in one of said plurality of storage locations in a given clock cycle and a store memory operation may be stored in said one of said plurality of storage location in a different clock cycle; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said information from said input port to a particular storage location within said buffer; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a memory operation stored within said plurality of storage locations within said buffer, and wherein said output control unit is further configured to direct a data access command associated with said operation to said data cache, and wherein said output control unit is configured to select said memory operation from said buffer according to a scheme wherein: store memory operations that are not speculative are given a high priority; memory operations that are not speculative and are known to miss said data cache via previous access to said data cache are given an intermediate priority; and load memory operations that have not previously accessed said data cache are given a low priority.
Claim 23
Dependent Claim
274 words
A load/store unit for a superscalar microprocessor comprising: a buffer including a plurality of storage locations configured to store information regarding pending memory operations wherein said buffer further includes an input port configured to receive said information, and wherein said buffer further includes a data cache port configured to communicate data access commands to a data cache, and wherein said plurality of storage locations are configured such that a load memory operation may be stored in one of said plurality of storage locations in a given clock cycle and a store memory operation may be stored in said one of said plurality of storage location in a different clock cycle; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said information from said input port to a particular storage location within said buffer; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a memory operation stored within said plurality of storage locations within said buffer, and wherein said output control unit is further configured to direct a data access command associated with said operation to said data cache, and wherein said output control unit is configured to select said memory operation from said buffer according to a scheme wherein: store memory operations that are not speculative are given a high priority; memory operations that are not speculative and are known to miss said data cache via previous access to said data cache are given an intermediate priority; and load memory operations that have not previously accessed said data cache are given a low priority.
Claim 24
Dependent Claim
23 words
The load/store unit as recited in claim 19 wherein said buffer is configured as a linear array of storage locations for memory operations.
Claim 25
Dependent Claim
76 words
The load/store unit as recited in claim 19 wherein said input control unit further comprises a load pointer and a store pointer, and wherein said load pointer is configured to direct said load memory operation received in a given clock cycle to one of said plurality of storage locations, and wherein said store pointer is configured to direct said store memory operation received in a given clock cycle to another of said plurality of storage locations.
Claim 26
Dependent Claim
31 words
The load/store unit as recited in claim 21 wherein said load pointer advances from one end of said buffer and said store pointer advances from the opposite end of said buffer.
Claim 27
Dependent Claim
36 words
The load/store unit as recited in claim 19, wherein said output control unit is configured to receive information regarding the speculative state of said memory operation via a reorder buffer pointer provided by a reorder buffer.
Claim 28
Dependent Claim
236 words
A load/store unit for a microprocessor comprising: a buffer including a plurality of storage locations configured to store pending memory operations, wherein said buffer further includes an input port configured to receive said operations, wherein said plurality of storage locations are configured such that a pending load operation may be stored in a particular storage locations at a first time and a pending store operation may be stored in said particular storage location at a second time, and wherein said buffer is configured to communicate with a data cache; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said operations from said input port to particular storage locations within said buffer, wherein said input control unit includes a load pointer configured to direct the storage of pending load memory operations into particular storage locations and a store pointer configured to direct the storage of pending store memory operations into particular storage locations, wherein said load pointer and said store pointer are configured to point to different storage locations simultaneously; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a particular pending memory operation stored within said plurality of storage locations, and wherein said output control unit is further configured to direct a data access command associated with said particular pending memory operation to said data cache.
Claim 29
Dependent Claim
236 words
A load/store unit for a microprocessor comprising: a buffer including a plurality of storage locations configured to store pending memory operations, wherein said buffer further includes an input port configured to receive said operations, wherein said plurality of storage locations are configured such that a pending load operation may be stored in a particular storage locations at a first time and a pending store operation may be stored in said particular storage location at a second time, and wherein said buffer is configured to communicate with a data cache; an input control unit coupled to said buffer, wherein said input control unit is configured to direct the transfer of said operations from said input port to particular storage locations within said buffer, wherein said input control unit includes a load pointer configured to direct the storage of pending load memory operations into particular storage locations and a store pointer configured to direct the storage of pending store memory operations into particular storage locations, wherein said load pointer and said store pointer are configured to point to different storage locations simultaneously; and an output control unit coupled to said buffer, wherein said output control unit is configured to select a particular pending memory operation stored within said plurality of storage locations, and wherein said output control unit is further configured to direct a data access command associated with said particular pending memory operation to said data cache.
Claim 30
Dependent Claim
25 words
The microprocessor as recited in claim 24, wherein said buffer is configured to receive and store multiple pending memory instructions in a particular clock cycle.
Claim 31
Dependent Claim
44 words
The microprocessor as recited in claim 25, wherein said load pointer is adjusted in response to the storage of a new load memory operation into said buffer, wherein said store pointer is unchanged in response to the storage of said new load memory operation.
Claim 32
Dependent Claim
72 words
The microprocessor as recited in claim 26, wherein said storage locations within said buffer are configured as a one-dimensional array having a first end and a second end, wherein said input control unit is configured to store pending load instructions in the closest available storage location to said first end, wherein said input control unit is configured to store pending store instructions in the closest available storage location to said second end.