I keep hearing about Universal Serial Bus [USB]. Why hasn't a
Universal Parallel Bus [UPB] been implemented yet?
Wouldn't a UPB be faster than a USB at the same clock rate? If so,
this would mean the same speed with less energy comsumption. Right?
Thanks,
Green Xenon
Yes it would be how ever, that cost more..
Significantly more?
Its fundamental limitations are: 1. attached to the 8MHz ISA bus (baud <
~1Meg/s), cable length or signal quality (limited to about 1 meter), and the
cable contains 25 wires = it's a heavy bastard and requires lots of
connections = more to go wrong.
I suppose one could make a PCI or PCI-E clocked "parallel port", maybe using
LVDS and terminated transmission lines, but then you'd be right back at
something like 100MBit ethernet (CAT5 = four parallel pairs).
USB has only four wires. They fit nicely into a robust connector. Can't
beat that.
Tim
--
Deep Friar: a very philosophical monk.
Website: http://webpages.charter.net/dawill/tmoranwms
"GreenXenon" <gluce...@gmail.com> wrote in message
news:658ff416-fea2-4105...@a37g2000prd.googlegroups.com...
Against my better judgemnet, since I know GX is just a troll, I will
answer his question...
When you have one signal line, and you send a bit, then once you are
able to determine the status of that bit, you are ready for the next
one. You can do this very quickly.
However, when you have two lines, then you have to be able to know,
not just the status of one of those lines, but that of both of them,
at the same time. This takes a little longer to be certain, and
therefore, it goes slower. One line or the other may be a little
longer, or have a slightly different impedance, or any number of other
reasons that makes it different. Yes, this is ofen more than twice as
long as for a single line.
As you add signal lines, the problem grows. You have to wait till you
can be sure that ALL the lines have reached the correct state, before
you can move on to the next. Now, you may think that this doesn't
grow too fast, and you are right. But, at the same time, your
hardware has also increased. Your clock speed has gone down, and your
hardware cost has gone up. This makes a parallel signal not very
attractive
So, how do you get faster throughput? You use multiple serial lines,
like LVDS, each taking a part of the flow, and add them all togther at
the the other end.
Charlie
At very high speeds you start to get skew in the prop delay between
different data lines of a parallel bus... the bits arrive at the
destination at different times. The higher the clock rate and the
longer the bus, the worse this problem gets.
A signal traveling over a single twisted pair has no skew problems.
And electrical losses/dispersion can be fixed with per-lane adaptive
equalizers. For higher data rates, you add more lanes, each with its
own transmitter/equalizer/receiver/fifo, and merge the data streams
digitally. So long, fast serial busses scale much better than parallel
busses. They are smaller and use less connector and IC pins, too.
John
and toggling a wide bus slowly will use just about as much power as
toggling a narrow bus fast so theres no magic gain in efficiency
-Lasse
>Hi:
>
>I keep hearing about Universal Serial Bus [USB]. Why hasn't a
>Universal Parallel Bus [UPB] been implemented yet?
It has. It's often called the "Printer Port".
>Wouldn't a UPB be faster than a USB at the same clock rate? If so,
>this would mean the same speed with less energy comsumption. Right?
No. and HELL NO.
Of course, look at the old Centronics port printer cable compared to
a modern USB cable.
A common fast parallel bus was the SCSI port for HDDs, and these days
they use SAS (Serial Attached SCSI) because it's faster than old
parallel form, which went from narrow, wide and ultrawide before
going serial to run even faster.
And the reason is as other posters state, data skew between parallel
lines limits max data rate. It's faster to go serial. That's why
hard drives now use SATA rather than the old ribbon cable.
USB is also self powered, it grew from the serial keyboard connection
where the requirement was met by four lines: power, data, clock and
ground to get the cheapest hardware solution.
Also, USB's self clocking gets rid of the old serial port's parameter
setting issues.
Grant.
Look up IEEE-488
It was an attempted semi-universal parallel bus system. It had
several
problems. One being that the specs were written by lawyers. They
were
very hard to understand. There was also one part to do with the
serial
pole method that was ambiguous. Two systems could comply but not be
compatible with each other.
> On Sat, 20 Mar 2010 07:33:19 -0700 (PDT), GreenXenon
> <gluce...@gmail.com> wrote:
>
>>Hi:
>>
>>I keep hearing about Universal Serial Bus [USB]. Why hasn't a
>>Universal Parallel Bus [UPB] been implemented yet?
because cables for them would be far more complex and costly.
How many bits were you considering for your "universal bus"?
A 32 bit bus is going to need 32 wire pairs(signal and GND) or 32 coaxial
cables of equal length,along with clocks,power and grounds.
And now we're at 64 bit buses.
Just look at the old printer cables.
TV stations had the same problem when they went to digital video.and they
only used a 10 bit bus.
>
> It has. It's often called the "Printer Port".
>
>>Wouldn't a UPB be faster than a USB at the same clock rate?
Yes.
..but....more expensive,complex,and more prone to breakage.
Also,fewer cables could be run in the same ducts.
>>If so,
>>this would mean the same speed with less energy comsumption. Right?
>
> No. and HELL NO.
>
MORE energy consumption,because your driver port has to drive all those
outputs,instead of a single output.
TANSTAAFL.
--
Jim Yanik
jyanik
at
localnet
dot com
>"k...@att.bizzzzzzzzzzzz" <k...@att.bizzzzzzzzzzzz> wrote in
>news:dl2aq5dumrb6r3bit...@4ax.com:
>
>> On Sat, 20 Mar 2010 07:33:19 -0700 (PDT), GreenXenon
>> <gluce...@gmail.com> wrote:
>>
>>>Hi:
>>>
>>>I keep hearing about Universal Serial Bus [USB]. Why hasn't a
>>>Universal Parallel Bus [UPB] been implemented yet?
>
>because cables for them would be far more complex and costly.
>How many bits were you considering for your "universal bus"?
>A 32 bit bus is going to need 32 wire pairs(signal and GND) or 32 coaxial
>cables of equal length,along with clocks,power and grounds.
>And now we're at 64 bit buses.
>Just look at the old printer cables.
>
>TV stations had the same problem when they went to digital video.and they
>only used a 10 bit bus.
>>
>> It has. It's often called the "Printer Port".
>>
>>>Wouldn't a UPB be faster than a USB at the same clock rate?
>
>Yes.
No. Skew.
> I keep hearing about Universal Serial Bus [USB]. Why hasn't a
> Universal Parallel Bus [UPB] been implemented yet?
It has been done, twice. IEEE-488 for instruments, and SCSI
for small computers.
Expensive cables made IEEE-488 a boutique item, and SCSI
(which got up to 320 MBytes/sec) was usually kinda high-end
Most Macintosh computers from 1986 to 1998 used SCSI.
Parallel ports DO NOT COUNT, because they aren't a bus;
the early ones weren't even bidirectional, and there was
never any good support for more than two connections.
Bus, from 'omnibus' meaning 'for everyone' implies that all
bus signals are served by all devices, not just two.
nope. Serial is faster nowadays. Compare SATA-300 to PATA-133.
Audio equipment like samplers and keyboard workstations also used SCSI,
both for sample transfer between a PC and the hardware and for mass
storage. Audio manufacturers were quite slow to switch from SCSI to
flash memory/USB for storage/transfer; it was possible to buy new
equipment with internal or external SCSI-1 ports well into the 21st
century. SCSI-1 compact flash readers sell for big money on Ebay for
retrofitting older equipment.
>On Mar 20, 7:33Â am, GreenXenon <glucege...@gmail.com> wrote:
>
>> I keep hearing about Universal Serial Bus [USB]. Why hasn't a
>> Universal Parallel Bus [UPB] been implemented yet?
>
>It has been done, twice. IEEE-488 for instruments, and SCSI
>for small computers.
>
>Expensive cables made IEEE-488 a boutique item, and SCSI
>(which got up to 320 MBytes/sec) was usually kinda high-end
>Most Macintosh computers from 1986 to 1998 used SCSI.
>
>Parallel ports DO NOT COUNT, because they aren't a bus;
>the early ones weren't even bidirectional, and there was
>never any good support for more than two connections.
Nonsense. You could attach anything you wanted to them. The parallel port on
the PC has always been bidirectional.
>Bus, from 'omnibus' meaning 'for everyone' implies that all
>bus signals are served by all devices, not just two.
ALL devices? My PCI bus doesn't serve my memory. You're just making things
up now.
Nope.
http://en.wikipedia.org/wiki/Parallel_port
>
> >Bus, from 'omnibus' meaning 'for everyone' implies that all
> >bus signals are served by all devices, not just two.
>
> ALL devices? Â My PCI bus doesn't serve my memory. Â You're just making things
> up now.
So are you.
Good point, Charlie...
This is being pushed to it's extreme, with multiple Very High Speed
serial busses On-Chip and Off-Chip these days.
My kid is working on simulating these at IBM.. They are around 10 GHz
and each serial 'bus' has adaptive transmitters and receivers so the
same design can be used for a variety of signal paths without
redesign..
The electronics world is getting weird :-)
I got off the BUS just in time...
You sure about that? I recall that inputs had to be done 4 bits at a
time (nibble mode) to assure compatibility. I have a chunk of code
around somewhere that defines all the printer control signals in a
sensible way for general purpose control (some are inverted IIRC...)
Checking Jan Axelson's seminal publication "Parallel Port Complete", I
see she says:-
The original PC's parallel port had eight outputs, five inputs, and
four bidirectional lines.... On many newer PCs, the eight oututs can
also serve as inputs..."
Now, the really crotchety old farts will remember that there was a
hardware modification you could do to the original parallel port cards
(wot used LS TTL parts) to cut the /ENABLE pin of the output latch so
it wasn't permanently grounded, and jumper it to allow it to be
controlled for birectional I/O, but I wouldn't claim that this "had
all the hardware on board" when soldering irons and dremels are
involved...
Of course all this stuff has been in a corner of an LSI chip for
decades now, so you're stuck with whatever IP is used for the chip,
but you used to be able to do it.
Best regards,
Spehro Pefhany
--
"it's the network..." "The Journey is the reward"
sp...@interlog.com Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog Info for designers: http://www.speff.com
The "standard" PC printer port of the PC/XT was the 8255.
This chip could go both directions. Later PCs integrated the
printer port function into a chip and removed some of the
abilities.
>On Mar 20, 8:23Â pm, "k...@att.bizzzzzzzzzzzz"
><k...@att.bizzzzzzzzzzzz> wrote:
>> On Sat, 20 Mar 2010 17:28:11 -0700 (PDT), whit3rd <whit...@gmail.com> wrote:
>> >On Mar 20, 7:33Â am, GreenXenon <glucege...@gmail.com> wrote:
>>
>> >> I keep hearing about Universal Serial Bus [USB]. Why hasn't a
>> >> Universal Parallel Bus [UPB] been implemented yet?
>>
>> >It has been done, twice. Â IEEE-488 for instruments, and SCSI
>> >for small computers.
>>
>> >Expensive cables made IEEE-488 a boutique item, and SCSI
>> >(which got up to 320 MBytes/sec) was usually kinda high-end
>> >Most Macintosh computers from 1986 to 1998 used SCSI.
>>
>> >Parallel ports DO NOT COUNT, because they aren't a bus;
>> >the early ones weren't even bidirectional, and there was
>> >never any good support for more than two connections.
>>
>> Nonsense. Â You could attach anything you wanted to them. Â The parallel port on
>> the PC has always been bidirectional.
>
>Nope.
>http://en.wikipedia.org/wiki/Parallel_port
Hoisted by your own petard:
In early parallel ports the data lines were unidirectional (data out only)
so it was not easily possible to feed data in to the computer. However, a
workaround was possible by using 4 of the 5 status lines. A circuit could be
constructed to split each 8-bit byte into two 4-bit nibbles which were fed
in sequentially through the status lines. Each pair of nibbles was then
re-combined into an 8-bit byte. This same method (with the splitting and
recombining done in software) was also used to transfer data between PCs
using a laplink cable.
i.e. bidirectional.
The 8255 *was* bidirectional.
>>
>> >Bus, from 'omnibus' meaning 'for everyone' implies that all
>> >bus signals are served by all devices, not just two.
>>
>> ALL devices? Â My PCI bus doesn't serve my memory. Â You're just making things
>> up now.
>So are you.
IKWYABWAI is just SUCH a convincing argument. What a maroon!
No. It originated with the Monochrome Display/Parallel Port card for
the PC, which was hardwired at I/O address 0x3bc. (Later versions had
jumpers so you could move it to 0x378). It could be modded to run
bidirectionally--I've done several--but it was unidirectional to start
with. Later parallel port hardware, especially mobo parallel ports,
usually used 0x378 or 0x278 (originally LPT2: and LPT3) to avoid
conflicts with the monochrome/parallel card.
The old LapLink parallel file sharing software used the data lines to
talk in one direction and the control lines in the other.
Cheers
Phil Hobbs
>> Bus, from 'omnibus' meaning 'for everyone' implies that all
>> bus signals are served by all devices, not just two.
>
> ALL devices? My PCI bus doesn't serve my memory. You're just making things
> up now.
--
Dr Philip C D Hobbs
Principal
ElectroOptical Innovations
55 Orchard Rd
Briarcliff Manor NY 10510
845-480-2058
hobbs at electrooptical dot net
http://electrooptical.net
The PC-AT in '84 was bidirectional in the sense that there was a '245
or like to read output data pins, but no output disable on the on the
output data latch/driver. I had the PC-AT technical manual with
circuits, been a while since I read it though.
So if you wrote all ones to port, you could read 8 bit input, providing
external device was TTL logic that sinks many times the high level output
current. IOW, TTL can be active low wire ORed. The nybble r/w method
is far more reliable for any type of parallel port.
Grant.
Duh: the data lines were not bidirectional.
I do not know of any other definition of "bidirectional" which allows
different unidirectional wires to count as bidirectional. Bidirectional
means two directions on the same wire (and in terms of implementation,
usually two directions on the same port address, which certainly isn't true
of the four status bits on the parallel port).
> The 8255 *was* bidirectional.
Still is. But they never used it. They used discrete latches, hence
unidirectional.
><k...@att.bizzzzzzzzzzzz> wrote in message
>news:3clcq552ic5jonnru...@4ax.com...
>>>> Nonsense. You could attach anything you wanted to them. The parallel
>>>> port on
>>>> the PC has always been bidirectional.
>>>
>>>Nope.
>>>http://en.wikipedia.org/wiki/Parallel_port
>>
>> Hoisted by your own petard:
>>
>> In early parallel ports the data lines were unidirectional (data out
>> only)
>> so it was not easily possible to feed data in to the computer.
>
>Duh: the data lines were not bidirectional.
Bullshit.
The Monochrome and printer adapter pinout:
Pin No Signal Direction Register-bit
DB25 Name
1 nStrobe Out Control-0
2 Data0 In/Out Data-0
3 Data1 In/Out Data-1
4 Data2 In/Out Data-2
5 Data3 In/Out Data-3
6 Data4 In/Out Data-4
7 Data5 In/Out Data-5
8 Data6 In/Out Data-6
9 Data7 In/Out Data-7
10 nAck In Status-6
11 Busy In Status-7
12 Paper-Out In Status-5
13 Select In Status-4
14 Linefeed Out Control-1
15 nError In Status-3
16 nInitialize Out Control-2
17 nSelect Out Control-3
18-25 Ground
If you want to play with the Old Skool stuff, try this:
http://terryking.us/parport/
Quote:
All you need to do is think of your machine as having
1. An 8-bit OUTPUT port, with the 8 bits connected to pins 2 thru 9
on the connector
2. An 8-bit INPUT port, with the 8 bits connected to pins 10 thru
17 on the connector (Pins 18 thru 25 are GROUND).
You've probably heard of how weird the parallel port is! It's true,
but this software fixes it by moving the funny input bits around and
inverting those that need it. This level of software is for those who
write their own programs in Turbo Pascal (From Borland) and want to
control the parallel port.
If you're just starting out and don't want to write any software YET,
use SEEBITS.EXE (Above)
I had a lot of fun with school kids wiring all kinds of junk up to the
bits, back in the day...
Perhaps I am corrected.
My PC was not a real IBM.
>On Sat, 20 Mar 2010 10:38:44 -0500, Jamie
><jamie_ka1lpa_not_v...@charter.net> wrote:
>
>>GreenXenon wrote:
>>
>>> Hi:
>>>
>>> I keep hearing about Universal Serial Bus [USB]. Why hasn't a
>>> Universal Parallel Bus [UPB] been implemented yet?
>>>
>>> Wouldn't a UPB be faster than a USB at the same clock rate? If so,
>>> this would mean the same speed with less energy comsumption. Right?
>>>
>>>
>>> Thanks,
>>>
>>> Green Xenon
>>Yes it would be how ever, that cost more..
>>
>Against my better judgemnet, since I know GX is just a troll, I will
>answer his question...
>
>When you have one signal line, and you send a bit, then once you are
>able to determine the status of that bit, you are ready for the next
>one. You can do this very quickly.
>
>However, when you have two lines, then you have to be able to know,
>not just the status of one of those lines, but that of both of them,
>at the same time. This takes a little longer to be certain, and
>therefore, it goes slower. One line or the other may be a little
>longer, or have a slightly different impedance, or any number of other
>reasons that makes it different. Yes, this is ofen more than twice as
>long as for a single line.
>
>As you add signal lines, the problem grows. You have to wait till you
>can be sure that ALL the lines have reached the correct state, before
>you can move on to the next. Now, you may think that this doesn't
>grow too fast, and you are right. But, at the same time, your
>hardware has also increased. Your clock speed has gone down, and your
>hardware cost has gone up. This makes a parallel signal not very
>attractive
>
>So, how do you get faster throughput? You use multiple serial lines,
>like LVDS, each taking a part of the flow, and add them all togther at
>the the other end.
>
>Charlie
Yep, that is just what PCIExpress does, up to 16 lanes (serial line
group?) does.
Next the poly bus packet trains. No, i am not kidding. The
time has come. It will be normal in about 5 to 10 years.
>You're 30 years too late. They called it the Parallel Port. Used on
>everything.
>
>Its fundamental limitations are: 1. attached to the 8MHz ISA bus (baud <
>~1Meg/s), cable length or signal quality (limited to about 1 meter), and the
>cable contains 25 wires = it's a heavy bastard and requires lots of
>connections = more to go wrong.
>
>I suppose one could make a PCI or PCI-E clocked "parallel port", maybe using
>LVDS and terminated transmission lines, but then you'd be right back at
>something like 100MBit ethernet (CAT5 = four parallel pairs).
>
>USB has only four wires. They fit nicely into a robust connector. Can't
>beat that.
>
>Tim
Right so far, see USB 3.0.
Not 8255. The 8 databus lines of the printer port (Centronics) were
implemented with a 74LS374 in XT and earlier. Bidirectional was later.
You are just referring to the wrong connector, those were ISA card slots.
The 74LS374 running the printer port data lines is not a bidirectional device.
Get a schematic if you do not believe me.
Yep, and any "0" being output by the ls374 tended to override any "1"
from any other device. Wired and, which ever device said "0" (low) won.
With the PC or XT ls374 wired on, it did not really make that good of
bidirectional.
Gladly, PATA-133 does 125 MBytes/s; SATA-2 at 3.0 Gb/s does about
240 MBytes/s. There is some transaction overhead for each of them.
The disk spinning at 7200 rpm can provide about 50 MBytes/s. The
difference in real use: not all that much, you are still getting
eaten alive by rotational latency.
Does PCI-E dynamically deskew each lane?
Yes, but the ORIGINAL PC's printer port *WAS* bidirectional, even though it
was TTL. The above pinout is from the 5150's Monochrome and Printer Adapter.
It is still bidirectional, even if you have to write a '1' to the port to
receive. That's not a whole lot different than programming a UC GPIO port to
IN/OUT.
...but the '244 around it was the other half.
Not really, it aggregates packets over the lanes, more like store and forward.
Nor do the packets on any lane have to be related to the packets of any other lane.
What documentation i can find of the original IBM hardware shows this to be true.
However many "clone" cards omitted the input possibility thus saving a part or two.
Nor was the bidirectionality all that good, to get input on those pins writing "FF"
before hand was necessary (the ls374 output enable pin was hardwired).
Again, that's not much different than most UC's bidirectional GPIO ports. It
*is* bidirectional.