On the lack of progress reports from the Mill project
millcomputing.com
millcomputing.com
They have some cool ideas, but many are incompatible with existing software, e.g. all the memory protection stuff. Other ideas like how memory loads work could be integrated (and have been in place in GPUs for a long time, though not in CPUs) but still depend on compiler changes, which presumably they've done, but past experience with hardware projects that rely on compiler changes is that the compiler changes aren't performing well enough in practice. Or perhaps compilers improve so slowly that traditional architectures can easily absorb the ideas in time.
Another example is that Apple's M1 proves that wider frontends are possible in traditional architectures, as long as the instruction size is fixed. There's no particular reason to believe that the Mill would be inherently better at this than a traditional architecture.
If you have a lay person's interest in hardware architecture and haven't looked at their docs yet, do so. The ideas will likely tickle your brain in a good way -- they did for me. But don't expect much, if anything, from them in production.
> Another example is that Apple's M1 proves that wider frontends are possible in traditional architectures, as long as the instruction size is fixed.
Doesn't the M1 prove that you can transpile code from one architecture to another and gain performance benefits? As in, Rosetta code works at comparable or better speed at far lower power consumption?
The original Rosetta used the same underlying tech with the exception of the memory model stuff, but Transmeta never had to deal with that since they only handled single cores. (And Sparc shipped TSO/WMO switch from a control register all the way back in the mid 90s).
Programmer's got cut off from the microcode starting in the 80s, had this not been the case, I think we would have seen more activity lower in the stack.
ISA lockin is a much smaller issue now.
DAISY https://www.microarch.org/micro33/tutorial/tutorial.html
FX!32 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.23.2...
I've recently been studying AM2900 (bit-slice) processor design. There are still people out there putting microcoded systems together on FPGAs!
I am investigating it, because I think there might be some useful design aspects that could be re-used, but mostly out of retro computing interest :)
https://en.wikipedia.org/wiki/AMD_Am2900#Members_of_the_Am29...
There are two other branches of system design which are really interesting
* CGRAs, Course Grain Reconfigurable Architecture [1]
* FPGA Overlays [2]
[1] https://cgra-me.ece.utoronto.ca/[2] https://ieeexplore.ieee.org/abstract/document/6239797 https://www.seekdl.org/conferences/paper/details/9227 https://www.semanticscholar.org/paper/An-efficient-FPGA-over...
To see if it, against the odds, can provide some significant benefit or not. The proof is in the pudding, I hope they get to make the pudding.
The change happened, but not as fast as we would like it to.
It's not 2004 anymore, they should be able to make progress to making a chip at the gate counts they've been pitching with very little capital investment because of how much democratization of chip tech has happened over the past few years.
Plus I was under the impression that VCs want to at least see something running in an FPGA for a chip startup. The space is filled with software engineers that have trouble synthesizing their HDL. Cut out the fancy meta chip generator, sit down and write some HDL enough for a 'bronze' core and then I imagine the money will start flowing for the money for a leading edge node where the arch will really shine.
And I've seen a few times in the industry where marketing claims are taken at face value by later engineers who then actually live up to said claims thinking "well they did it, there has to be a way". The positive outlook by being sure that there is a way rather than just having a nagging suspension that it isn't possible is huge. Even if the Mill is vaporware at the end of the day, they're probably more valuable to the industry as a pining for what could have been (taken at face value) rather than an example of what not to do like most vaporware.
So staying positive is probably best for us all.
It sounds to me like The Mill is an effort being driven by people who are unwilling to get their hands dirty in anything they don't personally know and enjoy doing, which is never a good sign for a startup, IMHO. OTOH if they can convince the money to spend big on an organization prior to having a product, well, good for them! On general principal I'm in favor of transferring wealth from financiers to tech people.
* Function calls as the primary built-in control flow mechanism. This is so obviously better its insane, this should be the base unit of control flow in an ISA. No inventing incompatible "conventions" for calls, no manually saving & restoring registers (or need to eke out optimizations by avoiding using registers), no accidentally trampling on external state. Called functions receive parameters in a consistent location and returned values are output in a consistent location, other incidental state not part of the parameters is inaccessible, upon return the caller's state is automatically restored as if it had just executed a 1-cycle cpu instruction. All for an overhead of 1 cycle.
* Instructions and functions can have multiple return values. No stupid out params just to return both an error and value or a value that is bigger than one word. CPU instructions use multiple return values for things that obviously need them instead of overloading stateful flags (eww) or interrupts (heave).
* Unified address space & address translation pushed down to the memory controller. This solves so many problems it's not even funny. Cached writes to memory can unblock as soon as it hits L1, reading from uninitialized memory gives you a pre-zeroed page -- instantly -- not in 300 cycles, the previous two means that it's possible to allocate + write + read + deallocate a memory page where it never actually touches main memory and is entirely served by cpu cache hierarchy, ejects expensive TLB address translation out of the hot path of memory accesses instructions, memory protection-based access control can be done in parallel with the fetch instead of the fetch being delayed until translation is calculated. (A process should not assume its the only thing that exists and that its starting address is always the same, ASLR should be on by default. Arguing that per-program virtual memory is a security feature is like arguing that NAT is a security feature. Access and addressing can be separated securely.)
* Machine code is basically a directly encoded form of Static Single Assignment (SSA) which is typically a compiler Intermediate Representation (IR) middle step in the compilation process, but the Mill consumes SSA directly which means that a lot of data flow information is preserved during the lowering to machine code and doesn't have to be inferred or guessed dynamically by the CPU during execution.
For reference when the mill project was started Intel was releasing pentium 4.
Look: MS did not manufacture mouses until mouse patend got famous for making no money. And then it was global must to have. It was impossible to make singleton in C++ in 200x but atomics was described in literature (even in SICP) and only when patent expired Intel made it everyday tool...
Patents should be automatically invalidated before half human life time is wasted.
Incentivize new inventions, but keep profits fair. Incentivize working designs over on-paper ideas. Promote the progress of useful inventions over rent-seeking.
MS started making mice in 1983 when they released Word.
I'm curious about what you mean here. Are you taking about an atomic compare and swap operation? I'm sure these have been implemented in processors back as far as the 90s, if not earlier.
For commercial application, if the ideas are good, and the patents valid, someone could just license them. Or are they sitting on an inbox full of desperate licensing requests that they're ghosting while whining they can't get funding?
Is it really so hard to them to raise money? Look at some of the stupid ideas that have raised tens to hundreds of millions of dollars over the last few years.
Yes. I think it’s hard for them because they probably aren’t pitching to VCs correctly. The Mill folks desperately need some elevator pitch material. Ivan Goddard mentioned [0] that they’re having problems raising VC money, in a world where VC money has been flowing like water.
Every single video/document from Mill Computing has been targeted towards highly technical audiences. I’ve seen zero material from them targeted to laypeople. You’re never going to secure any funding if your website only consists of a series of highly technical slides and lecture videos. This [1] is their “high level” overview page, which is already way too technical.
When that started, I contacted them and asked how many part numbers the Analytical Engine needed. That's a basic number for sizing the build job. They didn't have an estimate. (In manufacturing, a part is one object, and a "part number" is the term for a part design from which many parts are made. Engineering and tooling effort is driven by the number of unique part numbers.)
If they were serious, they could start posting drawings and getting people to model them in SolidWorks or Fusion 360. Somebody would probably CNC machine the parts and make a sample storage register.
Well, that wasn't something I could promise to something I would do on my spare time, so I had to decline.
It might look to you like VCs are just throwing gobs of money around at anything with a pulse, but they're not. They're not throwing money at 100,000 distinctly unique kinds of market making or new category creating ventures. They're throwing lots of money at slightly different flavors of parallel attempts at iterative improvements in mostly established markets.
For what Mill Computing is portending to do, I'd expect government grants and maybe strategic investment from industry CVCs to be their only real viable bet. That or finding extremely "smart" or extremely "dumb" money in the VC marketplace, because I'd be very surprised if anybody in between is going to be looking for a Mill Computing to fill out their portfolio. It's way too esoteric. That's not an indictment of Mill Computing of VCs. Neither of them seems like they're in the right place for the other.