Data ordering for cache data transfer
AssigneeMicron Technology, Inc.
InventorJoseph Thomas Pawlowski
Life of this patent
Estimating the term…
Abstract
A system and method for ordering the transfer of data words within a cache line transfer. The cache memory receives an address from a processor and selects the cache line corresponding to the address. The cache memory then determines an order for transferring cache line data words from the selected cache line based on the likelihood that each data word in the order will be needed by the processor. The data words are then transferred to the processor in the desired order.
Claims26
In a computer system having a processor and a cache memory, wherein the processor is connected to the cache memory by an address bus and wherein the cache memory includes a plurality of cache line data words, a method of transferring, from the cache memory to the processor, a single cache line from the plurality of cache lines, the method comprising:
- reading an address from the address bus;
- selecting a cache line corresponding to the address;
- determining an order for transferring cache line data words from the selected cache line, wherein determining an order includes determining the likelihood that each data word in the cache line will be needed by the processor and determining a preferred set of data words to be transferred during an initial cache transfer cycle;
- and
- transferring the cache line data words from the cache memory to the processor in the determined order.
A cache memory, comprising:
- a cache memory array having a plurality of cache lines, wherein each cache line includes a tag word and a plurality of data words;
- a processor-cache interface;
- and
- a routing circuit connected to the memory array and the processor-cache interface, wherein the routing circuit includes a plurality of selector circuits and selection control logic connected to the plurality of selector circuits, wherein the selection control logic controls the transfer of words from the cache memory array to the processor-cache interface, wherein the words are transferred in order over a plurality of cache transfer cycles, according to the likelihood that the transferred words will be needed, wherein words more likely to be needed by the processor are transferred before words less likely to be needed by the processor.
A computer system, comprising:
- a processor having an address bus and an M-word wide data bus, wherein M is greater than two;
- a memory connected to the processor by the address bus and the data bus;
- and
- a cache memory, wherein the cache memory includes:
- a cache memory array having a plurality of cache lines, wherein each cache line includes a tag word and N data words, wherein N is greater than M;
- a processor-cache interface connected to the processor and the memory by the address bus and the data bus;
- and
- a routing circuit connected to the memory array and the processor-cache interface, wherein the routing circuit includes a plurality of selector circuits and selection control logic connected to the plurality of selector circuits, wherein the selection control logic controls the transfer of groups of M words from the cache memory array to the processor-cache interface, wherein the groups of M words having the word more likely to be needed by the processor is transferred before the M words having words less likely to be needed by the processor.
A memory routing circuit comprising:
- a first plurality of pathways, each of the first plurality of pathways coupled to an entry in a memory array;
- a plurality of selector circuits, each selector circuit coupled to a predetermined number of pathways in the first plurality of pathways;
- a second plurality of pathways, each of the second plurality of pathways coupled to a selector circuit and further coupled to an entry in an interface;
- and
- selection control logic, the logic coupled to each of the plurality of selector circuits and adapted to selectively enable particular pathways in the first plurality of pathways to order words in an order of criticality to a processor.
A memory routing circuit comprising:
- a first plurality of pathways, each of the first plurality of pathways coupled to an entry in a memory array;
- a plurality of selector circuits, each selector circuit coupled to a predetermined number of pathways in the first plurality of pathways;
- a second plurality of pathways, each of the second plurality of pathways coupled to a selector circuit and further coupled to an entry in an interface;
- selection control logic, the logic coupled to each of the plurality of selector circuits and adapted to selectively enable particular pathways in the first plurality of pathways;
- wherein each entry in the memory array is coupled to two pathways in the first plurality of pathways;
- and
- wherein each of the said two pathways is coupled to a different selector circuit in the plurality of selector circuits.
A memory routing circuit comprising:
- a first plurality of pathways, each of the first plurality of pathways coupled to an entry in a memory array;
- a plurality of selector circuits, each selector circuit coupled to a predetermined number of pathways in the first plurality of pathways;
- a second plurality of pathways, each of the second plurality of pathways coupled to a selector circuit and further coupled to an entry in an interface;
- selection control logic, the logic coupled to each of the plurality of selector circuits and adapted to selectively enable particular pathways in the first plurality of pathways;
- wherein the plurality of selector circuits comprises 6 selector circuits;
- and
- wherein 4 selector circuits are each coupled to 4 pathways of the first plurality of pathways and 2 selector circuits are each coupled to 9 pathways of the first plurality of pathways.
A memory routing circuit comprising:
- a first plurality of pathways, each of the first plurality of pathways coupled to an entry in a memory array;
- a plurality of selector circuits, each selector circuit coupled to a predetermined number of pathways in the first plurality of pathways;
- a second plurality of pathways, each of the second plurality of pathways coupled to a selector circuit and further coupled to an entry in an interface;
- selection control logic, the logic coupled to each of the plurality of selector circuits and adapted to selectively enable particular pathways in the first plurality of pathways;
- wherein the plurality of selector circuits comprises 5 selector circuits;
- and
- wherein 4 selector circuits are each coupled to 4 pathways of the first plurality of pathways and 1 selector circuit is coupled to 2 pathways of the first plurality of pathways.
A memory system comprising:
- a memory array of dimensions P+1 words by N lines, each line adapted for storing P words of data and for storing 1 tag word;
- a routing circuit coupled to the array and adapted to receive P+1 words and further adapted to transfer the P+1 words in a predetermined order;
- an interface coupled to the routing circuit, the interface adapted to receive the ordered words;
- and
- a processor coupled to the interface via a data bus, the processor having an order of data criticality and further wherein the predetermined order is a function of the order of data criticality.
A method of transferring data comprising:
- selecting an order of data criticality;
- configuring logic to implement the selected order;
- receiving an address;
- selecting a tag as a function of the address;
- accessing a line of memory in an array as a function of the selected tag;
- enabling selected pathways to the array as a function of the logic;
- transferring the line of memory from the array via the selected pathways;
- storing the transferred line of memory in an interface array;
- and
- forwarding the stored line of memory to a processor.
A method of transferring data comprising:
- storing a plurality of words in a first line, the words arranged in a first order;
- selecting a second order for arranging the words, the second order determined as a function of data criticality to a processor;
- receiving an address corresponding to a word stored in the first line;
- enabling a plurality of pathways coupling each of the plurality of words in the first line to a plurality of slots in a second line;
- transferring the plurality of words in the first line to the plurality of slots in the second line wherein the enabled pathways are selected such that the plurality of words in the second line are arranged in the second order;
- and
- forwarding the plurality of words in the second line to the processor.
A memory system comprising:
- means for storing a plurality of words in a first line, the words arranged in a first order;
- means for selecting a second order for arranging the words, the second order determined as a function of data criticality to a processor;
- means for receiving an address corresponding to a word stored in the first line;
- means for enabling a plurality of pathways coupling each of the plurality of words in the first line to a plurality of slots in a second line;
- means for transferring the plurality of words in the first line to the plurality of slots in the second line wherein the means for transferring are selected such that the plurality of words in the second line are arranged in the second order;
- and
- means for forwarding the plurality of words in the second line to the processor.
A memory system comprising:
- a first memory for storing a plurality of data words in a first line, the words in the first memory arranged in a first order;
- programming means coupled to the array, the programming means for selecting a second order for arranging the data words, the second order determined as a function of data word criticality to a processor;
- an address bus coupled to the memory array, the address bus for receiving an address corresponding to a data word stored in the first line;
- a plurality of pathways coupled to the array, each pathway configured for transferring a data word from the memory array;
- a second memory coupled to the plurality of pathways, the second memory having a plurality of slots in a second line;
- selection logic for enabling selected pathways corresponding to the function of data word criticality to the processor such that the plurality of data words in the second line are arranged in the second order;
- and
- a data bus coupled to the second line, the data bus for forwarding the plurality of data words in the second line to the processor.
A method of operating a circuit comprising:
- selecting a desired order for receiving data words;
- programming logic for ordering data words in the selected order;
- storing data words arranged in a first order;
- requesting delivery of the data words arranged in a second order;
- enabling selected pathways for arranging the data words in the second order;
- transferring the data words via the selected pathways;
- storing the data words arranged in the second order;
- and
- transferring the data words arranged in the second order to a processor.
A circuit comprising:
- a first line of memory;
- a plurality of pathways coupled to the first line of memory;
- a plurality of selector circuits coupled to the plurality of pathways;
- a selection logic coupled to the plurality of selection circuits;
- a second line of memory coupled to the plurality of selection circuits;
- a processor coupled to the second line of memory;
- and
- wherein the selection logic orders words on the plurality of pathways in an order of criticality to the processor.
A circuit comprising:
- a first line of memory for storing words arranged in a first order;
- a plurality of pathways coupled to the first line of memory, each pathway for transferring a word from the first line of memory;
- a plurality of selector circuits coupled to the plurality of pathways, the selector circuits for controlling the transfer of words via the plurality of pathways;
- selection logic coupled to the plurality of selection circuits, the selection logic for controlling the plurality of selector circuits;
- a second line of memory coupled to the plurality of selection circuits, the second line of memory for receiving the transferred words;
- and
- a processor coupled to the second line of memory, wherein the selection logic orders the words in an order of criticality to the processor.
Dependencies are inferred from the claim text.