本文主要介绍cpu的两部分是什么 它们的作用是什么(cpu的两部分是什么)?,下面一起看看cpu的两部分是什么 它们的作用是什么(cpu的两部分是什么)?相关资讯。
cpu通常被称为计算机的大脑。就像人的大脑一样,由几个部分组成,包括接收信息、存储信息、处理信息、帮助输出信息等等。这些部分一起工作来处理信息。
在今天 的文章中,我们将介绍构成cpu的关键元素,以及它们如何一起为计算机提供动能。
cpu蓝图:isa分析任何一个cpu,首先碰到的就是指令集架构(isa)。这是cpu如何工作以及所有内部系统如何交互的图形蓝图。就像同一物种有很多品种的狗一样,在cpu上可以构建很多不同类型的isa。两种最常见的类型是x86(见于台式机和笔记本电脑)和arm(见于嵌入式和移动设备)。
还有其他利基应用程序,如mips,riscv和powerpc。isa将指定cpu可以处理哪些指令,如何与内存和缓存交互,如何将工作划分到多个处理阶段,等等。
为了涵盖cpu的主要部分,我们将遵循指令执行时所采取的路径。不同类型的指令可能遵循不同的路径,并使用cpu的不同部分,但这里我们将对它们进行总结,以涵盖最大的部分。我们将从单核处理器的最基本设计开始,随着我们向更现代的设计发展,逐渐增加复杂性。
控制单元和数据通路cpu可分为控制单元和数据通路两部分。想象一列火车。发动机是火车的动力源,但车长在幕后拉动操纵杆,控制着发动机的方方面面。cpu也是一样。
就像引擎一样,数据路径,顾名思义,就是数据在处理过程中流经的路径。数据路径接收输入,处理它们,并在完成时将它们发送到正确的位置。控制单元告诉数据路径如何工作。根据指令,数据路径将信号路由到不同的组件,打开和关闭数据路径的不同部分,并监控cpu的状态。
指令周期——得到我们的cpu必须做的第一件事就是搞清楚接下来执行什么指令,然后把指令从内存转移到cpu。指令由编译器生成,并且特定于cpu的isa。isa将共享最常见的指令类型,如加载、存储、加法、减法等。,但每个特定的isa都有许多其他特殊类型的指令。对于每种类型的指令,控制单元将知道哪些信号需要路由到哪里。
比如跑步的时候。exe,程序的代码将被移到内存中,cpu将被告知第一条指令的起始地址。cpu总是维护一个内部寄存器,用于保存下一条要执行的指令的存储位置。这被称为程序计数器(pc)。一旦你知道从哪里开始,指令周期的第一步就是获取指令。这将把指令从内存移动到cpu的指令寄存器,这被称为提取阶段。事实上,指令可能已经在cpu缓存中了,这一点我们将在后面介绍。
指令周期——解码当cpu有一条指令时,需要找出它是哪种指令。这被称为解码阶段。每条指令都有一组称为操作码的特定位,告诉cpu如何解释它。这类似于如何使用不同的文件扩展名来告诉计算机如何解释文件。例如,。jpg和。png都是图像文件,但它们以不同的组织数据,因此计算机需要知道它们的类型才能正确地解释它们。
根据isa的复杂程度,cpu的指令解码部分可能会变得复杂。像riscv这样的isa可能只有几十条指令,而x86有上千条指令。在典型的英特尔x86 cpu上,解码过程是最具挑战性的过程之一,并且占用大量空间。cpu将解码的最常见的指令类型是内存、算术或分支指令。
存储指令的三种主要指令类型可能类似于 将值从存储地址1234读入值a or 将值b写入存储地址5678 。算术指令可能类似于 将值a与值b相加,并将结果存储在值c 。分支指令可能类似于 如果c的值为正,则执行这段代码;如果c的值为负,则执行该代码。 一个典型的程序可能将它们连接在一起,产生类似 将结果为正的内存地址1234的值与内存地址5678的值相加,并将其存储在内存地址4321中,如果结果为负,则将其存储在地址8765 。
在开始执行刚刚解码的指令之前,我们需要暂停一会儿来讨论寄存器。
cpu有一些很小但速度很快的内存,叫做寄存器。在一个64位的cpu上,每个将容纳64位,并且可能只有几十个核心。这些用于存储当前使用的值,这些值可被视为类似于l0缓存的值。在上面的指令示例中,值a、b和c都将存储在寄存器中。
alu现在回到执行阶段。对于我们上面讨论的三种类型的指令,这将是不同的,所以我们将分别介绍每一种。
从算术指令开始,因为它们最容易理解。这些类型的指令被发送到算术对数单元(alu)进行处理。alu是一种通常有两个输入和控制信号并输出结果的电路。
想象一下你在中学使用的基本计算器。要执行操作,请输入两个输入数字和要执行的操作类型。计算器计算并输出结果。对于我们cpu的alu来说,操作类型是由指令的操作码决定的,控制单元会发送给alu。除了基本的算术运算,alu还可以执行与、或、非和x。像or这样的按位运算。alu还将为控制单元输出一些关于它刚刚完成的计算的状态信息。这可能包括诸如结果是正、负、零还是溢出之类的事情。
alu与算术运算最相关,但它也可用于内存或分支指令。例如,cpu可能需要计算作为先前算术运算的结果而给出的存储器地址。它可能还需要计算一个偏移量,以添加到分支指令所需的程序计数器中。比如 如果前面的结果是否定的,向前跳过20条指令 。
对于内存指令,我们需要理解一个叫做 内存层次和。这代表了高速缓存、ram和主存储器之间的关系。当cpu接收到一个针对没有本地存储在其寄存器中的数据的内存指令时,它将沿着内存层次结构下降,直到找到它。大多数现代cpu包含三级高速缓存:l1、l2和l3。cpu检查的第一个地方是l1缓存。这是最小和最快的三级缓存。l1缓存通常分为数据部分和指令部分。记住,指令需要像数据一样从内存中取出。
典型的l1缓存可能有数百kb。如果cpu在l1缓存中找不到它需要的东西,它将检查l2缓存。这可能是几个兆字节。下一步是l3缓存,可能是几十mb。如果cpu可以 如果在三级缓存中找不到所需的数据,它将进入ram,最后进入主存。当我们每走一步,可用空间增加了大约一个数量级,但等待时间也增加了。
在cpu找到数据后,它将调用层次结构,以便cpu在将来需要时可以快速访问它。这里的步骤很多,但能保证cpu快速访问所需数据。例如,cpu可以在一个或两个周期内读取其内部寄存器,l1需要几个周期,l2需要大约十个周期,l3需要几十个周期。如果您需要进入内存或主存储,根据系统的不同,可能需要数万甚至数百万个周期,每个内核可能有自己的专用l1缓存,与另一个内核共享一个l2,并在四个或更多内核的组之间共享一个l3。我们将在本文后面详细讨论多核cpu。
分支指令是三种主要指令类型中的最后一种:分支指令和跳转指令。现代程序总是无休止地跳来跳去,cpu很少执行没有分支的连续指令。分支指令来自if语句、for循环和return语句等编程元素。这些用于中断程序执行和切换到代码的不同部分。还有跳转指令,总是分支指令。
条件分支对cpu来说特别棘手,因为它可能一次执行多条指令,而分支的结果可能要到分支开始执行后续指令时才能确定。
要完全理解为什么这是一个问题。问题,我们需要再转一次,讨论一下流水线。指令周期中的每个步骤可能需要几个周期才能完成。这意味着当提取指令时,alu将空闲。为了最大限度地提高cpu的效率,我们将每个阶段划分为一个称为流水线的过程。
理解这一点的经典方法是比较洗衣服。你有两件东西要洗。洗和烘干它们需要一个小时。可以将第一件物品放入洗衣机,然后放入烘干机,烘干后再开始洗第二件物品。需要四个小时。但是,如果您分工合作,在第一件产品烘干时开始第二次洗涤,您可以在三个小时内完成两次洗涤。一小时的减少量取决于你要洗的衣服以及洗衣机和烘干机的数量。清洗和烘干所有物品仍然需要两个小时,但如果计算重叠,总处理量将从0.5件产品/小时增加到0.75件产品/小时。
cpu使用相同的方法来提高指令吞吐量。现代arm或x86 cpu可能有20多个流水线阶段,这意味着在任何给定的时间点,内核都可以一次处理20多个不同的指令。每种设计都是独一无二的,但样本可分为四个读取周期、六个解码周期、三个执行周期和七个将结果更新回存储器的周期。
回到分公司,希望你能开始看到这个问题。如果我们不这样做。;直到第10个周期,我们才知道一条指令是分支,我们将开始执行9条新指令,如果采用分支,这些指令可能无效。为了解决这个问题,cpu有一个非常复杂的结构,叫做分支预测器。他们使用机器学习中类似的概念,试图猜测分支是否会被采用。分支预测变量的复杂性远远超出了本文的范围,但在基本层面上,它们跟踪以前分支的状态,以查看是否有可能采用即将到来的分支。现代分支预测器可以具有95%或更高的准确度。
一旦分支结果被确定(流水线的这一阶段已经完成),程序计数器将被更新,cpu将继续执行下一条指令。如果分支预测错误,cpu会在分支开始错误执行后抛出所有指令,然后从正确的位置重新开始。
乱序执行现在,我们知道如何执行三种最常见的指令类型。让 让我们来看看cpu的一些更高级的功能。事实上,所有现代处理器实际上并不按照接收指令的顺序执行指令。在等待执行其他指令时,可以使用一个称为无序执行的示例来最小化停机时间。
如果cpu知道即将到来的指令,但所需的数据可以 如果没有及时准备好,它可以在等待时切换指令顺序,并从程序后面引入一条独立的指令。这种指令重排序是一种非常强大的工具,但它远不是cpu使用的唯一技能。
另一个提高性能的特性叫做预取。如果你想从头开始从头到尾完成一个随机指令需要多长时间?你会发现大部分的内存访问都用完了。预取器是cpu中的一个单元,它试图预测未来的指令以及它们将需要什么数据。如果它发现它需要cpu没有缓存的数据,它将到达ram并将数据提取到缓存中。所以它的名字就叫预取。
加速器和未来在cpu中,另一个正在增加的主要功能是特定任务的加速。这些电路的全部工作就是尽可能快地完成一个小任务。这可能包括加密、媒体编码或机器学习。
cpu可以自己做这些事情,但是有专用于它们的单元将大大提高效率。专用gpu就是一个很好的例子。cpu当然可以执行图形处理所需的计算,但为它们配备特殊的单元可以提供更好的性能数量级。随着加速器的兴起,cpu的实际核心可能只占芯片的一小部分。
下图是几年前的英特尔cpu。大部分空间被内核和缓存占用。下面第二张图是新的amd芯片。那里的大部分空间被核心之外的组件占据。
最后,走向多核要介绍的主要功能是如何把一堆单个的cpu连接在一起,形成多核cpu。这并不像我们之前讨论的简单地放入单核设计的多个副本那么简单。正如没有简单的方法可以将单线程程序转换成多线程程序一样,同样的概念也适用于硬件。问题来自于内核之间的依赖。
例如,对于4核设计,cpu需要能够以四倍的速度发出指令。它还需要四个独立的内存接口。由于多个实体可能处理相同的数据,因此必须解决一致性和不一致性等问题。如果两个内核使用相同的数据来处理指令,它们如何知道谁拥有正确的值?如果一个内核修改了数据,但没有及时到达另一个内核执行,该怎么办?因为它们有单独的缓存可以存储重叠的数据,所以必须使用复杂的算法和控制器来消除这些。
随着cpu内核数量的增加,正确的分支预测也非常重要。内核一次执行的指令越多,其中一条指令处理分支指令的可能性就越大。这意味着指令流可能随时改变。
通常,独立的内核将处理来自不同线程的指令流。这有助于减少内核之间的依赖性。这就是为什么如果您检查任务管理器,您会经常看到一个内核正在努力工作,而其他内核正在工作。许多程序不是为多线程设计的。在某些情况下,让一个内核来完成工作要比尝试划分工作的成本高得多。
物理设计本文的大部分内容都集中在cpu的架构设计上,因为这是最复杂的。然而,所有这些都需要在现实世界中创建,这增加了另一个层次的复杂性。
为了同步整个处理器中的所有组件,当使用时。时钟信号。现代的处理器通常运行在3.0ghz到5.0ghz之间,在过去的十年里似乎没有改变。在每个周期中,芯片中数十亿个晶体管被开启和关闭。
时钟是必不可少的,以确保所有的值显示在正确的时间,因为每个阶段的管道前进。时钟决定了cpu每秒可以处理多少条指令。通过超频提高它的频率会让芯片更快,但也会增加功耗和热量输出。
热量是cpu最大的敌人。随着数码电子设备温度的升高,微晶体管可能开始变质。如果不散热,芯片可能会损坏。那个 这就是为什么所有的cpu都有散热器。cpu的实际硅片可能只占物理设备表面积的20%。占据空间的增加使得热量更均匀地分布到散热器上。它还允许更多引脚与外部元件接口。
现代cpu的背面可以有成千上万或更多的输入和输出引脚。由于大多数计算组件都在芯片中,移动芯片可能只有几百个引脚。无论采用哪种设计,都有一半左右专用于供电,其余用于数据通信。这包括与内存、芯片组、存储、pcie设备等的通信。
由于高性能cpu在满载时消耗100安培或更多,它们需要数百个引脚来均匀分配电流消耗。引线通常镀金以提高导电性。不同的制造商在他们的许多产品线中使用不同的引脚排列。
用一个例子来总结,我们就快速介绍一下英特尔酷睿2 cpu的设计。这开始于2006年,所以有些部分可能已经过时了,但没有关于更新设计的详细信息。
从顶部开始,我们有指令缓存和itlb。翻译后备缓冲器(tlb)用于帮助cpu知道所需指令在内存中的位置。这些指令存储在l1指令缓存中,然后发送到预解码器。x86架构极其复杂密集,解码步骤非常多。与此同时,分支预测器和预取器都预计到由传入指令引起的任何潜在问题。
从那里,指令被发送到指令队列。复习无序设计如何让cpu执行指令,选择最及时的指令执行。这个队列保存cpu正在考虑的当前指令。一旦cpu知道哪条指令将是最佳执行模式,就会进一步解码成微操作。虽然一条指令可能包含cpu复杂的任务,但微操作是精细的任务,cpu更容易解释。
然后,这些指令进入 注册和登记, 罗布 和 保留站和这三个组件的确切功能有些复杂(请考虑研究生水平的大学课程),但是用来帮助管理无序过程中指令之间的依赖关系。
a 核心 实际上会有许多alu和内存端口。将输入操作放入保留站,直到alu可以使用。、或存储器端口。一旦所需组件可用,将在l1数据缓存的帮助下处理指令。输出将被存储,cpu现在准备好从下一条指令开始。那个 就是它!
虽然本文并不打算精确地指导每个cpu的工作模式,但是它应该让您很好地理解它们的内部工作原理和复杂性。坦率地说,amd和英特尔之外的人不认为。;我真的不知道他们的cpu是如何工作的。本文的每一部分都代表了整个研发领域,因此这里提供的信息只是从一开始。
了解更多cpu的两部分是什么 它们的作用是什么(cpu的两部分是什么)?相关内容请关注本站点。
电脑硬件配置知识图解(电脑硬件及电脑配置知识大全)
火狐浏览器不能打开网页(火狐浏览器无法打开网页是什么原因)
win11如何重装win10(win11如何重装)
手机移动数据网络慢怎么办(移动数据网速慢是怎么回事)
小米手环3怎么关机开机(小米手环3怎么关机)
cpu由哪两个部分组成,它们分别有什么作用(cpu包括哪两大部件)
电脑故障分析及解决方法(电脑各种故障处理)
没有硬盘架的机箱,这个机箱的硬盘架在什么位置
硬盘安装器怎么安装系统(硬盘安装器是什么意思)
抖音创意电脑3d壁纸(抖音上最火的电脑桌面壁纸房子效果图)
intel cpu天梯图,电脑CPU怎么看性能好坏 CPU天梯图2016年1月最新版图示
win7重装显示配置标识不正确怎么办呀(win7重装显示配置标识不正确解决办法)
硬盘磁头复位指今
小牛sn码在哪里GOVAG0(小牛SN码在哪看)
windows自带截图保存位置(win10自带截图工具保存路径)
惠普2012年笔记本型号,惠普笔记本12寸有哪些型号
怎样连接打印机电脑怎样连接打印机(怎么把电脑和打印机连接)
怎样不用duf怎么刷机,不用USB怎么刷机
小米解锁后怎么刷root权限,我的小米5s已经解锁了 然后怎么root 我稳定版的
加了固态硬盘后如何设置固态启动,系统安装在固态硬盘里怎么设置才能启动固