🎯 圆心 · 目标(每环都从这里出发)
造一台 Salt OS 手机:基于 DeepSeek 的 AI 操作系统,iPhone 4S 外形(含底部圆形 Home 键),开机只有一个 AI(无桌面、无图标),软硬协同设计(OS + 芯片 + 主板一起做),为别人搭台、让别人在平台上赚钱。

🧭 完整框架(同心圆)

①文字闭环 · ②技术深入 · ③挂SRAM · ④权重INT4 · ⑤激活INT4 · ⑥NPU.STORE · ⑦KV Cache · ⑧注意力QK^T · ⑨Softmax · ⑩加权V · ⑪前馈FFN · ⑫残差·LayerNorm · ⑬多层堆叠 · ⑭QKV投影 · ⑮K/V分离 · ⑯自回归解码 · ⑰连续生成 · ⑱采样 · ⑲KV环形缓冲 · ⑳滑窗注意力 · ㉑多头注意力 · ㉒输出投影 W_o · ㉓多头块入残差流 · ㉔多头块进解码循环 · ㉕整层一块 · ㉖整网一块 · ㉗ISA契约 · ㉘权重内存化 · ㉙权重预取双缓冲 · ㉚权重分块 · ㉛矩阵行块 · ㉜行块自增 · ㉝起始块号可编程 · ㉞段表连扫 · ㉟段表流式取 · ㊱行块矩阵扫 ISA 化 · ㊲描述符链 · ㊳链槽直喂 · ㊴主路走链 · ㊵链预投下层 · ㊶跨趟预投 · ㊷权重池三 bank · ㊸权重池 ISA 化 · ㊹一步生成 ISA 化 · ㊺整段生成 ISA 化 · ㊻对话回路 · ㊼对话 ISA 化 · ㊽会话记忆归档 · ㊾多会话槽位 · ㊿会话槽位 ISA 化 · 51 开机续聊 · 52 会话清单 · 53 开机用上清单 · 54 问候接话 · 55 删掉一场 · 56 会话改名 · 57 名字进问候 · 58 问候念清单 · 59 按名字接话 · 60 叫错名字也回一句 · 61 反问给选项 · 62 按序号点选 · 63 序号用于删除 · 64 删除回执念名字 · 65 删除可撤回 · 66 撤回回执念名字 · 67 撤回即续聊 · 68 续聊先开口 · 69 开口带名字 · 70 开口不叫错人 · 71 开机问候也认人 · 72 单名问候也验归属 · 73 单名问候带余场 · 74 余场点名 → 75 余场翻页

本环:把「还有几场」接成「那几场叫什么」

① 目标(这一环要解决什么)

第 73 环让开机第一句变成「查资料,还有四场在等你。」——数字有了,名字还没有。用户顺口问一句「那几场呢?」,软件仍要自己读清单、跳过当前场、逐场读名字格、验归属、拼句子。

这一环把追问接住:一条 npu.rem,硬件跳过当前这场,把余下能叫出名字的场按清单顺序念成一句,落进同一个对话窗口。用户问三个字,芯片回一整句。

② 实现(做了什么)

新增余场点名引擎 rem_pick。一个 start 脉冲走完整条链路:读活清单 0x1C0 → 跳过 sid == 当前会话 → 读名字归属 0x280+槽,与条目 sid 比对 → 归属对上才读名字格 0x200+槽×6(6 字 = 24 字节)→ 每场最多取 4 个汉字。

句子按清单顺序排。起句「还有」6 字节,名字之间补「、」,最多念三场;还有余场就在句尾补一个「等」字,最后「。」收尾,整行补空格到 64 字节落 0x1E0(与开机问候同一个窗口,新的覆盖旧的)。例:

还有记一笔、工作那场、跑步计划等。

两种「念不出名字」也不沉默。除当前场外没有别的场 →「没有别的场了。」21 字节;有余场但名字都没验过/是空格 →「还有N场,没起名字。」30 字节。两者 ok=0 / err=1 / bytes=64,仍写满整行,屏幕不会残留上一句。

ISA 化。新增 npu.rem(custom-2 funct3=100,机器码 0x0000405B);当前会话号直接接开关场引擎的 sx_cur_sid——核不传参、不查表、不拼字。前 73 圈编码与地址映射一位不动。

新增证据。SCREEN50(0xAF8) 与只读 RP_DIGEST(0xAFC):{nspoken[3:0], more, nskip[3:0], nself[3:0], ntotal[3:0], bytes[7:0]}。

③ 验证(怎么证明它真的跑通)

单元 tb_rem_pick74(真同步 SRAM 模型,读要三态):

  • 五场、当前 0xA3 →「还有记一笔、工作那场、跑步计划等。」51 字节 + 13 空格;nspoken=3 / more=1 / nskip=0 / nself=1 / nothers=4 / nleft=1;
  • 四场、当前 0xA1,slot1 归属残留 0x99 →「工作那场」被跳过,只念「还有查资料、跑步计划。」nspoken=2 / nskip=1;
  • 只有当前一场 →「没有别的场了。」;三场但名字格全 0 →「还有两场,没起名字。」;
  • clear 后探针与 16 个字全部归零。

ISA 协同 tb_isa_greet74(真整颗 SoC,五场目录):一条 npu.boot 恢复 0xA3,落「查资料,还有四场在等你。」;再一条 npu.rem →

0x1E0 = 还有记一笔、工作那场、跑步计划等。(51 字节)
SCREEN50 = 0x00701540
SCREEN   = 0x74

当前场「查资料」在整行里一个字都不出现;第四场「读论文」只贡献一个「等」字。

回归:tb_isa_greet73(上一圈 ISA 路径)、tb_riscv_core、tb_min_soc64(主通路 0xF905FD04)全部 PASS。

✅ 仿真通过 · 本环闭环
单元 + ISA 协同 + 前 73 圈回归;一句追问,硬件自己念出余场名字
④ 本环的钉子
  • 起句「还有」必须真的写进第 0~5 字节,只写名字会从「记一笔」开始;
  • 「等」不是念满三场就加:要等清单扫完,确认后面真的还有别的场;
  • nothers 不能靠「念到三场就停」来数,得把整张清单数完,否则会少算;
  • 归属读与名字格读都要三态(发地址 → 空一拍 → 收数据),少留一拍会读错条目;
  • 当前会话号来自开关场引擎,不从核的操作数里猜——这是软硬契约,不是配置。