Was a separate, untracked directory (DataSheet/) outside the repo. Renamed to lowercase and moved in as hardware/v2/docs/datasheet/, with its own .gitignore for LaTeX build byproducts (compiled PDFs stay tracked, .aux/.log/.toc/etc do not). Now versioned and shares this repo's own remote instead of living untracked on disk. Content: IT+EN LaTeX chapter sources, reference manufacturer PDFs, and compiled datasheet PDFs including the 2026-09-07 SDRAM upgrade addendum (AS4C32M16SB-7BIN part/pinout/timing) in the v2-en chapters. Note: hardware/v2/docs/DatasheetLatex/ (and the v1 sibling) is a separate, already-tracked, differently-structured LaTeX document that predates this move -- left untouched, not merged, since its chapter set and content differ and merging was not requested. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
63 lines
4.2 KiB
TeX
63 lines
4.2 KiB
TeX
\chapter{Roadmap and development status}
|
|
\label{ch:roadmap}
|
|
|
|
\section{Milestones M1--M10}
|
|
\begin{tabularx}{\textwidth}{C{1.0cm} L{3.6cm} C{1.3cm} Y}
|
|
\toprule
|
|
\rowh \thd{M} & \thd{Title} & \thd{Status} & \thd{Content} \\
|
|
\midrule
|
|
1 & Neural Processor & \OK & Bit-exact 8-stage pipeline vs.\ V1, 7/7 tests; 183.12~MHz isolated. \\
|
|
\rowa 2 & Processor Array & \OK & 1/2/4/8 processors, real concurrent-slot simulation; DSP (not LUT/FF) found to saturate first. \\
|
|
3 & Buffers & \OK & \code{activation\_buffer}/\code{weight\_buffer}/\code{result\_buffer}, real \code{DP16KD} inference --- superseded in the real datapath by the Activation Cache (\S\ref{sec:roadmapcache}). \\
|
|
\rowa 4 & Memory Manager & \OK & Double-buffered prefetch, real V1 PSRAM chain, 3 real RTL bugs found/fixed. \\
|
|
5 & Neural Director & \OK & First-free dispatch, real backpressure, 4/4 tests. \\
|
|
\rowa 6 & Dependency Manager & \OK & Multi-dependency/shared-producer wake-up, 4/4 tests. \\
|
|
7 & Dataflow Core & \OK & Full M1--M6 integration, wake-up loop closed end-to-end. \\
|
|
\rowa 8 & PSRAM integration & \OK & Real, shared PSRAM across concurrent slots; 1 real arbiter bug found/fixed (dropped request under contention). \\
|
|
9 & Full benchmark & \OK & V1 vs.\ V2 comparison, every number classified. \\
|
|
\rowa 10 & Optimization & \OK & N\_SLOTS ceiling (DSP), ACC\_WIDTH 6-seed sweep, real stall/utilization instrumentation. \\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
|
|
\section{Post-campaign: user-requested optimizations}
|
|
\label{sec:roadmapcache}
|
|
Following M9/M10's own final benchmark campaign
|
|
(\code{hardware/v2/docs/benchmarks/final-benchmark.md}), two concrete
|
|
optimizations were implemented and measured against the real toolchain:
|
|
\begin{enumerate}
|
|
\item \textbf{Word-level burst reads} (ch.~\ref{ch:mem}, \S\ref{sec:burst}):
|
|
real 2.24--2.37$\times$ wall-clock speedup, negligible Fmax cost.
|
|
\item \textbf{Shared activation cache} (ch.~\ref{ch:mem},
|
|
\S\ref{sec:cache}): a further real 1.66--2.00$\times$ cycle
|
|
reduction, at a real, steep Fmax cost that makes
|
|
\code{N\_SLOTS}=4 fail 80\,MHz outright.
|
|
\end{enumerate}
|
|
Combined: \textbf{2.45$\times$} real wall-clock speedup at
|
|
\code{N\_SLOTS}=2 (recommended) over the pre-optimization baseline, which
|
|
was itself already 2.6$\times$ faster than V1.
|
|
|
|
\section{Open work items (real, not hidden)}
|
|
\begin{tabularx}{\textwidth}{L{3.6cm} Y}
|
|
\toprule
|
|
\rowh \thd{Item} & \thd{Why it is open} \\
|
|
\midrule
|
|
Activation cache pipelining & The concrete fix for \code{N\_SLOTS}=4's Fmax failure: register the hit-detection/broadcast logic to break its single-cycle combinational path. Not attempted this round --- \code{N\_SLOTS}=4 delivers no real throughput benefit anyway (memory-bound), so this protects \code{N\_SLOTS}=2's own margin rather than making 4 useful. \\
|
|
\rowa Dependency Manager node-slot reclamation & \code{ST\_DISPATCHED} is terminal; a real long-running system will eventually exhaust \code{N\_NODES}. \\
|
|
Scheduler fairness & Fixed lowest-index priority shows real, measured per-slot imbalance under sustained contention (ch.~\ref{ch:sched}); no fairness-aware alternative has been measured yet. \\
|
|
\rowa Second physical PSRAM bank & The only real way to raise the memory-bandwidth ceiling itself, rather than use existing bandwidth more efficiently --- a board-level change, not attempted this round. \\
|
|
Real host driver \& pinout & No physical transport or placed pin assignment exists for the node-registration bus (ch.~\ref{ch:host}, ch.~\ref{ch:hw}). \\
|
|
\rowa Per-node bias/activation & Every job currently hardcodes \code{bias=0}/\code{ACT\_RELU}; not yet exposed by the Dependency Manager's own job descriptor. \\
|
|
Power/energy characterization & No ECP5 power estimator available in this toolchain; honestly reported as \textsc{Not measured}, not invented. \\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
|
|
\begin{fnnote}[Every claim in this datasheet traces to a log entry]
|
|
\code{hardware/v2/logs/}: \code{development.log}, \code{simulation.log},
|
|
\code{synthesis.log}, \code{timing.log}, \code{benchmark.log},
|
|
\code{decisions.log} (\code{DEC-\textit{NNNN}}), \code{experiments.log}
|
|
(\code{EXP-\textit{NNNN}}), \code{errors.log} (\code{ERR-\textit{NNNN}}).
|
|
IDs are never reused, past results are never overwritten, even failed
|
|
ones --- the same discipline V1's own \code{docs/validation/} campaign
|
|
followed.
|
|
\end{fnnote}
|