我们可以建造一台功能正常的计算机吗?


12

就像FP一样,最终,我们所有的程序都是结构化的。也就是说,我们制作它们的纯度或功能无关紧要-它们始终会转换为汇编,因此实际上在幕后运行的是指令,状态和循环。我们有点模仿FP。

作为硬件新手,我的问题是:为什么我们不使用实际上以功能样式计算事物的计算机体系结构?例如,一台计算机可能由原始的“功能芯片”组成,例如“ concat”,“ map”和“ reduce”,而程序只会告诉计算机如何在这些芯片之间流动数据以计算所需的结果,例如连接语言。

废话素描

这真的没有道理,但可以说明我在想什么。


5
没有链接,但是制造了Haskell芯片,专家系统也具有专用的Lisp硬件。我认为您可能比其他任何人都更接近于硬件的map / reduce模式。FP的唯一优势是并行性的可伸缩性。在其他所有方面,fp的性能均较差,因为由于具有较高的抽象水平,因此fp在指令中的粒度较小。在金属级别上,性能是至高无上的,除了在数学的抽象级别上,在执行中,一切都是必不可少的。计算2 * 3 + 5,而无需执行两个有序步骤。一切都势在必行
Jimmy Hoffa

3
@JimmyHoffa的副手haskell芯片链接:Reduceron
Dan D.

1
您可能还对Verity感兴趣,Verity是用于具有更高阶和仿射递归的按名称调用Lambda演算的编译器,它对通过VHDL的静态硬件也具有必不可少的局部影响
Dan D.

5
@Dokkat:if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation. 并非如此,因为Filter不是“操作”;这是一个高阶函数,可将任意外部操作应用于列表。您不能将减少到单个时钟周期。
梅森惠勒

2
@Dokkat这是一个高阶函数,因为它以输入为函数。荒谬的特殊性使您的示例可以“一次操作”完成。特定谓词函数是常量,因此它并不是真正的过滤器。制作具有任意谓词功能的过滤器不能减少到单个时钟周期,因为您无法控制输入函数所占用的时钟周期。
耐嚼口香糖

Answers:


11

他们确实制造这样的计算机。它称为FPGA。当然,FPGA支持顺序逻辑和组合逻辑,但是没有什么可以阻止您按照您的建议使用组合部分。

但是实际上,即使在芯片级,顺序逻辑(带状态的逻辑)也非常有用。一方面,它大大减少了解决问题所需的逻辑门数量。另一方面,它解决了许多与具有不同传播延迟的信号有关的设计问题。

如果您对这种事情感兴趣,那么FPGA非常值得一试。有一个便宜的类似arduino的板,叫做papilio,非常适合初学者。人们将其用于从机器人控制到比特币挖掘的所有事物。


感谢您的回答,我正在阅读Wikipedia上的页面-但FPGA不是像我的草图一样,不是通用的可编程硬件,而是专用于功能编程的硬件吗?
MaiaVictor

1
如果您想了解Google Google的“ fpga排序算法”。您所绘制的是可编程组合逻辑电路,而这正是FPGA设计的目的。
卡尔·比勒费尔德

锦绣,我去研究!
MaiaVictor

如果你根本没有测序,那么你真的希望在模拟电子
JK。

2
@jk这不是真的。以数字和(纯)组合的简单CPU中的算术逻辑单元为例。
m3th0dman

8

Essentiall,是的,模拟计算机的工作方式是:您正在更改参数,并相应地修改了电流。这就是使它们在1950年代曾经“更快”的原因-您并不关心像老式的数字巨兽那样缓慢地创建和修改单独的“状态”。

可以说,量子计算机也可以这样工作:如果某些量子现象的状态取决于其他状态,那么更改某些“初始”状态将同时更改以下状态-两者之间没有“状态”。


3
提及量子计算机+1,我认为能够在OP实际实现时像它们建议的那样做将是它们的主要收益
Jimmy Hoffa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.