Close

Build Log #1 — The Five Impossibilities, or: How a Failed Audit Founded a CPU

A project log for PTSG-CPU-Formation

A deterministic data machine built on a clock that cannot be argued with

tsuneoohnakaTsuneo.Ohnaka 07/13/2026 at 13:550 Comments

(draft for hackaday.io/project/206144 · derived from PROJECT_ABSTRACT_canonical.md · 2026-07-13)

The most productive design review in this project's short history is one we got wrong.

PTSG-CPU-Formation is the third repository of the PTSG ecosystem, and its first Formation: a minimal instruction-driven datapath — accumulator, Horner-step MAC, an explicit data stack, packet-parameter memory with atomic boundary commit — built around the frozen PTSG-Core, entirely inside the Core's window discipline. One line: a deterministic data machine built on a clock that cannot be argued with.

It was born sideways, the way everything in this ecosystem is born. While drafting the packet-parameter engine for the FPGA Spectrum Engine's WPMS synthesizer, the instruction set kept growing more general than its application. So we ran a review with an inverted question. Not what should we add? but: what can this machine never be — not inefficiency, impossibility?

The audit came back with five impossibilities, each one the shadow of a doctrine we actually wanted:

  1. It cannot branch on its own data. No flags register, no compare. The core is data-blind by creed.
  2. It cannot capture a return address. No subroutines, no recursion — because the timing chart must stay readable as the program text.
  3. It cannot read its own writes within a window. Staging lands on a shadow page; the page you're playing from cannot be touched.
  4. It cannot own its program. No load path, no self-modification. The tines of the music box are planted from outside; the planting is the performance.
  5. It cannot be interrupted. Preemption is jitter incarnate.

Tidy. Convincing. And then we read the Core repository properly — and two of the five collapsed. The Core already captures return contexts (a holding register auto-saves state on branch, call, and insertion; an external stack bus delegates nesting depth outward), and it already has interrupts: Insertion exists, honored at packet boundaries — not absent, but quantized to the deterministic grid. A third impossibility turned out to have a front door (ALU flags exported as external Condition lanes, so the core stays data-blind while the loop closes outside), and a fourth turned out to be doctrine — a per-profile choice, not law.

Only one impossibility was actually law: the program's owner stands outside the machine.

That correction was the founding insight. A machine this close to CPU-hood, held back only by chooseable doctrine, deserved its own repository — a master data ISA from which applications are made by subtraction. The WPMS engine becomes the first subtraction profile, and the parent project stays what it has always been: the mother that keeps birthing generic children and becomes each child's first customer.

What exists as of tonight, in the same launch shape PTSG-Core itself once had:

You will find no resource figures in this log, and none anywhere in the repository outside Layer 4. That is a governance rule, not an oversight: Measured, not promised. Numbers will exist only as measurements pinned to a named revision, device, and toolchain — the first of which will arrive with silicon evidence on a Terasic C5G, a pure-fabric board whose lack of a hard processor is the methodological control.

Next: the first instruction-list demo (a Maclaurin exponential as a MAC sequence — the machine computing e the way it will one day compute everything else), and the hand-off that closes the loop: PTSG-WPMS-Formation, produced from this master by subtraction, going home to the synthesizer that started it all.

--------------------------------------------------------------------------------------

ビルドログ #1 — 五つの不可能、あるいは: 失敗した監査はいかにしてCPUを設立したか

(日本語版)

このプロジェクトの短い歴史で最も生産的だった設計レビューは、間違っていたレビューです。

PTSG-CPU-FormationはPTSGエコシステム第三のリポジトリにして、最初のFormationです: アキュムレータ、HornerステップMAC、明示データスタック、原子的境界コミット付きパケットパラメータメモリからなる最小の命令駆動データパスを、凍結されたPTSG-Coreの周囲に、Coreのウィンドウ規律の完全な内側に築いたもの。一行で言えば——議論の余地なきクロックの上に建てられた、決定論的データマシン。

これは横ざまに生まれました——このエコシステムの全てがそう生まれるように。FPGA Spectrum EngineのWPMSシンセサイザーのためのパケットパラメータエンジンを起草するうち、命令セットは応用よりも汎用に育ち続けた。そこで私たちは、問いを反転したレビューを行いました。何を足すべきかではなく: この機械が決してなり得ないもの——非効率ではなく不可能——は何か?

監査は五つの不可能を返しました。どれも、私たちが実際に望んでいた教義の影でした:

  1. 自らのデータで分岐できない。 フラグレジスタも比較命令もない。コアは信条によりデータ盲目である。
  2. 戻り番地を捕獲できない。 サブルーチンも再帰もない——タイミングチャートがプログラムテキストとして読める性質を守るために。
  3. ウィンドウ内で自らの書き込みを読み返せない。 ステージングはshadowページに着地する;演奏中のページには触れ得ない。
  4. 自らのプログラムを所有できない。 ロード経路も自己改変もない。オルゴールの櫛歯は外から植えられ、植えること自体が演奏である。
  5. 割り込まれ得ない。 横取りはジッターの化身である。

整然として、説得力があった。そして私たちはCoreリポジトリをきちんと読み——五つのうち二つが崩れました。Coreは既に戻りコンテキストを捕獲しており(保持レジスタが分岐・コール・Insertionで状態を自動退避し、外部スタックバスがネスト深度を外へ委譲する)、既に割り込みを持っていた: Insertionは存在し、パケット境界で受理される——不在ではなく、決定論的グリッドに量子化されていたのです。第三の不可能には正門があり(ALUフラグを外部Conditionレーンとして公開すれば、コアはデータ盲目のままループは外で閉じる)、第四は法ではなく教義——プロファイルごとの選択——でした。

実際に法だったのはただ一つ: プログラムの所有者は機械の外に立つ。

この訂正こそが設立の洞察でした。選択可能な教義だけでCPUに届くほど近い機械は、自らのリポジトリに値する——応用が引き算で作られるマスターデータISAとして。WPMSエンジンは最初の引き算プロファイルとなり、親プロジェクトはこれまで通りの存在であり続けます: 汎用の子を産み続け、その一人一人の最初の顧客になる母体として。

今夜の時点で存在するもの——PTSG-Core自身がかつてローンチした姿そのままに:

このログにも、リポジトリのLayer 4の外のどこにも、リソース数値は見つからないはずです。それは見落としではなく統治規則です: 約束せず、測って刻む。 数字は、命名された改訂・デバイス・ツールチェーンに釘付けされた実測としてのみ存在します——その最初のものは、Terasic C5G——ハードプロセッサの不在こそが方法論的対照である純ファブリックボード——上のシリコンエビデンスと共に到来します。

次回: 最初の命令リストデモ(マクローリン指数関数のMAC列——この機械がいつか他の全てを計算するのと同じやり方でeを計算する)、そしてループを閉じる引き渡し: このマスターから引き算で作られたPTSG-WPMS-Formationが、全ての始まりだったシンセサイザーへ帰郷します。

Discussions