Claims Analysis
Total Claims: 41
Claim 1
Independent Claim
236 words
A microprocessor system for executing a program stream, said microprocessor system comprising: (a) an instruction fetch unit for fetching instructions from an instruction store and for providing a predetermined plurality of said instructions to an instruction buffer; (b) an execution unit, coupled to said instruction fetch unit, for executing said plurality of said instructions from said instruction buffer in an out-of-order fashion, said execution unit including a load store unit adapted to make load requests to a memory system out-of-order with respect to all instructions in said instruction buffer and store requests in-order with respect to all instructions in said instruction store, said load store unit having, (i) an address path adapted to manage a plurality of addresses associated with said plurality of said instructions and to provide addresses to said memory system, (ii) address collision means, coupled to said address path, for detecting and signaling whether address collisions and write pendings exist between each of said plurality of said instructions, wherein said load store unit performs said load requests if no address collisions and no write pendings are detected, and (ii) a data path for transferring load and/or store data to and from said memory system and said execution unit, said data path configured to align data returned from said memory system to thereby permit data falling on a word boundary to be returned from said memory system to said execution unit in correct alignment.
Claim 2
Dependent Claim
236 words
A microprocessor system for executing a program stream, said microprocessor system comprising: (a) an instruction fetch unit for fetching instructions from an instruction store and for providing a predetermined plurality of said instructions to an instruction buffer; (b) an execution unit, coupled to said instruction fetch unit, for executing said plurality of said instructions from said instruction buffer in an out-of-order fashion, said execution unit including a load store unit adapted to make load requests to a memory system out-of-order with respect to all instructions in said instruction buffer and store requests in-order with respect to all instructions in said instruction store, said load store unit having, (i) an address path adapted to manage a plurality of addresses associated with said plurality of said instructions and to provide addresses to said memory system, (ii) address collision means, coupled to said address path, for detecting and signaling whether address collisions and write pendings exist between each of said plurality of said instructions, wherein said load store unit performs said load requests if no address collisions and no write pendings are detected, and (ii) a data path for transferring load and/or store data to and from said memory system and said execution unit, said data path configured to align data returned from said memory system to thereby permit data falling on a word boundary to be returned from said memory system to said execution unit in correct alignment.
Claim 3
Dependent Claim
32 words
The system of claim 1, wherein said address path includes a plurality of address buffers for storing a high order and a low order byte of said load and/or said store request.
Claim 4
Dependent Claim
28 words
The system of claim 1, wherein said load store unit further includes means for making multiple memory requests to memory if said data falls on a word boundary.
Claim 5
Dependent Claim
27 words
The system of claim 1, further comprising a data address functional unit, connected to said load store unit, adapted for calculating addresses for said plurality of instructions.
Claim 6
Dependent Claim
31 words
The system of claim 4, a virtual memory unit adapted to provide physical address translations, which are generated from a virtual address, to said execution unit and said load store unit.
Claim 7
Dependent Claim
33 words
The system of claim 5, wherein said load store unit must have a physical address from said data address function unit and said virtual memory unit before it can make a memory request.
Claim 8
Dependent Claim
29 words
The system of claim 1, wherein said instructions are CISC instructions, and wherein said instruction execution unit further comprises decode means for decoding said CISC instructions into RISC instructions.
Claim 9
Dependent Claim
26 words
The system of claim 1, wherein said load store unit further comprises means for merging data received from memory with original contents of a destination register.
Claim 10
Dependent Claim
40 words
The system of claim 1, further comprising data lines between said execution unit and said load/store data path for directly transferring load and/or execute data to said data path thereby allowing a subsequent store operation to be performed promptly thereafter.
Claim 11
Dependent Claim
21 words
The system of claim 1, further comprising an historical pointer for indicating relative age of an instruction in said instruction buffer.
Claim 12
Dependent Claim
26 words
The system of claim 1, wherein said collision means indicates a load dependency by determining if there is an address collisions or a pending store address.
Claim 13
Dependent Claim
25 words
The system of claim 1, further comprising means for preventing load bypassing of load instructions that will modify the state of the microprocessor system incorrectly.
Claim 14
Dependent Claim
28 words
The system of claim 1, further comprising means for snooping the results of a function unit in order to provide store data directly to said load/store data path.
Claim 15
Dependent Claim
20 words
The system of claim 1, wherein said load store unit has a separate load/store data path for floating point operations.
Claim 16
Dependent Claim
26 words
The system of claim 1, wherein said execution unit includes a register file which contains a plurality of real registers and a plurality of temporary registers.
Claim 17
Dependent Claim
41 words
The method of claim 1, wherein said instruction buffer comprise a plurality of buckets, each of said buckets contains either a load and a store to the same address, a load only, a store only, or no load and no store.
Claim 18
Dependent Claim
19 words
The system of claim 1, wherein said load store unit gives said store requests priority over said load requests.
Claim 19
Dependent Claim
15 words
The system of claim 1, further comprising means for preventing load bypassing of noncacheable loads.
Claim 20
Dependent Claim
209 words
In a RISC superscalar microprocessor having an execution unit adapted to execute a stream of instructions and to issue load instructions out-of-order, a method for managing requests for loads and stores to and from a memory device, the method comprising the steps of: (1) calculating an address for an instruction selected from an instruction window and transferring said address to a load store unit; (2) determining whether said instruction involves a load operation, a store operation, an execute operation, or a combination of said load operation and/or said store operation and/or said execute operation; (3) checking, if said instruction has a load operation, for an address collision and for any write pendings, and signaling the outcome of said check; (4) making a request to said memory device based on a priority scheme and the results of said checking step (3), wherein said priority scheme includes making load requests to said memory device out-of-order with respect to instructions in said instruction window and store requests in-order with respect to all instructions in the stream of instructions; (5) receiving requested data from said load operation and/or said store operation in a data path portion of said load store unit; and (6) aligning said requested data if said requested data is unaligned.
Claim 21
Dependent Claim
209 words
In a RISC superscalar microprocessor having an execution unit adapted to execute a stream of instructions and to issue load instructions out-of-order, a method for managing requests for loads and stores to and from a memory device, the method comprising the steps of: (1) calculating an address for an instruction selected from an instruction window and transferring said address to a load store unit; (2) determining whether said instruction involves a load operation, a store operation, an execute operation, or a combination of said load operation and/or said store operation and/or said execute operation; (3) checking, if said instruction has a load operation, for an address collision and for any write pendings, and signaling the outcome of said check; (4) making a request to said memory device based on a priority scheme and the results of said checking step (3), wherein said priority scheme includes making load requests to said memory device out-of-order with respect to instructions in said instruction window and store requests in-order with respect to all instructions in the stream of instructions; (5) receiving requested data from said load operation and/or said store operation in a data path portion of said load store unit; and (6) aligning said requested data if said requested data is unaligned.
Claim 22
Dependent Claim
22 words
The method of claim 19, wherein step (1) of issuing includes a step of performing a data dependency check on said instruction.
Claim 23
Dependent Claim
24 words
The method of claim 19, further comprising a step of writing the results of said instruction into a preassigned location in a temporary buffer.
Claim 24
Dependent Claim
22 words
The method of claim 21, further comprising a step of providing data to said load store unit by bypassing said temporary buffer.
Claim 25
Dependent Claim
26 words
The method of claim 19, further comprising a step of preventing load bypassing of load operations that will modify the state of the microprocessor system incorrectly.
Claim 26
Dependent Claim
22 words
The method of claim 19, further comprising a step of merging data received from memory with data stored in a destination register.
Claim 27
Dependent Claim
37 words
The method of claim 19, wherein said step of checking includes the step of comparing the first address of said load operation against the first and last address for each older store operation in said instruction window.
Claim 28
Dependent Claim
252 words
A computer system, comprising: (a) a memory system that is configured to store instructions and data; (b) a processor, connected to said memory system, for executing said instructions, said processor having, (1) an instruction fetch unit for fetching said instructions from said memory system and for providing a predetermined plurality of said instructions to an instruction window; (2) an execution unit, coupled to said instruction fetch unit, for executing said instructions from said instruction window in an out-of-order fashion, said execution unit including a load store unit adapted to make load requests to said memory system out-of order with respect to all of said instructions in said instruction window and store requests in-order with respect to all of said instructions in said instruction window, said load store unit having, (A) an address path adapted to manage a plurality of addresses associated with said instructions and to provide addresses to said memory system, (B) address collision means, coupled to said address path, for detecting and signaling whether address collisions and write pendings exist between each of said instructions, wherein said load store unit performs said load requests if no address collisions and no write pendings are detected, and (C) a data path for transferring load and/or store data to and from said memory system and said execution unit, said data path configured to align data returned from said memory system to thereby permit data falling on a word boundary to be returned from said memory system to said execution unit in correct alignment.
Claim 29
Dependent Claim
252 words
A computer system, comprising: (a) a memory system that is configured to store instructions and data; (b) a processor, connected to said memory system, for executing said instructions, said processor having, (1) an instruction fetch unit for fetching said instructions from said memory system and for providing a predetermined plurality of said instructions to an instruction window; (2) an execution unit, coupled to said instruction fetch unit, for executing said instructions from said instruction window in an out-of-order fashion, said execution unit including a load store unit adapted to make load requests to said memory system out-of order with respect to all of said instructions in said instruction window and store requests in-order with respect to all of said instructions in said instruction window, said load store unit having, (A) an address path adapted to manage a plurality of addresses associated with said instructions and to provide addresses to said memory system, (B) address collision means, coupled to said address path, for detecting and signaling whether address collisions and write pendings exist between each of said instructions, wherein said load store unit performs said load requests if no address collisions and no write pendings are detected, and (C) a data path for transferring load and/or store data to and from said memory system and said execution unit, said data path configured to align data returned from said memory system to thereby permit data falling on a word boundary to be returned from said memory system to said execution unit in correct alignment.
Claim 30
Dependent Claim
52 words
The computer system of claim 26, wherein said memory system includes a first level memory connected to said processor, a second level memory, and a memory control unit connected between said first level memory and said second level memory, wherein said first level memory holds the most recently accessed instructions and data.
Claim 31
Dependent Claim
27 words
The computer system of claim 27, further comprising a second processor connected to said second level memory, wherein said second processor is configured to execute instructions out-of-order.
Claim 32
Dependent Claim
19 words
The computer system of claim 27, wherein said first level memory includes an instruction portion and a data portion.
Claim 33
Dependent Claim
17 words
The computer system of claim 27, further comprising an input/output subsystem, connected to said memory control unit.
Claim 34
Dependent Claim
24 words
The computer system of claim 26, further comprising a superscalar control means for determining when an instruction can be issued to said instruction window.
Claim 35
Dependent Claim
61 words
The computer system of claim 26, wherein said execution unit further comprises: a register file; a plurality of functional units; a first bus, connected to the inputs of said plurality of functional units and further connected to said register file; and a second bus connected to the outputs of said plurality of functional units and further connected to said register file.
Claim 36
Dependent Claim
20 words
The computer system of claim 32, wherein said second bus is further connected to transfer data to said first bus.
Claim 37
Dependent Claim
25 words
The computer system of claim 33, wherein said second bus is further connected to transfer data to said data path of said load store unit.
Claim 38
Dependent Claim
50 words
The computer system of claim 26, wherein said register file includes a set of real registers and a set of temporary registers, wherein one of said instructions is retired when data resulting from execution of said one of said instructions is moved from said temporary registers to said real registers.
Claim 39
Dependent Claim
30 words
The computer system of claim 26, wherein data from a load and or store instruction is stored in said register file from said second bus before data from other instructions.
Claim 40
Dependent Claim
19 words
The computer system of claim 26, further comprising an instruction decode unit that decodes CISC instructions into RISC instructions.
Claim 41
Dependent Claim
38 words
The computer system of claim 26, wherein said address path includes a first register for storing a first byte associated with a memory access and a second register for storing a last byte associated with said memory access.