機能的なコンピューターを構築できますか?


12

FPがやったように、結局、すべてのプログラムは構造化されています。つまり、どれだけ純粋に機能するかは問題ではありません。常にアセンブリに変換されるため、実際に実行されるのは命令、状態、ループです。FPをエミュレートしています。

ハードウェア初心者として、私の質問は次のとおりです。機能スタイルで実際に計算するコンピューターアーキテクチャを使用しないのはなぜですか。たとえば、コンピューターは「concat」、「map」、「reduce」などのプリミティブな「機能チップ」で構成できます。プログラムは、目的の結果を計算するために、これらのチップ間でデータを流す方法をコンピューターに伝えるだけです、連結言語など。

ナンセンススケッチ

これは本当に意味をなさないが、私が考えていることを説明するかもしれない。


5
リンクを手元に置いてはいけませんが、Haskellチップが作成され、エキスパートシステムには特殊なLispハードウェアもありました。ただし、ハードウェアではmap / reduceパラダイムに他のどの製品よりも近いと思います。FPの唯一のパフォーマンス上の利点は、並列処理に対するスケーラビリティです。他のすべての方法では、fpは、抽象化のレベルが高いため、命令の粒度が低くなるため、パフォーマンスが低下します。金属レベルではパフォーマンスが最重要であり、数学の抽象化レベルでさえ、実行にはすべてが不可欠です。2つの順序付けられたステップを踏まずに2 * 3 + 5を計算します。それはすべて必須です
ジミーホファ

3
@JimmyHoffaのオフハンドhaskellチップリンク:Reduceron
ダンD.

1
また、VHDLを介した静的ハードウェアへの命令的なローカル効果持つ、高次およびアフィン再帰を使用した名前によるラムダ計算のコンパイラであるVerityに興味があるかもしれません。
ダン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 は「操作」ではないからです。これは、リストに任意の外部操作を適用する高階関数です。これを1クロックサイクルに減らすことはできません。
メイソンウィーラー

2
@Dokkat入力として関数を受け取るため、高次関数です。馬鹿げた特異性は、あなたの例を「単一の操作で」行うことができるものにします。特定の述部関数は定数であるため、実際のフィルターではありません。入力関数が使用するクロックサイクル数を制御できないため、任意の述語関数を使用するフィルターを1つのクロックサイクルに減らすことはできません。
チューイーガムボール

回答:


11

彼らはそのようなコンピューターを作ります。FPGAと呼ばれます。もちろん、FPGAはシーケンシャルロジックと組み合わせロジックの両方をサポートしますが、提案されている組み合わせ部分を使用することを妨げるものは何もありません。

ただし、実際には、シーケンシャルロジック(状態を持つ種類)は、チップレベルでも非常に便利です。まず、問題を解決するために必要な論理ゲートの数を大幅に削減します。もう1つは、異なる伝播遅延を持つ信号に関連する多くの設計上の問題を解決します。

この種のことに興味があるなら、FPGAはチェックする価値があります。初心者向けのパピリオと呼ばれる安価なアルドゥイノのようなボードがあります。ロボット制御からビットコインマイニングまで、あらゆる用途に使用されています。


答えてくれて、Wikipediaのページを読んでいますが、FPGAはスケッチのように、機能プログラミングに特化したハードウェアではなく、汎用のプログラマブルハードウェアではありませんか?
MaiaVictor

1
Googleの「fpgaソーティングアルゴリズム」を使用して、その処理方法を確認できます。あなたが描いたのは、プログラム可能な組み合わせ論理回路であり、まさにFPGAの設計目的です。
カールビーレフェルト

素晴らしい、私は研究をします!
MaiaVictor

シーケンスがまったくない場合は、実際にアナログエレクトロニクスを探しています
jk。

2
@jkそれは本当ではありません。たとえば、デジタルで(純粋な)組み合わせである単純なCPUの数学的論理ユニットを取り上げます。
m3th0dman

8

Essentiall、はい、アナログコンピューターはそのように機能しました。パラメーターを変更し、それに応じて電流を変更しました。それが、1950年代にしばらくの間、それらを「高速化」したものです。古いデジタルビーモスのように、別々の「状態」の作成と修正が遅いことは気にしませんでした。

おそらく、量子コンピューターもそのように機能する可能性があります。ある量子現象の状態が他の状態に依存する場合、「初期」状態を変更すると、以下の状態が同時に変更されます。


3
彼らは実際に具現する場合+1量子コンピュータを言及するために、私はOPのようなものを行う能力が示唆されていると思うが、これらの主な利点であることを行っている
ジミー・ホッファ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.