CPU 怎么识别我们写的代码?
出处:网络整理 发布于:2026-08-19 15:28:06
首先,我们要了解半导体的特性。半导体是介于导体和绝缘体之间的一类物质,以二极管为例,它具有独特的导电特性。电流可以从 A 端流向 C 端,但反向则不行,可将其理解为防止电流逆流的器件。当 C 端为 10V,A 端为 0V 时,二极管可视为断开;当 C 端为 0V,A 端为 10V 时,二极管可视为导线,终会使 A 端和 C 端电压都变为 10V。这一特性可用于制作一些有趣的电路,如 “与门”。在 “与门” 电路中,A 端和 B 端只要有一个是 0V,Y 端就会和 0V 端直接导通,导致 Y 端也变为 0V;只有当 A、B 两端都是 10V 时,Y 和 A、B 之间才没有电流流动,Y 端才是 10V。我们将有电压的地方计为 1,0 电压的地方计为 0,这样就形成了逻辑关系:AB 必须同时输入 1,输出端 Y 才是 1;AB 有一个是 0,输出端 Y 就是 0。除了 “与门”,还有 “或门”“非门” 和 “异或门” 等逻辑门电路,它们的工作原理与 “与门” 类似,都可以通过半导体器件实现。在实际应用中,由于二极管和三极管功耗较大,通常会用场效应管(MOS 管)来构建这些逻辑门电路。


接下来,我们要让 CPU 能够根据指令进行计算。为此,引入了两个重要的模块:触发器(flip - flop,简称 FF)和选择器(MUX)。触发器可以存储 1bit 数据,多个触发器并联可以组成寄存器(Register),用于保存计算的中间数据或状态。选择器则可以根据输入信号选择输出不同的数据。通过为加法器和乘 2 模块(位移)设计激活针脚,我们可以控制数据流入不同的模块。为 CPU 设计了 8 个输入针脚,包括 4 位指令和 4 位数据,并定义了 3 个指令:0100 表示数据读入寄存器,0001 表示数据与寄存器相加并将结果保存到寄存器,0010 表示寄存器数据向左位移一位(乘 2)。当输入相应的指令时,就像开关一样激活 CPU 内指定的模块并改变其连通方式,从而得出计算结果。

执行一个指令通常需要多个步骤。我们设计的简易 CPU 执行一个指令大概需要三步:读取指令、执行指令、写寄存器。而经典的 RISC 设计则分五步:读取指令(IF)、解码指令(ID)、执行指令(EX)、内存操作(MEM)、写寄存器(WB)。现代的 x86 CPU 有些指令可能要分将近 20 个步骤。CPU 通过类似开关的机制按步骤执行指令,但提高执行速度可能会导致功耗增加、发热上升和稳定性下降,这就是所谓的 “超频”,新手不建议尝试。
CPU 通过触发器保存中间状态来知道自己执行到哪一步,具体涉及到有限状态机理论(FSM)。有了这些指令和模块,我们就可以编写程序进行计算,例如计算(1 + 4)×2 + 3。
0100 0001 ;寄存器存入1
0001 0100 ;寄存器的数字加4
0010 0000 ;乘2
0001 0011 ;再加三
早期计算机编程是通过插线实现的,效率极低。后来,为了提高编程效率,人们发明了不同的编程语言。只有 0 和 1 组成的语言被称为机器语言(机器码),是 CPU 能理解的语言,但它对人类来说难以阅读和编写。于是,人们将机器语言改写成汇编语言,汇编语言与机器语言一一对应,增强了可读性和开发效率。例如:
MOV 1 ;寄存器存入1
ADD 4 ;寄存器的数字加4
SHL 0 ;乘2(介于我们设计的乘法器暂时只能乘2,这个0是占位的)
ADD 3 ;再加三
然而,汇编语言对于人类来说仍然晦涩难懂,因此又发明了语言,如很多语言可以这样写:
a=(1 + 4)*2 + 3;
但计算机无法直接识别语言,需要通过编译器将其翻译成汇编语言或机器语言。编译过程较为复杂,例如将语言表达式转换为后缀表示法(逆波兰表示法),再转换为汇编语言。
(1 + 4)*2 + 3 转换成 1,4,+,2,*,3,+
从头处理后缀表示法,依次将数字存入寄存器、进行加法和乘法运算,终将翻译好的汇编语言转换为机器语言即可在 CPU 上运行。
,我们再谈谈栈与硬件的关系。栈是一种常用的数据结构,为了让 CPU 能更好地支持栈操作,我们为其增加了一组寄存器和几个指令,如 RDA/RDB 和 WRA/WRB,分别用于将指定内存地址的数据读到寄存器 A/B,以及将寄存器 A/B 的内容写到指定地址。同时,为了处理更多指令,增加了解码器。通过解码器,我们可以更灵活地控制 CPU 的各个模块。例如,用第二个位作为是否选择寄存器的针脚,用位控制是否进行内存操作等。

版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- SOC 芯片启动流程全揭秘2026/8/20 15:25:32
- 力芯微推出用于SIM卡接口的电平转换芯片ET45592026/8/4 15:21:58
- 一款低功耗、低成本且分辨率高的双通道电容型传感芯片 - MC12G/MC12T2026/7/24 15:24:32
- 芯片内部晶体管的工作原理揭秘2026/7/23 16:55:58
- 芯片封装中的弹坑是如何形成的?2026/7/20 15:37:06









