话本小说网 > 脑洞小说 > 超纲了,哥们儿
本书标签: 脑洞 

第26章 计算机的原理

超纲了,哥们儿

相信大家都是很喜欢玩电脑,让大家知道电脑的原理吗?

核心理念:图灵机模型与冯·诺依曼结构

计算机的理论基础源于图灵机,而其实用工程实现基于冯·诺依曼结构。

1. 图灵机(理论模型):

· 阿兰·图灵提出的一种抽象计算模型。它由一个无限长的纸带(存储介质)、一个读写头(可读取、写入、移动)和一套控制规则(状态转移表)组成。

· 它证明了:只要提供足够的存储空间和时间,以及明确的可计算规则(程序),这台机器可以模拟任何其他计算机器的逻辑。这奠定了可计算性理论的基础,本质上是通用计算机的蓝图。

2. 冯·诺依曼结构(工程实现):

· 基于图灵的思想,冯·诺依曼提出了现代计算机的经典结构,其核心特点是 “存储程序” 。即程序和数据以二进制形式存放在同一存储器中。计算机的工作就是自动、连续地执行存储的程序来处理数据。

· 该结构由五大部件组成:

· 运算器 (ALU):负责执行所有算术和逻辑运算(加、减、与、或等)。

· 控制器 (CU):计算机的“指挥中心”,从内存中取出指令,解码并控制其他部件协同工作。

· 存储器 (Memory):存放程序和数据。分为高速但容量小的内存(RAM/ROM)和低速但容量大的外存(硬盘、SSD)。

· 输入设备 (Input):将外部信息(键盘敲击、鼠标移动)转换为计算机可理解的二进制数据。

· 输出设备 (Output):将计算机处理后的二进制数据转换为人可感知的形式(屏幕显示、打印机输出)。

计算机是如何“计算”的?—— 从物理到逻辑

第一层:物理基础(晶体管)

· 现代计算机的基石是晶体管,一种用硅等半导体材料制成的微观电子开关。

· 晶体管通过控制其栅极电压,可以实现“开”(导通,代表 1)和“关”(截止,代表 0)两种稳定状态。这完美地对应了二进制。

· 数十亿甚至数百亿个晶体管集成在小小的芯片上,构成了CPU、内存等所有复杂电路。

第二层:逻辑构建(门电路与布尔代数)

· 用晶体管可以组合成基本的逻辑门电路,如与门、或门、非门。

· 这些门电路是硬件层面的“逻辑运算符”,它们的输入和输出都是0或1。

· 通过组合无数个逻辑门,可以构建出具有复杂功能的数字电路,例如:

· 加法器: 用与门、或门等组合而成,能完成二进制加法。

· 触发器: 能存储一个比特(0或1)的基本单元,是构成寄存器和内存的基础。

· 译码器、多路选择器等。

第三层:核心部件(CPU、内存、总线)

1. 中央处理器 (CPU):

· 运算器 (ALU): 由前面提到的加法器、移位器等电路组成,是执行实际计算的硬件。

· 寄存器 (Registers): CPU内部极小但极快的内存,用于临时存放当前正在执行的指令、数据和地址。最重要的有:

· 程序计数器 (PC): 存放下一条要执行的指令的内存地址。

· 指令寄存器 (IR): 存放当前正在解码/执行的指令。

· 累加器 (ACC): 存放ALU的运算结果。

· 控制器 (CU): 根据当前指令的操作码,生成一系列精确定时的控制信号,像交响乐指挥一样,控制数据在寄存器、ALU、内存之间流动。

2. 存储器系统:

· 内存 (RAM): 像一个巨大的网格,每个格子(存储单元)有唯一地址,可以存一个字节的数据。CPU可以直接、快速访问。

· 缓存 (Cache): 位于CPU和内存之间,速度比内存更快,用于存放最可能被CPU用到的数据和指令副本,以解决CPU和内存速度不匹配的问题。

· 外存 (硬盘/SSD): 永久性存储,容量大但速度慢。程序和数据在不运行时驻留于此,需要时才加载到内存。

3. 总线 (Bus):

· 计算机内部的信息高速公路,负责在各部件间传递数据。

· 数据总线: 传输实际数据。

· 地址总线: 传输CPU要访问的内存或设备的地址。

· 控制总线: 传输控制信号(读、写、中断等)。

第四层:软件与指令(让硬件“活”起来)

· 机器语言: CPU能直接理解和执行的唯一语言,由一串二进制码(0和1)组成。一条机器指令通常包含操作码(做什么,如加法)和操作数(对谁做,如寄存器编号或内存地址)。

· 指令集架构 (ISA): 定义了一台计算机支持的所有指令的集合、格式和功能。它是硬件和软件之间的契约。常见的ISA有x86、ARM。

· 程序: 就是一系列按特定顺序排列的指令。

完整的工作流程:一个简单程序的执行

假设我们要计算 c = a + b。

1. 加载与取指:

· 操作系统将包含该程序代码的文件从硬盘加载到内存的某个区域。

· CPU的程序计数器(PC) 指向该区域的第一条指令地址。

· 控制器通过地址总线将PC中的地址发出,通过控制总线发出“读”信号,从内存中取出该地址的指令,通过数据总线传回CPU,放入指令寄存器(IR)。然后PC自动加1,指向下一条指令。

2. 解码:

· 控制器对IR中的指令进行解码,识别出这是一条“加法”指令,操作数a和b在内存的某某地址。

3. 执行与访存:

· 根据解码结果,控制器发出控制信号:

· 将内存中地址a的数据读入寄存器A。

· 将内存中地址b的数据读入寄存器B。

· 命令运算器(ALU) 对寄存器A和B中的值执行加法操作。

· 将ALU的结果存入寄存器C。

4. 写回:

· 控制器再将寄存器C中的结果,写入内存中变量c对应的地址。

5. 循环与中断:

· 以上“取指 -> 解码 -> 执行 -> 写回”的过程,以极高的速度(现代CPU达数十亿次/秒)循环往复,直到程序结束。

· 在此过程中,中断控制器会监听键盘、鼠标、时钟等外部事件。一旦发生,它会打断当前程序,让CPU先去处理更紧急的中断服务程序,处理完再返回。这使得计算机可以“同时”处理多任务和实时响应。

抽象层次:从用户到晶体管

为了更好地理解,计算机系统被组织成一系列抽象层:

1. 应用层: 用户直接面对的程序(浏览器、游戏、Word)。

2. 操作系统层: 管理硬件资源,为应用程序提供通用服务(文件管理、内存管理、进程调度)。它是硬件和应用程序之间的“大管家”。

3. 指令集架构层 (ISA): 软件和硬件的接口。

4. 微体系结构层: CPU内部的具体实现设计(有多少个核心、几级缓存、流水线如何设计)。

5. 逻辑/寄存器传输层: 用寄存器、ALU、多路选择器等较大模块描述数据流。

6. 数字逻辑层: 由门电路和触发器构成。

7. 电路层: 由晶体管、电阻、电容等模拟元件构成。

8. 物理层: 硅片、光刻、互连线等。

总结来说,计算机的原理是:

基于晶体管开关的物理特性,通过层层抽象的工程方法,构建出能执行布尔逻辑的数字电路;这些电路在“存储程序”的冯·诺依曼架构下,由控制器根据预先编写好的二进制指令序列(程序),精确地控制数据在存储器和运算器之间流动与变换,从而自动化地完成各种复杂任务。其本质是一台高速、精确、可编程的自动符号处理机。

此解说原理源于网络AI自身了解。

上一章 第25章 如何做数学的压轴题? 超纲了,哥们儿最新章节 下一章 第27章 一次函数