To: Ali Chen who wrote (34394 ) 11/12/1999 8:39:00 PM From: Bilow Read Replies (2) | Respond to of 93625
Hi Ali Chen; I'm going to have to defend Rambus a little on that relative propagation delay thing... First of all, don't worry about you and John not quite agreeing on the meaning of the term "propagation delay". As engineers, we know that what really matters is whether the thing is going to work or not. So looking at the issue of the RIMM modules (and the motherboard) having mixed internal and external RSL signal lines... What you have to do, as a designer, is make sure that each RSL signal uses internal or external lines equally, and at the same point in the trace. Then all the propagation delay differences due to humidity etc., will cancel. What doesn't cancel is the difference between the arrival time of the close RDRAMs and the far RDRAMs. Sure, this will depend on humidity, and God knows what else, but this is not critical due to the following: (1) For memory reads, the clock that causes the read is passed along with the data. So it suffers the same speed ups or slow downs as the data. Consequently the read back data shows up coincident with the clock. We should note that what appears to be the best leaked information on the Rambus failure suggests that the problem is with the reads, not with the writes. If this information is correct, and I personally believe it is, then humidity isn't likely to be the problem as far as arrival times of (the leading edges of) signals. Of course, the changes in impedance will cause reflections. Interestingly, the reflections that come from the incoming data signal will end up absorbed by the termination resistor. So there are no reflections that show up (to first order) at the controller. Instead, it is the reflections that come from the outgoing data wave that would show up in first order at the controller. Anyway, I don't see this as a big deal, but I have to admit that I haven't done the P-Spice simulation. I only hope that the Rambus people did. In any case, the problem is not one of the arrival time of the primary wave, those waves are synchronized by design. If the RIMM guys did put some data lines inside the PCB more than they put others, or the clock, then you are correct, there will be a timing problem with the data versus the clock. (2) On writes, the clock and data are sent outgoing. Because the write data arrives at the closer RDRAMs before it arrives at the outer ones, it is convenient to delay that write data inside the RDRAM enough to counteract this. This counteraction is controlled by the registers that someone was talking about earlier on this thread. I think that these have to do with writing, rather than reading, but I may have it reversed.... Nah... All those delay registers do is sort of synchronize all the RDRAM together. In this case, synchronize means that all memory chips act as if they are the same distance from the processor, the distance of the farthest memory chip. (Incidentally, this synchronization is the explanation for why when people put more RDRAM into a channel, it causes the channel to provide worse performance. This has been shown in several interesting benchmarks.) Of course the farthest out memory chips don't need any delays, they are farther out. The nearer chips are delayed on reads by the time required for the clock to propagate back from the end of the Rambus channel forwards towards the controller. The writes signals are not delayed on the bus, but are delayed internal to the RDRAM chips. The nearer RDRAM chips delay the write according to the programmed amount. Perhaps an example will help. If the Rambus channel length is 5ns long, then the nearest RDRAM chips will be programmed to delay their writes by 10ns. The reason for the doubling, is because there are two delays, one for reads, and one for writes. These have to be both matched. John, did I get it right? -- Carl