6 ms·
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
by duskwuff 1y ago
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 byte; this also falls apart with 9, where you'd have to use four bits and have a bunch of invalid values.
- falcor84 1y agoWe just need 3 valued electronics
- percentcer 1y agoon, off, and the other thing
- tyingq 1y agohi-z is one choice. Though I don't know how well that does past a certain speed.
- duskwuff 1y agoIt works poorly at any speed. Hi-Z is an undriven signal, not a specific level, so voltage-driven logic like (C)MOS can't distinguish it from an input that's whatever that signal happens to be floating at. In current-driven logic like TTL or ECL, it's completely equivalent to a lack of current.
- tyingq 1y agoI wasn't pitching it as a solid commercial idea. Just that you can get (perhaps fiddly) three states out into the real world with something cheap that already exists. Like: https://idle-spark.blogspot.com/2015/04/low-cost-n-ary-dacs-using-digital-io.html https://idle-spark.blogspot.com/2015/04/low-cost-n-ary-dacs-...
- ForOldHack 1y agoUsing 8 way quadrature and high-z, you have 16 values packed into 1 quasi-hexalogic gate. May your hydration prove fruitful.
- mzajc 1y agonull :)
- dcuthbertson 1y agoOn, off, and ooh shiny!
- deleted 1y ago[deleted]
- ochrist 1y agoTrue, False and file not found https://thedailywtf.com/articles/What_Is_Truth_0x3f_ https://thedailywtf.com/articles/What_Is_Truth_0x3f_
- skissane 1y agoThe Soviets had ternary computers: https://en.wikipedia.org/wiki/Setun https://en.wikipedia.org/wiki/Setun Then they decided to abandon their indigenous technology in favour of copying Western designs
- jojobas 1y agoThere was a very good reasons for it, indigenous designs were obsolete by the time they left the drawing boards and countless design bureaus cost stupid amounts of money while producing dozens of incompatible computers. By the time they decided to adopt ES EVM they lagged by some 5 years and continued to lag further behind.
- nxobject 1y agoConversely, the Soviet Union took the PDP-11 ISA to its limits... including home computers with framebuffers and programmable calculators.
- dale_glass 1y agoSetun apparently used two bits to represent a ternary value, wasting the 4th state.
- bux93 1y agoWe call that 1.58 bit now..
- pif 1y agoIt already exists: True, False and FileNotFound. If you don't believe me, just ask Paula Bean.
- ForOldHack 1y agoPaula Bean? Mr Bean photoshopped? https://scontent-lax3-2.xx.fbcdn.net/v/t39.30808-6/476277134_1156132619210143_3846325209933369005_n.jpg?_nc_cat=106&ccb=1-7&_nc_sid=833d8c&_nc_ohc=YT_D9uauAU4Q7kNvwEuVD_l&_nc_oc=AdklpuiGXWyND_q85OGsX7Lpe4Do0aGWZNKxrgbhDQKYxsfWJvip1xlYEo8EAIps2RQ&_nc_zt=23&_nc_ht=scontent-lax3-2.xx&_nc_gid=xMYucQ4zHF85IvQLQxZFkg&oh=00_AfXyY1doKO4XaHk0DQEt18TXsj6XAWoVisJI5iIhHnRU4w&oe=6899D5AE https://scontent-lax3-2.xx.fbcdn.net/v/t39.30808-6/476277134...
- gavinsyancey 1y agohttps://thedailywtf.com/articles/Classic-WTF-What-Is-Truth https://thedailywtf.com/articles/Classic-WTF-What-Is-Truth
- colejohnson66 1y agoAnd https://thedailywtf.com/articles/The_Brillant_Paula_Bean https://thedailywtf.com/articles/The_Brillant_Paula_Bean
- deleted 1y ago[deleted]
- ForOldHack 1y agoBut with 5 valued electronics, Up, down, left, right and charm... You could have the equivalent of 45-bit numbers ( 44 + parity ). And you could have the operands of two 15 bit numbers and their result encoded in 9 quint-bits or quits. Go pro or go home.
- falcor84 1y agoBut, but, what about Strange?
- magicalhippo 1y agoTechnically e would be best IIRC, but hard to implement, so 3 is the closest.
- AnotherGoodName 1y agoFactorio logic applies as always - powers of 2 for trains belts etc. makes evenly splitting resources trivial.
- phkahler 1y agoGood points! I was going to say I think 12 bits would have been a nice choice, but yeah optimizing for circuits is kind of important.
- ForOldHack 1y agoBrillant, that 36 bits would be three bytes. "DEC's 36-bit computers were primarily the PDP-6 and PDP-10 families, including the DECSYSTEM-10 and DECSYSTEM-20. These machines were known for their use in university settings and for pioneering work in time-sharing operating systems. The PDP-10, in particular, was a popular choice for research and development, especially in the field of artificial intelligence. " "Computers with 36-bit words included the MIT Lincoln Laboratory TX-2, the IBM 701/704/709/7090/7094, the UNIVAC 1103/1103A/1105 and 1100/2200 series, the General Electric GE-600/Honeywell 6000, the Digital Equipment Corporation PDP-6/PDP-10 (as used in the DECsystem-10/DECSYSTEM-20), and the Symbolics 3600 series. Smaller machines like the PDP-1/PDP-9/PDP-15 used 18-bit words, so a double word was 36 bits. Oh wait. Its already been done.
- fc417fc802 1y agoPersonally I think 12/48/96 would be more practical than the current 8/32/64. 32 bits is almost trivially easy to overflow whereas 48 bits is almost always enough when working with integers. And 64 bits is often insufficient or at least uncomfortably tight when packing bits together. Whereas by the time you've blown past 96 you should really just bust out the arrays and eat any overhead. Similarly I feel that 24 bits is also likely to be more practical than 16 bits in most cases.
- galangalalgol 1y agoThe fixed point TI dsp chips always had a long int that was 48. Intel had 84 bit floating point registers before simd registers took over. And the pdp-11... Powers of two aren't as ubiquitous as it seems. If anything, the hardware uses whatever sizes it wants and that gets abstracted from the rest of the world by compilers and libraries.
- Taniwha 1y agoNot really - I worked on a DSP with 9-bit bytes in the 90's (largely because it was focused on MPEG decode for DVDs, new at the time) largely because memory was still very expensive and MPEG2 needed 9-bit frame difference calculations (most people do this as 16-bits these days but back then as I said memory was expensive and you could buy 9-bit parity RAM chips) It had 512 72-bit registers and was very SIMD/VLIW, was probably the only machine ever with 81-bit instructions
- willis936 1y agoPlato 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.
- gxs 1y agoOr 60 minutes in an hour 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, and 60
- labcomputer 1y agoOr 5280 feet in a mile.
- ashirviskas 1y agoAnd one feet is 4 small foot toes and one big foot toe!
- ljm 1y agoAnd many of the conversions between metric and imperial align with the Fibonacci sequence on any order of magnitude. 130km/h is roughly 80mph simply because the fibo sequence has 8 and 13. Obviously not an emergent property but shows how these things were designed.
- thfuran 1y agoI don’t think any common conversions fall near there other than miles->km. It’s certainly not the case that the systems were designed to have the golden ratio as conversions between the two.
- rich_sasha 1y ago1 mile = 1,000 [double] paces of 0.8m each = 1,600m 1m = 1e-10 times half-meridian from the North Pole to the equator, via Paris for a croissant, apparently. So kind of a coincindence... But a very neat one. Meanwhile, ratio of adjacent Fibonacci numbers converves to some expression involving sqrt(5) which is approx 1.6
- mouse_ 1y agoTimes have changed. Gnome people will yell at you for mentioning things as innocuous as pixel measurements. You'd probably be crucified for suggesting there's a hardware-correct way of handling address space.
- fouc 1y agoreminds me of GA144 forthchips where it is effectively 20-bit architecture (vs 32-bit architecture). The instructions are 5-bit, and so 4 instructions can fit in 20-bits.
- somat 1y agoThe 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 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 bits green 3 bits triangle coverage it then uses this coverage information to calculate a primitive but fast antialiasing. so SGI went with two 9-bit bytes for each pixel and magic in the RDP(remember it's also the memory controller) so the cpu sees the 8-bit bytes it expects. Memory on N64 is very weird it is basicly the same idea as PCIE but for the main memory. PCI big fat bus that is hard to speed up. PCIE small narrow super fast bus. So the cpu was clocked at 93 MHz but the memory was a 9-bit bus clocked at 250 MHz. They were hoping this super fast narrow memory would be enough for everyone but having the graphics card also be the memory controller proved to make the graphics very sensitive to memory load. to the point that the main thing that helps a n64 game get higher frame rate is to have the cpu do as few memory lookups as possible. which in practical terms means having it idle as much as possible. This has a strange side effect that while a common optimizing operation for most architectures is to trade calculation for memory(unroll loops, lookup tables...) on the N64 it can be the opposite. If you can make your code do more calculation with less memory you can utilize the cpu better because it is mostly sitting idle to give the RDP most of the memory bandwidth.
- fc417fc802 1y ago> a common optimizing operation for most architectures is to trade calculation for memory(unroll loops, lookup tables...) That really depends. A cache miss adds eons of latency thus is far worse than doing a few extra cycles of work but depending on the workload the reorder buffer might manage to negate the negative impact entirely. Memory bandwidth as a whole is also incredibly scarce relative to CPU clock cycles. The only time it's a sure win is if you trade instruction count for data in registers or L1 cache hits but those are themselves very scarce resources.
- 01HNNWZ0MV43FF 1y agoYeah 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
- pavpanchekha 1y agoAuthor here. It's true that you'd need one more bit to represent a bit position in a word, like for shifts, but we're already vastly over-provisioned; even in 64-bit registers we're only using six of eight bits. (Plus, in a lot of places we'd have that extra bit around!) Some hardware circuits are a bit nicer with power-of-two sizes but I don't think it's a huge difference, and hardware has to include weird stuff like 24-bit and 53-bit multipliers for floating-point anyway (which in this alternate world would be probably 28-bit and 60-bit?). Not sure a few extra gates would be a dealbreaker.
- DrNosferatu 1y ago- Why not 12 bits?
- adastra22 1y agoWhy not 10? 1 byte ~= 1k values. Nice easy conversions.
- devoutsalsa 1y agoI used to use a 32 bit bite! Then I has my wisdom teeth removed, and now I have a 28 bit bite.
- seanhunter 1y agoWeird bytelengths were very much the norm in early computing but noone (seemingly) ever mass-produced a 10 bit computer[1]. In the first 3⁄4 of the 20th century, n is often 12, 18, 24, 30, 36, 48 or 60. In the last 1⁄3 of the 20th century, n is often 8, 16, or 32, and in the 21st century, n is often 16, 32 or 64, but other sizes have been used (including 6, 39, 128). [1] https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures https://en.wikipedia.org/wiki/Comparison_of_instruction_set_...
- nicman23 1y agohehe a bit nicer
- 1y ago
- cchance 1y agoI mean the post is silly, why not just say 10 bit bytes lol, shit then bits/bytes could be metric lol
- Narishma 1y agoDon't those issues only apply to odd number of bits, rather than non-power-of-2? For example, 12 isn't a power of 2 but doesn't suffer from any of those things you mentioned.
- chexum 1y agoThe bit shifts were my first idea too where this would break down; but actually, 1-8 bit shifts would be just fine, and they can be encoded in 3 bits. 0 and 9 are special cases anyway (nop and full nonyte/nyte) for the programmer/compiler to become a tiny bit more clever; or use the shift-by-register instruction instead. T This is not the case for 18 or 36 bits; I would imagine an architecture like this wouldn’t have a swap/swapb but a shuffle type instructions to specify where each nyte is expected to end up, encoded in 4x2 bit in the most generic case. With this, I think I can get behind the 9-bit archs with the niceties described in the post..