On Wed, 2009-04-01 at 23:12 -0500, solarwind wrote: > Wow. Thanks. Asynchronous seems a lot more complicated. What is the > advantage of using an asynchronous system? Is USB asynchronous? Well, you save a clock line, that's a pretty big advantage when dealing with serial protocols (2 wires vs. 1 wire). Pretty much all "modern" serial protocols either embed in the data something that allows the endpoint to generate/sync a local clock (i.e. USB), send a lower speed clock (i.e. DVI/HDMI sends the pix clock, a PLL on the receiver bumps that up internally to the serial clock) or do both (PCIE sends a reference clock, but some end points don't use it). Considering the speeds involved (~5Gbps for protocols like PCIE, SATA, and USB3) it's just not feasible anymore to send the clock reliably. The benefit of course is that with modern PLL/DLLs it's possible to account for skew between lines. This is used with PCIE where every "lane" is actually treated as a completely separate line. Even though the data is sent in parallel (assuming more then an x1 link: bit 0 is sent on lane0, bit 1 on lane 1, etc) the skew between lines can easily be a clock period (even more). The end point treats each lane separately, so it adjusts the skew on each line to ensure that internally all the data "arrives" at the same time to the rest of the chip. Even "parallel" synchronous buses use this technique. DDR for example groups each set of 8 bits together with it's own data strobe. This allows for skew between each set of 8 bits to be compensated for (you still have to length match each group of 8 bits). All of this neatness allows for less stringent layout requirements on the board designer. In the "parallel" days (i.e. PCI) you had to ensure that every single data/control/clock line were within a small margin the same length (hence the "squigglies" that were so common, you still see them on memory buses) . This became very unwieldy as bus widths increased. These days you still have length matching requirements, but for the speeds involved they are quite lax. If you want to learn more I'd recommend wiki, it's a wonderful resource that often gives pointers on more technical info. TTYL -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist