Claims
- 1. A memory controller comprising:
a plurality of channel control circuits, wherein each of the plurality of channel control circuits is coupled to a respective one of a plurality of channels, and wherein the plurality of channels, during use, are coupled to a memory system; wherein the plurality of channel control circuits are coupled to receive an indication of whether or not the plurality of channels are ganged, and wherein data is transferred for a first command on each of the plurality of channels responsive to the indication indicating that the plurality of channels are ganged, and wherein data is transferred for the first command on a selected channel of the plurality of channels responsive to the indication indicating that the plurality of channels are not ganged.
- 2. The memory controller as recited in claim 1 wherein, responsive to the indication indicating that the plurality of channels are not ganged, data is concurrently transferred for a second command on a different channel of the plurality of channels from the selected channel.
- 3. The memory controller as recited in claim 1 further comprising a configuration register coupled to the plurality of channel control circuits, wherein the configuration register is programmable with the indication.
- 4. The memory controller as recited in claim 3 further comprising a decode circuit coupled to receive a transaction on an interconnect and decode the first command from the transaction, wherein the decode circuit is coupled to receive the indication and is configured to determine which of the plurality of channels is used by the first command responsive to the indication.
- 5. The memory controller as recited in claim 4 wherein, if the indication indicates that the plurality of channels are ganged, the decode circuit is configured to determine that a predetermined one of the plurality of channels is used.
- 6. The memory controller as recited in claim 5 further comprising one or more channel configuration registers coupled to the decode circuit, wherein the channel configuration registers are programmable to define channel attributes for each channel, and wherein, responsive to the indication indicating that the plurality of channels are not ganged, the decode circuit is configured to determine which of the plurality of channels is used dependent on the channel attributes.
- 7. The memory controller as recited in claim 1 further comprising a second plurality of channel control circuits, wherein each of the second, plurality of channel control circuits is coupled to a respective one of a second plurality of channels, and wherein the second plurality of channels, during use, are coupled to the memory system.
- 8. The memory controller as recited in claim 7 wherein the second plurality of channel control circuits are coupled to receive a second indication indicative of whether or not the second plurality of channels are ganged, and wherein the second indication is independent of the indication.
- 9. The memory controller as recited in claim 1 further comprising a data normalizer circuit coupled to the plurality of channel control circuits and to a data portion of the plurality of channels, wherein the data normalizer circuit is configured to route read data from each of the plurality of channels to a first channel control circuit responsive to the indication indicating that the plurality of channels are ganged, and wherein the data normalizer is configured to route read data from each of the plurality of channels to a respective one of the plurality of channel control circuits responsive to the indication indicating that the channels are not ganged.
- 10. The memory controller as recited in claim 9 wherein the memory system comprises multiple data rate memory, and wherein the data normalizer circuit is configured to convert the multiple data rate read data to single data rate read data responsive to the indication indicating that the plurality of channels are not ganged.
- 11. The memory controller as recited in claim 10 wherein the memory data normalizer is configured to supply multiple data rate read data to the first channel control circuit responsive to the indication indicating that the plurality of channels are ganged.
- 12. The memory controller as recited in claim 11 wherein the first channel control circuit comprises a data path circuit coupled to receive the multiple data rate read data, and wherein the data path circuit is configured to convert the multiple data rate read data to single data rate read data.
- 13. The memory controller as recited in claim 9 wherein the data normalizer circuit is configured to route write data from the first channel control circuit to each of the plurality of channels responsive to the indication indicating that the plurality of channels are ganged, and wherein the data normalizer is configured to route write data from each of the plurality of channel control circuits to a respective one of the plurality of channels responsive to the indication indicating that the channels are not ganged.
- 14. The memory controller as recited in claim 13 wherein the memory system comprises multiple data rate memory, and wherein the data normalizer circuit is configured to convert single data rate write data to multiple data rate write data.
- 15. The memory controller as recited in claim 1 wherein, if the plurality of channels are ganged, the data portions of the plurality of channels are coupled to a same set of one or more memory devices.
- 16. The memory controller as recited in claim 1 wherein, if the plurality of channels are not ganged, each of the plurality of channels is coupled to a separate set of one or more memory devices.
- 17. A system comprising:
one or more processors; and a memory controller coupled to receive memory transactions from the processors, wherein the memory controller is configured to process a command in response to each memory transaction, and wherein the memory controller is coupled to a plurality of channels, and wherein the plurality of channels, during use, are coupled to a memory system, and wherein the memory controller is configured to transfer data for a first command on each of the plurality of channels responsive to an indication indicating that the plurality of channels are ganged, and wherein the memory controller is configured to transfer data on a selected one of the plurality of channels responsive to the indication indicating that the plurality of channels are not ganged.
- 18. The system as recited in claim 17 wherein the memory controller is further coupled to a second plurality of channels, and wherein the second plurality of channels, during use, are coupled to the memory system.
- 19. The system as recited in claim 18 wherein the memory controller is configured to transfer data on the second plurality of channels responsive to a second indication indicative of whether or not the second plurality of channels are ganged, and wherein the second indication is independent of the indication.
- 20. The system as recited in claim 17 wherein, responsive to the indication indicating that the plurality of channels are not ganged, the memory controller is configured to concurrently transfer data is for a second command on a different channel of the plurality of channels from the selected channel.
- 21. A method comprising:
generating an indication of whether or not a plurality of channels from a memory controller to a memory system are ganged; transferring data for a first command on each of the plurality of channels responsive to the indication indicating that the plurality of channels are ganged; and transferring data for the first command on a selected one of the plurality of channels responsive to the indication indicating that the plurality of channels are not ganged.
- 22. The method as recited in claim 21 further comprising:
generating a second indication of whether or not a second plurality of channels from the memory controller to the memory system are ganged, wherein generating the second indication is independent of generating the indication; transferring data for a second command on each of the second plurality of channels responsive to the second indication indicating that the second plurality of channels are ganged; and transferring data for the second command on a selected one of the second plurality of channels responsive to the second indication indicating that the second plurality of channels are not ganged.
- 23. The method as recited in claim 21 further comprising concurrently transferring data for a second command on a different one of the plurality of channels from the selected channel responsive to the indication indicating that the plurality of channels are not ganged.
Parent Case Info
[0001] This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/380,740, filed May 15, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60380740 |
May 2002 |
US |