Jump to content

Suggestion for LTT video: Synchronous, Asynchronous, Parallel, Serial, balanced, unbalanced signalling.

xentropa

I think some history and technical information regarding the evolution of electrical signals is worth teaching us.  I searched a bit, but couldn't find a video related to it.

 

Examples are

Why serial data transfer eventually became favored over parallel.

 

What synchronous/asynchronous data transfer is and what benefits/downsides are there to each

(Synchronous data transfer is like pci-e, SDRAM.  Asynchronous is SATA, USB, ethernet)

 

Balanced signals and unbalanced signals.

Unbalanced are like fiberoptic, coaxial

Balanced is pretty much any cable that has a + - pin.  Pcie, sdram, usb, sata ethernet everything in a computer uses balanced signals.

 

What think you.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, xentropa said:

I think some history and technical information regarding the evolution of electrical signals is worth teaching us.  I searched a bit, but couldn't find a video related to it.

 

Examples are

Why serial data transfer eventually became favored over parallel.

 

What synchronous/asynchronous data transfer is and what benefits/downsides are there to each

(Synchronous data transfer is like pci-e, SDRAM.  Asynchronous is SATA, USB, ethernet)

 

What think you.

I´m for this.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm always up for learning new things.

[CPU: 4.7ghz I5 6600k] [MBAsus Z170 Pro G] [RAM: G.Skill 2400 16GB(2x8)]

[GPU: MSI Twin Frozr GTX 970] [PSU: XFX Pro 850W] [Cooler: Hyper 212 Evo]
[Storage: 500GB WD HDD / 128GB SanDisk SSD ] [Case: DeepCool Tessaract]

[Keyboard: AZIO MGK1] [Mouse: Logitech G303] [Monitor: 2 x Acer 23" 1080p IPS]

 

Link to comment
Share on other sites

Link to post
Share on other sites

If you're interested

 

Parallel/Serial

parallel means that you send data over parallel wires, you send multiple bits at the same time, one on each wire (8 wires and you can send one byte each clock cycle).

serial means that you send data over a single wire and bits come in series, after each other (1 byte can be sent in 8 clock cycles).

 

Intuitively it seems you should be able to send more data quicker over parallel! Not in the real world of long distance communication (off chip or even worse off board), in the real world you have things like EMC, resistance and capacitance causing all kinds if issues.

Each wire with a variable voltage (any data transfer) will have and electromagnetic field and cause electromagnetic interference on other wires. The more wires and the higher the clock frequency the higher the interference of the wires between each other meaning high noise. == PARALLEL BAD

On a parallel bus you also need to have precise timings, what if one of the wires is a little longer or has a little higher resistance, the wires signal will lag behind the others and you get garbage on the receiving end. This means you can't clock communication very high and you get bad throughput unless you have very tight specs and very short wires (ie they are traces or even better on chip). == PARALLEL BAD

Parallel can of course be good when you can deal with these issues (ie on board or chip, by having really short wires/traces) you can get higher throughput than serial.

 

This is why parallel is hardly (read never) used when dealing with off board communication, traces on the board are easier to synchronize and so on. Serial on the other hand you send bits after each other so they don't require exact timings. Also you don't have as many wires that interfere with each other. BUT serial requires logic on both sides to convert the parallel on chip logic to serial logic. You can clock serial a lot higher to get good throughput as you don't have as much EMC.

 

Sync/Async

Synchronous means you send a clock signal with your data so that the receiver knows when the timings of the data are. This is easier to implement but harder to scale. You have a wire constantly switching between high and low at a high frequency = EMC hell.

In asynchronous communications you don't rely on a clock signal to tell the receiver when the bytes/packets start and end but rely on other means such as certain start and end bits). Your other device needs it's own clock though.

Just like before it's easier to deal with EMC and such when your on board (ie PCI-E, DRAM, etc) and allows for higher transfer rates IF you can deal with the issues. When your dealing with cables (ie long range stuff, USB, SATA, ethernet), you generally go with async.

 

 

Balanced/Unbalanced

Unbalanced means you just do the communication the naive way, one wire with a signal and a ground wire so the devices can tell whats one and zero. THIS IS BAD because if you have interference your bits can flip really easily.

DATA = 010

after interference

DATA = 011 = GARBAGE

 

Balanced means that you circumvent this issue by having two wires where you send DATA on one and !DATA (complement) on the other and then you subtract the analog signals after receiving to remove any noise that got added during transmission. ie:

DATA = 010

!DATA = 101
DATA-!DATA =  -1 1 -1 = 010 = DATA

These wires will route through the same interference so if you subtract the analog signals after they arrive:

DATA = 011 

!DATA = 102

DATA-!DATA = -1 1 -1 = 010 = DATA

And as you can see even with interference that ruined our transmission, by sending the complementary signal too we could still get the DATA

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×