彼らは、最初のIntelプロセッサである4004を使用して、円周率を計算します。

インテルの最初のプロセッサは4ビットでした CPU 750KHzの速度で実行され、最大4KBのアクセスしかありませんでした RAM。 そのため、その仕様は、最も控えめなPCでも現在利用可能なものと比較して微視的です。 さて、誰かがIntel 4004で円周率を計算することを考えました。結果はどれですか?

プロセッサのパフォーマンスを測定する4004つの方法は、難易度を上げるという繰り返しのタスクを使用することです。 XNUMXつの例は暗号化アルゴリズムですが、素数の検索やπのさまざまな小数点以下の桁数など、他のより古典的でよく知られているアルゴリズムがあります。 これは小数点以下の桁数が無限である数値であり、したがって、それらの検索はどのプロセッサにとっても小さな課題であることを思い出してください。 しかし、これまで、Intel XNUMXで円周率(π)を計算することはできませんでした。

彼らは、最初のIntelプロセッサである4004を使用して、円周率を計算します。

これを実現するために、彼らは周辺機器をシミュレートしてプログラムできるようにするために使用したSTM32にベテランプロセッサをマウントしました。 Intel 4004は、PCCPUというよりも動作中のマイクロコントローラーに似ていることを忘れないでください。 MITSの伝説的なAltair8080で使用されている、最初のIntel8800に属する名誉。

Intel 4004が円周率(π)を計算するのにどのくらい時間がかかりますか?

さて、質問への答えは明らかです。私たちは無限の小数点以下の桁数であるため、他のプロセッサと同じ時間がかかります。 したがって、パフォーマンステストまたはベンチマークは、永遠の無限のリストの次の小数の値を知るために必要な速度を測定することで構成されます。

インテル4004

Intel 4004のような単純なものでこれを行うという課題は、いくつかの重要な制限を克服する必要があることを意味します。

  • 命令セットが非常に限られているという事実。
  • 浮動小数点ユニットがないため、数値を乗算する機能すらありません。
  • プログラムは4KBのアドレスであるため、4 KBを超えることはできませんが、それを行うには外部マルチプレクサが必要です。それ以外の場合は、1280バイトのままになります。
  • 数学的計算を担当するユニットは使用しません 最も効率的な論理ゲート 、それはそれをはるかに遅くします。
  • そのクロック速度は 750キロヘルツ つまり、750,000秒あたりXNUMXサイクルです。 今日のIntelCoreまたはAMDRyzen?
  • セグメント化された実行をサポートするプロセッサではないため、そのさまざまな部分で複数のステージを実行することはありません。

重要な質問は、このセクションのタイトルとして付けたものですが、その答えは次のとおりです。 3分31秒で13時間 Intel 255で円周率(π)の最初の4004桁を取得します。このために、彼らは ダブルスタンアルゴリズム 、これは整数による除算の使用に基づいており、非常に限られた最初のIntelプロセッサのタスクを容易にするために小数の使用を回避します。 比較として、テストを実行した同じ人がXeonで25秒間にXNUMX万桁を取得しました。