TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

FPGA with Multiple ISA?

1 点作者 daly大约 3 年前
Back in the dawn of time the machines I worked on had application-specific instruction set architectures. IBM made &#x27;scientific&#x27; and &#x27;business&#x27; computers. The 360 line converged these.<p>With microcoded architectures today it would be possible to dynamically load a custom application-specific instruction set into microcode from an FPGA. This could greatly increase the efficiency of certain kinds of computation. The FPGA can be dynamically updated with new microcode architectures.<p>For example, a lisp-machine architecture for running lisp code, a prolog machine architecture for prolog code handling backtracking, an APL architecture for array processing, a SQL architecture for databases, etc.<p>These instruction sets could be dynamically swapped. For example, the register bank could be configured to match a particular SQL table structure and manipulated with SQL-specific instructions. Register banks configured as content-addressable memory could greatly speed up table searches.<p>In particular, with RISC-V, one could define a special-case extension instruction set that could be &#x27;swapped in&#x27; to the microcode, making it ideal for handling special purpose hardware like a GPU for bitcoins or a quantum computer instruction set handling unitary matrices.<p>I feel we&#x27;ve reached the limits of things a general purpose architecture can do.<p>Intel has an FPGA&#x2F;CPU pair (which unfortunately I can&#x27;t get because I&#x27;m not a huge corporation) but I don&#x27;t think the FPGA&#x2F;CPU can modify the CPU microcode. Perhaps they might hit on the idea with their marriage to the RISC-V community.<p>The ability to modify the data paths in a set of general purpose processor components (e.g. register banks, caches, integer ALU, float ALU, vector ALU, pipeline lookahead, etc) for specific applications by modifying the microcode would be a real leap forward.

4 条评论

GrumpyYoungMan大约 3 年前
Something like that&#x27;s already been thought of: Alessandro Forin&#x27;s eMIPS project a few years back developed a prototype processor with a small FPGA fabric directly embedded into the processor that allows for creating custom instructions per application, e.g. <a href="https:&#x2F;&#x2F;www.researchgate.net&#x2F;publication&#x2F;255563459_A_Framework_for_Automated_Acceleration_of_Application_Binaries_on_eMIPS" rel="nofollow">https:&#x2F;&#x2F;www.researchgate.net&#x2F;publication&#x2F;255563459_A_Framewo...</a> among others. I don&#x27;t think anything ever came of the idea; I imagine there&#x27;s sharp limits on how much can fit into a CPU while still having decent performance.<p>&gt; &quot;<i>The ability to modify the data paths in a set of general purpose processor components (e.g. register banks, caches, integer ALU, float ALU, vector ALU, pipeline lookahead, etc) for specific applications by modifying the microcode would be a real leap forward.</i>&quot;<p>The latency and die cost of the connectivity for being able to rewire a &quot;sea of execution units&quot; is going to kill clock speed and performance.
xodjmk大约 3 年前
What you are describing is called an &#x27;overlay&#x27;. Basically an overlay is some sort of computing architecture built with&#x2F;on top of FPGA fabric. Soft processors are an example of overlay. You could imagine some kind of special linear algebra computing engine, etc. as other examples. RISC-V soft processors already exist. I&#x27;m pretty sure you could find some open source projects floating around. The trick is to make something that could actually out perform existing FPGA&#x2F;CPU devices (SoC). Xilinx, now AMD, makes quite affordable Zynq Ultrascale devices that have FPGA+ARM-CPUs+GPU in a single device. The idea here is to use existing ARM architecture, but accelerate important functions. Developing a complex overlay would be quite a complicated project, so for many applications, it is only necessary to customize specific functions. But either way, best not delay, because who knows what AMD will do in the future, and like you mentioned, Intel(Altera) already abandoned everything except big data-center stuff..
therealcamino大约 3 年前
This has been tried on machines that had a writable control store, mostly in the 70&#x27;s -- the Wikipedia page mentions a few of them.<p><a href="https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Control_store" rel="nofollow">https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Control_store</a>
keikobadthebad大约 3 年前
For most problems an async &#x27;coprocessor&#x27; that can use system memory over pcie is a good enough model. It&#x27;s not tied to one platform and doesn&#x27;t have to get involved with modifying the cpu architecture.