Yes, a file full of zero bits transfers faster over USB2.0 than a file full of one bits.
I've known this forever but it still feels ridiculous when you actually test it and it's true!
USB truly is cursed.
Yes, a file full of zero bits transfers faster over USB2.0 than a file full of one bits.
I've known this forever but it still feels ridiculous when you actually test it and it's true!
USB truly is cursed.
Yes, a file full of zero bits transfers faster over USB2.0 than a file full of one bits.
I've known this forever but it still feels ridiculous when you actually test it and it's true!
USB truly is cursed.
@lina @to Oh, so kinda like bit stuffing in CANbus where an extra bit of the opposite level is added after 5 consecutive bits of the same value.
However I don't understand why in USB it only applies to ones and not zeroes.
EDIT: Just reat the other post about NRZI coding, it now makes perfect sense! But that remains cursed nonetheless x)
The line between makes perfect sense and deeply cursed is where computer science thrives.
@ArabellaLovejoy @to Take this with a grain of salt, but I get that a modern SSD using 3D NAND gains around 0.05 picograms per terabyte of data stored. 0s are heavier and an empty SSD is all 1s.
Roughly going by the cell geometry and electron density mentioned in this paper, which works out to around 300 electrons per programmed cell, taking 150 as an average (whitening) and assuming TLC flash: https://www.jstage.jst.go.jp/article/elex/17/23/17_17.20200335/_pdf
This does not apply to RAM since that uses capacitors, so you take electrons from one side and move them to the other, so no net weight change.
I'm not sure whether you were joking, but, yes, there is a plausible theory that information has mass:
@letterbeen or "just" use a compressing content transfer encoding like gzip 😉
@lina Few people know it but the reason for this is very simple. While zeroes are round, a 1 has a sharp corner and a hook that could get stuck and damage the insulation around the copper if you would completely fill the line with ones. Instead, sending some zeroes every now and then to flush any stuck „1“ before a clog can develop.
A 0 can be neatly pushed through the copper at high pressure without damaging the cable.
Now you know!
@kaustcvantas @lina @uint8_t@chaos.social
I think people tend to forget that ironic shitposting is still shitposting.
@Qbitzerre @uint8_t @lina Usual line coding is NRZ, which encodes bits in levels. 1 high 0 low, simple.
But USB is NRZI-S, it encodes bits in level *changes* : https://en.wikipedia.org/wiki/Non-return-to-zero#Non-return-to-zero_inverted
This means a zero is encoded by a level change and a one is encoded by no change. You need bit suffing because USB does not transmit the associated clock, and with no transition in long strings of ones, the receiver would loose sync.