4 min read A 1990s Computer Engineering Story views

Every Bit Counted

From C bitfields and an ISA traffic light to Google-scale bit-packing and 1024-bit buses — a life spent squeezing every bit.

A look back — long before any of the tools we argue about now.

Lately, reading up on quantization for LLM inference, I keep circling the old questions — real versus integer, fixed point versus floating point. Those are enormous topics in their own right, but my memories of them are mostly of implementing things and grinding through the arithmetic by hand. So instead, let me gather a few scattered memories about something humbler: bits, and buses.

VESA Local Bus / ISA

The computer my parents helped me buy when I started school was a 486, sold under the banner of one keyword: “VESA Local.” It was right before Pentium — the 586 — arrived. A big, heavy tower I used until I graduated. It even had wheels, so it followed me faithfully through a string of boarding houses, carrying me from MS-DOS to Windows 95, through countless games and assignments.

You wouldn’t have much reason to look inside unless you were adding parts — but one assignment had us doing I/O control over the ISA bus to build a working traffic light, and I got to examine the address and data buses one painstaking line at a time. You’d attach soldered or wired cards to address-mapped locations and switch the lights on and off. My computer — roomy inside, sitting in a half-public boarding room — was sacrificed to a lot of people’s homework. When something shorted, you got a faint burning smell instead of the cheerful buzz of a breadboard.

Bitfields, Unions, and bit-vs-byte

This was when I was squeezing embedded systems for all they were worth, agonizing in C over char, int, long. Footprint size was sensitive, and wanting to save every last bit, I fussed over signed versus unsigned too. Later, a graphics course had me deep in RGB and YCbCr, which I remember as the last of that kind of assignment. Years on, as a teaching assistant, a junior building — I think — a subway-station guide that ran on a PDA came to me grumbling: “There are more than 256 stations, they won’t fit in 8 bits — what do I do?” Whether he solved it with a short int or quietly dropped a few stations, I no longer remember.

For twenty-odd years of building services after that, I almost never needed any of it. I barely cared whether other languages even supported the tricks, and once Unicode arrived — well, what’s the harm in a couple of bytes per character? Around the time I’d decided the whole thing was pointless, I did infrastructure work at Google and saw that they were already dividing things up about as carefully as could be done. A couple of my assignments there were exactly that — gathering spare bits and packing them to save a byte at a time — and at Google’s scale, those bytes turned into terrifying numbers. In the AI and LLM era the same problem seems to be getting chewed over in a lot of places, though quantization and lossy compression are really about preserving quality, so I’ll leave those for elsewhere.

Bus Width

In my smartphone years, what always caught my eye in a schematic or circuit diagram was the bus, spread out in parallel. It can’t help but look complicated, and the same concerns must come up when you stack several of them inside a chip. The ribbon of bus fanning out to the LCD was always the first thing to protect. Over the years, DB-25 and RS-232 serial gave way to USB 1.0 and 2.0 — and I still don’t quite understand how a couple of wires get you higher bandwidth, both directions at once, and charging on top.

Talking once with a senior who wanted his game company to build a dedicated console, he said pulling video would need a 1024-bit-wide data bus. Was that even physically possible? A set-top-box form factor would be fine, and so on. I met the same idea again much later in the datacenter — CXL pushing serial to its limit, and HBM actually delivering that 1024-bit width — which, looking back, makes it a surprisingly sound and productive conversation. Nearly thirty years on, it’s funny that 32-bit is still the workhorse.

P.S. As a test, I asked a few LLMs to name my old department’s mascot — an obscure thing even I half-remember. One came up empty, one invented an answer, and one flatly insisted there wasn’t any. For the record, there was: a little figure in a black-and-white checkered uniform, giving a thumbs-up. I was a bit embarrassed by it at the time. I wonder if everyone feels that way about their own.

Part of 90s Computer Science Stories — first-person notes on growing up with computers and studying CS in Korea in the 1980s and ’90s. See the full series →

Adapted from my Korean essay on Brunch: brunch.co.kr/@chaesang/53

Comments