Ben Eater Hacking Flow Control on his Breadboard 6502

 Here's part I: 

Here's part II:

If you want a setup like this to try stuff, see https://eater.net/6502 

See my comment:

This style of buffer with high and low-water points tends to cause clumping of data flows when the speeds are mismatched. What happens is that transmitter goes full steam ahead until the high water mark is hit, then the receiver effectively blocks the channel while some software in the transmitting device fills its output buffer, and that clumping can continue backing up the channel to the next higher source, and so on and so forth. Then when the receiver has bought some time it goes full steam processing its buffer until the receive buffer is at the low-water mark, then it turns the flow back on the channel, and the transmitter can empty its transmit buffer at full steam, triggering the emptying of it's source's transmit buffer and so on and so forth, back up the chain. If you imagine this process happening globally then you get circular systems with very non-linear behaviour, so I think the result is that latency on the network goes up. Back in 2015 or so someone noticed this happening on the Internet in the TCP/IP stack and they deduced that the problem was that people were making buffers too big! So there was a campaign to reduce latency by decreasing buffer sizes. This was called "buffer bloat" and apparently it worked, because buffer bloat is no longer an issue, I heard. But whether this results in more dropped packets during congestion I don't know. But dropping packets is just another sort of buffering which filters back up the chain eventually resulting in clumpy Internet behaviour as a whole. So maybe you just get times when the Internet appears to go down and your apps all stop. If so then they pushed the problem right out of their domain into the user's minds! Whether that was a good idea or not, I don't know. Personally I think that using circular FIFOs would be a better solution, as I think it might still allow large buffers but without causing clumping: circular buffers can grow and shrink linearly in proportion to the ratio of the speeds of their upstream/downstream connections. I don't really know enough about statistics to be able to analyze this properly though.

Subscribe to Ben Eater.

Epic Triangle Solo:

See Veronica's explanation. And for the 6502 song: Thinking About Formal Verification Versus Formal Specification which I posted in November last year.

Subscribe to The Stop Bits.

Comments

Popular posts from this blog

David Turner Obituary by Sarah Nicholas Fri 24 Nov 2023

Live Science - Leonardo da Vinci's Ancestry