Live data from Hacker News

We'd be better off with 9-bit bytes

pavpanchekha.com

231–240 of 359 posts

Re: We'd be better off with 9-bit bytes

#231
post #13

> But in a world with 9-bit bytes IPv4 would have had 36-bit addresses, about 64 billion total. Or we would have had 27 bit addresses and ran into problems sooner.

Author here. I kind of doubt it. Copied from a comment earlier: I doubt we'd have picked 27-bit addresses. That's about 134M addresses; that's less than the US population (it's about the number of households today?) and Europe was also relevant when IPv4 was being designed. In any case, if we had chosen 27-bit addresses, we'd have hit exhaustion just a bit before the big telecom boom that built out most of the intern…

IPv4 was designed in 1981. The idea of every household in america having a computer in 1981 probably would have sounded insane. According to google there was only 213 hosts on the internet in 1981.

Re: We'd be better off with 9-bit bytes

#232
post #143

Non-power-of-2 sizes are awkward from a hardware perspective. A lot of designs for e.g. optimized multipliers depend on the operands being divisible into halves; that doesn't work with units of 9 bits. It's also nice to be able to describe a bit position using a fixed number of bits (e.g. 0-7 in 3 bits, 0-31 in 5 bits, 0-63 in 6 bits), e.g. to represent a number of bitwise shift operations, or to select a bit from a…

The Nintendo 64 RDP(graphics/memory controller) used 9 bit bytes. This was done for graphics reasons, native antialiasing if I understand it. The cpu can't use it. it still only sees 8-bit bytes. https://www.youtube.com/watch?v=DotEVFFv-tk (Kaze Emanuar - The Nintendo 64 has more RAM than you think) To summarize the relevant part of the video. The RDP wants to store pixel color in 18 bits 5 bits red 5 bits blue 5 bit…

Yeah but if the CPU can't use it then it's kinda like saying your computer has 1,000 cores, except they're in the GPU and can't run general-purpose branchy code

In fact, it's not even useful to say it's a "64-bit system" just because it has some 64-bit registers. It doesn't address more than 4 GB of anything ever

Re: We'd be better off with 9-bit bytes

#233
This article's setup seems to be: we could go back and change bytes to be 9 bits, but make all the same decisions for sizes of things as we did, so that everything would be the same now except we'd have a little more room.

Re: We'd be better off with 9-bit bytes

#234

Earlier quoted context omitted.

Plato argued that 7! was the ideal number of citizens in a city because it was a highly factorable number. Being able to cut numbers up is an time-tested favorite. That's why there are 360 degrees.

Wonder why we don’t have 720 degrees… (6!)

360 is base 60. (6*60)

Like minutes and seconds.

The 12 hours in a day and the 12 months are also 60 / 5.

This all connects to ancient Mesopotamia somehow.

Re: We'd be better off with 9-bit bytes

#235
post #187

Perhaps the reason modern programs use so much memory vs what I remember from the Windows XP era is precisely because we went to 64 bits. Imagine how many pointers are used in the average program. When we switched over to 64 bits, the memory used by all those pointers instantly doubled. It's clear that 32 bits wasn't enough, but maybe some intermediate number between 32 and 64 would have added sufficient capacity wit…

SGI used three ABIs for their 64-bit computers.. O32, N32, N64. N32 was 64-bit except for pointers which were still 32 bits for exactly that reason - to avoid doubling the memory needed for storing pointers.

Re: We'd be better off with 9-bit bytes

#236

Earlier quoted context omitted.

There was a time, however, where CPUs operated almost exclusively on on 8bit bytes (and had 8bit data buses). Everything else is merely the consequence of that.

Quick note that this isn't true. 8-bit CPUs are newer than 36-bit CPUs, and 8-bit bytes were established long before 8-bit CPUs came on the scene. Prior to the mid-70s most machines were word-addressed. The adoption of byte addressing (the subject of the grandparent) gained traction after C and similar languages became popular. C was developed on the pdp-11 which supported byte addressing and it provided a compatible…

What you say is correct except for the very last part which is inaccurate. C works with word-addressed CPUs (I can see one from here, and it has a C compiler. And was, incidentally, sold into the early nineties). What C needs is a way to work with 8-bit characters, that's all (and even that isn't 100% true, just widely expected). So what a C compiler needs on, say, a 16-bit addressable computer, is a way to access a char, an 8-bit entity (everything else, e.g. int, long etc., is up to the architecture). And that can be done by software, or more typically by the CPU having opcodes to access 8-bit fields within its native addressable word size.

Re: We'd be better off with 9-bit bytes

#237

Non-power-of-2 sizes are awkward from a hardware perspective. A lot of designs for e.g. optimized multipliers depend on the operands being divisible into halves; that doesn't work with units of 9 bits. It's also nice to be able to describe a bit position using a fixed number of bits (e.g. 0-7 in 3 bits, 0-31 in 5 bits, 0-63 in 6 bits), e.g. to represent a number of bitwise shift operations, or to select a bit from a…

Plato argued that 7! was the ideal number of citizens in a city because it was a highly factorable number. Being able to cut numbers up is an time-tested favorite. That's why there are 360 degrees.

360 degrees in a circle predates Plato by quite a lot (2000 years I think!). It comes from the Summarians more than 4000 years ago. They used a method of counting on fingers that goes up to 12 on one hand and 60 using both hands, so their numbering system was based on 60. 360 is 6 * 60 and also roughly how many days in a year.

Later societies inherited that from them along with 60 minutes in and hour.

Re: We'd be better off with 9-bit bytes

#238
10 bit is even better according to all these criteria AND it fits 0-1000 into one byte which meshes really well with metric system (0 to 1 km in meters, 0 to 1 liter in ml, etc.)

You could even do binary-encoded-metric-numbers that you can decode as needed one byte at a time - the first byte is tonnes, the second is kilograms, the third is grams, the 4th is milligrams, and you only lose 23 out of 1024 values at each level.

Same (but without loses) with data sizes. 1st bit is gigabytes, 2nd is megabytes, 3rd is kilobytes, 4th is bytes.

And of course at one point many computers used 40-bit floating point format which would fit nicely into our 4 bytes.

10-bit bytes would consist of two 5-bit nibbles, which you could use for two case-insensitive letters (for example Baudot Code was 5-bit). So you could still do hex-like 2-letter representation. Or you could send case-insensitive letters at 2 letters per byte.

40 bit could address 1 TB of memory (of 10-bit values - so much more than 1TB of 8-bit values). We could still be on 4-byte memory addressing to this day which would make all pointers 4-byte which would save us memory.

And so on.

But ultimately it always had to be power-of-two for cheaper hardware.

Re: We'd be better off with 9-bit bytes

#239
post #60

Today, we all agree that "byte" means 8 bits. But half a century ago, this was not so clear and the different hardware manufacturers were battling it out with different sized bytes. A reminder of that past history is that in Internet standards documents, the word "octet" is used to unambiguously refer to an 8-bit byte. Also, "octet" is the French word for byte, so a "gigaoctet (Go)" is a gigabyte (GB) in English. (No…

The term "octet" is still widely used in protocol descriptions and some other fields (source: All those interface specifications I have to read through my job)
Post reply on HN