IP Library Granted Patent US 9,015,399
Granted Patent B2
US 9,015,399 · App. 12/186,372 · Granted Apr 21, 2015

Multiple data channel memory module architecture

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,015,399
App. No.
12/186,372
Granted
Apr 21, 2015
Kind
B2
Abstract

The present invention is directed generally to systems and methods which provide a memory module having multiple data channels that are independently accessible (i.e., a multi-data channel memory module). According to one embodiment, the multi-data channel memory module enables a plurality of independent sub-cache-block accesses to be serviced simultaneously. In addition, the memory architecture also supports cache-block accesses. For instance, multiple ones of the data channels may be employed for servicing a cache-block access. In one embodiment a DIMM architecture that comprises multiple data channels is provided. Each data channel supports a sub-cache-block access, and multiple ones of the data channels may be used for supporting a cache-block access. The plurality of data channels to a given DIMM may be used simultaneously to support different, independent memory access operations.

Claims (77)

1. A memory module comprising:

memory enabling simultaneous access to a plurality of sub cache blocks a for servicing a cache block access;

multiple, independent data channels communicatively coupled to said memory, each data channel supporting a sub cache block access to a corresponding sub cache block, wherein an access bus of said memory module is partitioned into eight independent eight-byte sub-buses such that multiple ones of said multiple, independent data channels may be used for servicing said cache-block access; and

a separate address/control channel dedicated for receiving only address and control information for memory operations for at least one of the pluralities of the sub cache blocks comprising the cache block access to be simultaneously serviced by the multiple, independent data channels, such that an address and a request type is independently supported for each of said eight-byte sub-buses individually.

2. The memory module of claim 1 wherein said memory module comprises a dual in-line memory module (DIMM).

3. The memory module of claim 1 wherein said memory for storing data comprises at least one dynamic random access memory (DRAM).

4. The memory module of claim 3 wherein said memory comprises a plurality of separate DRAMs, and wherein each of the multiple, independent data channels provides access to a different one of the plurality of separate DRAMs.

5. The memory module of claim 1 wherein each of the multiple, independent data channels provides access to a different portion of said memory.

6. The memory module of claim 1 wherein the multiple, independent data channels are operable to carry data for independent memory access operations.

7. The memory module of claim 6 wherein the multiple, independent data channels comprise:

eight 8-bit wide data channels.

8. The memory module of claim 7 wherein, for a respective independent memory access operation being serviced by one of the eight data channels, the one data channel carries data in a burst of 8 time units, thereby carrying 8 bytes of data for servicing the respective independent memory access operation.

9. The memory module of claim 1 wherein each of the multiple, independent data channels is operable to carry a sub-cache-block of data for independent memory access operations.

10. The memory module of claim 9 wherein, over a time period for carrying a cache-block of data, the multiple, independent data channels each carry a sub-cache-block of data.

11. The memory module of claim 10 wherein each of the multiple, independent data channels carries said sub-cache-block of data for servicing a different, independent memory access operation.

12. The memory module of claim 11 wherein the time period for carrying said cache-block of data comprises an 8 time unit burst of 64-bytes of data.

13. The memory module of claim 12 wherein the 8 time unit burst comprises either 8 clock cycles or 8 clock phases.

14. The memory module of claim 12 wherein during said 8 time unit burst said multiple, independent data channels each carries 8-bytes of data for a different one of eight independent memory access operations.

15. The memory module of claim 1 further comprising:

control logic for receiving address and control information for a plurality of independent memory access operations to be serviced by the multiple, independent data channels.

16. The memory module of claim 15 wherein the control logic receives the address and control information from an external memory controller via the separate address/control channel.

17. The memory module of claim 16 wherein dual data rate (DDR) signaling is employed for the received address and control information.

18. The memory module of claim 15 wherein the received address and control information comprises row select and column access commands encoded into a single command.

19. The memory module of claim 18 further comprising:

a plurality of internal address/control channels for carrying address and control information for the multiple, independent data channels, wherein the control logic is operable to decode the received address and control information to result in address and control information for the plurality of internal address/control channels.

20. The memory module of claim 19 wherein the plurality of internal address/control channels comprise four independent internal address/control channels.

21. The memory module of claim 20 wherein the multiple, independent data channels comprise eight independent data channels, and wherein each of the four independent internal address/control channels carries address and control information for two of the eight independent data channels.

22. A memory module comprising:

memory enabling simultaneous access to a plurality of sub cache blocks for servicing a cache block access;

a plurality of independent data channels for accessing said memory, each data channel supporting a sub cache block access, wherein an access bus of said memory module is partitioned into eight independent eight-byte sub-buses such that multiple ones of said plurality of independent data channels may be used for servicing said cache-block access;

an external address/control channel for receiving address and control information for memory operations for at least one of the pluralities in the cache block to be serviced by the plurality of independent data channels, wherein said external address/control channel is separate from the plurality of independent data channels;

a plurality of internal address/control channels for carrying address and control information for the plurality of independent data channels, such that an address and a request type is independently supported for each of said eight-byte sub-buses individually; and

control logic operable to receive, via the external address/control channel, encoded address and control information, and decode the received address and control information to result in address and control information for the plurality of internal address/control channels.

23. The memory module of claim 22 wherein each of the plurality of independent data channels is operable to service an independent memory access operation as specified by the decoded address and control information on the internal address/control channels.

24. The memory module of claim 22 wherein the decoded address and control information specifies a plurality of independent memory access operations, and wherein the plurality of independent data channels each carries data for a separate one of the plurality of independent memory access operations.

25. The memory module of claim 22 wherein said memory comprises a plurality of separate memories, and wherein each of the plurality independent data channels provides access to a different one of the plurality of separate memories.

26. The memory module of claim 25 wherein each of the plurality of separate memories comprises a dynamic random access memory (DRAM).

27. The memory module of claim 22 wherein said memory module comprises a dual in-line memory module (DIMM).

28. The memory module of claim 22 wherein the plurality of independent data channels comprise:

eight 8-bit wide data channels.

29. The memory module of claim 28 wherein, for a respective independent memory access operation being serviced by one of the eight data channels, the one data channel carries data in a burst of 8 time units, thereby carrying 8 bytes of data for servicing the respective independent memory access operation.

30. The memory module of claim 22 wherein each of the plurality of independent data channels is operable to carry a sub-cache-block of data for independent memory access operations.

31. The memory module of claim 30 wherein, over a time period for carrying a cache-block of data, the plurality of independent data channels each carry a sub-cache-block of data.

32. The memory module of claim 31 wherein, over the time period for carrying the cache-block of data, the plurality of independent data channels carry in aggregate a cache-block of data.

33. The memory module of claim 31 wherein each of the plurality of independent data channels carries said sub-cache-block of data for servicing a different, independent memory access operation.

34. The memory module of claim 33 wherein the time period for carrying said cache-block of data comprises an 8 time unit burst of 64-bytes of data.

35. The memory module of claim 34 wherein the 8 time unit burst comprises either 8 clock cycles or 8 clock phases.

36. The memory module of claim 34 wherein during said 8 time unit burst said plurality of independent data channels each carries 8-bytes of data for a different one of eight independent memory access operations.

37. The memory module of claim 22 wherein the received encoded address and control information comprises row select and column access commands encoded into a single command.

38. The memory module of claim 37 wherein dual data rate (DDR) signaling is employed for the received encoded address and control information.

39. The memory module of claim 22 wherein the plurality of internal address/control channels comprise four independent internal address/control channels.

40. The memory module of claim 39 wherein the plurality of independent data channels comprise eight independent data channels, and wherein each of the four independent internal address/control channels carries address and control information for two of the eight independent data channels.

41. The memory module of claim 22 wherein the control logic comprises a field-programmable gate array (FPGA).

42. The memory module of claim 22 wherein the control logic comprises an application-specific integrated circuit (ASIC).

43. The memory module of claim 22 wherein said external address/control channel is dedicated for only receiving address and control information for memory operations to be serviced by the plurality of independent data channels.

44. A memory module comprising:

memory enabling simultaneous access to a plurality of sub cache blocks for servicing a cache block access;

a plurality of independent data channels communicatively coupled to said memory, wherein each of the plurality of independent data channels is operable to carry a sub-cache-block of data of at least one of the pluralities of sub-cache blocks in the cache block for independent memory access operations, wherein an access bus of said memory module is partitioned into eight independent eight-byte sub-buses such that multiple ones of said plurality of independent data channels may be used for servicing said cache-block access; and

a separate address/control channel dedicated for only receiving address and control information for memory operations to be serviced by the plurality of independent data channels such that an address and a request type is independently supported for each of said eight-byte sub-buses individually.

45. The memory module of claim 44 wherein, over a time period for carrying a cache-block of data, the plurality of independent data channels each carry said sub-cache-block of data.

46. The memory module of claim 45 wherein, over the time period for carrying the cache-block of data, the plurality of independent data channels carry in aggregate a cache-block of data.

47. The memory module of claim 45 wherein each of the plurality of independent data channels carries said sub-cache-block of data for servicing a different, independent memory access operation.

48. The memory module of claim 47 wherein the time period for carrying said cache-block of data comprises an 8 time unit burst of 64-bytes of data.

49. The memory module of claim 48 wherein the 8 time unit burst comprises either 8 clock cycles or 8 clock phases.

50. The memory module of claim 48 wherein during said 8 time unit burst said plurality of independent data channels each carries 8-bytes of data for a different one of eight independent memory access operations.

51. A method of servicing memory access requests, the method comprising:

receiving, at a memory of a memory module enabling simultaneous access to a plurality of sub cache blocks for servicing a cache block access, via an external address/control channel, encoded address and control information for a plurality of independent memory access operations for at least one of the pluralities of sub cache blocks, wherein an access bus of said memory module is partitioned into eight independent eight-byte sub-buses such that multiple ones of said eight independent eight-byte sub-buses may be used for servicing said cache-block access, said external address/control channel being configured such that an address and a request type is independently supported for each of said eight-byte sub-buses individually;

decoding, by control logic of the memory module, the received encoded address and control information into information for a plurality of internal independent address/control channels within the memory module; and

carrying data for servicing the plurality of independent memory access operations as defined by the information on the plurality of internal independent address/control channels via a plurality of independent data channels of the memory module, wherein the external address/control channel is separate from the plurality of independent data channels.

52. The method of claim 51 wherein each of the plurality of independent data channels is operable to carry a sub-cache-block of data for a corresponding one of the plurality of independent memory access operations.

53. The method of claim 52 wherein said carrying comprises:

over a time period for carrying a cache-block of data, the plurality of independent data channels each carry said sub-cache-block of data.

54. The method of claim 53 wherein said carrying comprises:

over the time period for carrying the cache-block of data, the plurality of independent data channels carry in aggregate a cache-block of data.

55. The method of claim 53 wherein the time period for carrying said cache-block of data comprises an 8 time unit burst of 64-bytes of data.

56. The memory module of claim 55 wherein during said 8 time unit burst said plurality of independent data channels each carries 8-bytes of data for a different one of eight independent memory access operations.

57. The method of claim 51 wherein said external address/control channel is dedicated for solely carrying said encoded address and control information.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2017
From: DUGAN, MICHAEL; BREWER, TONY M.; O'LEARY, WILLIAM D.; ANDREWARTHA, J. MICHAEL
To: MICRON TECHNOLOGY, INC.
Reel/Frame 042379/0832 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2015
From: CONVEY COMPUTER CORPORATION
To: MICRON TECHNOLOGY, INC
Reel/Frame 035578/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2008
From: BREWER, TONY M.; ANDREWARTHA, J. MICHAEL; O'LEARY, WILLIAM D.; DUGAN, MICHAEL K.
To: CONVEY COMPUTER
Reel/Frame 021675/0647 →