当前位置: 首页 > article >正文

通关NandGame组合电路后,我悟了:原来CPU设计的关键是“复用”与“延迟”

从NandGame看硬件设计的艺术复用与延迟的哲学在数字电路设计的浩瀚宇宙中每一个逻辑门都如同星辰般微小却不可或缺。当我第一次接触NandGame时本以为这不过是又一个教人拼凑逻辑门的普通教程直到亲手搭建起第一个异或门才猛然意识到硬件设计的精髓不在于堆砌元件而在于如何用最少的资源完成最复杂的任务。这就像用乐高积木搭建埃菲尔铁塔——关键在于找到那些可以重复使用的通用结构而非盲目增加积木数量。1. 逻辑门的舞蹈复用之美与非门NAND在数字电路中扮演着奇特而核心的角色——它是功能完备的意味着仅凭这一种门电路就能构建出所有其他逻辑门。这种特性让NAND成为硬件设计中的万能积木。1.1 基础逻辑门的优雅构建构建非门NOT可能是最直观的入门课NOT(x) NAND(x, x)这个简单的等式背后隐藏着深刻的启示自我反馈可以产生逻辑反转。仅用1个NAND门和门延迟为1我们就得到了最基本的逻辑运算单元。与门AND的构建则展示了组合艺术AND(a, b) NOT(NAND(a, b)) NAND(NAND(a, b), NAND(a, b))技术细节虽然理论上可以用2个NAND门实现AND但第二个NAND的两个输入相同实际上可以优化为第一个表达式的形式。或门OR的实现则展示了德摩根定律的实践应用OR(a, b) NAND(NOT(a), NOT(b)) NAND(NAND(a, a), NAND(b, b))1.2 异或门的复用智慧异或门XOR的设计将复用理念推向新高度XOR(a, b) NAND(NAND(a, NAND(a, b)), NAND(b, NAND(a, b)))这个结构中有几个关键观察点中间的NAND(a, b)被复用了两次整体仅需4个NAND门门延迟为3关键路径经过3个NAND提示在硬件设计中识别可复用的中间信号是减少门数量的关键技巧下表对比了各基础逻辑门的最小实现方案逻辑门最少NAND数量门延迟关键复用点NOT11输入自反馈AND22输出反相OR32输入反相XOR43中间NAND2. 算术单元的构建艺术当基础逻辑门准备就绪我们便踏上了构建算术单元的征程。这里复用策略从简单的门级提升到了模块级。2.1 半加器的精妙设计半加器需要计算两个1位二进制数的和产生一个和位sum和一个进位位carry。传统实现方式sum XOR(a, b) carry AND(a, b)但观察XOR和AND的实现会发现它们都依赖NAND(a, b)。共享中间结果可以将总NAND门数从6(42)减少到5首先计算共享的nand_ab NAND(a, b)然后sum NAND(NAND(a, nand_ab), NAND(b, nand_ab))carry NAND(nand_ab, nand_ab)2.2 全加器的延迟优化全加器引入了进位输入使得设计复杂度显著增加。直接实现会导致门延迟累积sum XOR(XOR(a, b), c_in) // 门延迟3 3 6 carry OR(AND(XOR(a, b), c_in), AND(a, b)) // 门延迟3 2 2 7通过复用策略和重新组织逻辑可以将关键路径延迟优化至6。但更聪明的做法是重新平衡逻辑树让进位计算不再等待XOR完成。2.3 多位加法器的结构选择行波进位加法器Ripple Carry Adder是最直观的多位加法实现但存在明显的延迟问题n位加法器的延迟为n×全加器延迟16位加法器的延迟可能高达96个门延迟按前述设计现代CPU采用超前进位加法器Lookahead Carry Adder等结构通过预计算进位信号将延迟降低到对数级别。虽然NandGame中未实现但这种思想与后续的is_zero优化一脉相承。3. 控制逻辑的延迟战争当电路规模扩大延迟问题便从局部挑战演变为系统级难题。控制逻辑的设计尤其考验工程师对延迟的掌控能力。3.1 is_zero电路的二分堆叠革命判断一个n位数是否为0最直接的方法是is_zero NOT(OR(bit0, OR(bit1, OR(bit2, ...))))这种逐位堆叠的方式需要n-1个OR门门延迟为n-1每个OR贡献1延迟而二分堆叠策略将OR树组织为二叉树同样需要n-1个OR门门延迟仅为⌈log₂n⌉对于16位数逐位堆叠延迟为15二分堆叠延迟仅为4因为2⁴16注意实际硬件中OR门通常不用NAND实现这里讨论的是理论模型下的延迟3.2 多路选择器的延迟优化2-to-1多路选择器MUX的基本实现MUX(s, d0, d1) NAND(NAND(NOT(s), d0), NAND(s, d1))构建更大的4-to-1 MUX时有两种策略平铺结构用3个2-to-1 MUX串联门延迟为3×39树形结构两级选择第一级用2个MUX并行选择第二级用1个MUX选择结果总延迟为336这种并行化思想在硬件设计中无处不在是突破延迟瓶颈的核心策略。4. ALU设计的权衡艺术算术逻辑单元ALU是CPU的核心也是复用与延迟理念的集大成者。设计ALU时面临三个维度的权衡功能完整性vs门数量操作速度vs设计复杂度通用性vs专用优化4.1 标志位的巧妙处理在NandGame的ALU设计中处理zx零扩展和sw交换操作数标志位展示了硬件设计的优雅// 操作数交换逻辑 operand1 MUX(sw, y, x) operand2 MUX(sw, x, y) // 零扩展逻辑 operand1_final MUX(zx, 0, operand1)这种级联选择的策略每个MUX引入3个门延迟但通过并行处理可以保持总延迟可控4.2 功能单元的资源共享一个完整的ALU需要支持8种甚至更多操作。直接实现会导致资源爆炸传统方法为每种操作独立实现电路然后用大型MUX选择优化方法识别操作间的共性共享子电路例如加法和减法可以共享加法器核心加法A B减法A (~B 1) A (补码B)通过复用加法器和取反逻辑可以显著节省门数量。4.3 条件判断的延迟优化条件分支逻辑如判断大于、小于、等于往往依赖多个标志位的组合is_gt NOT(OR(is_neg, is_zero)) is_lt is_neg AND NOT(is_zero) is_eq is_zero关键技巧在于并行计算各标志位共享中间结果如is_neg和is_zero平衡逻辑树使关键路径最短在16位系统中优化后的分支逻辑可以将延迟从潜在的15降低到5-6个门延迟。5. 从组合到时序设计思维的跃迁当组合电路的迷雾散去我们站在了时序电路的门槛前。这里复用与延迟的理念将以新的形式延续时钟周期的确定必须考虑组合逻辑的最长延迟流水线技术通过分割长延迟路径提高吞吐量寄存器重定时可以平衡各级流水线的延迟在NandGame的后续关卡中这些概念将得到具体展现。但组合电路阶段培养的复用意识和延迟敏感将成为理解更复杂设计的基础。硬件设计如同围棋规则简单却变化无穷。每个NAND门都像一粒棋子胜负不取决于数量多寡而在于排兵布阵的智慧。当我最终看到自己设计的ALU正确执行各种运算时恍然领悟计算机硬件的灵魂正是这种在约束中寻求最优解的永恒追求。

相关文章:

通关NandGame组合电路后,我悟了:原来CPU设计的关键是“复用”与“延迟”

从NandGame看硬件设计的艺术:复用与延迟的哲学 在数字电路设计的浩瀚宇宙中,每一个逻辑门都如同星辰般微小却不可或缺。当我第一次接触NandGame时,本以为这不过是又一个教人拼凑逻辑门的普通教程,直到亲手搭建起第一个异或门&…...

跨越物种与时空:TO-GCN方法在植物发育与光合作用调控网络解析中的创新实践

1. TO-GCN方法:突破传统共表达网络分析的时空局限 在植物生物学研究中,基因共表达网络分析一直是揭示复杂调控机制的重要工具。传统方法如WGCNA(加权基因共表达网络分析)虽然应用广泛,但在处理跨物种、跨条件或跨组织的…...

从 0 到 1:构建一个供 AI Agent 使用的图像生成技能系统

前言 当我们把 AI Agent 接进工作流后,几乎每天都会遇到一个痛点:图像生成这件事,每次都要靠 Agent 自己拼提示词。没有风格库、没有模板、没有搜索——结果全靠"手感",输出质量参差不齐。 image-craft 这个项目&…...

氨基酸表活洁面慕斯科普

一、什么是洁面慕斯洁面慕斯是一种预发泡型的洁面产品,和传统膏状、洗面奶不同,它从泵头挤出来就是细腻绵密的泡沫,不需要消费者手动打泡,使用起来更加方便快捷。从成分体系来看,洁面慕斯本质还是表面活性剂清洁产品&a…...

异常处理与性能调优:熬夜、加班与医美术后的“内服架构”实战指南

在互联网与高科技行业,系统的稳定运行往往伴随着开发者的极度透支。作为常年面对高并发需求和深夜发版的“IT 民工”或高压职场人,我们经常会遇到这样的尴尬场景:连续两周的 996 之后,面对电脑屏幕黑屏时的倒影,发现自…...

RVC-WebUI语音克隆:如何在5分钟内打造你的专属AI声优

RVC-WebUI语音克隆:如何在5分钟内打造你的专属AI声优 【免费下载链接】rvc-webui liujing04/Retrieval-based-Voice-Conversion-WebUI reconstruction project 项目地址: https://gitcode.com/gh_mirrors/rv/rvc-webui 想象一下,用你自己的声音为…...

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南 当TC3xx系列芯片遇上AUTOSAR架构,传统寄存器级开发方式正在被图形化配置彻底革新。对于每天需要面对微控制器底层驱动的嵌入式工程师而言,EB tresos Studio提供的可视化…...

告别WMMA API:用PTX的LDMATRIX和MMA指令在Ampere架构上重构你的FP16矩阵乘法内核

从WMMA到PTX:在Ampere架构上重构FP16矩阵乘法的深度实践 当开发者第一次接触Nvidia的Tensor Core编程时,WMMA(Warp Matrix Multiply Accumulate)API往往是首选方案。这套高层抽象接口屏蔽了硬件细节,让开发者能够快速实…...

搞懂对数收益率:为什么金融圈都在悄悄用它?

搞懂对数收益率:为什么金融圈都在悄悄用它?如果你曾经被“涨10%再跌10%,怎么还亏了?”这个问题困扰过,那么读完这篇文章,你会豁然开朗。一、一个让你“感觉不对”的小实验 假设朋友向你推荐一只期货合约&am…...

SAP查询字段定义的字符数

用户常会问到“***的文本描述可以输入多少个字符”。 操作步骤: 输入事物代码:SE11就能看到字段配置的字符数量。如何获得表名称:(OBB8举例) 操作步骤: 输入事物代码:OBB8...

告别Keil破解!用STM32CubeIDE + HAL库点亮你的第一颗Blue Pill LED(保姆级图文)

从Keil到STM32CubeIDE:零成本玩转Blue Pill开发板 第一次接触STM32开发时,我被Keil的破解流程劝退了——注册机、license管理、版本兼容性问题接踵而至。直到发现STM32CubeIDE这款完全免费的官方工具,配合HAL库的抽象层设计,终于能…...

保姆级教程:在小米/华为手机上从零安装AidLux,并解决首次启动卡顿问题

保姆级教程:在小米/华为手机上从零安装AidLux,并解决首次启动卡顿问题 对于移动端开发者和AI爱好者来说,在安卓手机上运行Linux环境一直是个痛点。AidLux作为一款创新的跨生态AI应用开发平台,完美解决了这一需求。本文将针对小米和…...

多平台矩阵账号防关联技术深度解析:2026年IP隔离与设备指纹的攻防战

一、问题背景:矩阵运营最大的风险不是限流,是封号做矩阵的人都知道一个残酷的事实:你不是被限流死的,你是被关联死的。2025年某MCN机构一次封号事件:32个抖音账号、18个小红书账号、7个视频号账号,一夜之间…...

PotPlayer百度翻译插件终极指南:免费实现20+语言实时字幕翻译

PotPlayer百度翻译插件终极指南:免费实现20语言实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu PotPlayer字幕…...

【双AI论文写作】基于claude code、codex双AI协同论文写作撰写与质量校准:从“数据分析→论文初稿→交叉审稿“全流程

AI科研新范式不是让模型替你写论文,而是把论文变成一条可追踪、可审稿、可迭代的科研生产线——数据→写作依据文件→AI初稿→独立AI压测→逐轮提分→投稿包,全程文件可复查、责任在人。 【AI写论文的新范式&论文总体结构】: 科研新范式…...

G-Helper:华硕笔记本轻量化控制工具完整指南

G-Helper:华硕笔记本轻量化控制工具完整指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook,…...

ClaudeCode安装与使用全攻略

一、安装 Claude Code 1. 安装 Claude Code 1.1 安装 Git 根据需求选择对应的安装方式: https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git windows 版本下载地址: https://git-scm.com/install/windows 1.2 安装 node…...

2026年婚礼背景音乐素材下载网站TOP5:从版权、曲库到实用场景全面评测

引言:为什么婚礼背景音乐素材越来越需要“可商用、可溯源、可快速下载” 2026年,婚礼内容已经不再只是一支婚礼纪录片,而是拆分成婚礼预告片、接亲快剪、仪式短片、First Look、婚礼跟拍花絮、短视频平台竖版成片、婚庆公司案例展示等多个内…...

《流畅的Python》读书笔记03(补充01): 丰富的序列 - Python序列类型核心解析

《流畅的 Python》第 2 章“丰富的序列”系统性地阐述了 Python 序列类型的体系结构、核心操作及其背后的设计哲学。本章内容可归纳为以下四个核心模块: 一、序列类型的分类体系 Python 序列从两个正交维度进行分类,形成了清晰的类型矩阵。 分类维度类…...

从零到一:用Air724UG 4G模块和Python,手把手教你搭建一个物联网数据上报系统(含完整代码)

从零构建物联网数据上报系统:Air724UG与Python实战指南 在万物互联的时代,物联网技术正悄然改变着我们的生活和工作方式。想象一下,您只需轻点手机,就能实时查看千里之外温湿度数据;或是远程监控设备运行状态&#xff…...

《流畅的Python》读书笔记03(补充02): 丰富的序列 - deque高效应对高并发序列处理

Python序列分类体系在高并发数据处理中的选型优化,需要综合考虑序列类型的内存模型、可变性、线程安全性以及操作性能。在高并发场景下,错误的选型可能导致性能瓶颈、数据竞争或内存溢出。以下是基于序列分类体系的详细选型策略与优化建议。 一、序列分类…...

生产报工软件哪个好用?工厂扫码报工神器:企丰小工单详细介绍

现在很多中小型加工厂、五金机械、汽配、组装制造工厂,还在使用纸质单据手写报工。每天员工手写工单、文员加班录表、月底核算计件工资头疼不已。不仅工序混乱、产量统计不准,还容易出现虚报产量、工序漏报、薪资对账纠纷等问题。想要数字化管理&#xf…...

告别mmWave Studio报错:手把手教你搞定AWR2243数据采集的6个常见故障

告别mmWave Studio报错:手把手教你搞定AWR2243数据采集的6个常见故障 毫米波雷达开发者在数据采集阶段常会遇到各种技术障碍。AWR2243作为工业级高频雷达模块,其配套的mmWave Studio软件在实际操作中可能出现多种报错,影响开发效率。本文将针…...

告别模型水土不服:用TENT的熵最小化,5分钟搞定测试时域自适应(附PyTorch代码)

实战TENT:5行代码解决模型部署中的“水土不服”问题 想象一下这样的场景:你花费数月训练的自动驾驶视觉模型在实验室测试中准确率高达98%,但当它遇到真实世界的暴雨天气时,识别率瞬间暴跌至60%。这种"实验室王者,…...

仅限内部团队使用的Perplexity航班缓存穿透防护策略——含Redis布隆过滤器+航班时刻表TTL动态算法

更多请点击: https://intelliparadigm.com 第一章:Perplexity航班信息查询 Perplexity 是一款以实时网络检索与引用驱动为特色的 AI 智能问答工具,其在航空旅行场景中可高效辅助用户获取最新、最准确的航班动态。不同于传统静态知识库模型&a…...

dSPACE ControlDesk实战:从虚拟CAN信号注入到动态仪表板构建

1. 虚拟CAN信号注入实战 第一次接触dSPACE ControlDesk时,最让我头疼的就是在没有实体ECU的情况下如何模拟CAN总线信号。后来发现ControlDesk自带的CAN Generator工具简直就是虚拟测试的"救命稻草"。这个工具可以完美模拟真实ECU发出的CAN信号&#xff0c…...

汇编新手避坑指南:搞懂AX、BX、CX、DX这些“双面”寄存器,才算入门

汇编新手避坑指南:搞懂AX、BX、CX、DX这些“双面”寄存器,才算入门 第一次接触汇编语言时,那些神秘的寄存器名称总让人望而生畏。尤其是AX、BX、CX、DX这几个"双面人",一会儿能拆成AH和AL,一会儿又能合体使用…...

LAV Filters深度解析:开源DirectShow媒体解码器的架构原理与性能优化指南

LAV Filters深度解析:开源DirectShow媒体解码器的架构原理与性能优化指南 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters LAV Filters是一套基于F…...

照片直播如何实现?Android 通过 PTP/MTP 有线连接相机的技术方案

一、应用场景 在婚礼摄影、赛事记录、电商拍摄等业务中,客户往往希望: 摄影师按下快门,手机或平板立刻能看到照片。 常见传输方式的对比: 方式 问题 WiFi 延迟高、断连频繁 蓝牙 传输速度慢 有线 OTG ✅ 稳定、实时、低…...

拯救者工具箱终极指南:3大场景化解决方案提升笔记本使用体验

拯救者工具箱终极指南:3大场景化解决方案提升笔记本使用体验 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想…...