> On May 4, 2025, at 1:36 PM, Steve Lewis via cctalk <[email protected]> 
> wrote:
> 
> I get that, that a general purpose processor with a particular instruction
> set can be made up from TTLs (or vacuum tubes, or water sleuths, or metal
> gears, etc), and am familiar with the Datapoint  (and it always was odd to
> me that Wang called their model the 2200 like the Datapoint 2200; I know
> both companies had various models).
> 
> But aren't modern ASICs essentially that idea of
> software-implemented-in-hardware, mainly for dedicated performance?   If
> you had "perfected" your software and accepted no code change was
> necessary, the coding did exactly whatever it is you needed to do, you can
> then commit that to some combination of hardware-logic-gate-stuff (for the
> sake of executing it wicked-fast, just as modern specialized crypto-ASICs
> do) ?    

Somewhat, but mostly not I think.  The key point is that software is roughly 
sequential at the conceptual level.  Even with threading that's true for each 
thread.  In the hardware various things happen concurrently or even out of 
order, but the hardware does a large amount of hard work to make that 
invisible.  When it fails to get that right the results can be interesting -- 
consider the Intel security bugs caused by speculative execution.

An ASIC tends to do many things in parallel.  When you look at a design 
language like VHDL that's very obvious, and things look quite different from 
conventional programming languages precisely for that reason.  That means an 
ASIC implementation of a software algorithm is likely to look quite different 
also, at least if it wants to take advantage of all the potential speed-ups 
from casting things in silicon.

Consider DSP -- "Software defined radios" implement a DSP signal processing 
path in software.  And these have significant limitations because even very 
fast processors struggle to do DSP operations at high frequency.  In an FPGA 
you can go very much faster because you can take each of the processing 
elements and implement them as a separate block, and many of those can be 
futher pipelined.  FPGAs aimed at doing DSP things will often contain hundreds 
or even thousands of multipliers exactly for that reason.

        paul


Reply via email to