计算机体系结构 35:独立性能研究
计算机体系结构 35:独立性能研究 核心问题 矩阵行遍历比列遍历快,能否直接归因为“连续访问更适合缓存”?一个可证伪的性能研究需要保留输入、正确性、编译路径、原始重复样本和替代解释。改变行跨度的 padding 对照尤其重要:逻辑元素数几乎不变,列遍历时间却可能大幅变化。 附件:归档验收摘要、原始样本复核结果、只读验证器和历史实验记录。原始 CSV、源码、命令与环境保存在仓库的 examples/computer-architecture/performance/。 范围与证据等级 证据来自 2026-09-22 的 arm64 macOS 原生测量归档,编译器为 Apple Clang 21.0.0。2026-10-01 在本地只读复核两个 CSV 的 192 个正式样本、96 组交替配对、每条校验和及全部 16 行统计,均与归档汇总一致;没有重新计时。四项源码和本机保存的两份历史二进制也与历史 SHA-256 清单一致。二进制位于忽略的 build/,其他克隆缺少它们时验证器会单独标记缺口。 CSV 与汇总的 SHA-256 是当前文件指纹。历史清单只覆盖源码和二进制,因此这...
计算机体系结构 E01:从教学模型到 RTL
计算机体系结构 E01:从教学模型到 RTL 核心问题 把 Python 教学模型改写成 SystemVerilog,什么时候才算得到了一份可验证的 RTL?语言文件存在只证明描述已经写下;功能仿真、综合、静态时序分析和 FPGA 上板分别回答不同问题,不能互相代替。 附件:E01-rtl.json、rv32i_core.sv和testbench.sv。 范围与证据等级 随文两次加法状态机的功能证据来自旧 Linux 批次的 Icarus Verilog 12 仿真及逐提交差分。2026-10-01 本地同时保留这份源码和 examples/computer-architecture/rtl/src/ 下的累计 RTL、四程序输入及历史差分;本轮未安装 Icarus,未重新仿真。两套源码与记录分别使用,历史记录不能替另一份源码验收。 随文 RTL 进一步缩成三状态行为:复位后令 x1=0,随后执行两次 addi 等价更新,最终 x1=12 并 halt。它只用于说明时钟边沿上的状态更新,不是完整 RV32I 核。 核心案例:仿真通过没有跨过物理实现边界 testbench 产生时...
计算机体系结构 E02:数字电路的物理约束
计算机体系结构 E02:数字电路的物理约束 核心问题 RTL 功能正确,为什么仍可能无法按目标频率工作?寄存器之间的最长路径必须在下一个采样边沿前稳定,最短路径又不能过早改变接收端输入。setup 和 hold 是两条独立约束。 附件:E02-physical.json。 范围与证据等级 证据等级为 Python 有限约束模型:从显式周期、传播时间和建立/保持约束算出 slack,并断言失败/修复案例。没有 Liberty 工艺库、综合网表、寄生参数、时钟树、OpenSTA 报告、CDC 工具或 FPGA 板卡。所有纳秒值都是题设,不代表任何制程,更不是静态时序分析报告。 简化的单周期检查为: 12setup slack = Tclk - (tCQmax + tLogicMax + tSetup)hold slack = tCQmin + tLogicMin - tHold 负 slack 表示这组题设违反对应约束。真实 STA 还要处理时钟偏斜、不确定度、多周期路径和物理延迟。 核心案例:放慢时钟不能修复 hold setup 失败案例的 slack 为 -0.08 ns;把...
计算机体系结构 E03:硬件虚拟化与嵌套翻译
计算机体系结构 E03:硬件虚拟化与嵌套翻译 核心问题 虚拟机里的虚拟地址怎样到达宿主物理内存?两阶段翻译先把 guest virtual address 转为 guest physical address,再由 G-stage 转为 supervisor physical address。任一阶段失败都应保留故障来源,TLB miss 本身则不等于 VM exit。 附件:查表与故障轨迹和两阶段模型源码。 范围与证据等级 证据等级为功能执行。模型只用两个字典表示 VS-stage 与 G-stage 映射,不实现 Sv39x4 页表布局、真实 CSR、page walk、TLB、trap entry 或 shootdown。因此它不是 RISC-V H 扩展合规测试。 规范中的两阶段翻译还要求 VS 页表遍历访问本身经过 G-stage。当前模型只保留“两个阶段都必须成功”以及故障归属,不模拟遍历产生的全部内存访问。 核心案例:同一个缺页词不能抹平两个阶段 映射案例把 GVA 0x1020 先译为 GPA 0x8020,再译为 SPA 0x18020。题设中 VS-stage ...
计算机体系结构 E04:推测执行与侧信道边界
计算机体系结构 E04:推测执行与侧信道边界 核心问题 错误路径被 squash 后,为什么仍可能泄露信息?处理器可以撤销未提交的寄存器和内存写入,但微架构状态未必同步恢复。若 transient 指令按秘密值访问不同 cache line,后续计时可能观察到残留痕迹。 附件:shadow 与错误提交对照和模型源码。 范围与证据等级 证据等级为功能执行。模型使用隔离的整数和符号 cache trace,不读取真实敏感数据,不执行 Flush+Reload,不测宿主 CPU。它解释 Spectre 类攻击所需的状态分离,不是漏洞复现或当前硬件安全判定。 攻击是否成立还取决于可控误预测、足够的推测窗口、可访问数据、编码 gadget 和可靠观测通道。单次 cache 命中也可能来自预取或其他执行活动。 核心案例:架构状态回滚,cache trace 保留 错误路径把 shadow register 写为 7、shadow memory 写为 1,并访问以 7 为索引的符号 cache line。squash 后提交的寄存器与内存都恢复为 0,cache trace 仍包含 7。 模型...
计算机体系结构 E05:Chiplet 与 CXL 互联边界
计算机体系结构 E05:Chiplet 与 CXL 互联边界 核心问题 两个内存设备各有 24 GB/s 链路,应用总吞吐为什么不能直接写成 48 GB/s?共享上游、交换结构、协议开销、请求分布和端点能力都会形成边界。链路 payload 上限也不是应用有效带宽。 附件:E05-cxl.json。 范围与证据等级 证据等级为手算。拓扑固定为 host0 → root0 → switch0 → mem0|mem1。上游题设为 32 GB/s,两个下游各为 24 GB/s,两个应用各需求 20 GB/s。为使拓扑比较有完整口径,另假设上游、root、switch 的单向延迟分别为 35、12、18 ns,两个内存设备延迟为 80、90 ns、容量为 256、512 GB。这些都不是 CXL 规范或真机数值;当前没有设备、协议分析仪、NUMA 放置或应用带宽测量。 CXL 2.0 的公开发布材料支持 switching、memory pooling 和 persistent memory 等能力。完整旧版规范下载需要接受条款,本任务没有获取全文;文章不据此扩展未核查的协议细节。Chi...
计算机体系结构 E06:可靠性与持久性
计算机体系结构 E06:可靠性与持久性 核心问题 CPU 已经读到新值,是否意味着掉电后还能读到它?可见性只描述运行中的读取关系。持久性还要区分写回已经发起、仍在 pending、已经 drained,以及持久域是否能在掉电时保存对应数据。 附件:位错和断电轨迹和状态机源码。 范围与证据等级 证据等级为功能执行。第一部分穷举固定 extended Hamming (8,4) 教学码;第二部分分别执行 data-first 和 commit-first 的状态转换,并在每次转换后模拟断电,只保留 drained 的记录。模型不连接真实 NVDIMM、filesystem 或 PMDK,不能代表 ECC DIMM、Chipkill 或任意长度事务原子性。 核心案例一:纠错能力必须写出码字范围 布局使用 4 个数据位、3 个 Hamming parity 位和 1 个 overall parity 位。16 个数据字的无错编码全部判为 clean;每个 8 位码字的 8 个单比特翻转共 128 个,全部归类为可纠正;每个码字的 28 个双比特组合共 448 个,全部检测为双错。 这组穷...
计算机体系结构 E07:跨 ISA 同题对照
计算机体系结构 E07:跨 ISA 同题对照 核心问题 同一段 C 在不同 ISA 上生成不同汇编,能否据此判断哪种 ISA 更快?静态指令只展示编译器选择;真实性能还取决于动态路径、微架构、频率、缓存、编译选项和运行环境。交叉编译成功也不等于目标代码已经执行。 附件:结果与哈希、固定输入逐次执行轨迹、内核源码、测试入口和本次 arm64 反汇编。旧 Linux x86-64 反汇编单独保留,不作为本次产物。 范围与证据等级 证据按目标分栏:2026-10-01 在本地 macOS arm64 编译 object、保存反汇编,并链接测试入口运行 sum=34。入口读取 cc -dumpmachine 的实际目标并检查 object 格式,本次为 arm64-apple-darwin27.0.0、Mach-O arm64。当前 Apple Clang 存在,但 RISC-V 编译返回目标后端不支持的错误;这只描述当前工具链。没有跨目标计时、PMU 或动态机器指令数。 固定算法对 {2,-1,4,0,3} 计算 sum(values[i] * 3 + i),数学结果为 34。源码避免...
计算机体系结构 E08:有限模型与形式验证边界
计算机体系结构 E08:有限模型与形式验证边界 核心问题 穷举数万个程序都没找到反例,是否等于处理器对任意程序都正确?只有状态空间、初态、程序长度和性质全部明确时,“无反例”才有意义;有限穷举不能自动升级成无界证明或 ISA 合规认证。 附件:E08-formal.json和检查器源码。 范围与证据等级 证据等级为功能执行。模型固定 4 个寄存器、8 个 memory word、初始寄存器 (0,1,2,4) 和全零内存;text 区为 word index [0,4)。指令集合共有 208 个具体变体,程序长度只取 0、1、2。 检查的两个性质是 x0 恒为 0,以及 store 不修改 text 区。sw 地址在模型里是 word index,不是 RISC-V 字节地址。异常、中断、页表、并发和更长程序均未覆盖。 核心案例:43,473 来自完整计数,不是估计 长度 0 有 1 个空程序,长度 1 有 208 个程序,长度 2 有 208²=43,264 个程序,总数为 43,473。检查器逐个执行并断言两个性质。 错误变体允许写 x0,长度 1 的 addi x0,x0,...
分布式系统(E07):控制面共识与数据面复制
“控制面使用共识”经常被压缩成一句过强的判断:只要控制日志安全,整个系统的数据就安全且可用。Kafka KRaft、Kubernetes/etcd与HBase/ZooKeeper都能推翻这种推论。控制面决定当前配置、归属或期望状态;业务字节由另一套存储和复制路径保存;执行者是否仍有权写外部资源,还需要第三类证据。 分布式系统(E06):从 PlusCal 反例到 IronFleet 证明边界 四层状态需要四组证据 三组系统的组件名称不同,但故障分析可以沿四层展开。 flowchart TB CL[控制日志<br/>顺序与法定集合] --> AO[权威对象<br/>配置、归属、期望状态] AO --> EX[执行者<br/>broker、controller、RegionServer] DR[业务数据副本<br/>partition log、PV、HFile/WAL] --> EX RE[恢复证据<br/>ISR、快照、install receipt] --> EX EX --&...










