1.CPU基本工作流程

本文详细阐述了冯诺依曼体系在计算机架构中的核心地位,深入剖析了CPU的工作原理,包括算术逻辑单元(ALU)、控制单元(CU)、指令执行流程和中断模式的应用。重点讲解了ALU的算术和逻辑运算,以及寄存器和内存的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、冯诺依曼体系(Von Neumann Architecture)

二、CPU的基本工作原理

1.算术逻辑单元ALU

1.1算术单元(Arithmetic Unit)

1.2逻辑单元(Logic Unit)

 1.1.3寄存器(Register) 和内存(RAM)

2.控制单元CU(Control Unit)

3.指令

4.CPU 的基本工作流程 

4.1取指令阶段

4.2解析指令

4.3执行阶段

 5.CPU 的中断模式

中断的用途


一、冯诺依曼体系(Von Neumann Architecture)

数学家 冯·诺依曼 提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成( 运算器 、 控制器 、 存储器 、 输入设备 、 输出设备 ),这套理论被称为冯·诺依曼体系结构。

                         

CPU 中央处理器: 进行算术运算和逻辑判断

存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)

输入设备: 用户给计算机发号施令的设备

输出设备: 计算机个用户汇报结果的设备

针对存储空间

        硬盘 > 内存 >> CPU 

    针对数据访问速度 

        CPU >> 内存 > 硬盘 

 

指令:表现为一种特殊的数据,需要存储在内存中

数据:也需要存储在内存中

一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器,而在执行周期中从内存读出的信息流是数据流,它由内存流向运算器

任何的数据,基本都是以整型,浮点型进行表示,以保存到内存中,“非数数据”都会按照一定标准格式编码成整型

二、CPU的基本工作原理

CPU的构成:CPU主要由运算器控制器寄存器组内部总线构成。

运算器:由算术逻辑单元ALU通用寄存器数据暂存器等组成。程序状态字寄存器接受从控制器送来的命令并执行相应的动作,主要负责对数据的加工和处理。

控制器:由程序计数器PC、指令寄存器IR、地址寄存器AR、数据寄存器DR、指令译码器等。

1.算术逻辑单元ALU

用于进行各种算术逻辑运算(与门、或门、非门、异或门)、算术运算(如加减乘除等),可以搭建出一些运算器

与门

  • 只有输入都为true,输出才为true

或门

  • 只要有一个输入都为true,输出就为true

非门

  • 只有输入都为false,输出才为true

异或门

  • 只有当两个输入不一致时,输出为true

  • 异或门由两个与门、一个或门,一个非门组成

 

 利用或门,异或门构建8位加法器

1.1算术单元(Arithmetic Unit)

算数单元,负责计算机里的所有数字操作,比如四则运算。

1.1.1半加器(Half Adder)

进行两个一位(bit)数相加

 1.1.2全加器(Full Adder)

进行三个一位(bit)数相加,由两个半加器和一个或门组成,先把两个比特位进行相加,把得到的结果再与第三个比特位相加

 

电子开关 -> 基础门电路 -> 异或门电路 -> 半加器 -> 全加器 -> 8位加法器 

1.2逻辑单元(Logic Unit)

逻辑单元主要用来进行逻辑操作,最基本的操作就是与、或、非操作,但不只是一位(bit)数的比较

 ALU符号

ALU是CPU的核心,程序的执行,本质上都是计算+读取+存入,A和B都需要寄存器临时保存数据

 1.1.3寄存器(Register) 和内存(RAM)

寄存器是CPU内部用来存储数据的组件

访问速度:寄存器比内存快了3~4个数量级

存储空间:比内存小很多很多,现在64位的cpu,大概有几十个寄存器,每个寄存器8~几百字节

成本:cpu上的寄存器非常贵

持久化:断电后,数据消失

2.控制单元CU(Control Unit)

  1.  程序计数器 (PC):用于指出下条指令在主存中的存放地址,CPU根据PC的内容去主存处取得指令,由于程序中的指令是按照顺序执行的,所以PC必须有自动增加的功能,也就是指向下一条指令的地址。

  2.  指令寄存器 (IR):用于保存当前正在执行的这条指令的代码,所以指令寄存器的位数取决于指令字长。

  3.  地址寄存器 (AR):用于存放CPU当前访问的内存单元地址。

  4.  数据寄存器DR:用于暂存从内存储器中读出或写入的指令或数据。

  5.  指令译码器:用于对获取的指令进行译码,产生该指令操作所需要的一些列微操作信号,以控制计算机各部件完成该指令。

3.指令

由操作码 + 被操作数组成。其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。指令本身也是一个数字,用二进制形式保存在内存的某个区域中。

4.CPU 的基本工作流程 

4.1取指令阶段

CU根据PC寄存器的值,去内存的响应位置,把指令读取到IR寄存器中,正常情况下PC自动+1


4.2解析指令

CU按照预先设定的指令集解读,指令数据(opcode+操作数)

比如: 0001 1110

假设0001是opcode,代表把指定地址的数据读取到寄存器A中 ,0b1110 -> 14


4.3执行阶段


        LOAD指令应该由CU执行

按照要求执行指令:把内存14地址处的数据读取到寄存器A中

 5.CPU 的中断模式

  正常模式下,CPU可以顺序执行,可以分支执行。但只能按照既定顺序去执行,但是有的时候需要暂时中断CPU的当前执行流,先让CPU去做其他工作,再回过头继续原来的执行流。

 CPU硬件中提供了一种机制(中断)让CPU停下来

    1.保存当前的PC的值到内存的某个位置

    2.修改PC的值,让执行其他执行流

    3.其他执行流结束之后,通过将刚才保存的PC值恢复到PC寄存器

    4.继续原来的执行流

中断的用途

1. IO设备的处理,当有外部数据到达Input设备时,触发某个中断,让当前正在执行的执行流暂停,切换到Input驱动对应的执行流,把Input设备中读取到的数据,放到内存的某个位置,恢复之前的执行流

2. 操作系统中用来做进程调度(线程调度)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习java的张三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值