CPU的指令周期

天翼云开发者社区
• 阅读 59

本文分享自天翼云开发者社区《CPU的指令周期》,作者:冯****怡

指令周期(Instruction Cycle) CPU中会有 存器、指令寄存器、控制器等多类单元。指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。 如果我们仔细看一看,可以发现,计算机每执行一条指令的过程,可以分解成这样几个步骤。 1.Fetch(取得指令),也就是从 PC 寄存器里找到对应的指令地址,根据指令地址从内存里把具体的指令,加载到指令寄存器中,然后把 PC 寄存器自增,好在未来执行下一条指令。 2.Decode(指令译码),也就是根据指令寄存器里面的指令,解析成要进行什么样的操作,是 R、I、J 中的哪一种指令,具体要操作哪些寄存器、数据或者内存地址。 3.Execute(执行指令),也就是实际运行对应的 R、I、J 这些特定的指令,进行算术逻辑操作、数据传输或者直接的地址跳转。 4.重复进行 1~3 的步骤。这样的步骤,其实就是一个永不停歇的“Fetch - Decode - Execute”的循环,我们把这个循环称之为指令周期(Instruction Cycle)。

CPU的指令周期

指令周期(Instruction Cycle)在这个循环过程中,不同部分其实是由计算机中的不同组件完成的。

在取指令的阶段,我们的指令是放在存储器里的,实际上,通过** PC 寄存器指令寄存器取出指令的过程,是由控制器(Control Unit)操作的。指令的解码过程,也是由控制器进行的。一旦到了执行指令阶段,无论是进行算术操作、逻辑操作的 R 型指令,还是进行数据传输、条件分支的 I 型指令,都是由算术逻辑单元**(ALU)操作的,也就是由运算器处理的。

CPU的指令周期

除了 Instruction Cycle 这个指令周期,在 CPU 里面我们还会提到另外两个常见的 Cycle。一个叫 Machine Cycle,机器周期或者 CPU 周期。CPU 内部的操作速度很快,但是访问内存的速度却要慢很多。每一条指令都需要从内存里面加载而来,所以我们一般把从内存里面读取一条指令的最短时间,称为 CPU 周期。

还有一个是我们之前提过的 Clock Cycle,也就是时钟周期以及我们机器的主频。一个 CPU 周期,通常会由几个时钟周期累积起来。一个 CPU 周期的时间,就是这几个 Clock Cycle 的总和。

对于一个指令周期来说,我们取出一条指令,然后执行它,至少需要两个 CPU 周期。取出指令至少需要一个 CPU 周期,执行至少也需要一个 CPU 周期,复杂的指令则需要更多的 CPU 周期。

CPU的指令周期

所以,我们说一个指令周期,包含多个 CPU 周期,而一个 CPU 周期包含多个时钟周期。

点赞
收藏
评论区
推荐文章
桃浪十七丶 桃浪十七丶
3年前
计算机组成原理5.2指令执行过程
一、指令周期的概念:CPU从主存中取出并执行一条指令的时间被称为指令周期。一个指令周期包含若干机器周期(机器周期也称为CPU周期);一个机器周期包含若干时钟周期(时钟周期又称为节拍或者T周期或者CPU时钟周期,是CPU操作的最基本单位)。每个指令周期内的机器周期数量可以不同,每个机器周期内的时钟周期数量也可以不同。不同的指令的指令周期可能不同,如:1.注:分
桃浪十七丶 桃浪十七丶
3年前
计算机组成原理4.1指令格式
4.1.1指令的基本概念和指令的基本格式操作码:指明CPU进行什么操作。地址码:知指明CPU对谁进行操作。PC:程序计数器,每执行一条指令会1指向下一条指令。指令的概念和基本格式:是指一台计算机执行某种操作的命令,一台计算机的所有指令的集合构成指令集,也叫做指令系统,位于计算机的硬件和OS层面。不同计算机只能执行自己系统的指令,如Intel的x86架构,手
并发编程
并发编程笔记本博客根据学习而做的笔记,链接如下一、基本概念1、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的。当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程
Stella981 Stella981
3年前
Linux性能分析之上下文切换
而在每个任务运行前,CPU都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU寄存器和程序计数器CPU寄存器,是CPU内置的容量小、但速度极快的内存。而程序计数器,则是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置。它们都是CPU在运行任何任务前,必须的依赖环境,因此也被叫做C
Stella981 Stella981
3年前
Bootloader的结构和启动过程
CPU上电后,会在某个地址开始执行,比如MIPS结构的CPU会从0xBFC00000取第一条指令,而ARM结构的CPU则从0x00000000开始,嵌入式开发板中,需要把存储器件ROM或Flash等映射到这个地址。而Bootloader就存在这个地址的开始处,这样一上电后就会从这个地址处执行。Bootloader执行后从板子上的某个固态存储设备上将操作系统O
Wesley13 Wesley13
3年前
ARM与X86架构的对决
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出
Wesley13 Wesley13
3年前
CPU 基础术语总结
\\CPU\\CPU为CentralProcessingUnit的缩写。是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(ControlUnit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器(算术逻辑运算单元,ALU,ArithmeticLo
Wesley13 Wesley13
3年前
Java虚拟机(JVM)
Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译
Wesley13 Wesley13
3年前
CPU体系结构
指令系统分类两类指令系统体系结构:CISC(ComplexInstructionSetComputer,复杂指令集计算机)可变的指令长度,支持更复杂的指令长度RISC(ReducedInstructionSetComputer,精简指令集计算机)固定的指令长
Wesley13 Wesley13
3年前
MCU的心脏
晶振是石英晶体谐振器(quartzcrystaloscillator)的简称,它被称为电路系统的心脏,它为整个系统提供“心跳”。中央处理器(CPU)一切指令的执行都是建立在这个“心跳”上的,这个心跳就是CPU执行指令所必须的时钟频率信号,一般来说时钟信号频率越高,CPU的运行速度也就越快。只要是包含CPU的电子产品,都至少包含一个时钟源,有些在外面看不到晶
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
722
粉丝
15
获赞
40