cpu由哪两种组成,cpu是由哪三个部分组成

首页 > 体育 > 作者:YD1662023-04-24 15:34:56

来源:内容由半导体行业观察(icbank)编译自「techspot」,谢谢。

CPU通常被称为计算机的大脑,就像人的大脑一样,它由几个部分组成,其中包括接收信息的部分,存储信息的部分,处理信息的部分,帮助输出信息的部分等等。这些部分协同工作以处理信息。

在今天的解文章中,我们将介绍构成CPU的关键元素以及它们如何共同为计算机提供动能。

cpu由哪两种组成,cpu是由哪三个部分组成(1)

CPU蓝图:ISA

分析任何CPU时,您首先遇到的就是指令集体系结构(ISA)。这是有关CPU如何运行以及所有内部系统如何交互的图形化蓝图。就像同一物种中有许多品种的狗一样,可以在CPU上构建许多不同类型的ISA。两种最常见的类型是x86(在台式机和笔记本电脑中找到)和ARM(在嵌入式和移动设备中找到)。

还有其他一些像MIPS,RISC-V和PowerPC这样的小众应用程序。ISA将指定CPU可以处理哪些指令,如何与内存和缓存交互,如何在多个处理阶段划分工作等等。

为了覆盖CPU的主要部分,我们将遵循一条指令在执行时所采用的路径。不同类型的指令可能遵循不同的路径,并使用CPU的不同部分,但在这里我们将进行概括以涵盖最大部分。我们将从单核处理器的最基本设计开始,并随着我们朝着更现代的设计逐步增加复杂性。

控制单元和数据路径

CPU可以分为两部分:控制单元和数据路径。想象一辆火车。引擎是火车的动力来源,但指挥员却在幕后拉动操纵杆并控制引擎的各个方面。CPU是相同的方式。

数据路径就像引擎一样,顾名思义,是数据在处理过程中流动的路径。数据路径接收输入,处理它们,并在完成后将它们发送到正确的位置。控制单元告诉数据路径如何工作。根据指令,数据路径会将信号路由到不同的组件,打开和关闭数据路径的不同部分,并监视CPU的状态。

cpu由哪两种组成,cpu是由哪三个部分组成(2)

指令周期-获取

我们的CPU必须做的第一件事是弄清楚下一步要执行什么指令,然后将它们从内存转移到CPU中。指令由编译器产生,并且特定于CPU的ISA。ISA将共享最常见的指令类型,例如加载,存储,加法,减法等,但是每个特定ISA都有许多其他特殊类型的指令。对于每种类型的指令,控制单元将知道需要将哪些信号路由到何处。

例如,当您在Windows上运行.exe时,该程序的代码将移入内存,并且告诉CPU第一条指令的起始地址。CPU始终维护一个内部寄存器,该寄存器保存要执行的下一条指令的存储器位置。这称为程序计数器(PC)。

一旦知道从哪里开始,指令周期的第一步就是获取该指令。这会将指令从存储器移到CPU的指令寄存器中,这称为提取阶段。实际上,指令可能已经在CPU的高速缓存中,这个我们在后续再介绍。

指令周期-解码

当CPU有一条指令时,它需要专门弄清楚它是什么类型的指令。这称为解码阶段。每个指令将具有一组称为操作码的特定位,该“位”告诉CPU如何解释它。这类似于如何使用不同的文件扩展名告诉计算机如何解释文件。例如,.jpg和.png都是图像文件,但是它们以不同的方式组织数据,因此计算机需要知道类型才能正确解释它们。

根据ISA的复杂程度,CPU的指令解码部分可能会变得复杂。像RISC-V这样的ISA可能只有几十条指令,而x86有数千条指令。在典型的Intel x86 CPU上,解码过程是最具挑战性的过程之一,并且占用大量空间。CPU将解码的最常见的指令类型是存储器,算术或分支指令。

3种主要指令类型

存储指令可能类似于“将值从存储地址1234读入值A”或“将值B写入存储地址5678”。算术指令可能类似于“将值A添加到值B并将结果存储到值C”。分支指令可能类似于“如果C值为正,则执行此代码;如果C值为负,则执行彼代码”。一个典型的程序可能将它们链接在一起,以产生类似“将结果为肯定的内存地址1234的值添加到内存地址5678的值,并将其存储在内存地址4321的结果,如果结果为负的则存储在地址8765的东西” 。

在开始执行刚刚解码的指令之前,我们需要暂停片刻以讨论寄存器。

CPU具有一些很小但非常快的存储器,称为寄存器。在64位CPU上,每个将容纳64位,并且内核可能只有几十个。这些用于存储当前正在使用的值,可以将其视为类似于L0缓存的值。在上面的指令示例中,值A,B和C都将存储在寄存器中。

ALU

现在回到执行阶段。对于我们上面讨论的3种类型的指令,这将有所不同,因此我们将分别介绍每一种。

从算术指令开始,因为它们最容易理解。这些类型的指令被送入算术日志单元(ALU)进行处理。ALU是一种通常具有两个输入和控制信号并输出结果的电路。

cpu由哪两种组成,cpu是由哪三个部分组成(3)

想象一下您在中学时期使用的基本计算器。要执行操作,请输入两个输入数字以及要执行的操作类型。计算器进行计算并输出结果。对于我们的CPU的ALU,操作类型由指令的操作码决定,控制单元会将其发送给ALU。除了基本的算术运算之外,ALU还可以执行AND,OR,NOT和XOR之类的bitwise运算。ALU还将为控制单元输出一些有关其刚刚完成的计算的状态信息。这可能包括诸如结果是肯定的,否定的,零的还是溢出的事情。

ALU与算术运算最相关,但是它也可以用于存储器或分支指令。例如,CPU可能需要计算作为先前算术运算结果给出的内存地址。它还可能需要计算偏移量,以添加到分支指令所需的程序计数器中。诸如“如果先前的结果是否定的,则向前跳20条指令”。

内存指令和层次结构

对于内存指令,我们需要了解一个称为“ 内存层次结构”的概念。这代表了高速缓存,RAM和主存储之间的关系。当CPU接收到一条内存指令,该指令针对尚未在其寄存器本地存储的数据时,它将沿内存层次结构下降,直到找到它为止。大多数现代CPU包含三级缓存:L1,L2和L3。CPU首先要检查的地方是L1缓存。这是三级缓存中最小和最快的。L1高速缓存通常分为用于数据的部分和用于指令的部分。请记住,指令需要像数据一样从内存中获取。

典型的L1缓存可能为数百KB。如果CPU在L1缓存中找不到所需的内容,它将检查L2缓存。这可能约为几MB。下一步是L3缓存,它可能是几十MB。如果CPU在三级缓存中找不到所需的数据,它将进入RAM,最后进入主存储器。当我们沿着每一步走时,可用空间大约增加一个数量级,但是等待时间也增加。

cpu由哪两种组成,cpu是由哪三个部分组成(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.