comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Ada case-statement
Date: Thu, 15 Mar 2018 05:21:13 -0700 (PDT)
Date: 2018-03-15T05:21:13-07:00	[thread overview]
Message-ID: <66524f57-b182-45ca-aa86-91b033f4fbef@googlegroups.com> (raw)
In-Reply-To: <fguna4Fb0ugU1@mid.individual.net>

On Thursday, March 15, 2018 at 2:56:55 AM UTC-5, Niklas Holsti wrote:
> And soon we will have processors with the "Mill" architecture, which can 
> execute up to five conditional jumps in _parallel_, in each CPU cycle... 
> brings a whole new set of possibilities for case-statement codde :-)
> 
> https://millcomputing.com/docs/switches/
> 
> BTW, the Mill architecture would be good at running Ada programs: very 
> good at controlling the handling arithmetic errors, also good at 
> subprogram calling, threading, emphasis on security (octet-granularity 
> memory protection), etc. As a statically scehduled processor, it _could_ 
> also be the only hope left for a powerful architecture with somewhat 
> deterministic execution timing, for use in critical real-time systems, 
> although the Mill developers currently do not describe it as a real-time 
> processor.

Hmmmmmm.  At 30 subinstructions per wide-issue and the DSP-like belt/bypass, Mill is apparently a VLIW DSP retort to Itanium.  

https://en.wikipedia.org/wiki/Explicitly_parallel_instruction_computing

Your goal of deterministic execution timing is eroded by the aspect of Itanium that most-singlehandedly undermined the entire multibillion-dollar EPIC/Itanium effort more than any other aspect:

“• Load responses from a memory hierarchy which includes CPU caches and DRAM do not have a deterministic delay. This makes static scheduling of load instructions by the compiler very difficult.”

Mill will succeed or fail on how well Mill makes astronomically-nondeterministic DRAM accesses to L1 cache, L2 cache, L3 cache, Rambus-esque serial-bus DRAM banks, and DDR-family parallel-bus DRAM banks all look deterministic to compilers trying to fill (at compile-time!) 30-subinstruction-wide instructions by figuring out (months or years a priori!) which subthread activities are ready to go whenever a datum-not-in-a-register is needed.  The problem could be solvable with an immense amount of registers.  Imagine the processor as a nano-mainframe:  load up batch-esque processing in registers, let 'er rip while predicting (all of!) the memory accesses for the next batch of processing long in advance.  If Mill fails to solve this problem, then Mill's fate is the same as Itanium's, and for precisely the same reason/fundamental-flaw.

Btw, VLIW DSPs don't have this problem, because they work on highly-predictable realtime information flows to perform a rather few highly-repetitive mathematical operations (hence leveraging the batch-processing analogy)—not general-purpose computing.  Software on VLIW DSPs actually can accurately predict precisely which memory/comm-channel data-arrival rates are needed to never cause a stall.

  reply	other threads:[~2018-03-15 12:21 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14 17:35 Ada case-statement Stephen Davies
2018-03-14 17:49 ` Dmitry A. Kazakov
2018-03-15  0:57   ` Robert I. Eachus
2018-03-15  3:10     ` Dan'l Miller
2018-03-15  5:54       ` J-P. Rosen
2018-03-15  7:56         ` Niklas Holsti
2018-03-15 12:21           ` Dan'l Miller [this message]
2018-03-15 17:22             ` Mill processor (Was: Re: Ada case-statement) Niklas Holsti
2018-03-15 21:50     ` Ada case-statement Randy Brukardt
2018-03-14 22:22 ` Mehdi Saada
2018-03-14 23:16 ` Randy Brukardt
2018-03-15  5:04   ` gautier_niouzes
2018-03-15  7:50   ` Jacob Sparre Andersen
2018-03-15 22:05     ` Randy Brukardt
2018-03-15  8:37   ` Dmitry A. Kazakov
2018-03-15 22:20     ` Randy Brukardt
2018-03-16  8:54       ` Dmitry A. Kazakov
2018-03-16 23:49         ` Randy Brukardt
2018-03-17  7:59           ` Dmitry A. Kazakov
2018-03-15 15:37   ` Stephen Davies
2018-03-15 16:33     ` J-P. Rosen
2018-03-15 17:01       ` Dmitry A. Kazakov
2018-03-15 18:41         ` Shark8
2018-03-15 21:12           ` Jeffrey R. Carter
2018-03-18  5:41             ` Robert I. Eachus
2018-03-18  6:57               ` Spiros Bousbouras
2018-03-18  9:17               ` Jeffrey R. Carter
2018-03-18 12:53                 ` Simon Wright
2018-03-15 18:50     ` Jere
2018-03-15 20:40       ` Anh Vo
2018-03-15 22:24     ` Randy Brukardt
2018-03-16  9:53       ` Stephen Davies
2018-04-03 17:56   ` marciant
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox