[HN Gopher] The prospects for 128 bit processors (1995)
       ___________________________________________________________________
        
       The prospects for 128 bit processors (1995)
        
       Author : luu
       Score  : 31 points
       Date   : 2022-02-23 21:04 UTC (1 hours ago)
        
 (HTM) web link (yarchive.net)
 (TXT) w3m dump (yarchive.net)
        
       | PaulHoule wrote:
       | They had 128-bit computing in the 1970s if you count this sort of
       | thing
       | 
       | https://en.wikipedia.org/wiki/IBM_AS/400
       | 
       | which used 128-bit unique identifiers for objects that could be
       | in RAM or kept persistently in storage which was transparently
       | managed by the OS, language runtime, etc.
        
         | guerrilla wrote:
         | Some VAXen could also do 128-bit ALU operations too. I thought
         | DEC had a full 128-bit CPU but I've never been able to find
         | it... I probably just remember wrong.
        
           | PaulHoule wrote:
           | Of the various claims that something is X-bit I think the
           | most credible is the size of the address space as opposed to
           | the size of the ALU.
           | 
           | A 128-bit address space is large enough (UUIDs) that you can
           | name 2^64 objects (about as many iron atoms are as in an iron
           | filing) randomly. That lets you take two separate systems and
           | then merge them into one system with no name conflicts, a
           | handy property for 'distributed systems'
        
       | Someone wrote:
       | FTA: _Thus, a CPU family intended to address higher-end systems
       | will typically add 2 more bits of_ physical address* every 3
       | years.*
       | 
       | For me, that loosely follows from the "CPU speed doubles every 18
       | months" variant on Moore's law. Having extra address space
       | doesn't help you if your CPU is too slow to fill it (1), so if
       | your CPU gets twice as fast in 18 months, the amount of memory
       | you can effectively address doubles.
       | 
       | That would only change if we had non-volatile RAM.
       | 
       | (1) yes, you could have a hash table with effectively zero chance
       | of collisions if you were to use petabytes to store a few hundred
       | items, and that would be useful even with a 1MHz CPU, but if you
       | can spend that money on memory, you're better of spending it on
       | better CPU. So, that only would help if CPU evolution stopped and
       | memory got drastically cheaper, both in $ and in power usage.
        
       | AdamH12113 wrote:
       | > For example, 36-bit physical addresses support 16GB memories
       | ... and there already have been shipped single-rack
       | microprocessor boxes with 16GB using just 16Mb DRAMs; there are
       | of course, more in the 4GB-8GB range. Of course, a 32-bit
       | physical addressing machine can get around this with extra
       | external-mapping registers ... assuming one can ignore the
       | moaning from the kernel programmers :-)
       | 
       | I remember 16 megabytes of RAM being enough for a good gaming rig
       | in 1995. Who was using gigabytes of RAM back then, and for what?
        
         | monocasa wrote:
         | A couple years later, but in 1997 you could get one of these
         | with 64GB of RAM.
         | 
         | https://en.wikipedia.org/wiki/Sun_Enterprise#Enterprise_1000...
        
         | hnlmorg wrote:
         | Most likely databases. Pretty sure one of the Sun SPARC boxes I
         | managed in 1995 and that had a few GBs of RAM. It also ran
         | Informix, which I don't miss administrating.
        
         | hackcasual wrote:
         | Databases. Early high traffic internet services
        
           | colejohnson66 wrote:
           | I'm other words: the same things that, today, are using a
           | _terabyte_ of RAM. Cloud computing and databases.
        
         | cesaref wrote:
         | I was building and speccing servers to run banking applications
         | in the mid to late 90s and this was in the days when x86 was
         | still rubbish (or perceived to be so), so it was big Solaris
         | boxes (E10k etc) and beefy HP PA-RISC machines.
         | 
         | Applications were written in C++ and COBOL, the DB was Oracle.
         | 
         | CPUs were expensive, disks were slow (and expensive - this is
         | when EMC ruled!), so memory was used to boost database
         | performance, and you could put a lot of memory in these
         | machines (and we did). There were often 3 machines at each
         | site, 2 production (one hot standby) and 1 test/qa machine,
         | usually the same chassis but with lower specs (less CPU, less
         | memory, less disk etc). The production machines were often at
         | two close sites (10k apart) with disk replication between them
         | over fibre in the street.
         | 
         | It was quite common back then for the clients to specify
         | ridiculous projected growth, and require total resilience from
         | the hardware. I'd spec up the machines, and they'd baulk at the
         | price (and when you get an international bank to baulk at the
         | price you can imagine we're talking multiple millions for
         | hardware let alone support contracts etc). Then, following a
         | slice of realism, they'd relax some of the requirements, and
         | we'd get something for 1/4 of the money.
         | 
         | Happy days, lots of travel though.
        
           | contingencies wrote:
           | How did they secure the fiber? IIRC back then it was hard to
           | get decent (especially non-backdoored) hardware encryption
           | solutions @ high network throughput.
           | 
           | I wonder if anyone spliced fiber, MITM'd disk replication,
           | made bank and got away with it...
        
       | CodeWriter23 wrote:
       | > Of course, a 32-bit physical addressing machine can get around
       | this with extra external-mapping registers
       | 
       | When I came up in this industry, we referred to that as "Bank
       | Switching"
        
       | CalChris wrote:
       | Even 64-bit systems today don't address 64-bits of physical
       | memory. The Arm A78 uses 40 bits of physical address space. The
       | 128 bits would really be for arithmetic and bus widths.
        
       | EdSchouten wrote:
       | Relatedly, I hope we ever get CPUs where pointers are bit
       | addressed. I'm not suggesting they should allow byte level access
       | at arbitrary alignments. I just mean that the smallest
       | addressable unit is a bit.
       | 
       | That would allow us to finally declare lists of booleans without
       | needing any specialization or losing the possibility of
       | referencing elements.
        
         | esmIII wrote:
         | Some ARM cortex-m chips have a feature where you can address
         | individual bits.
         | https://developer.arm.com/documentation/ddi0439/b/Programmer...
        
         | flohofwoe wrote:
         | This would also go nicely with arbitrary-width integers.
         | Load/store instructions would just need to set aside a few
         | opcode bits to define the number of bits to load or store, and
         | pointers would just get 3 bits wider (basically left-shifted 3
         | bits, the upper bits in a 64-bit pointer are not used anyway).
         | Pointer alignment could be the same as the bit width, e.g.
         | 2-bit load/store could require 2-bit alignment, byte load/store
         | byte alignment, and so forth...
        
       | dang wrote:
       | One small thread from the past:
       | 
       |  _The prospects for 128 bit processors (1995)_ -
       | https://news.ycombinator.com/item?id=6300063 - Aug 2013 (2
       | comments)
        
       | pella wrote:
       | https://en.wikipedia.org/wiki/128-bit_computing
       | 
       |  _" The RISC-V ISA specification from 2016 includes a reservation
       | for a 128-bit version of the architecture, but the details remain
       | undefined intentionally, because there is yet so little practical
       | experience with such large memory systems"_
        
         | monocasa wrote:
         | Fabrice Bellard's TinyEmu actually implements enough of the
         | RV128 spec to run code. So the spec is defined well enough to
         | implement, I just think they don't want to paint themselves
         | into a corner before there's an actual need.
         | 
         | I was going to link to his site, but it seems he needs to
         | update his certs.
        
       | don-code wrote:
       | We've definitely found use cases for higher-width buses, but
       | seemingly less so for operating on 128-bit integers and pointers,
       | like this article is describing.
       | 
       | Take for instance VLIW architectures (Itanium used 64-bit
       | registers but 128-bit instructions; you packed two ops into an
       | instruction), vector extensions (AVX-512 uses 512-bit registers
       | to hold multiple integers from 16 to 64 bits long) - we've long
       | known these to be viable strategies for long word lengths in a
       | CPU. But the ability to operate on a 128-bit integer directly
       | doesn't seem to have a use case yet.
        
         | Dylan16807 wrote:
         | > (Itanium used 64-bit registers but 128-bit instructions; you
         | packed two ops into an instruction)
         | 
         | Three ops.
        
       | ajuc wrote:
       | > Of course, if somebody does an operating system that uses
       | 128-bit addressing to address every byte in the world uniquely,
       | _and_ this takes over the world, it might be an impetus for
       | 128-bitters :-)
       | 
       | I'd like to see such OS.
        
         | kloch wrote:
         | You joke but I found this interesting (from
         | https://en.wikipedia.org/wiki/Metal_oxide_semiconductor):
         | 
         | > It is the basic building block of modern electronics, and the
         | most frequently manufactured device in history, with an
         | estimated total of 13 sextillion (1.3x10^22) MOSFETs
         | manufactured between 1960 and 2018
         | 
         | 64 bits can address 1.8x10^19 bytes. Of course there is not a
         | 1:1 correlation between mosfets ever made and bytes of ram
         | usable today but it's curiously close to the 64-bit limit so
         | you could say 64 bits is just enough to address every byte in
         | the world.
         | 
         | I wonder how much magnetic storage would add to that?
        
           | Dylan16807 wrote:
           | > I wonder how much magnetic storage would add to that?
           | 
           | A lot.
           | 
           | Just looking at hard drives, if you take an estimate of 250
           | million units made in 2020 and multiply by a conservative
           | 4TB, you get 10^21 bytes for that single year.
        
         | Animats wrote:
         | Symbolics tried that.
         | 
         | Scary thought: how many bytes of RAM are there in the world?
         | Probably more than 2^64. There are around 7 billion
         | smartphones, and many have over 4GB of memory. That's over 2^64
         | right there.
         | 
         | I'd like to have 128-bit atomic operations. If you're doing
         | lock-free programming, hardware compare and swap on a structure
         | that contains two pointers is useful. Then you can update lists
         | atomically. In a 64-bit pointer machine, that takes 128 bit
         | atomics. So far, not much hardware offers that.
        
           | Dylan16807 wrote:
           | CMPXCHG16B has been standard for the vast majority of the
           | time x86_64 has existed. If a CPU can run windows 8.1, then
           | it has 128-bit atomic operations.
        
         | wantoncl wrote:
         | There _might_ be a bit of a problem powering it:
         | 
         | https://hbfs.wordpress.com/2009/02/10/to-boil-the-oceans/
        
           | Dylan16807 wrote:
           | So a few notes on that:
           | 
           | * That's the threshold where you go from 128 to 256, not
           | where you go from 64 to 128.
           | 
           | * If you're not going for the physically maximum overclock,
           | the energy per bit is a lot less.
           | 
           | * That's for storing 512 byte blocks, so you'll run out of
           | RAM bits 512 times sooner.
           | 
           | * Humans use about 10^20 joules of electricity per year.
           | 
           | * 10^20 joules at the cost in the link would be about 2^110
           | bytes, which is not all that far off.
        
       | reincarnate0x14 wrote:
       | I'd be curious if anyone with understanding of memory transistor
       | density has an idea of what sort of physical footprint and power
       | requirements 128-bit addressable memory would look like, because
       | I'm having a hard time picturing even a distributed, shared
       | virtual memory space realistically exceeding 16 exabytes.
       | 
       | It looks like the Fugaku ARM cluster with 158,000 nodes uses < 5
       | PiB for 40 MW.
       | 
       | As an aside, man does reading something from @sgi.com on USENET
       | take me back to a better time. Title should probably note [1995]
       | 
       | [0]
       | https://www.fujitsu.com/global/about/innovation/fugaku/speci...
       | 
       | [1] Also https://arxiv.org/abs/quant-ph/9908043 "Ultimate
       | physical limits to computation"
        
         | Laremere wrote:
         | 85.8 grams of DNA is enough to overflow 64bits. Not that we're
         | anywhere close to being able to use or process information on
         | those scales, but it at least storage on that scale doesn't
         | outright violate the laws of physics/information theory.
        
           | littlestymaar wrote:
           | Storage needs don't affect pointer size though. To need
           | bigger pointers, you must need an _addressable space_ this
           | big.
           | 
           | That said, how to you make your calculation about DNA's
           | information density? Without counting water, I've arrived at
           | 720g for one "mole of bits", which is a bunch of orders of
           | magnitude higher than your figure: 2 amino-acids (262g/mole)
           | [1], 2 Deoxyribose (135g/mole each) and 2 Phosphate (94g/mole
           | each).
           | 
           | [1]: and it's the same value be it A-T or G-C, that's
           | interesting
        
         | jandrewrogers wrote:
         | It is not too difficult to imagine for virtual memory. Servers
         | with high storage density are right up against the current
         | virtual memory limits such that you can't mmap() storage as it
         | is. Not that you'd _want_ to mmap() if you cared about
         | performance. Similarly, the largest data models have been in
         | the exabyte range for a while. It is just a matter of time
         | before they are not byte-addressable using a 64-bit integer.
         | 
         | I think there is more utility in 128-bit ALUs than 128-bit
         | pointers, as a practical matter.
        
       ___________________________________________________________________
       (page generated 2022-02-23 23:00 UTC)