IP Library Granted Patent US 10,031,867
Granted Patent B2
US 10,031,867 · App. 14/482,780 · Granted Jul 24, 2018

Pulse-latch based bus design for increased bandwidth

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 10,031,867
App. No.
14/482,780
Granted
Jul 24, 2018
Kind
B2
Abstract

A memory bus comprising a plurality of latches arranged sequentially between a source node and a destination node of a channel of the memory bus; and a pulse generator. The pulse generator is operable to generate a sequence of pulses, each sequential pulse to be simultaneously received by the plurality of latches. A pulse is generated for each edge of a clock signal. A first latch of the plurality of latches is operable to pass on a first data sample while a first pulse is received by the first latch of the plurality of latches. A second latch of the plurality of latches is operable to pass on a second data sample towards the first latch of the plurality of latches while the first pulse is simultaneously received by the first and second latches of the plurality of latches.

Claims (27)

1. A memory bus comprising:

a plurality of latches arranged sequentially in an individual channel of the memory bus, wherein said memory bus is coupled between a source node and a destination node of; and

a pulse generator operable to generate a sequence of pulses, wherein said pulse generator is configure to: generate a pulse of said sequence of pulses responsive a rising edge of a clock signal in a clock cycle; and generate another pulse of said sequence of pulses responsive a falling edge of said clock signal in said clock cycle, wherein the pulse generator is coupled to said plurality of latches, wherein a respective pulse of the sequence of pulses is simultaneously received by the plurality of latches, wherein: responsive to a first pulse in the sequence of pulses, a first latch of the plurality of latches is configured to pass on a first data sample stored therein along the individual channel; and a second latch of the plurality of latches is configured to pass on a second data sample stored therein along the individual channel to the first latch for storing responsive to the first pulse.

2. The memory bus of claim 1 , wherein each individual channel of the memory bus comprises a separate pulse generator.

3. The memory bus of claim 1 , wherein a plurality of channels of the memory bus share said pulse generator.

4. The memory bus of claim 1 , wherein a bandwidth of the memory bus is proportional to a number of latches between the source node and the destination node of the memory bus, and wherein a frequency of the clock signal remains constant regardless of the number of latches.

5. The memory bus of claim 1 , wherein each latch of the plurality of latches is operable to simultaneously receive and pass on a respective data sample as synchronized by the sequence of pulses.

6. The memory bus of claim 1 , wherein the source node of the memory bus is part of one of a memory controller, a memory module, and a cache memory, and wherein the destination node of the memory bus is part of one of a remaining memory module, memory controller, and cache memory.

7. The memory bus of claim 4 , wherein a delay before a next data sample is transmitted by the source node is related to the number of latches of the individual channel that are disposed between the source node and the destination node of the memory bus.

8. A method for transmitting data in a memory bus, the method comprising:

generating a sequence of pulses, wherein each pulse is simultaneously received by a plurality of latches, wherein the plurality of latches are arranged sequentially between a source node and a destination node of an individual channel of the memory bus, and wherein the generating comprises generating a pulse of said sequence of pulses responsive a rising edge of a clock signal in a clock cycle; and generating another pulse of said sequence of pulses responsive a falling edge of said clock signal in said clock cycle;

passing on a first data sample from a first latch of the plurality of latches responsive to a first pulse of the sequence of pulses; and

passing on a second data sample from a second latch of the plurality of latches to the first latch for storing responsive to the first pulse.

9. The method of claim 8 further comprising generating a separate sequence of pulses for each individual channel of the memory bus.

10. The method of claim 8 further comprising generating a sequence of pulses that are shared by a plurality of channels of the memory bus.

11. The method of claim 8 , wherein a bandwidth of the memory bus is proportional to a number of latches on the individual channel between the source node and the destination node of the memory bus, and wherein a clock signal frequency remains constant and is independent of the number of latches.

12. The method of claim 8 , wherein each latch of the plurality of latches simultaneously receives and passes on a respective data sample as synchronized by the sequence of pulses.

13. The method of claim 8 , wherein the source node of the memory bus is part of one of a memory controller, a memory module, and a cache memory, and wherein the destination node of the memory bus is part of one of the memory module, the memory controller, and the cache memory.

14. The method of claim 11 , wherein a delay before a next data sample to be transmitted by the source node is related to the number of latches of the individual channel between the source node and the destination node of the memory bus.

15. A memory bus comprising:

a plurality of channels, each individual channel of the plurality of channels coupled to a source node and a destination node, wherein each individual channel of the plurality of channels comprises a plurality of latches arranged sequentially between a corresponding source node and a destination node; and

at least one pulse generator operable to generate a sequence of pulses, wherein the at least one pulse generator is configured to generate a pulse of said sequence of pulses responsive a rising edge of a clock signal in a clock cycle; and generate another pulse of said sequence of pulses responsive a falling edge of said clock signal in said clock cycle, wherein each pulse of the sequence of pulses is simultaneously received by the pluralities of latches of the individual channel, wherein a first latch of the plurality of latches is operable to pass on a first data sample stored therein responsive to a first pulse of the sequence of pulses, and wherein a second latch of the plurality of latches is operable to pass on a second data sample stored therein to the first latch for storing responsive to the first pulse.

16. The memory bus of claim 15 , wherein each individual channel of the memory bus comprises a separate pulse generator.

17. The memory bus of claim 15 , wherein a plurality of channels of the memory bus share a pulse generator.

18. The memory bus of claim 15 , wherein a bandwidth of the memory bus is proportional to a number of latches of the individual channel between the source node and the destination node of a channel of the memory bus, wherein a delay before a next data sample may be transmitted by the source node is related to the number of latches between the source node and the destination node of the channel of the memory bus, and wherein a frequency of the clock signal is independent of the number of latches.

19. The memory bus of claim 15 , wherein each latch of the plurality of latches of an individual channel is operable to simultaneously receive and pass on a respective data sample as synchronized by the sequence of pulses.

20. The memory bus of claim 15 , wherein the source node of the memory bus is part of one of a memory controller, a memory module, and a cache memory, and wherein the destination node of the memory bus is part of one of the memory module, the memory controller, and the cache memory.

Assignments (5)
CHANGE OF NAME Recorded Dec 6, 2017
From: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
To: AMPERE COMPUTING LLC
Reel/Frame 044717/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC
To: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
Reel/Frame 044798/0599 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2017
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
Reel/Frame 044652/0609 →
MERGER AND CHANGE OF NAME Recorded Apr 6, 2017
From: APPLIED MIRCO CIRCUITS CORPORATION; MACOM CONNECTIVITY SOLUTIONS, LLC
To: MACOM CONNECTIVITY SOLUTIONS, LLC
Reel/Frame 041889/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2014
From: JANGITY, ARUN
To: APPLIED MICRO CIRCUITS CORPORATION
Reel/Frame 033713/0515 →